{"version":3,"sources":["webpack:///./src/components/InvoiceCampaignForm.vue?a46b","webpack:///./src/components/InvoiceCampaignForm.vue","webpack:///./src/components/InvoiceCampaignForm.vue?6290","webpack:///./src/components/InvoiceCampaignForm.vue?e268","webpack:///./src/views/InvoiceCampaigns.vue?274a","webpack:///./src/views/InvoiceCampaigns.vue","webpack:///./src/views/InvoiceCampaigns.vue?0c9d","webpack:///./src/views/InvoiceCampaigns.vue?bceb","webpack:///./src/components/InvoicesPlaceholder.vue?8a7b","webpack:///./src/components/InvoicesPlaceholder.vue","webpack:///./src/components/InvoicesPlaceholder.vue?f5ec","webpack:///./src/components/InvoicesPlaceholder.vue?8e52","webpack:///./src/components/InvoicesPlaceholder.vue?986c"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","temp","event","attrs","directives","name","rawName","value","expression","errors","collect","model","callback","$$v","$set","_e","class","$vuetify","breakpoint","xsOnly","staticStyle","key","ref","days","on","$event","updateDays","_v","when","field","message","save","staticRenderFns","Vue","extend","props","eventMessage","type","Object","required","data","text","mounted","window","_","cloneDeep","computed","methods","$refs","comboBox","blur","$validator","validate","valid","$emit","parseInt","component","VBtn","VCombobox","VRow","VSelect","VTextField","invoiceCampaignsEnabled","hasInvoices","loading","toolbar","scopedSlots","_u","fn","editEventMessage","editScheduleTime","proxy","lgAndUp","eventName","selectedEventMessage","eventMessageResume","eventMessagePause","removeEventMessage","_s","eventDescription","_l","eventFlows","i","hidden","filteredEvents","invoiceCampaignTile","components","InvoicesPlaceholder","SmsInboundBubble","SmsOutboundBubble","campaignSchedule","title","help","body","button","link","beforeDestroy","validateTimezone","mapGetters","invoiceCampaign","isSphere","tenant","events","forEach","id","randomKey","provider","data_provider","providerName","MESSAGEDESK","QBO","XERO","invoiceCreated","invoicePaid","reminder","reminderTrigger","$store","getters","getEnabled","get","invoiceCampaignSelectedEvent","set","val","commit","time","Date","setHours","substring","dispatch","icon","color","description","inputs","label","path","timeOnly","res","onScheduleEdited","eventAction","menu","paused","action","IListActionType","toLowerCase","eventHeader","status","$colors","mdYellow","mdPurple","style","html","eventIcon","listIcon","IListIconType","content","eventSendAt","date","moment","utc","local","format","editing","newEventMessage","width","onEventMessageEdited","toISOString","findIndex","x","invoiceCampaignUpdate","Analytics","track","invoiceCampaignEventSelected","invoiceCampaignPanel","step","actionContent","actionHeader","leftIcon","line1","line2","line3","resp","push","invoice_campaign_id","index","splice","watch","bool","VCol","$images","invoiceWorkflow","dataProviders","filter","$router","image","VIcon","VImg"],"mappings":"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","file":"js/invoice-campaigns.6490c446.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.temp)?_c('div',{staticClass:\"ma-4\"},[(_vm.temp.event == 'reminder')?_c('v-row',{staticClass:\"ma-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-text-field',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|max:45'),expression:\"'required|max:45'\"}],attrs:{\"name\":\"name\",\"error-messages\":_vm.errors.collect('name'),\"label\":\"Name\",\"dense\":\"\"},model:{value:(_vm.temp.name),callback:function ($$v) {_vm.$set(_vm.temp, \"name\", $$v)},expression:\"temp.name\"}})],1):_vm._e(),(_vm.temp.event == 'reminder')?_c('v-row',{staticClass:\"ma-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('div',{class:_vm.$vuetify.breakpoint.xsOnly ? 'mb-2' : '',staticStyle:{\"width\":\"145px\"}},[_c('v-combobox',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('invoiceCampaignDays'),expression:\"'invoiceCampaignDays'\"}],key:\"days\",ref:\"comboBox\",attrs:{\"color\":\"primary\",\"outlined\":\"\",\"dense\":\"\",\"name\":\"days\",\"hide-details\":\"\",\"items\":_vm.days,\"error-messages\":_vm.errors.collect('days')},on:{\"change\":function($event){return _vm.updateDays($event)}},model:{value:(_vm.temp.days),callback:function ($$v) {_vm.$set(_vm.temp, \"days\", $$v)},expression:\"temp.days\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.temp.days != 'On due date'),expression:\"temp.days != 'On due date'\"}],staticClass:\"mx-2\"},[_vm._v(\" day(s) \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.temp.days != 'On due date'),expression:\"temp.days != 'On due date'\"}],staticStyle:{\"width\":\"110px\"}},[_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"color\":\"primary\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.when,\"name\":\"before/after\",\"error-messages\":_vm.errors.collect('before/after')},model:{value:(_vm.temp.when),callback:function ($$v) {_vm.$set(_vm.temp, \"when\", $$v)},expression:\"temp.when\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.temp.days != 'On due date'),expression:\"temp.days != 'On due date'\"}],staticClass:\"mx-2\",staticStyle:{\"width\":\"140px\"}},[_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"color\":\"primary\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.field,\"name\":\"invoice field\",\"error-messages\":_vm.errors.collect('invoice field')},model:{value:(_vm.temp.field),callback:function ($$v) {_vm.$set(_vm.temp, \"field\", $$v)},expression:\"temp.field\"}})],1)]):_vm._e(),_c('div',{staticClass:\"mt-4\"},[_c('div',[_vm._v(\" Message: \")]),_c('message-text-form',{attrs:{\"insert\":_vm.temp.message,\"isInvoice\":true,\"showMediaMenu\":false},on:{\"input\":function($event){_vm.temp.message = $event}}})],1),_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\" Save \")])],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { InvoiceCampaignEvent } from '@/types/InvoiceCampaign.interface'\nimport Vue, { PropType } from 'vue'\nexport default Vue.extend({\n props: {\n eventMessage: {\n type: Object as PropType,\n required: true\n }\n },\n data() {\n return {\n temp: null,\n days: ['On due date', 7, 14, 30, 60, 90],\n field: [\n {\n text: 'Due date',\n value: 'due_date'\n },\n {\n text: 'Paid date',\n value: 'paid_at'\n }\n ]\n }\n },\n mounted() {\n // Clone our invoice campaign event so we do non-destructive editing\n this.temp = window._.cloneDeep(this.eventMessage)\n },\n computed: {\n when(): string[] {\n // If no model yet, return nothing\n if (!this.temp) return null\n\n // If field is paid_at, we can only handle \"after\" paid at date\n if (this.temp.field == 'paid_at') {\n // Make sure 'After' is selected for user when they change field to 'Paid date'\n this.temp.when = 'After'\n\n return ['After']\n }\n\n // Otherwise handle before or after due_date\n return ['Before', 'After']\n }\n },\n methods: {\n async save(): Promise {\n // Un-focus combobox to save current input\n if (this.$refs.comboBox) this.$refs.comboBox.blur()\n\n // Validate v-combobox\n const valid = await this.$validator.validate()\n\n // If not valid, prevent saving and do nothing\n if (!valid) return\n\n // If valid, save eventMessage\n this.$emit('submit', this.temp)\n },\n updateDays(days: string): void {\n // Numbers in the combobox are technically strings, we need to parse as int\n if (days != 'On due date') this.temp.days = parseInt(days)\n\n // If selecting 'On due date', make sure field is set to due_date\n if (days == 'On due date') {\n this.temp.when = 'Before'\n this.temp.field = 'due_date'\n }\n }\n }\n})\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!./InvoiceCampaignForm.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!./InvoiceCampaignForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoiceCampaignForm.vue?vue&type=template&id=19fa0c42&\"\nimport script from \"./InvoiceCampaignForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoiceCampaignForm.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCombobox,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.invoiceCampaignsEnabled)?_c('page-template',{ref:\"invoiceCampaignPanel\",attrs:{\"toolbar\":_vm.toolbar}},[_c('feature-disabled',{attrs:{\"metadata\":\"payment_automation_enabled\"}})],1):(!_vm.hasInvoices)?_c('page-template',{ref:\"invoiceCampaignPanel\",attrs:{\"toolbar\":_vm.toolbar}},[_c('invoices-placeholder')],1):_c('page-template',{ref:\"invoiceCampaignPanel\",attrs:{\"loader\":_vm.loading,\"toolbar\":_vm.toolbar},scopedSlots:_vm._u([{key:\"left-top\",fn:function(){return [_c('v-row',{staticClass:\"pa-3\",attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',[_c('span',{staticClass:\"mr-4\"},[_vm._v(\"Invoice Reminders\")]),_c('tri-panel-button',{attrs:{\"small\":\"\",\"icon\":\"bi-plus\",\"text\":\"Add Reminder\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.editEventMessage()}}})],1),_c('v-col',{staticStyle:{\"text-align\":\"right\"}},[_c('tri-panel-button',{attrs:{\"icon\":\"bi-gear\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.editScheduleTime()}}})],1)],1)]},proxy:true},{key:\"content\",fn:function(){return [(_vm.selectedEventMessage)?_c('span',[_c('v-row',{staticClass:\"pa-2\",staticStyle:{\"position\":\"relative\"},attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"end\"}},[_c('toolbar-title',{staticStyle:{\"position\":\"absolute\"},attrs:{\"textClass\":_vm.$vuetify.breakpoint.lgAndUp ? 'headline font-weight-medium' : 'font-weight-medium',\"title\":_vm.eventName(_vm.selectedEventMessage)}}),(_vm.selectedEventMessage.paused)?_c('tri-panel-button',{attrs:{\"color\":\"primary\",\"icon\":\"bi-play-circle-fill\",\"tooltip\":\"Activate Invoice Reminder\"},on:{\"click\":function($event){return _vm.eventMessageResume(_vm.selectedEventMessage)}}}):_c('tri-panel-button',{attrs:{\"color\":\"primary\",\"icon\":\"bi-pause-circle-fill\",\"tooltip\":\"Pause Invoice Reminder\"},on:{\"click\":function($event){return _vm.eventMessagePause(_vm.selectedEventMessage)}}}),_c('tri-panel-button',{attrs:{\"color\":\"primary\",\"icon\":\"bi-pencil-fill\",\"tooltip\":\"Edit Invoice Reminder\"},on:{\"click\":function($event){return _vm.editEventMessage(_vm.selectedEventMessage)}}}),(_vm.selectedEventMessage.event == 'reminder')?_c('tri-panel-button',{attrs:{\"color\":\"primary\",\"icon\":\"bi-trash-fill\",\"tooltip\":\"Delete Invoice Reminder\"},on:{\"click\":function($event){return _vm.removeEventMessage(_vm.selectedEventMessage)}}}):_vm._e()],1),_c('v-row',{staticClass:\"caption px-3\",attrs:{\"no-gutters\":\"\"}},[_c('div',{staticClass:\"grey--text mr-2\"},[_vm._v(\"Description:\")]),_vm._v(\" \"+_vm._s(_vm.eventDescription(_vm.selectedEventMessage))+\" \")]),_c('v-row',{staticClass:\"caption px-3 pt-1\",attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"grey--text\"},[_vm._v(\"Workflow: \")])]),_c('v-col',{staticClass:\"pa-3\"},[_vm._l((_vm.eventFlows[_vm.selectedEventMessage.event]),function(message,i){return [(message.class == 'inbound' && !message.hidden)?_c('sms-inbound-bubble',{key:i,staticClass:\"my-2\",attrs:{\"message\":message}}):(message.class == 'outbound')?_c('sms-outbound-bubble',{key:i,staticClass:\"my-2\",attrs:{\"message\":message}}):_vm._e()]})],2)],1):_vm._e()]},proxy:true}])},[_c('i-list',{ref:\"invoiceCampaignsList\",attrs:{\"id\":\"invoiceCampaignsList\",\"color\":\"primary\",\"selectable\":\"\",\"items\":_vm.filteredEvents,\"tile\":_vm.invoiceCampaignTile()}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Analytics from '@/services/Analytics'\nimport { mapGetters } from 'vuex'\nimport InvoiceCampaign, { InvoiceCampaignEvent } from '@/types/InvoiceCampaign.interface'\nimport InvoicesPlaceholder from '@/components/InvoicesPlaceholder.vue'\nimport IListAction, { IListActionType } from '@/types/components/IListAction.interface'\nimport Button from '@/types/components/Button.interface'\nimport IListTile from '@/types/components/IListTile.interface'\nimport IListIcon, { IListIconType } from '@/types/components/IListIcon.interface'\nimport moment from 'moment-timezone'\nimport { randomKey, validateTimezone } from '@/utility/helpers'\nimport SmsInboundBubble from '@/components/SmsInboundBubble.vue'\nimport SmsOutboundBubble from '@/components/SmsOutboundBubble.vue'\nexport default Vue.extend({\n components: { InvoicesPlaceholder, SmsInboundBubble, SmsOutboundBubble },\n data() {\n return {\n campaignSchedule: {},\n loading: false,\n toolbar: {\n // Title toolbar\n title: 'Payments',\n help: {\n title: 'Automated Payments',\n body: 'Automate your QuickBooks invoice collection and reminders by turning on SMS automation',\n button: {\n text: 'Learn More',\n link: 'https://learn.messagedesk.com/en/articles/5473471-payments-automation-overview'\n }\n }\n }\n }\n },\n beforeDestroy() {\n // Set our selected event to null\n this.selectedEventMessage = null\n },\n mounted() {\n // If invoice campaigns are enabled, we want to validate the timezone\n if (this.invoiceCampaignsEnabled) {\n // Force tenant to choose timezone before enabling InvoiceCampaigns\n validateTimezone()\n }\n },\n computed: {\n // ...mapGetters(['hasInvoices', 'invoiceCampaign', 'isSphere']),\n ...mapGetters({\n hasInvoices: 'hasInvoices',\n invoiceCampaign: 'invoiceCampaign',\n isSphere: 'isSphere',\n tenant: 'tenant'\n }),\n filteredEvents(): InvoiceCampaignEvent[] {\n // If invoice campaign is not loaded, do nothing\n if (!this.invoiceCampaign) return []\n\n // Get the events from the invoice campaign\n const events = this.invoiceCampaign.events\n\n // Attach a random id to each event so that the IList doesn't think they are all the same items when selected\n events.forEach((event: InvoiceCampaignEvent) => {\n if (!event.id) event.id = randomKey()\n })\n\n // Return the events with attached ids\n return events\n },\n eventFlows() {\n // Define the tenant's data provider\n const provider = this.isSphere ? 'MESSAGEDESK' : this.tenant.data_provider\n\n // Select the readable data provider name\n const providerName = {\n MESSAGEDESK: 'MessageDesk',\n QBO: 'QuickBooks Online',\n XERO: 'Xero'\n }[provider]\n\n return {\n invoiceCreated: [\n {\n class: 'inbound',\n type: provider,\n text: `Event:
Invoice created in ${providerName}`\n },\n {\n class: 'inbound',\n type: 'MESSAGEDESK',\n text: `Trigger:
MessageDesk receives the event from ${providerName}`,\n hidden: provider == 'MESSAGEDESK'\n },\n {\n class: 'outbound',\n type: 'autoresponder',\n text: `Text Message Sent:
${this.selectedEventMessage.message}`\n }\n ],\n invoicePaid: [\n {\n class: 'inbound',\n type: provider,\n text: `Event:
Invoice paid in ${providerName}`\n },\n {\n class: 'inbound',\n type: 'MESSAGEDESK',\n text: `Trigger:
MessageDesk receives the event from ${providerName}`,\n hidden: provider == 'MESSAGEDESK'\n },\n {\n class: 'outbound',\n type: 'autoresponder',\n text: `Text Message Sent:
${this.selectedEventMessage.message}`\n }\n ],\n reminder: [\n {\n class: 'inbound',\n type: provider,\n text: `Event:
Invoice ${\n this.selectedEventMessage.field == 'due_date'\n ? 'created'\n : 'paid'\n } in ${providerName}`\n },\n {\n class: 'inbound',\n type: 'MESSAGEDESK',\n text: `Trigger:
${this.reminderTrigger()}`\n },\n {\n class: 'outbound',\n type: 'autoresponder',\n text: `Text Message Sent:
${this.selectedEventMessage.message}`\n }\n ]\n }\n },\n invoiceCampaignsEnabled(): boolean {\n return this.$store.getters.getEnabled('payment_automation')\n },\n selectedEventMessage: {\n get(): InvoiceCampaignEvent {\n return this.$store.getters.invoiceCampaignSelectedEvent\n },\n set(val: InvoiceCampaignEvent): void {\n this.$store.commit('invoiceCampaignSelectedEventSet', val)\n }\n }\n },\n methods: {\n editScheduleTime(): void {\n // Create a sample model\n const model = {\n time: new Date().setHours(\n parseInt(this.invoiceCampaign.time.substring(0, 2)),\n parseInt(this.invoiceCampaign.time.substring(3, 5))\n )\n }\n\n // Pop our edit form\n this.$store.dispatch('dialogOpen', {\n type: 'APP',\n component: 'app-form',\n title: 'Change send time',\n icon: 'bi-gear',\n color: 'primary',\n description:\n 'This is the time of day your invoice reminders will be sent at. Invoice reminders that are sent immediately will not be affected by this time.',\n props: {\n model: model,\n inputs: [\n {\n type: 'DATETIME',\n name: 'Time',\n title: 'Time',\n label: 'Time',\n path: 'time',\n timeOnly: true,\n validate: 'required',\n class: 'mb-4'\n }\n ]\n },\n callback: (res: InvoiceCampaign) => this.onScheduleEdited(res)\n })\n },\n eventAction(eventMessage: InvoiceCampaignEvent): IListAction {\n // Our container for our menu of buttons\n const menu: Button[] = [\n {\n icon: 'bi-play-circle-fill',\n color: 'primary',\n text: 'Activate',\n hidden: eventMessage.paused === null,\n callback: () => this.eventMessageResume(eventMessage)\n },\n {\n icon: 'bi-pause-circle-fill',\n color: 'primary',\n text: 'Pause',\n hidden: eventMessage.paused !== null,\n callback: () => this.eventMessagePause(eventMessage)\n },\n {\n icon: 'bi-pencil-fill',\n color: 'primary',\n text: 'Edit',\n callback: () => this.editEventMessage(eventMessage)\n },\n {\n icon: 'bi-trash-fill',\n color: 'primary',\n text: 'Delete',\n hidden: eventMessage.event !== 'reminder',\n callback: () => this.removeEventMessage(eventMessage)\n }\n ]\n\n // Create our IListAction\n const action: IListAction = {\n type: IListActionType.menu,\n menu: menu\n }\n\n // Return action\n return action\n },\n eventDescription(eventMessage: InvoiceCampaignEvent): string {\n // GRab the event from our invoice campaign event\n const event = eventMessage.event\n\n // Create our reminder trigger string\n const reminder = this.reminderTrigger(eventMessage).toLowerCase()\n\n // Our description depends on the event type\n const description = {\n invoiceCreated: `Automatically sends a text message when an unpaid invoice is created`,\n invoicePaid: `Automatically sends a \"Thank You\" message when an invoice is paid`,\n reminder: `Automatically sends a text message ${reminder}`\n }[event]\n\n // Return our parsed description\n return description\n },\n eventHeader(eventMessage: InvoiceCampaignEvent): string {\n // Our status depends on if our event is paused or not\n const status = eventMessage.paused ? 'Paused' : 'Active'\n\n // Our color depends on if we are paused or not\n const color = eventMessage.paused\n ? this.$colors.mdYellow\n : this.$colors.mdPurple\n\n // Create our icon and style\n const icon = 'bi-circle-fill'\n const style = `color:${color}; padding-right:4px;`\n\n // Append our vars to the html string\n const html = `${status}`\n\n // Return our HTML version of our header\n return html\n },\n eventIcon(): IListIcon {\n // Our icon is always the same\n const icon = 'bi-lightning-fill'\n\n // Create our list icon\n const listIcon: IListIcon = {\n type: IListIconType.icon,\n content: icon,\n color: 'primary'\n }\n\n // Return our created icon\n return listIcon\n },\n eventName(eventMessage: InvoiceCampaignEvent): string {\n return eventMessage.name\n },\n eventSendAt(eventMessage: InvoiceCampaignEvent): string {\n // If not a 'reminder', disregard\n if (eventMessage.event != 'reminder') {\n return `Sends immediately`\n }\n\n // Create a new date/time from the invoice campaign's time\n const date = new Date().setHours(\n parseInt(this.invoiceCampaign.time.substring(0, 2)),\n parseInt(this.invoiceCampaign.time.substring(3, 5))\n )\n\n // Get a time-only string from the date\n const time = moment.utc(date).local().format('hh:mma')\n\n // Return the string\n return `Sends at ${time}`\n },\n editEventMessage(eventMessage: InvoiceCampaignEvent): void {\n // Our container for our edited event message\n let editing = eventMessage || this.newEventMessage()\n\n // If our container is still emptry, do nothing\n if (!editing) return\n\n // Pop our create dialog\n this.$store.dispatch('dialogOpen', {\n type: 'APP',\n component: 'invoice-campaign-form',\n width: '540px',\n title: !editing.name\n ? 'New Invoice Reminder'\n : `${this.eventName(editing)} - (edit)`,\n icon: 'bi-pencil-fill',\n color: 'primary',\n props: {\n eventMessage: editing\n },\n callback: (eventMessage) => {\n this.onEventMessageEdited(eventMessage)\n }\n })\n },\n eventMessagePause(eventMessage: InvoiceCampaignEvent): void {\n // Pause the event message\n eventMessage.paused = moment().toISOString(true)\n\n // Find the index of the event message we're updating\n const i = this.invoiceCampaign.events.findIndex(\n (x: InvoiceCampaignEvent) => x.id == eventMessage.id\n )\n\n // Update the eventMessage\n this.invoiceCampaign.events[i] = eventMessage\n\n // Send the change to the server\n this.invoiceCampaignUpdate(this.invoiceCampaign)\n },\n eventMessageResume(eventMessage: InvoiceCampaignEvent): void {\n // Report acttivity to analytics\n Analytics.track('InvoiceReminderEnabled')\n\n // Resume the event message\n eventMessage.paused = null\n\n // Find the index of the event message we're updating\n const i = this.invoiceCampaign.events.findIndex(\n (x: InvoiceCampaignEvent) => x.id == eventMessage.id\n )\n\n // Update the eventMessage\n this.invoiceCampaign.events[i] = eventMessage\n\n // Send the change to the server\n this.invoiceCampaignUpdate(this.invoiceCampaign)\n },\n invoiceCampaignEventSelected(event: InvoiceCampaignEvent): void {\n // Set selected event in left panel\n this.selectedEventMessage = event\n\n // Switch view to selected event for mobile views\n this.$refs.invoiceCampaignPanel.step = 2\n },\n invoiceCampaignTile(): IListTile {\n return {\n actionContent: (event: InvoiceCampaignEvent) => this.eventAction(event),\n actionHeader: (event: InvoiceCampaignEvent) => this.eventHeader(event),\n leftIcon: () => this.eventIcon(),\n line1: (event: InvoiceCampaignEvent) => this.eventName(event),\n line2: (event: InvoiceCampaignEvent) => this.eventDescription(event),\n line3: (event: InvoiceCampaignEvent) => this.eventSendAt(event),\n callback: (event: InvoiceCampaignEvent) =>\n this.invoiceCampaignEventSelected(event)\n }\n },\n async invoiceCampaignUpdate(invoiceCampaign: InvoiceCampaign): Promise {\n // Start loading\n this.loading = true\n\n // Send the request\n const resp = await this.$store.dispatch('invoiceCampaignPut', invoiceCampaign)\n\n // Stop loading\n this.loading = false\n\n // If the response does NOT exist, do nothing\n if (!resp) return\n\n // Else, notify user of success\n this.$store.commit('appNotificationBarSet', {\n message: 'Invoice Reminder Updated'\n })\n },\n newEventMessage(): InvoiceCampaignEvent {\n // Create defaut event message\n return {\n id: randomKey(),\n event: 'reminder',\n name: null,\n message: null,\n paused: null,\n days: null,\n when: null,\n field: null\n }\n },\n onEventMessageEdited(eventMessage: InvoiceCampaignEvent): void {\n // Find the index of the eventMessage we're updating\n const i = this.invoiceCampaign.events.findIndex(\n (x: InvoiceCampaignEvent) => x.id == eventMessage.id\n )\n\n // If the index is NOT found, we are creating a new eventMessage.\n if (i == -1) {\n // Add the reminder to the invoice campaign\n this.invoiceCampaign.events.push(eventMessage)\n\n // Report activity to analytics\n Analytics.track('InvoiceCampaignReminderCreated', {\n invoice_campaign_id: this.invoiceCampaign.id\n })\n }\n // Else, update the invoice campaign data\n else this.invoiceCampaign.events[i] = eventMessage\n\n // Update the selected event message\n this.selectedEventMessage = eventMessage\n\n // Send the change to the server\n this.invoiceCampaignUpdate(this.invoiceCampaign)\n\n // Close the app dialog\n this.$store.dispatch('dialogClose', 'APP')\n },\n async onScheduleEdited(model: InvoiceCampaign): Promise {\n // Update our invoice campaign\n await this.$store.dispatch('invoiceCampaignPut', {\n ...this.invoiceCampaign,\n time: moment.utc(model.time).local().format('HH:mm')\n })\n\n // Notify user of change\n this.$store.commit('appNotificationBarSet', {\n message: 'Invoice reminders updated'\n })\n\n // Close our dialog\n this.$store.dispatch('dialogClose', 'APP')\n },\n reminderTrigger(eventMessage: InvoiceCampaignEvent): string {\n // Grab our event either from the param or our selected event\n const event = eventMessage || this.selectedEventMessage\n\n // If the event is due on due date, then keep it simple and return on invoice due date\n if (event.days == 'On due date') return 'On invoice due date'\n\n // Else we need to list the days and when it is set to trigger\n return `${event.days} day(s) ${event.when} invoice ${\n event.field == 'due_date' ? 'due date' : 'paid date'\n }`\n },\n removeEventMessage(eventMessage: InvoiceCampaignEvent): void {\n // Find the index of the invoice campaign events to remove\n const index = this.invoiceCampaign.events.findIndex(\n (event: InvoiceCampaignEvent) => event.id == eventMessage.id\n )\n\n // Remove the index\n this.invoiceCampaign.events.splice(index, 1)\n\n // If the eventMessage we deleted is selected, unselect it\n if (\n this.selectedEventMessage &&\n eventMessage.id == this.selectedEventMessage.id\n ) {\n this.selectedEventMessage = null\n }\n\n // Update the invoice campaign\n this.invoiceCampaignUpdate(this.invoiceCampaign)\n\n // Pop confirmation notification\n this.$store.commit('appNotificationBarSet', {\n message: 'Invoice Reminder Deleted'\n })\n }\n },\n watch: {\n invoiceCampaignsEnabled(bool: boolean): void {\n if (bool) {\n // If the tenant's invoice campaign is NOT loaded, get it\n this.$store.dispatch('invoiceCampaignGet')\n\n // Force tenant to choose timezone before enabling InvoiceCampaigns\n validateTimezone()\n }\n }\n }\n})\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!./InvoiceCampaigns.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!./InvoiceCampaigns.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoiceCampaigns.vue?vue&type=template&id=7b54b16d&\"\nimport script from \"./InvoiceCampaigns.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoiceCampaigns.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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{style:(_vm.$vuetify.breakpoint.xsOnly ? 'padding-bottom:20px;' : ''),attrs:{\"cols\":\"12\",\"no-gutters\":\"\"}},[_c('v-col',{style:(_vm.$vuetify.breakpoint.xsOnly ? 'padding:10px;' : 'padding:65px;'),attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-img',{attrs:{\"contain\":\"\",\"max-height\":\"600px\",\"src\":_vm.$images.invoiceWorkflow}})],1),_c('v-col',{style:(_vm.$vuetify.breakpoint.xsOnly ? 'padding:10px 10px 10px 10px' : \"padding:65px 65px 65px 0px;\"),attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"py-4\",staticStyle:{\"font-family\":\"gt-alpina\",\"font-size\":\"66px\",\"line-height\":\"76px\"}},[_vm._v(\" Link your payment provider \")]),_c('div',{staticClass:\"py-4\",staticStyle:{\"font-size\":\"26px\"}},[_vm._v(\" To begin using invoices on MessageDesk, please select your payment provider below... \")]),_vm._l((_vm.dataProviders.filter(function (provider) { return !provider.hidden; })),function(provider,i){return _c('div',{key:i,staticClass:\"py-4\"},[_c('v-btn',{staticClass:\"white--text dataProviderBtn\",staticStyle:{\"height\":\"65px\",\"justify-content\":\"left\",\"border-radius\":\"5px\"},attrs:{\"block\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push(provider.link)}}},[_c('div',{staticStyle:{\"display\":\"contents\"}},[_c('div',{staticStyle:{\"display\":\"contents\"}},[_c('img',{staticStyle:{\"max-height\":\"50px\"},attrs:{\"src\":_vm.$images[provider.image]}})]),_c('div',{staticClass:\"dataProviderName\",staticStyle:{\"margin-right\":\"auto\",\"margin-left\":\"20px\",\"font-size\":\"20px\"}},[_vm._v(\" \"+_vm._s(provider.name)+\" \")]),_c('div',{staticClass:\"dataProviderIcon\"},[_c('v-icon',[_vm._v(\" bi-arrow-right \")])],1)])])],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { mapGetters } from 'vuex'\nimport Vue from 'vue'\nexport default Vue.extend({\n computed: {\n ...mapGetters(['tenant']),\n dataProviders(): object[] {\n return [\n {\n name: 'QuickBooks Online',\n image: 'qboCircle',\n link: '/qbo',\n hidden: this.tenant.data_provider == 'CSV'\n },\n {\n name: 'Sphere Payments',\n image: 'sphereLogo',\n link: '/sphere',\n hidden: false\n },\n {\n name: 'Xero',\n image: 'xeroLogo',\n link: '/xero',\n hidden: this.tenant.data_provider == 'CSV'\n }\n ]\n }\n }\n})\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!./InvoicesPlaceholder.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!./InvoicesPlaceholder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoicesPlaceholder.vue?vue&type=template&id=337bc114&scoped=true&\"\nimport script from \"./InvoicesPlaceholder.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoicesPlaceholder.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvoicesPlaceholder.vue?vue&type=style&index=0&id=337bc114&scoped=true&lang=css&\"\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 \"337bc114\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VIcon,VImg,VRow})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoicesPlaceholder.vue?vue&type=style&index=0&id=337bc114&scoped=true&lang=css&\""],"sourceRoot":""}