{"version":3,"file":"twofactor_backupcodes-settings-personal.mjs","sources":["../build/frontend/apps/twofactor_backupcodes/src/service/logger.ts","../build/frontend/apps/twofactor_backupcodes/src/service/PrintService.ts","../build/frontend/apps/twofactor_backupcodes/src/service/BackupCodesService.ts","../build/frontend/apps/twofactor_backupcodes/src/store/index.ts","../build/frontend/apps/twofactor_backupcodes/src/views/PersonalSettings.vue","../build/frontend/apps/twofactor_backupcodes/src/settings-personal.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.detectLogLevel()\n\t.setApp('twofactor_backupcodes')\n\t.build()\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Open a new tab and print the given backup codes\n *\n * @param data - The backup codes to print\n */\nexport function print(data: string[]): void {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst name = (getCapabilities() as any).theming.name || 'Nextcloud'\n\tconst newTab = window.open('', t('twofactor_backupcodes', '{name} backup codes', { name }))\n\tif (!newTab) {\n\t\tshowError(t('twofactor_backupcodes', 'Unable to open a new tab for printing'))\n\t\tthrow new Error('Unable to open a new tab for printing')\n\t}\n\n\tconst heading = newTab.document.createElement('h1')\n\theading.textContent = t('twofactor_backupcodes', '{name} backup codes', { name })\n\tconst pre = newTab.document.createElement('pre')\n\tfor (const code of data) {\n\t\tconst codeLine = newTab.document.createTextNode(code)\n\t\tpre.appendChild(codeLine)\n\t\tpre.appendChild(newTab.document.createElement('br'))\n\t}\n\n\tnewTab.document.body.innerHTML = ''\n\tnewTab.document.body.appendChild(heading)\n\tnewTab.document.body.appendChild(pre)\n\n\tnewTab.print()\n\tnewTab.close()\n}\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\nexport interface ITwoFactorBackupCodesState {\n\tenabled: boolean\n\ttotal: number\n\tused: number\n}\n\nexport interface IApiResponse {\n\tcodes: string[]\n\tstate: ITwoFactorBackupCodesState\n}\n\n/**\n * Generate new backup codes\n */\nexport async function generateCodes(): Promise {\n\tconst url = generateUrl('/apps/twofactor_backupcodes/settings/create')\n\n\tconst { data } = await axios.post(url)\n\treturn data\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { ITwoFactorBackupCodesState } from '../service/BackupCodesService.ts'\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { defineStore } from 'pinia'\nimport { ref } from 'vue'\nimport { generateCodes } from '../service/BackupCodesService.ts'\n\nconst initialState = loadState('twofactor_backupcodes', 'state')\n\nexport const useStore = defineStore('twofactor_backupcodes', () => {\n\tconst enabled = ref(initialState.enabled)\n\tconst total = ref(initialState.total)\n\tconst used = ref(initialState.used)\n\tconst codes = ref([])\n\n\t/**\n\t * Generate new backup codes and update the store state\n\t */\n\tasync function generate(): Promise {\n\t\tenabled.value = false\n\n\t\tconst { codes: newCodes, state } = await generateCodes()\n\t\tenabled.value = state.enabled\n\t\ttotal.value = state.total\n\t\tused.value = state.used\n\t\tcodes.value = newCodes\n\t}\n\n\treturn {\n\t\tenabled,\n\t\ttotal,\n\t\tused,\n\t\tcodes,\n\n\t\tgenerate,\n\t}\n})\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport PersonalSettings from './views/PersonalSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(PersonalSettings)\napp.use(pinia)\napp.mount('#twofactor-backupcodes-settings')\n"],"names":["logger","getLoggerBuilder","print","data","name","getCapabilities","newTab","t","showError","heading","pre","code","codeLine","generateCodes","url","generateUrl","axios","initialState","loadState","useStore","defineStore","enabled","ref","total","used","codes","generate","newCodes","state","instanceName","store","generatingCodes","hasCodes","computed","downloadFilename","downloadUrl","prev","generateBackupCodes","confirmPassword","error","printCodes","_createElementBlock","_normalizeClass","$style","_unref","_Fragment","_createElementVNode","_createTextVNode","_toDisplayString","_openBlock","_renderList","_createVNode","NcButton","_createBlock","NcLoadingIcon","pinia","createPinia","app","createApp","PersonalSettings"],"mappings":"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"}