{"version":3,"file":"js/app.8b13255a.js","mappings":"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D,0BAA2B,CAC1B,KACA,KACA,KACA,KACA,MAED,wBAAyB,CACxB,MACA,KACA,KACA,KACA,MAED,kDAAmD,CAClD,MACA,KACA,KACA,KACA,KACA,MAED,wDAAyD,CACxD,MACA,KACA,KACA,KACA,MAED,0DAA2D,CAC1D,MACA,KACA,KACA,KACA,MAED,oDAAqD,CACpD,MACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,kCAAmC,CAClC,MACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,KAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,MAED,4BAA6B,CAC5B,KACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,MAED,sBAAuB,CACtB,KACA,KACA,KACA,KACA,MAED,0CAA2C,CAC1C,MACA,KACA,KACA,KACA,MAED,kDAAmD,CAClD,MACA,KACA,KACA,KACA,MAED,kDAAmD,CAClD,MACA,KACA,KACA,KACA,MAED,gDAAiD,CAChD,MACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,0BAA2B,CAC1B,MACA,KACA,KACA,KACA,MAED,sDAAuD,CACtD,MACA,KACA,KACA,KACA,MAED,8CAA+C,CAC9C,MACA,KACA,KACA,KACA,KAED,wCAAyC,CACxC,IACA,KACA,KACA,KACA,KAED,wCAAyC,CACxC,MACA,KACA,KACA,KACA,MAED,kCAAmC,CAClC,MACA,KACA,KACA,KACA,MAED,wBAAyB,CACxB,MACA,KACA,KACA,KACA,MAED,0BAA2B,CAC1B,MACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,MAED,kDAAmD,CAClD,MACA,KACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,MAED,0BAA2B,CAC1B,MACA,KACA,KACA,KACA,KAED,8BAA+B,CAC9B,MACA,KACA,KACA,KACA,MAED,wBAAyB,CACxB,MACA,KACA,KACA,KACA,MAED,4BAA6B,CAC5B,MACA,KACA,KACA,KACA,MAED,wCAAyC,CACxC,MACA,KACA,KACA,KACA,MAED,gEAAiE,CAChE,MACA,KACA,KACA,KACA,MAED,oDAAqD,CACpD,MACA,KACA,KACA,KACA,MAED,sDAAuD,CACtD,MACA,KACA,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,KACA,KACA,OAGF,SAAS0b,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAE7b,EAAK2b,GAC9B,OAAOvgB,QAAQiR,UAAUH,MAAK,WAC7B,IAAI4I,EAAI,IAAIgH,MAAM,uBAAyBH,EAAM,KAEjD,MADA7G,EAAEiH,KAAO,mBACHjH,CACP,IAGD,IAAIkH,EAAMhc,EAAI2b,GAAM5f,EAAKigB,EAAI,GAC7B,OAAO5gB,QAAQC,IAAI2gB,EAAI5K,MAAM,GAAGpR,IAAI4b,EAAoB9G,IAAI5I,MAAK,WAChE,OAAO0P,EAAoB7f,EAC5B,GACD,CACA2f,EAAoBxG,KAAO,WAAa,OAAOxN,OAAOwN,KAAKlV,EAAM,EACjE0b,EAAoB3f,GAAK,MACzBkgB,EAAOC,QAAUR,C,wBC1TjB,IAAI1b,EAAM,CACT,uBAAwB,CACvB,MACA,KACA,KACA,KACA,IACA,MAED,yCAA0C,CACzC,MACA,IACA,MAED,wBAAyB,CACxB,MACA,KACA,MAED,sBAAuB,CACtB,MACA,KACA,MAED,wDAAyD,CACxD,MACA,IACA,MAED,4CAA6C,CAC5C,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,gCAAiC,CAChC,MACA,KACA,MAED,kCAAmC,CAClC,MACA,KACA,KACA,KACA,MAED,kCAAmC,CAClC,MACA,MAED,0BAA2B,CAC1B,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,+BAAgC,CAC/B,MACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,MAED,kCAAmC,CAClC,MACA,KACA,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,MAED,wCAAyC,CACxC,MACA,KACA,KACA,KACA,MAED,gDAAiD,CAChD,MACA,KACA,KACA,MAED,gDAAiD,CAChD,MACA,KACA,KACA,KACA,MAED,8CAA+C,CAC9C,MACA,KACA,KACA,MAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,MAED,oCAAqC,CACpC,KACA,KACA,MAED,wBAAyB,CACxB,MACA,MAED,oDAAqD,CACpD,MACA,KACA,MAED,4CAA6C,CAC5C,MACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,gCAAiC,CAChC,MACA,MAED,sBAAuB,CACtB,MACA,KACA,KAED,oCAAqC,CACpC,MACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MAED,kCAAmC,CAClC,MACA,KAED,wBAAyB,CACxB,MACA,KACA,KACA,KACA,MAED,4BAA6B,CAC5B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,0BAA2B,CAC1B,MACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,MAED,8DAA+D,CAC9D,MACA,MAED,kDAAmD,CAClD,KACA,KACA,KACA,KACA,KACA,MAED,oDAAqD,CACpD,MACA,KACA,MAED,kBAAmB,CAClB,MACA,KACA,KACA,OAGF,SAAS0b,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAE7b,EAAK2b,GAC9B,OAAOvgB,QAAQiR,UAAUH,MAAK,WAC7B,IAAI4I,EAAI,IAAIgH,MAAM,uBAAyBH,EAAM,KAEjD,MADA7G,EAAEiH,KAAO,mBACHjH,CACP,IAGD,IAAIkH,EAAMhc,EAAI2b,GAAM5f,EAAKigB,EAAI,GAC7B,OAAO5gB,QAAQC,IAAI2gB,EAAI5K,MAAM,GAAGpR,IAAI4b,EAAoB9G,IAAI5I,MAAK,WAChE,OAAO0P,EAAoB7f,EAC5B,GACD,CACA2f,EAAoBxG,KAAO,WAAa,OAAOxN,OAAOwN,KAAKlV,EAAM,EACjE0b,EAAoB3f,GAAK,MACzBkgB,EAAOC,QAAUR,C,wBCrQjB,IAAI1b,EAAM,CACT,0BAA2B,CAC1B,MACA,KACA,KACA,KACA,IACA,MAED,4CAA6C,CAC5C,MACA,IACA,MAED,2BAA4B,CAC3B,MACA,KACA,MAED,yBAA0B,CACzB,MACA,KACA,MAED,mDAAoD,CACnD,MACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,2DAA4D,CAC3D,MACA,IACA,MAED,uCAAwC,CACvC,MACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,mCAAoC,CACnC,MACA,KACA,MAED,qCAAsC,CACrC,MACA,KACA,KACA,KACA,MAED,qCAAsC,CACrC,MACA,KAED,6BAA8B,CAC7B,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,qCAAsC,CACrC,MACA,KACA,KACA,KACA,MAED,uBAAwB,CACvB,MACA,KACA,MAED,2CAA4C,CAC3C,MACA,KACA,KACA,KACA,MAED,mDAAoD,CACnD,MACA,KACA,KACA,MAED,mDAAoD,CACnD,MACA,KACA,KACA,KACA,MAED,iDAAkD,CACjD,KACA,KACA,KACA,MAED,uCAAwC,CACvC,MACA,KACA,KACA,KACA,MAED,uCAAwC,CACvC,MACA,KACA,KAED,2BAA4B,CAC3B,MACA,MAED,uDAAwD,CACvD,MACA,KACA,MAED,+CAAgD,CAC/C,MACA,KACA,KACA,KACA,KAED,yCAA0C,CACzC,MACA,KACA,KACA,KACA,MAED,yCAA0C,CACzC,MACA,KACA,KACA,KACA,MAED,mCAAoC,CACnC,MACA,MAED,yBAA0B,CACzB,KACA,KACA,MAED,mDAAoD,CACnD,MACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MAED,uCAAwC,CACvC,MACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MAED,qCAAsC,CACrC,MACA,KAED,2BAA4B,CAC3B,KACA,KACA,KACA,KACA,MAED,+BAAgC,CAC/B,MACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,KACA,IACA,MAED,yBAA0B,CACzB,MACA,MAED,6BAA8B,CAC7B,MACA,KACA,MAED,yCAA0C,CACzC,MACA,KACA,KACA,KACA,MAED,iEAAkE,CACjE,MACA,MAED,qDAAsD,CACrD,MACA,KACA,KACA,KACA,KACA,MAED,uDAAwD,CACvD,KACA,KACA,MAED,qBAAsB,CACrB,MACA,KACA,KACA,OAGF,SAAS0b,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAE7b,EAAK2b,GAC9B,OAAOvgB,QAAQiR,UAAUH,MAAK,WAC7B,IAAI4I,EAAI,IAAIgH,MAAM,uBAAyBH,EAAM,KAEjD,MADA7G,EAAEiH,KAAO,mBACHjH,CACP,IAGD,IAAIkH,EAAMhc,EAAI2b,GAAM5f,EAAKigB,EAAI,GAC7B,OAAO5gB,QAAQC,IAAI2gB,EAAI5K,MAAM,GAAGpR,IAAI4b,EAAoB9G,IAAI5I,MAAK,WAChE,OAAO0P,EAAoB7f,EAC5B,GACD,CACA2f,EAAoBxG,KAAO,WAAa,OAAOxN,OAAOwN,KAAKlV,EAAM,EACjE0b,EAAoB3f,GAAK,MACzBkgB,EAAOC,QAAUR,C,wBC1QjB,IAAI1b,EAAM,CACT,qCAAsC,CACrC,MACA,MAED,wBAAyB,CACxB,MACA,MAED,0CAA2C,CAC1C,MACA,MAED,yBAA0B,CACzB,MACA,MAED,uBAAwB,CACvB,KACA,MAED,oDAAqD,CACpD,MACA,KACA,KACA,MAED,iDAAkD,CACjD,MACA,KACA,KACA,KACA,KACA,MAED,uDAAwD,CACvD,MACA,IACA,MAED,yDAA0D,CACzD,MACA,MAED,sDAAuD,CACtD,MACA,IACA,MAED,mDAAoD,CACnD,MACA,IACA,MAED,wCAAyC,CACxC,MACA,KACA,KACA,MAED,qCAAsC,CACrC,MACA,KACA,KACA,KACA,KACA,KACA,MAED,iCAAkC,CACjC,MACA,MAED,6CAA8C,CAC7C,MACA,KACA,KACA,KACA,MAED,6CAA8C,CAC7C,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,MAED,uCAAwC,CACvC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,mCAAoC,CACnC,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,MAED,sCAAuC,CACtC,MACA,KACA,KACA,MAED,2BAA4B,CAC3B,MACA,KAED,mCAAoC,CACnC,MACA,MAED,qBAAsB,CACrB,KACA,MAED,yCAA0C,CACzC,MACA,MAED,iDAAkD,CACjD,MACA,MAED,iDAAkD,CACjD,MACA,MAED,+CAAgD,CAC/C,MACA,MAED,qCAAsC,CACrC,MACA,KAED,qCAAsC,CACrC,MACA,MAED,yBAA0B,CACzB,MACA,MAED,qDAAsD,CACrD,MACA,MAED,6CAA8C,CAC7C,MACA,MAED,uCAAwC,CACvC,MACA,KAED,uCAAwC,CACvC,MACA,MAED,iCAAkC,CACjC,MACA,MAED,uBAAwB,CACvB,MACA,MAED,4BAA6B,CAC5B,MACA,KACA,KACA,IACA,MAED,yBAA0B,CACzB,MACA,KACA,KACA,IACA,KACA,KACA,MAED,mCAAoC,CACnC,MACA,MAED,oDAAqD,CACpD,MACA,KACA,KACA,IACA,KACA,KACA,KACA,MAED,iDAAkD,CACjD,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,MAED,wCAAyC,CACxC,MACA,KACA,MAED,qCAAsC,CACrC,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,MAED,mCAAoC,CACnC,MACA,KACA,KACA,KACA,KACA,MAED,mCAAoC,CACnC,MACA,MAED,yBAA0B,CACzB,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,uBAAwB,CACvB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,uCAAwC,CACvC,MACA,MAED,+DAAgE,CAC/D,MACA,MAED,mDAAoD,CACnD,MACA,MAED,qDAAsD,CACrD,MACA,MAED,mBAAoB,CACnB,MACA,OAGF,SAAS0b,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAE7b,EAAK2b,GAC9B,OAAOvgB,QAAQiR,UAAUH,MAAK,WAC7B,IAAI4I,EAAI,IAAI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AW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WA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","sources":["webpack://vitalitybrokers/./src/composables/index.ts","webpack://vitalitybrokers/./src/class-component-hooks.ts","webpack://vitalitybrokers/./src/plugins/bootstrap-vue.ts","webpack://vitalitybrokers/./src/plugins/vee-validate.ts","webpack://vitalitybrokers/./src/App.tsx","webpack://vitalitybrokers/./src/registerServiceWorker.ts","webpack://vitalitybrokers/./src/main.ts","webpack://vitalitybrokers/./src/models/BaseComponent.ts","webpack://vitalitybrokers/./src/components/Footer.tsx","webpack://vitalitybrokers/./src/views/customer/CustomerMain.tsx","webpack://vitalitybrokers/./src/views/Home.tsx","webpack://vitalitybrokers/./src/views/Main.tsx","webpack://vitalitybrokers/./src/router/index.ts","webpack://vitalitybrokers/./src/store/index.ts","webpack://vitalitybrokers/./src/store/modules/grid.ts","webpack://vitalitybrokers/./src/utils/index.ts","webpack://vitalitybrokers/./src/validation/rules/dateAfter.ts","webpack://vitalitybrokers/./src/validation/rules/dateBefore.ts","webpack://vitalitybrokers/./src/validation/rules/dateBetween.ts","webpack://vitalitybrokers/./src/validation/rules/dateFormat.ts","webpack://vitalitybrokers/./src/validation/rules/email.ts","webpack://vitalitybrokers/./src/validation/rules/lengthBetween.ts","webpack://vitalitybrokers/./src/validation/rules/name.ts","webpack://vitalitybrokers/./src/validation/rules/phoneNumber.ts","webpack://vitalitybrokers/./src/validation/rules/postcode.ts","webpack://vitalitybrokers/./src/validation/rules/sortCode.ts","webpack://vitalitybrokers/./src/validation/rules/url.ts","webpack://vitalitybrokers/./src/validation/rules/accountNumber.ts","webpack://vitalitybrokers/./src/components/ExpandTransition.tsx","webpack://vitalitybrokers/./src/components/MySpinner.tsx","webpack://vitalitybrokers/./src/models/StateComponent.tsx","webpack://vitalitybrokers/./src/views/ lazy ^\\.\\/.*\\/.*Grid$ namespace object","webpack://vitalitybrokers/./src/views/ lazy ^\\.\\/.*\\/.*New$ namespace object","webpack://vitalitybrokers/./src/views/ lazy ^\\.\\/.*\\/.*Update$ namespace object","webpack://vitalitybrokers/./src/views/ lazy ^\\.\\/.*\\/.*View$ namespace object","webpack://vitalitybrokers/webpack/bootstrap","webpack://vitalitybrokers/webpack/runtime/chunk loaded","webpack://vitalitybrokers/webpack/runtime/compat get default export","webpack://vitalitybrokers/webpack/runtime/define property getters","webpack://vitalitybrokers/webpack/runtime/ensure chunk","webpack://vitalitybrokers/webpack/runtime/get javascript chunk filename","webpack://vitalitybrokers/webpack/runtime/get mini-css chunk filename","webpack://vitalitybrokers/webpack/runtime/global","webpack://vitalitybrokers/webpack/runtime/hasOwnProperty shorthand","webpack://vitalitybrokers/webpack/runtime/load script","webpack://vitalitybrokers/webpack/runtime/make namespace object","webpack://vitalitybrokers/webpack/runtime/node module decorator","webpack://vitalitybrokers/webpack/runtime/publicPath","webpack://vitalitybrokers/webpack/runtime/css loading","webpack://vitalitybrokers/webpack/runtime/jsonp chunk loading","webpack://vitalitybrokers/webpack/startup"],"sourcesContent":["import { pdfArea } from \"~/router\"\r\nimport { isRoute } from \"~/utils\"\r\nimport { computed } from 'vue'\r\nimport { useRoute } from 'vue-router/composables'\r\n\r\nexport const useArea = () => {\r\n\r\n const route = useRoute()\r\n\r\n const isArea = (area: string) =>\r\n isRoute(route, `/${area}`)\r\n\r\n const isPdfPage = computed(() => isArea(pdfArea))\r\n\r\n return {\r\n isPdfPage\r\n }\r\n}\r\n\r\nexport const useApi = () => {\r\n\r\n const route = useRoute()\r\n\r\n const path = computed(() => route.meta?.apiUrl as string | undefined ?? '')\r\n\r\n const entityId = computed(() => route.params['id'])\r\n\r\n const entityPath = computed(() => `${path.value}/${entityId.value}`)\r\n\r\n return {\r\n path,\r\n entityId,\r\n entityPath\r\n }\r\n}","import Component from 'vue-class-component'\r\n\r\n// Register the router hooks with their names\r\nComponent.registerHooks([\r\n 'beforeRouteEnter',\r\n 'beforeRouteLeave',\r\n 'beforeRouteUpdate' // for vue-router 2.2+\r\n])\r\n","import Vue from 'vue'\r\nimport BootstrapVue, { VBTooltipPlugin, VBModalPlugin } from 'bootstrap-vue'\r\n\r\nimport '../../scss/bootstrap-vitality.scss'\r\n\r\nVue.use(BootstrapVue, {\r\n breakpoints: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'],\r\n\r\n BModal: {\r\n cancelVariant: 'outline-secondary'\r\n }\r\n})\r\n\r\nVue.use(VBTooltipPlugin)\r\nVue.use(VBModalPlugin)\r\n//Vue.use(SidebarPlugin)\r\n","import { configure, extend } from 'vee-validate'\r\nimport validationLocale from 'vee-validate/dist/locale/en.json'\r\nimport * as validationRules from 'vee-validate/dist/rules'\r\n\r\nimport {\r\n accountNumber,\r\n dateAfter,\r\n dateBefore,\r\n dateBetween,\r\n dateFormat,\r\n url,\r\n email,\r\n lengthBetween,\r\n name,\r\n phoneNumber,\r\n postcode,\r\n sortCode\r\n} from '~/validation'\r\n\r\nimport { formatDate } from '~/utils'\r\nimport { ValidationRule } from 'vee-validate/dist/types/types'\r\n\r\nconfigure({\r\n defaultMessage: 'The {_field_} is not valid'\r\n})\r\n\r\nfor (const rule in validationRules)\r\n extend(rule, {\r\n ...(validationRules as { [elem: string]: ValidationRule })[rule], // add the rule\r\n message: (validationLocale.messages as { [elem: string]: string })[rule]?.replace(' field', '') // add its message\r\n })\r\n\r\nextend('is', {\r\n ...validationRules.is,\r\n message: `The {_field_} has an invalid value`\r\n})\r\n\r\nextend('date_before', {\r\n ...dateBefore,\r\n message(field, params) {\r\n const max = params['max']\r\n const inclusion = params['inclusion']\r\n\r\n return `The ${field} must be ${inclusion ? 'on or' : ''} before ${formatDate(max)}`\r\n }\r\n})\r\n\r\nextend('date_after', {\r\n ...dateAfter,\r\n message(field, params) {\r\n const min = params['min'] as string\r\n const inclusion = params['inclusion'] as boolean\r\n\r\n return `The ${field} must be ${inclusion ? 'on or' : ''} after ${formatDate(min)}`\r\n }\r\n})\r\n\r\nextend('date_between', {\r\n ...dateBetween,\r\n message(field, params) {\r\n return `The ${field} must be ${params['inclusivity']?.startsWith('[') ? 'on or' : ''} after ${formatDate(params['min'])} and ${params['inclusivity']?.endsWith(']') ? 'on or' : ''} before ${formatDate(params['max'])}`\r\n }\r\n})\r\n\r\nextend('date_format', {\r\n ...dateFormat,\r\n message: 'The {_field_} must be in this date format: {format}'\r\n})\r\n\r\nextend('postcode', {\r\n ...postcode,\r\n message: 'The {_field_} must be a valid UK postcode'\r\n})\r\n\r\nextend('length_between', {\r\n ...lengthBetween,\r\n message: `The {_field_} must have e length between {min} and {max}`\r\n})\r\n\r\nextend('required', {\r\n ...validationRules.required,\r\n message(field, params) {\r\n return `The ${field} is required.${!params['allowFalse'] ? ' Please select to continue.' : ''}`\r\n }\r\n})\r\n\r\nextend('min', {\r\n ...validationRules.min,\r\n message: `The {_field_} must be at least {length} characters long`\r\n})\r\n\r\nextend('max', {\r\n ...validationRules.max,\r\n message: `The {_field_} must be less than {length} characters long`\r\n})\r\n\r\nextend('phone_number', {\r\n ...phoneNumber,\r\n message: `The {_field_} must be a valid phone number (e.g. +44 01234567890)`\r\n})\r\n\r\nextend('name', {\r\n ...name,\r\n message: `The {_field_} can only have the following special characters: \"'\" and \"-\"`\r\n})\r\n\r\nextend('sort_code', {\r\n ...sortCode,\r\n message: `The {_field_} must be a valid UK sort code (e.g. 12-34-56)`\r\n})\r\n\r\nextend('account_number', {\r\n ...accountNumber,\r\n message: `The {_field_} must be a valid UK account number (e.g. 12345678)`\r\n})\r\n\r\nextend('email', {\r\n ...email,\r\n message: `The {_field_} must be a valid email address (e.g. jane@domain.com)`\r\n})\r\n\r\nextend('url', {\r\n ...url,\r\n message: `The {_field_} must be a valid URL (e.g. domain.com)`\r\n})","import { Nullable } from '@/models'\r\nimport StateComponent from '~/models/StateComponent'\r\nimport { setSettings } from '~/utils'\r\nimport { BModal } from 'bootstrap-vue'\r\nimport { Component } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class App extends StateComponent {\r\n\r\n modal = false\r\n\r\n title: Nullable = null\r\n message: Nullable = null\r\n\r\n registration: Nullable = null\r\n\r\n refreshing = false\r\n updateModal = false\r\n\r\n get showHeader() {\r\n return !!this.title\r\n }\r\n\r\n swUpdatedListener(event: Event) {\r\n // The new service worker is installed, but not yet active.\r\n // Store the ServiceWorkerRegistration instance for later use.\r\n this.registration = (event as CustomEvent).detail\r\n this.updateModal = true\r\n }\r\n\r\n refreshApp() {\r\n this.updateModal = false\r\n\r\n // Protect against missing registration.waiting.\r\n if (!this.registration || !this.registration.waiting)\r\n return\r\n\r\n this.registration.waiting.postMessage('skipWaiting')\r\n }\r\n\r\n modalListener(event: Event) {\r\n const detail = (event as CustomEvent).detail as { title?: string, message: string }\r\n\r\n this.title = detail.title ?? null\r\n this.message = detail.message\r\n\r\n this.modal = true\r\n }\r\n\r\n onModalClosed() {\r\n\r\n const errors = this.$el.getElementsByClassName('is-invalid')\r\n\r\n if (errors.length > 0)\r\n errors[0]\r\n .scrollIntoView({ behavior: 'smooth' })\r\n }\r\n\r\n async created() {\r\n await setSettings()\r\n\r\n // Listen for swUpdated event and display refresh modal as required.\r\n document.addEventListener('swUpdated', this.swUpdatedListener, { once: true })\r\n\r\n document.addEventListener('modal', this.modalListener)\r\n\r\n // Refresh all open app tabs when a new service worker is installed.\r\n const serviceWorker = navigator.serviceWorker\r\n if (serviceWorker)\r\n serviceWorker.addEventListener('controllerchange', () => {\r\n if (this.refreshing)\r\n return\r\n\r\n this.refreshing = true\r\n\r\n location.reload()\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n \r\n\r\n \r\n Quick Quote has been updated. Please click OK to load the new version.\r\n \r\n \r\n {this.message}\r\n \r\n
\r\n )\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\n\r\nimport { register } from 'register-service-worker'\r\n\r\nif (process.env.NODE_ENV === 'production')\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready() {\r\n console.log(\r\n 'App is being served from cache by a service worker.\\n' +\r\n 'For more details, visit https://goo.gl/AFskqB'\r\n )\r\n },\r\n registered(registration) {\r\n console.log('Service worker has been registered.')\r\n\r\n // Routinely check for app updates by testing for a new service worker.\r\n setInterval(() => {\r\n registration.update()\r\n }, 1000 * 60 * 10)\r\n },\r\n cached() {\r\n console.log('Content has been cached for offline use.')\r\n },\r\n updatefound() {\r\n console.log('New content is downloading.')\r\n },\r\n updated(registration) {\r\n console.log('New content is available; please refresh.')\r\n\r\n document.dispatchEvent(\r\n new CustomEvent('swUpdated', { detail: registration })\r\n )\r\n },\r\n offline() {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n },\r\n error(error) {\r\n console.error('Error during service worker registration:', error)\r\n }\r\n })\r\n","import \"core-js/stable\"\r\nimport \"regenerator-runtime/runtime\"\r\n\r\n// doesn't work with class props\r\n//import 'reflect-metadata'\r\n\r\nimport '~/class-component-hooks'\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web'\r\n\r\nconst appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: '21b46ffd-6af6-438b-89b9-1cbc8b26e26b',\r\n enableAutoRouteTracking: true,\r\n enableCorsCorrelation: true,\r\n enableRequestHeaderTracking: true,\r\n enableResponseHeaderTracking: true,\r\n enableAjaxErrorStatusText: true,\r\n enableAjaxPerfTracking: true\r\n }\r\n})\r\n\r\nappInsights.loadAppInsights()\r\nappInsights.trackPageView()\r\n\r\nimport Vue from 'vue'\r\n\r\nimport '~/plugins/bootstrap-vue'\r\nimport '~/plugins/vee-validate'\r\n\r\nimport '../node_modules/azure-maps-control/dist/atlas.min.css'\r\n\r\nimport { Plugin } from 'vue-fragment'\r\nVue.use(Plugin)\r\n\r\nimport App from '~/App'\r\nimport '~/registerServiceWorker'\r\nimport router from '~/router'\r\nimport store from '~/store'\r\n\r\nVue.config.productionTip = false\r\n\r\nconst app = new Vue({\r\n router,\r\n store,\r\n render: (h) => h(App)\r\n})\r\n\r\napp.$mount('#app')\r\n","import { config } from '~/data/defaults.json'\r\nimport { adminArea, businessArea, customerArea, discountingArea, legacyArea, newBusinessArea, newPath, pdfArea, personalArea, processingArea, underwritingArea } from '~/router'\r\nimport { isRoute, postAsync } from '~/utils'\r\nimport { Component, Vue } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class BaseComponent extends Vue {\r\n\r\n get matchedRoutes() {\r\n return this.$route.matched.reverse()\r\n }\r\n\r\n get name() {\r\n return this.$route.meta?.entityName as string | undefined ?? ''\r\n }\r\n\r\n get apiUrl() {\r\n return this.$route.meta?.apiUrl as string | undefined ?? ''\r\n }\r\n\r\n get updateUrl() {\r\n return this.$route.meta?.updateUrl as string | undefined ?? ''\r\n }\r\n\r\n get routePath() {\r\n return this.$route.path\r\n }\r\n\r\n get createNewPath() {\r\n return `${this.routePath}/${newPath}`\r\n }\r\n\r\n isPage(page: string) {\r\n return (this.$route.path.split(\"/\").pop() || \"\").toLowerCase() === page.toLowerCase()\r\n }\r\n\r\n isArea(area: string) {\r\n return isRoute(this.$route, `/${area}`)\r\n }\r\n\r\n get isPdfPage() {\r\n return this.isArea(pdfArea)\r\n }\r\n\r\n get isCustomerPage() {\r\n return this.isArea(customerArea)\r\n }\r\n\r\n get isAdminPage() {\r\n return this.isArea(adminArea)\r\n }\r\n\r\n get isPersonalPage() {\r\n return this.isArea(personalArea)\r\n }\r\n\r\n get isBusinessPage() {\r\n return this.isArea(businessArea)\r\n }\r\n\r\n get isAdviserPage() {\r\n return this.isPersonalPage || this.isBusinessPage\r\n }\r\n\r\n get isLegacyPage() {\r\n return this.isArea(legacyArea)\r\n }\r\n\r\n get isNewBusinessPage() {\r\n return this.isArea(newBusinessArea)\r\n }\r\n\r\n get isProcessingPage() {\r\n return this.isArea(processingArea)\r\n }\r\n\r\n get isDiscountingPage() {\r\n return this.isArea(discountingArea)\r\n }\r\n\r\n get isUnderwritingPage() {\r\n return this.isArea(underwritingArea)\r\n }\r\n\r\n pageIsReady() {\r\n document.dispatchEvent(new CustomEvent(config.pageReadyEvent))\r\n }\r\n\r\n showModal(message: string, title?: string) {\r\n document.dispatchEvent(new CustomEvent('modal', { detail: { title, message } }))\r\n }\r\n\r\n async logOut() {\r\n const response = await postAsync('/Account/LogOut')\r\n\r\n if (response && response.status !== 400)\r\n window.location.reload()\r\n }\r\n\r\n // bubble up\r\n triggerDataReset() {\r\n this.$emit('reset')\r\n }\r\n}","import { BContainer } from 'bootstrap-vue'\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n functional: true,\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n

© {new Date().getFullYear()} Vitality Corporate Services Limited trading as VitalityHealth and VitalityLife. All rights reserved.

\r\n
\r\n
\r\n
\r\n )\r\n }\r\n})","import Footer from '~/components/Footer'\r\nimport BaseComponent from '~/models/BaseComponent'\r\nimport { customerArea, helpPath, loggedOutPath, loginPath, questionnairePath, submittedPath, updatePasswordPath, verifyPath } from '~/router'\r\nimport { BCollapse, BDropdownItem, BIconPersonCircle, BImg, BNavbar, BNavbarBrand, BNavbarNav, BNavbarToggle, BNavItem, BNavItemDropdown } from 'bootstrap-vue'\r\nimport { Component } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class CustomerMain extends BaseComponent {\r\n\r\n get isLoginPage() {\r\n return (\r\n this.routePath.startsWith(`/${customerArea}/${loginPath}`) ||\r\n this.routePath.startsWith(`/${customerArea}/${verifyPath}`)\r\n )\r\n }\r\n\r\n get isVerify() {\r\n return this.routePath.indexOf(verifyPath) > 0\r\n }\r\n\r\n get isQuestionnaire() {\r\n return this.routePath.indexOf(questionnairePath) > 0\r\n }\r\n\r\n get isSubmittedPage() {\r\n return this.routePath.endsWith(submittedPath)\r\n }\r\n\r\n async created() {\r\n if (this.routePath.endsWith(customerArea))\r\n await this.$router.push({ path: `/${customerArea}/${loggedOutPath}` })\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n !this.isLoginPage &&\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n {\r\n this.isQuestionnaire && !this.isSubmittedPage &&\r\n [\r\n How to complete this form,\r\n Update your password\r\n ]\r\n }\r\n\r\n {\r\n (this.isQuestionnaire || this.isVerify) &&\r\n \r\n \r\n\r\n Sign out\r\n\r\n \r\n }\r\n \r\n \r\n\r\n \r\n
\r\n }\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n )\r\n }\r\n}","import type { IContentPage, IData } from '@/models'\r\nimport { BAlert, BButton, BButtonGroup, BCard, BCollapse, BContainer, BDropdownDivider, BDropdownItem, BIconPersonCircle, BIconQuestionCircle, BImg, BNavForm, BNavItem, BNavItemDropdown, BNavText, BNavbar, BNavbarBrand, BNavbarNav, BNavbarToggle } from 'bootstrap-vue'\r\nimport { startCase } from 'lodash-es'\r\nimport { Component, ProvideReactive } from 'vue-property-decorator'\r\nimport ExpandTransition from '~/components/ExpandTransition'\r\nimport Footer from '~/components/Footer'\r\nimport MySpinner from '~/components/MySpinner'\r\nimport StateComponent from '~/models/StateComponent'\r\nimport { adminArea, agenciesPath, applicationsPath, benefitCategoriesPath, benefitsPath, bundlesPath, businessApplicationsPath, businessArea, businessFactFindsPath, businessIndicativeQuotesPath, businessQuotesPath, contentPagesPath, customerNeedsPath, dashboardPath, discountingArea, discountTypesPath, factFindsPath, healthcarePlansPath, helpPath, hospitalListsPath, imagesPath, indicativeQuotesPath, insurerDiscountsPath, insurerExcessAmountsPath, insurerHospitalListsPath, insurerModuleGroupsPath, insurerModulesPath, insurerSchemesPath, insurersPath, legacyArea, medicalConditionGroupsPath, memberMixDiscountsPath, midTermLoadingsPath, minimumPremiumsPath, moduleGroupsPath, modulesPath, mtjCasesPath, newBusinessArea, notificationsPath, personalApplicationsPath, personalArea, personalFactFindsPath, personalQuotesPath, postcodeAreasPath, processingArea, productsPath, queryTypesPath, quoteRequestsPath, quotesPath, regionsPath, settingsPath, templatesPath, tenureDiscountsPath, underwritingArea, underwritingQuestionAnswersPath, underwritingQuestionsPath, underwritingRiskScoresPath, usersPath } from '~/router'\r\nimport { useStore } from '~/store'\r\nimport { getHtmlContent, mapToIOptions, repository, setProfile } from '~/utils'\r\n\r\n@Component\r\nexport default class Home extends StateComponent {\r\n pages: IContentPage[] = []\r\n\r\n @ProvideReactive() data: IData = {\r\n titles: [],\r\n genders: [],\r\n industryTypes: [],\r\n leadTypes: []\r\n }\r\n get personalFactFindEnabled() {\r\n const store = useStore()\r\n return store.settings?.personalFactFindEnabled\r\n }\r\n\r\n get availablePages() {\r\n return this.pages\r\n .filter(p => this.isAdminPage || p.type === (this.isBusinessPage ? 'Business' : 'Personal'))\r\n }\r\n\r\n async created() {\r\n await setProfile()\r\n\r\n let path = this.$route.path\r\n\r\n if (\r\n this.areas.length > 0 &&\r\n !path.startsWith(`/${helpPath}`) &&\r\n (\r\n path === '/' ||\r\n !this.areas.some(area => path.startsWith(`/${area}`))\r\n )\r\n )\r\n path = `/${this.areas[0]}`\r\n\r\n if (path !== this.$route.path)\r\n await this.$router.push({ path })\r\n }\r\n\r\n async mounted() {\r\n const [pages, titles, genders, industryTypes, leadTypes] =\r\n await Promise.all([\r\n repository.getPages(),\r\n repository.getTitles(),\r\n repository.getGenders(),\r\n repository.getIndustryTypes(),\r\n repository.getLeadTypes()\r\n ])\r\n\r\n this.pages = pages\r\n\r\n this.data.titles = mapToIOptions(titles)\r\n this.data.genders = mapToIOptions(genders)\r\n this.data.industryTypes = mapToIOptions(industryTypes)\r\n this.data.leadTypes = mapToIOptions(leadTypes)\r\n }\r\n\r\n getPath(page: IContentPage) {\r\n return `/${page.type?.toLowerCase()}/${helpPath}/${page.id}`\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n !this.profile ?\r\n :\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n this.isPersonalPage &&\r\n [\r\n this.personalFactFindEnabled && Fact finds,\r\n Quotes,\r\n Applications\r\n ]\r\n }\r\n {\r\n this.isBusinessPage &&\r\n [\r\n this.isInternalAgent ?\r\n [\r\n Fact finds,\r\n \r\n Indicative quotes\r\n Formal quotes\r\n \r\n ] :\r\n Quotes,\r\n Applications\r\n ]\r\n }\r\n {\r\n this.isProcessingPage &&\r\n [\r\n Business quotes\r\n ]\r\n }\r\n {\r\n this.isDiscountingPage &&\r\n [\r\n Business quotes\r\n ]\r\n }\r\n {\r\n this.isNewBusinessPage &&\r\n [\r\n \r\n Quotes\r\n Applications\r\n ,\r\n \r\n Quotes\r\n Applications\r\n \r\n ]\r\n }\r\n {\r\n this.isUnderwritingPage &&\r\n [\r\n \r\n Quotes\r\n Applications\r\n ,\r\n \r\n MTJ cases\r\n \r\n ]\r\n }\r\n {\r\n this.isAdminPage &&\r\n [\r\n Dashboard,\r\n !this.isMarketing && !this.isPricingAdmin &&\r\n [\r\n \r\n {\r\n this.personalFactFindEnabled && (this.isProperAdmin || this.isServicingAdmin || this.isClaimsAdmin || this.isBrokerAdmin || this.isNewBusinessAdmin) &&\r\n [\r\n Fact finds\r\n ]\r\n }\r\n {\r\n (this.isProperAdmin || this.isServicingAdmin || this.isManager || this.isClaimsAdmin || this.isBrokerAdmin || this.isNewBusinessAdmin || this.isUnderwritingAdmin) &&\r\n [\r\n Personal quotes,\r\n Personal applications\r\n ]\r\n }\r\n ,\r\n \r\n {\r\n (this.isProperAdmin || this.isServicingAdmin || this.isClaimsAdmin || this.isBrokerAdmin || this.isNewBusinessAdmin) &&\r\n [\r\n Indicative business quotes,\r\n Fact finds\r\n ]\r\n }\r\n {\r\n (this.isProperAdmin || this.isServicingAdmin || this.isManager || this.isClaimsAdmin || this.isBrokerAdmin || this.isNewBusinessAdmin) &&\r\n [\r\n Business quotes,\r\n Business applications\r\n ]\r\n }\r\n {\r\n (this.isProperAdmin || this.isServicingAdmin || this.isClaimsAdmin || this.isNewBusinessAdmin || this.isUnderwritingAdmin) &&\r\n MTJ cases\r\n }\r\n {\r\n this.isProperAdmin &&\r\n [\r\n ,\r\n Healthcare plans,\r\n Quote requests\r\n ]\r\n }\r\n \r\n ],\r\n\r\n (this.isProperAdmin || this.isPricingAdmin) &&\r\n \r\n {\r\n this.isProperAdmin &&\r\n [\r\n Application settings,\r\n ,\r\n Users,\r\n Agencies,\r\n Regions,\r\n ,\r\n Images,\r\n Content pages,\r\n Templates,\r\n Customer needs,\r\n Query types,\r\n Medical condition groups\r\n ]\r\n }\r\n\r\n \r\n\r\n Insurer discounts\r\n Tenure discounts\r\n Member mix discounts\r\n Mid term loadings\r\n Discount types\r\n\r\n \r\n\r\n Postcode areas\r\n Minimum premiums\r\n Underwriting questions\r\n Underwriting question answers\r\n Underwriting risk scores\r\n ,\r\n\r\n (this.isProperAdmin || this.isPricingAdmin) &&\r\n \r\n Insurers\r\n Insurer excess amounts\r\n Insurer hospital lists\r\n Insurer module groups\r\n Insurer modules\r\n Insurer schemes\r\n Insurer products\r\n {\r\n this.isProperAdmin &&\r\n [\r\n ,\r\n Vitality benefits,\r\n Vitality benefit categories,\r\n Vitality bundles,\r\n Vitality hospital lists,\r\n Vitality modules,\r\n Vitality module groups\r\n ]\r\n }\r\n ,\r\n\r\n (this.isProperAdmin || this.isServicingAdmin) &&\r\n Notifications,\r\n\r\n this.isManager &&\r\n Advisers,\r\n\r\n this.isMarketing &&\r\n Templates\r\n ]\r\n }\r\n \r\n\r\n \r\n {\r\n this.areas.length > 1 &&\r\n \r\n \r\n {\r\n ...this.areas.filter(a => a !== legacyArea).map(area =>\r\n \r\n {startCase(area.replace('-', ' '))}\r\n \r\n )\r\n }\r\n \r\n \r\n }\r\n\r\n {\r\n this.profile.paraplannerUser &&\r\n {`Currently acting as: ${this.profile.fullName}`}\r\n }\r\n\r\n {\r\n this.availablePages.length > 1 ?\r\n \r\n \r\n\r\n {\r\n this.availablePages.map(page =>\r\n {page.title}\r\n )\r\n }\r\n :\r\n this.availablePages[0] &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n\r\n Manage account\r\n {\r\n this.isPersonalPage &&\r\n Manage bundles\r\n }\r\n Sign out\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n this.isAdviserPage && (this.settings?.homeAlert || this.settings?.offerEnabled) &&\r\n
\r\n \r\n {\r\n this.settings?.homeAlert &&\r\n
\r\n \r\n
\r\n }\r\n {\r\n this.settings?.offerEnabled &&\r\n \r\n {\r\n this.offer &&\r\n
\r\n
\r\n \r\n {\r\n this.settings.offerImage &&\r\n \"Offer\r\n }\r\n
\r\n\r\n this.store.mutateOffer(!this.store.offer)}>Hide\r\n \r\n
\r\n
\r\n }\r\n \r\n }\r\n \r\n
\r\n }\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n","import { useArea } from '~/composables'\r\nimport { pdfArea } from '~/router'\r\nimport { defineComponent } from 'vue'\r\nimport { addScripts } from '~/utils'\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const area = useArea()\r\n\r\n if (area.isPdfPage.value)\r\n document.documentElement.classList.add(pdfArea)\r\n else\r\n addScripts()\r\n\r\n return {}\r\n },\r\n render() {\r\n return \r\n }\r\n})","import { apiUrls } from '~/data/defaults.json'\r\nimport CustomerMain from '~/views/customer/CustomerMain'\r\nimport Home from '~/views/Home'\r\nimport Main from '~/views/Main'\r\nimport { camelCase } from 'lodash-es'\r\nimport pluralize from 'pluralize'\r\nimport Vue from 'vue'\r\nimport VueRouter, { RouteConfig } from 'vue-router'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst ContentPageView = () => import('~/views/contentPages/ContentPageView')\r\nconst CustomerLogin = () => import('~/views/customer/CustomerLogin')\r\nconst QuestionnaireUpdate = () => import('~/views/questionnaire/QuestionnaireUpdate')\r\nconst CustomerQuestionnaireSubmited = () => import('~/views/customer/CustomerQuestionnaireSubmited')\r\nconst AdviserQuestionnaireView = () => import('~/views/adviser/AdviserQuestionnaireView')\r\nconst BusinessApplicationPdfView = () => import('~/views/businessApplications/BusinessApplicationPdfView')\r\nconst PersonalApplicationPdfView = () => import('~/views/personalApplications/PersonalApplicationPdfView')\r\n\r\nexport const customerArea = 'customer'\r\nexport const adminArea = 'admin'\r\nexport const personalArea = 'personal'\r\nexport const legacyArea = 'legacy'\r\nexport const businessArea = 'business'\r\nexport const newBusinessArea = 'new-business'\r\nexport const processingArea = 'processing'\r\nexport const discountingArea = 'discounting'\r\nexport const underwritingArea = 'underwriting'\r\nexport const pdfArea = 'pdf'\r\n\r\nexport const impersonateUserPath = '/Identity/Account/Manage/ImpersonateUser'\r\nexport const quoteRequestsPath = 'quote-requests'\r\nexport const healthcarePlansPath = 'healthcare-plans'\r\nexport const agenciesPath = 'agencies'\r\nexport const regionsPath = 'regions'\r\nexport const mtjCasesPath = 'mtj-cases'\r\nexport const quotePath = 'quote'\r\nexport const paymentDetailsPath = 'paymentDetails'\r\nexport const quotesPath = `${quotePath}s`\r\nexport const businessQuotesPath = `${businessArea}-${quotesPath}`\r\nexport const personalQuotesPath = `${personalArea}-${quotesPath}`\r\nexport const proposalsPath = 'proposals'\r\nexport const applicationPath = 'application'\r\nexport const applicationsPath = `${applicationPath}s`\r\nexport const businessApplicationsPath = `${businessArea}-${applicationsPath}`\r\nexport const personalApplicationsPath = `${personalArea}-${applicationsPath}`\r\nexport const businessApplicationPath = `${businessArea}-${applicationPath}`\r\nexport const personalApplicationPath = `${personalArea}-${applicationPath}`\r\n\r\nexport const factFindPath = 'fact-find'\r\n\r\nexport const factFindsPath = `${factFindPath}s`\r\nexport const businessFactFindsPath = `${businessArea}-${factFindsPath}`\r\nexport const personalFactFindsPath = `${personalArea}-${factFindsPath}`\r\n\r\nexport const indicativeQuotesPath = `indicative-${quotesPath}`\r\nexport const businessIndicativeQuotesPath = `${businessArea}-${indicativeQuotesPath}`\r\nexport const bundlesPath = 'bundles'\r\nexport const hospitalListsPath = 'hospital-lists'\r\nexport const discountTypesPath = 'discount-types'\r\n\r\nconst insurerPath = 'insurer'\r\n\r\nexport const insurerSchemesPath = `${insurerPath}-schemes`\r\nexport const insurersPath = `${insurerPath}s`\r\nexport const insurerHospitalListsPath = `${insurerPath}-${hospitalListsPath}`\r\nexport const insurerModuleGroupsPath = `${insurerPath}-module-groups`\r\nexport const insurerModulesPath = `${insurerPath}-modules`\r\nexport const insurerExcessAmountsPath = `${insurerPath}-excess-amounts`\r\nexport const productsPath = 'products'\r\nexport const templatesPath = 'templates'\r\nexport const contentPagesPath = 'content-pages'\r\nexport const usersPath = 'users'\r\nexport const customerNeedsPath = 'customer-needs'\r\nexport const notificationsPath = 'notifications'\r\nexport const settingsPath = 'settings'\r\nexport const dashboardPath = 'dashboard'\r\nexport const pagesPath = 'pages'\r\nexport const variationsPath = 'variations'\r\nexport const commentsPath = 'comments'\r\nexport const documentsPath = 'documents'\r\nexport const marketingPreferencesPath = 'marketingPreferences'\r\nexport const eventsPath = 'events'\r\nexport const queriesPath = 'queries'\r\nexport const queryTypesPath = 'query-types'\r\nexport const postcodeAreasPath = 'postcode-areas'\r\nexport const verificationLinksPath = 'verificationLinks'\r\nexport const factFindApiPath = 'factFind'\r\nexport const questionPath = 'question'\r\nexport const questionnairePath = `${questionPath}naire`\r\nexport const quoteGroupPath = `${quotePath}Group`\r\nexport const opportunityPath = 'opportunity'\r\nexport const recommendedCoverPath = 'recommendedCover'\r\n\r\nexport const underwritingPath = 'underwriting'\r\nexport const underwritingQuestionsPath = `${underwritingPath}-${questionPath}s`\r\nexport const underwritingQuestionAnswersPath = `${underwritingPath}-${questionPath}-answers`\r\nexport const underwritingRiskScoresPath = `${underwritingPath}-risk-scores`\r\n\r\nexport const imagesPath = 'images'\r\n\r\nexport const discountsPath = 'discounts'\r\nexport const insurerDiscountsPath = `${insurerPath}-${discountsPath}`\r\nexport const memberMixDiscountsPath = `member-mix-${discountsPath}`\r\nexport const tenureDiscountsPath = `tenure-${discountsPath}`\r\nexport const midTermLoadingsPath = 'mid-term-loadings'\r\n\r\nexport const minimumPremiumsPath = 'minimum-premiums'\r\n\r\nconst benefitPath = 'benefit'\r\nexport const benefitsPath = `${benefitPath}s`\r\nexport const benefitCategoriesPath = `${benefitPath}-categories`\r\n\r\nexport const medicalConditionGroupsPath = 'medical-condition-groups'\r\n\r\nconst modulePath = 'module'\r\nexport const modulesPath = `${modulePath}s`\r\nexport const moduleGroupsPath = `${modulePath}-groups`\r\n\r\nexport const discountPath = 'discount'\r\nexport const calculateDiscountPath = `calculate-${discountPath}`\r\nexport const newPath = 'new'\r\nexport const importPath = 'import'\r\nexport const updatePath = 'update'\r\nexport const assignPath = 'assign'\r\nexport const processPath = 'process'\r\nexport const validatePath = 'validate'\r\nexport const underwritePath = 'underwrite'\r\nexport const submittedPath = 'submitted'\r\nexport const applyPath = 'apply'\r\n\r\nexport const verifyPath = 'verify'\r\nexport const recordOfMeetingPath = 'meeting-record'\r\nexport const updatePasswordPath = 'update-password'\r\nexport const loginPath = 'login'\r\nexport const loggedOutPath = 'loggedout'\r\nexport const helpPath = 'help'\r\nexport const customerBusinessApplicationPath = `${apiUrls.businessApplicationVerificationLinks}/${applicationPath}`\r\nexport const customerPersonalApplicationPath = `${apiUrls.personalApplicationVerificationLinks}/${applicationPath}`\r\n\r\nconst getMeta = (entityName: string, apiUrl: string, updateUrl?: string, isPdf?: boolean, isQuestionnaire?: boolean, isRecordOfMeeting?: boolean) => {\r\n return {\r\n meta: {\r\n entityName,\r\n apiUrl,\r\n updateUrl: updateUrl ?? apiUrl,\r\n isPdf,\r\n isQuestionnaire,\r\n isRecordOfMeeting\r\n }\r\n }\r\n}\r\n\r\ninterface IParams {\r\n entityName: string\r\n entityAlias?: string\r\n path: string\r\n apiUrl: string\r\n createRouteName?: string\r\n canCreate?: boolean\r\n canUpdate?: boolean\r\n additionalRoutes?: RouteConfig[]\r\n}\r\n\r\nconst getCrudRoutes = (\r\n {\r\n entityName,\r\n path,\r\n apiUrl,\r\n canCreate = true,\r\n canUpdate = true,\r\n additionalRoutes = [],\r\n entityAlias,\r\n createRouteName\r\n }: IParams) => {\r\n\r\n const name = entityAlias ?? entityName\r\n\r\n const meta = getMeta(name, apiUrl)\r\n\r\n const normalisedName = entityName.replace(/\\S+/g, str => str.charAt(0).toUpperCase() + str.substring(1).toLowerCase()).replaceAll(' ', '')\r\n const pluralisedName = pluralize(normalisedName)\r\n const camelCasedName = camelCase(pluralisedName)\r\n\r\n const plural = pluralize(name)\r\n\r\n const routes: RouteConfig[] = [\r\n {\r\n path: path,\r\n name: plural,\r\n component: () => import(`~/views/${camelCasedName}/${pluralisedName}Grid`),\r\n ...meta\r\n }\r\n ]\r\n\r\n if (canCreate)\r\n routes.push({\r\n path: `${path}/${newPath}`,\r\n name: createRouteName ?? `New ${name.toLowerCase()}`,\r\n component: () => import(`~/views/${camelCasedName}/${normalisedName}New`),\r\n ...meta\r\n })\r\n\r\n const entityRoute: RouteConfig = {\r\n path: `${path}/:id`,\r\n name: `${name} summary`,\r\n component: () => import(`~/views/${camelCasedName}/${normalisedName}View`),\r\n ...meta,\r\n children: []\r\n }\r\n\r\n if (canUpdate)\r\n entityRoute.children?.push({\r\n path: updatePath,\r\n name: `Update ${name.toLowerCase()}`,\r\n component: () => import(`~/views/${camelCasedName}/${normalisedName}Update`),\r\n ...meta\r\n })\r\n\r\n if (additionalRoutes.length > 0)\r\n entityRoute.children?.push(...additionalRoutes)\r\n\r\n routes.push(entityRoute)\r\n\r\n return routes\r\n}\r\n\r\nexport const fromUserIdPath = 'FromUserId'\r\nconst fromUserIdUrl = `${apiUrls.questionnaireVerificationLinks}/${fromUserIdPath}`\r\n\r\nconst bundleRoutes = getCrudRoutes(\r\n {\r\n entityName: 'Bundle',\r\n path: bundlesPath,\r\n apiUrl: apiUrls.bundles\r\n })\r\nconst mtjCaseRoutes = getCrudRoutes(\r\n {\r\n entityName: 'MTJ case',\r\n entityAlias: 'Business MTJ case',\r\n path: mtjCasesPath,\r\n apiUrl: apiUrls.mtjCases,\r\n canCreate: false,\r\n canUpdate: false\r\n }\r\n)\r\n\r\nconst businessQuoteRoutes = getCrudRoutes(\r\n {\r\n entityName: 'Business quote',\r\n path: businessQuotesPath,\r\n apiUrl: apiUrls.businessQuotes,\r\n canCreate: false,\r\n canUpdate: false\r\n })\r\nconst businessApplicationRoutes = getCrudRoutes(\r\n {\r\n entityName: 'Business application',\r\n path: businessApplicationsPath,\r\n apiUrl: apiUrls.businessApplications,\r\n canCreate: false,\r\n canUpdate: false\r\n })\r\nconst personalQuoteRoutes = getCrudRoutes(\r\n {\r\n entityName: 'Personal quote',\r\n path: personalQuotesPath,\r\n apiUrl: apiUrls.personalQuotes,\r\n canCreate: false,\r\n canUpdate: false\r\n })\r\nconst personalApplicationRoutes = getCrudRoutes(\r\n {\r\n entityName: 'Personal application',\r\n path: personalApplicationsPath,\r\n apiUrl: apiUrls.personalApplications,\r\n canCreate: false,\r\n canUpdate: false\r\n })\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/',\r\n component: Home,\r\n children: [\r\n {\r\n path: processingArea,\r\n redirect: `/${processingArea}/${businessQuotesPath}`,\r\n component: Main,\r\n children: [\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business quote',\r\n path: businessQuotesPath,\r\n apiUrl: apiUrls.businessQuotes\r\n })\r\n ]\r\n },\r\n {\r\n path: discountingArea,\r\n redirect: `/${discountingArea}/${businessQuotesPath}`,\r\n component: Main,\r\n children: [\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business quote',\r\n path: businessQuotesPath,\r\n apiUrl: apiUrls.businessQuotes\r\n })\r\n ]\r\n },\r\n {\r\n path: businessArea,\r\n redirect: `/${businessArea}/${quotesPath}`,\r\n component: Main,\r\n children: [\r\n {\r\n path: `${helpPath}/:id`,\r\n component: ContentPageView,\r\n ...getMeta('Help', apiUrls.contentPages)\r\n },\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Fact find',\r\n path: factFindsPath,\r\n apiUrl: apiUrls.factFinds,\r\n additionalRoutes: [\r\n {\r\n path: quotePath,\r\n name: 'New quote from fact find',\r\n component: () => import('~/views/factFinds/FactFindQuoteNew'),\r\n ...getMeta('Fact find', apiUrls.factFinds, apiUrls.businessQuotes)\r\n }\r\n ]\r\n }\r\n ),\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business indicative quote',\r\n entityAlias: 'Indicative quote',\r\n path: indicativeQuotesPath,\r\n apiUrl: apiUrls.businessIndicativeQuotes,\r\n additionalRoutes: [\r\n {\r\n path: quotePath,\r\n name: 'Convert to formal quote',\r\n component: () => import('~/views/businessIndicativeQuotes/BusinessIndicativeQuoteConvert'),\r\n ...getMeta('Business indicative quote', apiUrls.businessIndicativeQuotes, apiUrls.businessQuotes)\r\n }\r\n ]\r\n }),\r\n\r\n {\r\n path: `${quotesPath}/${importPath}`,\r\n name: 'Import quote',\r\n component: () => import('~/views/businessQuotes/BusinessQuoteImport'),\r\n ...getMeta('Quote', apiUrls.businessQuotes)\r\n },\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business Quote',\r\n entityAlias: 'Quote',\r\n path: quotesPath,\r\n apiUrl: apiUrls.businessQuotes,\r\n additionalRoutes: [\r\n {\r\n path: applyPath,\r\n name: 'Apply with quote',\r\n component: () => import('~/views/businessQuotes/BusinessQuoteApply'),\r\n ...getMeta('Quote', apiUrls.businessQuotes, apiUrls.businessApplications)\r\n },\r\n {\r\n path: factFindPath,\r\n name: 'Add fact find',\r\n component: () => import('~/views/businessQuotes/BusinessQuoteFactFindNew'),\r\n ...getMeta('Quote', apiUrls.businessQuotes, apiUrls.factFinds)\r\n }\r\n ]\r\n }\r\n ),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business Application',\r\n entityAlias: 'Application',\r\n path: applicationsPath,\r\n apiUrl: apiUrls.businessApplications,\r\n canCreate: false\r\n })\r\n ]\r\n },\r\n {\r\n path: personalArea,\r\n redirect: `/${personalArea}/${quotesPath}`,\r\n component: Main,\r\n children: [\r\n {\r\n path: `${helpPath}/:id`,\r\n component: ContentPageView,\r\n ...getMeta('Help', apiUrls.contentPages)\r\n },\r\n\r\n ...bundleRoutes,\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Fact find',\r\n path: factFindsPath,\r\n apiUrl: apiUrls.factFinds,\r\n additionalRoutes: [\r\n {\r\n path: quotePath,\r\n name: 'New quote from fact find',\r\n component: () => import('~/views/factFinds/FactFindQuoteNew'),\r\n ...getMeta('Fact find', apiUrls.factFinds, apiUrls.personalQuotes)\r\n }\r\n ]\r\n }\r\n ),\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Personal Quote',\r\n entityAlias: 'Quote',\r\n path: quotesPath,\r\n apiUrl: apiUrls.personalQuotes,\r\n additionalRoutes: [\r\n {\r\n path: applyPath,\r\n name: 'Apply with quote',\r\n component: () => import('~/views/personalQuotes/PersonalQuoteApply'),\r\n ...getMeta('Quote', apiUrls.personalQuotes, apiUrls.personalApplications)\r\n }\r\n ]\r\n }\r\n ),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Personal Application',\r\n entityAlias: 'Application',\r\n path: applicationsPath,\r\n apiUrl: apiUrls.personalApplications,\r\n canCreate: false\r\n }),\r\n\r\n {\r\n path: `${quotesPath}/:id/${questionnairePath}`,\r\n component: AdviserQuestionnaireView,\r\n ...getMeta('Quote', apiUrls.personalQuotes),\r\n children: [\r\n {\r\n path: updatePath,\r\n component: QuestionnaireUpdate,\r\n ...getMeta('Quote', apiUrls.personalQuotes, apiUrls.adviserSwitchQuestionnaire)\r\n },\r\n {\r\n path: submittedPath,\r\n component: CustomerQuestionnaireSubmited\r\n }\r\n ]\r\n },\r\n {\r\n path: `${applicationsPath}/:id/${questionnairePath}`,\r\n component: AdviserQuestionnaireView,\r\n ...getMeta('Application', apiUrls.personalApplications),\r\n children: [\r\n {\r\n path: updatePath,\r\n component: QuestionnaireUpdate,\r\n ...getMeta('Application', apiUrls.personalApplications, apiUrls.adviserApplicationQuestionnaire)\r\n },\r\n {\r\n path: submittedPath,\r\n component: CustomerQuestionnaireSubmited\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: newBusinessArea,\r\n redirect: `/${newBusinessArea}/${personalApplicationsPath}`,\r\n component: Main,\r\n children: [\r\n ...personalQuoteRoutes,\r\n ...personalApplicationRoutes,\r\n ...businessQuoteRoutes,\r\n ...businessApplicationRoutes\r\n ]\r\n },\r\n {\r\n path: underwritingArea,\r\n redirect: `/${underwritingArea}/${personalQuotesPath}`,\r\n component: Main,\r\n children: [\r\n ...mtjCaseRoutes,\r\n ...personalQuoteRoutes,\r\n ...personalApplicationRoutes\r\n ]\r\n },\r\n {\r\n path: adminArea,\r\n redirect: `/${adminArea}/${dashboardPath}`,\r\n component: Main,\r\n children: [\r\n {\r\n path: dashboardPath,\r\n name: 'Dashboard',\r\n component: () => import('~/views/DashboardView'),\r\n },\r\n\r\n {\r\n path: settingsPath,\r\n name: 'Application settings',\r\n component: () => import('~/views/SettingsView'),\r\n ...getMeta('Settings', apiUrls.settings)\r\n },\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Region',\r\n path: regionsPath,\r\n apiUrl: apiUrls.regions\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Agency',\r\n path: agenciesPath,\r\n apiUrl: apiUrls.agencies\r\n }),\r\n\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business indicative quote',\r\n path: businessIndicativeQuotesPath,\r\n apiUrl: apiUrls.businessIndicativeQuotes,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Fact find',\r\n entityAlias: 'Business fact find',\r\n path: businessFactFindsPath,\r\n apiUrl: apiUrls.factFinds,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business quote request',\r\n path: quoteRequestsPath,\r\n apiUrl: apiUrls.businessQuoteRequests,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Business healthcare plan',\r\n path: healthcarePlansPath,\r\n apiUrl: apiUrls.businessHealthcarePlans,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...mtjCaseRoutes,\r\n ...businessQuoteRoutes,\r\n ...businessApplicationRoutes,\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Fact find',\r\n entityAlias: 'Personal fact find',\r\n path: personalFactFindsPath,\r\n apiUrl: apiUrls.factFinds,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...personalQuoteRoutes,\r\n ...personalApplicationRoutes,\r\n ...bundleRoutes,\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Query type',\r\n path: queryTypesPath,\r\n apiUrl: apiUrls.queryTypes\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Postcode area',\r\n path: postcodeAreasPath,\r\n apiUrl: apiUrls.postcodeAreas\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer',\r\n path: insurersPath,\r\n apiUrl: apiUrls.insurers\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer hospital list',\r\n path: insurerHospitalListsPath,\r\n apiUrl: apiUrls.insurerHospitalLists\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer module group',\r\n path: insurerModuleGroupsPath,\r\n apiUrl: apiUrls.insurerModuleGroups\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer excess amount',\r\n path: insurerExcessAmountsPath,\r\n apiUrl: apiUrls.insurerExcessAmounts\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer module',\r\n path: insurerModulesPath,\r\n apiUrl: apiUrls.insurerModules\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer scheme',\r\n path: insurerSchemesPath,\r\n apiUrl: apiUrls.insurerSchemes\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Product',\r\n path: productsPath,\r\n apiUrl: apiUrls.products\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Template',\r\n path: templatesPath,\r\n apiUrl: apiUrls.templates\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Content page',\r\n path: contentPagesPath,\r\n apiUrl: apiUrls.contentPages\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'User',\r\n path: usersPath,\r\n apiUrl: apiUrls.users\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Customer need',\r\n path: customerNeedsPath,\r\n apiUrl: apiUrls.customerNeeds\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Notification',\r\n path: notificationsPath,\r\n apiUrl: apiUrls.notifications,\r\n canCreate: false,\r\n canUpdate: false\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Underwriting question',\r\n path: underwritingQuestionsPath,\r\n apiUrl: apiUrls.underwritingQuestions\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Underwriting question answer',\r\n path: underwritingQuestionAnswersPath,\r\n apiUrl: apiUrls.underwritingQuestionAnswers\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Underwriting risk score',\r\n path: underwritingRiskScoresPath,\r\n apiUrl: apiUrls.underwritingRiskScores\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Medical condition group',\r\n path: medicalConditionGroupsPath,\r\n apiUrl: apiUrls.medicalConditionGroups\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Module',\r\n path: modulesPath,\r\n apiUrl: apiUrls.modules\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Module group',\r\n path: moduleGroupsPath,\r\n apiUrl: apiUrls.moduleGroups\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Benefit',\r\n path: benefitsPath,\r\n apiUrl: apiUrls.benefits\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Benefit category',\r\n path: benefitCategoriesPath,\r\n apiUrl: apiUrls.benefitCategories\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Image',\r\n path: imagesPath,\r\n apiUrl: apiUrls.images\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Insurer discount',\r\n path: insurerDiscountsPath,\r\n apiUrl: apiUrls.insurerDiscounts\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Tenure discount',\r\n path: tenureDiscountsPath,\r\n apiUrl: apiUrls.tenureDiscounts\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Member mix discount',\r\n path: memberMixDiscountsPath,\r\n apiUrl: apiUrls.memberMixDiscounts\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Hospital list',\r\n path: hospitalListsPath,\r\n apiUrl: apiUrls.hospitalLists\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Minimum premium',\r\n path: minimumPremiumsPath,\r\n apiUrl: apiUrls.minimumPremiums\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Mid term loading',\r\n path: midTermLoadingsPath,\r\n apiUrl: apiUrls.midTermLoadings\r\n }),\r\n ...getCrudRoutes(\r\n {\r\n entityName: 'Discount type',\r\n path: discountTypesPath,\r\n apiUrl: apiUrls.discountTypes\r\n })\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: `/:area/${pdfArea}`,\r\n component: Main,\r\n children: [\r\n {\r\n path: `${quoteRequestsPath}/:id`,\r\n component: () => import('~/views/businessQuoteRequests/BusinessQuoteRequestPdfView'),\r\n ...getMeta('Quote request', apiUrls.businessQuoteRequests, undefined, true)\r\n },\r\n {\r\n path: `${businessQuotesPath}/:id`,\r\n component: () => import('~/views/businessQuotes/BusinessQuotePdfView'),\r\n ...getMeta('Quote', apiUrls.businessQuotes, undefined, true)\r\n },\r\n {\r\n path: `${businessQuotesPath}/:id/${factFindPath}`,\r\n component: () => import('~/views/factFinds/FactFindPdfBusinessView'),\r\n ...getMeta('Fact find', apiUrls.businessQuotes, undefined, true)\r\n },\r\n {\r\n path: `${businessApplicationsPath}/:id`,\r\n component: BusinessApplicationPdfView,\r\n ...getMeta('Application', apiUrls.businessApplications, undefined, true)\r\n },\r\n {\r\n path: `${customerArea}/${businessApplicationPath}`,\r\n component: BusinessApplicationPdfView,\r\n ...getMeta('Application', customerBusinessApplicationPath, undefined, true)\r\n },\r\n {\r\n path: `${mtjCasesPath}/:id`,\r\n component: () => import('~/views/mtjCases/MtjCasePdfView'),\r\n ...getMeta('MTJ case', apiUrls.mtjCases, undefined, true)\r\n },\r\n {\r\n path: `${personalQuotesPath}/:id`,\r\n component: () => import('~/views/personalQuotes/PersonalQuotePdfView'),\r\n ...getMeta('Quote', apiUrls.personalQuotes, undefined, true)\r\n },\r\n {\r\n path: `${personalQuotesPath}/:id/${factFindPath}`,\r\n component: () => import('~/views/factFinds/FactFindPdfPersonalView'),\r\n ...getMeta('Fact find', apiUrls.personalQuotes, undefined, true)\r\n },\r\n {\r\n path: `${personalQuotesPath}/:id/sales-aid`,\r\n component: () => import('~/views/personalQuotes/SalesAidPdfView'),\r\n ...getMeta('Quote', apiUrls.personalQuotes, undefined, true)\r\n },\r\n {\r\n path: `${personalApplicationsPath}/:id`,\r\n component: () => import('~/views/personalApplications/PersonalApplicationPdfView'),\r\n ...getMeta('Application', apiUrls.personalApplications, undefined, true)\r\n },\r\n {\r\n path: `${customerArea}/${personalApplicationPath}`,\r\n component: PersonalApplicationPdfView,\r\n ...getMeta('Application', customerPersonalApplicationPath, undefined, true)\r\n },\r\n ]\r\n },\r\n {\r\n path: `/${customerArea}`,\r\n component: CustomerMain,\r\n children: [\r\n {\r\n path: loggedOutPath,\r\n component: () => import('~/views/customer/CustomerLoggedOut')\r\n },\r\n {\r\n path: `${loginPath}/:id`,\r\n component: CustomerLogin,\r\n ...getMeta('Login', apiUrls.questionnaireVerificationLinks, undefined, undefined, true)\r\n },\r\n {\r\n path: `${verifyPath}/:id`,\r\n component: CustomerLogin,\r\n ...getMeta('Verify', apiUrls.businessApplicationVerificationLinks)\r\n },\r\n {\r\n path: `${recordOfMeetingPath}/:id`,\r\n component: CustomerLogin,\r\n ...getMeta('Verify', apiUrls.personalApplicationVerificationLinks, undefined, undefined, false, true)\r\n },\r\n {\r\n path: updatePasswordPath,\r\n component: () => import('~/views/customer/CustomerUpdatePassword'),\r\n ...getMeta('Details', fromUserIdUrl)\r\n },\r\n {\r\n path: helpPath,\r\n component: () => import('~/views/customer/CustomerQuestionnaireHelp')\r\n },\r\n {\r\n path: businessApplicationPath,\r\n component: () => import('~/views/customer/CustomerBusinessApplicationView'),\r\n ...getMeta('Application', customerBusinessApplicationPath),\r\n children: [\r\n {\r\n path: verifyPath,\r\n component: () => import('~/views/customer/CustomerBusinessApplicationVerify'),\r\n ...getMeta('Application', customerBusinessApplicationPath)\r\n },\r\n {\r\n path: submittedPath,\r\n component: () => import('~/views/customer/CustomerBusinessApplicationSubmitted'),\r\n ...getMeta('Application', customerBusinessApplicationPath)\r\n }\r\n ]\r\n },\r\n {\r\n path: personalApplicationPath,\r\n component: () => import('~/views/customer/CustomerPersonalApplicationView'),\r\n ...getMeta('Application', customerPersonalApplicationPath),\r\n children: [\r\n {\r\n path: verifyPath,\r\n component: () => import('~/views/customer/CustomerPersonalApplicationVerify'),\r\n ...getMeta('Application', customerPersonalApplicationPath)\r\n },\r\n {\r\n path: submittedPath,\r\n component: () => import('~/views/customer/CustomerPersonalApplicationSubmitted'),\r\n ...getMeta('Application', customerPersonalApplicationPath)\r\n }\r\n ]\r\n },\r\n {\r\n path: questionnairePath,\r\n component: () => import('~/views/customer/CustomerQuestionnaireView'),\r\n ...getMeta('Details', fromUserIdUrl),\r\n children: [\r\n {\r\n path: updatePath,\r\n component: QuestionnaireUpdate,\r\n ...getMeta('Questionnaire', fromUserIdUrl, apiUrls.customerQuestionnaire)\r\n },\r\n {\r\n path: submittedPath,\r\n component: CustomerQuestionnaireSubmited\r\n }\r\n ]\r\n },\r\n {\r\n path: 'finder',\r\n component: () => import('~/views/PartnerFinderView')\r\n }\r\n ]\r\n },\r\n {\r\n path: `/${verifyPath}/${businessApplicationsPath}/:id`,\r\n redirect: `/${customerArea}/${verifyPath}/:id`\r\n },\r\n {\r\n path: `/${verifyPath}/${personalApplicationsPath}/:id`,\r\n redirect: `/${customerArea}/${recordOfMeetingPath}/:id`\r\n },\r\n {\r\n path: '/disabled',\r\n component: () => import('~/views/DisabledView')\r\n },\r\n {\r\n path: '*',\r\n component: () => import('~/views/NotFoundView')\r\n }\r\n]\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n linkActiveClass: 'active',\r\n routes: routes\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const parts = document.title.split(' - ')\r\n const routeName = to.name\r\n\r\n if (routeName)\r\n document.title = `${parts[0]} - ${routeName}`\r\n\r\n next()\r\n})\r\n\r\nexport default router\r\n","import type { IProfile, ISettings, Nullable, QueueType } from '@/models'\r\nimport { GridModule } from '~/store/modules/grid'\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { Module, Mutation, State, createVuexStore, useStore as getStore } from 'vuex-simple'\r\n\r\nVue.use(Vuex)\r\n\r\nexport class MyStore {\r\n\r\n @State()\r\n offer = true\r\n\r\n @State()\r\n queue: Nullable = null\r\n\r\n @State()\r\n profile: Nullable = null\r\n\r\n @State()\r\n settings: Nullable = null\r\n\r\n @Module()\r\n agencies = new GridModule()\r\n\r\n @Module()\r\n regions = new GridModule()\r\n\r\n @Module()\r\n underwritingQuestions = new GridModule()\r\n\r\n @Module()\r\n modules = new GridModule()\r\n\r\n @Module()\r\n moduleGroups = new GridModule()\r\n\r\n @Module()\r\n underwritingQuestionAnswers = new GridModule()\r\n\r\n @Module()\r\n benefits = new GridModule()\r\n\r\n @Module()\r\n images = new GridModule()\r\n\r\n @Module()\r\n benefitCategories = new GridModule()\r\n\r\n @Module()\r\n underwritingRiskScores = new GridModule()\r\n\r\n @Module()\r\n medicalConditionGroups = new GridModule()\r\n\r\n @Module()\r\n accountManagers = new GridModule()\r\n\r\n @Module()\r\n healthcarePlans = new GridModule()\r\n\r\n @Module()\r\n healthcarePlansAdmin = new GridModule()\r\n\r\n @Module()\r\n hospitalLists = new GridModule()\r\n\r\n @Module()\r\n quoteRequests = new GridModule()\r\n\r\n @Module()\r\n quoteRequestsAdmin = new GridModule()\r\n\r\n @Module()\r\n insurers = new GridModule()\r\n\r\n @Module()\r\n insurerHospitalLists = new GridModule()\r\n\r\n @Module()\r\n insurerDiscounts = new GridModule()\r\n\r\n @Module()\r\n tenureDiscounts = new GridModule()\r\n\r\n @Module()\r\n memberMixDiscounts = new GridModule()\r\n\r\n @Module()\r\n midTermLoadings = new GridModule()\r\n\r\n @Module()\r\n minimumPremiums = new GridModule()\r\n\r\n @Module()\r\n discountTypes = new GridModule()\r\n\r\n @Module()\r\n insurerModules = new GridModule()\r\n\r\n @Module()\r\n insurerModuleGroups = new GridModule()\r\n\r\n @Module()\r\n insurerExcessAmounts = new GridModule()\r\n\r\n @Module()\r\n queryTypes = new GridModule()\r\n\r\n @Module()\r\n postcodeAreas = new GridModule()\r\n\r\n @Module()\r\n bundles = new GridModule()\r\n\r\n @Module()\r\n bundlesAdmin = new GridModule()\r\n\r\n @Module()\r\n insurerSchemes = new GridModule()\r\n\r\n @Module()\r\n products = new GridModule()\r\n\r\n @Module()\r\n templates = new GridModule()\r\n\r\n @Module()\r\n contentPages = new GridModule()\r\n\r\n @Module()\r\n users = new GridModule()\r\n\r\n @Module()\r\n customerNeeds = new GridModule()\r\n\r\n @Module()\r\n notifications = new GridModule()\r\n\r\n @Module()\r\n indicativeBusinessQuotes = new GridModule()\r\n\r\n @Module()\r\n indicativeBusinessQuotesAdmin = new GridModule()\r\n\r\n @Module()\r\n factFindsBusiness = new GridModule()\r\n\r\n @Module()\r\n factFindsPersonal = new GridModule()\r\n\r\n @Module()\r\n factFindsAdminBusiness = new GridModule()\r\n\r\n @Module()\r\n factFindsAdminPersonal = new GridModule()\r\n\r\n @Module()\r\n mtjCases = new GridModule()\r\n\r\n @Module()\r\n mtjCasesAdmin = new GridModule()\r\n\r\n @Module()\r\n personalQuotes = new GridModule()\r\n\r\n @Module()\r\n personalQuotesAdmin = new GridModule()\r\n\r\n @Module()\r\n personalApplications = new GridModule()\r\n\r\n @Module()\r\n personalApplicationsAdmin = new GridModule()\r\n\r\n @Module()\r\n businessQuotes = new GridModule()\r\n\r\n @Module()\r\n businessQuotesAdmin = new GridModule()\r\n\r\n @Module()\r\n businessApplications = new GridModule()\r\n\r\n @Module()\r\n businessApplicationsAdmin = new GridModule()\r\n\r\n @Module()\r\n processedBusinessApplications = new GridModule()\r\n\r\n @Mutation()\r\n mutateProfile(val: Nullable) {\r\n if (this.profile && val)\r\n Object.assign(this.profile, val)\r\n else\r\n this.profile = val\r\n }\r\n\r\n @Mutation()\r\n mutateSettings(val: Nullable) {\r\n if (this.settings && val)\r\n Object.assign(this.settings, val)\r\n else\r\n this.settings = val\r\n }\r\n\r\n @Mutation()\r\n mutateOffer(val: boolean) {\r\n this.offer = val\r\n }\r\n\r\n @Mutation()\r\n mutateQueue(val: Nullable) {\r\n this.queue = val\r\n }\r\n}\r\n\r\nconst store = createVuexStore(new MyStore(), {\r\n strict: process.env.NODE_ENV !== 'production'\r\n})\r\n\r\nexport const useStore = () =>\r\n getStore(store)\r\n\r\nexport default store","import type { IGridState, ITableFilter, Nullable } from '@/models'\r\nimport { Mutation, State } from 'vuex-simple'\r\n\r\nexport class GridModule implements IGridState {\r\n\r\n @State() filters: ITableFilter[] = []\r\n @State() search: Nullable = null\r\n @State() fieldKey: Nullable = null\r\n @State() sortBy: Nullable = null\r\n @State() sortDesc: Nullable = null\r\n @State() currentPage = 1\r\n @State() totalRows = 0\r\n @State() perPage = 10\r\n\r\n @Mutation() mutateFilters(delta: ITableFilter[]) {\r\n this.filters = [...delta]\r\n }\r\n\r\n @Mutation() mutateField(delta: Nullable) {\r\n this.fieldKey = delta\r\n }\r\n\r\n @Mutation() mutateSearch(delta: Nullable) {\r\n this.search = delta\r\n }\r\n\r\n @Mutation() mutateSortBy(delta: Nullable) {\r\n this.sortBy = delta\r\n }\r\n\r\n @Mutation() mutateSortDesc(delta: Nullable) {\r\n this.sortDesc = delta\r\n }\r\n\r\n @Mutation() mutateCurrentPage(delta: number) {\r\n this.currentPage = delta\r\n }\r\n\r\n @Mutation() mutateTotalRows(delta: number) {\r\n this.totalRows = delta\r\n }\r\n\r\n @Mutation() mutatePerPage(delta: number) {\r\n this.perPage = delta\r\n }\r\n}\r\n","import { apiUrls, config } from '~/data/defaults.json'\r\nimport type { BenefitTypeType, BusinessQuoteStatusType, EntityTypeType, IAgency, IApiResponse, IBaseEntity, IBaseNumber, IBenefit, IBenefitCategory, IBundle, IBusinessQuote, IContentPage, IEmployeeGroup, IExcessAmount, IExcessType, IHospitalList, IImage, IInsurer, IInsurerHospitalList, IInsurerModule, IInsurerScheme, IMedicalConditionGroup, IModule, IModuleGroup, IName, IProfile, IQuestionnaire, ISettings, ITemplate, IUnderwritingAction, IUnderwritingQuestion, IUnderwritingQuestionAnswer, IUnderwritingType, ImageTypeType, Nullable, PaymentPlanType, PremiumType, TemplateTypeType } from '@/models'\r\nimport { IOption } from '@/models'\r\nimport router from '~/router'\r\nimport { useStore } from '~/store'\r\nimport type { AxiosError, AxiosRequestConfig } from 'axios'\r\nimport axios from 'axios'\r\nimport { differenceInYears, format, isValid, parse, parseISO } from 'date-fns'\r\nimport { debounce, startCase, truncate } from 'lodash-es'\r\nimport MarkdownIt from 'markdown-it'\r\nimport MarkdownItAbbr from 'markdown-it-abbr'\r\nimport MarkdownItSub from 'markdown-it-sub'\r\nimport MarkdownItSup from 'markdown-it-sup'\r\nimport type { Route } from 'vue-router'\r\n\r\nexport const noBreakClass = 'no-break'\r\nexport const breakAfterClass = 'break-after'\r\n\r\nexport const primaryTableHeader = 'bg-primary text-white'\r\nexport const defaultCardClass = 'border-0 shadow-sm'\r\nexport const noBorderListItemClass = 'border-left-0 border-right-0'\r\nexport const justifyBetweenClass = 'd-flex justify-content-between'\r\nexport const justifyBetweenCenterClass = `${justifyBetweenClass} align-items-center`\r\nexport const alignRightLgClass = 'text-lg-right'\r\nexport const vitalityTableClass = 'vitality-table'\r\n\r\nexport const nameof = (name: Extract) => name\r\n\r\nexport const instanceOf = (property: string, object: any): object is T =>\r\n property in object\r\n\r\nexport const copyToObject = >(value: T) =>\r\n JSON.parse(JSON.stringify(value)) as T\r\n\r\nexport const calculateAge = (startDate: Date, value: string) =>\r\n differenceInYears(startDate, parseISO(value))\r\n\r\nexport const getFullName = (title: Nullable | undefined, firstName: Nullable | undefined, lastName: Nullable | undefined) => {\r\n let name = ''\r\n\r\n if (title)\r\n name += title + ' '\r\n\r\n if (firstName)\r\n name += firstName + ' '\r\n\r\n if (lastName)\r\n name += lastName\r\n\r\n return name\r\n}\r\n\r\nexport const removeItem = (array: T[], item: T) => {\r\n const index = array.findIndex(i => i === item || i.id === item.id)\r\n\r\n if (index >= 0)\r\n removeItemAtIndex(array, index)\r\n}\r\n\r\nexport const removeItemAtIndex = (array: T[], index: number) => {\r\n array.splice(index, 1)\r\n}\r\n\r\nexport const updateArray = (array: T[], newArray: T[]) => {\r\n array.splice(0)\r\n array.push(...newArray)\r\n}\r\n\r\nexport const getAgencyName = (agency?: Nullable, truncateName = true) => {\r\n\r\n if (!agency)\r\n return null\r\n\r\n const cleanedName = agency.name.replace(`-${agency.id}`, '')\r\n\r\n return `${truncateName ? truncate(cleanedName, { length: 20 }) : cleanedName} (${agency.id})`\r\n}\r\n\r\nexport const isIos = () =>\r\n /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\r\n\r\nexport function asyncDebounce<\r\n F extends (...args: any[]) => Promise\r\n>(func: F, wait?: number) {\r\n const resolveSet = new Set<(p: any) => void>()\r\n const rejectSet = new Set<(p: any) => void>()\r\n\r\n const debounced = debounce((args: Parameters) => {\r\n func(...args)\r\n .then((...res) => {\r\n resolveSet.forEach((resolve) => resolve(...res))\r\n resolveSet.clear()\r\n })\r\n .catch((...res) => {\r\n rejectSet.forEach((reject) => reject(...res))\r\n rejectSet.clear()\r\n })\r\n }, wait)\r\n\r\n return (...args: Parameters): ReturnType => new Promise((resolve, reject) => {\r\n resolveSet.add(resolve)\r\n rejectSet.add(reject)\r\n debounced(args)\r\n }) as ReturnType\r\n}\r\n\r\nexport const setSettings = async () => {\r\n const response = await getAsync(apiUrls.settings)\r\n\r\n if (response)\r\n useStore().mutateSettings(response.data)\r\n}\r\n\r\nexport const setProfile = async () => {\r\n const response = await getAsync(apiUrls.profile)\r\n\r\n if (response)\r\n useStore().mutateProfile(response.data)\r\n}\r\n\r\nexport const addScripts = () => {\r\n const scriptUrls = useStore().settings?.scripts?.split(', ')\r\n\r\n scriptUrls?.forEach(url => {\r\n const script = document.createElement('script')\r\n\r\n script.async = true\r\n script.setAttribute('src', url)\r\n document.body.appendChild(script)\r\n })\r\n}\r\n\r\nexport const downloadFile = async (\r\n downloadUrl: string,\r\n fileName?: string,\r\n onRequestStart?: () => void,\r\n onRequestEnd?: () => void,\r\n onDownloadComplete?: () => void) => {\r\n\r\n if (!isIos()) {\r\n onRequestStart?.()\r\n\r\n const response = await getAsync(downloadUrl, {\r\n responseType: 'blob'\r\n })\r\n\r\n onRequestEnd?.()\r\n\r\n const data = response?.data\r\n if (!data)\r\n return\r\n\r\n // BLOB NAVIGATOR\r\n const url = URL.createObjectURL(data)\r\n const link = document.createElement('a')\r\n\r\n link.target = '_blank'\r\n link.href = url\r\n\r\n const contentDisposition = response?.headers['content-disposition']\r\n\r\n if (contentDisposition) {\r\n const matches = contentDisposition.match(/filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/)\r\n\r\n if (matches != null && matches[1])\r\n link.download = matches[1].replace(/['\"]/g, '')\r\n }\r\n\r\n if (fileName)\r\n link.download = fileName\r\n\r\n link.click()\r\n\r\n URL.revokeObjectURL(url)\r\n link.remove()\r\n }\r\n\r\n onDownloadComplete?.()\r\n}\r\n\r\nexport const toFactor = (value: number) =>\r\n (100 + value) / 100\r\n\r\nexport const toPercentage = (value: number) =>\r\n (value * 100) - 100\r\n\r\nexport const formatEnum = (value?: Nullable) => {\r\n const format = /^[a-z]+$/i\r\n\r\n if (!value)\r\n return null\r\n\r\n return format.test(value) ? startCase(value) : value\r\n}\r\n\r\nexport const mapToEnumOptions = (value: (number | string | boolean)[]) =>\r\n value.map(v => ({ 'text': v === true || v === false ? formatBool(v) : formatEnum(v.toString()) ?? '', 'value': v }) as IOption)\r\n\r\nexport const formatBool = (value?: Nullable) => {\r\n if (value === null || value === undefined)\r\n return null\r\n\r\n return value ? 'Yes' : 'No'\r\n}\r\n\r\nexport const formatPhoneNumber = (value?: Nullable) => {\r\n if (value === null || value === undefined)\r\n return null\r\n\r\n return value.replaceAll('-0', '(0)').replaceAll('-', '')\r\n}\r\n\r\nexport const formatAmount = (value?: Nullable, decimals = 2) =>\r\n value?.toLocaleString('en-GB', { minimumFractionDigits: decimals, maximumFractionDigits: decimals }) ?? \"-\"\r\n\r\nexport const formatPremium = (value?: Nullable) => \r\n value?.toLocaleString('en-GB', { style: 'currency', currency: 'GBP' }) ?? \"-\"\r\n\r\nexport const formatInsurerPremium = (value?: Nullable, paymentFrequency?: Nullable | Nullable) => {\r\n let v = formatPremium(value)\r\n\r\n if (v && paymentFrequency) {\r\n const unit = paymentFrequency === 'Monthly' ? 'month' : paymentFrequency === 'Quarterly' ? 'quarter' : 'year'\r\n\r\n v += ` per ${unit}`\r\n }\r\n\r\n return v\r\n}\r\n\r\nexport const formatPercentage = (value?: Nullable) =>\r\n (value !== undefined && value !== null ? value / 100 : value)?.toLocaleString('en-GB', { style: 'percent', minimumFractionDigits: 2 })\r\n\r\nexport const formatDiscount = (value?: Nullable) =>\r\n value !== undefined && value !== null ? `${formatPercentage(value)} (${toFactor(value)})` : null\r\n\r\nexport const formatDate = (value?: Nullable, dateFormat?: string) => {\r\n if (!value)\r\n return null\r\n\r\n const date =\r\n typeof value === 'string' ?\r\n parseISO(value) :\r\n value\r\n\r\n return isValid(date) ? format(date, dateFormat ?? config.dateFormat) : null\r\n}\r\n\r\nexport const mapToNames = (entities: T[]) =>\r\n entities.map(x => x.name)\r\n\r\nexport const mapToIOptions = (entities: T[]) =>\r\n entities.map(x => ({ text: x.name, value: x.id }) as IOption)\r\n\r\nexport const toCommaSeparatedList = (values?: T[]) =>\r\n values?.map(x => x.name).join(', ') ?? '-'\r\n\r\nexport const ukDateToServerString = (value: string) => {\r\n const d = value.split('/')\r\n return `${d[2]}-${d[1]}-${d[0]}T00:00:00`\r\n}\r\n\r\nexport const getModuleLabel = (mg: IModuleGroup, modules: IModule[]) => {\r\n const selectedModule = modules?.find(m => m.moduleGroupId === mg.id)\r\n\r\n return mg.isIncluded && selectedModule ?\r\n 'Included' :\r\n (\r\n mg.includedWithModuleId && modules?.some(m => m.id === mg.includedWithModuleId) ?\r\n `Included with ${modules?.find(m => m.id === mg.includedWithModuleId)?.name}` :\r\n selectedModule?.name ??\r\n (\r\n mg.requiredModuleGroupId && modules?.some(m => m.moduleGroupId === mg.requiredModuleGroupId) ?\r\n `Within ${modules?.find(m => m.moduleGroupId === mg.requiredModuleGroupId)?.name} limit` :\r\n 'Not included'\r\n )\r\n )\r\n}\r\n\r\nexport const getStatusLinkedExcessLabel = (g: IEmployeeGroup) =>\r\n g.hasStatusLinkedExcess === null ? 'Not available' : g.hasStatusLinkedExcess === true ? 'Selected' : 'Not selected'\r\n\r\nexport const showQuestionnaireStatus = (q: IQuestionnaire) =>\r\n q.status === 'Pending' || q.status === 'RequiresChanges' || q.status === 'RequiresValidation'\r\n\r\nexport const isRoute = (route: Route, prefix: string) => {\r\n const path = route.path.toLowerCase()\r\n\r\n return path.startsWith(prefix) || path.indexOf(`${prefix}/`) > -1\r\n}\r\n\r\nexport const toTitleCase = (val: string) =>\r\n `${val.charAt(0).toUpperCase()}${val.slice(1)}`\r\n\r\nexport const arrayFromNumber = (val: number) =>\r\n [...Array(val).keys()]\r\n\r\nexport const parseDate = (value: string | Date, dateFormat: string) => {\r\n if (typeof value !== 'string')\r\n return isValid(value) ? value : null\r\n\r\n const parsed = parse(value, dateFormat, new Date())\r\n\r\n // if date is not valid or the formatted output after parsing does not match\r\n // the string value passed in (avoids overflows)\r\n if (!isValid(parsed) || format(parsed, dateFormat) !== value)\r\n return null\r\n\r\n return parsed\r\n}\r\n\r\nexport const postcodeFormatter = (val: Nullable) => {\r\n if (val) {\r\n val = val.toUpperCase()\r\n\r\n const parts = val.match(/^([A-Z]{1,2}\\d{1,2}[A-Z]?)\\s*(\\d[A-Z]{2})$/)\r\n\r\n if (parts) {\r\n parts.shift()\r\n val = parts.join(' ')\r\n }\r\n }\r\n\r\n return val\r\n}\r\n\r\nexport const phoneNumberFormatter = (val: Nullable) => {\r\n if (val) {\r\n val = val.toUpperCase()\r\n\r\n const parts = val.match(/\\D*(\\d{3})\\D*(\\d{4})\\D*(\\d{4})\\D*/)\r\n\r\n if (parts) {\r\n parts.shift()\r\n val = parts.join(' ')\r\n }\r\n }\r\n\r\n return val\r\n}\r\n\r\nexport const dateFormatter = (val: Nullable) => formatDate(val)\r\n\r\nexport const nameFormatter = (val: Nullable) =>\r\n val ? toTitleCase(val) : undefined\r\n\r\nexport const quotationNumberFormatter = (val: Nullable) =>\r\n val?.replace(/(\\d{8})(\\d{3})/, '$1/$2')\r\n\r\nexport const sortCodeFormatter = (val: Nullable) => {\r\n if (val)\r\n val = val.replace(/(\\d{2})(\\d{2})(\\d{2})/, '$1-$2-$3')\r\n\r\n return val\r\n}\r\n\r\nexport const accountNumberFormatter = (val: Nullable) =>\r\n val?.replace(/(\\d{8})/, '$1')\r\n\r\nexport const optionalValidation = {\r\n required: false\r\n}\r\n\r\nexport const requiredValidation = {\r\n required: true\r\n}\r\n\r\nexport const requiredTrueValidation = {\r\n required: {\r\n allowFalse: false\r\n }\r\n}\r\n\r\nexport const quotationNumberValidation = {\r\n ...requiredValidation,\r\n //max: 12,\r\n regex: /^\\d{8}\\/\\d{3}$/\r\n}\r\n\r\nexport const sortCodeValidation = {\r\n ...requiredValidation,\r\n //max: 8,\r\n 'sort_code': true\r\n}\r\n\r\nexport const accountNumberValidation = {\r\n ...requiredValidation,\r\n //max: 8,\r\n 'account_number': true\r\n}\r\n\r\nexport const emailValidation = {\r\n ...requiredValidation,\r\n max: 320,\r\n email: true\r\n}\r\n\r\nexport const urlValidation = {\r\n ...requiredValidation,\r\n max: 320,\r\n url: true\r\n}\r\n\r\nexport const phoneValidation = {\r\n ...requiredValidation,\r\n //max: 16,\r\n 'phone_number': true\r\n}\r\n\r\nexport const nameValidation = {\r\n ...requiredValidation,\r\n //min: 2,\r\n max: 60,\r\n name: true\r\n}\r\n\r\nexport const minValidation = (value: number) => ({\r\n ...requiredValidation,\r\n 'min_value': value\r\n})\r\n\r\nexport const percentageValidation = { 'min_value': 0, 'max_value': 100 }\r\n\r\nexport const amountValidation = minValidation(1)\r\n\r\nexport const isNullOrUndefined = (value: unknown) => {\r\n return value === null || value === undefined\r\n}\r\n\r\nconst md =\r\n new MarkdownIt({ html: true, breaks: true, linkify: true, typographer: true })\r\n .use(MarkdownItSub)\r\n .use(MarkdownItSup)\r\n .use(MarkdownItAbbr)\r\n\r\n// Remember old renderer, if overridden, or proxy to default renderer\r\nconst defaultRender = md.renderer.rules.link_open || function (tokens, idx, options, env, self) {\r\n return self.renderToken(tokens, idx, options)\r\n}\r\n\r\nmd.renderer.rules.link_open = function (tokens, idx, options, env, self) {\r\n tokens[idx].attrPush(['target', '_blank'])\r\n\r\n // pass token to default renderer.\r\n return defaultRender(tokens, idx, options, env, self)\r\n}\r\n\r\nexport const getHtmlContent = (content?: Nullable) =>\r\n md.render(content ?? '')\r\n\r\nexport const httpClient = axios.create({\r\n baseURL: '/',\r\n\r\n withCredentials: true,\r\n\r\n headers: {\r\n 'Cache-Control': 'no-cache',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n }\r\n})\r\n\r\nhttpClient.interceptors.request.use(\r\n (config) => {\r\n\r\n const area =\r\n router.currentRoute.fullPath.split('/')[1]\r\n\r\n if (area && area !== 'pdf')\r\n config.headers['X-Area'] = area\r\n\r\n return config\r\n },\r\n (error: AxiosError) => Promise.reject(error)\r\n)\r\n\r\nhttpClient.interceptors.response.use(\r\n response => response,\r\n (error: AxiosError) => {\r\n if (error.response?.status === 401) {\r\n const redirectUrl = error.response.headers['location']\r\n\r\n if (redirectUrl) {\r\n useStore().mutateProfile(null)\r\n window.location.href =\r\n `${redirectUrl.split('?')[0]}?returnUrl=${router.currentRoute.fullPath}`\r\n\r\n return Promise.reject(null)\r\n }\r\n }\r\n\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\ntype MyError = {\r\n type?: string\r\n title?: string\r\n status?: number\r\n traceId?: string\r\n errors?: {\r\n [key: string]: string[]\r\n }\r\n}\r\n\r\nexport const withError = async (task: Promise, onError?: (e: AxiosError) => void) => {\r\n try {\r\n return await task\r\n } catch (error) {\r\n\r\n if (!error)\r\n return\r\n\r\n const e = error as AxiosError\r\n\r\n if (onError)\r\n onError(e)\r\n else {\r\n\r\n const errorDetails = {\r\n title: 'Error',\r\n message: 'There has been an error. Please try again.'\r\n }\r\n\r\n if (e.response?.status === 400) {\r\n\r\n let data: MyError\r\n\r\n if (\r\n e.request.responseType === 'blob' &&\r\n e.response.data instanceof Blob &&\r\n e.response.data.type &&\r\n e.response.data.type.toLowerCase().indexOf('json') !== -1\r\n ) {\r\n data = JSON.parse(await e.response.data.text())\r\n } else {\r\n data = e.response.data\r\n }\r\n\r\n if (data.title)\r\n errorDetails.title = data.title\r\n\r\n const errors = data.errors\r\n if (errors) {\r\n const errorMessage = errors[Object.keys(errors)[0]][0]\r\n if (errorMessage)\r\n errorDetails.message = errorMessage\r\n }\r\n } else if (e.response?.status === 418) {\r\n errorDetails.title = 'Maintenance mode'\r\n errorDetails.message = 'The site is undergoing an upgrade and is currently unavailable. We hope to resume normal service as soon as possible.'\r\n }\r\n else if (e.response?.status === 404) {\r\n errorDetails.title = 'Not found'\r\n errorDetails.message = 'We could not find this item.'\r\n }\r\n\r\n document.dispatchEvent(new CustomEvent('modal', { detail: errorDetails }))\r\n }\r\n }\r\n}\r\n\r\nexport const getAsync = async (path: string, config?: AxiosRequestConfig, onError?: (e: AxiosError) => void) =>\r\n await withError(httpClient.get(path, config), onError)\r\n\r\nexport const postAsync = async (path: string, data?: any, config?: AxiosRequestConfig, onError?: (e: AxiosError) => void) =>\r\n await withError(httpClient.post(path, data, config), onError)\r\n\r\nexport const putAsync = async (path: string, data?: any, config?: AxiosRequestConfig, onError?: (e: AxiosError) => void) =>\r\n await withError(httpClient.put(path, data, config), onError)\r\n\r\nexport const deleteAsync = async (path: string, config?: AxiosRequestConfig, onError?: (e: AxiosError) => void) =>\r\n await withError(httpClient.delete(path, config), onError)\r\n\r\nexport const getApiAsync = async (path: string, config?: AxiosRequestConfig, onError?: (e: AxiosError) => void) =>\r\n (await getAsync>(path, config, onError))?.data\r\n\r\nexport const getOptions = async (path: string) => {\r\n const response = await getAsync(path)\r\n return mapToIOptions(response?.data ?? [])\r\n}\r\n\r\nconst getUrlWithType = (baseUrl: string, type?: string) => {\r\n let url = `${baseUrl}`\r\n\r\n if (type)\r\n url += `?type=${type}`\r\n\r\n return url\r\n}\r\n\r\nconst getEntitiesWithStartDate = async (baseUrl: string, type?: string, startDate?: Date | string) => {\r\n let url = getUrlWithType(baseUrl, type)\r\n\r\n if (startDate)\r\n url += `&startDate=${formatDate(startDate, config.serverDateFormat)}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n}\r\n\r\nconst getEntitiesWithStartDateAndInsurer = async (baseUrl: string, type?: string, insurerId?: number, startDate?: Date | string) => {\r\n let url = getUrlWithType(baseUrl, type)\r\n\r\n if (insurerId)\r\n url += `&insurerId=${insurerId}`\r\n\r\n if (startDate)\r\n url += `&startDate=${formatDate(startDate, config.serverDateFormat)}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n}\r\n\r\nexport const repository = {\r\n getBundles: async (type: EntityTypeType, hospitalListId?: number, startDate?: Date | string) => {\r\n let url = getUrlWithType(apiUrls.bundles, type)\r\n\r\n if (startDate)\r\n url += `&startDate=${formatDate(startDate, config.serverDateFormat)}`\r\n\r\n if (hospitalListId)\r\n url += `&hospitalListId=${hospitalListId}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getModuleGroups: async (type?: EntityTypeType, startDate?: Date | string) =>\r\n await getEntitiesWithStartDate(apiUrls.moduleGroups, type, startDate),\r\n\r\n getBusinessModuleGroups: async (startDate?: Date | string) =>\r\n await getEntitiesWithStartDate(apiUrls.moduleGroups, 'Business', startDate),\r\n\r\n getPersonalModuleGroups: async (startDate?: Date | string) =>\r\n await getEntitiesWithStartDate(apiUrls.moduleGroups, 'Personal', startDate),\r\n\r\n getModules: async (type: EntityTypeType, startDate?: Date | string) =>\r\n await getEntitiesWithStartDate(apiUrls.modules, type, startDate),\r\n\r\n getUnderwritingTypes: async (type?: EntityTypeType) =>\r\n (await getAsync(getUrlWithType(apiUrls.underwritingTypes, type)))?.data ?? [],\r\n\r\n getBenefits: async (type?: BenefitTypeType) =>\r\n (await getAsync(getUrlWithType(apiUrls.benefits, type)))?.data ?? [],\r\n\r\n getBenefitCategories: async (type?: BenefitTypeType) =>\r\n (await getAsync(getUrlWithType(apiUrls.benefitCategories, type)))?.data ?? [],\r\n\r\n getLeadTypes: async () =>\r\n (await getAsync(apiUrls.leadTypes))?.data ?? [],\r\n\r\n getIndustryTypes: async () =>\r\n (await getAsync(apiUrls.industryTypes))?.data ?? [],\r\n\r\n getImages: async (type?: ImageTypeType) =>\r\n (await getAsync(getUrlWithType(apiUrls.images, type)))?.data ?? [],\r\n\r\n getUnderwritingQuestions: async (type?: EntityTypeType, underwritingTypeId?: number, startDate?: Date | string) => {\r\n\r\n const searchParams = new URLSearchParams(window.location.search)\r\n\r\n if (type)\r\n searchParams.set('type', type)\r\n\r\n if (underwritingTypeId)\r\n searchParams.set('underwritingTypeId', `${underwritingTypeId}`)\r\n\r\n if (startDate)\r\n searchParams.set('startDate', formatDate(startDate, config.serverDateFormat)!)\r\n\r\n const url = `${apiUrls.underwritingQuestions}?${searchParams}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getUnderwritingQuestionAnswers: async (underwritingQuestionId?: number) => {\r\n let url = apiUrls.underwritingQuestionAnswers\r\n\r\n if (underwritingQuestionId)\r\n url += `?underwritingQuestionId=${underwritingQuestionId}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getMedicalConditionGroups: async (underwritingQuestionId?: number) => {\r\n let url = apiUrls.medicalConditionGroups\r\n\r\n if (underwritingQuestionId)\r\n url += `?underwritingQuestionId=${underwritingQuestionId}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getHospitalLists: async (type: EntityTypeType, postcode?: string) => {\r\n let url = getUrlWithType(apiUrls.hospitalLists, type)\r\n\r\n if (postcode)\r\n url += `&postcode=${postcode}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getExcessTypes: async () =>\r\n (await getAsync(apiUrls.excessTypes))?.data ?? [],\r\n\r\n getExcessAmounts: async () =>\r\n (await getAsync(apiUrls.excessAmounts))?.data ?? [],\r\n\r\n getInsurers: async (type?: EntityTypeType, startDate?: Date) =>\r\n getEntitiesWithStartDate(apiUrls.insurers, type, startDate),\r\n\r\n getInsurerSchemes: async (type: EntityTypeType, insurerId: number, startDate?: Date) =>\r\n await getEntitiesWithStartDateAndInsurer(apiUrls.insurerSchemes, type, insurerId, startDate),\r\n\r\n getInsurerExcessAmounts: async () =>\r\n (await getAsync(apiUrls.insurerExcessAmounts))?.data ?? [],\r\n\r\n getInsurerModuleGroups: async (insurerId?: number) => {\r\n let url = apiUrls.insurerModuleGroups\r\n\r\n if (insurerId)\r\n url += `?insurerId=${insurerId}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getInsurerModules: async (type: EntityTypeType, insurerId?: number, schemeId?: number, startDate?: Date | string, isPilot?: boolean) => {\r\n let url = getUrlWithType(apiUrls.insurerModules, type)\r\n\r\n if (startDate)\r\n url += `&startDate=${formatDate(startDate, config.serverDateFormat) }`\r\n\r\n if (insurerId)\r\n url += `&insurerId=${insurerId}`\r\n\r\n if (schemeId)\r\n url += `&schemeId=${schemeId}`\r\n\r\n if (isPilot !== undefined)\r\n url += `&isPilot=${isPilot}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getInsurerHospitalLists: async (type: EntityTypeType, insurerId: number, postcode?: string, startDate?: Date | string) => {\r\n let url = getUrlWithType(apiUrls.insurerHospitalLists, type)\r\n\r\n url += `&insurerId=${insurerId}`\r\n\r\n if (postcode)\r\n url += `&postcode=${postcode}`\r\n\r\n if (startDate)\r\n url += `&startDate=${formatDate(startDate, config.serverDateFormat)}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getTemplates: async (name?: string, type?: TemplateTypeType, underwritingTypeId?: number) => {\r\n \r\n const searchParams = new URLSearchParams(window.location.search)\r\n\r\n if (name)\r\n searchParams.set('name', name)\r\n\r\n if (type)\r\n searchParams.set('type', type)\r\n\r\n if (underwritingTypeId)\r\n searchParams.set('underwritingTypeId', `${underwritingTypeId}`)\r\n\r\n const url = `${apiUrls.templates}?${searchParams}`\r\n\r\n return (await getAsync(url))?.data ?? []\r\n },\r\n\r\n getPages: async () =>\r\n (await getAsync(apiUrls.contentPages))?.data ?? [],\r\n\r\n getUnderwritingActions: async () =>\r\n (await getAsync(apiUrls.underwritingActions))?.data ?? [],\r\n\r\n getTitles: async () =>\r\n (await getAsync(apiUrls.titles))?.data ?? [],\r\n\r\n getGenders: async () =>\r\n (await getAsync(apiUrls.genders))?.data ?? [],\r\n\r\n getPostcodeAreas: async () =>\r\n (await getAsync(apiUrls.postcodeAreas))?.data ?? [],\r\n\r\n getQueryTypes: async (type: EntityTypeType) =>\r\n (await getAsync(getUrlWithType(apiUrls.queryTypes, type)))?.data ?? [],\r\n\r\n getBusinessQuote: async (id: number) =>\r\n (await getAsync(`${apiUrls.businessQuotes}/${id}`))?.data,\r\n\r\n validateBusinessQuote: async (id: number, onError?: (e: AxiosError) => void) =>\r\n await putAsync(`${apiUrls.businessQuotes}/${id}/Validate`, onError)\r\n}","import { isAfter, isEqual, parse, parseISO } from 'date-fns'\r\nimport type { RuleParamSchema } from 'vee-validate/dist/types/types'\r\n\r\nconst validate = (value: string, { min, inclusion = false, format }: Record) => {\r\n\r\n const dateVal =\r\n format ?\r\n parse(value, format, new Date()) :\r\n parseISO(value)\r\n\r\n const minDate =\r\n typeof min === 'string' ?\r\n (format ?\r\n parse(min, format, new Date()) :\r\n parseISO(min)) :\r\n min\r\n\r\n if (!dateVal || !minDate)\r\n return false\r\n\r\n return isAfter(dateVal, minDate) || (inclusion && isEqual(dateVal, minDate))\r\n}\r\n\r\nconst params: RuleParamSchema[] = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'inclusion'\r\n },\r\n {\r\n name: 'format'\r\n }\r\n]\r\n\r\nexport { validate, params }\r\n\r\nexport default {\r\n validate,\r\n params\r\n}","import { isBefore, isEqual, parse, parseISO } from 'date-fns'\r\nimport type { RuleParamSchema } from 'vee-validate/dist/types/types'\r\n\r\nconst validate = (value: string, { max, inclusion = false, format }: Record) => {\r\n\r\n const dateVal =\r\n format ?\r\n parse(value, format, new Date()) :\r\n parseISO(value)\r\n\r\n const maxDate =\r\n typeof max === 'string' ?\r\n (format ?\r\n parse(max, format, new Date()) :\r\n parseISO(max)) :\r\n max\r\n\r\n if (!dateVal || !maxDate)\r\n return false\r\n\r\n return isBefore(dateVal, maxDate) || (inclusion && isEqual(dateVal, maxDate))\r\n}\r\n\r\nconst params: RuleParamSchema[] = [\r\n {\r\n name: 'max'\r\n },\r\n {\r\n name: 'inclusion'\r\n },\r\n {\r\n name: 'format'\r\n }\r\n]\r\n\r\nexport { validate, params }\r\n\r\nexport default {\r\n validate,\r\n params\r\n}","import { isAfter, isBefore, isEqual, parse, parseISO } from 'date-fns'\r\nimport type { RuleParamSchema } from 'vee-validate/dist/types/types'\r\n\r\nconst validate = (value: string, { min, max, inclusivity = '()', format }: Record) => {\r\n\r\n const dateVal =\r\n format ?\r\n parse(value, format, new Date()) :\r\n parseISO(value)\r\n\r\n const minDate =\r\n typeof min === 'string' ?\r\n (format ?\r\n parse(min, format, new Date()) :\r\n parseISO(min))\r\n : min\r\n\r\n const maxDate =\r\n typeof max === 'string' ?\r\n (format ?\r\n parse(max, format, new Date()) :\r\n parseISO(max)) :\r\n max\r\n\r\n if (!dateVal || !minDate || !maxDate)\r\n return false\r\n\r\n return (\r\n (\r\n isAfter(dateVal, minDate) ||\r\n inclusivity[0] === '[' && isEqual(dateVal, minDate)\r\n ) &&\r\n\r\n (\r\n isBefore(dateVal, maxDate) ||\r\n inclusivity[1] === ']' && isEqual(dateVal, maxDate)\r\n )\r\n )\r\n}\r\n\r\nconst params: RuleParamSchema[] = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'max'\r\n },\r\n {\r\n name: 'inclusivity'\r\n },\r\n {\r\n name: 'format'\r\n }\r\n]\r\n\r\nexport { validate, params }\r\n\r\nexport default {\r\n validate,\r\n params\r\n}","import type { RuleParamSchema } from 'vee-validate/dist/types/types'\r\nimport { parseDate } from '~/utils'\r\nimport { config } from '~/data/defaults.json'\r\n\r\nconst isValid = (value: string, format = config.dateFormat) =>\r\n !!parseDate(value, format)\r\n\r\nconst validate = (value: string, { format }: Record) => {\r\n return isValid(value, format)\r\n}\r\n\r\nconst params: RuleParamSchema[] = [\r\n {\r\n name: 'format'\r\n }\r\n]\r\n\r\nexport { validate, isValid, params }\r\n\r\nexport default {\r\n validate,\r\n isValid,\r\n params\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]{1,63}@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","import type { RuleParamSchema } from 'vee-validate/dist/types/types'\r\n\r\nconst validate = (value: string | ArrayLike, { min, max }: Record) => {\r\n const minLength = typeof min === 'string' ? parseInt(min) : min\r\n const maxLength = typeof max === 'string' ? parseInt(max) : max\r\n\r\n return value.length >= minLength && value.length <= maxLength\r\n}\r\n\r\nconst params: RuleParamSchema[] = [\r\n {\r\n name: 'min'\r\n },\r\n {\r\n name: 'max'\r\n }\r\n]\r\n\r\nexport { validate, params }\r\n\r\nexport default {\r\n validate,\r\n params\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^[a-zA-ZÀ-ž \\-']*$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^\\+\\d{1,3}-0\\d{9,10}$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","import { apiUrls } from '~/data/defaults.json'\r\nimport { asyncDebounce, getAsync } from '~/utils'\r\n\r\ninterface IValidatePostcode {\r\n isValid: boolean\r\n formattedValue: string\r\n}\r\n\r\nconst isValid = (value: string) => {\r\n\r\n const re = /^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2}))$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nconst validate = asyncDebounce(async (value: string) => {\r\n\r\n let valid = isValid(value)\r\n\r\n if (valid) {\r\n const response =\r\n await getAsync(\r\n `${apiUrls.services}/Postcode/${value}/Validate`,\r\n undefined,\r\n () => {\r\n\r\n }\r\n )\r\n\r\n if (response)\r\n valid = response.data.isValid\r\n }\r\n\r\n return valid\r\n}, 100)\r\n\r\nexport { validate, isValid }\r\n\r\nexport default {\r\n validate,\r\n isValid\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^\\d{2}-\\d{2}-\\d{2}$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","const validate = (value: string) => {\r\n\r\n const re = /^\\d{8}$/\r\n\r\n return re.test(value)\r\n}\r\n\r\nexport { validate }\r\n\r\nexport default {\r\n validate\r\n}","import { Component, Vue } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class ExpandTransition extends Vue {\r\n beforeEnter() {\r\n //const el = element as HTMLElement\r\n\r\n //el.style.overflow = `auto`\r\n\r\n // might be needed\r\n //el.style.willChange = `height`\r\n //el.style.transform = `translateZ(0)`\r\n //el.style.backfaceVisibility = `hidden`\r\n //el.style.perspective = `1000px`\r\n }\r\n\r\n enter(element: Element) {\r\n const el = element as HTMLElement\r\n\r\n const { width } = getComputedStyle(el)\r\n\r\n el.style.width = width\r\n //el.style.overflow = `auto`\r\n el.style.position = `absolute`\r\n el.style.visibility = `hidden`\r\n el.style.height = `auto`\r\n \r\n const { height } = getComputedStyle(el)\r\n\r\n el.style.width = `auto`\r\n //el.style.overflow = `hidden`\r\n el.style.position = `static`\r\n el.style.visibility = `visible`\r\n el.style.height = `0`\r\n\r\n // eslint-disable-next-line no-unused-expressions\r\n getComputedStyle(el).height\r\n\r\n requestAnimationFrame(() => {\r\n el.style.height = height\r\n })\r\n }\r\n\r\n afterEnter(element: Element) {\r\n const el = element as HTMLElement\r\n\r\n el.style.height = `auto`\r\n //el.style.overflow = `auto`\r\n }\r\n\r\n onAfterAppear(element: Element) {\r\n const el = element as HTMLElement\r\n\r\n el.style.height = `auto`\r\n //el.style.overflow = `auto`\r\n }\r\n\r\n leave(element: Element) {\r\n const el = element as HTMLElement\r\n\r\n const { height } = getComputedStyle(el)\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n el.style.height = height\r\n\r\n // eslint-disable-next-line no-unused-expressions\r\n getComputedStyle(el).height\r\n\r\n requestAnimationFrame(() => {\r\n el.style.height = `0`\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.$slots.default }\r\n \r\n )\r\n }\r\n}\r\n\r\n","import { defineComponent } from 'vue'\r\nimport { BSpinner } from 'bootstrap-vue'\r\n\r\nexport default defineComponent({\r\n inheritAttrs: false,\r\n setup() {\r\n return () =>\r\n
\r\n \r\n
\r\n }\r\n})","import BaseComponent from '~/models/BaseComponent'\r\nimport { adminArea, businessArea, customerArea, discountingArea, newBusinessArea, personalArea, processingArea, underwritingArea } from '~/router'\r\nimport { MyStore, useStore } from '~/store'\r\nimport { Component } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class StateComponent extends BaseComponent {\r\n protected store!: MyStore\r\n\r\n get profile() {\r\n return this.store.profile\r\n }\r\n\r\n get activeUserId() {\r\n return this.profile?.id ?? null\r\n }\r\n\r\n get activeAgencyId() {\r\n return this.profile?.activeAgency?.id ?? null\r\n }\r\n\r\n get offer() {\r\n return this.store.offer\r\n }\r\n\r\n get settings() {\r\n return this.store.settings\r\n }\r\n\r\n get isDirectMarketing() {\r\n return !!this.profile?.isDirectMarketing\r\n }\r\n\r\n get isVitalityAgent() {\r\n return !!this.profile?.isVitalityAgent\r\n }\r\n\r\n get isInternalAgent() {\r\n return this.isVitalityAgent || this.isDirectMarketing\r\n }\r\n\r\n get isTelemed() {\r\n return !!this.profile?.isTelemed\r\n }\r\n\r\n get roles() {\r\n return this.profile?.roles\r\n }\r\n\r\n get isManager() {\r\n return this.roles?.some(r => r.endsWith('Manager'))\r\n }\r\n\r\n get isChannelManager() {\r\n return this.roles?.some(r => r === 'Channel Manager')\r\n }\r\n\r\n get isRegionalManager() {\r\n return this.roles?.some(r => r === 'Regional Manager')\r\n }\r\n\r\n get isAccountManager() {\r\n return this.roles?.some(r => r === 'Account Manager')\r\n }\r\n\r\n get isCustomer() {\r\n return this.roles?.every(r => r === 'Customer')\r\n }\r\n\r\n get isAdmin() {\r\n return this.roles?.some(r => r.endsWith('Admin'))\r\n }\r\n\r\n get isSystemAdmin() {\r\n return this.roles?.some(r => r === 'System Admin')\r\n }\r\n\r\n get isProperAdmin() {\r\n return this.isSystemAdmin || this.roles?.some(r => r === 'Vitality Admin')\r\n }\r\n\r\n get showInternalDetails() {\r\n return this.isProperAdmin || this.isInternalUser\r\n }\r\n\r\n get isServicingAdmin() {\r\n return this.roles?.some(r => r === 'Servicing Admin')\r\n }\r\n\r\n get isClaimsAdmin() {\r\n return this.roles?.some(r => r === 'Claims Admin')\r\n }\r\n\r\n get isPricingAdmin() {\r\n return this.roles?.some(r => r === 'Pricing Admin')\r\n }\r\n\r\n get isNewBusinessAdmin() {\r\n return this.roles?.some(r => r === 'New Business Admin')\r\n }\r\n\r\n get isUnderwritingAdmin() {\r\n return this.roles?.some(r => r === 'Underwriting Admin')\r\n }\r\n\r\n get isBrokerAdmin() {\r\n return this.roles?.some(r => r === 'Broker Admin')\r\n }\r\n\r\n get isBroker() {\r\n return this.roles?.some(r => r.startsWith('Broker'))\r\n }\r\n\r\n get isNewBusiness() {\r\n return this.roles?.some(r => r.startsWith('New Business'))\r\n }\r\n\r\n get isUnderwriting() {\r\n return this.roles?.some(r => r.startsWith('Underwriting'))\r\n }\r\n\r\n get isProcessing() {\r\n return this.roles?.some(r => r.startsWith('Processing'))\r\n }\r\n\r\n get isDiscounting() {\r\n return this.roles?.some(r => r.startsWith('Discounting'))\r\n }\r\n\r\n get isMarketing() {\r\n return this.roles?.some(r => r.startsWith('Marketing'))\r\n }\r\n\r\n get isUnderwritingOrSystemAdmin() {\r\n return (this.isUnderwritingAdmin || this.isSystemAdmin)\r\n }\r\n\r\n get isNewBusinessOrSystemAdmin() {\r\n return (this.isNewBusinessAdmin || this.isSystemAdmin)\r\n }\r\n\r\n get isInternalUser() {\r\n return (\r\n this.isServicingAdmin ||\r\n this.isProperAdmin ||\r\n this.isManager ||\r\n this.isNewBusiness ||\r\n this.isUnderwriting ||\r\n this.isPricingAdmin ||\r\n this.isClaimsAdmin ||\r\n this.isProcessing ||\r\n this.isDiscounting\r\n )\r\n }\r\n\r\n get areas() {\r\n const availableAreas: string[] = []\r\n\r\n if (this.roles?.some(r => r === 'Broker Agent')) {\r\n availableAreas.push(personalArea)\r\n //availableAreas.push(legacyArea)\r\n availableAreas.push(businessArea)\r\n }\r\n\r\n if (this.roles?.some(r => r === 'New Business Agent'))\r\n availableAreas.push(newBusinessArea)\r\n\r\n if (this.roles?.some(r => r === 'Underwriting Agent'))\r\n availableAreas.push(underwritingArea)\r\n\r\n if (this.roles?.some(r => r === 'Processing Agent'))\r\n availableAreas.push(processingArea)\r\n\r\n if (this.roles?.some(r => r === 'Discounting Agent'))\r\n availableAreas.push(discountingArea)\r\n\r\n if (this.isCustomer)\r\n availableAreas.push(customerArea)\r\n\r\n if (this.isAdmin || this.isManager)\r\n availableAreas.push(adminArea)\r\n\r\n return availableAreas\r\n }\r\n\r\n get area() {\r\n return this.routePath.split('/')[1]\r\n }\r\n\r\n beforeCreate() {\r\n this.store = useStore()\r\n }\r\n}\r\n","var map = {\n\t\"./agencies/AgenciesGrid\": [\n\t\t7536,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7536\n\t],\n\t\"./benefitCategories/BenefitCategoriesGrid\": [\n\t\t74352,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1971\n\t],\n\t\"./benefits/BenefitsGrid\": [\n\t\t9214,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t9214\n\t],\n\t\"./bundles/BundlesGrid\": [\n\t\t68444,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8444\n\t],\n\t\"./businessApplications/BusinessApplicationsGrid\": [\n\t\t22792,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3694,\n\t\t2792\n\t],\n\t\"./businessHealthcarePlans/BusinessHealthcarePlansGrid\": [\n\t\t75776,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t5776\n\t],\n\t\"./businessIndicativeQuotes/BusinessIndicativeQuotesGrid\": [\n\t\t61052,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1052\n\t],\n\t\"./businessQuoteRequests/BusinessQuoteRequestsGrid\": [\n\t\t73748,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3748\n\t],\n\t\"./businessQuotes/BusinessQuotesGrid\": [\n\t\t68256,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8256\n\t],\n\t\"./contentPages/ContentPagesGrid\": [\n\t\t49520,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t9520\n\t],\n\t\"./customerNeeds/CustomerNeedsGrid\": [\n\t\t20472,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t472\n\t],\n\t\"./discountTypes/DiscountTypesGrid\": [\n\t\t27392,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7392\n\t],\n\t\"./factFinds/FactFindsGrid\": [\n\t\t2236,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t2236\n\t],\n\t\"./hospitalLists/HospitalListsGrid\": [\n\t\t31920,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1920\n\t],\n\t\"./images/ImagesGrid\": [\n\t\t8594,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8594\n\t],\n\t\"./insurerDiscounts/InsurerDiscountsGrid\": [\n\t\t35762,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t5762\n\t],\n\t\"./insurerExcessAmounts/InsurerExcessAmountsGrid\": [\n\t\t62562,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t2562\n\t],\n\t\"./insurerHospitalLists/InsurerHospitalListsGrid\": [\n\t\t37880,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7880\n\t],\n\t\"./insurerModuleGroups/InsurerModuleGroupsGrid\": [\n\t\t33792,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3792\n\t],\n\t\"./insurerModules/InsurerModulesGrid\": [\n\t\t11684,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1684\n\t],\n\t\"./insurerSchemes/InsurerSchemesGrid\": [\n\t\t46578,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t6578\n\t],\n\t\"./insurers/InsurersGrid\": [\n\t\t61352,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1352\n\t],\n\t\"./medicalConditionGroups/MedicalConditionGroupsGrid\": [\n\t\t43014,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3014\n\t],\n\t\"./memberMixDiscounts/MemberMixDiscountsGrid\": [\n\t\t20262,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t262\n\t],\n\t\"./midTermLoadings/MidTermLoadingsGrid\": [\n\t\t740,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t740\n\t],\n\t\"./minimumPremiums/MinimumPremiumsGrid\": [\n\t\t77396,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7396\n\t],\n\t\"./moduleGroups/ModuleGroupsGrid\": [\n\t\t47362,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7362\n\t],\n\t\"./modules/ModulesGrid\": [\n\t\t98304,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8304\n\t],\n\t\"./mtjCases/MtjCasesGrid\": [\n\t\t53926,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3926\n\t],\n\t\"./notifications/NotificationsGrid\": [\n\t\t37796,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t7796\n\t],\n\t\"./personalApplications/PersonalApplicationsGrid\": [\n\t\t26256,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3694,\n\t\t6256\n\t],\n\t\"./personalQuotes/PersonalQuotesGrid\": [\n\t\t54860,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t4860\n\t],\n\t\"./postcodeAreas/PostcodeAreasGrid\": [\n\t\t96944,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t6944\n\t],\n\t\"./products/ProductsGrid\": [\n\t\t50582,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t582\n\t],\n\t\"./queryTypes/QueryTypesGrid\": [\n\t\t49124,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t9124\n\t],\n\t\"./regions/RegionsGrid\": [\n\t\t21612,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1612\n\t],\n\t\"./templates/TemplatesGrid\": [\n\t\t44352,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t4352\n\t],\n\t\"./tenureDiscounts/TenureDiscountsGrid\": [\n\t\t38164,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8164\n\t],\n\t\"./underwritingQuestionAnswers/UnderwritingQuestionAnswersGrid\": [\n\t\t23984,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t3984\n\t],\n\t\"./underwritingQuestions/UnderwritingQuestionsGrid\": [\n\t\t21504,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t1504\n\t],\n\t\"./underwritingRiskScores/UnderwritingRiskScoresGrid\": [\n\t\t38398,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8398\n\t],\n\t\"./users/UsersGrid\": [\n\t\t8436,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t8436\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 35164;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./agencies/AgencyNew\": [\n\t\t89340,\n\t\t7608,\n\t\t5805,\n\t\t2255,\n\t\t202,\n\t\t9340\n\t],\n\t\"./benefitCategories/BenefitCategoryNew\": [\n\t\t31740,\n\t\t978,\n\t\t1740\n\t],\n\t\"./benefits/BenefitNew\": [\n\t\t88963,\n\t\t8806,\n\t\t8963\n\t],\n\t\"./bundles/BundleNew\": [\n\t\t65709,\n\t\t8088,\n\t\t5709\n\t],\n\t\"./businessIndicativeQuotes/BusinessIndicativeQuoteNew\": [\n\t\t12205,\n\t\t715,\n\t\t2205\n\t],\n\t\"./businessQuotes/BusinessQuoteFactFindNew\": [\n\t\t36672,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t2757,\n\t\t9117,\n\t\t3480,\n\t\t3121\n\t],\n\t\"./businessQuotes/BusinessQuoteNew\": [\n\t\t13817,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t5805,\n\t\t2255,\n\t\t2757,\n\t\t8136\n\t],\n\t\"./contentPages/ContentPageNew\": [\n\t\t58953,\n\t\t7053,\n\t\t8953\n\t],\n\t\"./customerNeeds/CustomerNeedNew\": [\n\t\t28881,\n\t\t7608,\n\t\t1967,\n\t\t7599,\n\t\t8881\n\t],\n\t\"./discountTypes/DiscountTypeNew\": [\n\t\t26297,\n\t\t6297\n\t],\n\t\"./factFinds/FactFindNew\": [\n\t\t63021,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t2757,\n\t\t9117,\n\t\t3480,\n\t\t9852\n\t],\n\t\"./factFinds/FactFindQuoteNew\": [\n\t\t97129,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t5805,\n\t\t2255,\n\t\t920,\n\t\t2757,\n\t\t9117,\n\t\t6985,\n\t\t6760\n\t],\n\t\"./hospitalLists/HospitalListNew\": [\n\t\t93129,\n\t\t7608,\n\t\t1967,\n\t\t4989,\n\t\t3129\n\t],\n\t\"./images/ImageNew\": [\n\t\t8431,\n\t\t4492,\n\t\t8431\n\t],\n\t\"./insurerDiscounts/InsurerDiscountNew\": [\n\t\t77327,\n\t\t7608,\n\t\t1967,\n\t\t5870,\n\t\t7327\n\t],\n\t\"./insurerExcessAmounts/InsurerExcessAmountNew\": [\n\t\t96831,\n\t\t7608,\n\t\t1967,\n\t\t6831\n\t],\n\t\"./insurerHospitalLists/InsurerHospitalListNew\": [\n\t\t14769,\n\t\t7608,\n\t\t1967,\n\t\t8289,\n\t\t4769\n\t],\n\t\"./insurerModuleGroups/InsurerModuleGroupNew\": [\n\t\t27097,\n\t\t7608,\n\t\t1967,\n\t\t7097\n\t],\n\t\"./insurerModules/InsurerModuleNew\": [\n\t\t74613,\n\t\t7608,\n\t\t1967,\n\t\t9271,\n\t\t4613\n\t],\n\t\"./insurerSchemes/InsurerSchemeNew\": [\n\t\t9103,\n\t\t8088,\n\t\t9103\n\t],\n\t\"./insurers/InsurerNew\": [\n\t\t11233,\n\t\t1233\n\t],\n\t\"./medicalConditionGroups/MedicalConditionGroupNew\": [\n\t\t72331,\n\t\t2230,\n\t\t2331\n\t],\n\t\"./memberMixDiscounts/MemberMixDiscountNew\": [\n\t\t39211,\n\t\t7608,\n\t\t1967,\n\t\t6250,\n\t\t9211\n\t],\n\t\"./midTermLoadings/MidTermLoadingNew\": [\n\t\t67317,\n\t\t7608,\n\t\t1967,\n\t\t4139,\n\t\t7317\n\t],\n\t\"./minimumPremiums/MinimumPremiumNew\": [\n\t\t32741,\n\t\t7608,\n\t\t1967,\n\t\t4516,\n\t\t2741\n\t],\n\t\"./moduleGroups/ModuleGroupNew\": [\n\t\t81887,\n\t\t1887\n\t],\n\t\"./modules/ModuleNew\": [\n\t\t90105,\n\t\t3211,\n\t\t105\n\t],\n\t\"./personalQuotes/PersonalQuoteNew\": [\n\t\t86653,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t920,\n\t\t9117,\n\t\t6985,\n\t\t5172\n\t],\n\t\"./postcodeAreas/PostcodeAreaNew\": [\n\t\t30153,\n\t\t153\n\t],\n\t\"./products/ProductNew\": [\n\t\t43291,\n\t\t7608,\n\t\t1967,\n\t\t6934,\n\t\t3291\n\t],\n\t\"./queryTypes/QueryTypeNew\": [\n\t\t97525,\n\t\t7525\n\t],\n\t\"./regions/RegionNew\": [\n\t\t18525,\n\t\t8525\n\t],\n\t\"./templates/TemplateNew\": [\n\t\t42969,\n\t\t2230,\n\t\t2969\n\t],\n\t\"./tenureDiscounts/TenureDiscountNew\": [\n\t\t61125,\n\t\t7608,\n\t\t1967,\n\t\t4115,\n\t\t1125\n\t],\n\t\"./underwritingQuestionAnswers/UnderwritingQuestionAnswerNew\": [\n\t\t86441,\n\t\t6441\n\t],\n\t\"./underwritingQuestions/UnderwritingQuestionNew\": [\n\t\t5081,\n\t\t7608,\n\t\t1967,\n\t\t2230,\n\t\t7157,\n\t\t5081\n\t],\n\t\"./underwritingRiskScores/UnderwritingRiskScoreNew\": [\n\t\t55203,\n\t\t7568,\n\t\t5203\n\t],\n\t\"./users/UserNew\": [\n\t\t91749,\n\t\t2757,\n\t\t9146,\n\t\t1716\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 66642;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./agencies/AgencyUpdate\": [\n\t\t48723,\n\t\t7608,\n\t\t5805,\n\t\t2255,\n\t\t202,\n\t\t8723\n\t],\n\t\"./benefitCategories/BenefitCategoryUpdate\": [\n\t\t93939,\n\t\t978,\n\t\t3939\n\t],\n\t\"./benefits/BenefitUpdate\": [\n\t\t67122,\n\t\t8806,\n\t\t7122\n\t],\n\t\"./bundles/BundleUpdate\": [\n\t\t47584,\n\t\t8088,\n\t\t7584\n\t],\n\t\"./businessApplications/BusinessApplicationUpdate\": [\n\t\t40778,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t9117,\n\t\t6626,\n\t\t5933\n\t],\n\t\"./businessIndicativeQuotes/BusinessIndicativeQuoteUpdate\": [\n\t\t51392,\n\t\t715,\n\t\t1392\n\t],\n\t\"./businessQuotes/BusinessQuoteUpdate\": [\n\t\t99540,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t2757,\n\t\t9117,\n\t\t7781\n\t],\n\t\"./contentPages/ContentPageUpdate\": [\n\t\t58108,\n\t\t7053,\n\t\t8108\n\t],\n\t\"./customerNeeds/CustomerNeedUpdate\": [\n\t\t75300,\n\t\t7608,\n\t\t1967,\n\t\t7599,\n\t\t5300\n\t],\n\t\"./discountTypes/DiscountTypeUpdate\": [\n\t\t90156,\n\t\t156\n\t],\n\t\"./factFinds/FactFindUpdate\": [\n\t\t31168,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t2757,\n\t\t9117,\n\t\t3480,\n\t\t1713\n\t],\n\t\"./hospitalLists/HospitalListUpdate\": [\n\t\t16220,\n\t\t7608,\n\t\t1967,\n\t\t4989,\n\t\t6220\n\t],\n\t\"./images/ImageUpdate\": [\n\t\t69134,\n\t\t4492,\n\t\t9134\n\t],\n\t\"./insurerDiscounts/InsurerDiscountUpdate\": [\n\t\t95214,\n\t\t7608,\n\t\t1967,\n\t\t5870,\n\t\t5214\n\t],\n\t\"./insurerExcessAmounts/InsurerExcessAmountUpdate\": [\n\t\t12222,\n\t\t7608,\n\t\t1967,\n\t\t2222\n\t],\n\t\"./insurerHospitalLists/InsurerHospitalListUpdate\": [\n\t\t37924,\n\t\t7608,\n\t\t1967,\n\t\t8289,\n\t\t7924\n\t],\n\t\"./insurerModuleGroups/InsurerModuleGroupUpdate\": [\n\t\t3052,\n\t\t7608,\n\t\t1967,\n\t\t3052\n\t],\n\t\"./insurerModules/InsurerModuleUpdate\": [\n\t\t77128,\n\t\t7608,\n\t\t1967,\n\t\t9271,\n\t\t7128\n\t],\n\t\"./insurerSchemes/InsurerSchemeUpdate\": [\n\t\t60878,\n\t\t8088,\n\t\t878\n\t],\n\t\"./insurers/InsurerUpdate\": [\n\t\t19540,\n\t\t9540\n\t],\n\t\"./medicalConditionGroups/MedicalConditionGroupUpdate\": [\n\t\t29658,\n\t\t2230,\n\t\t9658\n\t],\n\t\"./memberMixDiscounts/MemberMixDiscountUpdate\": [\n\t\t60634,\n\t\t7608,\n\t\t1967,\n\t\t6250,\n\t\t634\n\t],\n\t\"./midTermLoadings/MidTermLoadingUpdate\": [\n\t\t19400,\n\t\t7608,\n\t\t1967,\n\t\t4139,\n\t\t9400\n\t],\n\t\"./minimumPremiums/MinimumPremiumUpdate\": [\n\t\t86936,\n\t\t7608,\n\t\t1967,\n\t\t4516,\n\t\t6936\n\t],\n\t\"./moduleGroups/ModuleGroupUpdate\": [\n\t\t82814,\n\t\t2814\n\t],\n\t\"./modules/ModuleUpdate\": [\n\t\t7596,\n\t\t3211,\n\t\t7596\n\t],\n\t\"./personalApplications/PersonalApplicationUpdate\": [\n\t\t31519,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t920,\n\t\t9117,\n\t\t6626,\n\t\t1519\n\t],\n\t\"./personalQuotes/PersonalQuoteUpdate\": [\n\t\t54665,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t2255,\n\t\t920,\n\t\t9117,\n\t\t6985,\n\t\t4217\n\t],\n\t\"./postcodeAreas/PostcodeAreaUpdate\": [\n\t\t20956,\n\t\t956\n\t],\n\t\"./products/ProductUpdate\": [\n\t\t3146,\n\t\t7608,\n\t\t1967,\n\t\t6934,\n\t\t3146\n\t],\n\t\"./queryTypes/QueryTypeUpdate\": [\n\t\t19432,\n\t\t9432\n\t],\n\t\"./questionnaire/QuestionnaireUpdate\": [\n\t\t69175,\n\t\t7608,\n\t\t1967,\n\t\t5805,\n\t\t920,\n\t\t9175\n\t],\n\t\"./regions/RegionUpdate\": [\n\t\t83824,\n\t\t3824\n\t],\n\t\"./templates/TemplateUpdate\": [\n\t\t97324,\n\t\t2230,\n\t\t7324\n\t],\n\t\"./tenureDiscounts/TenureDiscountUpdate\": [\n\t\t73528,\n\t\t7608,\n\t\t1967,\n\t\t4115,\n\t\t3528\n\t],\n\t\"./underwritingQuestionAnswers/UnderwritingQuestionAnswerUpdate\": [\n\t\t56028,\n\t\t6028\n\t],\n\t\"./underwritingQuestions/UnderwritingQuestionUpdate\": [\n\t\t47436,\n\t\t7608,\n\t\t1967,\n\t\t2230,\n\t\t7157,\n\t\t7436\n\t],\n\t\"./underwritingRiskScores/UnderwritingRiskScoreUpdate\": [\n\t\t5970,\n\t\t7568,\n\t\t5970\n\t],\n\t\"./users/UserUpdate\": [\n\t\t53880,\n\t\t2757,\n\t\t9146,\n\t\t2505\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 64947;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./adviser/AdviserQuestionnaireView\": [\n\t\t29146,\n\t\t6765\n\t],\n\t\"./agencies/AgencyView\": [\n\t\t18823,\n\t\t8823\n\t],\n\t\"./benefitCategories/BenefitCategoryView\": [\n\t\t63687,\n\t\t3687\n\t],\n\t\"./benefits/BenefitView\": [\n\t\t83386,\n\t\t3386\n\t],\n\t\"./bundles/BundleView\": [\n\t\t5744,\n\t\t5744\n\t],\n\t\"./businessApplications/BusinessApplicationPdfView\": [\n\t\t52367,\n\t\t5322,\n\t\t1657,\n\t\t2367\n\t],\n\t\"./businessApplications/BusinessApplicationView\": [\n\t\t93516,\n\t\t5322,\n\t\t1657,\n\t\t4343,\n\t\t2367,\n\t\t5706\n\t],\n\t\"./businessHealthcarePlans/BusinessHealthcarePlanView\": [\n\t\t26612,\n\t\t491,\n\t\t6612\n\t],\n\t\"./businessIndicativeQuotes/BusinessIndicativeQuoteView\": [\n\t\t25872,\n\t\t5872\n\t],\n\t\"./businessQuoteRequests/BusinessQuoteRequestPdfView\": [\n\t\t33138,\n\t\t491,\n\t\t3138\n\t],\n\t\"./businessQuoteRequests/BusinessQuoteRequestView\": [\n\t\t13963,\n\t\t491,\n\t\t3963\n\t],\n\t\"./businessQuotes/BusinessQuotePdfView\": [\n\t\t40985,\n\t\t5322,\n\t\t1657,\n\t\t3366\n\t],\n\t\"./businessQuotes/BusinessQuoteView\": [\n\t\t53177,\n\t\t7608,\n\t\t1967,\n\t\t3989,\n\t\t5322,\n\t\t1657,\n\t\t3177\n\t],\n\t\"./contentPages/ContentPageView\": [\n\t\t76740,\n\t\t6740\n\t],\n\t\"./customer/CustomerBusinessApplicationView\": [\n\t\t57855,\n\t\t5322,\n\t\t1657,\n\t\t2367,\n\t\t7855\n\t],\n\t\"./customer/CustomerPersonalApplicationView\": [\n\t\t44041,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t2848,\n\t\t2674,\n\t\t9677,\n\t\t3751,\n\t\t4041\n\t],\n\t\"./customer/CustomerQuestionnaireView\": [\n\t\t18204,\n\t\t8204\n\t],\n\t\"./customerNeeds/CustomerNeedView\": [\n\t\t37244,\n\t\t7244\n\t],\n\t\"./discountTypes/DiscountTypeView\": [\n\t\t4276,\n\t\t4276\n\t],\n\t\"./factFinds/FactFindPdfBusinessView\": [\n\t\t83740,\n\t\t5322,\n\t\t1657,\n\t\t3740\n\t],\n\t\"./factFinds/FactFindPdfPersonalView\": [\n\t\t17370,\n\t\t2848,\n\t\t2674,\n\t\t1909\n\t],\n\t\"./factFinds/FactFindView\": [\n\t\t70992,\n\t\t992\n\t],\n\t\"./hospitalLists/HospitalListView\": [\n\t\t20740,\n\t\t8359\n\t],\n\t\"./images/ImageView\": [\n\t\t9854,\n\t\t9854\n\t],\n\t\"./insurerDiscounts/InsurerDiscountView\": [\n\t\t56094,\n\t\t6094\n\t],\n\t\"./insurerExcessAmounts/InsurerExcessAmountView\": [\n\t\t26318,\n\t\t6318\n\t],\n\t\"./insurerHospitalLists/InsurerHospitalListView\": [\n\t\t31900,\n\t\t1900\n\t],\n\t\"./insurerModuleGroups/InsurerModuleGroupView\": [\n\t\t85940,\n\t\t5940\n\t],\n\t\"./insurerModules/InsurerModuleView\": [\n\t\t60520,\n\t\t520\n\t],\n\t\"./insurerSchemes/InsurerSchemeView\": [\n\t\t87486,\n\t\t7486\n\t],\n\t\"./insurers/InsurerView\": [\n\t\t81004,\n\t\t1004\n\t],\n\t\"./medicalConditionGroups/MedicalConditionGroupView\": [\n\t\t61234,\n\t\t1234\n\t],\n\t\"./memberMixDiscounts/MemberMixDiscountView\": [\n\t\t15122,\n\t\t5122\n\t],\n\t\"./midTermLoadings/MidTermLoadingView\": [\n\t\t90600,\n\t\t600\n\t],\n\t\"./minimumPremiums/MinimumPremiumView\": [\n\t\t57752,\n\t\t7752\n\t],\n\t\"./moduleGroups/ModuleGroupView\": [\n\t\t46030,\n\t\t6030\n\t],\n\t\"./modules/ModuleView\": [\n\t\t15604,\n\t\t5604\n\t],\n\t\"./mtjCases/MtjCasePdfView\": [\n\t\t54149,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t1288\n\t],\n\t\"./mtjCases/MtjCaseView\": [\n\t\t32530,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t4343,\n\t\t1288,\n\t\t5640\n\t],\n\t\"./notifications/NotificationView\": [\n\t\t42056,\n\t\t2056\n\t],\n\t\"./personalApplications/PersonalApplicationPdfView\": [\n\t\t13751,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t2848,\n\t\t2674,\n\t\t9677,\n\t\t3751\n\t],\n\t\"./personalApplications/PersonalApplicationView\": [\n\t\t75864,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t2848,\n\t\t2674,\n\t\t9677,\n\t\t4343,\n\t\t3751,\n\t\t5864\n\t],\n\t\"./personalQuotes/PersonalQuotePdfView\": [\n\t\t70058,\n\t\t2848,\n\t\t3817\n\t],\n\t\"./personalQuotes/PersonalQuoteView\": [\n\t\t76906,\n\t\t7608,\n\t\t1967,\n\t\t920,\n\t\t2848,\n\t\t2674,\n\t\t9677,\n\t\t4343,\n\t\t6906\n\t],\n\t\"./personalQuotes/SalesAidPdfView\": [\n\t\t62976,\n\t\t7608,\n\t\t5805,\n\t\t2255,\n\t\t2848,\n\t\t9176\n\t],\n\t\"./postcodeAreas/PostcodeAreaView\": [\n\t\t62756,\n\t\t2756\n\t],\n\t\"./products/ProductView\": [\n\t\t45282,\n\t\t5282\n\t],\n\t\"./queryTypes/QueryTypeView\": [\n\t\t51784,\n\t\t1784\n\t],\n\t\"./regions/RegionView\": [\n\t\t94848,\n\t\t4848\n\t],\n\t\"./templates/TemplateView\": [\n\t\t31220,\n\t\t1220\n\t],\n\t\"./tenureDiscounts/TenureDiscountView\": [\n\t\t78872,\n\t\t8872\n\t],\n\t\"./underwritingQuestionAnswers/UnderwritingQuestionAnswerView\": [\n\t\t68772,\n\t\t8772\n\t],\n\t\"./underwritingQuestions/UnderwritingQuestionView\": [\n\t\t98228,\n\t\t8228\n\t],\n\t\"./underwritingRiskScores/UnderwritingRiskScoreView\": [\n\t\t65146,\n\t\t5146\n\t],\n\t\"./users/UserView\": [\n\t\t91384,\n\t\t1384\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 63947;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"105\":\"677d6d0d\",\"153\":\"affe2382\",\"156\":\"21d9a4f8\",\"202\":\"e01d1a6d\",\"262\":\"c8b7435d\",\"472\":\"646fb5e1\",\"491\":\"f8445e1d\",\"503\":\"e77c938b\",\"520\":\"04bf920e\",\"582\":\"208acde4\",\"600\":\"16dfba56\",\"634\":\"157489d9\",\"715\":\"d6b0a203\",\"740\":\"27636036\",\"747\":\"472bf0cb\",\"860\":\"71fe5eb1\",\"878\":\"72bd6b69\",\"920\":\"ae3d8f9a\",\"956\":\"66a7e930\",\"978\":\"49390e8f\",\"992\":\"4871b3bb\",\"1004\":\"49944c7a\",\"1052\":\"4b440c80\",\"1125\":\"16aa658e\",\"1220\":\"9f86ce1f\",\"1233\":\"52bc61d4\",\"1234\":\"cfd0cf71\",\"1288\":\"9dfea2c0\",\"1352\":\"c1bcedae\",\"1384\":\"9f9ba9e5\",\"1392\":\"4d82c7ab\",\"1459\":\"3d1092f1\",\"1504\":\"222888bc\",\"1519\":\"1dfdb48f\",\"1612\":\"2c02ef8f\",\"1657\":\"2edc68ae\",\"1684\":\"a2de8911\",\"1713\":\"c4d2c05f\",\"1716\":\"250ec06c\",\"1740\":\"95ad3d04\",\"1784\":\"252e71cc\",\"1831\":\"c99c1fd7\",\"1887\":\"d249c4de\",\"1900\":\"b4482991\",\"1909\":\"bba2e672\",\"1920\":\"9beb795e\",\"1967\":\"a2d96728\",\"1971\":\"448222d7\",\"2056\":\"7e542b89\",\"2205\":\"1f16ff74\",\"2222\":\"176d5b95\",\"2230\":\"dcd15bfb\",\"2236\":\"9d4c6a8a\",\"2255\":\"f01b33bf\",\"2331\":\"503e2351\",\"2367\":\"ee8a1cdd\",\"2505\":\"bc1b8894\",\"2562\":\"065e7a9c\",\"2598\":\"bf7b08b5\",\"2674\":\"a07cfa00\",\"2741\":\"6a248a49\",\"2756\":\"dac09aa2\",\"2757\":\"ddebcb4d\",\"2792\":\"11abdade\",\"2814\":\"7feed9b7\",\"2848\":\"e7d232df\",\"2969\":\"214cec4d\",\"3014\":\"6f5b7543\",\"3052\":\"e52ae98b\",\"3121\":\"1e7c3b0b\",\"3129\":\"ca965588\",\"3138\":\"df240ced\",\"3146\":\"8f515354\",\"3177\":\"640d0cc2\",\"3211\":\"4670c08f\",\"3291\":\"f806d4a5\",\"3331\":\"39482886\",\"3366\":\"9cc7c67b\",\"3386\":\"a74cb4f9\",\"3480\":\"45a76c44\",\"3528\":\"1fc20549\",\"3557\":\"ccfa8312\",\"3687\":\"311b7131\",\"3694\":\"38793972\",\"3740\":\"ab5d3e57\",\"3748\":\"b3796da4\",\"3751\":\"6cb03c2a\",\"3792\":\"39aedf17\",\"3817\":\"bcb007a9\",\"3824\":\"95c8db9f\",\"3926\":\"487602c8\",\"3939\":\"a82f9eb8\",\"3963\":\"0f85893a\",\"3984\":\"be3a20c8\",\"3989\":\"e2bd591f\",\"4041\":\"8b2bd9a9\",\"4115\":\"2c6a71ed\",\"4139\":\"4b38d0e8\",\"4166\":\"7c7e3097\",\"4217\":\"17a25eba\",\"4276\":\"73be01ec\",\"4343\":\"34bb6462\",\"4352\":\"b74e438c\",\"4492\":\"6bec2096\",\"4516\":\"c4c55481\",\"4613\":\"e02fdf72\",\"4676\":\"d2e09376\",\"4769\":\"70fbaafe\",\"4848\":\"88fd34cd\",\"4860\":\"eba3008f\",\"4989\":\"f989d900\",\"5081\":\"074a8ab3\",\"5122\":\"4ad1f98a\",\"5146\":\"7333743b\",\"5172\":\"0af9b84e\",\"5203\":\"7f69fdee\",\"5214\":\"37a08c9d\",\"5282\":\"f71de41d\",\"5300\":\"4723b2ff\",\"5322\":\"21152e38\",\"5371\":\"61cf3386\",\"5604\":\"ad950c96\",\"5640\":\"c0c4b1ec\",\"5706\":\"142b99c2\",\"5709\":\"d9d8c66b\",\"5744\":\"a3ea5eec\",\"5762\":\"c1d829e8\",\"5776\":\"96a3dbfa\",\"5805\":\"47b7ea52\",\"5864\":\"b8b3c876\",\"5870\":\"31aacbee\",\"5872\":\"ceab3203\",\"5930\":\"db86f157\",\"5933\":\"8a70b723\",\"5940\":\"8784ee06\",\"5970\":\"9d83f44a\",\"6028\":\"a1878e73\",\"6030\":\"b47ac802\",\"6094\":\"664b28e9\",\"6220\":\"ef440b99\",\"6250\":\"28818a21\",\"6256\":\"77bad38d\",\"6297\":\"218c7d21\",\"6318\":\"56289a24\",\"6441\":\"60387d58\",\"6578\":\"336d3d2b\",\"6612\":\"068c196c\",\"6626\":\"b18a9968\",\"6740\":\"0a077729\",\"6760\":\"fa992a24\",\"6765\":\"ffe984e5\",\"6823\":\"0d2f320e\",\"6831\":\"c1965e4d\",\"6906\":\"99118ff9\",\"6934\":\"efe9f842\",\"6936\":\"15b76857\",\"6944\":\"fdd8f303\",\"6985\":\"a3f5a299\",\"7053\":\"c5a17071\",\"7097\":\"5275b4c6\",\"7122\":\"6f927782\",\"7128\":\"6fe432eb\",\"7157\":\"8ae53939\",\"7244\":\"bce8ece3\",\"7283\":\"e3043da6\",\"7317\":\"00351d1a\",\"7324\":\"39ee68c3\",\"7327\":\"25f04423\",\"7362\":\"10ba0cbd\",\"7392\":\"7631a675\",\"7396\":\"8cfb3264\",\"7436\":\"846ae7dc\",\"7486\":\"c31e9fec\",\"7525\":\"962bddbd\",\"7536\":\"0cadae7b\",\"7568\":\"b591a2c5\",\"7584\":\"64c76f9b\",\"7596\":\"aba8a9cf\",\"7599\":\"eff978ce\",\"7608\":\"acd5b1fa\",\"7752\":\"de133461\",\"7781\":\"dbd8c415\",\"7796\":\"02d51de7\",\"7855\":\"dc8fa7c4\",\"7880\":\"07b769d9\",\"7924\":\"4a1e97ed\",\"8088\":\"119d8e1f\",\"8108\":\"555c4bd2\",\"8136\":\"c0e6af5c\",\"8164\":\"5cc93831\",\"8204\":\"b0b140fc\",\"8228\":\"54e711a6\",\"8256\":\"0aac1b60\",\"8289\":\"95cf30f4\",\"8304\":\"2a005a68\",\"8359\":\"a1a68f40\",\"8398\":\"e0abb19c\",\"8431\":\"e8db83e3\",\"8436\":\"e16e9f93\",\"8444\":\"40eaec19\",\"8525\":\"8ad72c1c\",\"8594\":\"b2bf1ae1\",\"8723\":\"1614d414\",\"8772\":\"75f5cd90\",\"8806\":\"16e72541\",\"8823\":\"79b9f049\",\"8872\":\"cd1584b9\",\"8881\":\"3e035892\",\"8953\":\"f05f3161\",\"8963\":\"71114bf1\",\"9095\":\"f56191d9\",\"9103\":\"4dc4df3f\",\"9117\":\"aee2d4f1\",\"9124\":\"16cd31e3\",\"9134\":\"cada9322\",\"9146\":\"1843aa24\",\"9175\":\"d8952048\",\"9176\":\"fb46ecba\",\"9211\":\"9a6b397c\",\"9214\":\"46bb2aa1\",\"9271\":\"aca82fb9\",\"9340\":\"99aeb71a\",\"9400\":\"07a99168\",\"9432\":\"ff275539\",\"9520\":\"cb9477b6\",\"9540\":\"251c6413\",\"9658\":\"e649a958\",\"9677\":\"674b7b93\",\"9757\":\"09524141\",\"9762\":\"949f5bff\",\"9852\":\"b387f768\",\"9854\":\"3fb78b72\",\"9896\":\"9b0d4b77\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"1713\":\"01ed5aa8\",\"1716\":\"01ed5aa8\",\"1831\":\"01ed5aa8\",\"2505\":\"01ed5aa8\",\"3121\":\"01ed5aa8\",\"6760\":\"01ed5aa8\",\"7781\":\"01ed5aa8\",\"8136\":\"01ed5aa8\",\"9852\":\"01ed5aa8\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"vitalitybrokers:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"1713\":1,\"1716\":1,\"1831\":1,\"2505\":1,\"3121\":1,\"6760\":1,\"7781\":1,\"8136\":1,\"9852\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkvitalitybrokers\"] = self[\"webpackChunkvitalitybrokers\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(97571); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["useArea","route","useRoute","isArea","area","isRoute","isPdfPage","computed","pdfArea","useApi","path","meta","apiUrl","entityId","params","entityPath","value","Component","registerHooks","Vue","use","BootstrapVue","breakpoints","BModal","cancelVariant","VBTooltipPlugin","VBModalPlugin","configure","defaultMessage","rule","validationRules","extend","message","validationLocale","replace","dateBefore","field","max","inclusion","formatDate","dateAfter","min","dateBetween","startsWith","endsWith","dateFormat","postcode","lengthBetween","phoneNumber","name","sortCode","accountNumber","email","url","App","StateComponent","constructor","args","_defineProperty","showHeader","this","title","swUpdatedListener","event","registration","detail","updateModal","refreshApp","waiting","postMessage","modalListener","modal","onModalClosed","errors","$el","getElementsByClassName","length","scrollIntoView","behavior","created","setSettings","document","addEventListener","once","serviceWorker","navigator","refreshing","location","reload","render","h","arguments","callback","$$v","__decorate","register","ready","console","log","registered","setInterval","update","cached","updatefound","updated","dispatchEvent","CustomEvent","offline","error","appInsights","ApplicationInsights","config","instrumentationKey","enableAutoRouteTracking","enableCorsCorrelation","enableRequestHeaderTracking","enableResponseHeaderTracking","enableAjaxErrorStatusText","enableAjaxPerfTracking","loadAppInsights","trackPageView","Plugin","productionTip","app","router","store","$mount","BaseComponent","matchedRoutes","$route","matched","reverse","entityName","updateUrl","routePath","createNewPath","newPath","isPage","page","split","pop","toLowerCase","isCustomerPage","customerArea","isAdminPage","adminArea","isPersonalPage","personalArea","isBusinessPage","businessArea","isAdviserPage","isLegacyPage","legacyArea","isNewBusinessPage","newBusinessArea","isProcessingPage","processingArea","isDiscountingPage","discountingArea","isUnderwritingPage","underwritingArea","pageIsReady","showModal","logOut","response","postAsync","status","window","triggerDataReset","$emit","defineComponent","functional","BContainer","Date","getFullYear","CustomerMain","isLoginPage","loginPath","verifyPath","isVerify","indexOf","isQuestionnaire","questionnairePath","isSubmittedPage","submittedPath","$router","push","loggedOutPath","BNavbar","BNavbarBrand","BImg","require","BNavbarToggle","BCollapse","BNavbarNav","BNavItem","helpPath","updatePasswordPath","BNavItemDropdown","BIconPersonCircle","BDropdownItem","Footer","Home","titles","genders","industryTypes","leadTypes","personalFactFindEnabled","useStore","settings","availablePages","pages","filter","p","type","setProfile","areas","some","mounted","Promise","all","repository","getPages","getTitles","getGenders","getIndustryTypes","getLeadTypes","data","mapToIOptions","getPath","id","profile","factFindsPath","quotesPath","applicationsPath","isInternalAgent","indicativeQuotesPath","businessQuotesPath","personalQuotesPath","personalApplicationsPath","businessApplicationsPath","mtjCasesPath","dashboardPath","isMarketing","isPricingAdmin","isProperAdmin","isServicingAdmin","isClaimsAdmin","isBrokerAdmin","isNewBusinessAdmin","personalFactFindsPath","isManager","isUnderwritingAdmin","businessIndicativeQuotesPath","businessFactFindsPath","BDropdownDivider","healthcarePlansPath","quoteRequestsPath","settingsPath","usersPath","agenciesPath","regionsPath","imagesPath","contentPagesPath","templatesPath","customerNeedsPath","queryTypesPath","medicalConditionGroupsPath","insurerDiscountsPath","tenureDiscountsPath","memberMixDiscountsPath","midTermLoadingsPath","discountTypesPath","postcodeAreasPath","minimumPremiumsPath","underwritingQuestionsPath","underwritingQuestionAnswersPath","underwritingRiskScoresPath","insurersPath","insurerExcessAmountsPath","insurerHospitalListsPath","insurerModuleGroupsPath","insurerModulesPath","insurerSchemesPath","productsPath","benefitsPath","benefitCategoriesPath","bundlesPath","hospitalListsPath","modulesPath","moduleGroupsPath","notificationsPath","BNavForm","BButtonGroup","a","map","BButton","startCase","paraplannerUser","BNavText","fullName","BIconQuestionCircle","modifiers","entityNumber","undefined","activeAgency","homeAlert","offerEnabled","BAlert","getHtmlContent","ExpandTransition","offer","BCard","offerImage","offerText","click","mutateOffer","MySpinner","ProvideReactive","setup","documentElement","classList","add","addScripts","VueRouter","ContentPageView","CustomerLogin","QuestionnaireUpdate","CustomerQuestionnaireSubmited","AdviserQuestionnaireView","BusinessApplicationPdfView","PersonalApplicationPdfView","impersonateUserPath","quotePath","paymentDetailsPath","applicationPath","businessApplicationPath","personalApplicationPath","factFindPath","insurerPath","variationsPath","commentsPath","documentsPath","marketingPreferencesPath","eventsPath","queriesPath","verificationLinksPath","factFindApiPath","questionPath","quoteGroupPath","opportunityPath","recommendedCoverPath","underwritingPath","discountsPath","benefitPath","modulePath","discountPath","calculateDiscountPath","importPath","updatePath","assignPath","processPath","underwritePath","applyPath","recordOfMeetingPath","customerBusinessApplicationPath","apiUrls","customerPersonalApplicationPath","getMeta","isPdf","isRecordOfMeeting","getCrudRoutes","canCreate","canUpdate","additionalRoutes","entityAlias","createRouteName","normalisedName","str","charAt","toUpperCase","substring","replaceAll","pluralisedName","pluralize","camelCasedName","camelCase","plural","routes","component","entityRoute","children","fromUserIdPath","fromUserIdUrl","bundleRoutes","mtjCaseRoutes","businessQuoteRoutes","businessApplicationRoutes","personalQuoteRoutes","personalApplicationRoutes","redirect","Main","mode","base","process","linkActiveClass","beforeEach","to","from","next","parts","routeName","Vuex","MyStore","GridModule","mutateProfile","val","Object","assign","mutateSettings","mutateQueue","queue","State","Module","Mutation","createVuexStore","strict","getStore","mutateFilters","delta","filters","mutateField","fieldKey","mutateSearch","search","mutateSortBy","sortBy","mutateSortDesc","sortDesc","mutateCurrentPage","currentPage","mutateTotalRows","totalRows","mutatePerPage","perPage","noBreakClass","breakAfterClass","primaryTableHeader","defaultCardClass","justifyBetweenClass","justifyBetweenCenterClass","alignRightLgClass","vitalityTableClass","copyToObject","JSON","parse","stringify","calculateAge","startDate","differenceInYears","parseISO","getFullName","firstName","lastName","removeItem","array","item","index","findIndex","i","removeItemAtIndex","splice","getAgencyName","agency","truncateName","cleanedName","truncate","isIos","test","platform","maxTouchPoints","asyncDebounce","func","wait","resolveSet","Set","rejectSet","debounced","debounce","then","res","forEach","resolve","clear","catch","reject","async","getAsync","scriptUrls","scripts","script","createElement","setAttribute","body","appendChild","downloadFile","downloadUrl","fileName","onRequestStart","onRequestEnd","onDownloadComplete","responseType","URL","createObjectURL","link","target","href","contentDisposition","headers","matches","match","download","revokeObjectURL","remove","toFactor","toPercentage","formatEnum","format","mapToEnumOptions","v","formatBool","toString","formatPhoneNumber","formatAmount","decimals","toLocaleString","minimumFractionDigits","maximumFractionDigits","formatPremium","style","currency","formatInsurerPremium","paymentFrequency","unit","formatPercentage","formatDiscount","date","isValid","entities","x","text","toCommaSeparatedList","values","join","getModuleLabel","mg","modules","selectedModule","find","m","moduleGroupId","isIncluded","includedWithModuleId","requiredModuleGroupId","getStatusLinkedExcessLabel","g","hasStatusLinkedExcess","showQuestionnaireStatus","q","prefix","toTitleCase","slice","parseDate","parsed","postcodeFormatter","shift","dateFormatter","nameFormatter","quotationNumberFormatter","sortCodeFormatter","accountNumberFormatter","optionalValidation","required","requiredValidation","requiredTrueValidation","allowFalse","sortCodeValidation","accountNumberValidation","emailValidation","urlValidation","phoneValidation","nameValidation","minValidation","percentageValidation","amountValidation","md","MarkdownIt","html","breaks","linkify","typographer","MarkdownItSub","MarkdownItSup","MarkdownItAbbr","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","attrPush","content","httpClient","axios","create","baseURL","withCredentials","interceptors","request","currentRoute","fullPath","redirectUrl","withError","task","onError","e","errorDetails","Blob","errorMessage","keys","get","post","putAsync","put","deleteAsync","delete","getApiAsync","getOptions","getUrlWithType","baseUrl","getEntitiesWithStartDate","getEntitiesWithStartDateAndInsurer","insurerId","getBundles","hospitalListId","getModuleGroups","getBusinessModuleGroups","getPersonalModuleGroups","getModules","getUnderwritingTypes","getBenefits","getBenefitCategories","getImages","getUnderwritingQuestions","underwritingTypeId","searchParams","URLSearchParams","set","getUnderwritingQuestionAnswers","underwritingQuestionId","getMedicalConditionGroups","getHospitalLists","getExcessTypes","getExcessAmounts","getInsurers","getInsurerSchemes","getInsurerExcessAmounts","getInsurerModuleGroups","getInsurerModules","schemeId","isPilot","getInsurerHospitalLists","getTemplates","getUnderwritingActions","getPostcodeAreas","getQueryTypes","getBusinessQuote","validateBusinessQuote","validate","dateVal","minDate","isAfter","isEqual","maxDate","isBefore","inclusivity","re","minLength","parseInt","maxLength","valid","beforeEnter","enter","element","el","width","getComputedStyle","position","visibility","height","requestAnimationFrame","afterEnter","onAfterAppear","leave","$slots","default","inheritAttrs","BSpinner","activeUserId","activeAgencyId","isDirectMarketing","isVitalityAgent","isTelemed","roles","r","isChannelManager","isRegionalManager","isAccountManager","isCustomer","every","isAdmin","isSystemAdmin","showInternalDetails","isInternalUser","isBroker","isNewBusiness","isUnderwriting","isProcessing","isDiscounting","isUnderwritingOrSystemAdmin","isNewBusinessOrSystemAdmin","availableAreas","beforeCreate","webpackAsyncContext","req","__webpack_require__","o","Error","code","ids","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","key","n","getter","__esModule","d","definition","defineProperty","enumerable","f","chunkId","reduce","promises","u","miniCssF","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","getElementsByTagName","s","getAttribute","charset","timeout","nc","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","err","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}