{"version":3,"file":"use_calling_codes_dropdown-22b81d5a.js","sources":["../../../app/javascript/src/admin/js/components/promoter/media_accounts_selector.vue","../../../app/javascript/src/shared/vue_mixins/express_map_select_helpers_mixin.js","../../../app/javascript/src/shared/composables/use_calling_codes_dropdown.js"],"sourcesContent":["\n.vc-admin-promoter-media-accounts-selector\n b-field(\n label=\"社群網站帳號\"\n :type=\"errors.errorClassAt('media_accounts')\"\n :message=\"errors.get('media_accounts')\"\n custom-class=\"required title\"\n )\n\n .group(v-for=\"account in availableMediaAccounts\")\n .group-title\n b-field(:label=\"'媒體平台'\")\n b-select(\n v-model=\"account.media_service_id\"\n data-behavior=\"promoter-media_service_id\"\n expanded\n )\n option(\n v-for=\"mediaService in availableMediaServicesWithSelf(account)\"\n :value=\"mediaService.id\"\n )\n | {{ mediaService.name }}\n\n .group-value\n b-field(\n :label=\"attributeLocaleText('promoter/media_account', 'username')\"\n )\n b-input(\n type=\"text\"\n :placeholder=\"'輸入帳號'\"\n v-model=\"account.username\"\n )\n\n .group-value\n b-field(\n :label=\"attributeLocaleText('promoter/media_account', 'fans_count')\"\n )\n b-input(\n type=\"text\"\n :placeholder=\"'輸入粉絲數'\"\n v-model=\"account.fans_count\"\n )\n\n //- .group-value.link\n //- b-field(\n //- :label=\"attributeLocaleText('promoter/media_account', 'link_url')\"\n //- )\n //- a.button(\n //- v-if=\"account.link_url\"\n //- :href=\"account.link_url\"\n //- target=\"_blank\"\n //- )\n //- span 連結\n\n .group-option\n a(@click=\"deleteMediaAccount(account)\")\n .icon\n i.fa.fa-close\n .group-extra\n b-button(\n :label=\"'+ 新增社群網路'\"\n @click=\"addMediaAccount\"\n )\n\n\n","const MOBILE_IMAGE_BREAK_POINT = 769\n\nexport default {\n computed: {\n gatewayProvider() {\n throw new Error('must override `gatewayProvider in component`')\n },\n\n shippingType() {\n throw new Error('must override `shippingType in component`')\n },\n\n expressMapParams() {\n return this.$store.getters['orderShipments/expressMapParams']\n },\n\n expressMapApiBase() {\n return this.$store.getters['orderShipments/expressMapApiBase']\n },\n\n expressMapUrl() {\n let url = ''\n for (let key in this.expressMapParams) {\n url += `${key}=${this.expressMapParams[key]}&`\n }\n\n return this.expressMapApiBase + '?' + url\n },\n\n isMobile() {\n // workaround for safari can't get window width from vuex at first time loading\n return (\n (this.$store.getters['windowWidth'] || window.innerWidth) <\n MOBILE_IMAGE_BREAK_POINT\n )\n },\n\n isWebview() {\n // https://developers.whatismybrowser.com/useragents/explore/software_name/facebook-app/\n // Facebook App on iOS 15.1\n // 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/19B74 [FBAN/FBIOS;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/15.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBIA/FBIOS]'\n let userAgent = navigator.userAgent\n let rules = [\n 'WebView',\n '(iPhone|iPod|iPad)(?!.*Safari/)',\n 'Android.*(wv|.0.0.0)'\n ]\n let regex = new RegExp(`(${rules.join('|')})`, 'ig')\n return Boolean(userAgent.match(regex))\n },\n\n usingJdWindowOpenMap() {\n return this.gatewayProvider === 'jd' && !this.isWebview\n }\n },\n\n methods: {\n convertMapInfo(data) {\n return {\n cvs_address: data['CVSAddress'] || data['StoreAdd'],\n cvs_store_id: data['CVSStoreID'] || data['StoreNumber'],\n cvs_store_name: data['CVSStoreName'] || data['StoreName'],\n cvs_telephone: data['CVSTelephone'],\n logistics_sub_type: data['LogisticsSubType'],\n gateway: data['gateway'],\n extra_data: data['ExtraData']\n }\n },\n\n openExpressMap(expressMapUrl, callbacks = []) {\n if (this.usingJdWindowOpenMap) {\n this.openJdMap(expressMapUrl, callbacks)\n } else {\n Turbolinks.visit(expressMapUrl)\n }\n },\n\n openJdMap(expressMapUrl, callbacks = []) {\n let iWidth = 500\n let iHeight = 450\n let iTop = (window.screen.availHeight - 30 - iHeight) / 2\n let iLeft = (window.screen.availWidth - 10 - iWidth) / 2\n let windowOpenConfig =\n `height=${iHeight}, innerHeight=${iHeight}, width=${iWidth}, innerWidth=${iWidth}, top=${iTop}, left=${iLeft}, ` +\n 'status=no, location=no, status=no,menubar=no, toolbar=no, resizable=no, scrollbars=yes'\n\n let processJdMapData = (event) => {\n if (\n !event.origin.match(\n /https:\\/\\/(familytest|family).orders.ilohas.info/\n )\n )\n return\n\n let data = JSON.parse(event.data)\n let extraInfo = {\n ExtraData: this.shippingType,\n gateway: this.gatewayProvider\n }\n\n this.syncStoreInfoToFrom({ ...data, ...extraInfo })\n callbacks.forEach((callback) => callback())\n\n window.removeEventListener('message', processJdMapData, false)\n }\n\n window.open(expressMapUrl, 'MapSelect', windowOpenConfig)\n\n window.addEventListener('message', processJdMapData, false)\n },\n\n clearQueryString() {\n let cleanUri = window.location.origin + window.location.pathname\n\n window.history.replaceState({}, document.title, cleanUri)\n }\n }\n}\n","import CountryCallingCodes from '@services/country_calling_codes.json'\nimport { computed, ref } from 'vue'\n\n/**\n * return searchCallingCodes, countryCallingCodes\n * @returns {{searchCallingCodes: string, countryCallingCodes: (function(): ComputedRef)}}\n */\nexport const useCallingCodes = () => {\n const searchCallingCodes = ref('')\n\n const countryCallingCodes = computed(() => {\n if (searchCallingCodes.value.length > 0) {\n return CountryCallingCodes.filter(\n (code) =>\n code.name\n .toLowerCase()\n .indexOf(searchCallingCodes.value.toLowerCase()) >= 0 ||\n code.dial_code\n .toLowerCase()\n .indexOf(searchCallingCodes.value.toLowerCase()) >= 0\n )\n } else {\n return CountryCallingCodes\n }\n })\n\n return {\n searchCallingCodes,\n countryCallingCodes\n }\n}\n\nexport default useCallingCodes\n"],"names":["_sfc_main","defineComponent","props","emit","store","useStore","mediaServices","computed","availableMediaServices","service","account","onMounted","data","reactive","acc","MOBILE_IMAGE_BREAK_POINT","expressMapSelectHelpersMixin","url","key","userAgent","rules","regex","expressMapUrl","callbacks","Turbolinks","iWidth","iHeight","iTop","iLeft","windowOpenConfig","processJdMapData","event","extraInfo","callback","cleanUri","useCallingCodes","searchCallingCodes","ref","countryCallingCodes","CountryCallingCodes","code"],"mappings":"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"}