{"version":3,"sources":["webpack:///./src/components/Organization/SubscriptionCard.vue?6211","webpack:///./src/components/Organization/SubscriptionCard.vue?e2c1","webpack:///./src/components/Organization/SubscriptionCard.vue?e3df","webpack:///./src/components/Organization/SubscriptionCard.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","loading","subscription","id","scopedSlots","_u","key","fn","_v","proxy","subscriptionStateBadgeVariant","_s","_f","state","registeredTo","_e","subscriptionExpiryDate","lastUpdatedDate","tableFields","tableItems","data","item","casesUsers","casesUserLimit","_l","error","index","on","$event","showDismissibleAlert","billingPortalLink","url","staticRenderFns","SubscriptionCard","errors","validateSubscription","customerDto","firstName","lastName","email","moment","expirationDate","isBefore","format","updatedAt","hasAdminPermissions","hasBillingPortalDetails","currentUser","isAdmin","fields","label","component","definition","toLowerCase","isActiveState","isUsingTemporaryLimit","push","Vue","__decorate","Getter","Action","Watch","Component","components","filters","capitalize","value","charAt","toUpperCase","slice"],"mappings":"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","file":"js/chunk-2d225217.49a93e4b.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('skeleton-loader',{staticClass:\"flex-grow-1\",attrs:{\"loading\":_vm.loading}},[(_vm.subscription && _vm.subscription.id > 0)?_c('b-card',{staticClass:\"text-left\",attrs:{\"data-cy\":\"subscription-card\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h5',{staticClass:\"mb-0\"},[_vm._v(\" Subscription details \")])]},proxy:true},{key:\"default\",fn:function(){return [_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-3 font-weight-bold\"},[_vm._v(\" Subscription State: \")]),_c('div',{staticClass:\"col-9\",attrs:{\"data-cy\":\"subscription-state\"}},[_c('b-badge',{attrs:{\"variant\":_vm.subscriptionStateBadgeVariant}},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.subscription.state)))])],1)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-3 font-weight-bold\"},[_vm._v(\" Registered To: \")]),_c('div',{staticClass:\"col-9\",attrs:{\"data-cy\":\"subscription-registered-to\"}},[_vm._v(\" \"+_vm._s(_vm.registeredTo)+\" \")])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-3 font-weight-bold\"},[_vm._v(\" Expiry Date: \")]),_c('div',{staticClass:\"col-9\",attrs:{\"data-cy\":\"subscription-expired\"}},[(_vm.isSubscriptionExpired)?_c('span',{staticClass:\"expired-text\"},[_vm._v(\" Expired - \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.subscriptionExpiryDate)+\" \")])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-3 font-weight-bold\"},[_vm._v(\" Last Updated: \")]),_c('div',{staticClass:\"col-9\",attrs:{\"data-cy\":\"subscription-last-updated\"}},[_vm._v(\" \"+_vm._s(_vm.lastUpdatedDate)+\" \")])]),_c('hr'),_c('b-table',{staticClass:\"mt-4\",attrs:{\"data-cy\":\"subscription-components-table\",\"borderless\":\"\",\"hover\":\"\",\"fields\":_vm.tableFields,\"items\":_vm.tableItems},scopedSlots:_vm._u([{key:\"cell(usage)\",fn:function(data){return [(_vm.subscription.isUsingTemporaryLimit)?[_c('p',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(data.item.casesUsers)+\" / \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(data.item.casesUserLimit)+\" \")])])]:[_c('p',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(data.item.casesUsers)+\" / \"+_vm._s(data.item.casesUserLimit)+\" \")])]]}}],null,false,3162457986)}),_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,attrs:{\"data-cy\":\"subscription-errors\"}},[_c('hr'),_c('b-alert',{attrs:{\"variant\":\"danger\",\"dismissible\":\"\",\"fade\":\"\",\"show\":\"\"},on:{\"dismissed\":function($event){_vm.showDismissibleAlert=false}}},[_vm._v(\" \"+_vm._s(error)+\" \")])],1)})]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.canViewBillingPortal)?_c('b-card',{attrs:{\"data-cy\":\"subscription-portal-card\",\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-0\",attrs:{\"header-tag\":\"header\"}},[_c('b-button',{attrs:{\"data-cy\":\"subscription-billing-portal-button\",\"target\":\"_blank\",\"variant\":\"primary\",\"block\":\"\",\"href\":_vm.subscription.billingPortalLink.url}},[_vm._v(\" Open Billing Portal \")])],1)],1):_vm._e()]},proxy:true}],null,false,664443245)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport { Action, Getter } from \"vuex-class\"\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\"\r\nimport moment from \"moment\"\r\n\r\nimport { Subscription } from \"@/types/subscription\"\r\n\r\nimport { BvTableField } from \"bootstrap-vue\"\r\nimport { CurrentUser } from \"@/types/user\"\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"page\": () => import(\"@/components/New/Page/PageWrapper.vue\"),\r\n\t\t\"skeleton-loader\": () => import(\"@/components/SkeletonLoader.vue\")\r\n\t},\r\n\tfilters: {\r\n\t\tcapitalize: function (value: string) {\r\n\t\t\tif (!value) return \"\"\r\n\r\n\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\r\n\t\t}\r\n\t}\r\n})\r\nexport default class SubscriptionCard extends Vue {\r\n\t@Getter(\"getMe\") currentUser!: CurrentUser;\r\n\t@Getter(\"getSubscription\") subscription?: Subscription\r\n\r\n\t@Action(\"loadSubscription\") loadSubscription!: () => Promise\r\n\r\n\tpublic loading: boolean = false\r\n\tpublic errors: Array = []\r\n\r\n\t/**\r\n\t * On mount, get subscription details\r\n\t */\r\n\tprivate mounted () {\r\n\t\tthis.validateSubscription()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns formatted subscription owner\r\n\t */\r\n\tpublic get registeredTo (): string {\r\n\t\tif (!this.subscription || !this.subscription.customerDto) return \"\"\r\n\r\n\t\treturn `${this.subscription.customerDto.firstName} ` +\r\n\t\t\t\t`${this.subscription.customerDto.lastName} - ` +\r\n\t\t\t\t`${this.subscription.customerDto.email}`\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if subscription has expired\r\n\t */\r\n\tpublic get isSubscriptionExpired (): boolean {\r\n\t\treturn this.subscription\r\n\t\t\t? moment(this.subscription.expirationDate).isBefore(moment())\r\n\t\t\t: false\r\n\t}\r\n\r\n\t/**\r\n\t * Returns formatted expiration date\r\n\t */\r\n\tpublic get subscriptionExpiryDate (): string {\r\n\t\treturn this.subscription\r\n\t\t\t? moment(this.subscription.expirationDate).format(\"LL LT\")\r\n\t\t\t: \"\"\r\n\t}\r\n\r\n\t/**\r\n\t * Returns last updated date\r\n\t */\r\n\tpublic get lastUpdatedDate (): string {\r\n\t\treturn this.subscription && this.subscription.updatedAt\r\n\t\t\t? moment(this.subscription.updatedAt!).format(\"LL LT\")\r\n\t\t\t: \"\"\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the billing button will be displayed for the current user\r\n\t */\r\n\tpublic get canViewBillingPortal (): boolean {\r\n\t\treturn this.hasAdminPermissions && this.hasBillingPortalDetails\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the user has admin permissions\r\n\t */\r\n\tprivate get hasAdminPermissions (): boolean {\r\n\t\treturn this.currentUser.isAdmin === true\r\n\t}\r\n\r\n\t/**\r\n\t * Checks for a link to the billing portal\r\n\t */\r\n\tprivate get hasBillingPortalDetails (): boolean {\r\n\t\treturn (\r\n\t\t\tthis.subscription &&\r\n\t\t\tthis.subscription.billingPortalLink &&\r\n\t\t\tthis.subscription.billingPortalLink.url !== null\r\n\t\t) === true\r\n\t}\r\n\r\n\t/**\r\n\t * Returns table fields\r\n\t */\r\n\tpublic get tableFields (): BvTableField[] {\r\n\t\tconst fields = [\r\n\t\t\t{ key: \"component\", label: \"Component\" },\r\n\t\t\t{ key: \"definition\", label: \"Definition\" },\r\n\t\t\t{ key: \"usage\", label: \"Usage\" }\r\n\t\t]\r\n\r\n\t\treturn fields\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the billing components to display in the table\r\n\t */\r\n\tpublic get tableItems (): any {\r\n\t\treturn !this.subscription\r\n\t\t\t? []\r\n\t\t\t: [{\r\n\t\t\t\tcomponent: \"Cases users\",\r\n\t\t\t\tdefinition: \"The total number of users that can access Cases\",\r\n\t\t\t\tcasesUsers: this.subscription.casesUsers,\r\n\t\t\t\tcasesUserLimit: this.subscription.casesUserLimit\r\n\t\t\t}]\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the subscription state badge variant\r\n\t */\r\n\tpublic get subscriptionStateBadgeVariant (): string {\n\t\tif (!this.subscription || !this.subscription.state) { return \"\" }\r\n\r\n\t\tif (this.subscription.state.toLowerCase() === \"trialing\") {\r\n\t\t\treturn \"warning\"\r\n\t\t} else if (this.subscription.isActiveState || this.subscription.state.toLowerCase() === \"active\") {\r\n\t\t\treturn \"success\"\r\n\t\t}\r\n\r\n\t\treturn \"danger\"\r\n\t}\r\n\r\n\t/**\r\n\t * Monitors subscription changes\r\n\t */\r\n\t@Watch(\"subscription\")\r\n\tprivate onSubscriptionChanged () {\r\n\t\tthis.validateSubscription()\r\n\t}\r\n\r\n\t/**\r\n\t * Subscription validation\r\n\t */\r\n\tprivate validateSubscription (): void {\r\n\t\tthis.errors = []\r\n\r\n\t\tif (this.subscription && this.subscription.isUsingTemporaryLimit) {\r\n\t\t\tthis.errors.push(`\r\n\t\t\t\tThere has been an issue communicating with Chargify for your\r\n\t\t\t\tsubscription information. We are currently retrying to fetch\r\n\t\t\t\tthis data - Your User Limit has temporarily been set to\r\n\t\t\t\t${this.subscription.casesUserLimit}\r\n\t\t\t`)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionCard.vue?vue&type=template&id=a5f4dae0&scoped=true&\"\nimport script from \"./SubscriptionCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5f4dae0\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}