{"version":3,"file":"contacts-files-action.mjs","sources":["../node_modules/@mdi/svg/svg/account-multiple.svg?raw","../src/components/ConfirmationDialog.vue","../src/files-action.js"],"sourcesContent":["export default \"\"","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport ContactSvg from '@mdi/svg/svg/account-multiple.svg?raw'\nimport { DefaultType, FileAction, Permission, registerFileAction } from '@nextcloud/files'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { createApp } from 'vue'\nimport ConfirmationDialog from './components/ConfirmationDialog.vue'\nimport LegacyGlobalMixin from './mixins/LegacyGlobalMixin.js'\n\nimport 'vite/modulepreload-polyfill'\n\nconst mime = 'text/vcard'\nconst name = 'contacts-import'\n\nregisterFileAction(new FileAction({\n\tid: name,\n\tdisplayName: () => t('contacts', 'Import'),\n\tdefault: DefaultType.DEFAULT,\n\tenabled: (nodes) => {\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes[0]\n\t\treturn node.mime === mime && (node.permissions & Permission.READ)\n\t},\n\ticonSvgInline: () => ContactSvg,\n\tasync exec(file) {\n\t\tlet app\n\t\ttry {\n\t\t\t// Open the confirmation dialog\n\t\t\tconst containerId = 'confirmation-' + Math.random().toString(16).slice(2)\n\t\t\tconst container = document.createElement('div')\n\t\t\tcontainer.id = containerId\n\t\t\tdocument.body.appendChild(container)\n\t\t\tawait new Promise((resolve, reject) => {\n\t\t\t\tapp = createApp(ConfirmationDialog, {\n\t\t\t\t\ttitle: t('contacts', 'Are you sure you want to import this contact file?'),\n\t\t\t\t\tresolve,\n\t\t\t\t\treject,\n\t\t\t\t})\n\t\t\t\tapp.mixin(LegacyGlobalMixin)\n\t\t\t\tapp.mount(`#${containerId}`)\n\t\t\t})\n\n\t\t\t// Redirect to the import page if the user confirmed\n\t\t\twindow.location = generateUrl(`/apps/contacts/import?file=${file.path}`)\n\t\t} catch (e) {\n\t\t\t// Do nothing if the user cancels\n\t\t} finally {\n\t\t\t// Destroy confirmation modal (div element is removed from the DOM by vue)\n\t\t\tapp?.unmount()\n\t\t}\n\n\t\t// No toast should be shown -> indicate \"unknown\" action state\n\t\treturn null\n\t},\n}))\n"],"names":["ContactSvg","_sfc_main","NcButton","NcModal","t","_hoisted_1","_hoisted_2","_createBlock","_component_NcModal","$options","_createElementVNode","$props","_renderSlot","_ctx","_createVNode","_component_NcButton","mime","name","registerFileAction","FileAction","DefaultType","nodes","node","Permission","file","app","containerId","container","resolve","reject","createApp","ConfirmationDialog","LegacyGlobalMixin","generateUrl"],"mappings":"4RAAA,MAAAA,EAAe,6VC6BVC,EAAU,CACd,KAAM,qBACN,WAAY,CACX,SAAAC,EACA,QAAAC,GAGD,MAAO,CACN,MAAO,CACN,KAAM,OACN,SAAU,IAGX,QAAS,CACR,KAAM,SACN,SAAU,IAGX,OAAQ,CACP,KAAM,SACN,SAAU,IAGX,YAAa,CACZ,KAAM,OACN,QAASC,EAAE,WAAY,SAAS,GAGjC,SAAU,CACT,KAAM,QACN,QAAS,SAIX,QAAS,CACR,SAAU,CACT,KAAK,QAAO,CACb,EAEA,QAAS,CACR,KAAK,OAAM,CACZ,EAEF,EAlEOC,EAAA,CAAA,MAAM,eAAe,EAGpBC,EAAA,CAAA,MAAM,wBAAwB,0EAJrCC,EAiBUC,EAAA,CAjBD,MAAM,gBAAiB,QAAOC,EAAA,mBACtC,IAeM,CAfNC,EAeM,MAfNL,EAeM,CAdLK,EAAoB,YAAbC,EAAA,KAAK,EAAA,CAAA,EACZC,EAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,EACRH,EAWM,MAXNJ,EAWM,CAVLQ,EAEWC,EAAA,CAFD,QAAQ,WAAY,SAAUJ,EAAA,SAAW,QAAOF,EAAA,mBACzD,IAA6B,KAA1BI,EAAA,EAAC,WAAA,QAAA,CAAA,EAAA,CAAA,mCAGEF,EAAA,aADPJ,EAMWQ,EAAA,OAJT,SAAUJ,EAAA,SACX,QAAQ,UACP,QAAOF,EAAA,oBACR,IAAiB,KAAdE,EAAA,WAAW,EAAA,CAAA,mICHbK,EAAO,aACPC,EAAO,kBAEbC,EAAmB,IAAIC,EAAW,CACjC,GAAIF,EACJ,YAAa,IAAMb,EAAE,WAAY,QAAQ,EACzC,QAASgB,EAAY,QACrB,QAAUC,GAAU,CACnB,GAAIA,EAAM,SAAW,EACpB,MAAO,GAER,MAAMC,EAAOD,EAAM,CAAC,EACpB,OAAOC,EAAK,OAASN,GAASM,EAAK,YAAcC,EAAW,IAC7D,EACA,cAAe,IAAMvB,EACrB,MAAM,KAAKwB,EAAM,CAChB,IAAIC,EACJ,GAAI,CAEH,MAAMC,EAAc,gBAAkB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAClEC,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,GAAKD,EACf,SAAS,KAAK,YAAYC,CAAS,EACnC,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCJ,EAAMK,EAAUC,EAAoB,CACnC,MAAO3B,EAAE,WAAY,oDAAoD,EACzE,QAAAwB,EACA,OAAAC,CACL,CAAK,EACDJ,EAAI,MAAMO,CAAiB,EAC3BP,EAAI,MAAM,IAAIC,CAAW,EAAE,CAC5B,CAAC,EAGD,OAAO,SAAWO,EAAY,8BAA8BT,EAAK,IAAI,EAAE,CACxE,MAAY,CAEZ,QAAA,CAECC,GAAK,QAAO,CACb,CAGA,OAAO,IACR,CACD,CAAC,CAAC","x_google_ignoreList":[0]}