{"version":3,"sources":["webpack:///./src/components/app-avatar.vue?1818","webpack:///src/components/app-avatar.vue","webpack:///./src/components/app-avatar.vue?b5a2","webpack:///./src/components/app-avatar.vue","webpack:///./src/components/app-navbar.vue?1b9d","webpack:///src/components/app-navbar.vue","webpack:///./src/components/app-navbar.vue?485d","webpack:///./src/components/app-navbar.vue","webpack:///./src/views/membership/upgrade.vue?e704","webpack:///src/views/membership/upgrade.vue","webpack:///./src/views/membership/upgrade.vue?d472","webpack:///./src/views/membership/upgrade.vue","webpack:///./src/utils/toast.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","style","attrs","_v","_s","avatarLetters","staticRenderFns","name","props","size","data","backgroundColors","computed","initial","svgStyle","textStyle","methods","i","parts","length","initials","charAt","toUpperCase","component","_m","$permissions","hasAddProjectPermission","hasAddPrivateProjectPermission","_e","myPlanroomLink","permitsLink","publicDirectoryLink","getUserName","on","toUpgradeMembership","getCurrentUser","components","useMembershipPayment","useNews","usePaymentReports","usePublicDirectoryLink","getCurrentRoute","$router","hasCompanies","companies","hasPaidMembership","roles","getUser","forEach","some","isBidCentralClient","isMembershipPurchaseAvailable","isSysAdmin","isClientAdmin","isNewsAvailable","isPaymentReportsAvailable","hasViewPaymentPermission","message","created","fetchClientSettings","then","isPageLoading","$event","transactionId","directives","rawName","value","expression","class","errors","has","$$selectedVal","Array","prototype","filter","call","target","options","o","selected","map","val","_value","selectedCompany","multiple","onCompanySelection","_l","company","key","id","domProps","currentMemberships","membership","role","zone","_f","expiryDate","preventDefault","addToCart","selectedRole","subscriptionPrice","subscriptionDuration","selectedZone","isAllowedCart","totalItems","cart","item","index","removeFromCart","duration","price","subTotal","tax","totalPrice","isAllowedCheckout","checkout","isPaymentSuccessful","isPaymentFailure","isProcessing","zones","isCartDuplicate","isMembershipDuplicate","isMembershipExpired","push","Math","random","toString","substr","_selectedRole","roleId","zoneId","_selectedZone","taxAmount","taxPercentage","companyid","purchasedSubscriptions","mounted","$route","query","success","transId","Promise","all","defaultOptions","noCloseButton","autoHideDelay","toaster","isStatus","context","overrideOptions","variant","$root","$bvToast","toast","danger"],"mappings":"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","file":"js/chunk-263dc7b3.67b3f4bb.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"flex-shrink-0\",style:(_vm.svgStyle)},[_c('text',{style:(_vm.textStyle),attrs:{\"x\":\"50%\",\"y\":\"50%\",\"text-anchor\":\"middle\",\"dominant-baseline\":\"central\"}},[_vm._v(\" \"+_vm._s(_vm.avatarLetters)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <svg class=\"flex-shrink-0\" :style=\"svgStyle\">\r\n    <text x=\"50%\" y=\"50%\" text-anchor=\"middle\" dominant-baseline=\"central\" :style=\"textStyle\">\r\n      {{ avatarLetters }}\r\n    </text>\r\n  </svg>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: 'app-avatar',\r\n  props: {\r\n    size: { required: true, type: Number, default: 40 },\r\n    name: { required: true, type: String }\r\n  },\r\n  data: function () {\r\n    return {\r\n      backgroundColors: [\r\n        '#011627', '#011627', '#41EAD4', '#FDFFFC ', \"#0D3B66\", \"#FAF0CA\", \"#F95738\", \"#FDFFFC\"\r\n      ]\r\n    }\r\n  },\r\n  computed: {\r\n    avatarLetters () {\r\n      return this.initial(this.name);\r\n    },\r\n    svgStyle () {\r\n      let backgroundColor = this.backgroundColors[this.avatarLetters.charCodeAt(0) % this.backgroundColors.length];\r\n      return { width: `${ this.size }px`, height: `${ this.size }px`, borderRadius: '50%', background: backgroundColor }\r\n    },\r\n    textStyle () {\r\n      return { fill: 'rgba(0, 0, 0, .7)', fontSize: `${this.size * 0.4}px` }\r\n    }\r\n  },\r\n  methods: {\r\n    initial (username) {\r\n      let parts = username.split(' ')\r\n      let initials = ''\r\n      for (var i = 0; i < parts.length; i++) {\r\n        initials += parts[i].charAt(0)\r\n      }\r\n      return initials.toUpperCase();\r\n    },\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-avatar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-avatar.vue?vue&type=template&id=65164ee3&\"\nimport script from \"./app-avatar.vue?vue&type=script&lang=js&\"\nexport * from \"./app-avatar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-primary\"},[_c('div',{staticClass:\"dropdown\"},[_c('router-link',{attrs:{\"to\":\"/dashboard\",\"title\":\"Link to Dashboard\"}},[_c('img',{staticClass:\"mr-2\",attrs:{\"src\":\"/img/navbar-logo.png\",\"alt\":\"logo\",\"height\":\"40\"}})])],1),_vm._m(0),_c('div',{staticClass:\"collapse navbar-collapse d-lg-flex justify-content-end\",attrs:{\"id\":\"navbarNavDropdown\"}},[(_vm.getCurrentUser)?_c('ul',{staticClass:\"navbar-nav mr-auto ml-3\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link text-white\",attrs:{\"to\":\"/dashboard\",\"title\":\"Link to Dashboard\"}},[_vm._v(\"Dashboard\")])],1),_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle text-white\",attrs:{\"href\":\"#\",\"role\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_vm._v(\"Projects\")]),_c('div',{staticClass:\"dropdown-menu\"},[_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/project/search\",\"href\":\"#\",\"title\":\"Link to Project Search\"}},[_vm._v(\"Project Search\")]),(_vm.$permissions().hasAddProjectPermission || _vm.$permissions().hasAddPrivateProjectPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/project/new\",\"href\":\"#\",\"title\":\"Link to Add Project\"}},[_vm._v(\"Add Project\")]):_vm._e()],1)]),(_vm.$permissions().hasViewCompanyPermission)?_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle text-white\",attrs:{\"href\":\"#\",\"role\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_vm._v(\"Companies\")]),_c('div',{staticClass:\"dropdown-menu\"},[_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/company/search\",\"href\":\"#\",\"title\":\"Link to Company Search\"}},[_vm._v(\"Company Search\")]),(_vm.$permissions().hasAddCompanyPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/company/new\",\"href\":\"#\",\"title\":\"Link to Add Company\"}},[_vm._v(\"Add Company\")]):_vm._e()],1)]):_vm._e(),(_vm.$permissions().hasConfigurePermissions)?_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle text-white\",attrs:{\"href\":\"#\",\"role\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_vm._v(\"Configure\")]),_c('div',{staticClass:\"dropdown-menu\"},[(_vm.$permissions().hasSendBidInvitations)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/addressbook\",\"title\":\"Link to Address Books\"}},[_vm._v(\"Address Books\")]):_vm._e(),(_vm.$permissions().hasViewAdvertisementPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/advertisements\",\"title\":\"Link to Advertisements\"}},[_vm._v(\"Advertisements\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/contact-types\",\"title\":\"Link to Contact Types\"}},[_vm._v(\"Contact Types\")]):_vm._e(),(_vm.isNewsAvailable)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/news\",\"title\":\"Link to News\"}},[_vm._v(\"News\")]):_vm._e(),(_vm.$permissions().hasViewOwnerPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/owners\",\"title\":\"Link to Owners\"}},[_vm._v(\"Owners\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/owner-types\",\"title\":\"Link to Owner Types\"}},[_vm._v(\"Owner Types\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/participant-types\",\"title\":\"Link to Participant Types\"}},[_vm._v(\"Participant Types\")]):_vm._e(),(_vm.isPaymentReportsAvailable)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/payments\",\"title\":\"Link to Payment Reports\"}},[_vm._v(\"Payment Reports\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/procurement-types\",\"title\":\"Link to Procurement Types\"}},[_vm._v(\"Procurement Types\")]):_vm._e(),(_vm.$permissions().hasViewRolePermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/roles\",\"title\":\"Link to Roles\"}},[_vm._v(\"Roles\")]):_vm._e(),(_vm.$permissions().hasViewServiceRegionPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/service-regions\",\"title\":\"Link to Service Regions\"}},[_vm._v(\"Service Regions\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/tender-stages\",\"title\":\"Link to Tender Stages\"}},[_vm._v(\"Tender Stages\")]):_vm._e(),(_vm.$permissions().isSysAdmin)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/trade-agreements\",\"title\":\"Link to Trade Agreements\"}},[_vm._v(\"Trade Agreements\")]):_vm._e(),(_vm.$permissions().hasViewUserPermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/users\",\"title\":\"Link to Users\"}},[_vm._v(\"Users\")]):_vm._e(),(_vm.$permissions().hasViewZonePermission)?_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/configuration/zones\",\"title\":\"Link to Zones\"}},[_vm._v(\"Zones\")]):_vm._e()],1)]):_vm._e(),(_vm.isBidCentralClient)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link text-white\",attrs:{\"href\":_vm.myPlanroomLink,\"target\":\"_blank\",\"title\":\"Link to myplanroom\"}},[_vm._v(\"myPlanroom\")])]):_vm._e(),(_vm.isBidCentralClient)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link text-white\",attrs:{\"href\":_vm.permitsLink,\"target\":\"_blank\",\"title\":\"Link to Permits\"}},[_vm._v(\"Permits\")])]):_vm._e(),(_vm.usePublicDirectoryLink)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link text-white\",attrs:{\"href\":_vm.publicDirectoryLink,\"target\":\"_blank\",\"title\":\"Link to Public Directory\"}},[_vm._v(\"Directory\")])]):_vm._e()]):_vm._e(),(_vm.getCurrentUser)?_c('div',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link text-white dropdown-toggle p-0\",attrs:{\"href\":\"#\",\"id\":\"navbarDropdownUser\",\"role\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_c('app-avatar',{staticClass:\"mr-2\",attrs:{\"name\":_vm.getUserName,\"size\":40}}),_c('span',[_vm._v(_vm._s(_vm.getUserName))])],1),_c('div',{staticClass:\"dropdown-menu dropdown-menu-right\",attrs:{\"aria-labelledby\":\"navbarDropdownUser\"}},[_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/account/settings\",\"title\":\"Link to Account\"}},[_vm._v(\"Account\")]),(_vm.isMembershipPurchaseAvailable)?_c('button',{staticClass:\"dropdown-item\",attrs:{\"title\":\"Link to Account\"},on:{\"click\":_vm.toUpgradeMembership}},[_vm._v(\"Upgrade Membership\")]):_vm._e(),_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":\"/logout\",\"title\":\"Link to Logout\"}},[_vm._v(\"Logout\")])],1)]):_vm._e(),(!_vm.getCurrentUser)?_c('div',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link text-white\",attrs:{\"to\":\"/login\",\"href\":\"#\",\"title\":\"Click to go to Login Page\"}},[_vm._v(\"Login\")])],1):_vm._e()])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"navbar-toggler text-white\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#navbarNavDropdown\",\"aria-controls\":\"navbarNavDropdown\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('span',{staticClass:\"navbar-toggler-icon\"})])}]\n\nexport { render, staticRenderFns }","<template>\r\n    <nav class=\"navbar navbar-expand-lg navbar-dark bg-primary\">\r\n      <div class=\"dropdown\">\r\n        <router-link to=\"/dashboard\" title=\"Link to Dashboard\">\r\n          <img src=\"/img/navbar-logo.png\" class=\"mr-2\" alt=\"logo\" height=\"40\"/>\r\n        </router-link>\r\n      </div>\r\n\r\n      <button\r\n        class=\"navbar-toggler text-white\"\r\n        type=\"button\"\r\n        data-toggle=\"collapse\"\r\n        data-target=\"#navbarNavDropdown\"\r\n        aria-controls=\"navbarNavDropdown\"\r\n        aria-expanded=\"false\"\r\n        aria-label=\"Toggle navigation\"\r\n      >\r\n        <span class=\"navbar-toggler-icon\"></span>\r\n      </button>\r\n\r\n      <div class=\"collapse navbar-collapse d-lg-flex justify-content-end\" id=\"navbarNavDropdown\">\r\n        <ul class=\"navbar-nav mr-auto ml-3\" v-if=\"getCurrentUser\">\r\n          <li class=\"nav-item\">\r\n              <router-link to=\"/dashboard\" class=\"nav-link text-white\" title=\"Link to Dashboard\">Dashboard</router-link>\r\n          </li>\r\n\r\n          <li class=\"nav-item dropdown\">\r\n            <a class=\"nav-link dropdown-toggle text-white\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">Projects</a>\r\n            <div class=\"dropdown-menu\">\r\n              <router-link to=\"/project/search\" class=\"dropdown-item\" href=\"#\" title=\"Link to Project Search\">Project Search</router-link>\r\n              <router-link v-if=\"$permissions().hasAddProjectPermission || $permissions().hasAddPrivateProjectPermission\" to=\"/project/new\" class=\"dropdown-item\" href=\"#\" title=\"Link to Add Project\">Add Project</router-link>\r\n            </div>\r\n          </li>\r\n\r\n          <li class=\"nav-item dropdown\" v-if=\"$permissions().hasViewCompanyPermission\">\r\n            <a class=\"nav-link dropdown-toggle text-white\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">Companies</a>\r\n            <div class=\"dropdown-menu\">\r\n              <router-link to=\"/company/search\" class=\"dropdown-item\" href=\"#\" title=\"Link to Company Search\">Company Search</router-link>\r\n              <router-link v-if=\"$permissions().hasAddCompanyPermission\" to=\"/company/new\" class=\"dropdown-item\" href=\"#\" title=\"Link to Add Company\">Add Company</router-link>\r\n            </div>\r\n          </li>\r\n\r\n          <li class=\"nav-item dropdown\" v-if=\"$permissions().hasConfigurePermissions\">\r\n            <a class=\"nav-link dropdown-toggle text-white\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">Configure</a>\r\n            <div class=\"dropdown-menu\">\r\n              <router-link v-if=\"$permissions().hasSendBidInvitations\" to=\"/configuration/addressbook\" class=\"dropdown-item\" title=\"Link to Address Books\">Address Books</router-link>\r\n              <router-link v-if=\"$permissions().hasViewAdvertisementPermission\" to=\"/configuration/advertisements\" class=\"dropdown-item\" title=\"Link to Advertisements\">Advertisements</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/contact-types\" class=\"dropdown-item\" title=\"Link to Contact Types\">Contact Types</router-link>\r\n              <router-link v-if=\"isNewsAvailable\" to=\"/configuration/news\" class=\"dropdown-item\" title=\"Link to News\">News</router-link>\r\n              <router-link v-if=\"$permissions().hasViewOwnerPermission\" to=\"/configuration/owners\" class=\"dropdown-item\" title=\"Link to Owners\">Owners</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/owner-types\" class=\"dropdown-item\" title=\"Link to Owner Types\">Owner Types</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/participant-types\" class=\"dropdown-item\" title=\"Link to Participant Types\">Participant Types</router-link>\r\n              <router-link v-if=\"isPaymentReportsAvailable\" to=\"/configuration/payments\" class=\"dropdown-item\" title=\"Link to Payment Reports\">Payment Reports</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/procurement-types\" class=\"dropdown-item\" title=\"Link to Procurement Types\">Procurement Types</router-link>\r\n              <router-link v-if=\"$permissions().hasViewRolePermission\" to=\"/configuration/roles\" class=\"dropdown-item\" title=\"Link to Roles\">Roles</router-link>\r\n              <router-link v-if=\"$permissions().hasViewServiceRegionPermission\" to=\"/configuration/service-regions\" class=\"dropdown-item\" title=\"Link to Service Regions\">Service Regions</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/tender-stages\" class=\"dropdown-item\" title=\"Link to Tender Stages\">Tender Stages</router-link>\r\n              <router-link v-if=\"$permissions().isSysAdmin\" to=\"/configuration/trade-agreements\" class=\"dropdown-item\" title=\"Link to Trade Agreements\">Trade Agreements</router-link>\r\n              <router-link v-if=\"$permissions().hasViewUserPermission\" to=\"/configuration/users\" class=\"dropdown-item\" title=\"Link to Users\">Users</router-link>\r\n              <router-link v-if=\"$permissions().hasViewZonePermission\" to=\"/configuration/zones\" class=\"dropdown-item\" title=\"Link to Zones\">Zones</router-link>\r\n            </div>\r\n          </li>\r\n\r\n          <li class=\"nav-item\" v-if=\"isBidCentralClient\">\r\n            <a :href=\"myPlanroomLink\" class=\"nav-link text-white\" target=\"_blank\" title=\"Link to myplanroom\">myPlanroom</a>\r\n          </li>\r\n\r\n          <li class=\"nav-item\" v-if=\"isBidCentralClient\">\r\n            <a :href=\"permitsLink\" class=\"nav-link text-white\" target=\"_blank\" title=\"Link to Permits\">Permits</a>\r\n          </li>\r\n\r\n          <li class=\"nav-item\" v-if=\"usePublicDirectoryLink\">\r\n            <a :href=\"publicDirectoryLink\" class=\"nav-link text-white\" target=\"_blank\" title=\"Link to Public Directory\">Directory</a>\r\n          </li>\r\n        </ul>\r\n\r\n        <div class=\"nav-item dropdown\" v-if=\"getCurrentUser\">\r\n          <a class=\"nav-link text-white dropdown-toggle p-0\" href=\"#\" id=\"navbarDropdownUser\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n            <app-avatar class=\"mr-2\" :name=\"getUserName\" :size=\"40\"></app-avatar>\r\n            <span>{{ getUserName }}</span>\r\n          </a>\r\n          <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"navbarDropdownUser\">\r\n            <router-link to=\"/account/settings\" class=\"dropdown-item\" title=\"Link to Account\">Account</router-link>\r\n            <button v-if=\"isMembershipPurchaseAvailable\" @click=\"toUpgradeMembership\" class=\"dropdown-item\" title=\"Link to Account\">Upgrade Membership</button>\r\n            <router-link to=\"/logout\" class=\"dropdown-item\" title=\"Link to Logout\">Logout</router-link>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"nav-item\" v-if=\"!getCurrentUser\">\r\n          <router-link to=\"/login\" class=\"nav-link text-white\" href=\"#\" title=\"Click to go to Login Page\">Login</router-link>\r\n        </div>\r\n      </div>\r\n    </nav>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex'\r\nimport Avatar from '@/components/app-avatar.vue';\r\nimport Toast from \"@/utils/toast\";\r\n\r\nexport default {\r\n  name: 'app-navbar',\r\n  components: { 'app-avatar': Avatar },\r\n  data: function () {\r\n    return {\r\n      publicDirectoryLink: null,\r\n      useMembershipPayment: false,\r\n      useNews: false,\r\n      usePaymentReports: false,\r\n      usePublicDirectoryLink: false,\r\n      myPlanroomLink: \"https://apps.bidcentral.ca/my-planroom/\",\r\n      permitsLink: \"https://apps.bidcentral.ca/permits/\"\r\n    }\r\n  },\r\n  computed: {\r\n    getUserName: function () {\r\n      return `${ this.getCurrentUser.firstName } ${ this.getCurrentUser.lastName }`\r\n    },\r\n    getCurrentRoute() {      \r\n      return this.$router.name\r\n    },\r\n    hasCompanies () {\r\n      return !!this.getCurrentUser.companies.length;\r\n    },\r\n    hasPaidMembership () {    \r\n      var roles = []\r\n      this.getUser.companies.forEach(company => \r\n        company.memberships.forEach(\r\n            membership => {\r\n            roles.push(membership.role.toLowerCase())\r\n      }))\r\n      return roles.some(c => c !== \"public sign up membership\")\r\n    },\r\n    isBidCentralClient () {\r\n      return process.env.VUE_APP_TENANT_NAME.toLowerCase().includes('bidcentral')\r\n    },\r\n    isMembershipPurchaseAvailable () {\r\n      if (!this.useMembershipPayment) {\r\n        return false;\r\n      }\r\n      return !this.$permissions().isSysAdmin && !this.$permissions().isClientAdmin && this.hasCompanies;\r\n    },\r\n    isNewsAvailable () {\r\n      if (!this.useNews) {\r\n        return false;\r\n      }\r\n      return this.$permissions().isSysAdmin || this.$permissions().isClientAdmin;\r\n    },\r\n    isPaymentReportsAvailable () {\r\n      if (!this.usePaymentReports) {\r\n        return false;\r\n      }\r\n      return this.$permissions().hasViewPaymentPermission;\r\n    },\r\n    ...mapGetters([\"getUser\",\"getCurrentUser\", \"getUseDisplayNews\", \"getPublicDirectoryLink\", \"getUseMembershipPayment\", \"getUsePaymentReports\"])\r\n  },\r\n  methods: {\r\n    ...mapActions([\"fetchClientSettings\", \"fetchUser\"]),\r\n\r\n    toUpgradeMembership(){\r\n      if(this.$router.history.current.path !== \"/membership/upgrade\"){\r\n        if(this.isMembershipPurchaseAvailable && this.hasPaidMembership){\r\n        this.$router.push('/membership/upgrade')\r\n        }else{\r\n          var message = this.$createElement(\"span\", {},\r\n            [\" If you currently have a free public membership please contact your local association to upgrade your membership. See list of associations \", \r\n              this.$createElement('a',{attrs: {href: 'https://www.link2build.ca/about/become-a-member/', target: '_blank'}}, ['here'])]\r\n          );\r\n          \r\n          Toast.danger(this, [message], { autoHideDelay: 15000 });          \r\n        }\r\n      }            \r\n    }\r\n  },\r\n  created () {\r\n    this.fetchClientSettings().then(() => {\r\n      this.usePublicDirectoryLink = !!this.getPublicDirectoryLink;\r\n      this.publicDirectoryLink = this.getPublicDirectoryLink;\r\n      this.useMembershipPayment = (this.getUseMembershipPayment || '').toUpperCase() === 'TRUE';\r\n      this.useNews = (this.getUseDisplayNews || '').toUpperCase() === 'TRUE';\r\n      this.usePaymentReports = (this.getUsePaymentReports || '').toUpperCase() === 'TRUE';\r\n      this.fetchUser(this.getCurrentUser.id)\r\n    });\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-navbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-navbar.vue?vue&type=template&id=3d1be955&\"\nimport script from \"./app-navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./app-navbar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{staticClass:\"main_page\"},[_c('app-navbar'),_c('div',{staticClass:\"page\"},[_c('loading',{attrs:{\"active\":_vm.isPageLoading,\"is-full-page\":\"\"},on:{\"update:active\":function($event){_vm.isPageLoading=$event}}}),_c('div',[_c('div',{staticClass:\"page-title\"},[_c('h1',[_vm._v(\"Upgrade Membership\")])]),(!_vm.isPageLoading)?_c('div',{staticClass:\"page-content\"},[(_vm.isPaymentSuccessful)?_c('div',{staticClass:\"alert alert-success\",attrs:{\"role\":\"alert\"}},[_vm._v(\" Thank you for your purchase. \")]):_vm._e(),(_vm.isPaymentFailure)?_c('div',{staticClass:\"alert alert-danger\",attrs:{\"role\":\"alert\"}},[_c('p',[_vm._v(\" An error has occurred and your transaction has been cancelled - please contact an administrator. \")]),_c('p',[_c('strong',[_vm._v(\" Transaction Id: \")]),_vm._v(\" \"+_vm._s(_vm.transactionId)+\" \")])]):_vm._e(),(_vm.companies.length > 1)?_c('div',{staticClass:\"mt-2 mb-5\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"purchaserCompany\"}},[_vm._v(\"Company\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedCompany),expression:\"selectedCompany\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"custom-select custom-select-sm\",class:{ 'is-invalid': _vm.errors.has('purchaserCompany') },attrs:{\"id\":\"purchaserCompany\",\"name\":\"purchaserCompany\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedCompany=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.onCompanySelection($event.target.value)}]}},_vm._l((_vm.companies),function(company){return _c('option',{key:company.id,domProps:{\"value\":company.id}},[_vm._v(_vm._s(company.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Please select a company\")]),_c('small',{staticClass:\"form-text text-muted\",attrs:{\"id\":\"emailHelp\"}},[_vm._v(\" You are associated to multiple companies. Please select which company you are making this purchase for. \")])])]):_vm._e(),_c('div',{},[_c('div',{staticClass:\" order-md-3 mb-4\"},[_c('h4',{staticClass:\"d-flex justify-content-between align-items-center mb-3\"},[_c('span',{},[_vm._v(\"Current Memberships\")])]),(_vm.currentMemberships.length)?_c('ul',{staticClass:\"list-group mb-3\"},_vm._l((_vm.currentMemberships),function(membership){return _c('li',{key:'current-membership-' + membership.id,staticClass:\"list-group-item d-flex justify-content-between\"},[_c('div',[_c('h6',{staticClass:\"my-0\"},[_vm._v(_vm._s(membership.role)+\" - \"+_vm._s(membership.zone))]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Expires: \"+_vm._s(_vm._f(\"datetime\")(membership.expiryDate)))])])])}),0):_c('ul',{staticClass:\"list-group mb-3\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"No memberships\")])])])]),_c('hr',{staticClass:\"my-5\"}),_c('div',{staticClass:\" order-md-1 mb-4\"},[_c('h4',{staticClass:\"mb-3\"},[_vm._v(\"Upgrade Options\")]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.addToCart($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"roles\"}},[_vm._v(\"Membership Plans\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedRole),expression:\"selectedRole\"}],staticClass:\"form-control\",attrs:{\"id\":\"roles\",\"name\":\"roles\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedRole=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.roles),function(role){return _c('option',{key:role.id,domProps:{\"value\":role.id}},[_vm._v(\" \"+_vm._s(role.name)+\" - \"+_vm._s(_vm._f(\"currency\")(role.subscriptionPrice,2))+\" for \"+_vm._s(role.subscriptionDuration)+\" month(s) \")])}),0)]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"zones\"}},[_vm._v(\"Zone\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedZone),expression:\"selectedZone\"}],staticClass:\"form-control\",attrs:{\"id\":\"zones\",\"name\":\"zones\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedZone=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.zones),function(zone){return _c('option',{key:zone.id,domProps:{\"value\":zone.id}},[_vm._v(_vm._s(zone.name))])}),0)]),_c('hr',{staticClass:\"mb-4\"}),_c('button',{staticClass:\"btn btn-primary btn-lg btn-block\",class:{ 'disabled': !_vm.isAllowedCart },attrs:{\"type\":\"submit\",\"disabled\":!_vm.isAllowedCart}},[_vm._v(\"Add to cart\")])])]),_c('hr',{staticClass:\"my-5\"}),_c('div',{staticClass:\" order-md-2 mb-4\"},[_c('h4',{staticClass:\"d-flex justify-content-between align-items-center mb-3\"},[_c('span',{},[_vm._v(\"Cart\")]),_c('span',{staticClass:\"badge badge-secondary badge-pill\"},[_vm._v(_vm._s(_vm.totalItems))])]),(_vm.cart.length)?_c('ul',{staticClass:\"list-group mb-3\"},[_vm._l((_vm.cart),function(item,index){return _c('li',{key:'cart-item-' + index,staticClass:\"list-group-item d-flex justify-content-start\"},[_c('button',{staticClass:\"close mr-3\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.removeFromCart(item)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])]),_c('div',{staticClass:\"flex-fill\"},[_c('h6',{staticClass:\"my-0\"},[_vm._v(_vm._s(item.role)+\" - \"+_vm._s(item.zone))]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Duration: \"+_vm._s(item.duration)+\" month(s)\")])]),_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.price,2)))])])}),_c('li',{staticClass:\"list-group-item d-flex justify-content-between membership-subtotal\"},[_c('span',[_vm._v(\"Subtotal (CAD)\")]),_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.subTotal,2)))])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between\"},[_c('span',[_vm._v(\"Tax (CAD)\")]),_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.tax,2)))])]),_c('li',{staticClass:\"list-group-item d-flex justify-content-between membership-total\"},[_c('span',[_c('strong',[_vm._v(\"Total (CAD)\")])]),_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalPrice,2)))])])],2):_c('ul',{staticClass:\"list-group mb-3\"},[_c('li',{staticClass:\"list-group-item d-flex justify-content-between\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"Empty Cart\")])])])])]),_c('div',{staticClass:\"d-flex flex-row-reverse\"},[_c('button',{staticClass:\"btn btn-success ml-2\",class:{ 'disabled': !_vm.isAllowedCheckout },attrs:{\"type\":\"button\",\"disabled\":!_vm.isAllowedCheckout},on:{\"click\":_vm.checkout}},[_vm._v(\" Checkout \")]),_c('router-link',{staticClass:\"btn btn-primary\",attrs:{\"to\":\"/dashboard\",\"title\":\"Link to Dashboard\"}},[_vm._v(\"Return to Dashboard\")])],1)]):_vm._e()])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <div class=\"main_page\">\r\n      <app-navbar></app-navbar>\r\n      <div class=\"page\">\r\n        <loading :active.sync=\"isPageLoading\" is-full-page></loading>\r\n        <div>\r\n          <div class=\"page-title\">\r\n            <h1>Upgrade Membership</h1>\r\n          </div>\r\n\r\n          <div class=\"page-content\" v-if=\"!isPageLoading\">\r\n\r\n            <div class=\"alert alert-success\" role=\"alert\" v-if=\"isPaymentSuccessful\">\r\n              Thank you for your purchase.\r\n            </div>\r\n\r\n            <div class=\"alert alert-danger\" role=\"alert\" v-if=\"isPaymentFailure\">\r\n              <p> An error has occurred and your transaction has been cancelled - please contact an administrator. </p>\r\n              <p> <strong> Transaction Id: </strong> {{ transactionId }} </p>\r\n            </div>\r\n\r\n            <div class=\"mt-2 mb-5\" v-if=\"companies.length > 1\">\r\n              <div class=\"form-group\">\r\n              <label for=\"purchaserCompany\">Company</label>\r\n              <select id=\"purchaserCompany\" name=\"purchaserCompany\" class=\"custom-select custom-select-sm\" :class=\"{ 'is-invalid': errors.has('purchaserCompany') }\"\r\n                  v-model=\"selectedCompany\" v-validate=\"'required'\" @change=\"onCompanySelection($event.target.value)\">\r\n                <option v-for=\"company in companies\" :key=\"company.id\" :value=\"company.id\">{{ company.name }}</option>\r\n              </select>\r\n              <div class=\"invalid-feedback\">Please select a company</div>\r\n              <small id=\"emailHelp\" class=\"form-text text-muted\">\r\n                You are associated to multiple companies. Please select which company you are making this purchase for.\r\n              </small>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"\">\r\n              <div class=\" order-md-3 mb-4\">\r\n                <h4 class=\"d-flex justify-content-between align-items-center mb-3\">\r\n                  <span class=\"\">Current Memberships</span>\r\n                </h4>\r\n                <ul class=\"list-group mb-3\" v-if=\"currentMemberships.length\">\r\n                  <li class=\"list-group-item d-flex justify-content-between\"\r\n                      v-for=\"membership in currentMemberships\" :key=\"'current-membership-' + membership.id\">\r\n                    <div>\r\n                      <h6 class=\"my-0\">{{ membership.role }} - {{ membership.zone }}</h6>\r\n                      <small class=\"text-muted\">Expires: {{ membership.expiryDate | datetime }}</small>\r\n                    </div>\r\n                  </li>\r\n                </ul>\r\n                <ul class=\"list-group mb-3\" v-else>\r\n                  <li class=\"list-group-item d-flex justify-content-between\">\r\n                    <span class=\"text-muted\">No memberships</span>\r\n                  </li>\r\n                </ul>\r\n              </div>\r\n\r\n              <hr class=\"my-5\" />\r\n\r\n              <div class=\" order-md-1 mb-4\">\r\n                <h4 class=\"mb-3\">Upgrade Options</h4>\r\n                <form v-on:submit.prevent=\"addToCart\">\r\n                  <div class=\"form-group\">\r\n                    <label for=\"roles\">Membership Plans</label>\r\n                    <select class=\"form-control\" id=\"roles\" name=\"roles\" v-model=\"selectedRole\">\r\n                      <option v-for=\"role in roles\" :key=\"role.id\" :value=\"role.id\">\r\n                        {{ role.name }} - {{ role.subscriptionPrice | currency(2) }} for {{ role.subscriptionDuration }} month(s)\r\n                      </option>\r\n                    </select>\r\n                  </div>\r\n                  <div class=\"form-group\">\r\n                    <label for=\"zones\">Zone</label>\r\n                    <select class=\"form-control\" id=\"zones\" name=\"zones\" v-model=\"selectedZone\">\r\n                      <option v-for=\"zone in zones\" :key=\"zone.id\" :value=\"zone.id\">{{ zone.name }}</option>\r\n                    </select>\r\n                  </div>\r\n                  <hr class=\"mb-4\">\r\n                  <button class=\"btn btn-primary btn-lg btn-block\" :class=\"{ 'disabled': !isAllowedCart }\" type=\"submit\" :disabled=\"!isAllowedCart\">Add to cart</button>\r\n                </form>\r\n              </div>\r\n\r\n              <hr class=\"my-5\" />\r\n\r\n              <div class=\" order-md-2 mb-4\">\r\n                <h4 class=\"d-flex justify-content-between align-items-center mb-3\">\r\n                  <span class=\"\">Cart</span>\r\n                  <span class=\"badge badge-secondary badge-pill\">{{ totalItems }}</span>\r\n                </h4>\r\n                <ul class=\"list-group mb-3\" v-if=\"cart.length\">\r\n                  <li class=\"list-group-item d-flex justify-content-start\"\r\n                      v-for=\"(item, index) in cart\" :key=\"'cart-item-' + index\">\r\n                    <button type=\"button\" class=\"close mr-3\" aria-label=\"Close\" @click=\"removeFromCart(item)\">\r\n                      <span aria-hidden=\"true\">&times;</span>\r\n                    </button>\r\n                    <div class=\"flex-fill\">\r\n                      <h6 class=\"my-0\">{{ item.role }} - {{ item.zone }}</h6>\r\n                      <small class=\"text-muted\">Duration: {{ item.duration }} month(s)</small>\r\n                    </div>\r\n                    <span class=\"text-muted\">{{ item.price | currency(2) }}</span>\r\n                  </li>\r\n                  <li class=\"list-group-item d-flex justify-content-between membership-subtotal\">\r\n                    <span>Subtotal (CAD)</span>\r\n                    <!-- <strong>{{ totalPrice | currency(2) }}</strong> -->\r\n                    <strong>{{ subTotal | currency(2) }}</strong>\r\n                  </li>\r\n                  <li class=\"list-group-item d-flex justify-content-between\">\r\n                    <span>Tax (CAD)</span>\r\n                    <!-- <strong>{{ totalPrice | currency(2) }}</strong> -->\r\n                    <strong>{{ tax | currency(2) }}</strong>\r\n                  </li>\r\n                  <li class=\"list-group-item d-flex justify-content-between membership-total\">\r\n                    <span><strong>Total (CAD)</strong></span>\r\n                    <strong>{{ totalPrice | currency(2) }}</strong>\r\n                  </li>\r\n                </ul>\r\n                <ul class=\"list-group mb-3\" v-else>\r\n                  <li class=\"list-group-item d-flex justify-content-between\">\r\n                    <span class=\"text-muted\">Empty Cart</span>\r\n                  </li>\r\n                </ul>\r\n                <!-- <hr class=\"mb-4\"> -->\r\n\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"d-flex flex-row-reverse\">\r\n              <button class=\"btn btn-success ml-2\" :class=\"{ 'disabled': !isAllowedCheckout }\" type=\"button\"\r\n                  :disabled=\"!isAllowedCheckout\" @click=\"checkout\">\r\n                Checkout\r\n              </button>\r\n              <router-link to=\"/dashboard\" class=\"btn btn-primary\" title=\"Link to Dashboard\">Return to Dashboard</router-link>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport AppNavBar from \"@/components/app-navbar.vue\";\r\nimport { CompanyService, PaymentService, RoleService, ZoneService } from \"@/services/\";\r\n\r\nexport default {\r\n  components: {\r\n    \"app-navbar\": AppNavBar\r\n  },\r\n  data: function() {\r\n    return {\r\n      isPageLoading: true,\r\n      isPaymentSuccessful: false,\r\n      isPaymentFailure: false,\r\n      isProcessing: false,\r\n      roles: [],\r\n      zones: [],\r\n      companies: [],\r\n      selectedCompany: null,\r\n      currentMemberships: [],\r\n      cart: [],\r\n      selectedRole: null,\r\n      selectedZone: null,\r\n      transactionId: null\r\n    };\r\n  },\r\n  computed: {\r\n    isAllowedCart () {\r\n      return !!this.selectedCompany && !!this.selectedRole && !!this.selectedZone && !this.isCartDuplicate && \r\n        !this.isMembershipExpired && !this.isMembershipDuplicate\r\n    },\r\n    isAllowedCheckout () {\r\n      return !!this.selectedCompany && !!this.cart.length;\r\n    },\r\n    totalItems () {\r\n      return this.cart.length;\r\n    },\r\n    totalPrice () {\r\n      return this.subTotal + this.tax\r\n    },\r\n    subTotal () {\r\n      return this.cart.length > 0 ? this.cart.map(item => item.price).reduce((acc, curr) => acc + curr) : 0;\r\n    },\r\n    tax () {\r\n      return this.cart.length > 0 ? this.cart.map(item => item.taxAmount).reduce((acc, curr) => acc + curr) : 0;\r\n    },\r\n    isCartDuplicate (){ \r\n      return this.cart.some(item => item.zoneId === this.selectedZone && item.roleId === this.selectedRole)\r\n    },\r\n    isMembershipDuplicate(){\r\n      return this.currentMemberships.some(item => item.zoneId === this.selectedZone && item.roleId === this.selectedRole)\r\n    },\r\n    isMembershipExpired () {\r\n      return !this.currentMemberships.length > 0\r\n    },\r\n    ...mapGetters([\"getCurrentUser\"])\r\n  },\r\n  methods: {\r\n    addToCart () {\r\n      let _selectedRole = this.roles.find(role => role.id === this.selectedRole);\r\n      let _selectedZone = this.zones.find(zone => zone.id === this.selectedZone);\r\n\r\n      this.cart.push({\r\n        id: '_' + Math.random().toString(36).substr(2, 9),\r\n        duration: _selectedRole.subscriptionDuration,\r\n        price: _selectedRole.subscriptionPrice,\r\n        roleId: _selectedRole.id,\r\n        role: _selectedRole.name,\r\n        zoneId: _selectedZone.id,\r\n        zone: _selectedZone.name,\r\n        taxAmount: _selectedRole.taxAmount,\r\n        taxPercentage: _selectedRole.taxPercentage\r\n      });\r\n\r\n      this.selectedRole = null;\r\n      this.selectedZone = null;\r\n\r\n    },\r\n    checkout() {\r\n      this.isProcessing = true;\r\n\r\n      let purchasedSubscriptions = {\r\n        companyid: this.selectedCompany,\r\n        purchasedSubscriptions: this.cart.map(item => ({ zoneid: item.zoneId, roleid: item.roleId }))\r\n      };\r\n\r\n      PaymentService.membershipUpgrade(purchasedSubscriptions)\r\n        .then(({ headers }) => {\r\n          this.isProcessing = false;\r\n          let location = headers.location;\r\n\r\n          if (location) window.location.href = location;\r\n        })\r\n        .catch(err => {\r\n          this.isProcessing = false;\r\n          var message = this.$createElement(\"span\", {},\r\n            [\"Oops! An error has occurred and some data could not be loaded\", this.$createElement(\"br\"), \"Please contact an administrator\"]\r\n          );\r\n\r\n          if (err && err.response && err.response.data && err.response.data.exceptionMessage) {\r\n            message = this.$createElement(\"span\", {}, [err.response.data.exceptionMessage, this.$createElement(\"br\"), \"Please contact an administrator\"]);\r\n          }\r\n\r\n          Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n        });\r\n    },\r\n    async onCompanySelection(id) {\r\n      try {\r\n        let { data } = await CompanyService.getMemberships(id);\r\n        this.currentMemberships = data;\r\n      }\r\n      catch(err) {\r\n        let message = this.$createElement(\"span\", {}, [\r\n          \"Oops! An error has occurred and some data could not be loaded\",\r\n          this.$createElement(\"br\"),\r\n          \"Please contact an administrator\"\r\n        ]);\r\n        Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n      }\r\n    },\r\n    removeFromCart (item) {\r\n      this.cart = this.cart.filter(i => i.id !== item.id);\r\n    },\r\n    ...mapActions([ \"fetchUser\" ])\r\n  },\r\n  mounted() {\r\n    this.isPaymentSuccessful = this.$route.query.success === 'true';\r\n    this.isPaymentFailure = this.$route.query.success === 'false';\r\n    this.transactionId = this.$route.query.transId;\r\n\r\n    Promise.all([\r\n      this.fetchUser(this.getCurrentUser.id),\r\n      RoleService.purchasable(),\r\n      ZoneService.getAll(),\r\n    ])\r\n      .then(result => {\r\n        this.companies = result[0].companies;\r\n        this.companies.length === 1 && (this.selectedCompany = this.companies[0].id) && (this.onCompanySelection(this.selectedCompany));\r\n\r\n        this.roles = result[1].data;\r\n        this.zones = result[2].data;\r\n\r\n        this.isPageLoading = false;\r\n      })\r\n      .catch(() => {\r\n        this.isPageLoading = false;\r\n        let message = this.$createElement(\"span\", {}, [\r\n          \"Oops! An error has occurred and some data could not be loaded\",\r\n          this.$createElement(\"br\"),\r\n          \"Please contact an administrator\"\r\n        ]);\r\n        Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n      });\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upgrade.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upgrade.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./upgrade.vue?vue&type=template&id=f33adb00&\"\nimport script from \"./upgrade.vue?vue&type=script&lang=js&\"\nexport * from \"./upgrade.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","const defaultOptions = {\r\n  noCloseButton: true,\r\n  autoHideDelay: 3000,\r\n  toaster: \"b-toaster-top-right\",\r\n  isStatus: true\r\n};\r\n\r\nconst success = function (context, message, overrideOptions) {\r\n  let options = { variant: 'success', ...defaultOptions, ...overrideOptions };\r\n  context.$root.$bvToast.toast(message, options);\r\n}\r\n\r\nconst danger = function (context, message, overrideOptions) {\r\n  let options = { variant: 'danger', ...defaultOptions, ...overrideOptions };\r\n  context.$root.$bvToast.toast(message, options);\r\n}\r\n\r\nexport default { success, danger }\r\n"],"sourceRoot":""}