{"version":3,"sources":["webpack:///./src/components/ShortLinkPopup.vue?bea3","webpack:///./src/components/ShortLinkPopup.vue","webpack:///./src/components/ShortLinkPopup.vue?fc8f","webpack:///./src/components/ShortLinkPopup.vue?ebdb","webpack:///./src/views/ShortLinks.vue?7d8e","webpack:///./src/views/ShortLinks.vue?95f6","webpack:///./src/views/ShortLinks.vue","webpack:///./src/views/ShortLinks.vue?9644","webpack:///./src/views/ShortLinks.vue?19d7"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","class","$vuetify","breakpoint","xsOnly","attrs","_v","staticStyle","on","$event","preventDefault","postRoute","apply","arguments","directives","name","rawName","value","url","require_protocol","expression","errors","collect","model","callback","$$v","link","webLink","scopedSlots","_u","key","fn","copy","proxy","staticRenderFns","Vue","extend","props","person","type","Object","default","data","step","methods","txt","document","getElementById","select","setSelectionRange","execCommand","$store","commit","message","$validator","validate","valid","dispatch","route","local_link","component","VBtn","VCol","VForm","VIcon","VRow","VTextField","ref","toolbar","popRouteForm","$options","filters","routeIcon","selectedRoute","remote_link","lgAndUp","localLink","routeDeleteConfirm","_e","style","smOnly","_l","item","i","_s","count","subtitle","smAndDown","sentCount","sentHeight","openRate","openCount","openHeight","routes","routesListPlaceholder","routesTile","content","img","title","left","icon","back","tooltip","permission","right","computed","mapGetters","routesParams","lastPage","scrollPositionLeft","paginating","containerStyle","width","lgOnly","mdAndDown","maxWidth","counts","str","replace","open","clicked","length","percent","total","Math","floor","sent","get","getters","routesViewSelectedRoute","set","val","copyRoute","elem","id","range","createRange","selectNode","window","getSelection","removeAllRanges","addRange","onRouteSelected","$refs","routesPanel","isNew","query","assign","$route","$router","push","paginateCurrentList","params","nextPage","page","shouldPaginate","radius","closeable","routeActions","menu","text","color","hidden","action","IListActionType","routeDelete","response","result","listIcon","IListIconType","routeIconText","form","invoice","web","actionContent","leftIcon","leftFooter","line1","token","line2","line3","watch","to","from","needsLoad","position","bottom","VSpacer"],"mappings":"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","file":"js/short-links.8edd2bd5.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticClass:\"mt-4\",class:_vm.$vuetify.breakpoint.xsOnly ? 'mx-2' : '',attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\",\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 2 : 1}},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary\"}},[_vm._v(\" bi-link \")]),_c('span',{staticStyle:{\"font-size\":\"10px\",\"line-height\":\"16px\",\"color\":\"black\"}},[_vm._v(\"Web\")])],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"ml-2\",staticStyle:{\"line-height\":\"46px\",\"word-break\":\"break-word\",\"font-size\":\"30px\",\"color\":\"black\"}},[_vm._v(\" New Web Link \")])])],1),_c('v-row',{staticClass:\"flex-column justify-center mx-8\",staticStyle:{\"margin-bottom\":\"60px !important\"}},[_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.postRoute.apply(null, arguments)}}},[_c('v-row',{staticStyle:{\"width\":\"92%\"},attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticStyle:{\"font-size\":\"18px\",\"line-height\":\"28px\",\"color\":\"black\",\"flex-grow\":\"0 !important\"},attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 3}},[_vm._v(\" Link Address: \")]),_c('v-col',[_c('v-text-field',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({url: {require_protocol: true }}),expression:\"{url: {require_protocol: true }}\"}],attrs:{\"name\":\"link address\",\"placeholder\":\"Type your link address here (include http/https)\",\"error-messages\":_vm.errors.collect('link address')},model:{value:(_vm.link),callback:function ($$v) {_vm.link=$$v},expression:\"link\"}})],1)],1),_c('v-row',{staticStyle:{\"width\":\"92%\"},attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticStyle:{\"font-size\":\"18px\",\"line-height\":\"28px\",\"color\":\"black\",\"flex-grow\":\"0 !important\"},attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 3}},[_vm._v(\" Short Link Address: \")]),_c('v-col',[_c('v-text-field',{attrs:{\"id\":\"web-link\",\"disabled\":!_vm.webLink,\"readonly\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{on:{\"click\":function($event){return _vm.copy('web')}}},[_vm._v(\" mdi-content-copy \")])]},proxy:true}]),model:{value:(_vm.webLink),callback:function ($$v) {_vm.webLink=$$v},expression:\"webLink\"}})],1)],1),_c('v-row',{staticClass:\"flex-column\",attrs:{\"no-gutters\":\"\"}},[_c('v-btn',{staticClass:\"my-8\",staticStyle:{\"font-weight\":\"bold\",\"border-radius\":\"8px\",\"height\":\"35px\",\"width\":\"100px\"},attrs:{\"dark\":\"\",\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" Create link \")]),_c('div',[_c('i',[_vm._v(\" NOTE: Trying to add a PDF or other file type? Try linking to a Google Doc link or a different shared link provider like Dropbox \")])])],1)],1)],1)],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\nimport Vue, { PropType } from 'vue'\nimport Person from '@/types/Person.interface'\nexport default Vue.extend({\n props: {\n person: {\n type: Object as PropType,\n default: null\n }\n },\n data() {\n return {\n link: null,\n step: 1,\n webLink: null\n }\n },\n methods: {\n copy(type: string): void {\n // Get the 'reseller-link' html element\n let txt = document.getElementById(`${type}-link`) as HTMLInputElement\n\n // Copy the link to the clipboard\n txt.select()\n txt.setSelectionRange(0, 99999)\n document.execCommand('copy')\n\n // Notify the user the link has been copied to the clipboard\n this.$store.commit('appNotificationBarSet', {\n message: 'Short Link Copied to Clipboard!',\n type: 'success'\n })\n },\n async postRoute(): Promise {\n // Validate the form\n const valid = await this.$validator.validate()\n\n // If the form is NOT valid, do nothing\n if (!valid) return\n\n // Send off our request\n const route = await this.$store.dispatch('routesPost', { url: this.link })\n\n // If it failed, do nothing\n if (!route) return\n\n // Save our link if successful\n this.webLink = route.local_link\n\n // Notify user that the route was saved\n this.$store.commit('appNotificationBarSet', {\n message: 'Web Link successfully saved!',\n type: 'success'\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!./ShortLinkPopup.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!./ShortLinkPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShortLinkPopup.vue?vue&type=template&id=dc9ba24a&\"\nimport script from \"./ShortLinkPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShortLinkPopup.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 { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VForm,VIcon,VRow,VTextField})\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!./ShortLinks.vue?vue&type=style&index=0&id=113dc776&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('page-template',{ref:\"routesPanel\",attrs:{\"toolbar\":_vm.toolbar},scopedSlots:_vm._u([{key:\"left-top\",fn:function(){return [_c('v-row',{staticClass:\"pa-3\",attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"end\"}},[_c('tri-panel-button',{attrs:{\"small\":\"\",\"color\":\"primary\",\"icon\":\"mdi-plus\",\"text\":\"New Link\"},on:{\"click\":_vm.popRouteForm}})],1)]},proxy:true},(_vm.selectedRoute)?{key:\"content\",fn:function(){return [_c('v-row',{staticClass:\"pa-2 mt-8\",staticStyle:{\"position\":\"relative\"},attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"end\"}},[_c('toolbar-title',{staticStyle:{\"max-width\":\"80%\",\"margin\":\"0 auto\"},attrs:{\"icon\":_vm.$options.filters.routeIcon(_vm.selectedRoute),\"subtitle\":_vm.selectedRoute.remote_link,\"textClass\":_vm.$vuetify.breakpoint.lgAndUp ? 'headline font-weight-medium' : 'font-weight-medium',\"title\":_vm.localLink}}),(_vm.selectedRoute.type === 'web')?_c('tri-panel-button',{attrs:{\"color\":\"primary\",\"icon\":\"bi-trash-fill\",\"tooltip\":\"Delete Route\"},on:{\"click\":function($event){return _vm.routeDeleteConfirm(_vm.selectedRoute)}}}):_vm._e()],1),_c('v-row',{staticClass:\"pa-3 flex-column\",staticStyle:{\"margin\":\"0 auto\"},style:(_vm.containerStyle),attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{class:_vm.$vuetify.breakpoint.smOnly ? 'flex-column justify-center align-center' : 'flex-row',attrs:{\"no-gutters\":\"\"}},[_vm._l((_vm.counts),function(item,i){return [_c('v-col',{key:i,class:_vm.$vuetify.breakpoint.smOnly ? 'my-2' : '',attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"flex-column link-box\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"px-4 d-flex flex-column justify-center\",attrs:{\"cols\":\"12\"}},[_c('div',{staticStyle:{\"font-size\":\"60px\",\"line-height\":\"93px\"}},[_vm._v(\" \"+_vm._s(item.count)+\" \")]),_c('div',{staticStyle:{\"font-size\":\"20px\",\"line-height\":\"31px\",\"color\":\"#717171\"}},[_vm._v(\" \"+_vm._s(item.subtitle)+\" \")])])],1)],1)]})],2)],1),_c('v-col',{staticClass:\"open-box\",style:(_vm.$vuetify.breakpoint.smAndDown ? 'max-width:250px !important; min-width:250px !important;' : ''),attrs:{\"cols\":\"12\"}},[_c('v-row',{staticClass:\"justify-center align-flex-end\",staticStyle:{\"height\":\"255px\"},attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticStyle:{\"height\":\"240px\"},attrs:{\"cols\":\"4\"}},[_c('v-row',{staticClass:\"flex-column align-flex-end justify-flex-end\",staticStyle:{\"height\":\"240px\"},attrs:{\"no-gutters\":\"\"}},[_c('div',{staticClass:\"text-center\",staticStyle:{\"font-size\":\"24px\",\"line-height\":\"37px\",\"color\":\"#4D4D4D\"},style:(_vm.$vuetify.breakpoint.smAndDown ? 'width:25px;' : 'width:55px;')},[_vm._v(\" \"+_vm._s(_vm.sentCount)+\" \")]),_c('div',{staticClass:\"link-bar\",staticStyle:{\"background\":\"#a08ed0\"},style:((\"height:\" + _vm.sentHeight + \"; width:\" + (_vm.$vuetify.breakpoint.smAndDown ? '25px' : '55px') + \";\"))})])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-row',{staticClass:\"flex-column align-center justify-center\",staticStyle:{\"height\":\"240px\",\"font-size\":\"14px\",\"line-height\":\"22px\",\"color\":\"#4D4D4D\"},attrs:{\"no-gutters\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.openRate)+\"% open rate \")])],1),_c('v-col',{staticStyle:{\"height\":\"240px\"},attrs:{\"cols\":\"4\"}},[_c('v-row',{staticClass:\"flex-column align-flex-start justify-flex-end\",staticStyle:{\"height\":\"240px\"},attrs:{\"no-gutters\":\"\"}},[_c('div',{staticClass:\"text-center\",staticStyle:{\"font-size\":\"24px\",\"line-height\":\"37px\",\"color\":\"#4D4D4D\"},style:(_vm.$vuetify.breakpoint.smAndDown ? 'width:25px;' : 'width:55px;')},[_vm._v(\" \"+_vm._s(_vm.openCount)+\" \")]),_c('div',{staticClass:\"link-bar\",staticStyle:{\"background\":\"#949494\"},style:((\"height:\" + _vm.openHeight + \"; width:\" + (_vm.$vuetify.breakpoint.smAndDown ? '25px' : '55px') + \";\"))})])],1)],1)],1),_c('v-col',{staticClass:\"mt-2\",attrs:{\"cols\":\"12\"}},[_c('v-row',{staticClass:\"justify-center mx-auto my-0\",style:(_vm.$vuetify.breakpoint.smAndDown ? 'max-width:250px !important; min-width:250px !important;' : 'max-width:330px !important; min-width:330px !important;'),attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex justify-flex-end\",staticStyle:{\"font-size\":\"14px\",\"line-height\":\"22px\"},attrs:{\"cols\":\"4\"}},[_vm._v(\" links sent \")]),_c('v-spacer'),_c('v-col',{staticClass:\"d-flex justify-flex-start\",staticStyle:{\"font-size\":\"14px\",\"line-height\":\"22px\"},attrs:{\"cols\":\"4\"}},[_vm._v(\" openings \")])],1)],1)],1)]},proxy:true}:null],null,true)},[_c('i-list',{ref:\"routesList\",attrs:{\"id\":\"routesViewRoutesList\",\"selectable\":\"\",\"items\":_vm.routes,\"selected\":_vm.selectedRoute,\"placeholder\":_vm.routesListPlaceholder,\"tile\":_vm.routesTile()}})],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\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 { mapGetters } from 'vuex'\nimport Button from '@/types/components/Button.interface'\nimport IListAction, { IListActionType } from '@/types/components/IListAction.interface'\nimport IListIcon, { IListIconType } from '@/types/components/IListIcon.interface'\nimport IListTile from '@/types/components/IListTile.interface'\nimport ScrollPosition from '@/types/components/ScrollPosition.interface'\nimport ShortLink from '@/types/ShortLink.interface'\nexport default Vue.extend({\n data() {\n return {\n routesListPlaceholder: {\n content: 'No Short Links Found',\n img: 'noMessages'\n },\n toolbar: {\n title: 'Link Analytics',\n left: [\n {\n title: 'Back',\n icon: 'mdi-chevron-left',\n back: '/plugins',\n tooltip: 'Back',\n permission: 0\n }\n ],\n right: []\n }\n }\n },\n computed: {\n ...mapGetters({\n routesParams: 'routesViewRoutesParams',\n lastPage: 'routesViewRoutesLastPage',\n scrollPositionLeft: 'scrollPositionLeft',\n paginating: 'routesViewPaginating',\n routes: 'routesViewRoutes'\n }),\n containerStyle() {\n let width = '55%'\n\n // If we are on large screens, use 80%\n if (this.$vuetify.breakpoint.lgOnly) width = '80%'\n\n // If we are on small or smaller, use 100%\n if (this.$vuetify.breakpoint.mdAndDown) width = '100%'\n\n // Return our style\n return {\n maxWidth: width\n }\n },\n counts(): object[] {\n return [\n {\n count: this.sentCount,\n subtitle: 'links sent'\n },\n {\n count: this.openCount,\n subtitle: 'links opened'\n }\n ]\n },\n localLink(): string {\n if (!this.selectedRoute) return null\n\n // Else, remove https:// from our link\n const str = this.selectedRoute.local_link\n\n return str.replace('https://', '')\n },\n openCount(): number {\n if (!this.selectedRoute) return null\n\n // Else, grab our open array\n const open = this.selectedRoute.clicked || []\n\n // Return the count\n return open.length\n },\n openHeight(): string {\n // If our open count is 0, just return 0\n if (!this.openCount) return '0'\n\n // If our sent count is 0 but open count isn't, return 200\n if (!this.sentCount && this.openCount > 0) return '200px'\n\n // If our open count is greater than our sent count, just return 200\n if (this.openCount > this.sentCount) return '200px'\n\n // Find percentage between our two heights\n const percent = this.openCount / this.sentCount\n\n // Grab this percent of 200 since total height it can be is 200px\n const total = Math.floor(200 * percent)\n\n // Return our percent diff\n return `${total}px`\n },\n openRate(): number {\n // Else, if open count is 0 return 0\n if (!this.openCount) return 0\n\n // If sent count is 0 but open count isn't return 100\n if (!this.sentCount && this.openCount > 0) return 100\n\n // If open count is greater than sent count, return 100\n if (this.openCount > this.sentCount) return 100\n\n // Else, return our math function\n return Math.floor((this.openCount / this.sentCount) * 100)\n },\n sentCount(): number {\n if (!this.selectedRoute) return null\n\n // Else, grab our sent array\n const sent = this.selectedRoute.sent || []\n\n // Return the count\n return sent.length\n },\n sentHeight(): string {\n // If our sent count is 0, just return 0\n if (!this.sentCount) return '0'\n\n // If our open count is 0 but sent count isn't, return 200\n if (!this.openCount && this.sentCount > 0) return '200px'\n\n // If our sent count is greater than our open count, just return 200\n if (this.sentCount > this.openCount) return '200px'\n\n // Find percentage between our two heights\n const percent = this.sentCount / this.openCount\n\n // Grab this percent of 200 since total height it can be is 200px\n const total = Math.floor(200 * percent)\n\n // Return our percent diff\n return `${total}px`\n },\n selectedRoute: {\n get(): ShortLink {\n return this.$store.getters.routesViewSelectedRoute\n },\n set(val: ShortLink): void {\n this.$store.commit('routesViewSelectedRouteSet', val)\n }\n }\n },\n methods: {\n copyRoute(route: ShortLink): void {\n // Grab the element containing the short link\n const elem = document.getElementById(`item-${route.id}-line-3`)\n\n // Create a range to copy our element text (akin to selecting)\n const range = document.createRange()\n\n // Set our range on target div\n range.selectNode(elem)\n\n // Clear any currently selected text\n window.getSelection().removeAllRanges()\n\n // Select our divs text\n window.getSelection().addRange(range)\n\n // Copy to our clipboard\n document.execCommand('copy')\n\n // Deselect our divs text\n window.getSelection().removeAllRanges()\n\n // Notify our user with toast\n this.$store.commit('appNotificationBarSet', {\n message: 'Short Link Copied to Clipboard!',\n type: 'success'\n })\n },\n onRouteSelected(route: ShortLink): void {\n // Set the step to 2 (for mobile layout only)\n this.$refs.routesPanel.step = 2\n\n // Check if the route is different form the currently selected route\n const isNew = !this.selectedRoute || this.selectedRoute.id != route.id\n\n // If the channel is NOT different fromt he current selectetd person, do nothing\n if (!isNew) return\n\n // Clone the current query params (we do this to avoid the Vue duplicate naviagtion error)\n const query = Object.assign({}, this.$route.query)\n\n // Update the route query param (there is watcher on this value that handles fetching the person)\n query.id = route.id\n\n // Update the current url\n this.$router.push({ query })\n },\n // Paginate the next page of the current filtered list\n paginateCurrentList(): void {\n // Get current pagination params\n const params = this.routesParams\n\n // Determine the next page\n const nextPage = params.page + 1\n\n // Determine is the page exists, or we're already at the end of pagination\n const shouldPaginate = nextPage <= this.lastPage\n\n // If we should NOT paginate, do nothing\n if (!shouldPaginate) return\n\n // Else, update pagination params\n params.page = nextPage\n this.$store.commit('routesViewRoutesParamsSet', params)\n\n // Paginate the next page\n this.$store.dispatch('routesViewRoutesPaginate')\n },\n popRouteForm(): void {\n this.$store.dispatch('dialogOpen', {\n type: 'APP',\n component: 'short-link-popup',\n width: '670px',\n radius: '16px',\n closeable: true\n })\n },\n routeActions(route: ShortLink): IListAction {\n // Create our menu of buttons\n const menu: Button[] = [\n {\n icon: 'mdi-content-copy',\n text: 'Copy Route',\n color: 'primary',\n callback: () => this.copyRoute(route)\n },\n {\n icon: 'bi-trash-fill',\n text: 'Delete Route',\n color: 'primary',\n hidden: route.type !== 'web',\n callback: () => this.routeDeleteConfirm(route)\n }\n ]\n\n // Create our IListAction\n const action: IListAction = {\n type: IListActionType.menu,\n menu: menu\n }\n\n // Return our action\n return action\n },\n async routeDelete(route: ShortLink): Promise {\n // Send our request\n const response = await this.$store.dispatch('routesDelete', route.id)\n\n // If no response, do nothing\n if (!response) return\n\n // Else, pop notification bar\n this.$store.commit('appNotificationBarSet', {\n message: 'Route Deleted.',\n type: 'success'\n })\n },\n routeDeleteConfirm(route: ShortLink): void {\n // Ask user if they are sure they want to delete route\n this.$store.dispatch('dialogOpen', {\n type: 'CONFIRM',\n title: 'Delete Short Link?',\n text: 'Are you sure you want to delete this short link?',\n icon: 'mdi-alert',\n color: 'red darken-2',\n callback: (result: boolean): void => {\n if (result) this.routeDelete(route)\n }\n })\n },\n routeIcon(route: ShortLink): IListIcon {\n // Get our icon depending on what type of route this is\n const icon = this.$options.filters.routeIcon(route)\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 icon\n return listIcon\n },\n routeIconText(route: ShortLink): string {\n // Just use a pseudo switch\n return (\n {\n form: 'Forms',\n invoice: 'Invoice',\n web: 'Web'\n }[route.type] || 'Media'\n )\n },\n routesTile(): IListTile {\n return {\n actionContent: (route: ShortLink) => this.routeActions(route),\n leftIcon: (route: ShortLink) => this.routeIcon(route),\n leftFooter: (route: ShortLink) => this.routeIconText(route),\n line1: (route: ShortLink): string => route.token,\n line2: (route: ShortLink): string =>\n route.clicked ? `${route.clicked.length} Clicks` : '0 Clicks',\n line3: (route: ShortLink): string => route.local_link,\n callback: (route: ShortLink) => this.onRouteSelected(route)\n }\n }\n },\n watch: {\n $route(to, from): void {\n // If the 'id' query param does NOT exist, unset our data\n if (!to.query.id) return (this.selectedRoute = null)\n\n // Else, grab the id\n const id = to.query.id\n\n // Check if we need to load this route\n const needsLoad = !this.selectedRoute || id != this.selectedRoute.id\n\n // If we do NOT need to load, do nothing\n if (!needsLoad) return\n\n // Else, get our route\n this.$store.dispatch('routesViewSelectedRouteGet', id)\n },\n scrollPositionLeft(position: ScrollPosition): void {\n // If we are NOT paginating AND scroll is at bottom, paginate next page\n if (!this.paginating && position.bottom) this.paginateCurrentList()\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!./ShortLinks.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!./ShortLinks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShortLinks.vue?vue&type=template&id=113dc776&scoped=true&\"\nimport script from \"./ShortLinks.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShortLinks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShortLinks.vue?vue&type=style&index=0&id=113dc776&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 \"113dc776\",\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';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow,VSpacer})\n"],"sourceRoot":""}