1 line
6.1 KiB
Plaintext
1 line
6.1 KiB
Plaintext
{"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 \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"mdi-account-multiple\\\" viewBox=\\\"0 0 24 24\\\"><path d=\\\"M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z\\\" /></svg>\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcModal class=\"confirm-modal\" @close=\"cancel\">\n\t\t<div class=\"confirm-modal\">\n\t\t\t<h2>{{ title }}</h2>\n\t\t\t<slot />\n\t\t\t<div class=\"confirm-modal__buttons\">\n\t\t\t\t<NcButton variant=\"tertiary\" :disabled=\"disabled\" @click=\"cancel\">\n\t\t\t\t\t{{ t('contacts', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton\n\t\t\t\t\tv-if=\"resolve\"\n\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t@click=\"confirm\">\n\t\t\t\t\t{{ confirmText }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { NcButton, NcModal } from '@nextcloud/vue'\n\nexport default {\n\tname: 'ConfirmationDialog',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcModal,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tresolve: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\n\t\treject: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\n\t\tconfirmText: {\n\t\t\ttype: String,\n\t\t\tdefault: t('contacts', 'Confirm'),\n\t\t},\n\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\tmethods: {\n\t\tconfirm() {\n\t\t\tthis.resolve()\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.reject()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.confirm-modal {\n\tpadding: 20px;\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t}\n}\n</style>\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]} |