{"version":3,"sources":["webpack:///./@core/components/AppSignatureBoxV2.vue?1ae1","webpack:///./@core/components/AppFormToolBar.vue?01d7","webpack:///./@core/components/AppModalV2.vue?7c6a","webpack:///./@core/components/layout/AppFormLayout.vue?0b16","webpack:///./@core/components/AppModalV2.vue?f088","webpack:///./@core/components/AppModalV2.vue","webpack:///./@core/components/AppModalV2.vue?fb8c","webpack:///./@core/components/AppModalV2.vue?a451","webpack:///./@core/components/LoadingSpinner.vue?035a","webpack:///./@core/components/LoadingSpinner.vue","webpack:///./@core/components/LoadingSpinner.vue?2382","webpack:///./@core/components/LoadingSpinner.vue?9003","webpack:///./@core/components/LoadingSpinner.vue?81b0","webpack:///./@core/pages/recruit/RecruitFormsNavi.vue?796a","webpack:///./@core/pages/recruit/RecruitForms.vue?4a66","webpack:///./@core/components/AppPdfViewer.vue?eefa","webpack:///./@core/components/AppPdfViewer.vue?f9b2","webpack:///./@core/components/AppPdfViewer.vue","webpack:///./@core/components/AppPdfViewer.vue?a734","webpack:///./@core/components/AppPdfViewer.vue?c4c2","webpack:///./@core/pages/recruit/RecruitFormsUsher.vue?a685","webpack:///./@core/pages/recruit/RecruitForms.vue?9276","webpack:///./@core/components/layout/AppFormLayout.vue?df21","webpack:///./@core/components/layout/AppFormLayout.vue","webpack:///./@core/components/layout/AppFormLayout.vue?0c51","webpack:///./@core/components/layout/AppFormLayout.vue?4e55","webpack:///./@core/components/AppFormToolBar.vue?89ea","webpack:///./@core/components/AppFormToolBar.vue","webpack:///./@core/components/AppFormToolBar.vue?28a6","webpack:///./@core/components/AppFormToolBar.vue?e97c","webpack:///./@core/pages/recruit/RecruitFormsNavi.vue?8481","webpack:///./@core/pages/recruit/RecruitFormsNavi.vue","webpack:///./@core/pages/recruit/RecruitFormsNavi.vue?768e","webpack:///./@core/pages/recruit/RecruitFormsNavi.vue?e372","webpack:///./@core/pages/recruit/RecruitFormsUsher.vue?0b27","webpack:///./@core/pages/recruit/RecruitFormsUsher.vue","webpack:///./@core/pages/recruit/RecruitFormsUsher.vue?7cd6","webpack:///./@core/pages/recruit/RecruitFormsUsher.vue?a177","webpack:///./@core/components/AppSignatureBoxV2.vue?9b9d","webpack:///./@core/components/AppSignatureBoxV2.vue","webpack:///./@core/components/AppSignatureBoxV2.vue?8892","webpack:///./@core/components/AppSignatureBoxV2.vue?56b6","webpack:///./@core/pages/recruit/RecruitFormsMixin.ts","webpack:///./@core/pages/recruit/RecruitForms.vue","webpack:///./@core/pages/recruit/RecruitForms.vue?fee5","webpack:///./@core/pages/recruit/RecruitForms.vue?be1e","webpack:///./@core/components/AppDecimalNumber.vue?6388","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/signature_pad/src/point.ts","webpack:///./node_modules/signature_pad/src/throttle.ts","webpack:///./node_modules/signature_pad/src/bezier.ts","webpack:///./@core/tools/CustomSignaturePad.ts","webpack:///./@core/components/AppDecimalNumber.vue?0ecc","webpack:///./@core/components/AppDecimalNumber.vue","webpack:///./@core/components/AppDecimalNumber.vue?4e6d","webpack:///./@core/components/AppDecimalNumber.vue?d906"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","class","show","showModal","_t","_v","on","$event","$emit","staticRenderFns","component","_s","msg","fullUrl","_e","pdfJsUriBase","fullUri","encodeURIComponent","uri","default","currentFormSigned","slot","toggleLeft","scopedSlots","_u","showLeft","key","fn","_obj","currentFormName","currentFormErrors","length","showMsg","proxy","red","overallFormStatus","directives","name","rawName","value","allSigned","isDirty","expression","saveForm","approve","rework","clickSign","hide","max","activeFormPdfUri","ref","showSignPad","clear","savingSignature","saveSignature","isModalFad","_l","text","index","toggle","activityURL","expand","initial","$router","currentRoute","params","recruitAccountOid","section","path","parentPath","href","navigate","isActive","completed","data","error","url","displayName","stopPropagation","setIndicate","subs","subsection","recruitFormStore","createdForms","filter","form","recruitCantSee","RecruitManagerAssessment","BDMAssessment","includes","model","recruitDetails","isCurrentRecruit","matched","param","replace","sec","focusCurMenu","setTimeout","curFormName","formMenu","document","getElementById","scrollIntoView","behavior","State","Getter","disabled","canPrev","goPrev","prevForm","canNext","highlight","curHasError","goNext","nextForm","curPathName","refresh","r","findIndex","fd","find","curFormIdx","push","console","log","_m","footerBtn","hasOwnProperty","clearSignature","triggerSave","signaturePad","userSignature","noSigned","isEmpty","uiService","alert","type","message","signatureData","toDataURL","sharedVariable","canvas","querySelector","maxWidth","retrieveUserSignature","$api","signature","retrieve","then","res","fromDataURL","catch","err","activityStore","refreshForm","refreshToolbar","loading","currentForm","fadWarning","signed","pdfName","currentUser","recruit","detail","recruitOid","triggerAlert","setRecruitDetails","resetActivities","forms","search","accountOid","forEach","addActivity","activity","setForms","exam","addExistingExams","recs","$store","getters","signerRequired","Object","keys","signatures","recruiter","recruitSign","recruitNeedSign","recruiterSign","isCurrentRecruiter","recruiterNeedSign","isAdmin","allActivityProcessing","allActivityInReadyForSubmission","canSign","adminAction","allActivityCompleted","getForm","GeneralDeclaration","fad","setCurUser","to","setCurrentForm","checkFad","getRecruitDetail","getAllActivities","medisaveOs","basedOverseas","showModalFad","e","preventDefault","returnValue","expanded","formsDetails","f","$refs","activeForm","$data","showError","currentCertificates","qualificationEmployment","professional","removedCertificates","exams","some","curCert","getRemovedCertificates","certificatesName","map","certificate","confirm","join","isConfirm","save","sign","finally","decide","ids","values","activityId","status","reworkApplication","Mutation","immediate","deep","components","AppForm","AppDatatable","AppFormLayout","AppPdfViewer","LoadingSpinner","AppFormToolBar","AppModal","AppSignatureBox","RecruitFormsNavi","RecruitFormsUsher","AppDialog","beforeRouteUpdate","from","next","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","done","TypeError","normalCompletion","didErr","call","step","_e2","x","y","time","Date","now","start","Math","sqrt","pow","other","distanceTo","throttle","result","storedContext","storedArgs","wait","previous","timeout","later","apply","remaining","args","clearTimeout","window","startPoint","control2","control1","endPoint","startWidth","endWidth","px","py","steps","t","cx","point","cy","xdiff","ydiff","c1","c2","end","points","widths","calculateControlPoints","c3","Bezier","s1","s2","s3","dx1","dy1","dx2","dy2","m1","m2","l1","l2","dxm","dym","k","cm","tx","ty","options","_handleMouseDown","event","which","_mouseButtonDown","_strokeBegin","_handleMouseMove","_strokeMoveUpdate","_handleMouseUp","_strokeEnd","_handleTouchStart","targetTouches","touch","changedTouches","_handleTouchMove","_handleTouchEnd","wasCanvasTouched","target","velocityFilterWeight","minWidth","minDistance","dotSize","penColor","backgroundColor","onBegin","onEnd","SignaturePad","prototype","_strokeUpdate","_ctx","getContext","ctx","fillStyle","clearRect","width","height","fillRect","_data","_reset","_isEmpty","dataUrl","callback","image","Image","ratio","devicePixelRatio","onload","drawImage","onerror","src","encoderOptions","_toSVG","style","touchAction","msTouchAction","PointerEvent","_handlePointerEvents","_handleMouseEvents","_handleTouchEvents","removeEventListener","pointGroups","_fromData","color","curve","_drawCurve","_drawDot","newPointGroup","clientX","clientY","_createPoint","lastPointGroup","lastPoints","lastPoint","isLastPointTooClose","_addPoint","addEventListener","_lastPoints","_lastVelocity","_lastWidth","rect","getBoundingClientRect","left","top","getTime","unshift","_calculateCurveWidths","fromPoints","shift","velocity","velocityFrom","newWidth","_strokeWidth","moveTo","arc","PI","widthDelta","drawSteps","floor","beginPath","tt","ttt","u","uu","uuu","min","_drawCurveSegment","closePath","fill","drawCurve","drawDot","group","j","basicPoint","minX","minY","maxX","maxY","svg","createElementNS","setAttribute","toString","createElement","isNaN","attr","toFixed","appendChild","circle","prefix","header","body","innerHTML","undefined","dummy","nodes","childNodes","cloneNode","footer","btoa","domProps","triggerKeyEvent","numberAndDecimalOnly","onBlur","onFocus","onSelect","composing","inputModal","textIsSelected","valueChange","evt","keyCode","currentValue","isNonNumberAndNonDecimal","isDecimal","allowDecimal","indexOf","decimal","number","split","caratPos","srcElement","selectionStart","dotPos","isNonNumber","formatValue","replaceAll","source","convertTo","Number","formatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","inputValue"],"mappings":"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","file":"js/chunk-11f161ea.7811cc24.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSignatureBoxV2.vue?vue&type=style&index=0&lang=scss&\"","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!./AppFormToolBar.vue?vue&type=style&index=0&id=00891b8e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModalV2.vue?vue&type=style&index=0&id=49ecd951&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFormLayout.vue?vue&type=style&index=0&id=7e460fd6&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"modal-fade\"}},[_c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\",attrs:{\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-container\",class:{ show : _vm.showModal }},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",function(){return [_vm._v(\" default header \")]}),_c('button',{staticClass:\"btn-close\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('i',{staticClass:\"fas fa-times\"})])],2),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"body\",function(){return [_vm._v(\" default body \")]})],2),_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\")],2)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppModal extends Vue {\n protected showModal = false\n\n mounted () {\n this.$emit('open')\n this.showModal = true\n }\n\n destroyed () {\n this.$emit('close')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModalV2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModalV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppModalV2.vue?vue&type=template&id=49ecd951&scoped=true&\"\nimport script from \"./AppModalV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppModalV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppModalV2.vue?vue&type=style&index=0&id=49ecd951&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49ecd951\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading-spinner\"},[_c('div',{staticClass:\"el-loading-mask\"},[_c('div',{staticClass:\"el-loading-spinner\"},[_c('svg',{staticClass:\"circular\",attrs:{\"viewBox\":\"25 25 50 50\"}},[_c('circle',{staticClass:\"path\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"20\",\"fill\":\"none\"}})]),_c('div',[_vm._v(_vm._s(_vm.msg))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class LoadingSpinner extends Vue {\n @Prop() msg: string\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingSpinner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingSpinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoadingSpinner.vue?vue&type=template&id=2ca34d92&scoped=true&\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoadingSpinner.vue?vue&type=style&index=0&id=2ca34d92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ca34d92\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingSpinner.vue?vue&type=style&index=0&id=2ca34d92&lang=scss&scoped=true&\"","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!./RecruitFormsNavi.vue?vue&type=style&index=0&id=46c9186a&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecruitForms.vue?vue&type=style&index=0&id=3278859f&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppPdfViewer.vue?vue&type=style&index=0&id=4083b604&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subFrame\"},[(_vm.uri)?[_c('object',{attrs:{\"data\":_vm.fullUrl,\"width\":\"100%\",\"height\":\"100%\"}},[_c('embed',{attrs:{\"src\":_vm.fullUrl,\"width\":\"100%\",\"height\":\"100%\"}})])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppPdfViewer extends Vue {\n @Prop() readonly uri: string\n @Prop({ default: false }) fullUri: boolean\n\n protected pdfJsUriBase = '/live/common/assets/pdfjs/web/viewer.html?file='\n\n created () {\n this.pdfJsUriBase += this.fullUri ? '' : '/live/'\n }\n\n get fullUrl () {\n // Need to encode the URL template\n // https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#can-i-specify-a-different-pdf-in-the-default-viewer\n return this.pdfJsUriBase + (encodeURIComponent(this.uri))\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!./AppPdfViewer.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!./AppPdfViewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppPdfViewer.vue?vue&type=template&id=4083b604&scoped=true&\"\nimport script from \"./AppPdfViewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppPdfViewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppPdfViewer.vue?vue&type=style&index=0&id=4083b604&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 \"4083b604\",\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!./RecruitFormsUsher.vue?vue&type=style&index=0&id=24985deb&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page with-bg page-recruit-form\",class:{ 'pdf-only': _vm.currentFormSigned },attrs:{\"id\":\"page-recruit-form\"}},[(_vm.loading)?_c('LoadingSpinner'):_vm._e(),_c('AppFormLayout',[_c('template',{slot:\"top-toolbar\"},[_c('AppFormToolBar',{on:{\"toggle\":_vm.toggleLeft},scopedSlots:_vm._u([(!_vm.showLeft)?{key:\"title\",fn:function(){\nvar _obj;\nreturn [_c('span',{staticClass:\"title-text\"},[_vm._v(_vm._s(_vm.currentFormName))]),_c('span',{staticClass:\"form-state-icon\",class:( _obj = {}, _obj['el-icon-check'] = _vm.currentFormErrors.length === 0, _obj['el-icon-warning red'] = _vm.currentFormErrors.length > 0, _obj ),on:{\"click\":_vm.showMsg}})]},proxy:true}:null,{key:\"actions\",fn:function(){return [_c('div',{staticClass:\"form-action\"},[(_vm.overallFormStatus)?_c('span',{staticClass:\"overall-status\"},[_c('span',{staticClass:\"indicator\",class:{ red: _vm.overallFormStatus !== 'APPROVED' }}),_vm._v(\" \"+_vm._s(_vm.overallFormStatus)+\" \")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.allSigned && _vm.isDirty),expression:\"!allSigned && isDirty\"}],staticClass:\"form-button\",on:{\"click\":_vm.saveForm}},[_c('i',{staticClass:\"far fa-save\"}),_c('span',{attrs:{\"btn-text\":\"\"}},[_vm._v(\"Save\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.adminAction),expression:\"adminAction\"}],staticClass:\"form-button\",on:{\"click\":_vm.approve}},[_c('i',{staticClass:\"far fa-save\"}),_c('span',{attrs:{\"btn-text\":\"\"}},[_vm._v(\"Approve\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.adminAction),expression:\"adminAction\"}],staticClass:\"form-button\",on:{\"click\":_vm.rework}},[_c('i',{staticClass:\"far fa-save\"}),_c('span',{attrs:{\"btn-text\":\"\"}},[_vm._v(\"Rework\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canSign),expression:\"canSign\"}],staticClass:\"form-button form-button-preview\",on:{\"click\":_vm.clickSign}},[_c('i',{staticClass:\"far fa-file-pdf\"}),_c('span',{attrs:{\"btn-text\":\"\"}},[_vm._v(\"Sign\")])])])]},proxy:true}],null,true)})],1),_c('template',{slot:\"corridor\"},[_c('div',{staticClass:\"corridor left-toolbar\",class:{ hide: !_vm.showLeft }},[_c('RecruitFormsNavi',{on:{\"indicate\":_vm.showMsg}})],1)]),_c('template',{slot:\"main-room\"},[_c('div',{staticClass:\"main-room\",class:{ max: !_vm.showLeft }},[(_vm.currentFormSigned)?_c('AppPdfViewer',{staticClass:\"form-pdf\",class:{ 'with-usher': !_vm.showLeft },attrs:{\"uri\":_vm.activeFormPdfUri}}):_c('router-view',{ref:\"activeForm\"})],1)])],2),_c('RecruitFormsUsher',{attrs:{\"show\":!_vm.showLeft}}),_c('AppSignatureBox',{attrs:{\"showSignPad\":_vm.showSignPad,\"footerBtn\":{ clear: true }},on:{\"hide\":function($event){_vm.showSignPad=_vm.savingSignature},\"save\":_vm.saveSignature}},[_c('span',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\" Input Your Signature \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.savingSignature),expression:\"savingSignature\"}],attrs:{\"slot\":\"backdrop\",\"backdrop\":\"\"},slot:\"backdrop\"},[_c('LoadingSpinner',{attrs:{\"msg\":'Saving signature...'}})],1)]),(_vm.isModalFad)?_c('AppDialog',{on:{\"close\":function($event){_vm.isModalFad = false}}},[_c('template',{slot:\"header\"},[_c('i',{staticClass:\"el-icon-warning-outline warning-icon\"}),_vm._v(\" General Declaration \")]),_c('template',{slot:\"body\"},[_c('p',[_vm._v(\"Please select \"),_c('b',[_vm._v(\"No\")]),_vm._v(\" for this(these) option(s) to be able to submit this form:\")]),_c('ul',{staticClass:\"fad-warning\"},_vm._l((_vm.fadWarning),function(text,index){return _c('li',{key:index},[_vm._v(_vm._s(text))])}),0)])],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('div',{staticClass:\"layout\"},[_c('div',{staticClass:\"top-toolbar-wrapper\"},[_vm._t(\"top-toolbar\")],2),_c('div',{staticClass:\"main-block\"},[_vm._t(\"corridor\"),_vm._t(\"main-room\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppFormLayout extends Vue {\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!./AppFormLayout.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!./AppFormLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppFormLayout.vue?vue&type=template&id=7e460fd6&scoped=true&\"\nimport script from \"./AppFormLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppFormLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppFormLayout.vue?vue&type=style&index=0&id=7e460fd6&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 \"7e460fd6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toolbar\"},[_c('div',{staticClass:\"sec\"},[_c('svg',{on:{\"click\":_vm.toggle}},[_c('g',[_c('rect',{attrs:{\"first\":\"\"}}),_c('rect',{attrs:{\"second\":\"\"}}),_c('rect',{attrs:{\"third\":\"\"}})])]),_c('div',{staticClass:\"breadcrumb\"},[_c('span',{staticClass:\"el-icon el-icon-s-home icon\"}),_c('a',{staticClass:\"url\",attrs:{\"href\":_vm.activityURL}},[_vm._v(\" Activity \")]),_c('div',{staticClass:\"title\"},[_vm._t(\"title\")],2)])]),_c('div',{staticClass:\"sec\"},[_vm._t(\"actions\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class AppFormToolBar extends Vue {\n @Prop() title!: string\n @Prop({ default: true }) initial: boolean\n protected expand = true\n\n created () {\n this.expand = this.initial\n }\n\n get activityURL () {\n return `/live/recruit/${this.$router.currentRoute.params.recruitAccountOid}`\n }\n\n toggle () {\n this.expand = !this.expand\n this.$emit('toggle', this.expand)\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!./AppFormToolBar.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!./AppFormToolBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppFormToolBar.vue?vue&type=template&id=00891b8e&scoped=true&\"\nimport script from \"./AppFormToolBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppFormToolBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppFormToolBar.vue?vue&type=style&index=0&id=00891b8e&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 \"00891b8e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"left-navi\"},_vm._l((_vm.allowedForms),function(section){return _c('router-link',{key:section.path,attrs:{\"to\":(_vm.parentPath + \"/\" + (section.path))},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar _obj;\n\nvar href = ref.href;\nvar navigate = ref.navigate;\nvar isActive = ref.isActive;return [(section.name === 'space')?_c('div',{staticClass:\"space\"}):_vm._e(),_c('div',{staticClass:\"navi-section\",class:{ completed : section.data.error.length === 0 },attrs:{\"id\":(\"menu-\" + (section.name)),\"active\":isActive}},[_c('a',{staticClass:\"section\",attrs:{\"active\":isActive,\"id\":section.url,\"href\":href,\"aria-label\":section.name},on:{\"click\":navigate}},[_c('span',{staticClass:\"section-name\"},[_vm._v(_vm._s(section.displayName))])]),_c('span',{staticClass:\"indication\",class:( _obj = {}, _obj['el-icon-check'] = section.data.error.length === 0, _obj['el-icon-warning red'] = section.data.error.length > 0, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.setIndicate(section)}}}),_c('transition',{attrs:{\"name\":\"height\"}},[(isActive && section.subs)?_c('div',{staticClass:\"hight-animation-container\"},_vm._l((section.subs),function(subsection){return _c('router-link',{key:subsection.url,attrs:{\"to\":(_vm.parentPath + \"/\" + (section.url) + \"/\" + (subsection.url))},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar _obj;\n\nvar href = ref.href;\nvar navigate = ref.navigate;\nvar isActive = ref.isActive;return [_c('a',{staticClass:\"subsection\",attrs:{\"active\":isActive,\"id\":subsection.url,\"href\":href,\"aria-label\":subsection.name},on:{\"click\":navigate}},[_c('span',{staticClass:\"branch-name\"},[_vm._v(_vm._s(subsection.name))])]),_c('span',{staticClass:\"indication\",class:( _obj = {}, _obj['el-icon-check'] = subsection.data.error.length === 0, _obj['el-icon-warning red'] = subsection.data.error.length > 0, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.setIndicate(subsection)}}})]}}],null,true)})}),1):_vm._e()])],1)]}}],null,true)})}),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\nimport { BDMAssessment } from '@core/model/recruit/forms/BDMAssessment'\nimport { RecruitManagerAssessment } from '@core/model/recruit/forms/RecruitManagerAssessment'\nimport RecruitDetails from '@core/model/recruit/RecruitDetail'\nimport { Component, Vue } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nconst recruitFormStore = namespace('RecruitFormStore')\n\n@Component\nexport default class RecruitFormsNavi extends Vue {\n @recruitFormStore.State\n private forms\n\n @recruitFormStore.Getter\n private createdForms\n\n @recruitFormStore.State\n private recruitDetails: RecruitDetails\n\n get allowedForms () {\n return this.createdForms.filter(form => {\n const recruitCantSee = [RecruitManagerAssessment, BDMAssessment].includes(form.model) && this.recruitDetails.isCurrentRecruit\n return !recruitCantSee\n })\n }\n\n get parentPath () {\n const path = this.$router.currentRoute.matched[0].path\n const param = this.$router.currentRoute.params.recruitAccountOid\n return path.replace(':recruitAccountOid', param)\n }\n\n setIndicate (sec) {\n this.$emit('indicate', sec)\n }\n\n mounted () {\n this.focusCurMenu()\n }\n\n // this will reattempt indefinitely\n focusCurMenu () {\n setTimeout(() => {\n const curFormName = this.$router.currentRoute.name\n if (!curFormName) return this.focusCurMenu()\n const formMenu = document.getElementById(`menu-${curFormName}`)\n if (!formMenu) return this.focusCurMenu()\n formMenu.scrollIntoView({ behavior: 'smooth' })\n }, 100)\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!./RecruitFormsNavi.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!./RecruitFormsNavi.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecruitFormsNavi.vue?vue&type=template&id=46c9186a&scoped=true&\"\nimport script from \"./RecruitFormsNavi.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecruitFormsNavi.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecruitFormsNavi.vue?vue&type=style&index=0&id=46c9186a&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 \"46c9186a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.refresh)?_c('div',{staticClass:\"bottom-usher\",class:{ show: _vm.show }},[_c('div',{staticClass:\"action\",class:{ disabled: !_vm.canPrev },on:{\"click\":_vm.goPrev}},[_c('span',{staticClass:\"el-icon-arrow-left\",attrs:{\"icon\":\"\"}}),_c('span',{attrs:{\"direction\":\"\"}},[_vm._v(\"Previous\")]),_c('span',{attrs:{\"name\":\"\"}},[(_vm.prevForm.error && _vm.prevForm.error.length > 0)?_c('span',{staticClass:\"el-icon-warning\"}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.prevForm.displayName)+\" \")])]),_c('div',{staticClass:\"action next\",class:{ disabled: !_vm.canNext, highlight: !_vm.curHasError },on:{\"click\":_vm.goNext}},[_c('span',{staticClass:\"el-icon-arrow-right\",attrs:{\"icon\":\"\"}}),_c('span',{attrs:{\"direction\":\"\"}},[_vm._v(\"Next\")]),_c('span',{attrs:{\"name\":\"\"}},[_vm._v(_vm._s(_vm.nextForm.displayName))])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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 { namespace } from 'vuex-class'\n\nconst recruitFormStore = namespace('RecruitFormStore')\n\n@Component\nexport default class RecruitFormsUsher extends Vue {\n @Prop() private show\n\n @recruitFormStore.State\n private forms\n\n @recruitFormStore.Getter\n private createdForms\n\n protected curPathName = ''\n\n @Watch('$route')\n routeUpdated (r) {\n this.curPathName = r.name\n }\n\n protected refresh = 1\n\n get curFormIdx () {\n return this.createdForms.findIndex(fd => fd.name === this.curPathName)\n }\n\n get curHasError () {\n return this.createdForms.find(fd => fd.name === this.curPathName)?.error?.length\n }\n\n get canNext () {\n return this.curFormIdx < this.createdForms.length - 1\n }\n\n get canPrev () {\n return this.curFormIdx > 0\n }\n\n get nextForm () {\n return this.canNext ? this.createdForms[this.curFormIdx + 1] || { displayName: '...' } : { displayName: '...' }\n }\n\n get prevForm () {\n return this.canPrev ? this.createdForms[this.curFormIdx - 1] || { displayName: '...' } : { displayName: '...' }\n }\n\n goNext () {\n if (!this.canNext) return\n this.$router.push({ name: this.nextForm.name })\n this.refresh++\n }\n\n goPrev () {\n if (!this.canPrev) return\n this.$router.push({ name: this.prevForm.name })\n this.refresh++\n }\n\n setIndicate (sec) {\n console.log(sec)\n this.$emit('indicate', sec)\n }\n\n created () {\n this.curPathName = this.$router.currentRoute.name\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!./RecruitFormsUsher.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!./RecruitFormsUsher.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecruitFormsUsher.vue?vue&type=template&id=24985deb&scoped=true&\"\nimport script from \"./RecruitFormsUsher.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecruitFormsUsher.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecruitFormsUsher.vue?vue&type=style&index=0&id=24985deb&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 \"24985deb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"signaturePad\",class:{ show : _vm.showSignPad },on:{\"click\":function($event){return _vm.$emit('hide')}}},[_c('div',{staticClass:\"signatureBox\",class:{ show : _vm.showSignPad },on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"signatureModal signatureHeader\"},[_vm._t(\"header\",function(){return [_c('span',[_vm._v(\"Signature\")])]})],2),_c('div',{staticClass:\"signatureModal signatureBody\"},[_vm._t(\"backdrop\"),_vm._t(\"tip\",function(){return [_c('span',{staticClass:\"tip\"},[_vm._v(\"Please review the document fully before signing\")])]}),_vm._m(0),_c('span',{staticClass:\"tip\"},[_vm._v(\"Please Sign Within the Box\")])],2),_c('div',{staticClass:\"signatureModal signatureFooter\"},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.footerBtn.hasOwnProperty('clear')),expression:\"footerBtn.hasOwnProperty('clear')\"}],staticClass:\"signatureBtn clear\",on:{\"click\":_vm.clearSignature}},[_vm._v(\"Clear\")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.footerBtn.hasOwnProperty('cancel')),expression:\"footerBtn.hasOwnProperty('cancel')\"}],staticClass:\"signatureBtn cancel\",on:{\"click\":function($event){return _vm.$emit('hide')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"signatureBtn save\",on:{\"click\":_vm.triggerSave}},[_vm._v(\"Save\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"signaturePadLine\"},[_c('canvas',{attrs:{\"width\":\"398\",\"height\":\"198\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport SignaturePad from '@core/tools/CustomSignaturePad'\nimport API from '@core/services/API'\nimport { inject } from 'inversify-props'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\n\n@Component({})\nexport default class AppSignatureBox extends Vue {\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n @inject()\n private $api: API\n\n @Prop({ default: {} }) readonly footerBtn!: object\n @Prop({ default: false }) readonly showSignPad!: boolean\n @Prop({ default: true }) readonly clearOnShow!: boolean\n\n private signaturePad = null\n // userSignature is used to show existing signature (saved by user) and intercept save behavior\n private userSignature = null\n\n clearSignature () {\n if (this.signaturePad) {\n this.userSignature = null\n this.signaturePad.clear()\n }\n }\n\n async triggerSave () {\n const noSigned = this.signaturePad.isEmpty()\n if (noSigned) {\n await this.uiService.alert.show({\n type: 'warning',\n message: 'No signature is detected! Please try again!'\n })\n return\n // NOTE : do not allow overwrite signature with blank canvas as this causes complication in checking whether signature is done\n // if (confirm('No signature is detected!\\nClick CANCEL to try again\\nClick OK to save ( remove existing signature if any ).')) {\n // this.saveSignature(noSigned)\n // }\n }\n // intercept save behavior, toDataURL will fail if fromDataURL is used\n if (this.userSignature) return this.$emit('save', this.userSignature)\n const signatureData = this.signaturePad.toDataURL('image/svg+xml')\n this.$emit('save', signatureData) // return the signature data for parent to handle\n }\n\n mounted () {\n // take injected UIService and set it to local\n this.uiService = this.sharedVariable.uiService\n\n const canvas = document.querySelector('.signaturePadLine canvas') as HTMLCanvasElement\n this.signaturePad = new SignaturePad(canvas, {\n maxWidth: 3\n })\n }\n\n @Watch('showSignPad')\n prepSignPad (show) {\n if (show) {\n this.clearSignature()\n this.retrieveUserSignature()\n }\n }\n\n retrieveUserSignature () {\n this.$api.signature.retrieve({})\n .then(res => {\n if (!res.error && res.signature) {\n console.log(res.signature)\n this.userSignature = res.signature\n this.signaturePad.fromDataURL(res.signature)\n }\n }).catch(err => {\n alert(err)\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!./AppSignatureBoxV2.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!./AppSignatureBoxV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppSignatureBoxV2.vue?vue&type=template&id=4d3b68e4&\"\nimport script from \"./AppSignatureBoxV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppSignatureBoxV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppSignatureBoxV2.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* eslint-disable @typescript-eslint/camelcase */\nimport { inject } from 'inversify-props'\nimport API from '@core/services/API'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport AppForm from '@core/components/AppFormV2.vue'\nimport AppDatatable from '@core/components/AppDatatable.vue'\nimport AppFormLayout from '@core/components/layout/AppFormLayout.vue'\nimport AppPdfViewer from '@core/components/AppPdfViewer.vue'\nimport LoadingSpinner from '@core/components/LoadingSpinner.vue'\nimport AppFormToolBar from '@core/components/AppFormToolBar.vue'\nimport AppModal from '@core/components/AppModalV2.vue'\nimport RecruitFormsNavi from './RecruitFormsNavi.vue'\nimport RecruitFormsUsher from './RecruitFormsUsher.vue'\nimport { IDateService } from '@master/services/IDateService'\nimport { FormBaseMixin } from './forms/FormBaseMixin'\nimport AppSignatureBox from '@core/components/AppSignatureBoxV2.vue'\nimport { namespace } from 'vuex-class'\nimport { Route } from 'vue-router'\nimport { FormBase } from '@core/model/recruit/FormBase'\nimport { AllForms } from '@core/model/recruit/AllForms'\nimport RecruitDetails from '@core/model/recruit/RecruitDetail'\nimport { FormDetails } from './RecruitFormStore'\nimport { UIService } from '@core/services/UIService'\nimport { SharedVariable } from '@core/model/SharedVariable'\nimport { isEmpty } from 'lodash/fp'\nimport { GeneralDeclaration } from '@core/model/recruit/forms/GeneralDeclaration'\nimport AppDialog from '@core/components/AppDialog.vue'\nimport { ExamForm } from '@core/model/recruit/ExamForm'\n\nconst recruitFormStore = namespace('RecruitFormStore')\nconst activityStore = namespace('ActivityStore')\n/**\n * @TODO: To understand how the current form errors works.\n */\n@Component({\n components: {\n AppForm,\n AppDatatable,\n AppFormLayout,\n AppPdfViewer,\n LoadingSpinner,\n AppFormToolBar,\n AppModal,\n AppSignatureBox,\n RecruitFormsNavi,\n RecruitFormsUsher,\n AppDialog\n },\n beforeRouteUpdate (to: Route, from: Route, next: any) {\n this.checkFad()\n this.saveForm()\n next()\n }\n})\nexport class RecruitFormsMixin extends Vue {\n @inject()\n protected dateService: IDateService\n\n @inject()\n protected $api: API\n\n uiService: UIService\n\n @inject()\n private sharedVariable: SharedVariable\n\n $refs!: {\n activeForm: FormBaseMixin;\n }\n\n @recruitFormStore.State\n private forms: AllForms\n\n @recruitFormStore.State\n private exams: ExamForm[]\n\n @recruitFormStore.State\n private recruitDetails: RecruitDetails\n\n @recruitFormStore.Mutation\n private setForms\n\n @recruitFormStore.Mutation\n private addExistingExams\n\n @recruitFormStore.Mutation\n private setRecruitDetails\n\n @recruitFormStore.Mutation\n private setCurUser\n\n @recruitFormStore.Getter\n private formsDetails: FormDetails[]\n\n @recruitFormStore.Getter\n private createdForms: FormDetails[]\n\n @recruitFormStore.Getter\n private isDirty\n\n @recruitFormStore.Getter\n private allSigned\n\n @activityStore.Mutation\n private upsertActivity\n\n @activityStore.Mutation\n private addActivity\n\n @activityStore.Mutation\n private resetActivities\n\n @activityStore.State\n private activities\n\n @activityStore.Getter\n private allActivityPending\n\n @activityStore.Getter\n private allActivityProcessing\n\n @activityStore.Getter\n private allActivityInReadyForSubmission\n\n @activityStore.Getter\n private allActivityCompleted\n\n protected showLeft = true\n protected showSignPad = false\n protected savingSignature = false\n protected refreshForm = 0\n protected refreshToolbar = 0\n protected loading = false\n protected currentForm = null\n protected isModalFad = false\n protected fadWarning = []\n\n get recruitAccountOid () {\n return this.$router.currentRoute.params.recruitAccountOid\n }\n\n get currentFormSigned () {\n return this.currentForm?.data?.signed\n }\n\n get currentFormName () {\n return this.currentForm?.displayName\n }\n\n get currentFormErrors () {\n return this.currentForm?.data.error || []\n }\n\n get activeFormPdfUri () {\n return `pdf/stampedform?template=${this.currentForm?.data.pdfName}&ownerOid=${this.recruitAccountOid}`\n }\n\n async triggerAlert (message: string, type: 'error' | 'warning' = 'error') {\n await this.uiService.alert.show({\n type,\n message\n })\n }\n\n getRecruitDetail () {\n if (this.currentUser) {\n this.$api.recruit.detail\n .retrieve({ recruitOid: this.recruitAccountOid })\n .then(res => {\n if (res.error) return this.triggerAlert(res.error)\n this.setRecruitDetails(res)\n })\n }\n }\n\n getAllActivities () {\n this.resetActivities()\n if (this.currentUser) {\n this.$api.forms\n .search({\n accountOid: this.recruitAccountOid\n }).then(res => {\n if (res.error) return this.triggerAlert(res.error)\n const forms = []\n res.forEach((form) => {\n forms.push(form)\n this.addActivity(form.activity)\n })\n this.setForms(forms)\n }).catch((err) => { this.triggerAlert(err) })\n\n this.$api.recruit.exam.search({\n accountOid: this.recruitAccountOid\n }).then(res => {\n if (res.error) return this.triggerAlert(res.error)\n this.addExistingExams(res.recs)\n }).catch((err) => { this.triggerAlert(err) })\n }\n }\n\n get currentUser () {\n return this.$store.getters.currentUser\n }\n\n get recruitNeedSign () {\n const signerRequired = Object.keys(this.currentForm.data.signatures)\n return signerRequired.includes('applicant') && this.currentFormErrors.length === 0 && !this.currentForm.data.signed\n }\n\n get recruiterNeedSign () {\n const signerRequired = Object.keys(this.currentForm.data.signatures)\n if (!signerRequired.includes('recruiter')) return false\n return isEmpty(this.currentForm.data.signatures.recruiter)\n }\n\n get canSign () {\n if (!this.currentForm || this.isDirty || this.currentFormErrors.length > 0) return false\n const recruitSign = this.recruitDetails.isCurrentRecruit && this.recruitNeedSign\n const recruiterSign = this.recruitDetails.isCurrentRecruiter && this.recruiterNeedSign\n return (recruitSign || recruiterSign) && !this.currentForm.data.signed\n }\n\n get adminAction () {\n // @TODO : to confirm T3 role\n return this.recruitDetails.isAdmin && this.allSigned && this.allActivityProcessing\n }\n\n get overallFormStatus () {\n if (this.allActivityInReadyForSubmission) return 'Ready for Submission'\n if (this.canSign || this.adminAction) return undefined\n if (this.currentFormErrors.length > 0) return 'Required fields not completed'\n if (this.recruitNeedSign) return 'Pending Applicant Signature'\n if (this.recruiterNeedSign) return 'Pending Recruiting Manager Signature'\n if (this.allActivityCompleted) return 'APPROVED'\n }\n\n get fad () {\n return (this.forms.getForm(GeneralDeclaration) as GeneralDeclaration).data.fad\n }\n\n @Watch('currentUser', { immediate: true, deep: true })\n curUser (curUser) {\n this.setCurUser(curUser)\n }\n\n @Watch('$route', { immediate: true })\n routeUpdated (to) {\n this.setCurrentForm(to.name)\n }\n\n @Watch('fad', { deep: true })\n onChangeMedisave () {\n this.checkFad()\n }\n\n created () {\n this.getRecruitDetail()\n this.getAllActivities()\n this.uiService = this.sharedVariable.uiService\n }\n\n checkFad () {\n this.fadWarning = []\n if (this.fad.medisaveOs === 'yes' || this.fad.basedOverseas === 'yes') this.showModalFad()\n }\n\n showModalFad () {\n this.isModalFad = true\n if (this.fad.medisaveOs === 'yes') this.fadWarning.push('Do you have any outstanding CPF MediSave liabilities with CPF Board?')\n if (this.fad.basedOverseas === 'yes') this.fadWarning.push('Will you be based overseas?')\n }\n\n triggerUnsavedChanges (e) {\n if (this.allActivityCompleted || !this.isDirty) return\n this.triggerAlert('Alert : You have unsaved changes !')\n e.preventDefault()\n e.returnValue = 'Hey'\n }\n\n toggleLeft (expanded) {\n this.refreshToolbar++\n this.showLeft = expanded\n }\n\n setCurrentForm (name) {\n this.currentForm = this.formsDetails.find(f => f.name === name)\n }\n\n showMsg (form) {\n this.$router.push({ name: form.name })\n this.$refs.activeForm.$data.showError = true\n }\n\n clickSign () {\n this.saveForm()\n this.showSignPad = true\n }\n\n getRemovedCertificates () {\n const currentCertificates = this.forms.qualificationEmployment.data.professional\n const removedCertificates = this.exams.filter(exam => !currentCertificates.some(curCert => curCert.value === exam.name))\n return removedCertificates\n }\n\n async saveForm () {\n let removedCertificates = []\n if (this.$router.currentRoute.name === 'recruit-forms-qualification-employment') removedCertificates = this.getRemovedCertificates()\n\n // Confirm delete removed certificates\n if (removedCertificates.length) {\n const certificatesName = removedCertificates.map(certificate => certificate.name)\n const isConfirm = await this.uiService.confirm.show({\n type: 'warning',\n message: `Are you sure to delete ${certificatesName.length > 1 ? 'these' : 'this'} (${certificatesName.join(',')}) exam certification(s)?`\n })\n if (isConfirm) {\n if (!this.isDirty) return\n this.$refs.activeForm.save()\n }\n } else {\n if (!this.isDirty) return\n this.$refs.activeForm.save()\n }\n }\n\n saveSignature (sign) {\n this.savingSignature = true\n this.$api.forms.sign({\n recruitOid: this.recruitAccountOid,\n signature: sign\n }).then((res) => {\n if (res?.error) return this.triggerAlert(res.error)\n this.getAllActivities()\n }).catch((err) => {\n this.triggerAlert(err)\n }).finally(() => {\n this.savingSignature = false\n this.showSignPad = false\n })\n }\n\n approve () {\n if (!confirm('Confirm to approve? By confirming, you must already completed all the recruit check in the recruit\\'s profile and view through all the exam certificates and documents.\\n\\n This action will change the recruit\\'s status to be an adviser.')) return\n // @TODO: To be reviewed again because this flow is unsure of.\n // if (this.fadWarning) {\n // this.isModalFad = true\n // return\n // }\n this.loading = true\n this.$api.recruit.detail.approve({\n accountOid: this.recruitAccountOid\n })\n .then(res => {\n if (res?.error) return this.triggerAlert(res.error)\n this.getAllActivities()\n }).catch(err => {\n if (err) return this.triggerAlert(err)\n }).finally(() => {\n this.loading = false\n })\n }\n\n rework () {\n if (!confirm('Confirm to rework?')) return\n this.loading = true\n this.$api.activity\n .decide({\n ids: Object.values(this.forms).map(form => (form as FormBase).activityId),\n status: 'PENDING'\n })\n .then(res => {\n if (res?.error) return this.triggerAlert(res.error)\n // trigger call to update recruit status back to pending\n this.$api.recruit.detail.reworkApplication({\n accountOid: this.recruitAccountOid\n })\n this.getAllActivities()\n }).catch(err => {\n if (err) return this.triggerAlert(err)\n }).finally(() => {\n this.loading = false\n })\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 { RecruitFormsMixin } from './RecruitFormsMixin'\n\nexport default class RecruitForms extends Mixins(RecruitFormsMixin) {\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!./RecruitForms.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!./RecruitForms.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecruitForms.vue?vue&type=template&id=3278859f&scoped=true&\"\nimport script from \"./RecruitForms.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecruitForms.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecruitForms.vue?vue&type=style&index=0&id=3278859f&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 \"3278859f\",\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!./AppDecimalNumber.vue?vue&type=style&index=0&id=36b94185&lang=scss&scoped=true&\"","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","// Interface for point data structure used e.g. in SignaturePad#fromData method\nexport interface BasicPoint {\n x: number;\n y: number;\n time: number;\n}\n\nexport class Point implements BasicPoint {\n public time: number;\n\n constructor(public x: number, public y: number, time?: number) {\n this.time = time || Date.now();\n }\n\n public distanceTo(start: BasicPoint): number {\n return Math.sqrt(\n Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2),\n );\n }\n\n public equals(other: BasicPoint): boolean {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n }\n\n public velocityFrom(start: BasicPoint): number {\n return this.time !== start.time\n ? this.distanceTo(start) / (this.time - start.time)\n : 0;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n// Slightly simplified version of http://stackoverflow.com/a/27078401/815507\n\nexport function throttle(\n fn: (...args: any[]) => any,\n wait = 250,\n): (this: any, ...args: any[]) => any {\n let previous = 0;\n let timeout: number | null = null;\n let result: any;\n let storedContext: any;\n let storedArgs: any[];\n\n const later = (): void => {\n previous = Date.now();\n timeout = null;\n result = fn.apply(storedContext, storedArgs);\n\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n };\n\n return function wrapper(this: any, ...args: any[]): any {\n const now = Date.now();\n const remaining = wait - (now - previous);\n\n storedContext = this;\n storedArgs = args;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = fn.apply(storedContext, storedArgs);\n\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n } else if (!timeout) {\n timeout = window.setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n","import { BasicPoint, Point } from './point';\n\nexport class Bezier {\n public static fromPoints(\n points: Point[],\n widths: { start: number; end: number },\n ): Bezier {\n const c2 = this.calculateControlPoints(points[0], points[1], points[2]).c2;\n const c3 = this.calculateControlPoints(points[1], points[2], points[3]).c1;\n\n return new Bezier(points[1], c2, c3, points[2], widths.start, widths.end);\n }\n\n private static calculateControlPoints(\n s1: BasicPoint,\n s2: BasicPoint,\n s3: BasicPoint,\n ): {\n c1: BasicPoint;\n c2: BasicPoint;\n } {\n const dx1 = s1.x - s2.x;\n const dy1 = s1.y - s2.y;\n const dx2 = s2.x - s3.x;\n const dy2 = s2.y - s3.y;\n\n const m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n const m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n const l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n const l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n const dxm = m1.x - m2.x;\n const dym = m1.y - m2.y;\n\n const k = l2 / (l1 + l2);\n const cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n const tx = s2.x - cm.x;\n const ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty),\n };\n }\n\n constructor(\n public startPoint: Point,\n public control2: BasicPoint,\n public control1: BasicPoint,\n public endPoint: Point,\n public startWidth: number,\n public endWidth: number,\n ) {}\n\n // Returns approximated length. Code taken from https://www.lemoda.net/maths/bezier-length/index.html.\n public length(): number {\n const steps = 10;\n let length = 0;\n let px;\n let py;\n\n for (let i = 0; i <= steps; i += 1) {\n const t = i / steps;\n const cx = this.point(\n t,\n this.startPoint.x,\n this.control1.x,\n this.control2.x,\n this.endPoint.x,\n );\n const cy = this.point(\n t,\n this.startPoint.y,\n this.control1.y,\n this.control2.y,\n this.endPoint.y,\n );\n\n if (i > 0) {\n const xdiff = cx - (px as number);\n const ydiff = cy - (py as number);\n\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n\n px = cx;\n py = cy;\n }\n\n return length;\n }\n\n // Calculate parametric value of x or y given t and the four point coordinates of a cubic bezier curve.\n private point(\n t: number,\n start: number,\n c1: number,\n c2: number,\n end: number,\n ): number {\n // prettier-ignore\n return ( start * (1.0 - t) * (1.0 - t) * (1.0 - t))\n + (3.0 * c1 * (1.0 - t) * (1.0 - t) * t)\n + (3.0 * c2 * (1.0 - t) * t * t)\n + ( end * t * t * t);\n }\n}\n","import { Point, BasicPoint } from 'signature_pad/src/point'\nimport { throttle } from 'signature_pad/src/throttle'\nimport { Bezier } from 'signature_pad/src/bezier'\n\ndeclare global {\n interface CSSStyleDeclaration {\n msTouchAction: string;\n }\n}\n\nexport interface Options {\n dotSize?: number | (() => number);\n minWidth?: number;\n maxWidth?: number;\n minDistance?: number;\n backgroundColor?: string;\n penColor?: string;\n throttle?: number;\n velocityFilterWeight?: number;\n onBegin?: (event: MouseEvent | Touch) => void;\n onEnd?: (event: MouseEvent | Touch) => void;\n}\n\nexport interface PointGroup {\n color: string;\n points: BasicPoint[];\n}\n\nexport default class SignaturePad {\n // Public stuff\n public dotSize: number | (() => number)\n public minWidth: number\n public maxWidth: number\n public minDistance: number\n public backgroundColor: string\n public penColor: string\n public throttle: number\n public velocityFilterWeight: number\n public onBegin?: (event: MouseEvent | Touch) => void\n public onEnd?: (event: MouseEvent | Touch) => void\n\n // Private stuff\n /* tslint:disable: variable-name */\n private _ctx: CanvasRenderingContext2D\n private _mouseButtonDown: boolean\n private _isEmpty: boolean\n private _lastPoints: Point[] // Stores up to 4 most recent points used to generate a new curve\n private _data: PointGroup[] // Stores all points in groups (one group per line or dot)\n private _lastVelocity: number\n private _lastWidth: number\n private _strokeMoveUpdate: (event: MouseEvent | Touch) => void\n /* tslint:enable: variable-name */\n\n constructor (\n private canvas: HTMLCanvasElement,\n private options: Options = {}\n ) {\n this.velocityFilterWeight = options.velocityFilterWeight || 0.7\n this.minWidth = options.minWidth || 0.5\n this.maxWidth = options.maxWidth || 2.5\n this.throttle = ('throttle' in options ? options.throttle : 16) as number // in milisecondss\n this.minDistance = ('minDistance' in options\n ? options.minDistance\n : 5) as number // in pixels\n this.dotSize =\n options.dotSize ||\n function dotSize (this: SignaturePad): number {\n return (this.minWidth + this.maxWidth) / 2\n }\n this.penColor = options.penColor || 'black'\n this.backgroundColor = options.backgroundColor || 'rgba(0,0,0,0)'\n this.onBegin = options.onBegin\n this.onEnd = options.onEnd\n\n this._strokeMoveUpdate = this.throttle\n ? throttle(SignaturePad.prototype._strokeUpdate, this.throttle)\n : SignaturePad.prototype._strokeUpdate\n this._ctx = canvas.getContext('2d') as CanvasRenderingContext2D\n\n this.clear()\n\n // Enable mouse and touch event handlers\n this.on()\n }\n\n public clear (): void {\n const { _ctx: ctx, canvas } = this\n\n // Clear canvas using background color\n ctx.fillStyle = this.backgroundColor\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n this._data = []\n this._reset()\n this._isEmpty = true\n }\n\n public fromDataURL (\n dataUrl: string,\n options: { ratio?: number; width?: number; height?: number } = {},\n callback?: (error?: string | Event) => void\n ): void {\n const image = new Image()\n const ratio = options.ratio || window.devicePixelRatio || 1\n const width = options.width || this.canvas.width / ratio\n const height = options.height || this.canvas.height / ratio\n\n this._reset()\n\n image.onload = (): void => {\n this._ctx.drawImage(image, 0, 0, width, height)\n if (callback) {\n callback()\n }\n }\n image.onerror = (error): void => {\n if (callback) {\n callback(error)\n }\n }\n image.src = dataUrl\n\n this._isEmpty = false\n }\n\n public toDataURL (type = 'image/png', encoderOptions?: number): string {\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG()\n default:\n return this.canvas.toDataURL(type, encoderOptions)\n }\n }\n\n public on (): void {\n // Disable panning/zooming when touching canvas element\n this.canvas.style.touchAction = 'none'\n this.canvas.style.msTouchAction = 'none'\n\n if (window.PointerEvent) {\n this._handlePointerEvents()\n } else {\n this._handleMouseEvents()\n\n if ('ontouchstart' in window) {\n this._handleTouchEvents()\n }\n }\n }\n\n public off (): void {\n // Enable panning/zooming when touching canvas element\n this.canvas.style.touchAction = 'auto'\n this.canvas.style.msTouchAction = 'auto'\n\n this.canvas.removeEventListener('pointerdown', this._handleMouseDown)\n this.canvas.removeEventListener('pointermove', this._handleMouseMove)\n document.removeEventListener('pointerup', this._handleMouseUp)\n\n this.canvas.removeEventListener('mousedown', this._handleMouseDown)\n this.canvas.removeEventListener('mousemove', this._handleMouseMove)\n document.removeEventListener('mouseup', this._handleMouseUp)\n\n this.canvas.removeEventListener('touchstart', this._handleTouchStart)\n this.canvas.removeEventListener('touchmove', this._handleTouchMove)\n this.canvas.removeEventListener('touchend', this._handleTouchEnd)\n }\n\n public isEmpty (): boolean {\n return this._isEmpty\n }\n\n public fromData (pointGroups: PointGroup[]): void {\n this.clear()\n\n this._fromData(\n pointGroups,\n ({ color, curve }) => this._drawCurve({ color, curve }),\n ({ color, point }) => this._drawDot({ color, point })\n )\n\n this._data = pointGroups\n }\n\n public toData (): PointGroup[] {\n return this._data\n }\n\n // Event handlers\n private _handleMouseDown = (event: MouseEvent): void => {\n if (event.which === 1) {\n this._mouseButtonDown = true\n this._strokeBegin(event)\n }\n }\n\n private _handleMouseMove = (event: MouseEvent): void => {\n if (this._mouseButtonDown) {\n this._strokeMoveUpdate(event)\n }\n }\n\n private _handleMouseUp = (event: MouseEvent): void => {\n if (event.which === 1 && this._mouseButtonDown) {\n this._mouseButtonDown = false\n this._strokeEnd(event)\n }\n }\n\n private _handleTouchStart = (event: TouchEvent): void => {\n // Prevent scrolling.\n event.preventDefault()\n\n if (event.targetTouches.length === 1) {\n const touch = event.changedTouches[0]\n this._strokeBegin(touch)\n }\n }\n\n private _handleTouchMove = (event: TouchEvent): void => {\n // Prevent scrolling.\n event.preventDefault()\n\n const touch = event.targetTouches[0]\n this._strokeMoveUpdate(touch)\n }\n\n private _handleTouchEnd = (event: TouchEvent): void => {\n const wasCanvasTouched = event.target === this.canvas\n if (wasCanvasTouched) {\n event.preventDefault()\n\n const touch = event.changedTouches[0]\n this._strokeEnd(touch)\n }\n }\n\n // Private methods\n private _strokeBegin (event: MouseEvent | Touch): void {\n const newPointGroup = {\n color: this.penColor,\n points: []\n }\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event)\n }\n\n this._data.push(newPointGroup)\n this._reset()\n this._strokeUpdate(event)\n }\n\n private _strokeUpdate (event: MouseEvent | Touch): void {\n if (this._data.length === 0) {\n // This can happen if clear() was called while a signature is still in progress,\n // or if there is a race condition between start/update events.\n this._strokeBegin(event)\n return\n }\n\n const x = event.clientX\n const y = event.clientY\n\n const point = this._createPoint(x, y)\n const lastPointGroup = this._data[this._data.length - 1]\n const lastPoints = lastPointGroup.points\n const lastPoint =\n lastPoints.length > 0 && lastPoints[lastPoints.length - 1]\n const isLastPointTooClose = lastPoint\n ? point.distanceTo(lastPoint) <= this.minDistance\n : false\n const color = lastPointGroup.color\n\n // Skip this point if it's too close to the previous one\n if (!lastPoint || !(lastPoint && isLastPointTooClose)) {\n const curve = this._addPoint(point)\n\n if (!lastPoint) {\n this._drawDot({ color, point })\n } else if (curve) {\n this._drawCurve({ color, curve })\n }\n\n lastPoints.push({\n time: point.time,\n x: point.x,\n y: point.y\n })\n }\n }\n\n private _strokeEnd (event: MouseEvent | Touch): void {\n this._strokeUpdate(event)\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event)\n }\n }\n\n private _handlePointerEvents (): void {\n this._mouseButtonDown = false\n\n this.canvas.addEventListener('pointerdown', this._handleMouseDown)\n this.canvas.addEventListener('pointermove', this._handleMouseMove)\n document.addEventListener('pointerup', this._handleMouseUp)\n }\n\n private _handleMouseEvents (): void {\n this._mouseButtonDown = false\n\n this.canvas.addEventListener('mousedown', this._handleMouseDown)\n this.canvas.addEventListener('mousemove', this._handleMouseMove)\n document.addEventListener('mouseup', this._handleMouseUp)\n }\n\n private _handleTouchEvents (): void {\n this.canvas.addEventListener('touchstart', this._handleTouchStart)\n this.canvas.addEventListener('touchmove', this._handleTouchMove)\n this.canvas.addEventListener('touchend', this._handleTouchEnd)\n }\n\n // Called when a new line is started\n private _reset (): void {\n this._lastPoints = []\n this._lastVelocity = 0\n this._lastWidth = (this.minWidth + this.maxWidth) / 2\n this._ctx.fillStyle = this.penColor\n }\n\n private _createPoint (x: number, y: number): Point {\n const rect = this.canvas.getBoundingClientRect()\n\n return new Point(x - rect.left, y - rect.top, new Date().getTime())\n }\n\n // Add point to _lastPoints array and generate a new curve if there are enough points (i.e. 3)\n private _addPoint (point: Point): Bezier | null {\n const { _lastPoints } = this\n\n _lastPoints.push(point)\n\n if (_lastPoints.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (_lastPoints.length === 3) {\n _lastPoints.unshift(_lastPoints[0])\n }\n\n // _points array will always have 4 points here.\n const widths = this._calculateCurveWidths(_lastPoints[1], _lastPoints[2])\n const curve = Bezier.fromPoints(_lastPoints, widths)\n\n // Remove the first element from the list, so that there are no more than 4 points at any time.\n _lastPoints.shift()\n\n return curve\n }\n\n return null\n }\n\n private _calculateCurveWidths (\n startPoint: Point,\n endPoint: Point\n ): { start: number; end: number } {\n const velocity =\n this.velocityFilterWeight * endPoint.velocityFrom(startPoint) +\n (1 - this.velocityFilterWeight) * this._lastVelocity\n\n const newWidth = this._strokeWidth(velocity)\n\n const widths = {\n end: newWidth,\n start: this._lastWidth\n }\n\n this._lastVelocity = velocity\n this._lastWidth = newWidth\n\n return widths\n }\n\n private _strokeWidth (velocity: number): number {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth)\n }\n\n private _drawCurveSegment (x: number, y: number, width: number): void {\n const ctx = this._ctx\n\n ctx.moveTo(x, y)\n ctx.arc(x, y, width, 0, 2 * Math.PI, false)\n this._isEmpty = false\n }\n\n private _drawCurve ({ color, curve }: { color: string; curve: Bezier }): void {\n const ctx = this._ctx\n const widthDelta = curve.endWidth - curve.startWidth\n // '2' is just an arbitrary number here. If only lenght is used, then\n // there are gaps between curve segments :/\n const drawSteps = Math.floor(curve.length()) * 2\n\n ctx.beginPath()\n ctx.fillStyle = color\n\n for (let i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n const t = i / drawSteps\n const tt = t * t\n const ttt = tt * t\n const u = 1 - t\n const uu = u * u\n const uuu = uu * u\n\n let x = uuu * curve.startPoint.x\n x += 3 * uu * t * curve.control1.x\n x += 3 * u * tt * curve.control2.x\n x += ttt * curve.endPoint.x\n\n let y = uuu * curve.startPoint.y\n y += 3 * uu * t * curve.control1.y\n y += 3 * u * tt * curve.control2.y\n y += ttt * curve.endPoint.y\n\n const width = Math.min(\n curve.startWidth + ttt * widthDelta,\n this.maxWidth\n )\n this._drawCurveSegment(x, y, width)\n }\n\n ctx.closePath()\n ctx.fill()\n }\n\n private _drawDot ({\n color,\n point\n }: {\n color: string;\n point: BasicPoint;\n }): void {\n const ctx = this._ctx\n const width =\n typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize\n\n ctx.beginPath()\n this._drawCurveSegment(point.x, point.y, width)\n ctx.closePath()\n ctx.fillStyle = color\n ctx.fill()\n }\n\n private _fromData (\n pointGroups: PointGroup[],\n drawCurve: SignaturePad['_drawCurve'],\n drawDot: SignaturePad['_drawDot']\n ): void {\n for (const group of pointGroups) {\n const { color, points } = group\n\n if (points.length > 1) {\n for (let j = 0; j < points.length; j += 1) {\n const basicPoint = points[j]\n const point = new Point(basicPoint.x, basicPoint.y, basicPoint.time)\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color\n\n if (j === 0) {\n this._reset()\n }\n\n const curve = this._addPoint(point)\n\n if (curve) {\n drawCurve({ color, curve })\n }\n }\n } else {\n this._reset()\n\n drawDot({\n color,\n point: points[0]\n })\n }\n }\n }\n\n private _toSVG (): string {\n const pointGroups = this._data\n // Custom devicePixelRatio as ipad has higher DPI than desktop\n // When that happens, the maxX and maxY will be reduced, hence\n // configure it to maximum of 1. To be monitored.\n // https://github.com/szimek/signature_pad/issues/428\n let devicePixelRatio = window.devicePixelRatio\n if (devicePixelRatio > 1) devicePixelRatio = 1\n const ratio = Math.max(devicePixelRatio || 1, 1)\n const minX = 0\n const minY = 0\n const maxX = this.canvas.width / ratio\n const maxY = this.canvas.height / ratio\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n\n svg.setAttribute('width', this.canvas.width.toString())\n svg.setAttribute('height', this.canvas.height.toString())\n\n this._fromData(\n pointGroups,\n\n ({ color, curve }: { color: string; curve: Bezier }) => {\n const path = document.createElement('path')\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n /* eslint-disable no-restricted-globals */\n if (\n !isNaN(curve.control1.x) &&\n !isNaN(curve.control1.y) &&\n !isNaN(curve.control2.x) &&\n !isNaN(curve.control2.y)\n ) {\n const attr =\n `M ${curve.startPoint.x.toFixed(3)},${curve.startPoint.y.toFixed(\n 3\n )} ` +\n `C ${curve.control1.x.toFixed(3)},${curve.control1.y.toFixed(3)} ` +\n `${curve.control2.x.toFixed(3)},${curve.control2.y.toFixed(3)} ` +\n `${curve.endPoint.x.toFixed(3)},${curve.endPoint.y.toFixed(3)}`\n path.setAttribute('d', attr)\n path.setAttribute('stroke-width', (curve.endWidth * 2.25).toFixed(3))\n path.setAttribute('stroke', color)\n path.setAttribute('fill', 'none')\n path.setAttribute('stroke-linecap', 'round')\n\n svg.appendChild(path)\n }\n /* eslint-enable no-restricted-globals */\n },\n\n ({ color, point }: { color: string; point: BasicPoint }) => {\n const circle = document.createElement('circle')\n const dotSize =\n typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize\n circle.setAttribute('r', dotSize.toString())\n circle.setAttribute('cx', point.x.toString())\n circle.setAttribute('cy', point.y.toString())\n circle.setAttribute('fill', color)\n\n svg.appendChild(circle)\n }\n )\n\n const prefix = 'data:image/svg+xml;base64,'\n const header =\n ''\n let body = svg.innerHTML\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n const dummy = document.createElement('dummy')\n const nodes = svg.childNodes\n dummy.innerHTML = ''\n\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true))\n }\n\n body = dummy.innerHTML\n }\n\n const footer = ''\n const data = header + body + footer\n\n return prefix + btoa(data)\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputModal),expression:\"inputModal\"}],staticClass:\"decimal-input\",attrs:{\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputModal)},on:{\"keyup\":function($event){return _vm.triggerKeyEvent($event)},\"keydown\":function($event){return _vm.triggerKeyEvent($event)},\"keypress\":function($event){return _vm.numberAndDecimalOnly($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}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\n\n@Component\nexport default class AppDecimalNumber extends Vue {\n @Prop() inputValue\n @Prop({ default: 2 }) decimal?: number\n @Prop({ default: false }) disabled?: boolean\n\n inputModal = ''\n textIsSelected = false\n valueChange = false\n\n numberAndDecimalOnly (evt) {\n evt = (evt) || window.event\n const keyCode = (evt.which) ? evt.which : evt.keyCode\n\n const currentValue = evt.target.value\n this.valueChange = true\n if (this.textIsSelected) {\n if (this.isNonNumberAndNonDecimal(keyCode)) {\n evt.preventDefault()\n } else {\n this.textIsSelected = false\n }\n return true\n }\n\n if (this.isNonNumberAndNonDecimal(keyCode)) {\n evt.preventDefault()\n }\n\n if (this.isDecimal(keyCode)) {\n if (!this.allowDecimal) {\n evt.preventDefault()\n }\n if (currentValue.indexOf('.') >= 0) {\n evt.preventDefault() // cannot key in more than 1 decimal\n }\n }\n\n if (this.decimal) { // constraint to decimal length that can enter\n const number = currentValue.split('.')\n let caratPos = currentValue.length\n if (evt.srcElement.selectionStart || evt.srcElement.selectionStart === '0') {\n caratPos = evt.srcElement.selectionStart\n }\n const dotPos = currentValue.indexOf('.')\n if (caratPos > dotPos && dotPos > -1 && number[1].length > this.decimal - 1) {\n evt.preventDefault()\n }\n }\n }\n\n triggerKeyEvent () {\n this.valueChange = true\n }\n\n get allowDecimal () {\n return this.decimal !== 0\n }\n\n isNonNumberAndNonDecimal (keyCode) {\n if (!this.allowDecimal) return this.isNonNumber(keyCode)\n return this.isNonNumber(keyCode) && (this.allowDecimal && !this.isDecimal(keyCode))\n }\n\n isDecimal (keyCode) {\n return keyCode === 46\n }\n\n isNonNumber (keyCode) {\n // not number and not decimal\n return keyCode > 31 && (keyCode < 48 || keyCode > 57)\n }\n\n onBlur () {\n if (!this.valueChange && !this.inputModal) { // if user only tap on and tap out the empty field and no edit anything\n this.inputModal = this.formatValue(undefined)\n return // no need emit value as there is no value, so that undefined is saved\n }\n\n this.inputModal = this.formatValue(this.inputModal)\n this.$emit('input', this.formatValue(this.inputModal, 'num')) // should convert to number type when return back\n }\n\n onFocus () {\n // convert string to number\n this.valueChange = false\n this.inputModal = this.inputModal.replaceAll(',', '')\n }\n\n onSelect () {\n this.textIsSelected = true\n this.valueChange = false\n }\n\n formatValue (source, convertTo: 'str' | 'num' = 'str') {\n if (typeof source === 'string') {\n if (source) {\n source = Number(source.replaceAll(',', ''))\n } else if (source === '' && this.valueChange) {\n source = 0 // so that when clear value, it is auto set to 0\n }\n } else if (source === undefined || source == null) {\n source = ''\n }\n\n if (convertTo === 'str') {\n if (source === '') return source\n const formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: this.decimal ?? 0,\n maximumFractionDigits: this.decimal ?? 8\n })\n return formatter.format(source)\n }\n\n if (!source) {\n return 0\n }\n\n return source\n }\n\n @Watch('inputValue')\n inputValueOnChange () {\n if (this.inputValue) {\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!./AppDecimalNumber.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!./AppDecimalNumber.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppDecimalNumber.vue?vue&type=template&id=36b94185&scoped=true&\"\nimport script from \"./AppDecimalNumber.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppDecimalNumber.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppDecimalNumber.vue?vue&type=style&index=0&id=36b94185&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 \"36b94185\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}