{"version":3,"file":"js/app.318fafdb.js","mappings":"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","sources":["webpack://front/./src/translations/en.json","webpack://front/./src/translations/fr.json","webpack://front/./src/App.vue?c7d7","webpack://front/./src/stores/authentication.store.ts","webpack://front/./src/components/general/NavigationComponent.vue?1ac5","webpack://front/./src/services/auth-gonexa.service.ts","webpack://front/./src/components/general/NavigationComponent.vue?9e0d","webpack://front/./src/components/general/NavigationComponent.vue","webpack://front/./src/components/general/LangChoice.vue?0aae","webpack://front/./src/components/general/LangChoice.vue?2e30","webpack://front/./src/components/general/LangChoice.vue","webpack://front/./src/App.vue?847a","webpack://front/./src/App.vue","webpack://front/./src/components/authentication/EmailSent.vue?4d36","webpack://front/./src/components/authentication/EmailSent.vue?f683","webpack://front/./src/components/authentication/EmailSent.vue","webpack://front/./src/components/authentication/RegisterForm.vue?a13e","webpack://front/./src/components/authentication/RegisterForm.vue?a971","webpack://front/./src/components/authentication/RegisterForm.vue","webpack://front/./src/components/authentication/LoginForm.vue?4b4f","webpack://front/./src/components/authentication/LoginForm.vue?20c9","webpack://front/./src/components/authentication/LoginForm.vue","webpack://front/./src/components/authentication/UpdatePasswordForm.vue?df9a","webpack://front/./src/components/authentication/UpdatePasswordForm.vue?39f9","webpack://front/./src/components/authentication/UpdatePasswordForm.vue","webpack://front/./src/components/authentication/LostPasswordForm.vue?c53e","webpack://front/./src/components/authentication/LostPasswordForm.vue?3b6f","webpack://front/./src/components/authentication/LostPasswordForm.vue","webpack://front/./src/components/authentication/LoginAs.vue?d375","webpack://front/./src/components/authentication/LoginAs.vue?cc0f","webpack://front/./src/components/authentication/LoginAs.vue","webpack://front/./src/components/authentication/ConfirmEmail.vue?5e19","webpack://front/./src/stores/salesforce.store.ts","webpack://front/./src/services/user.service.ts","webpack://front/./src/components/authentication/ConfirmEmail.vue?3b7a","webpack://front/./src/components/authentication/ConfirmEmail.vue","webpack://front/./src/components/HomeView.vue?72d3","webpack://front/./src/components/user/UserInfosCard.vue?2510","webpack://front/./src/services/callout-app-api.service.ts","webpack://front/./src/stores/environment.store.ts","webpack://front/./src/services/environments.service.ts","webpack://front/./src/services/org-informations.service.ts","webpack://front/./src/components/user/UserInfosCard.vue?f1e8","webpack://front/./src/components/user/UserInfosCard.vue","webpack://front/./src/components/user/ContractInfosCard.vue?6f5e","webpack://front/./src/services/org-contract.service.ts","webpack://front/./src/components/user/ContractInfosCard.vue?7520","webpack://front/./src/components/user/ContractInfosCard.vue","webpack://front/./src/components/general/GonexaUniversityComponent.vue?0d25","webpack://front/./src/components/general/GonexaUniversityComponent.vue?b4d2","webpack://front/./src/components/general/GonexaUniversityComponent.vue","webpack://front/./src/components/consumption/ConsumptionCardsGroup.vue?ac6c","webpack://front/./src/components/consumption/ConsumptionCardsGroup.vue?6d63","webpack://front/./src/components/consumption/ConsumptionCardsGroup.vue","webpack://front/./src/components/general/ConfigurationModal.vue?b058","webpack://front/./src/services/auth-salesforce.service.ts","webpack://front/./src/components/general/ConfigurationModal.vue?9757","webpack://front/./src/components/general/ConfigurationModal.vue","webpack://front/./src/components/HomeView.vue?fe8b","webpack://front/./src/components/HomeView.vue","webpack://front/./src/components/billing/BillingView.vue?228d","webpack://front/./src/components/general/TicketComponent.vue?5b0b","webpack://front/./src/components/general/TicketComponent.vue?80d2","webpack://front/./src/components/general/TicketComponent.vue","webpack://front/./src/components/billing/BillingCardsGroup.vue?bed3","webpack://front/./src/components/billing/BillingCardsGroup.vue?b7aa","webpack://front/./src/components/billing/BillingCardsGroup.vue","webpack://front/./src/components/billing/BillingView.vue?7059","webpack://front/./src/components/billing/BillingView.vue","webpack://front/./src/components/user/UserView.vue?f821","webpack://front/./src/components/user/UserDeleteModal.vue?21d5","webpack://front/./src/components/user/UserDeleteModal.vue?e09e","webpack://front/./src/components/user/UserDeleteModal.vue","webpack://front/./src/components/general/PickList.vue?b251","webpack://front/./src/components/general/PickList.vue","webpack://front/./src/components/user/UserCreateModal.vue?bee7","webpack://front/./src/components/user/UserCreateModal.vue","webpack://front/./src/components/user/UserEditModal.vue?0cfc","webpack://front/./src/components/user/UserEditModal.vue","webpack://front/./src/components/user/UserView.vue?9544","webpack://front/./src/components/user/UserView.vue","webpack://front/./src/components/workspace/WorkspaceView.vue?929a","webpack://front/./src/components/workspace/WorkspaceModal.vue?c613","webpack://front/./src/components/workspace/WorkspaceModal.vue?47f4","webpack://front/./src/components/workspace/WorkspaceModal.vue","webpack://front/./src/components/general/WarningConnection.vue?d378","webpack://front/./src/components/general/WarningConnection.vue?0b0c","webpack://front/./src/components/general/WarningConnection.vue","webpack://front/./src/components/workspace/WorkspaceView.vue?cdd5","webpack://front/./src/components/workspace/WorkspaceView.vue","webpack://front/./src/components/consumption/ConsumptionView.vue?fcfa","webpack://front/./src/components/consumption/ConsumptionChart.vue?9436","webpack://front/./src/components/consumption/ConsumptionChart.vue?f765","webpack://front/./src/components/consumption/ConsumptionChart.vue","webpack://front/./src/components/consumption/ConsumptionView.vue?3b49","webpack://front/./src/components/consumption/ConsumptionView.vue","webpack://front/./src/components/salesforce/CallbackSalesforce.vue?4795","webpack://front/./src/components/salesforce/CallbackSalesforce.vue?2eaa","webpack://front/./src/components/salesforce/CallbackSalesforce.vue","webpack://front/./src/components/deployment/DeploymentView.vue?8a83","webpack://front/./src/services/document-template.service.ts","webpack://front/./src/components/deployment/DeploymentView.vue?86f7","webpack://front/./src/components/deployment/DeploymentView.vue","webpack://front/./src/services/webdoc.service.ts","webpack://front/./src/components/sign/WebdocPopup.vue?b02e","webpack://front/./src/components/sign/WebdocPopup.vue?6701","webpack://front/./src/components/sign/WebdocPopup.vue","webpack://front/./src/components/sign/WebdocError.vue?23ac","webpack://front/./src/components/sign/WebdocError.vue?e5a0","webpack://front/./src/components/sign/WebdocError.vue","webpack://front/./src/utils/interaction-format.ts","webpack://front/./src/components/sign/DocumentViewer.vue?d1f8","webpack://front/./src/components/sign/DocumentViewer.vue","webpack://front/./src/components/sign/SignPane.vue?98f8","webpack://front/./src/components/sign/SignPane.vue","webpack://front/./src/components/sign/SignView.vue?6340","webpack://front/./src/components/sign/SignView.vue","webpack://front/./src/components/ErrorView.vue?9737","webpack://front/./src/components/ErrorView.vue?8c18","webpack://front/./src/components/ErrorView.vue","webpack://front/./src/components/workspace/PackageModal.vue?fd19","webpack://front/./src/components/workspace/PackageModal.vue","webpack://front/./src/components/general/ButtonBack.vue","webpack://front/./src/components/general/ButtonBack.vue?45f4","webpack://front/./src/components/workspace/WorkspaceIndivudual.vue?8b6e","webpack://front/./src/components/workspace/WorkspaceIndivudual.vue","webpack://front/./src/services/brandings.service.ts","webpack://front/./src/components/general/ConfirmActionModal.vue?9488","webpack://front/./src/components/general/ConfirmActionModal.vue","webpack://front/./src/components/general/FormModal.vue?7e87","webpack://front/./src/components/general/FormModal.vue","webpack://front/./src/components/general/DataTable.vue","webpack://front/./src/components/general/DataTable.vue?ccab","webpack://front/./src/components/branding/BrandingsView.vue?e9ac","webpack://front/./src/components/branding/BrandingsView.vue","webpack://front/./src/components/branding/ImageInputComponent.vue?7c8e","webpack://front/./src/components/branding/ImageInputComponent.vue?7846","webpack://front/./src/components/branding/ImageInputComponent.vue","webpack://front/./src/components/branding/ColorInputComponent.vue?2903","webpack://front/./src/components/branding/ColorInputComponent.vue?04f6","webpack://front/./src/components/branding/ColorInputComponent.vue","webpack://front/./src/components/branding/SignPreviewComponent.vue?8d28","webpack://front/./src/components/branding/SignPreviewComponent.vue?3f5b","webpack://front/./src/components/branding/SignPreviewComponent.vue","webpack://front/./src/components/branding/BrandingView.vue?b8af","webpack://front/./src/components/branding/BrandingView.vue","webpack://front/./src/services/ticket.service.ts","webpack://front/./src/components/general/SectionSeparator.vue?8367","webpack://front/./src/components/general/SectionSeparator.vue","webpack://front/./src/components/ticket/TicketView.vue?5b56","webpack://front/./src/components/ticket/TicketView.vue","webpack://front/./src/components/general/InputTextHTML.vue?ee87","webpack://front/./src/components/general/InputTextHTML.vue","webpack://front/./src/components/general/StatusSteps.vue","webpack://front/./src/utils/formatter/htmlToString.ts","webpack://front/./src/components/general/EmailMessageList.vue?3209","webpack://front/./src/components/general/EmailMessageList.vue","webpack://front/./src/components/general/FileUploader.vue","webpack://front/./src/components/general/FileUploader.vue?868a","webpack://front/./src/components/ticket/TicketCloseModal.vue?91cc","webpack://front/./src/components/ticket/TicketCloseModal.vue","webpack://front/./src/constants/file.constants.ts","webpack://front/./src/components/ticket/TicketEditView.vue?d0e6","webpack://front/./src/components/ticket/TicketEditView.vue","webpack://front/./src/components/general/InputText.vue?9ffc","webpack://front/./src/components/general/InputText.vue","webpack://front/./src/components/general/CheckBox.vue?d2cd","webpack://front/./src/components/general/CheckBox.vue","webpack://front/./src/components/ticket/TicketCreateView.vue?9d14","webpack://front/./src/components/ticket/TicketCreateView.vue","webpack://front/./src/router.ts","webpack://front/./src/i18n.ts","webpack://front/./src/toast.ts","webpack://front/./src/main.ts","webpack://front/./src/assets/png/ sync ^\\.\\/.*\\.png$","webpack://front/./src/assets/svg/ sync ^\\.\\/.*$","webpack://front/./src/translations|sync|D:/[A-Za-z0-9-_,/s]+/.json$/i","webpack://front/webpack/bootstrap","webpack://front/webpack/runtime/chunk loaded","webpack://front/webpack/runtime/compat get default export","webpack://front/webpack/runtime/define property getters","webpack://front/webpack/runtime/global","webpack://front/webpack/runtime/hasOwnProperty shorthand","webpack://front/webpack/runtime/make namespace object","webpack://front/webpack/runtime/node module decorator","webpack://front/webpack/runtime/publicPath","webpack://front/webpack/runtime/jsonp chunk loading","webpack://front/webpack/startup"],"sourcesContent":["export default {\n \"\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([])},\n \"app\": {\n \"billing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invoices\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"cgv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terms and conditions\"])},\n \"connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect\"])},\n \"consumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monitoring\"])},\n \"tickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cases\"])},\n \"deploiement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deployment\"])},\n \"disconnect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Support & Cases\"])},\n \"home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usage overview\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users & Profiles\"])},\n \"brandings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"workspaces\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environments\"])},\n \"gonexaTeam\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gonexa team\"])},\n \"legalNotice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legals Terms\"])},\n \"finishConfig\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Finalize the configuration\"])},\n \"billingConsumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invoices & Consumptions\"])}\n },\n \"auth\": {\n \"alreadyAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account ?\"])},\n \"buttons\": {\n \"createAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create my account\"])},\n \"forgotPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot your password ?\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"validAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Validate my account\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"goToApp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Go back to the App\"])}\n },\n \"disconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have been disconnected\"])},\n \"emails\": {\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm your email\"])},\n \"consult\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your inbox to finalize your registration.\"])},\n \"resend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend an email\"])},\n \"sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A verification email has been sent to the following address :\"])},\n \"updating\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Updating your email address\"])},\n \"updatingDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address of this account has been successfully changed.\"])},\n \"consultReset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your inbox to complete the reset.\"])},\n \"resent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A new invitation email has been sent to\"])},\n \"modifiedResent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A confirmation email has been sent to this user. \\nOnce the email address is confirmed, it will be updated.\"])}\n },\n \"inputs\": {\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email address\"])},\n \"newEmail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email address\"])},\n \"firstname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"lastname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])}\n },\n \"loginIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in to the Gonexa App using your username\"])},\n \"noAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have an account ?\"])},\n \"password\": {\n \"check\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password check\"])},\n \"defineFor\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set password for\"])},\n \"defineNew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set your new password\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset my password\"])},\n \"resetIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your email and we will send you a link to reset your password\"])}\n },\n \"registerIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register on the Gonexa App\"])},\n \"welcome\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Welcome\"])}\n },\n \"billing\": {\n \"amount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amount\"])},\n \"date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bill date\"])},\n \"lastAmount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amount of last invoice\"])},\n \"lastInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last invoice on\"])},\n \"late\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Late payments\"])},\n \"list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of invoices\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No.\"])},\n \"overallStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Overall status\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usage overview\"])},\n \"taxes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VAT included\"])},\n \"toPay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bill to pay\"])},\n \"upToDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date payments\"])},\n \"downloading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Downloading the invoice...\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No invoice is available at the moment\"])}\n },\n \"consoleError\": {\n \"emailLS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error retrieving email address from Local Storage:\"])},\n \"salesforceAuth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred during the authentication request:\"])}\n },\n \"consumption\": {\n \"actual\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current consumption\"])},\n \"docTemplates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Document templates\"])},\n \"evolution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last 12 months évolution\"])},\n \"generatedDocs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Documents generated\"])},\n \"limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consumption limit\"])},\n \"outOf\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"on\"])},\n \"signatures\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Electronic signatures\"])},\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usage overview\"])},\n \"templates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"templates\"])},\n \"unlimited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlimited\"])}\n },\n \"contractCard\": {\n \"clientSince\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Customer since\"])},\n \"gnxSuit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"My Gonexa solutions\"])},\n \"payment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Payment terms\"])},\n \"renew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renewal date\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"My contract\"])}\n },\n \"deployment\": {\n \"deployModels\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deploy templates\"])},\n \"fileName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File name\"])},\n \"format\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format\"])},\n \"lastSend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last sent to azure\"])},\n \"modelName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Template Name\"])},\n \"modelsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of templates\"])},\n \"noDestinationSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please select the destination environment\"])},\n \"noModelSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please select at least one document template\"])},\n \"noSourceSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please select the source environment\"])},\n \"research\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search...\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size\"])},\n \"sourceEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source environment\"])},\n \"sourceEnvironmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a source ---\"])},\n \"targetEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Target environment\"])},\n \"targetEnvironmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a target ---\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deploying templates\"])},\n \"unknownFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No document template on this environment\"])}\n },\n \"error\": {\n \"auth\": {\n \"alreadyRegistered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You already have an account\"])},\n \"differentPasswords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwords must be the same\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to connect\"])},\n \"passwordStrength\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password must be at least 12 characters long, one lowercase letter, one uppercase letter, one number and one special character.\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to register\"])},\n \"registrationNotSucceeded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account registration has not been completed\"])},\n \"unknownUsername\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown username\"])},\n \"unknownUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown user\"])},\n \"userDoesNotExist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The user does not exist\"])},\n \"usernameAlreadyExists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This username is already used\"])},\n \"wrongPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incorrect password\"])},\n \"updatePassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to update your password\"])},\n \"initPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to create your password\"])},\n \"userRegistrationNotSucceeded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The registration of this account has not been finalized\"])},\n \"passwordAlreadyInitialized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your password has already been initialized\"])},\n \"passwordNotInitialized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your password has not been initialized yet\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your username should have the same format as an email address\"])}\n },\n \"dbError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error has occurred\"])},\n \"email\": {\n \"resend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to resend email\"])},\n \"send\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to send confirmation email\"])},\n \"sendInvitation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to send confirmation invitation email\"])},\n \"wrongFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wrong email format\"])},\n \"wrongAddress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown email for this user\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to check your email address\"])},\n \"verifyNew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to check your new email address\"])},\n \"notVerified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your email has not yet been verified\"])},\n \"notModified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It does not appear that the email address for this account needs to be changed\"])}\n },\n \"NotPlus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address cannot contain a +\"])},\n \"emptyField\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This field can not be empty\"])},\n \"newUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to create this user\"])},\n \"deleteUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to delete this user\"])},\n \"noConsumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to access consumption\"])},\n \"noContract\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No contract\"])},\n \"noInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No invoice\"])},\n \"redirect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to redirect\"])},\n \"router\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account does not give you access to this feature.\"])},\n \"salesforce\": {\n \"accessDenied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Access denied\"])},\n \"auth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to authenticate with Salesforce\"])},\n \"inactiveOrg\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Organization blocked, closed or suspended\"])},\n \"inactiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inactive user\"])},\n \"noAccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unauthorized access\"])},\n \"noUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to find user\"])},\n \"server\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorization request limit reached\"])}\n },\n \"tokenExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your session has expired\"])},\n \"companyNotVerified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must have a verified account to invite users\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to deploy templates\"])},\n \"environment\": {\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to delete this environment\"])},\n \"deleteUnknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This environment does not exist or has already been deleted\"])},\n \"null\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to access environments\"])},\n \"secure\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to secure this environment\"])},\n \"customSettingsUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible to update the parameters\"])}\n },\n \"getUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to recover users\"])},\n \"getTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve cases\"])},\n \"getTicketById\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve cases\"])},\n \"getEnvironments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve environments\"])},\n \"getProducts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve products\"])},\n \"getPriorities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve priorities\"])},\n \"getStatuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve statuses\"])},\n \"getAffectedUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to retrieve affected users\"])},\n \"ticketCreation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to create case\"])},\n \"ticketClose\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to close case\"])},\n \"fileUpload\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Unable to upload file \", _interpolate(_named(\"fileName\"))])},\n \"wrongExtension\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unauthorized file extension\"])},\n \"maxFileSize\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"The file is too large. Maximum allowed size is \", _interpolate(_named(\"maxSize\")), \"MB\"])},\n \"maxFiles\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"You have reached the maximum number of files (\", _interpolate(_named(\"maxFiles\")), \"). No more files can be uploaded\"])},\n \"commentAdd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to add comment\"])},\n \"notOwner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must have an owner account to invite users\"])},\n \"notAuthorized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are not allowed to do this\"])},\n \"editUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to update user information\"])},\n \"wrongCompany\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user seems to belong to another organization\"])},\n \"donwloadInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error downloading invoice\"])},\n \"accountNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error identifying your account\"])},\n \"companyNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error identifying your organization\"])},\n \"roleNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error identifying your account\"])},\n \"roleNewUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error assigning role to new user\"])},\n \"minimumOneOwner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your organization mus have at least one owner\"])},\n \"webdocExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The document has expired\"])},\n \"webdocError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while retrieving the document\"])},\n \"idNotCopied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unable to copy this user's identifiant\"])},\n \"webdocAlreadySign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have already signed the document\"])},\n \"webdocNotFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No documents found\"])},\n \"webdocSignatureError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while signing the document\"])},\n \"webdocActionAlreadyRegistred\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have already performed one of the requested actions\"])},\n \"webdocNoContentDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No document is linked to the signing procedure\"])},\n \"downloadWebdoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while downloading the file\"])},\n \"webdocNotDone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You cannot download the document until all signers have signed\"])},\n \"webdocEveryoneMustSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not all signatories have signed yet\"])},\n \"webdocOops\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OOPS\"])},\n \"webdocIssueWhenLoading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A problem occurred while loading the document\"])},\n \"webdocErrorWhileLoading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading error\"])},\n \"webdocnoStakeHolders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No recipient is associated with this signing procedure\"])}\n },\n \"errorPage\": {\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact support\"])},\n \"notFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"joke\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Even our technicians are still searching\"])},\n \"home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to home\"])}\n },\n \"home\": {\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Access\"])},\n \"connectProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect my production\"])},\n \"connectSf\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect to Salesforce\"])},\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please contact the support service\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy document templates from one environment to another\"])},\n \"hello\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hello\"])},\n \"inProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verification in progress...\"])},\n \"refused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request refused\"])},\n \"verification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account Verification\"])},\n \"verified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Validated account\"])},\n \"welcome\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Welcome to your customer portal\"])},\n \"workspaces\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage the list of environments connected to the App\"])},\n \"connectMyEnvironments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect my environments\"])},\n \"connectionText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate your production to access your bills & consumption (after Gonexa has verified your contract).\"])},\n \"verifInProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account verification in progress...\"])},\n \"verificationText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Our teams carry out a verification\"])},\n \"connectionProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connection authorizes document generation\"])}\n },\n \"img\": {\n \"gnxLogo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logo of Gonexa\"])}\n },\n \"sign\": {\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sign\"])},\n \"consultation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consultation\"])},\n \"document\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Document(s) :\"])},\n \"documents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Documents:\"])},\n \"invitation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are invited to sign this document:\"])},\n \"invitations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are invited to sign these documents:\"])},\n \"notYou\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It is not you ?\"])},\n \"quit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Leave the page\"])},\n \"recipient\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"RECIPIENT :\"])},\n \"recipients\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recipients:\"])},\n \"sender\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sender:\"])},\n \"signature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your document has been signed\"])},\n \"youSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You sign as\"])},\n \"sign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sign\"])},\n \"download\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download\"])},\n \"documentAvaible\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The document is now available by clicking on the link below\"])},\n \"downloadDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download document\"])},\n \"documentHasBeenSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The document has been signed\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"the\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The\"])},\n \"validate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Validate\"])},\n \"hasBeenSent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Document sent :\"])},\n \"documentLinkHasExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Document link has expired\"])},\n \"linkExpiredText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the sender so they can resend a new link\"])},\n \"sentMailToExpeditor\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Send an email to the sender\"])},\n \"documentHasBeenValidated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The document has been validated\"])},\n \"backToDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to document\"])},\n \"confirmSignature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm the signature of the document?\"])},\n \"confirmValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm document validation?\"])},\n \"soonAvaiableDownload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Coming soon\"])},\n \"validationText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are about to finalize the process, you will then be able to download the final document\"])},\n \"validateValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Validate the document\"])},\n \"validateSignature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm signature\"])},\n \"documentSoonAvaiable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You will be able to download the document on this page once all signatories have signed.\"])},\n \"documentSoonAvaiableValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You will be able to download the document on this page once all the signatories have validated\"])},\n \"menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Menu\"])},\n \"checkTheDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please consult the full document\"])},\n \"backtoDoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to document\"])},\n \"fieldMissing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have not completed all the required fields\"])},\n \"scroll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll\"])},\n \"scrollToBottom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"all the way down to sign\"])}\n },\n \"success\": {\n \"registrationCompleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are now ready to use the App! Log in to continue\"])},\n \"userDeleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User deleted\"])},\n \"userInvited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A new user has been invited to join the App\"])},\n \"connectEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully connected environment\"])},\n \"deleteEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environment successfully deleted\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Templates deployed successfully\"])},\n \"emailResend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email returned!\"])},\n \"secureEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully secured environment\"])},\n \"userModified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User information was successfully updated\"])},\n \"ticketCreated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Case successfully created\"])},\n \"ticketClosed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Case successfully closed\"])},\n \"commentAdded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comment successfully added\"])},\n \"fileUploaded\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"File \", _interpolate(_named(\"fileName\")), \" successfully uploaded\"])},\n \"customSettingsUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Updated settings\"])}\n },\n \"ticketCard\": {\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact us\"])},\n \"open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log a case\"])},\n \"question\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A question ?\"])}\n },\n \"universityCard\": {\n \"gonexaAndMe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gonexa & Me\"])},\n \"training\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blaze your trail\"])}\n },\n \"users\": {\n \"actions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actions\"])},\n \"activeUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active users\"])},\n \"billingAddress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Billing address\"])},\n \"confirm1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Would you like\"])},\n \"confirm2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"confirm deletion\"])},\n \"confirm3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of the user?\"])},\n \"contractContact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contractual contact\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create user\"])},\n \"creation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creation\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"deletion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deletion\"])},\n \"limited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limited\"])},\n \"owner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Owner\"])},\n \"list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users list\"])},\n \"myInfos\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"My information\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Full Name\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New user\"])},\n \"noActiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No active users\"])},\n \"oneActiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active user\"])},\n \"profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile\"])},\n \"profileEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a profile ---\"])},\n \"techContract\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Technical contact\"])},\n \"user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"modification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"noUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No active users, click on \\\"New user\\\" to add new user\"])},\n \"idCopied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant copied in the clipboard\"])}\n },\n \"brandings\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"backToList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of branding\"])},\n \"brandingsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of brandings\"])},\n \"newBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New branding\"])},\n \"brandings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brandings\"])},\n \"noBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No brandings\"])},\n \"oneBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"branding\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding name\"])},\n \"isDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default\"])},\n \"defineDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Define as default\"])},\n \"lastModification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last modification\"])},\n \"brandingId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding ID\"])},\n \"logo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logo\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update branding\"])},\n \"loadError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error loading brandings\"])},\n \"logoSizeError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File too large, please select a file less than 2MB\"])},\n \"logoFormatError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid file format\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"saveSuccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changes saved\"])},\n \"saveError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error saving changes\"])},\n \"createModal\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create a new branding\"])},\n \"subtitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding name\"])},\n \"defaultName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default branding...\"])},\n \"emptyName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please enter a name\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"created\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding created\"])},\n \"createError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error creating branding\"])}\n },\n \"deleteModal\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"subtitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this branding?\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete the branding\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding deleted\"])},\n \"deleteError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error deleting branding\"])}\n },\n \"image\": {\n \"import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import an image\"])},\n \"orDrop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or drop\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replace your logo\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size of the logo\"])}\n },\n \"colors\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Colors\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"buttonText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button text\"])}\n }\n },\n \"workspaces\": {\n \"actions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actions\"])},\n \"activSandboxes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active sandboxes\"])},\n \"confirm1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Would you like\"])},\n \"confirm2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"confirm link removal\"])},\n \"confirm3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"between the sandbox\"])},\n \"connectProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect my production\"])},\n \"connectSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect a sandbox\"])},\n \"connected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connected\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove link\"])},\n \"deletion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deletion\"])},\n \"myProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"My production\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"noActivSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No active sandbox\"])},\n \"notConnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not connected\"])},\n \"notSecured\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not secure\"])},\n \"oneActivSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"1 active sandbox\"])},\n \"orgId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ORG ID\"])},\n \"orgName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ORG NAME\"])},\n \"connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect\"])},\n \"sandboxList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of sandboxes\"])},\n \"secure\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secure\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"workspace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environment\"])},\n \"workspaceList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List of environments\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No Sandbox, please click on \\\"Connect Sandbox\\\"\"])},\n \"noConnection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not connected\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading...\"])},\n \"packageversion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version Package\"])},\n \"neededAction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action required\"])},\n \"neededActions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"required actions\"])},\n \"updatePackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update package\"])},\n \"impossibleUpdatePackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible to update the package\"])},\n \"unknownPackageVersionName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown package version\"])},\n \"installedVersion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Installed version\"])},\n \"installPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Install package\"])},\n \"notInstalledPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No package installed\"])},\n \"userIsNotConnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User disconnected from this environment\"])},\n \"userIsNotConnectedDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your user is not connected to the environment, this prevents certain functionalities such as model deployment\"])},\n \"infoAndAlert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information & Alerts\"])},\n \"signNotDefined\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The Gonexa Sign user is not defined\"])},\n \"signNotDefinedDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your user is not connected to the environment, this prevents certain functionalities such as model deployment\"])},\n \"defineSign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set User Interface Sign\"])},\n \"solution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solution\"])},\n \"twofactorauth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Double authentication method\"])},\n \"twofactorauthEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a method ---\"])},\n \"userInterface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User interface\"])},\n \"userInterfaceEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select an interface ---\"])},\n \"validityDuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Validity period (in days)\"])},\n \"language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default language\"])},\n \"languageEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a language ---\"])},\n \"modifyParameters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change settings\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User name\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Full name\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown\"])},\n \"updateEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environment update\"])},\n \"continue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Continue\"])},\n \"wishedPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Desired package version\"])},\n \"wishedPackageEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a version ---\"])},\n \"chooseUpdate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choose the desired update for the environment \"])},\n \"updatePackageWarn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"By clicking on “Continue†you will be redirected to the login page to finalize the update of the Gonexa package.\"])},\n \"package\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Package\"])},\n \"lastVersionUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date version\"])},\n \"everythingOk\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your environment is correctly configured\"])},\n \"disconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disconnected\"])},\n \"disconnectEnvironement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disconnect environment\"])},\n \"notDefined\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not defined\"])},\n \"update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update\"])},\n \"signParameter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature parameter\"])},\n \"toUpdate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To update\"])},\n \"smsByDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SMS by default\"])},\n \"deletionInProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deletion of the current environment ...\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sandbox\"])},\n \"production\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Production\"])},\n \"configuration3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" do you want to connect?\"])},\n \"configuration2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" type of environment\"])},\n \"configuration1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wich\"])},\n \"connectionToSalesforce\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect an environment to Salesforce\"])},\n \"configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration\"])}\n },\n \"webdoc\": {\n \"downloading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Downloading the document...\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading...\"])},\n \"configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration\"])},\n \"connectionToSalesforce\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect a Salesforce environment\"])},\n \"production\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Production\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sandbox\"])},\n \"configuration1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"What\"])},\n \"configuration2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"type of environment\"])},\n \"configuration3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"would you like to connect to ?\"])},\n \"fillBy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To be completed by \"])},\n \"filledBy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filled by \"])},\n \"fillByYou\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To be completed by you\"])}\n },\n \"datatable\": {\n \"searchTerm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search...\"])},\n \"noDataFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No data to display\"])}\n },\n \"tickets\": {\n \"openTicketCreateView\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open a new case\"])},\n \"openTicketsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All open cases\"])},\n \"closedTicketsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All closed cases\"])},\n \"openTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"open case(s)\"])},\n \"closedTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"closed case(s)\"])},\n \"defaultHtmlBody\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"<p>Hello,</p><br><p>Description of my problem: </p><br><p>Model ID [Template ID]: </p><p>Record ID in error [Record ID]: </p><p>Flow ID in error [Flow ID]: </p>\"])},\n \"objects\": {\n \"number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Number\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description\"])},\n \"created_at\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Created date\"])},\n \"closed_at\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close date\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])}\n },\n \"close\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closing the case\"])},\n \"ticketNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Case n°\"])},\n \"information\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click on “Close†to close your case.\"])},\n \"closeReason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason for closing\"])},\n \"closeReasonEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a closing reason ---\"])},\n \"closeTicket\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close the case\"])}\n },\n \"create\": {\n \"qualification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualification\"])},\n \"htmlBody\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"inputs\": {\n \"subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subject...\"])},\n \"htmlBodyPlaceholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a description...\"])},\n \"environment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environment concerned\"])},\n \"environmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select an environment ---\"])},\n \"otherOrgIdPickListLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other environment\"])},\n \"otherOrgId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environment Id\"])},\n \"product\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Product concerned\"])},\n \"productEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a product ---\"])},\n \"affectedUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Number of users affected\"])},\n \"affectedUserEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a number ---\"])},\n \"priority\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priority\"])},\n \"priorityEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Select a priority ---\"])},\n \"fileUploaderButtonLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import a file\"])},\n \"fileUploaderDropLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or drop\"])},\n \"openAccessTitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accelerate resolution by providing access to the environment\"])},\n \"openAccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I confirm that I have given access to Gonexa support in order to speed up the resolution\"])},\n \"openAccessLink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"How to open access to support ?\"])}\n }\n },\n \"edit\": {\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cases List\"])},\n \"ticketNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Case n°\"])},\n \"comment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comment\"])},\n \"commentPlaceholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New comment...\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"History\"])},\n \"submitComment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"closeTicket\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close my case\"])}\n }\n },\n \"keys\": {\n \"copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy\"])},\n \"copied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copied !\"])}\n },\n \"pickList\": {\n \"status\": {\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New\"])},\n \"inProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"In progress\"])},\n \"closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closed\"])}\n },\n \"product\": {\n \"Doc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doc\"])},\n \"Sign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sign\"])},\n \"Webdoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Webdoc\"])},\n \"Connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect\"])},\n \"RF\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"RF\"])},\n \"Other\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other\"])}\n },\n \"priority\": {\n \"P1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outage of a service already functional in Production\"])},\n \"P2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outage of a service already functional in Sandbox\"])},\n \"P3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outage of a service during a modification or a deployment\"])},\n \"P4\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Question or various improvements\"])}\n },\n \"affectedUser\": {\n \"1 à 20\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"1 to 20 users\"])},\n \"20 à 100\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"20 to 100 users\"])},\n \"100 à 200\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"100 to 200 users\"])},\n \"+200\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More than 200 users\"])}\n }\n },\n \"language\": {\n \"french\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"French\"])},\n \"english\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"English\"])},\n \"spanish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spanish\"])},\n \"german\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"German\"])},\n \"italian\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Italian\"])},\n \"polish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Polish\"])},\n \"dutch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dutch\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not defined\"])}\n }\n}","export default {\n \"\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([])},\n \"error\": {\n \"router\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte ne vous donne pas accès à cette fonctionnalité.\"])},\n \"redirect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirection impossible\"])},\n \"emptyField\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce champ ne peut pas être vide\"])},\n \"dbError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur est survenue\"])},\n \"noInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune facture\"])},\n \"noConsumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'accéder à la consommation\"])},\n \"noContract\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun contrat\"])},\n \"newUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de créer cet utilisateur\"])},\n \"deleteUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de supprimer cet utilisateur\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de déployer les modèles\"])},\n \"notOwner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous devez avoir un compte propriétaire pour inviter des utilisateurs\"])},\n \"companyNotVerified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous devez avoir un compte vérifié pour inviter des utilisateurs\"])},\n \"getUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les utilisateurs\"])},\n \"getTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les tickets\"])},\n \"getTicketById\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer le ticket\"])},\n \"getEnvironments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les environnements concernés\"])},\n \"getProducts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les produits concernés\"])},\n \"getPriorities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les priorités\"])},\n \"getStatuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les statuts\"])},\n \"getAffectedUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de récupérer les utilisateurs impactés\"])},\n \"ticketClose\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de fermer le ticket\"])},\n \"ticketCreation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de créer le ticket\"])},\n \"fileUpload\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Impossible de charger le fichier \", _interpolate(_named(\"fileName\"))])},\n \"wrongExtension\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée\"])},\n \"maxFileSize\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Le fichier est trop volumineux. La taille maximale autorisée est de \", _interpolate(_named(\"maxSize\")), \"MB\"])},\n \"maxFiles\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Vous avez atteint le nombre maximal de fichiers (\", _interpolate(_named(\"maxFiles\")), \"). Aucun fichier supplémentaire ne peut être ajouté\"])},\n \"commentAdd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'ajouter le commentaire\"])},\n \"tokenExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre session a expirée\"])},\n \"accountNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur d'identification votre compte\"])},\n \"companyNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur d'identification votre organisation\"])},\n \"roleNotIdentified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur d'identification votre role\"])},\n \"roleNewUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur d'attribution du role au nouvel utilisateur\"])},\n \"notAuthorized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'êtes pas autorisé à faire ceci\"])},\n \"editUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de mettre à jour les informations de l'utilisateur\"])},\n \"wrongCompany\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cet utilisateur ne semble pas appartenir à votre organisation\"])},\n \"donwloadInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du téléchargement de la facture\"])},\n \"minimumOneOwner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre organisation doit posséder au moins un propriétaire\"])},\n \"idNotCopied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de copier l'identifiant de cet utilisateur\"])},\n \"NotPlus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse e-mail ne peut pas contenir de caractères +\"])},\n \"email\": {\n \"resend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoi de l'e-mail impossible\"])},\n \"send\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'envoyer l'e-mail de confirmation\"])},\n \"sendInvitation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'envoyer l'e-mail d'invitation\"])},\n \"wrongFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mauvais format d'e-mail\"])},\n \"wrongAddress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse e-mail inconnue pour cet utilisateur\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de vérifier votre adresse e-mail\"])},\n \"verifyNew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de vérifier votre nouvelle adresse e-mail\"])},\n \"notVerified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre adresse e-mail n'a pas encore été vérifiée\"])},\n \"notModified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il ne semble pas que l'adresse e-mail de ce compte ait demandé à être modifiée\"])}\n },\n \"auth\": {\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription impossible\"])},\n \"registrationNotSucceeded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'inscription de votre compte n'a pas été finalisée\"])},\n \"userRegistrationNotSucceeded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'inscription de ce compte n'a pas été finalisée\"])},\n \"alreadyRegistered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous possédez déjà un compte\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre nom d'utilisateur doit être au format d'une adresse e-mail\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connexion impossible\"])},\n \"userDoesNotExist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"unknownUsername\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur inconnu\"])},\n \"unknownUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur inconnu\"])},\n \"usernameAlreadyExists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce nom d'utilisateur est dejà utilisé\"])},\n \"wrongPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe incorrect\"])},\n \"differentPasswords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les mots de passe doivent être identiques\"])},\n \"passwordStrength\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe doit comporter au moins 12 caractères, une minuscule, une majuscule, un chiffre et un caractère spécial.\"])},\n \"updatePassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de mettre à jour votre mot de passe\"])},\n \"initPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'initialiser votre mot de passe\"])},\n \"passwordAlreadyInitialized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre mot de passe a déjà été initialisé\"])},\n \"passwordNotInitialized\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre mot de passe n'a pas encore été initialisé\"])}\n },\n \"salesforce\": {\n \"accessDenied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accès refusé\"])},\n \"inactiveOrg\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Organisation bloquée, férmée ou suspendue\"])},\n \"inactiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur inactif\"])},\n \"noAccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accès non autorisé\"])},\n \"noUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de trouver l'utilisateur\"])},\n \"server\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite de demande d'autorisation atteinte\"])},\n \"auth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentification à Salesforce impossible\"])}\n },\n \"environment\": {\n \"null\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible d'accéder aux environnements\"])},\n \"deleteUnknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cet environnement n'existe pas ou a déja été supprimé\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de supprimer cet environment\"])},\n \"secure\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de sécuriser cet environment\"])},\n \"customSettingsUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de mettre à jour les paramètres\"])}\n },\n \"webdocExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le document a expiré\"])},\n \"webdocError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur à eu lieu lors de la récupération du document\"])},\n \"webdocAlreadySign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà signé le document\"])},\n \"webdocNotFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun document trouvé\"])},\n \"webdocSignatureError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur a eu lieu lors de la signature du document\"])},\n \"webdocActionAlreadyRegistred\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez dejà effectué une des actions demandé\"])},\n \"webdocNoContentDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun document n'est relié à la procédure de signature\"])},\n \"downloadWebdoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur est survenu lors du téléchargement du fichier\"])},\n \"webdocNotDone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas télécharger le document tant que tout les signataires n'ont pas signé\"])},\n \"webdocEveryoneMustSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tout les signataires n'ont pas encore signé\"])},\n \"webdocOops\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OUPS\"])},\n \"webdocErrorWhileLoading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur au chargement\"])},\n \"webdocIssueWhenLoading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un problème a eu lieu au chargement du document\"])},\n \"webdocnoStakeHolders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun destinataire n'est associé à cette procédure de signature\"])}\n },\n \"success\": {\n \"emailResend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-mail renvoyé !\"])},\n \"registrationCompleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous êtes maintenant prêt à utiliser l'App! Connectez-vous pour continuer\"])},\n \"userDeleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur supprimé\"])},\n \"userInvited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un nouvel utilisateur a été invité à rejoindre l'App\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modèles déployés avec succès\"])},\n \"connectEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement connecté avec succès\"])},\n \"secureEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement sécurisé avec succès\"])},\n \"deleteEnv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement supprimé avec succès\"])},\n \"userModified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les informations de l'utilisateur ont bien été mises à jour\"])},\n \"ticketCreated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ticket ouvert avec succès\"])},\n \"ticketClosed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ticket clôturé avec succès\"])},\n \"commentAdded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Commentaire ajouté avec succès\"])},\n \"fileUploaded\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Fichier \", _interpolate(_named(\"fileName\")), \" chargé avec succès\"])},\n \"customSettingsUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Paramètres mis à jour\"])}\n },\n \"consoleError\": {\n \"emailLS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur de récupération de l'adresse e-mail dans le Local Storage :\"])},\n \"salesforceAuth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur est survenue lors de la demande d'authentification :\"])}\n },\n \"img\": {\n \"gnxLogo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logo de Gonexa\"])}\n },\n \"app\": {\n \"cgv\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conditions générales\"])},\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Synthèse\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"consumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consommation\"])},\n \"tickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tickets\"])},\n \"billing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Factures\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil & utilisateurs\"])},\n \"brandings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"workspaces\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnements\"])},\n \"deploiement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déploiement\"])},\n \"connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Support & Tickets\"])},\n \"disconnect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déconnexion\"])},\n \"loggedAs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecté en tant que\"])},\n \"gonexaTeam\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'équipe Gonexa\"])},\n \"legalNotice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions légales\"])},\n \"finishConfig\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Finaliser la configuration\"])},\n \"billingConsumption\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Factures & Consommations\"])}\n },\n \"errorPage\": {\n \"notFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page non trouvée\"])},\n \"joke\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Même nos techniciens cherchent toujours\"])},\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter le support\"])},\n \"home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retourner à l'accueil\"])}\n },\n \"home\": {\n \"hello\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonjour\"])},\n \"welcome\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bienvenue sur votre espace client\"])},\n \"workspaces\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gérer la liste des environnements connectés à l'App\"])},\n \"deployment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copier les modèles de document d'un environnement à un autre\"])},\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accéder\"])},\n \"connectProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter ma production\"])},\n \"connectSf\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connexion à Salesforce\"])},\n \"verification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérification du compte\"])},\n \"inProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérification en cours...\"])},\n \"verified\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Compte validé\"])},\n \"refused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Demande refusée\"])},\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de contacter le service support\"])},\n \"connectMyEnvironments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter mes environnements\"])},\n \"connectionText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activez votre production pour accéder à vos factures & vos consommations (après vérification de votre contrat par Gonexa)\"])},\n \"verifInProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérification du compte en cours...\"])},\n \"verificationText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nos équipes procèdent à une vérification\"])},\n \"connectionProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La connexion autorise la génération de document\"])}\n },\n \"auth\": {\n \"welcome\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bienvenue\"])},\n \"registerIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire sur l'App Gonexa\"])},\n \"loginIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connectez-vous à l'App Gonexa à l'aide de votre nom d'utilisateur\"])},\n \"disconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez été déconnecté\"])},\n \"noAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas de compte ?\"])},\n \"alreadyAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"inputs\": {\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"firstname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"lastname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse e-mail\"])},\n \"newEmail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse e-mail\"])}\n },\n \"buttons\": {\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"createAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créer mon compte\"])},\n \"forgotPassword\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"validAccount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider mon compte\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"goToApp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir sur l'App\"])}\n },\n \"emails\": {\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer votre e-mail\"])},\n \"sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un e-mail de vérification à été envoyé à l'adresse suivante :\"])},\n \"consult\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consultez votre boîte de réception pour finaliser votre inscription.\"])},\n \"consultReinit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consultez votre boîte de réception pour finaliser la réinitialisation.\"])},\n \"resend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer un e-mail\"])},\n \"updating\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de votre adresse e-mail\"])},\n \"updatingDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse e-mail de ce compte a été modifiée avec succès.\"])},\n \"consultReset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consultez votre boîte de réception pour finaliser la réinitialisation.\"])},\n \"resent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un nouvel e-mail d'invitation a été envoyé à \"])},\n \"modifiedResent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un e-mail de confirmation a été envoyé à cet utilisateur. Une fois l'adresse e-mail confirmée, elle sera mise à jour.\"])}\n },\n \"password\": {\n \"check\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérification du mot de passe\"])},\n \"defineFor\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Définir le mot de passe pour \"])},\n \"defineNew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Définir votre nouveau mot de passe\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser mon mot de passe\"])},\n \"resetIntro\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entrez votre adresse e-mail et nous vous enverrons un lien pour réinitialiser votre mot de passe\"])}\n }\n },\n \"billing\": {\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Synthèse de mes factures\"])},\n \"overallStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statut global\"])},\n \"lastInvoice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dernière facture le\"])},\n \"lastAmount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montant de la dernière facture\"])},\n \"upToDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Paiements à jour\"])},\n \"toPay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Facture à régler\"])},\n \"late\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retard de paiements\"])},\n \"list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des factures\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N°\"])},\n \"date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de facture\"])},\n \"amount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montant\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statut\"])},\n \"taxes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TTC\"])},\n \"downloading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Téléchargement de la facture...\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune facture n'est disponible pour l'instant\"])}\n },\n \"consumption\": {\n \"synthesis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Synthèse de ma consommation\"])},\n \"generatedDocs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Documents générés\"])},\n \"docTemplates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modèles de documents\"])},\n \"templates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"modèles\"])},\n \"unlimited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Illimité\"])},\n \"signatures\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatures électroniques\"])},\n \"outOf\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sur\"])},\n \"evolution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"évolution sur les 12 derniers mois\"])},\n \"actual\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consommation actuelle\"])},\n \"limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite de consommation\"])}\n },\n \"deployment\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déploiement des modèles\"])},\n \"deployModels\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déployer les modèles\"])},\n \"sourceEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement source\"])},\n \"sourceEnvironmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une source ---\"])},\n \"targetEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement cible\"])},\n \"targetEnvironmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une cible ---\"])},\n \"modelsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des modèles\"])},\n \"modelName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom du modèle\"])},\n \"fileName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom du fichier\"])},\n \"format\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille\"])},\n \"lastSend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dernier envoi azure\"])},\n \"unknownFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inconnu\"])},\n \"research\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rechercher...\"])},\n \"noSourceSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Veuillez sélectionner l'environnement source\"])},\n \"noDestinationSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Veuillez sélectionner l'environnement destination\"])},\n \"noModelSelected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Veuillez sélectionner au moins un modèle de document\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun modèle de document sur cet environnement\"])}\n },\n \"universityCard\": {\n \"training\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accéder à University\"])},\n \"gonexaAndMe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gonexa & moi\"])}\n },\n \"ticketCard\": {\n \"question\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une question ?\"])},\n \"contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contactez-nous\"])},\n \"open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ouvrir un ticket\"])}\n },\n \"sign\": {\n \"invitation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous êtes invité.e à signer ce document :\"])},\n \"invitations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous êtes invité.e à signer ces documents :\"])},\n \"consultation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Consultation\"])},\n \"signature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature\"])},\n \"youSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous signez en tant que\"])},\n \"notYou\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce n'est pas vous ?\"])},\n \"sender\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expéditeur :\"])},\n \"recipient\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Destinataire :\"])},\n \"recipients\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Destinataires :\"])},\n \"document\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Document(s) :\"])},\n \"documents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Documents :\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signer\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre document a été signé\"])},\n \"quit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quitter la page\"])},\n \"sign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signer\"])},\n \"download\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Télécharger\"])},\n \"documentAvaible\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le document est à présent disponible en cliquant sur le lien ci-dessous\"])},\n \"downloadDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Télécharger mon document\"])},\n \"documentHasBeenSigned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le document a été signé\"])},\n \"documentSoonAvaiable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pourrez télécharger le document sur cette page une fois que tout les signataires auront signé\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aperçu\"])},\n \"the\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le\"])},\n \"validate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"hasBeenSent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyé le\"])},\n \"documentLinkHasExpired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le lien du document a expiré\"])},\n \"linkExpiredText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rapprochez-vous de l’expéditeur pour qu’il puisse renvoyer un nouveau lien\"])},\n \"sentMailToExpeditor\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer un mail à l’expéditeur\"])},\n \"documentHasBeenValidated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le document a été validé\"])},\n \"documentSoonAvaiableValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pourrez télécharger le document sur cette page une fois que tout les signataires auront validé\"])},\n \"backToDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au document\"])},\n \"confirmSignature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer la signature du document ?\"])},\n \"confirmValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer la validation du document ?\"])},\n \"soonAvaiableDownload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bientôt disponible\"])},\n \"validationText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous êtes sur le point de finaliser le processus, vous pourrez, à la suite, télécharger le document final\"])},\n \"validateValidation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider le document\"])},\n \"validateSignature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer la signature\"])},\n \"menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Menu\"])},\n \"checkTheDocument\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Veuillez consulter le document complet\"])},\n \"backtoDoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au document\"])},\n \"fieldMissing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas rempli tout les champs obligatoire\"])},\n \"scroll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faites défiler\"])},\n \"scrollToBottom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu’en bas pour pouvoir signer\"])}\n },\n \"contractCard\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mon contrat\"])},\n \"clientSince\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Client depuis le\"])},\n \"renew\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date du renouvellement\"])},\n \"payment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modalité de paiement\"])},\n \"gnxSuit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mes solutions gonexa\"])}\n },\n \"users\": {\n \"myInfos\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mes informations\"])},\n \"contractContact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact contractuel\"])},\n \"techContract\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact technique\"])},\n \"billingAddress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse de facturation\"])},\n \"list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des utilisateurs\"])},\n \"noActiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur actif\"])},\n \"oneActiveUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"utilisateur actif\"])},\n \"activeUsers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"utilisateurs actifs\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvel utilisateur\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom complet\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-mail\"])},\n \"profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"profileEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez un profil ---\"])},\n \"actions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actions\"])},\n \"limited\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limité\"])},\n \"owner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Propriétaire\"])},\n \"user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur\"])},\n \"creation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Création\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créer l'utilisateur\"])},\n \"deletion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suppression\"])},\n \"confirm1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Souhaitez-vous\"])},\n \"confirm2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"confirmer la suppression\"])},\n \"confirm3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"de l'utilisateur ?\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"modification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modification\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enregistrer\"])},\n \"noUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur actif, cliquez sur \\\"Nouvel utilisateur\\\" pour en ajouter\"])},\n \"idCopied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant copié dans le presse-papier\"])}\n },\n \"brandings\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"backToList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des brandings\"])},\n \"brandingsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des branding\"])},\n \"newBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau branding\"])},\n \"brandings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brandings\"])},\n \"noBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun branding\"])},\n \"oneBranding\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"branding\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de branding\"])},\n \"isDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Par défaut\"])},\n \"defineDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Définir par défaut\"])},\n \"lastModification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dernière modification\"])},\n \"brandingId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding ID\"])},\n \"logo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logo\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour le branding\"])},\n \"loadError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du chargement des brandings\"])},\n \"logoSizeError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fichier trop volumineux, veuillez choisir un fichier de moins de 2 MB\"])},\n \"logoFormatError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format de fichier non pris en charge\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aperçu\"])},\n \"saveSuccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les changements ont été sauvegardées\"])},\n \"saveError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur est survenue lors de la sauvegarde des changements\"])},\n \"createModal\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créer un branding\"])},\n \"subtitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom du branding\"])},\n \"defaultName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding par défaut...\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créer un branding\"])},\n \"emptyName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nom du branding ne peut pas être vide\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"created\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding créé\"])},\n \"createError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la création du branding\"])}\n },\n \"deleteModal\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suppression\"])},\n \"subtitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le branding ?\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer le branding\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Branding supprimé\"])},\n \"deleteError\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la suppression du branding\"])}\n },\n \"image\": {\n \"import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Importer une image\"])},\n \"orDrop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou déposez\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remplacer votre logo\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille du logo\"])}\n },\n \"colors\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Couleurs\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arrière-plan\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Texte\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bouton\"])},\n \"buttonText\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Texte du bouton\"])}\n }\n },\n \"workspaces\": {\n \"myProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ma production\"])},\n \"orgId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ORG ID\"])},\n \"orgName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ORG NAME\"])},\n \"connectProd\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter ma production\"])},\n \"sandboxList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des sandboxes\"])},\n \"noActivSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune sandbox active\"])},\n \"oneActivSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"1 sandbox active\"])},\n \"activSandboxes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sandboxes actives\"])},\n \"connectSandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter Sandbox\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statut\"])},\n \"actions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actions\"])},\n \"connected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecté\"])},\n \"notConnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non connectée\"])},\n \"notSecured\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non sécurisée\"])},\n \"secure\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sécuriser\"])},\n \"connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"workspace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement\"])},\n \"workspaceList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des environnements\"])},\n \"deletion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suppression\"])},\n \"confirm1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Souhaitez-vous\"])},\n \"confirm2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"confirmer la suppression du lien\"])},\n \"confirm3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"entre la sandbox & Gonexa ? Cette opération ne supprime pas la sandbox.\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer le lien\"])},\n \"emptyTable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune Sandbox ajoutée, merci de cliquer sur \\\"Connecter Sandbox\\\"\"])},\n \"noConnection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non connectée\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chargement...\"])},\n \"packageversion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version Package\"])},\n \"neededAction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" action requise\"])},\n \"neededActions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" actions requises\"])},\n \"updatePackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour le package\"])},\n \"impossibleUpdatePackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Impossible de mettre à jour le package\"])},\n \"unknownPackageVersionName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version du package inconnue\"])},\n \"installedVersion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version installée\"])},\n \"installPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Installer le package\"])},\n \"notInstalledPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Package non installé\"])},\n \"infoAndAlert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Informations & Alertes\"])},\n \"userIsNotConnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur déconnecté à cet l'environnement\"])},\n \"userIsNotConnectedDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre utilisateur n’est pas connecté à l’environnement, cela empêche certaines fonctionnalités \\tcomme le déploiement des modèles\"])},\n \"signNotDefined\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L’utilisateur Gonexa Sign n’est pas défini\"])},\n \"signNotDefinedDescription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre utilisateur n’est pas connecté à l’environnement, cela empêche certaines fonctionnalités comme le déploiement des modèles\"])},\n \"defineSign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Définir l’utilisateur interface Sign\"])},\n \"solution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solution\"])},\n \"language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue par défaut\"])},\n \"languageEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une langue ---\"])},\n \"validityDuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée de validité (en jours)\"])},\n \"userInterface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateur interface\"])},\n \"userInterfaceEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une interface ---\"])},\n \"twofactorauth\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Méthode double authentification\"])},\n \"twofactorauthEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une méthode ---\"])},\n \"modifyParameters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les paramètres\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisateurs\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom complet\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"disconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déconnecté\"])},\n \"disconnectEnvironement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Déconnecter environnement\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inconnu\"])},\n \"package\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Package\"])},\n \"updateEnvironment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'environnement\"])},\n \"continue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Continuer\"])},\n \"wishedPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version du package souhaité\"])},\n \"wishedPackageEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une version ---\"])},\n \"chooseUpdate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choisissez la mise à jour souhaitée pour l’environnement \"])},\n \"chooseInstallPackage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choisissez l’installation souhaitée pour l’environnement \"])},\n \"updatePackageWarn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En cliquant sur “Continuer†vous serez redirigé vers la page de connexion afin de finaliser la mise à jour du package Gonexa. \"])},\n \"installPackageWarn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En cliquant sur “Continuer†vous serez redirigé vers la page de connexion afin de finaliser l’installation du package Gonexa. \"])},\n \"lastVersionUpdated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version à jour\"])},\n \"everythingOk\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre environnement est correctement configuré\"])},\n \"notDefined\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non définie\"])},\n \"signParameter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Paramètrs de Signature\"])},\n \"update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour\"])},\n \"toUpdate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour\"])},\n \"smsByDefault\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SMS par défaut\"])},\n \"deletionInProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suppression de l'environnement en cours...\"])},\n \"configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration\"])},\n \"connectionToSalesforce\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter un environnement à Salesforce\"])},\n \"configuration1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quel\"])},\n \"configuration2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" type d'envionnement\"])},\n \"configuration3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" souhaitez vous connecter ?\"])},\n \"production\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Production\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sandbox\"])}\n },\n \"webdoc\": {\n \"downloading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Téléchargement du document...\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chargement...\"])},\n \"configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration\"])},\n \"connectionToSalesforce\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connecter un environnement Salesforce\"])},\n \"production\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Production\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sandbox\"])},\n \"configuration1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quel\"])},\n \"configuration2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"type d’environnement\"])},\n \"configuration3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"souhaitez vous connecter ?\"])},\n \"fillBy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"À remplir par \"])},\n \"filledBy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rempli par \"])},\n \"fillByYou\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"À remplir par vous\"])}\n },\n \"datatable\": {\n \"searchTerm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rechercher...\"])},\n \"noDataFound\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune donnée à afficher\"])}\n },\n \"tickets\": {\n \"openTicketCreateView\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ouvrir un nouveau ticket\"])},\n \"openTicketsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des tickets en cours\"])},\n \"closedTicketsList\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des tickets cloturés\"])},\n \"openTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ticket(s) ouvert(s)\"])},\n \"closedTickets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ticket(s) cloturé(s)\"])},\n \"defaultHtmlBody\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"<p>Bonjour,</p><br><p>Description de mon problème : </p><br><p>ID du modèle [Template ID] : </p><p>ID du record en erreur [Record ID] : </p><p>ID du flux en erreur [Flow ID] : </p>\"])},\n \"objects\": {\n \"number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numéro\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description\"])},\n \"created_at\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'ouverture\"])},\n \"closed_at\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de cloture\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statut\"])}\n },\n \"close\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clôture du ticket\"])},\n \"ticketNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ticket n°\"])},\n \"information\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En cliquant sur “Clôturer†votre ticket sera fermé.\"])},\n \"closeReason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raison de la clôture\"])},\n \"closeReasonEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une raison de clôture ---\"])},\n \"closeTicket\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clôture\"])}\n },\n \"create\": {\n \"qualification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualification\"])},\n \"htmlBody\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Soumettre ma demande\"])},\n \"inputs\": {\n \"subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Objet de la demande...\"])},\n \"htmlBodyPlaceholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une description de la demande...\"])},\n \"environment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Environnement concerné\"])},\n \"environmentEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez un environnement ---\"])},\n \"otherOrgIdPickListLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autre environnement\"])},\n \"otherOrgId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id de l'environnement\"])},\n \"product\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Produit concerné\"])},\n \"productEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez un produit ---\"])},\n \"affectedUser\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre d'utilisateurs impactés\"])},\n \"affectedUserEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez un nombre ---\"])},\n \"priority\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priorité\"])},\n \"priorityEmptyLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"--- Sélectionnez une priorité ---\"])},\n \"fileUploaderButtonLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Importer un fichier\"])},\n \"fileUploaderDropLabel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou déposer\"])},\n \"openAccessTitle\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accélérer la résolution en donnant accès à l'environnement\"])},\n \"openAccess\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Je déclare avoir donné accès au support Gonexa pour accélérer la résolution\"])},\n \"openAccessLink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comment ouvrir l'accès au support ?\"])}\n }\n },\n \"edit\": {\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Liste des Tickets\"])},\n \"ticketNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ticket n°\"])},\n \"comment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Commentaire\"])},\n \"commentPlaceholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau commentaire...\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historique\"])},\n \"submitComment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Soumettre mon commentaire\"])},\n \"closeTicket\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clôturer mon ticket\"])}\n }\n },\n \"keys\": {\n \"copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copier\"])},\n \"copied\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copié !\"])}\n },\n \"pickList\": {\n \"status\": {\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau\"])},\n \"inProgress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En cours\"])},\n \"closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clôturé\"])}\n },\n \"product\": {\n \"Doc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doc\"])},\n \"Sign\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sign\"])},\n \"Webdoc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Webdoc\"])},\n \"Connect\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Connect\"])},\n \"RF\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"RF\"])},\n \"Other\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autre\"])}\n },\n \"priority\": {\n \"P1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arret d’un service déjà fonctionnel en production\"])},\n \"P2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arret d’un service déjà fonctionnel en Sandbox\"])},\n \"P3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arret d’un service lors d’une modification ou un déploiement\"])},\n \"P4\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Question ou améliorations diverses\"])}\n },\n \"affectedUser\": {\n \"1 à 20\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"1 à 20 utilisateurs\"])},\n \"20 à 100\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"20 à 100 utilisateurs\"])},\n \"100 à 200\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"100 à 200 utilisateurs\"])},\n \"+200\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plus de 200 utilisateurs\"])}\n }\n },\n \"language\": {\n \"french\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Français\"])},\n \"english\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anglais\"])},\n \"spanish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Espagnol\"])},\n \"german\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allemand\"])},\n \"italian\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Italien\"])},\n \"dutch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Néerlandais\"])},\n \"polish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Polonais\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non définie\"])}\n }\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/png/logo-gonexa.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-191dc664\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"app-auth\"\n}\nconst _hoisted_2 = { class: \"auth\" }\nconst _hoisted_3 = [\"alt\"]\nconst _hoisted_4 = { class: \"main__footer\" }\nconst _hoisted_5 = { class: \"main__footer-text\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"Gonexa\", -1))\nconst _hoisted_7 = {\n target: \"_blank\",\n href: \"https://www.gonexa.fr/legal/mentions\",\n class: \"main__footer-link\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"app-sign\"\n}\nconst _hoisted_9 = {\n key: 2,\n class: \"app\"\n}\nconst _hoisted_10 = { class: \"main\" }\nconst _hoisted_11 = { class: \"main__header\" }\nconst _hoisted_12 = { class: \"main__header-infos\" }\nconst _hoisted_13 = {\n key: 0,\n class: \"main__header-mail\"\n}\nconst _hoisted_14 = { class: \"main__header-name\" }\nconst _hoisted_15 = { class: \"main__header-mail\" }\nconst _hoisted_16 = { class: \"main__body\" }\nconst _hoisted_17 = { class: \"main__footer\" }\nconst _hoisted_18 = { class: \"main__footer-text\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"Gonexa\", -1))\nconst _hoisted_20 = {\n target: \"_blank\",\n href: \"https://www.gonexa.fr/legal/mentions\",\n class: \"main__footer-link\"\n}\nconst _hoisted_21 = {\n key: 3,\n class: \"app\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_LangChoice = _resolveComponent(\"LangChoice\")!\n const _component_NavigationComponent = _resolveComponent(\"NavigationComponent\")!\n\n return (_ctx.$route.meta.requiresAuth == false && _ctx.$route.meta.requiresApp == null && _ctx.$route.name != 'webdoc')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"auth__main\", { '--confirm-mail': _ctx.$route.name == 'email-sent' || _ctx.$route.name == 'lost-sent' }])\n }, [\n _createElementVNode(\"img\", {\n class: \"auth__logo\",\n src: _imports_0,\n alt: _ctx.$t('img.gnxLogo')\n }, null, 8, _hoisted_3),\n _createVNode(_component_router_view)\n ], 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", _hoisted_5, [\n _createTextVNode(\" Copyright © \"),\n _hoisted_6,\n _createTextVNode(\" | \"),\n _createElementVNode(\"a\", _hoisted_7, _toDisplayString(_ctx.$t('app.cgv')), 1)\n ]),\n _createVNode(_component_LangChoice)\n ])\n ]))\n : (_ctx.$route.name == 'webdoc')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createVNode(_component_router_view)\n ]))\n : (_ctx.$route.meta.requiresAuth == true)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(_component_NavigationComponent),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n (_ctx.loggedAs)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('app.loggedAs')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.authStore.firstname + ' ' + _ctx.authStore.lastname), 1),\n _createElementVNode(\"p\", _hoisted_15, _toDisplayString(_ctx.authStore.username), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_router_view)\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"p\", _hoisted_18, [\n _createTextVNode(\" Copyright © \"),\n _hoisted_19,\n _createTextVNode(\" | \"),\n _createElementVNode(\"a\", _hoisted_20, _toDisplayString(_ctx.$t('app.cgv')), 1)\n ]),\n _createVNode(_component_LangChoice)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21))\n}","import { defineStore } from 'pinia';\r\nimport { LoggedUserData } from '@/types/gonexa-auth.type';\r\n\r\nexport const useAuthStore = defineStore('authentication', {\r\n\tstate: () => ({\r\n\t\tusername: null as string | null,\r\n\t\tfirstname: null as string | null,\r\n\t\tlastname: null as string | null,\r\n\t\temail: null as string | null,\r\n\t\troleName: null as string | null,\r\n\t\taccountStatus: null as string | null,\r\n\t\tcompanyStatus: null as string | null,\r\n\t\tcreatedDate: null as string | null,\r\n\t\tuserToken: null as string | null,\r\n\r\n\t\temitDisconnectToast: false,\r\n\t}),\r\n\r\n\t// Computed properties\r\n\tgetters: {},\r\n\r\n\t// Methods\r\n\tactions: {\r\n\t\tasync logUser(user: LoggedUserData) {\r\n\t\t\tthis.username = user.username;\r\n\t\t\tthis.email = user.email;\r\n\t\t\tthis.firstname = user.firstName;\r\n\t\t\tthis.lastname = user.lastName;\r\n\t\t\tthis.roleName = user.roleName;\r\n\t\t\tthis.accountStatus = user.accountStatus;\r\n\t\t\tthis.companyStatus = user.companyStatus;\r\n\t\t\tthis.createdDate = user.createdDate;\r\n\t\t\tthis.userToken = user.userToken;\r\n\t\t},\r\n\r\n\t\tupdateUserToken(userToken: string) {\r\n\t\t\tthis.userToken = userToken;\r\n\t\t},\r\n\r\n\t\tdataToString(): string {\r\n\t\t\treturn `username : ${this.username}\\nfirstname : ${this.firstname}\\nlastname : ${this.lastname}\\nemail : ${this.email}\\nuserToken : ${this.userToken}\\ncreatedDate : ${this.createdDate}\\nroleName : ${this.roleName}\\naccountStatus : ${this.accountStatus}\\ncompanyStatus : ${this.companyStatus}\\ncreatedDate : ${this.createdDate}\\nuserToken : ${this.userToken}\\n`;\r\n\t\t},\r\n\r\n\t\temptyStore(): void {\r\n\t\t\tthis.userToken = null;\r\n\t\t},\r\n\t},\r\n});\r\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/png/logo-app.png'\nimport _imports_1 from '@/assets/svg/double_arrow_left_lightgray.svg'\nimport _imports_2 from '@/assets/svg/double_arrow_right_lightgray.svg'\nimport _imports_3 from '@/assets/svg/dashboard_darkblue.svg'\nimport _imports_4 from '@/assets/svg/histogram_darkblue.svg'\nimport _imports_5 from '@/assets/svg/file_darkblue.svg'\nimport _imports_6 from '@/assets/svg/gear_darkblue.svg'\nimport _imports_7 from '@/assets/svg/workspaces_darkblue.svg'\nimport _imports_8 from '@/assets/svg/import_export_darkblue.svg'\nimport _imports_9 from '@/assets/svg/design.svg'\nimport _imports_10 from '@/assets/svg/headphone.svg'\nimport _imports_11 from '@/assets/svg/door_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-853a57a4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n src: _imports_0,\n class: \"navbar__header-logo\"\n}\nconst _hoisted_2 = { class: \"navbar__body\" }\nconst _hoisted_3 = { class: \"navbar__body-list\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_3,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_4,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_7 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_5,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_9 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_6,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_11 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_7,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_13 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_8,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_15 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_9,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_17 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_18 = { class: \"navbar__body-list\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_10,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_20 = {\n key: 0,\n class: \"navbar__body-title\"\n}\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_11,\n class: \"navbar__body-icon\"\n}, null, -1))\nconst _hoisted_22 = {\n key: 0,\n class: \"navbar__body-title\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"navbar\",\n class: _normalizeClass({ 'nav-closed': !_ctx.navbarState, navbar: _ctx.navbarState })\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass({ 'nav-closed__header': !_ctx.navbarState, navbar__header: _ctx.navbarState })\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass({ 'nav-closed__header-inner': !_ctx.navbarState, 'navbar__header-inner': _ctx.navbarState })\n }, [\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: _imports_0,\n class: \"nav-closed__header-logo\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.manageNavbar()))\n })),\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 2,\n src: _imports_1,\n class: \"navbar__header-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.manageNavbar()))\n }))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 3,\n src: _imports_2,\n class: \"nav-closed__header-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.manageNavbar()))\n }))\n ], 2)\n ], 2),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, {\n class: \"navbar__body-button\",\n to: \"/home\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_4,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, _toDisplayString(_ctx.$t('app.home')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (\r\n\t\t\t\t\t\t_ctx.authStore.roleName?.toLowerCase() == 'owner' &&\r\n\t\t\t\t\t\t_ctx.authStore.companyStatus?.toLowerCase() == 'verified'\r\n\t\t\t\t\t)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"navbar__body-button\",\n to: \"/consumption\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_6,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('app.consumption')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (\r\n\t\t\t\t\t\t_ctx.authStore.roleName?.toLowerCase() == 'owner' &&\r\n\t\t\t\t\t\t_ctx.authStore.companyStatus?.toLowerCase() == 'verified'\r\n\t\t\t\t\t)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"navbar__body-button\",\n to: \"/billing\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_8,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('app.billing')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.authStore.roleName?.toLowerCase() == 'owner')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n class: \"navbar__body-button\",\n to: \"/user\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_10,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('app.users')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_router_link, {\n class: \"navbar__body-button\",\n to: \"/workspaces\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_12,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('app.workspaces')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"navbar__body-button\",\n to: \"/deployment\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_14,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_15, _toDisplayString(_ctx.$t('app.deploiement')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (_ctx.authStore.roleName?.toLowerCase() == 'owner')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 3,\n class: \"navbar__body-button\",\n to: \"/brandings\",\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_16,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('app.brandings')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_router_link, {\n class: \"navbar__body-button\",\n to: \"/cases\",\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.closeIfSmallScreen()))\n }, {\n default: _withCtx(() => [\n _hoisted_19,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_20, _toDisplayString(_ctx.$t('app.help')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createElementVNode(\"a\", {\n href: \"\",\n class: \"navbar__body-button\",\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.disconnectUser()))\n }, [\n _hoisted_21,\n (_ctx.navbarState)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_22, _toDisplayString(_ctx.$t('app.disconnect')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ], 2))\n}","import axios, { AxiosError } from 'axios';\r\nimport { useToast } from 'vue-toastification';\r\nimport { RegisterUserData, RegisteredUserData, LoggedUserData } from '@/types/gonexa-auth.type';\r\nimport { Vue } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\n\r\n// Classe contenant toutes les méthodes d'appels API liés à l'authentification du compte Gonexa\r\nexport default class AuthGonexaService {\r\n\tstatic toast = useToast();\r\n\tstatic authStore: ReturnType<typeof useAuthStore>;\r\n\r\n\t/**\r\n\t * Recupère l'utilisateur connecté stocké dans le localStorage\r\n\t * @returns true si un utilisateur est connecté, false sinon ou si l'accès au Local Storage est impossible\r\n\t */\r\n\tstatic async getLocalUser(): Promise<boolean> {\r\n\t\tthis.authStore = useAuthStore();\r\n\t\tconst localUserToken = localStorage.getItem('APP_U');\r\n\r\n\t\t// Si aucun utilisateur dans le store mais qu'un UserToken est stocké dans le Local Storage,\r\n\t\t// on récupère les infos liées à ce UserToken et on stocke l'utilisateur dans le store\r\n\t\tif (this.authStore.userToken === null && localUserToken) {\r\n\t\t\treturn await axios\r\n\t\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/user`, {\r\n\t\t\t\t\theaders: { Authorization: `Bearer ${localUserToken}` },\r\n\t\t\t\t})\r\n\t\t\t\t.then(({ data }) => {\r\n\t\t\t\t\tdata.userToken = localUserToken;\r\n\t\t\t\t\tthis.authStore.logUser(data);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => {\r\n\t\t\t\t\tconsole.error(`😕 Erreur de récupération de l'utilisateur local - ${error.response.data}`);\r\n\t\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\t\tif (error.response.data === 'ExpiredUserAccessToken') {\r\n\t\t\t\t\t\tthis.toast.info(Vue.prototype.$t('error.tokenExpired'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlocalStorage.removeItem('APP_U');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t} else if (this.authStore.userToken !== null) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Recupère l'utilisateur connecté stocké dans le localStorage\r\n\t * @returns true si un utilisateur est connecté, false sinon ou si l'accès au Local Storage est impossible\r\n\t */\r\n\tstatic async getCompanyStatus(): Promise<string> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/company/status`, {\r\n\t\t\t\theaders: { Authorization: `Bearer ${this.authStore.userToken}` },\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(`😕 Erreur de récupération du statut de la company`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (error.response?.data === 'CompanyDoesNotExists') {\r\n\t\t\t\t\tthis.toast.info(Vue.prototype.$t('error.companyNotIdentified'));\r\n\t\t\t\t} else throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui permet la création d'un nouveau compte\r\n\t * @param userDetails : Données d'inscription saisies par l'utilisateur, envoyées dans le body de la l'appel\r\n\t * @returns RegisteredUserData : Si le compte a pû être créé et le mail de validation envoyé, on retourne l'utilisateur en cours de création. Sinon, une erreur est émise.\r\n\t */\r\n\tstatic async register(userDetails: RegisterUserData): Promise<RegisteredUserData> {\r\n\t\treturn await axios\r\n\t\t\t.post(`${process.env.VUE_APP_APP_API_URI}/api/auth/register`, {\r\n\t\t\t\tusername: userDetails.username,\r\n\t\t\t\tfirstname: userDetails.firstname,\r\n\t\t\t\tlastname: userDetails.lastname,\r\n\t\t\t\temail: userDetails.email,\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans la création du nouvel utilisateur \"${userDetails.username}.\"`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui permet la connexion à un compte Gonexa\r\n\t * @param userDetails : Données de connexion saisies par l'utilisateur, envoyées dans le body de la l'appel\r\n\t * @returns LoggedUserData : Objet contenant les données de l'utilisateur connecté\r\n\t */\r\n\tstatic async login(username: string, encryptedPassword: string): Promise<LoggedUserData> {\r\n\t\treturn await axios\r\n\t\t\t.post(`${process.env.VUE_APP_APP_API_URI}/api/auth/login`, {\r\n\t\t\t\tusername: username,\r\n\t\t\t\tencryptedPassword: encryptedPassword,\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans la connexion de l'utilisateur \"${username}.\"`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async loginAs(username: string, usertoken: string): Promise<LoggedUserData> {\r\n\t\treturn await axios\r\n\t\t\t.post(\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/auth/loginAs`,\r\n\t\t\t\t{\r\n\t\t\t\t\tusername: username,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tAuthorization: `Bearer ${usertoken}`,\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans la connexion de l'utilisateur \"${username}.\"`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Vérifie si le mail-token est bon et renvoie l'utilisateur associé\r\n\t * @param emailtoken : Token genéré en Back et transmis par mail\r\n\t * @param type : Type de la route, verification pour creation du mot de passe ou sa reinitialization\r\n\t * @returns verifiedEmail : Mail vérifié retourné si le token est bon, sinon une erreur est émise\r\n\t */\r\n\tstatic async verifyAccount(emailToken: string, isFirstVerification: boolean): Promise<RegisteredUserData> {\r\n\t\treturn await axios\r\n\t\t\t.post(\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/auth/verify`,\r\n\t\t\t\t{\r\n\t\t\t\t\temailToken: emailToken,\r\n\t\t\t\t\tinit: isFirstVerification,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans la vérification du compte de l'utilisateur.`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Envoie le mail de verification\r\n\t * @param username : username utilisateur\r\n\t * @param email : email utilisateur\r\n\t * @param isFirstVerif : booléen si c'est la première vérification du mail (inscription) ou non (édition du compte)\r\n\t * @returns RegisteredUserData : username et mail à qui a été envoyé la vérification\r\n\t */\r\n\tstatic async sendEmail(username: string, email: string, isFirstVerif: boolean): Promise<RegisteredUserData> {\r\n\t\tlocalStorage.setItem('APP_U_M', JSON.stringify({ username: username, email: email }));\r\n\t\tconst url = isFirstVerif ? 'first-verification' : 'verification';\r\n\r\n\t\treturn await axios\r\n\t\t\t.post(`${process.env.VUE_APP_APP_API_URI}/api/email/${url}`, {\r\n\t\t\t\tusername: username,\r\n\t\t\t\temail: email,\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans l'envoi d'un mail de vérification.`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode pour initialiser le mot de passe de l'utilisateur\r\n\t * @param password : Mot de passe saisi par l'utilisateur\r\n\t * @param username : Nom du compte utilisateur qui initialise son mot de passe\r\n\t * @param token : token passé dans l'url (emailToken)\r\n\t * @returns utilisateur qui a créé sont mdp, sinon une erreur est émise\r\n\t */\r\n\tstatic async createPassword(password: string, username: string, token: string) {\r\n\t\treturn await axios\r\n\t\t\t.post(\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/user/password`,\r\n\t\t\t\t{\r\n\t\t\t\t\tencryptedPassword: password,\r\n\t\t\t\t\tusername: username,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` },\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans le changement de mot de passe.`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode pour mettre à jour le mot de passe de l'utilisateur\r\n\t * @param password : Mot de passe saisi par l'utilisateur\r\n\t * @param username : Nom du compte utilisateur qui initialise son mot de passe\r\n\t * @param token : token passé dans l'url (emailToken)\r\n\t * @returns utilisateur qui a mis à jour son mdp, sinon une erreur est émise\r\n\t */\r\n\tstatic async updatePassword(password: string, username: string, token: string) {\r\n\t\treturn await axios\r\n\t\t\t.patch(\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/user/password`,\r\n\t\t\t\t{\r\n\t\t\t\t\tencryptedPassword: password,\r\n\t\t\t\t\tusername: username,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` },\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(`😕 Erreur dans le changement de mot de passe.`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async disconnectUser(token: string) {\r\n\t\treturn axios.post(\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/user/disconnect`,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\theaders: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` },\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\n\r\nexport default class NavigationComponent extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\tnavbarState = true;\r\n\r\n\tasync mounted() {\r\n\t\tconst navbarStateLS = localStorage.getItem('APP_NB');\r\n\t\tif (navbarStateLS) this.navbarState = navbarStateLS == 'true' ? true : false;\r\n\t\twindow.addEventListener('resize', this.closeIfSmallScreen);\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode pour gérer l'ouverture et la fermeture de la barre de navigation\r\n\t * Et ajout en localstorage de cet état, pour qu'il soit conservé même si la page est rechargée\r\n\t */\r\n\tmanageNavbar() {\r\n\t\tthis.navbarState = !this.navbarState;\r\n\t\tlocalStorage.setItem('APP_NB', this.navbarState.toString());\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode pour déconnecter l'utilisateur\r\n\t */\r\n\tdisconnectUser() {\r\n\t\tconst localUserToken = localStorage.getItem('APP_U');\r\n\t\tif (localUserToken) {\r\n\t\t\tAuthGonexaService.disconnectUser(localUserToken);\r\n\t\t}\r\n\t\tlocalStorage.removeItem('APP_U');\r\n\t\tlocalStorage.removeItem('APP_LOG_AS');\r\n\t\tthis.authStore.emptyStore();\r\n\t\tthis.authStore.emitDisconnectToast = true;\r\n\t\tthis.$router.push({ name: 'login' });\r\n\t}\r\n\r\n\tcloseIfSmallScreen() {\r\n\t\tif (window.innerWidth <= 768 && this.navbarState) {\r\n\t\t\tthis.navbarState = !this.navbarState;\r\n\t\t\tlocalStorage.setItem('APP_NB', this.navbarState.toString());\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./NavigationComponent.vue?vue&type=template&id=853a57a4&scoped=true&ts=true\"\nimport script from \"./NavigationComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./NavigationComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./NavigationComponent.vue?vue&type=style&index=0&id=853a57a4&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-853a57a4\"]])\n\nexport default __exports__","import { vModelCheckbox as _vModelCheckbox, createElementVNode as _createElementVNode, withDirectives as _withDirectives, normalizeClass as _normalizeClass, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-toggle-btn\",\n type: \"checkbox\",\n id: \"change-lang\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.changeLanguage && _ctx.changeLanguage(...args))),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.currentLang) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.currentLang]\n ]),\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"gnx-toggle-txt dashboard__lang\", !_ctx.currentLang ? 'fr' : 'en']),\n for: \"change-lang\"\n }, null, 2)\n ], 64))\n}","\r\nimport { Vue } from 'vue-class-component';\r\n\r\nexport default class LangChoice extends Vue {\r\n\tpublic currentLang = false;\r\n\r\n\tmounted() {\r\n\t\t// Valeur par défaut de la langue\r\n\t\tconst lang = localStorage.getItem('APP_LG');\r\n\t\tthis.currentLang = lang == 'en' ? true : false;\r\n\t}\r\n\r\n\tpublic changeLanguage() {\r\n\t\tthis.$i18n.locale = this.currentLang ? 'fr' : 'en';\r\n\t\tlocalStorage.setItem('APP_LG', this.$i18n.locale);\r\n\t\twindow.dispatchEvent(new Event('langChanged'));\r\n\t}\r\n}\r\n","import { render } from \"./LangChoice.vue?vue&type=template&id=833c74c6&scoped=true&ts=true\"\nimport script from \"./LangChoice.vue?vue&type=script&lang=ts\"\nexport * from \"./LangChoice.vue?vue&type=script&lang=ts\"\n\nimport \"./LangChoice.vue?vue&type=style&index=0&id=833c74c6&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-833c74c6\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useAuthStore } from './stores/authentication.store';\r\nimport NavigationComponent from './components/general/NavigationComponent.vue';\r\nimport { Vue } from 'vue-class-component';\r\nimport LangChoice from '@/components/general/LangChoice.vue';\r\n\r\nexport default defineComponent({\r\n\tname: 'App',\r\n\r\n\tcomponents: {\r\n\t\tNavigationComponent,\r\n\t\tLangChoice,\r\n\t},\r\n\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttoast: useToast(),\r\n\t\t\tauthStore: useAuthStore(),\r\n\t\t\tloggedAs: false,\r\n\t\t};\r\n\t},\r\n\r\n\tasync mounted() {\r\n\t\t// Configuration de l'accessibilité des traductions dans les services\r\n\t\tVue.prototype.$t = this.$t;\r\n\r\n\t\t// Configuration de l'initialisation de la langue de l'App\r\n\t\tconst lang = localStorage.getItem('APP_LG');\r\n\t\tif (!lang) localStorage.setItem('APP_LG', 'fr');\r\n\t\tthis.$i18n.locale = lang ? (lang == 'en' ? 'en' : 'fr') : 'fr';\r\n\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tlet loggedAs = localStorage.getItem('APP_LOG_AS');\r\n\t\t\tif (loggedAs && loggedAs == 'true') this.loggedAs = true;\r\n\t\t\telse {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tloggedAs = localStorage.getItem('APP_LOG_AS');\r\n\t\t\t\t\tif (loggedAs && loggedAs == 'true') this.loggedAs = true;\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=191dc664&scoped=true&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=191dc664&lang=scss\"\nimport \"./App.vue?vue&type=style&index=1&id=191dc664&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-191dc664\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0e5c1526\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"auth__confirm-mail\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"auth__title\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"auth__title\"\n}\nconst _hoisted_4 = { class: \"mail-sent__body\" }\nconst _hoisted_5 = { class: \"auth__text\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"auth__text\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"auth__text\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.$route.name == 'email-sent')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('auth.emails.confirm')), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.$route.name == 'lost-sent')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('auth.password.reset')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('auth.emails.sent')) + \" \", 1),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.user.email), 1)\n ]),\n (_ctx.$route.name == 'email-sent')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.emails.consult')), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.$route.name == 'lost-sent')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('auth.emails.consultReset')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.resendEmail()))\n }, _toDisplayString(_ctx.$t('auth.emails.resend')), 1)\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\n\r\nexport default class EmailSent extends Vue {\r\n\ttoast = useToast();\r\n\tuser = {} as { username: string; email: string };\r\n\r\n\tmounted() {\r\n\t\ttry {\r\n\t\t\tconst lsData = localStorage.getItem('APP_U_M');\r\n\t\t\tthis.user = lsData ? JSON.parse(lsData) : '';\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(this.$t('consoleError.emailLS'));\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n\r\n\tasync resendEmail() {\r\n\t\tawait AuthGonexaService.sendEmail(\r\n\t\t\tthis.user.username,\r\n\t\t\tthis.user.email,\r\n\t\t\tthis.$route.name == 'email-sent' ? true : false\r\n\t\t)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.toast.success(this.$t('success.emailResend'));\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tif (error.message == 'WrongEmailForUsername') this.toast.error(this.$t('error.email.wrongAddress'));\r\n\t\t\t\telse if (error.message == 'UserDoesNotExist') this.toast.error(this.$t('error.auth.unknownUsername'));\r\n\t\t\t\telse this.toast.error(this.$t('error.email.resend'));\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { render } from \"./EmailSent.vue?vue&type=template&id=0e5c1526&scoped=true&ts=true\"\nimport script from \"./EmailSent.vue?vue&type=script&lang=ts\"\nexport * from \"./EmailSent.vue?vue&type=script&lang=ts\"\n\nimport \"./EmailSent.vue?vue&type=style&index=0&id=0e5c1526&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0e5c1526\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f12b012c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"register\" }\nconst _hoisted_2 = { class: \"register__header\" }\nconst _hoisted_3 = { class: \"auth__title\" }\nconst _hoisted_4 = { class: \"auth__text\" }\nconst _hoisted_5 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_6 = { class: \"gnx-label\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_8 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_9 = { class: \"gnx-label\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_11 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_12 = { class: \"gnx-label\" }\nconst _hoisted_13 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_14 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_15 = { class: \"gnx-label\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_17 = [\"type\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"app-spinner --small\"\n}\nconst _hoisted_19 = { class: \"register__login\" }\nconst _hoisted_20 = {\n class: \"register__login-link\",\n href: \"/login\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('auth.welcome')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('auth.registerIntro')), 1)\n ]),\n _createElementVNode(\"form\", {\n onSubmit: _cache[9] || (_cache[9] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.registerNewUser && _ctx.registerNewUser(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.inputs.firstname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.firstname }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.newUser.firstname) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (_ctx.inputErrors.firstname = !_ctx.newUser.firstname ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, _ctx.newUser.firstname]\n ]),\n (_ctx.inputErrors.firstname)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.inputErrors.firstname), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('auth.inputs.lastname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.lastname }]),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.newUser.lastname) = $event)),\n onFocusout: _cache[3] || (_cache[3] = ($event: any) => (_ctx.inputErrors.lastname = !_ctx.newUser.lastname ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, _ctx.newUser.lastname]\n ]),\n (_ctx.inputErrors.lastname)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_10, _toDisplayString(_ctx.inputErrors.lastname), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.$t('auth.inputs.email')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"mail\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.email }]),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.newUser.email) = $event)),\n onFocusout: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.onFocusOutEmail && _ctx.onFocusOutEmail(...args)))\n }, null, 34), [\n [_vModelText, _ctx.newUser.email]\n ]),\n (_ctx.inputErrors.email)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_13, _toDisplayString(_ctx.inputErrors.email), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"p\", _hoisted_15, _toDisplayString(_ctx.$t('auth.inputs.username')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.username }]),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.newUser.username) = $event)),\n onFocusout: _cache[7] || (_cache[7] = ($event: any) => (_ctx.inputErrors.username = !_ctx.newUser.username ? _ctx.$t('error.emptyField') : '')),\n onInput: _cache[8] || (_cache[8] = ($event: any) => {\r\n\t\t\t\t\t\tif (_ctx.inputErrors.username == _ctx.$t('error.auth.usernameAlreadyExists')) _ctx.inputErrors.username = '';\r\n\t\t\t\t\t})\n }, null, 34), [\n [_vModelText, _ctx.newUser.username]\n ]),\n (_ctx.inputErrors.username)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_16, _toDisplayString(_ctx.inputErrors.username), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: !_ctx.registerLoading ? 'submit' : 'button',\n class: \"register__submit gnx-btn _primary app-form__btn\"\n }, [\n _createTextVNode(_toDisplayString(!_ctx.registerLoading ? _ctx.$t('auth.buttons.createAccount') : '') + \" \", 1),\n (_ctx.registerLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_17)\n ], 32),\n _createElementVNode(\"p\", _hoisted_19, [\n _createTextVNode(_toDisplayString(_ctx.$t('auth.alreadyAccount')) + \" \", 1),\n _createElementVNode(\"a\", _hoisted_20, _toDisplayString(_ctx.$t('auth.buttons.login')), 1)\n ])\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { RegisterUserData, RegisteredUserData } from '@/types/gonexa-auth.type';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\n\r\ninterface RegisterInputs {\r\n\tfirstname: string;\r\n\tlastname: string;\r\n\temail: string;\r\n\tusername: string;\r\n}\r\n\r\nexport default class RegisterForm extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\tregisterLoading = false;\r\n\r\n\tnewUser: RegisterUserData = {\r\n\t\tfirstname: '',\r\n\t\tlastname: '',\r\n\t\temail: '',\r\n\t\tusername: '',\r\n\t}; // Objet qui contient les donénes saisies par l'utilisateur\r\n\tinputErrors = {} as RegisterInputs; // Objet qui contient les messages erreurs associés à chaque champ de saisie\r\n\r\n\tonFocusOutEmail() {\r\n\t\tthis.inputErrors.email = !this.newUser.email ? this.$t('error.emptyField') : '';\r\n\t\tif (\r\n\t\t\t(this.newUser.username == null || this.newUser.username == '') &&\r\n\t\t\tthis.newUser.email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)\r\n\t\t)\r\n\t\t\tthis.newUser.username = this.newUser.email;\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui déclenche la création d'un nouveau compte Gonexa en base si les données sont valides\r\n\t */\r\n\tasync registerNewUser() {\r\n\t\tif (this.checkInputErrors()) {\r\n\t\t\tthis.registerLoading = true;\r\n\r\n\t\t\tAuthGonexaService.register(this.newUser)\r\n\t\t\t\t.then((response: RegisteredUserData) => {\r\n\t\t\t\t\tthis.registerLoading = false;\r\n\r\n\t\t\t\t\tconst userLocalData = JSON.stringify({ username: response.username, email: response.email });\r\n\t\t\t\t\tlocalStorage.setItem('APP_U_M', userLocalData);\r\n\t\t\t\t\tthis.$router.push({ name: 'email-sent' });\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error: Error) => {\r\n\t\t\t\t\tthis.registerLoading = false;\r\n\r\n\t\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\t\tcase 'UsernameAlreadyExists':\r\n\t\t\t\t\t\t\tthis.inputErrors.username = this.$t('error.auth.usernameAlreadyExists');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'RegistrationAlreadyCompleted':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.alreadyRegistered'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'SendingMailError' || 'SmtpClientError' || 'MailTokenError':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.email.send'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.register'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode de vérification des données saisies par l'utilisateur avant qu'elles ne soient envoyées à l'API pour inscription\r\n\t * @returns boolean : true si les données sont valides et peuvent être envoyées, fales sinon\r\n\t */\r\n\tcheckInputErrors(): boolean {\r\n\t\tlet validateRegistration = true;\r\n\r\n\t\tif (!this.newUser.firstname) {\r\n\t\t\tthis.inputErrors.firstname = this.$t('error.emptyField');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (!this.newUser.lastname) {\r\n\t\t\tthis.inputErrors.lastname = this.$t('error.emptyField');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (!this.newUser.email) {\r\n\t\t\tthis.inputErrors.email = this.$t('error.emptyField');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (!this.newUser.email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)) {\r\n\t\t\tthis.inputErrors.email = this.$t('error.email.wrongFormat');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (!this.newUser.username) {\r\n\t\t\tthis.inputErrors.username = this.$t('error.emptyField');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (this.newUser.username.match(/\\+/)) {\r\n\t\t\tthis.inputErrors.username = this.$t('error.NotPlus');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\tif (!this.newUser.username.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)) {\r\n\t\t\tthis.inputErrors.username = this.$t('error.auth.username');\r\n\t\t\tvalidateRegistration = false;\r\n\t\t}\r\n\r\n\t\treturn validateRegistration;\r\n\t}\r\n}\r\n","import { render } from \"./RegisterForm.vue?vue&type=template&id=f12b012c&scoped=true&ts=true\"\nimport script from \"./RegisterForm.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterForm.vue?vue&type=script&lang=ts\"\n\nimport \"./RegisterForm.vue?vue&type=style&index=0&id=f12b012c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f12b012c\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelDynamic as _vModelDynamic, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/eye-grey.svg'\nimport _imports_1 from '@/assets/svg/eye-crossed-grey.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95c0309c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"login\" }\nconst _hoisted_2 = { class: \"login__header\" }\nconst _hoisted_3 = { class: \"auth__title\" }\nconst _hoisted_4 = { class: \"auth__text\" }\nconst _hoisted_5 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_6 = { class: \"gnx-label\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_8 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_9 = { class: \"gnx-label\" }\nconst _hoisted_10 = [\"type\"]\nconst _hoisted_11 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_12 = {\n key: 0,\n class: \"password__eye-icon\",\n src: _imports_0,\n alt: \"\"\n}\nconst _hoisted_13 = {\n key: 1,\n class: \"password__eye-icon\",\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_14 = {\n class: \"login__forget\",\n href: \"/lost-password\"\n}\nconst _hoisted_15 = {\n key: 0,\n class: \"app-spinner --small\"\n}\nconst _hoisted_16 = { class: \"login__register\" }\nconst _hoisted_17 = {\n class: \"login__register-link\",\n href: \"/register\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('auth.welcome')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('auth.loginIntro')), 1)\n ]),\n _createElementVNode(\"form\", {\n onSubmit: _cache[8] || (_cache[8] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.loginUser && _ctx.loginUser(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.inputs.username')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.username }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.gnxUser.username) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (_ctx.inputErrors.username = !_ctx.gnxUser.username ? _ctx.$t('error.emptyField') : '')),\n onInput: _cache[2] || (_cache[2] = ($event: any) => {if (_ctx.inputErrors.username == _ctx.$t('error.auth.unknownUsername')) _ctx.inputErrors.username = '';})\n }, null, 34), [\n [_vModelText, _ctx.gnxUser.username]\n ]),\n (_ctx.inputErrors.username)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.inputErrors.username), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('auth.inputs.password')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: _ctx.seePassword ? 'text' : 'password',\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.inputErrors.encryptedPassword }]),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.gnxUser.password) = $event)),\n onFocusout: _cache[4] || (_cache[4] = ($event: any) => (_ctx.inputErrors.encryptedPassword = !_ctx.gnxUser.password ? _ctx.$t('error.emptyField') : '')),\n onInput: _cache[5] || (_cache[5] = ($event: any) => {\r\n\t\t\t\t\t\tif (_ctx.inputErrors.encryptedPassword == _ctx.$t('error.auth.wrongPassword'))\r\n\t\t\t\t\t\t\t_ctx.inputErrors.encryptedPassword = '';\r\n\t\t\t\t\t})\n }, null, 42, _hoisted_10), [\n [_vModelDynamic, _ctx.gnxUser.password]\n ]),\n (_ctx.inputErrors.encryptedPassword)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.inputErrors.encryptedPassword), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"password__eye-btn\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.seePassword = !_ctx.seePassword))\n }, [\n (_ctx.seePassword)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_12))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_13))\n ])\n ]),\n _createElementVNode(\"a\", _hoisted_14, _toDisplayString(_ctx.$t('auth.buttons.forgotPassword')), 1),\n _createElementVNode(\"button\", {\n type: \"submit\",\n class: \"login__submit gnx-btn _primary app-form__btn\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => (!_ctx.loginLoading ? _ctx.loginUser : ''))\n }, [\n _createTextVNode(_toDisplayString(!_ctx.loginLoading ? _ctx.$t('auth.buttons.login') : '') + \" \", 1),\n (_ctx.loginLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15))\n : _createCommentVNode(\"\", true)\n ])\n ], 32),\n _createElementVNode(\"p\", _hoisted_16, [\n _createTextVNode(_toDisplayString(_ctx.$t('auth.noAccount')) + \" \", 1),\n _createElementVNode(\"a\", _hoisted_17, _toDisplayString(_ctx.$t('auth.buttons.register')), 1)\n ])\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { LoginUserData, LoggedUserData } from '@/types/gonexa-auth.type';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\n\r\ninterface LoginInputs {\r\n\tusername: string;\r\n\tencryptedPassword: string;\r\n}\r\n\r\nexport default class LoginForm extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\tseePassword = false;\r\n\tloginLoading = false;\r\n\r\n\tgnxUser = {} as LoginUserData; // Objet qui contient les donénes saisies par l'utilisateur\r\n\tinputErrors = {} as LoginInputs; // Objet qui contient les messages erreurs associés à chaque champ de saisie\r\n\r\n\tmounted() {\r\n\t\tif (this.authStore.emitDisconnectToast) {\r\n\t\t\tthis.toast.info(this.$t('auth.disconnected'));\r\n\t\t\tthis.authStore.emitDisconnectToast = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui déclenche la connexion à un compte Gonexa en base si les données sont valides\r\n\t */\r\n\tasync loginUser() {\r\n\t\tif (this.checkInputErrors()) {\r\n\t\t\tthis.loginLoading = true;\r\n\t\t\tconst encryptedPassword = btoa(this.gnxUser.password);\r\n\r\n\t\t\tAuthGonexaService.login(this.gnxUser.username, encryptedPassword)\r\n\t\t\t\t.then(async (response: LoggedUserData) => {\r\n\t\t\t\t\tthis.loginLoading = false;\r\n\t\t\t\t\tlocalStorage.setItem('APP_U', response.userToken);\r\n\t\t\t\t\tthis.authStore.logUser(response);\r\n\r\n\t\t\t\t\t// Check si l'utilisateur souhaitait accéder à une autre page avant sa connection\r\n\t\t\t\t\tconst nextPage = localStorage.getItem('APP_NEXT_LOGIN');\r\n\r\n\t\t\t\t\tif (nextPage) {\r\n\t\t\t\t\t\t// Si oui, clean du LocalStorage et redirection vers cette page\r\n\t\t\t\t\t\tlocalStorage.removeItem('APP_NEXT_LOGIN');\r\n\t\t\t\t\t\tthis.$router.push({ name: nextPage });\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Sinon, redirection vers la page d'accueil classique\r\n\t\t\t\t\t\tthis.$router.push({ name: 'home' });\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error: Error) => {\r\n\t\t\t\t\tthis.loginLoading = false;\r\n\r\n\t\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\t\tcase 'UsernameNotExisting': {\r\n\t\t\t\t\t\t\tthis.inputErrors.username = this.$t('error.auth.unknownUsername');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'RegistrationNotSucceeded':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.registrationNotSucceeded'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'WrongPassword': {\r\n\t\t\t\t\t\t\tthis.inputErrors.encryptedPassword = this.$t('error.auth.wrongPassword');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.login'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcheckInputErrors(): boolean {\r\n\t\tlet validateLogin = true;\r\n\r\n\t\tif (!this.gnxUser.username) {\r\n\t\t\tthis.inputErrors.username = this.$t('error.emptyField');\r\n\t\t\tvalidateLogin = false;\r\n\t\t}\r\n\r\n\t\tif (!this.gnxUser.password) {\r\n\t\t\tthis.inputErrors.encryptedPassword = this.$t('error.emptyField');\r\n\t\t\tvalidateLogin = false;\r\n\t\t}\r\n\r\n\t\treturn validateLogin;\r\n\t}\r\n}\r\n","import { render } from \"./LoginForm.vue?vue&type=template&id=95c0309c&scoped=true&ts=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts\"\n\nimport \"./LoginForm.vue?vue&type=style&index=0&id=95c0309c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-95c0309c\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelDynamic as _vModelDynamic, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/check_green.svg'\nimport _imports_1 from '@/assets/svg/eye-grey.svg'\nimport _imports_2 from '@/assets/svg/eye-crossed-grey.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-99a94de0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password\" }\nconst _hoisted_2 = { class: \"password__header\" }\nconst _hoisted_3 = { class: \"auth__title\" }\nconst _hoisted_4 = { class: \"auth__text\" }\nconst _hoisted_5 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_6 = { class: \"gnx-label\" }\nconst _hoisted_7 = [\"type\"]\nconst _hoisted_8 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_9 = {\n key: 1,\n src: _imports_0,\n class: \"password__ok-icon\"\n}\nconst _hoisted_10 = {\n key: 0,\n class: \"password__eye-icon\",\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_11 = {\n key: 1,\n class: \"password__eye-icon\",\n src: _imports_2,\n alt: \"\"\n}\nconst _hoisted_12 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_13 = { class: \"gnx-label\" }\nconst _hoisted_14 = [\"type\"]\nconst _hoisted_15 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_16 = {\n key: 1,\n src: _imports_0,\n class: \"password__ok-icon\",\n alt: \"\"\n}\nconst _hoisted_17 = {\n key: 0,\n class: \"password__eye-icon\",\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_18 = {\n key: 1,\n class: \"password__eye-icon\",\n src: _imports_2,\n alt: \"\"\n}\nconst _hoisted_19 = [\"disabled\"]\nconst _hoisted_20 = {\n key: 0,\n class: \"app-spinner --small\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$route.name == 'initialize-password' ? _ctx.$t('auth.welcome') : _ctx.$t('auth.password.reset')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('auth.password.defineFor')) + \" \" + _toDisplayString(_ctx.verifiedUsername), 1)\n ]),\n _createElementVNode(\"form\", {\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$route.name == 'initialize-password' ? _ctx.createPassword() : _ctx.updatePassword()), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.inputs.password')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: _ctx.seePassword ? 'text' : 'password',\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.pwdErrors.pwd }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.password) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (_ctx.pwdErrors.pwd = !_ctx.password ? _ctx.$t('error.emptyField') : ''))\n }, null, 42, _hoisted_7), [\n [_vModelDynamic, _ctx.password]\n ]),\n (_ctx.pwdErrors.pwd)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(_ctx.pwdErrors.pwd), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.password != '' && _ctx.password.match(/^[a-zA-Z0-9À-ÿ-.,_?!:;^*+=~<>()[\\]{}|#$%&/@\\\\]{12,}$/gi))\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"password__eye-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.seePassword = !_ctx.seePassword))\n }, [\n (_ctx.seePassword)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_10))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_11))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('auth.password.check')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: _ctx.seePasswordCheck ? 'text' : 'password',\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.pwdErrors.pwdCheck }]),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.passwordCheck) = $event)),\n onFocusout: _cache[4] || (_cache[4] = ($event: any) => (_ctx.pwdErrors.pwdCheck = !_ctx.passwordCheck ? _ctx.$t('error.emptyField') : ''))\n }, null, 42, _hoisted_14), [\n [_vModelDynamic, _ctx.passwordCheck]\n ]),\n (_ctx.pwdErrors.pwdCheck)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_15, _toDisplayString(_ctx.pwdErrors.pwdCheck), 1))\n : _createCommentVNode(\"\", true),\n (\r\n\t\t\t\t\t\t_ctx.passwordCheck === _ctx.password &&\r\n\t\t\t\t\t\t_ctx.passwordCheck != '' &&\r\n\t\t\t\t\t\t_ctx.password.match(/^[a-zA-Z0-9À-ÿ-.,_?!:;^*+=~<>()[\\]{}|#$%&/@\\\\]{12,}$/gi)\r\n\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"password__eye-btn\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.seePasswordCheck = !_ctx.seePasswordCheck))\n }, [\n (_ctx.seePasswordCheck)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_17))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_18))\n ])\n ]),\n _createElementVNode(\"button\", {\n class: \"password__submit gnx-btn _primary app-form__btn\",\n disabled: _ctx.buttonLoading\n }, [\n _createTextVNode(_toDisplayString(!_ctx.buttonLoading\r\n\t\t\t\t\t\t? _ctx.$route.name == 'initialize-password'\r\n\t\t\t\t\t\t\t? _ctx.$t('auth.buttons.validAccount')\r\n\t\t\t\t\t\t\t: _ctx.$t('auth.buttons.reset')\r\n\t\t\t\t\t\t: '') + \" \", 1),\n (_ctx.buttonLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_19)\n ], 32)\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\nimport { RegisteredUserData } from '@/types/gonexa-auth.type';\r\n\r\ninterface PasswordInputs {\r\n\tpwd: string;\r\n\tpwdCheck: string;\r\n}\r\n\r\nexport default class UpdatePasswordForm extends Vue {\r\n\ttoast = useToast();\r\n\r\n\tverifiedUsername = '';\r\n\tverifiedEmail = '';\r\n\temailToken = '';\r\n\r\n\tpassword = '';\r\n\tpasswordCheck = '';\r\n\tseePassword = false;\r\n\tseePasswordCheck = false;\r\n\tpwdErrors = {} as PasswordInputs;\r\n\r\n\tbuttonLoading = false;\r\n\r\n\tasync mounted() {\r\n\t\tthis.emailToken = this.$route.params.emailToken.toString();\r\n\r\n\t\tAuthGonexaService.verifyAccount(this.emailToken, this.$route.name == 'initialize-password' ? true : false)\r\n\t\t\t.then((response: RegisteredUserData) => {\r\n\t\t\t\tthis.verifiedUsername = response.username;\r\n\t\t\t\tthis.verifiedEmail = response.email;\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\tcase 'UserDoesNotExist': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.unknownUser'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'RegistrationAlreadyCompleted': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.passwordAlreadyInitialized'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'RegistrationNotCompleted': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.passwordNotInitialized'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.email.verify'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.$router.push('/login');\r\n\t\t\t});\r\n\t}\r\n\r\n\tasync createPassword() {\r\n\t\tif (this.checkPasswordValidity()) {\r\n\t\t\tthis.buttonLoading = true;\r\n\t\t\tconst encryptedPassword = btoa(this.password);\r\n\r\n\t\t\tAuthGonexaService.createPassword(encryptedPassword, this.verifiedUsername, this.emailToken)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t\tthis.toast.success(this.$t('success.registrationCompleted'));\r\n\t\t\t\t\tthis.$router.push({ name: 'login' });\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error: Error) => {\r\n\t\t\t\t\tif (error.message == 'PasswordAlreadyInitialized')\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.passwordAlreadyInitialized'));\r\n\t\t\t\t\telse if (error.message == 'EmailNotVerified') this.toast.error(this.$t('error.email.notVerified'));\r\n\t\t\t\t\telse this.toast.error(this.$t('error.auth.initPassword'));\r\n\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tasync updatePassword() {\r\n\t\tif (this.checkPasswordValidity()) {\r\n\t\t\tthis.buttonLoading = true;\r\n\t\t\tconst encryptedPassword = btoa(this.password);\r\n\r\n\t\t\tAuthGonexaService.updatePassword(encryptedPassword, this.verifiedUsername, this.emailToken)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t\tthis.toast.success(this.$t('success.registrationCompleted'));\r\n\t\t\t\t\tthis.$router.push({ name: 'login' });\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error: Error) => {\r\n\t\t\t\t\tif (error.message == 'RegistrationNotCompleted')\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.passwordNotInitialized'));\r\n\t\t\t\t\telse this.toast.error(this.$t('error.auth.updatePassword'));\r\n\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcheckPasswordValidity(): boolean {\r\n\t\tlet validatePassword = true;\r\n\r\n\t\tif (this.password != this.passwordCheck && this.password != '' && this.passwordCheck != '') {\r\n\t\t\tthis.pwdErrors.pwdCheck = this.$t('error.auth.differentPasswords');\r\n\t\t\tvalidatePassword = false;\r\n\t\t}\r\n\r\n\t\tif (!this.password.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z\\d]).{12,}$/gi)) {\r\n\t\t\tthis.pwdErrors.pwd = this.$t('error.auth.passwordStrength');\r\n\t\t\tvalidatePassword = false;\r\n\t\t}\r\n\r\n\t\tif (!this.password) {\r\n\t\t\tthis.pwdErrors.pwd = this.$t('error.emptyField');\r\n\t\t\tvalidatePassword = false;\r\n\t\t}\r\n\r\n\t\tif (!this.passwordCheck) {\r\n\t\t\tthis.pwdErrors.pwdCheck = this.$t('error.emptyField');\r\n\t\t\tvalidatePassword = false;\r\n\t\t}\r\n\r\n\t\treturn validatePassword;\r\n\t}\r\n}\r\n","import { render } from \"./UpdatePasswordForm.vue?vue&type=template&id=99a94de0&scoped=true&ts=true\"\nimport script from \"./UpdatePasswordForm.vue?vue&type=script&lang=ts\"\nexport * from \"./UpdatePasswordForm.vue?vue&type=script&lang=ts\"\n\nimport \"./UpdatePasswordForm.vue?vue&type=style&index=0&id=99a94de0&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-99a94de0\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2bef759a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password\" }\nconst _hoisted_2 = { class: \"password__header\" }\nconst _hoisted_3 = { class: \"auth__title\" }\nconst _hoisted_4 = { class: \"auth__text\" }\nconst _hoisted_5 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_6 = { class: \"gnx-label\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_8 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_9 = { class: \"gnx-label\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = {\n key: 0,\n class: \"app-spinner --small\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('auth.password.reset')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('auth.password.resetIntro')), 1)\n ]),\n _createElementVNode(\"form\", {\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.sendForgotPasswordEmail && _ctx.sendForgotPasswordEmail(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.inputs.username')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.usernameError }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.username) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (_ctx.usernameError = !_ctx.username ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, _ctx.username]\n ]),\n (_ctx.usernameError)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.usernameError), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('auth.inputs.email')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"mail\",\n class: _normalizeClass([\"gnx-field-text\", { _error: _ctx.emailError }]),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.email) = $event)),\n onFocusout: _cache[3] || (_cache[3] = ($event: any) => (_ctx.emailError = !_ctx.email ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, _ctx.email]\n ]),\n (_ctx.emailError)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_10, _toDisplayString(_ctx.emailError), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n class: \"password__submit gnx-btn _primary app-form__btn\",\n disabled: _ctx.buttonLoading\n }, [\n _createTextVNode(_toDisplayString(!_ctx.buttonLoading ? _ctx.$t('auth.buttons.reset') : '') + \" \", 1),\n (_ctx.buttonLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_11)\n ], 32)\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\n\r\nexport default class LostPasswordForm extends Vue {\r\n\ttoast = useToast();\r\n\tbuttonLoading = false;\r\n\r\n\tusername = '';\r\n\tusernameError = '';\r\n\r\n\temail = '';\r\n\temailError = '';\r\n\r\n\tasync sendForgotPasswordEmail() {\r\n\t\tthis.buttonLoading = true;\r\n\r\n\t\tif (!this.username) {\r\n\t\t\tthis.usernameError = this.$t('error.emptyField');\r\n\t\t} else if (!this.email) {\r\n\t\t\tthis.emailError = this.$t('error.emptyField');\r\n\t\t} else {\r\n\t\t\tawait AuthGonexaService.sendEmail(this.username, this.email, false)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t\tthis.$router.push({ name: 'lost-sent' });\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error: Error) => {\r\n\t\t\t\t\tif (error.message == 'WrongEmailForUsername') this.toast.error(this.$t('error.email.wrongAddress'));\r\n\t\t\t\t\telse if (error.message == 'UserDoesNotExist')\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.unknownUsername'));\r\n\t\t\t\t\telse this.toast.error(this.$t('error.email.send'));\r\n\r\n\t\t\t\t\tthis.buttonLoading = false;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.buttonLoading = false;\r\n\t}\r\n}\r\n","import { render } from \"./LostPasswordForm.vue?vue&type=template&id=2bef759a&scoped=true&ts=true\"\nimport script from \"./LostPasswordForm.vue?vue&type=script&lang=ts\"\nexport * from \"./LostPasswordForm.vue?vue&type=script&lang=ts\"\n\nimport \"./LostPasswordForm.vue?vue&type=style&index=0&id=2bef759a&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2bef759a\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-509e141d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"login\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"app-spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.loginLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport { LoggedUserData } from '@/types/gonexa-auth.type';\r\n\r\nexport default class LoginAs extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\tloginLoading = false;\r\n\r\n\tasync mounted() {\r\n\t\tconst username = this.$route.params.username.toString();\r\n\t\tconst token = this.$route.params.token.toString();\r\n\r\n\t\tif (username && token) {\r\n\t\t\tawait this.loginUser(username as string, token);\r\n\t\t} else {\r\n\t\t\tthis.toast.error(this.$t('error.notAuthorized'));\r\n\t\t\tthis.$router.push({ name: 'home' });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui déclenche la connexion à un compte Gonexa en base si les données sont valides\r\n\t */\r\n\tasync loginUser(username: string, token: string) {\r\n\t\tthis.loginLoading = true;\r\n\r\n\t\tAuthGonexaService.loginAs(username, token)\r\n\t\t\t.then(async (response: LoggedUserData) => {\r\n\t\t\t\tthis.loginLoading = false;\r\n\t\t\t\tlocalStorage.setItem('APP_U', response.userToken);\r\n\t\t\t\tlocalStorage.setItem('APP_LOG_AS', 'true');\r\n\t\t\t\tthis.authStore.logUser(response);\r\n\t\t\t\tthis.$router.push({ name: 'home' });\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tthis.loginLoading = false;\r\n\r\n\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\tcase 'UsernameNotExisting': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.unknownUsername'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'RegistrationNotSucceeded':\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.registrationNotSucceeded'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'TokenInvalid': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.notAuthorized'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.auth.login'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.$router.push({ name: 'home' });\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { render } from \"./LoginAs.vue?vue&type=template&id=509e141d&scoped=true&ts=true\"\nimport script from \"./LoginAs.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginAs.vue?vue&type=script&lang=ts\"\n\nimport \"./LoginAs.vue?vue&type=style&index=0&id=509e141d&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-509e141d\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/check_circle_green.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e3f58aec\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"confirm-email\"\n}\nconst _hoisted_2 = { class: \"confirm-email__header\" }\nconst _hoisted_3 = { class: \"auth__title\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"confirm-email__check\",\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_5 = { class: \"confirm-email__text\" }\nconst _hoisted_6 = { class: \"auth__text\" }\nconst _hoisted_7 = { class: \"auth__text\" }\nconst _hoisted_8 = { class: \"auth__text\" }\nconst _hoisted_9 = {\n key: 1,\n class: \"app-spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (!_ctx.isLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('auth.emails.updating')), 1)\n ]),\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('auth.emails.updatingDescription')), 1),\n _createElementVNode(\"p\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('auth.inputs.username')) + \" : \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.user.email), 1)\n ]),\n _createElementVNode(\"p\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('auth.inputs.newEmail')) + \" : \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.user.email), 1)\n ])\n ]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push({ name: 'home' })))\n }, _toDisplayString(_ctx.$t('auth.buttons.goToApp')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { GonexaUser } from '@/types/gonexa-users.type';\r\nimport { Contract, Consumption, DocumentTemplate, Invoice, Organisation } from '@/types/salesforce-objects.type';\r\nimport { defineStore } from 'pinia';\r\n\r\nexport const useSalesforceStore = defineStore('salesforce', {\r\n\tstate: () => ({\r\n\t\torgId: null as string | null,\r\n\r\n\t\torgInformations: null as Organisation | null,\r\n\r\n\t\tcurrentContract: null as Contract | null,\r\n\r\n\t\tinvoices: null as Invoice[] | null,\r\n\r\n\t\tconsumptions: null as Consumption[] | null,\r\n\r\n\t\tdocTemplates: null as {\r\n\t\t\t[orgId: string]: DocumentTemplate[];\r\n\t\t} | null,\r\n\r\n\t\tcompanyUsers: null as GonexaUser[] | null,\r\n\t\tusersNb: 0,\r\n\t}),\r\n\r\n\tgetters: {},\r\n\r\n\tactions: {\r\n\t\tdeleteTemplates(orgId: string) {\r\n\t\t\tif (this.docTemplates != null && this.docTemplates[orgId] != null) {\r\n\t\t\t\tdelete this.docTemplates[orgId];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\taddCompanyUser(newUser: GonexaUser) {\r\n\t\t\tthis.companyUsers?.push(newUser);\r\n\t\t},\r\n\r\n\t\tdeleteCompanyUser(user: GonexaUser) {\r\n\t\t\tif (this.companyUsers != null) {\r\n\t\t\t\tconst i = this.companyUsers.findIndex((u) => {\r\n\t\t\t\t\treturn u.username == user.username;\r\n\t\t\t\t});\r\n\t\t\t\tif (i) this.companyUsers.splice(i, 1);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n});\r\n","import axios, { AxiosError } from 'axios';\r\nimport { useToast } from 'vue-toastification';\r\nimport { Vue } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport { EditUser, GonexaUser } from '@/types/gonexa-users.type';\r\nimport { useSalesforceStore } from '@/stores/salesforce.store';\r\n\r\n// Classe contenant toutes les méthodes d'appels API liés à l'authentification du compte Gonexa\r\n\r\nexport default class UserService {\r\n\tstatic toast = useToast();\r\n\tstatic authStore: ReturnType<typeof useAuthStore>;\r\n\tstatic sfStore: ReturnType<typeof useSalesforceStore>;\r\n\r\n\tstatic async getCompanyUsers(): Promise<GonexaUser[]> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tif (this.sfStore.companyUsers) return this.sfStore.companyUsers;\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/company/users`, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\tthis.sfStore.companyUsers = data;\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('👨â€ðŸ‘¦â€ðŸ‘¦ Erreur dans la récupération de tous les Users liés à la Company.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tswitch (error.response?.data) {\r\n\t\t\t\t\tcase 'IsNotOwner': {\r\n\t\t\t\t\t\tthis.toast.info(Vue.prototype.$t('error.notOwner'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'CompanyNotVerified': {\r\n\t\t\t\t\t\tthis.toast.info(Vue.prototype.$t('error.companyNotVerified'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\tthis.toast.error(Vue.prototype.$t('error.getUsers'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async deleteCompanyUser(user: GonexaUser) {\r\n\t\tthis.authStore = useAuthStore();\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.delete(`${process.env.VUE_APP_APP_API_URI}/api/company/user/${user.username}`, {\r\n\t\t\t\theaders: { Authorization: `Bearer ${this.authStore.userToken}` },\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(\"👨â€ðŸ‘¦â€ðŸ‘¦ Erreur la suppression d'un User lié à la Company.\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async inviteNewUser(newUser: GonexaUser) {\r\n\t\tthis.authStore = useAuthStore();\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.post(\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/user/invite`,\r\n\t\t\t\t{\r\n\t\t\t\t\tusername: newUser.username,\r\n\t\t\t\t\tfirstName: newUser.firstName,\r\n\t\t\t\t\tlastName: newUser.lastName,\r\n\t\t\t\t\temail: newUser.email,\r\n\t\t\t\t\troleName: newUser.roleName,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: { Authorization: `Bearer ${this.authStore.userToken}` },\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\tthis.sfStore.addCompanyUser(newUser);\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(\"👨â€ðŸ‘¦â€ðŸ‘¦ Erreur dans l'invitation d'un nouvel User.\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async updateUser(edituser: EditUser) {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.patch(`${process.env.VUE_APP_APP_API_URI}/api/user`, edituser, {\r\n\t\t\t\theaders: { Authorization: `Bearer ${this.authStore.userToken}` },\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(\"👨â€ðŸ‘¦â€ðŸ‘¦ Erreur dans la mise à jour du mot de passe de l'utilisateur.\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async updateUserEmail(emailToken: string) {\r\n\t\treturn await axios\r\n\t\t\t.patch(`${process.env.VUE_APP_APP_API_URI}/api/user/email`, '', {\r\n\t\t\t\theaders: { Authorization: `Bearer ${emailToken}` },\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(\"👨â€ðŸ‘¦â€ðŸ‘¦ Erreur dans la mise à jour du mail de l'utilisateur.\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async getUserId(username: string): Promise<string> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/user/${username}/id`, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error(\"👨â€ðŸ‘¦â€ðŸ‘¦ Erreur dans la récupération de l'id d'un utilisateur.\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n}\r\n","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport UserService from '@/services/user.service';\r\n\r\nexport default class ConfirmEmail extends Vue {\r\n\ttoast = useToast();\r\n\tuser = {} as { username: string; email: string };\r\n\tisLoading = true;\r\n\r\n\tasync mounted() {\r\n\t\tconst emailToken = this.$route.params.emailToken.toString();\r\n\t\tif (!emailToken) this.$router.push({ name: 'home' });\r\n\r\n\t\tUserService.updateUserEmail(emailToken)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tthis.user = response;\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tconsole.log(error);\r\n\r\n\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\tcase 'EmailNotModified': {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.email.notModified'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\tthis.toast.error(this.$t('error.email.verifyNew'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$router.push({ name: 'home' });\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { render } from \"./ConfirmEmail.vue?vue&type=template&id=e3f58aec&scoped=true&ts=true\"\nimport script from \"./ConfirmEmail.vue?vue&type=script&lang=ts\"\nexport * from \"./ConfirmEmail.vue?vue&type=script&lang=ts\"\n\nimport \"./ConfirmEmail.vue?vue&type=style&index=0&id=e3f58aec&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e3f58aec\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/workspaces_darkblue.svg'\nimport _imports_1 from '@/assets/svg/import_export_darkblue.svg'\nimport _imports_2 from '@/assets/svg/warning_yellow_duo.svg'\nimport _imports_3 from '@/assets/svg/clock_dark_blue.svg'\nimport _imports_4 from '@/assets/svg/warning_red.svg'\nimport _imports_5 from '@/assets/png/home-preview-informations.png'\nimport _imports_6 from '@/assets/png/home-preview-contract.png'\nimport _imports_7 from '@/assets/png/home-preview-conso-1.png'\nimport _imports_8 from '@/assets/png/home-preview-conso-2.png'\nimport _imports_9 from '@/assets/png/home-preview-conso-3.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-037d03d7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"home\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"home__title hello\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"home__subtitle\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"home__infos\"\n}\nconst _hoisted_5 = { class: \"app-card\" }\nconst _hoisted_6 = { class: \"app-card__header\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_8 = { class: \"app-card__header-text\" }\nconst _hoisted_9 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_10 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_11 = { class: \"app-card__footer\" }\nconst _hoisted_12 = { class: \"app-card\" }\nconst _hoisted_13 = { class: \"app-card__header\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n })\n], -1))\nconst _hoisted_15 = { class: \"app-card__header-text\" }\nconst _hoisted_16 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_17 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_18 = { class: \"app-card__footer\" }\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = {\n key: 0,\n class: \"home__infos\"\n}\nconst _hoisted_21 = { class: \"app-card progress\" }\nconst _hoisted_22 = { class: \"progress__infos\" }\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_2,\n class: \"progress__infos-img\",\n alt: \"\"\n}, null, -1))\nconst _hoisted_24 = { class: \"progress__info-text app-card__header-text\" }\nconst _hoisted_25 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_26 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_27 = {\n key: 1,\n class: \"home__infos\"\n}\nconst _hoisted_28 = { class: \"app-card progress\" }\nconst _hoisted_29 = { class: \"progress__infos\" }\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_3,\n class: \"progress__infos-img\",\n alt: \"\"\n}, null, -1))\nconst _hoisted_31 = { class: \"progress__info-text app-card__header-text\" }\nconst _hoisted_32 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_33 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_34 = { class: \"home__infos --progress\" }\nconst _hoisted_35 = { class: \"app-card\" }\nconst _hoisted_36 = { class: \"app-card__header\" }\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_38 = { class: \"app-card__header-text\" }\nconst _hoisted_39 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_40 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_41 = { class: \"app-card__footer\" }\nconst _hoisted_42 = { class: \"app-card\" }\nconst _hoisted_43 = { class: \"app-card__header\" }\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n })\n], -1))\nconst _hoisted_45 = { class: \"app-card__header-text\" }\nconst _hoisted_46 = { class: \"app-card__header-title --limited-card\" }\nconst _hoisted_47 = { class: \"app-card__header-subtitle --limited-card\" }\nconst _hoisted_48 = { class: \"app-card__footer\" }\nconst _hoisted_49 = { key: 4 }\nconst _hoisted_50 = { class: \"home__infos\" }\nconst _hoisted_51 = { class: \"app-card blocked\" }\nconst _hoisted_52 = { class: \"blocked__infos\" }\nconst _hoisted_53 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"blocked__infos-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_4,\n alt: \"\"\n })\n], -1))\nconst _hoisted_54 = { class: \"blocked__infos-texts\" }\nconst _hoisted_55 = { class: \"blocked__infos-texts-text title\" }\nconst _hoisted_56 = { class: \"blocked__infos-texts-text subtitle\" }\nconst _hoisted_57 = { class: \"blocked__action\" }\nconst _hoisted_58 = { class: \"home__fake\" }\nconst _hoisted_59 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"home__fake-contacts\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_5,\n alt: \"\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_6,\n alt: \"\"\n })\n], -1))\nconst _hoisted_60 = { class: \"home__fake-consumption\" }\nconst _hoisted_61 = { class: \"app-title-2__container\" }\nconst _hoisted_62 = { class: \"app-title-2__text\" }\nconst _hoisted_63 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_64 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"home__fake-consumption-cards\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_7,\n alt: \"\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_8,\n alt: \"\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_9,\n alt: \"\"\n })\n], -1))\nconst _hoisted_65 = {\n key: 5,\n class: \"home__infos\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserInfosCard = _resolveComponent(\"UserInfosCard\")!\n const _component_ContractInfosCard = _resolveComponent(\"ContractInfosCard\")!\n const _component_ConsumptionCardsGroup = _resolveComponent(\"ConsumptionCardsGroup\")!\n const _component_GonexaUniversityComponent = _resolveComponent(\"GonexaUniversityComponent\")!\n const _component_ConfigurationModal = _resolveComponent(\"ConfigurationModal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n (_ctx.isOwnerVerified)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('home.hello')) + \" \" + _toDisplayString(_ctx.authStore.firstname), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.isOwnerVerified)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('home.welcome')), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.isUser)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('app.workspaces')), 1),\n _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('home.workspaces')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push({ name: 'workspaces' })))\n }, _toDisplayString(_ctx.$t('home.access')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"p\", _hoisted_16, _toDisplayString(_ctx.$t('app.deploiement')), 1),\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('home.deployment')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push({ name: 'deployment' })))\n }, _toDisplayString(_ctx.$t('home.access')), 1)\n ])\n ])\n ]))\n : (_ctx.isOwnerFree || _ctx.isOwnerVerifInProgress)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n (_ctx.isOwnerFree)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"p\", _hoisted_25, _toDisplayString(_ctx.$t('app.finishConfig')), 1),\n _createElementVNode(\"p\", _hoisted_26, _toDisplayString(_ctx.$t('home.connectionProd')), 1)\n ])\n ]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary progress__button\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.openModal && _ctx.openModal(...args)))\n }, _toDisplayString(_ctx.$t('home.connectMyEnvironments')), 1)\n ])\n ]))\n : (_ctx.isOwnerVerifInProgress)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"div\", _hoisted_29, [\n _hoisted_30,\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"p\", _hoisted_32, _toDisplayString(_ctx.$t('home.verifInProgress')), 1),\n _createElementVNode(\"p\", _hoisted_33, _toDisplayString(_ctx.$t('home.verificationText')), 1)\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"div\", _hoisted_36, [\n _hoisted_37,\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"p\", _hoisted_39, _toDisplayString(_ctx.$t('app.workspaces')), 1),\n _createElementVNode(\"p\", _hoisted_40, _toDisplayString(_ctx.$t('home.workspaces')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_41, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.push({ name: 'workspaces' })))\n }, _toDisplayString(_ctx.$t('home.access')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_42, [\n _createElementVNode(\"div\", _hoisted_43, [\n _hoisted_44,\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"p\", _hoisted_46, _toDisplayString(_ctx.$t('app.deploiement')), 1),\n _createElementVNode(\"p\", _hoisted_47, _toDisplayString(_ctx.$t('home.deployment')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push({ name: 'deployment' })))\n }, _toDisplayString(_ctx.$t('home.access')), 1)\n ])\n ])\n ])\n ]))\n : (_ctx.isOwnerBlocked)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_49, [\n _createElementVNode(\"div\", _hoisted_50, [\n _createElementVNode(\"div\", _hoisted_51, [\n _createElementVNode(\"div\", _hoisted_52, [\n _hoisted_53,\n _createElementVNode(\"div\", _hoisted_54, [\n _createElementVNode(\"p\", _hoisted_55, _toDisplayString(_ctx.$t('home.refused')), 1),\n _createElementVNode(\"p\", _hoisted_56, _toDisplayString(_ctx.$t('home.contact')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_57, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.openSupport()))\n }, _toDisplayString(_ctx.$t('errorPage.contact')), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_58, [\n _hoisted_59,\n _createElementVNode(\"div\", _hoisted_60, [\n _createElementVNode(\"div\", _hoisted_61, [\n _createElementVNode(\"p\", _hoisted_62, _toDisplayString(_ctx.$t('consumption.synthesis')), 1),\n _hoisted_63\n ]),\n _hoisted_64\n ])\n ])\n ]))\n : (_ctx.isOwnerVerified)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_65, [\n _createVNode(_component_UserInfosCard),\n _createVNode(_component_ContractInfosCard)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isOwnerVerified)\n ? (_openBlock(), _createBlock(_component_ConsumptionCardsGroup, { key: 6 }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_GonexaUniversityComponent)\n ]),\n _withDirectives(_createVNode(_component_ConfigurationModal, { onClose: _ctx.closeModal }, null, 8, [\"onClose\"]), [\n [_vShow, _ctx.isConfigurationModelOpen]\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/user_account_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-00b04169\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-card\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"user-infos\"\n}\nconst _hoisted_3 = { class: \"app-card__header\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_5 = { class: \"app-card__header-text\" }\nconst _hoisted_6 = { class: \"app-card__header-title\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"app-card__header-subtitle\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"app-card__header-subtitle\"\n}\nconst _hoisted_9 = { class: \"user-infos__grid\" }\nconst _hoisted_10 = { class: \"user-infos__label\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"user-infos__text\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"user-infos__text\"\n}\nconst _hoisted_13 = { class: \"user-infos__label\" }\nconst _hoisted_14 = {\n key: 0,\n class: \"user-infos__text\"\n}\nconst _hoisted_15 = {\n key: 1,\n class: \"user-infos__text\"\n}\nconst _hoisted_16 = {\n key: 0,\n class: \"user-infos__adress\"\n}\nconst _hoisted_17 = { class: \"user-infos__label\" }\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"user-infos__text\" }, \"-\", -1))\nconst _hoisted_19 = {\n key: 1,\n class: \"user-infos__adress\"\n}\nconst _hoisted_20 = { class: \"user-infos__label\" }\nconst _hoisted_21 = { class: \"user-infos__text\" }\nconst _hoisted_22 = { class: \"user-infos__text\" }\nconst _hoisted_23 = { class: \"user-infos__text\" }\nconst _hoisted_24 = { class: \"user-infos__text\" }\nconst _hoisted_25 = {\n key: 1,\n class: \"app-card__error\"\n}\nconst _hoisted_26 = {\n key: 2,\n class: \"app-spinner --small\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.infoLoaded && _ctx.organisation != undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('users.myInfos')), 1),\n (_ctx.organisation?.name != null)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.organisation.name), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_8, \"-\"))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('users.contractContact')), 1),\n (_ctx.organisation.contractual_contact__r?.name != null)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.organisation.contractual_contact__r.name), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_12, \"-\"))\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('users.techContract')), 1),\n (_ctx.organisation.contact_technique__r?.name != null)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_14, _toDisplayString(_ctx.organisation.contact_technique__r.name), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_15, \"-\"))\n ]),\n (\r\n\t\t\t\t\t\t_ctx.organisation.billingStreet == null &&\r\n\t\t\t\t\t\t_ctx.organisation.billingState == null &&\r\n\t\t\t\t\t\t_ctx.organisation.billingPostalCode == null &&\r\n\t\t\t\t\t\t_ctx.organisation.billingCity == null &&\r\n\t\t\t\t\t\t_ctx.organisation.billingCountry == null\r\n\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('users.billingAddress')), 1),\n _hoisted_18\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"p\", _hoisted_20, _toDisplayString(_ctx.$t('users.billingAddress')), 1),\n _createElementVNode(\"p\", _hoisted_21, _toDisplayString(_ctx.organisation.billingStreet != null ? _ctx.organisation.billingStreet : '-'), 1),\n _createElementVNode(\"p\", _hoisted_22, _toDisplayString(_ctx.organisation.billingState != null ? _ctx.organisation.billingState : '-'), 1),\n _createElementVNode(\"p\", _hoisted_23, _toDisplayString(_ctx.organisation.billingPostalCode != null ? _ctx.organisation.billingPostalCode : '-') + \" \" + _toDisplayString(_ctx.organisation.billingCity != null ? _ctx.organisation.billingCity : '-'), 1),\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.organisation.billingCountry != null ? _ctx.organisation.billingCountry : '-'), 1)\n ]))\n ])\n ]))\n : (_ctx.infoLoaded && _ctx.organisation == undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_25))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_26))\n ]))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport axios, { ResponseType } from 'axios';\r\nimport { useAuthStore } from '../stores/authentication.store';\r\n\r\nexport default class CalloutAppApiService {\r\n\tstatic authStore: ReturnType<typeof useAuthStore>;\r\n\r\n\tstatic async calloutAsync(\r\n\t\tmethod: string,\r\n\t\turl: string,\r\n\t\tdata: any = '',\r\n\t\tresponseType: ResponseType = 'json'\r\n\t): Promise<any> {\r\n\t\t// Récupération du UserToken\r\n\t\tconst localUserToken = localStorage.getItem('APP_U');\r\n\t\tif (!localUserToken) throw new Error('NoToken');\r\n\r\n\t\t// Exécution de la requête API\r\n\t\ttry {\r\n\t\t\tconst firstRequestResponse = await axios.request({\r\n\t\t\t\tmethod: method,\r\n\t\t\t\turl: url,\r\n\t\t\t\tdata: data,\r\n\t\t\t\theaders: { Authorization: `Bearer ${localUserToken}` },\r\n\t\t\t\tresponseType: responseType,\r\n\t\t\t});\r\n\r\n\t\t\t// Si l'appel est réussi, on retourne la réponse\r\n\t\t\tif (firstRequestResponse.status >= 200 && firstRequestResponse.status <= 202) {\r\n\t\t\t\treturn firstRequestResponse.data;\r\n\t\t\t}\r\n\t\t} catch (firstError: any) {\r\n\t\t\t// Sinon, on traite l'erreur reçue\r\n\r\n\t\t\t// Si l'erreur est liée au toke, on essaye de le renouveler\r\n\t\t\tif (firstError.response?.status === 401 || firstError.response?.data === 'ExpiredUserAccessToken') {\r\n\t\t\t\t// Renouvellement du UserToken\r\n\t\t\t\tconst newToken = await this.renewUserToken(localUserToken);\r\n\r\n\t\t\t\t// Mise à jour dans le AuthStore et le LocalStorage\r\n\t\t\t\tthis.authStore.updateUserToken(newToken);\r\n\t\t\t\tlocalStorage.setItem('APP_U', newToken);\r\n\r\n\t\t\t\t// Ré-exécution de la requête API avec le nouveau Token\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst secondRequest = await axios({\r\n\t\t\t\t\t\tmethod: method,\r\n\t\t\t\t\t\turl: url,\r\n\t\t\t\t\t\tdata: data,\r\n\t\t\t\t\t\theaders: { Authorization: `Bearer ${newToken}` },\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn secondRequest.data;\r\n\t\t\t\t} catch (secondError: any) {\r\n\t\t\t\t\tthrow new Error(secondError);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(firstError);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t// Si l'appel est réussi, on retourne la réponse\r\n\t\tif (firstRequestResponse.status >= 200 && firstRequestResponse.status <= 202) {\r\n\t\t\treturn firstRequestResponse.data;\r\n\t\t} else {\r\n\t\t\t// Sinon, si l'erreur\r\n\t\t\tif (firstRequestResponse.status === 401 || firstRequestResponse.data === 'ExpiredUserAccessToken') {\r\n\t\t\t\tconst newToken = await this.renewUserToken(localUserToken);\r\n\t\t\t\tthis.authStore.updateUserToken(newToken);\r\n\t\t\t\tlocalStorage.setItem('APP_U', newToken);\r\n\t\t\t\tconst secondRequest = await axios({\r\n\t\t\t\t\tmethod: method,\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdata: data,\r\n\t\t\t\t\theaders: { Authorization: `Bearer ${newToken}` },\r\n\t\t\t\t});\r\n\t\t\t\treturn secondRequest.data;\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(firstRequestResponse.data);\r\n\t\t\t}\r\n\t\t} */\r\n\t}\r\n\r\n\t// TODO: A tester\r\n\tstatic async renewUserToken(expiredToken: string): Promise<string> {\r\n\t\tconst resultRequest = await axios.post(`${process.env.VUE_APP_APP_API_URI}/api/userToken/RenewUserToken`, {\r\n\t\t\theaders: { Authorization: `Bearer ${expiredToken}` },\r\n\t\t});\r\n\r\n\t\tif (resultRequest.status == 200) {\r\n\t\t\treturn resultRequest.data;\r\n\t\t}\r\n\r\n\t\tconsole.error(\"🔑 Erreur dans le renouvellement de l'Access Token\");\r\n\t\tconsole.error(resultRequest.data);\r\n\t\tthrow new Error('UnableToRenew');\r\n\t}\r\n\r\n\tstatic async fetchStream<T>(method: string, url: string, onData: (data: T) => void, onComplete?: () => void) {\r\n\t\tconst response = await fetch(url, {\r\n\t\t\tmethod: method,\r\n\t\t\theaders: { Authorization: `Bearer ${localStorage.getItem('APP_U')}` },\r\n\t\t});\r\n\r\n\t\tif (!response.body) {\r\n\t\t\tconsole.error('Aucune réponse du fetchStream');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst reader = response.body.getReader();\r\n\t\tconst decoder = new TextDecoder();\r\n\t\tlet done, value;\r\n\t\tlet buffer = '';\r\n\t\ttry {\r\n\t\t\twhile (!(done = await reader.read()).done) {\r\n\t\t\t\tbuffer += decoder.decode(done.value, { stream: true });\r\n\t\t\t\tvalue = buffer.replace(/^[,[]+|[,\\]]+$/g, '');\r\n\t\t\t\tif (/\\{[^{}]*\\}/.test(value)) {\r\n\t\t\t\t\tconst json = JSON.parse(`[${value}]`) as T;\r\n\t\t\t\t\tonData(json);\r\n\t\t\t\t\tbuffer = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Erreur dans le fetchStream');\r\n\t\t\tconsole.error(error);\r\n\t\t\tconsole.error(value);\r\n\t\t}\r\n\r\n\t\tif (onComplete) onComplete();\r\n\t}\r\n}\r\n","import { ExternalEnvironnement, ExternalEnvironnementIndividual, ExternalUser } from '@/types/gonexa-users.type';\r\nimport { defineStore } from 'pinia';\r\n\r\nexport const useEnvironmentStore = defineStore('environment', {\r\n\tstate: () => ({\r\n\t\texternalEnvironments: null as ExternalEnvironnement[] | null,\r\n\r\n\t\texternalUsers: null as ExternalUser[] | null,\r\n\r\n\t\texternalEnvironmentIndivudal: null as { [id: string]: ExternalEnvironnementIndividual } | null,\r\n\r\n\t\texternalEnvironmentStatus: false as boolean,\r\n\t}),\r\n\r\n\tgetters: {},\r\n\r\n\tactions: {\r\n\t\tdefineExternalEnvironments(externalEnvironments: ExternalEnvironnement[]) {\r\n\t\t\tthis.externalEnvironments = externalEnvironments;\r\n\t\t},\r\n\r\n\t\taddExternalEnvironmentIndivudal(externalEnvironment: ExternalEnvironnementIndividual) {\r\n\t\t\tif (this.externalEnvironmentIndivudal == null) {\r\n\t\t\t\tthis.externalEnvironmentIndivudal = {};\r\n\t\t\t}\r\n\t\t\tthis.externalEnvironmentIndivudal[externalEnvironment.id] = externalEnvironment;\r\n\t\t},\r\n\t\tremoveExternalEnvironmentIndivudal(id: string) {\r\n\t\t\tif (this.externalEnvironmentIndivudal != null) {\r\n\t\t\t\tdelete this.externalEnvironmentIndivudal[id];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdefineExternalUsers(externalUsers: ExternalUser[]) {\r\n\t\t\tthis.externalUsers = externalUsers;\r\n\t\t},\r\n\r\n\t\tdeleteExternalEnvironment(id: string) {\r\n\t\t\tif (this.externalEnvironments != null) {\r\n\t\t\t\tconst environementIndex = this.externalEnvironments.findIndex((env) => {\r\n\t\t\t\t\treturn env.id == id;\r\n\t\t\t\t});\r\n\t\t\t\tif (environementIndex) this.externalEnvironments.splice(environementIndex, 1);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsecuriseExternalEnvironment(id: string) {\r\n\t\t\tif (this.externalEnvironments != null) {\r\n\t\t\t\tconst environementIndex = this.externalEnvironments.findIndex((env) => {\r\n\t\t\t\t\treturn env.id == id;\r\n\t\t\t\t});\r\n\t\t\t\tif (environementIndex) this.externalEnvironments[environementIndex].status['isSecurised'] = 'true';\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetEnvironmentsStatus(status: boolean) {\r\n\t\t\tthis.externalEnvironmentStatus = status;\r\n\t\t},\r\n\t},\r\n});\r\n","import {\r\n\tExternalEnvironnement,\r\n\tExternalEnvironnementIndividual,\r\n\tExternalUser,\r\n\tGonexaSignParameters,\r\n} from '@/types/gonexa-users.type';\r\nimport { useToast } from 'vue-toastification';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\nimport { useEnvironmentStore } from '@/stores/environment.store';\r\nimport { Vue } from 'vue-class-component';\r\nimport { EnvData } from '@/types/gonexa-users.type';\r\n\r\nexport default class EnvironmentsService {\r\n\tstatic toast = useToast();\r\n\tstatic environmentStore: ReturnType<typeof useEnvironmentStore>;\r\n\r\n\tstatic async getExternalEnvironments(): Promise<ExternalEnvironnement[]> {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\r\n\t\tif (this.environmentStore.externalEnvironments) return this.environmentStore.externalEnvironments;\r\n\t\ttry {\r\n\t\t\tthis.environmentStore.externalEnvironments = (await CalloutAppApiService.calloutAsync(\r\n\t\t\t\t'GET',\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/company/externalenvironments`\r\n\t\t\t)) as ExternalEnvironnement[];\r\n\t\t\treturn this.environmentStore.externalEnvironments;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('🢠Erreur de récupération des External Environments');\r\n\t\t\tconsole.error(error);\r\n\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async getExternalEnvironmentsStatusStream(onData: (data: EnvData[]) => void, onComplete: () => void) {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\t\tif (this.environmentStore.externalEnvironmentStatus) return;\r\n\t\ttry {\r\n\t\t\tCalloutAppApiService.fetchStream<EnvData[]>(\r\n\t\t\t\t'GET',\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/company/externalenvironments/status`,\r\n\t\t\t\tonData,\r\n\t\t\t\tonComplete\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('🢠Erreur de récupération des Statut des External Environments');\r\n\t\t\tconsole.error(error);\r\n\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async getExernalEnvironment(id: string): Promise<ExternalEnvironnementIndividual> {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\t\tif (\r\n\t\t\tthis.environmentStore.externalEnvironmentIndivudal &&\r\n\t\t\tthis.environmentStore.externalEnvironmentIndivudal[id]\r\n\t\t)\r\n\t\t\treturn this.environmentStore.externalEnvironmentIndivudal[id];\r\n\t\ttry {\r\n\t\t\tthis.environmentStore.addExternalEnvironmentIndivudal(\r\n\t\t\t\t(await CalloutAppApiService.calloutAsync(\r\n\t\t\t\t\t'GET',\r\n\t\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/externalenvironment/${id}`\r\n\t\t\t\t)) as ExternalEnvironnementIndividual\r\n\t\t\t);\r\n\t\t\tif (\r\n\t\t\t\tthis.environmentStore.externalEnvironmentIndivudal &&\r\n\t\t\t\tthis.environmentStore.externalEnvironmentIndivudal[id]\r\n\t\t\t)\r\n\t\t\t\treturn this.environmentStore.externalEnvironmentIndivudal[id];\r\n\t\t\tthrow Error('FailedToGetExternalEnvironment');\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"🢠Erreur de récupération d'un External Environment\");\r\n\t\t\tconsole.error(error);\r\n\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async getExternalUsers(): Promise<ExternalUser[]> {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\t\tif (this.environmentStore.externalUsers) return this.environmentStore.externalUsers;\r\n\r\n\t\ttry {\r\n\t\t\tthis.environmentStore.externalUsers = (await CalloutAppApiService.calloutAsync(\r\n\t\t\t\t'get',\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/user/externalusers`\r\n\t\t\t)) as ExternalUser[];\r\n\r\n\t\t\treturn this.environmentStore.externalUsers;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('🢠Erreur de récupération des External Users');\r\n\t\t\tconsole.error(error);\r\n\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t}\r\n\r\n\t/* UNUSED : \r\n\r\n\tstatic addExternalUser(\r\n\t\tusername: string,\r\n\t\ttype: string,\r\n\t\tuserId: string,\r\n\t\texternalId: string,\r\n\t\torgId: string,\r\n\t\trefreshToken: string,\r\n\t\taccessToken: string,\r\n\t\tinstanceUrl: string,\r\n\t\ttypeOrg: string,\r\n\t\tcompanyId: string,\r\n\t\torgname: string\r\n\t) {\r\n\t\treturn CalloutAppApiService.calloutAsync('post', `${process.env.VUE_APP_APP_API_URI}/api/externaluser/`, {\r\n\t\t\tusername: username,\r\n\t\t\ttype: type,\r\n\t\t\tuserId: userId,\r\n\t\t\texternalId: externalId,\r\n\t\t\torgId: orgId,\r\n\t\t\trefreshToken: btoa(refreshToken),\r\n\t\t\taccessToken: accessToken,\r\n\t\t\tinstanceUrl: instanceUrl,\r\n\t\t\ttypeOrg: typeOrg,\r\n\t\t\tcompanyId: companyId,\r\n\t\t\tOrgName: orgname,\r\n\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.toast.success(Vue.prototype.$t('success.connectEnv'));\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"🢠Erreur lors de la connexion d'un External Environment :\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (error.response.data == 'ExternalUserAlreadyExist')\r\n\t\t\t\t\tthis.toast.info(`Vous êtes déjà connecté à cette environnement`);\r\n\t\t\t\telse if (error.response.data == 'ExternalEnvironmentProdAlreadyExist')\r\n\t\t\t\t\tthis.toast.info(`Un environnement de production est dejà connecté`);\r\n\t\t\t});\r\n\t}\r\n*/\r\n\r\n\tstatic deleteExternalUser(id: string) {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\t\treturn CalloutAppApiService.calloutAsync(\r\n\t\t\t'delete',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/externalenvironment/${id}`\r\n\t\t)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.environmentStore.deleteExternalEnvironment(id);\r\n\t\t\t\tthis.toast.success(Vue.prototype.$t('success.deleteEnv'));\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"🢠Erreur lors de la suppression d'un External Environment :\");\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (error.response.data == 'ExternalDoesNotExist') {\r\n\t\t\t\t\tthis.toast.info(Vue.prototype.$t('error.environment.deleteUnknown'));\r\n\t\t\t\t\tthis.environmentStore.deleteExternalEnvironment(id);\r\n\t\t\t\t} else this.toast.error(Vue.prototype.$t('error.environment.delete'));\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async securiseExternalEnvironment(id: string): Promise<boolean> {\r\n\t\tthis.environmentStore = useEnvironmentStore();\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'post',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/externalenvironment/${id}/secure`\r\n\t\t)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.toast.success(Vue.prototype.$t('success.secureEnv'));\r\n\t\t\t\tthis.environmentStore.securiseExternalEnvironment(id);\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthis.toast.error(`🢠Erreur lors de la sécurisation d'un External Environment :`);\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthis.toast.error(Vue.prototype.$t('error.environment.secure'));\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async postGonexaSignParameters(id: string, sign: GonexaSignParameters): Promise<boolean> {\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'put',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/externalenvironment/sign/${id}`,\r\n\t\t\tsign\r\n\t\t)\r\n\t\t\t.then((value) => {\r\n\t\t\t\tif (value == false) throw Error();\r\n\t\t\t\tthis.toast.success(Vue.prototype.$t('success.customSettingsUpdated'));\r\n\t\t\t\tthis.environmentStore.securiseExternalEnvironment(id);\r\n\t\t\t\treturn value;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthis.toast.error(Vue.prototype.$t('error.environment.customSettingsUpdated'));\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { Organisation } from '@/types/salesforce-objects.type';\r\nimport EnvironmentsService from './environments.service';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\nimport { useSalesforceStore } from '@/stores/salesforce.store';\r\nimport { useEnvironmentStore } from '@/stores/environment.store';\r\n\r\nexport default class OrgInformationsService {\r\n\tstatic sfStore: ReturnType<typeof useSalesforceStore>;\r\n\tstatic envStore: ReturnType<typeof useEnvironmentStore>;\r\n\r\n\t/**\r\n\t * Retourne l'id de l'org depuis son nom\r\n\t * @param name nom de l'org\r\n\t * @returns Id de l'org grace à son nom\r\n\t */\r\n\tstatic async getOrgId(): Promise<string> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tthis.envStore = useEnvironmentStore();\r\n\t\tlet allEnvironments = [];\r\n\r\n\t\tif (this.sfStore.orgId) return this.sfStore.orgId;\r\n\r\n\t\tif (this.envStore.externalEnvironments) allEnvironments = this.envStore.externalEnvironments;\r\n\t\telse allEnvironments = await EnvironmentsService.getExternalEnvironments();\r\n\r\n\t\tconst prodOrgId = allEnvironments\r\n\t\t\t.filter((env) => env.typeOrg.toLowerCase() == 'prod')[0]\r\n\t\t\t.externalId.slice(0, -3);\r\n\r\n\t\treturn prodOrgId;\r\n\t}\r\n\r\n\tstatic async getFirstOrgId(): Promise<string> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tthis.envStore = useEnvironmentStore();\r\n\t\tlet allEnvironments = [];\r\n\r\n\t\tif (this.sfStore.orgId) return this.sfStore.orgId;\r\n\r\n\t\tif (this.envStore.externalEnvironments) allEnvironments = this.envStore.externalEnvironments;\r\n\t\telse allEnvironments = await EnvironmentsService.getExternalEnvironments();\r\n\r\n\t\tconst firstOrgId = allEnvironments[0].externalId.slice(0, -3);\r\n\r\n\t\treturn firstOrgId;\r\n\t}\r\n\r\n\t/**\r\n\t * Recupere toute les objets Consumptions__c pour le contrat précisé en params\r\n\t * @param contractId Id du contrat\r\n\t * @param orgId Id de l'organisation salesforce\r\n\t * @returns Consommation\r\n\t */\r\n\tstatic async getOrgInfos(): Promise<Organisation> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tif (this.sfStore.orgInformations) return this.sfStore.orgInformations;\r\n\t\tconst orgId = await this.getOrgId();\r\n\r\n\t\treturn CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/infos`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tthis.sfStore.orgInformations = result.records[0];\r\n\t\t\t\treturn result.records[0];\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.error('Error GetOrgInfos :');\r\n\t\t\t\tconsole.error(err);\r\n\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n}\r\n","\r\nimport { Vue } from 'vue-class-component';\r\nimport OrgInformationsService from '@/services/org-informations.service';\r\nimport { Organisation } from '@/types/salesforce-objects.type';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nexport default class UserInfosCard extends Vue {\r\n\torganisation: Organisation | undefined = undefined;\r\n\tinfoLoaded = false;\r\n\ttoast = useToast();\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.organisation = await OrgInformationsService.getOrgInfos();\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t} catch {\r\n\t\t\tthis.organisation = {} as Organisation;\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./UserInfosCard.vue?vue&type=template&id=00b04169&scoped=true&ts=true\"\nimport script from \"./UserInfosCard.vue?vue&type=script&lang=ts\"\nexport * from \"./UserInfosCard.vue?vue&type=script&lang=ts\"\n\nimport \"./UserInfosCard.vue?vue&type=style&index=0&id=00b04169&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-00b04169\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/flag_darkblue.svg'\nimport _imports_1 from '@/assets/png/logo-gonexa-doc.png'\nimport _imports_2 from '@/assets/png/logo-gonexa-sign.png'\nimport _imports_3 from '@/assets/png/logo-gonexa-connect.png'\nimport _imports_4 from '@/assets/png/logo-gonexa-rf.png'\nimport _imports_5 from '@/assets/png/logo-gonexa-webdoc.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45b5e6ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-card\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"contract-infos\"\n}\nconst _hoisted_3 = { class: \"app-card__header\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_5 = { class: \"app-card__header-text\" }\nconst _hoisted_6 = { class: \"app-card__header-title\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"app-card__header-subtitle\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"app-card__header-subtitle\"\n}\nconst _hoisted_9 = { class: \"contract-infos__grid\" }\nconst _hoisted_10 = { class: \"contract-infos__label\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"contract-infos__text\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"contract-infos__text\"\n}\nconst _hoisted_13 = { class: \"contract-infos__label\" }\nconst _hoisted_14 = {\n key: 0,\n class: \"contract-infos__text\"\n}\nconst _hoisted_15 = {\n key: 1,\n class: \"contract-infos__text\"\n}\nconst _hoisted_16 = { class: \"contract-infos__gnx-suit\" }\nconst _hoisted_17 = { class: \"contract-infos__label\" }\nconst _hoisted_18 = { class: \"contract-infos__logos\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"contract-infos__logo-container\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n class: \"contract-infos__gnx-logo --payed\"\n })\n], -1))\nconst _hoisted_20 = { class: \"contract-infos__logo-container\" }\nconst _hoisted_21 = { class: \"contract-infos__logo-container\" }\nconst _hoisted_22 = { class: \"contract-infos__logo-container\" }\nconst _hoisted_23 = { class: \"contract-infos__logo-container\" }\nconst _hoisted_24 = {\n key: 1,\n class: \"app-card__error\"\n}\nconst _hoisted_25 = {\n key: 2,\n class: \"app-spinner --small\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.infoLoaded && _ctx.currentContract != undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('contractCard.title')), 1),\n (_ctx.currentContract.gnx__Start_date__c != null)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('contractCard.clientSince') + ' ' + _ctx.getFormattedDate(_ctx.currentContract.gnx__Start_date__c)), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_8, \"-\"))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('contractCard.renew')), 1),\n (_ctx.currentContract.gnx__Account__r?.contractRenewal__c != null)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.getFormattedDate(_ctx.currentContract.gnx__Account__r.contractRenewal__c)), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_12, \"-\"))\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('contractCard.payment')), 1),\n (\r\n\t\t\t\t\t\t\t_ctx.currentContract.gnx__Account__r != null &&\r\n\t\t\t\t\t\t\t_ctx.currentContract.gnx__Account__r.payment_Terms__c != null\r\n\t\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_14, _toDisplayString(_ctx.currentContract.gnx__Account__r.payment_Terms__c), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_15, \"-\"))\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('contractCard.gnxSuit')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"img\", {\n src: _imports_2,\n class: _normalizeClass([\"contract-infos__gnx-logo\", {\r\n\t\t\t\t\t\t\t\t\t'--payed': _ctx.currentContract.gnx__Account__r?.sign__c,\r\n\t\t\t\t\t\t\t\t}])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"img\", {\n src: _imports_3,\n class: _normalizeClass([\"contract-infos__gnx-logo\", { '--payed': _ctx.currentContract.gnx__Account__r?.connect__c }])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"img\", {\n src: _imports_4,\n class: _normalizeClass([\"contract-infos__gnx-logo\", {\r\n\t\t\t\t\t\t\t\t\t'--payed': _ctx.currentContract.gnx__Account__r?.rF__c,\r\n\t\t\t\t\t\t\t\t}])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"img\", {\n src: _imports_5,\n class: _normalizeClass([\"contract-infos__gnx-logo\", {\r\n\t\t\t\t\t\t\t\t\t'--payed': _ctx.currentContract.gnx__Account__r?.webDoc__c,\r\n\t\t\t\t\t\t\t\t}])\n }, null, 2)\n ])\n ])\n ])\n ])\n ]))\n : (_ctx.infoLoaded && _ctx.currentContract == undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25))\n ]))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { useToast } from 'vue-toastification';\r\nimport { Consumption, Contract, Invoice } from '@/types/salesforce-objects.type';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\nimport { useSalesforceStore } from '@/stores/salesforce.store';\r\nimport OrgInformationsService from './org-informations.service';\r\n\r\n/**\r\n * Gestion du contrat (recuperation du contrat en cours et gestion de la consommation)\r\n */\r\nexport default class OrgContractService {\r\n\tstatic toast = useToast();\r\n\tstatic sfStore: ReturnType<typeof useSalesforceStore>;\r\n\r\n\t/**\r\n\t * Recupère le contrat Gonexa en cours de l'entreprise\r\n\t * @param orgId : Id de l'Org de Prod de l'entreprise\r\n\t * @returns Données Salesforce du contrat en cours\r\n\t */\r\n\tstatic async getCurrentContract(): Promise<Contract> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tif (this.sfStore.currentContract) return this.sfStore.currentContract;\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/contract/current`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tthis.sfStore.currentContract = result.records[0];\r\n\t\t\t\treturn result.records[0];\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('📑 Erreur de récupération du contrat courant');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Retourne la liste de toutes les factures d'une Org\r\n\t * @param orgId Id de l'Org Salesforce\r\n\t * @param contractId Id du contrat\r\n\t * @returns Liste de toutes les factures liées au contrat en cours\r\n\t */\r\n\tstatic async getAllInvoices(): Promise<Invoice[]> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tif (this.sfStore.invoices) return this.sfStore.invoices;\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/invoices`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tthis.sfStore.invoices = result.records;\r\n\t\t\t\treturn result.records;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('📑 Erreur de récupération de toutes les factures du compte');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Recupere toute les objets Consumptions__c pour le contrat précisé en params\r\n\t * @param contractId Id du contrat\r\n\t * @param orgId Id de l'organisation salesforce\r\n\t * @returns Consommation\r\n\t */\r\n\tstatic async getConsumptions(contractId: string): Promise<Consumption[] | undefined> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tif (this.sfStore.consumptions) return this.sfStore.consumptions;\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/contract/${contractId}/consumptions`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tthis.sfStore.consumptions = result.records;\r\n\t\t\t\treturn result.records;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('📑 Erreur de récupération de la consommation');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\treturn undefined;\r\n\t\t\t});\r\n\t}\r\n\r\n\t// TO FIX : Téléchargement des factures\r\n\r\n\t/**\r\n\t * Retourne le Version Data d'une facture\r\n\t * @param orgId Id de l'Org Salesforce\r\n\t * @param invoiceId Id de la facture\r\n\t * @returns Version Data\r\n\t */\r\n\t/*\r\n\tstatic async getInvoiceVersionData(invoiceId: string): Promise<Blob> {\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/invoice/${invoiceId}/download`,\r\n\t\t\t'',\r\n\t\t\t'blob'\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"📑 Erreur de téléchargement d'une facture\");\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tthis.toast.error(Vue.prototype.$t('error.donwloadInvoice'));\r\n\t\t\t\tthrow new Error();\r\n\t\t\t});\r\n\t}\r\n\t*/\r\n}\r\n","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nimport OrgContractService from '@/services/org-contract.service';\r\nimport { Contract } from '@/types/salesforce-objects.type';\r\n\r\nexport default class ContractInfosCard extends Vue {\r\n\ttoast = useToast();\r\n\tinfoLoaded = false;\r\n\tcurrentContract: Contract | undefined = undefined;\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.currentContract = await OrgContractService.getCurrentContract();\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t} catch (error) {\r\n\t\t\tthis.currentContract = {} as Contract;\r\n\t\t\tthis.toast.error(this.$t('error.noContract'));\r\n\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\tgetFormattedDate(dateString: string) {\r\n\t\ttry {\r\n\t\t\tif (dateString != undefined) {\r\n\t\t\t\t// Si c'est un format DATETIME, je ne garde que la partie DATE\r\n\t\t\t\tif (dateString.includes('T')) dateString = dateString.slice(0, 10);\r\n\t\t\t\tconst dateParts: any = dateString.split('-');\r\n\t\t\t\tconst date = new Date(+dateParts[0], dateParts[1] - 1, +dateParts[2]);\r\n\r\n\t\t\t\t// Récupère le jour, le mois et l'année de la date\r\n\t\t\t\tconst day = date.getDate().toString().padStart(2, '0');\r\n\t\t\t\tconst month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n\t\t\t\tconst year = date.getFullYear();\r\n\r\n\t\t\t\tif (this.$i18n.locale == 'fr') {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY si l'App est en français\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY sinon\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./ContractInfosCard.vue?vue&type=template&id=45b5e6ae&scoped=true&ts=true\"\nimport script from \"./ContractInfosCard.vue?vue&type=script&lang=ts\"\nexport * from \"./ContractInfosCard.vue?vue&type=script&lang=ts\"\n\nimport \"./ContractInfosCard.vue?vue&type=style&index=0&id=45b5e6ae&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45b5e6ae\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dbef13a8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-2__container\" }\nconst _hoisted_2 = { class: \"app-title-2__text\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_4 = { class: \"app-card\" }\nconst _hoisted_5 = { class: \"university\" }\nconst _hoisted_6 = { class: \"header\" }\nconst _hoisted_7 = [\"src\"]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Se former, simplement\", -1))\nconst _hoisted_9 = { class: \"group\" }\nconst _hoisted_10 = { class: \"icons\" }\nconst _hoisted_11 = { class: \"item\" }\nconst _hoisted_12 = [\"src\"]\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Formation\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"separator\" }, null, -1))\nconst _hoisted_15 = { class: \"item\" }\nconst _hoisted_16 = [\"src\"]\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Support\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('universityCard.gonexaAndMe')), 1),\n _hoisted_3\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"img\", {\n src: require('@/assets/png/logo-university-negatif.png'),\n alt: \"logo university\",\n class: \"university__logo\"\n }, null, 8, _hoisted_7),\n _hoisted_8\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"img\", {\n src: require('@/assets/svg/award-blue.svg'),\n alt: \"award\",\n class: \"university__logo\"\n }, null, 8, _hoisted_12),\n _hoisted_13\n ]),\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"img\", {\n src: require('@/assets/svg/headphones-blue.svg'),\n alt: \"headphones\",\n class: \"university__logo\"\n }, null, 8, _hoisted_16),\n _hoisted_17\n ])\n ]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary university__button\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.redirectTo('https://www.gonexa.fr/university')))\n }, _toDisplayString(_ctx.$t('universityCard.training')), 1)\n ])\n ])\n ])\n ], 64))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nexport default class GonexaUniversityComponent extends Vue {\r\n\ttoast = useToast();\r\n\r\n\tredirectTo(link: string) {\r\n\t\ttry {\r\n\t\t\twindow.open(link, '_blank');\r\n\t\t} catch (error) {\r\n\t\t\tthis.toast.error(this.$t('error.redirect'));\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./GonexaUniversityComponent.vue?vue&type=template&id=dbef13a8&scoped=true&ts=true\"\nimport script from \"./GonexaUniversityComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./GonexaUniversityComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./GonexaUniversityComponent.vue?vue&type=style&index=0&id=dbef13a8&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-dbef13a8\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/dynamic_feed_darkblue.svg'\nimport _imports_1 from '@/assets/svg/copy_darkblue.svg'\nimport _imports_2 from '@/assets/svg/sign_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-305913c5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"app-title-2__container\" }\nconst _hoisted_3 = { class: \"app-title-2__text --wrapable\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = { class: \"cards-group\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"app-card\"\n}\nconst _hoisted_7 = { class: \"app-card__header\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_9 = { class: \"app-card__header-text\" }\nconst _hoisted_10 = { class: \"app-card__header-title\" }\nconst _hoisted_11 = { class: \"app-card__header-subtitle --bigger-subtitle\" }\nconst _hoisted_12 = { class: \"--smaller-subtitle\" }\nconst _hoisted_13 = { class: \"app-progress__container\" }\nconst _hoisted_14 = {\n class: \"app-progress__percentage\",\n style: { color: '#034C7A' }\n}\nconst _hoisted_15 = {\n key: 1,\n class: \"app-card\"\n}\nconst _hoisted_16 = { class: \"app-card__header\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n })\n], -1))\nconst _hoisted_18 = { class: \"app-card__header-text\" }\nconst _hoisted_19 = { class: \"app-card__header-title\" }\nconst _hoisted_20 = { class: \"app-card__header-subtitle --bigger-subtitle\" }\nconst _hoisted_21 = { class: \"--smaller-subtitle\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-progress__container\" }, null, -1))\nconst _hoisted_23 = { class: \"app-progress__percentage\" }\nconst _hoisted_24 = {\n key: 2,\n class: \"app-card\"\n}\nconst _hoisted_25 = { class: \"app-card__header\" }\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_2,\n alt: \"\"\n })\n], -1))\nconst _hoisted_27 = { class: \"app-card__header-text\" }\nconst _hoisted_28 = { class: \"app-card__header-title\" }\nconst _hoisted_29 = { class: \"app-card__header-subtitle --bigger-subtitle\" }\nconst _hoisted_30 = { class: \"--smaller-subtitle\" }\nconst _hoisted_31 = { class: \"app-progress__container\" }\nconst _hoisted_32 = {\n class: \"app-progress__percentage\",\n style: { color: '#FFAB00' }\n}\nconst _hoisted_33 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.contractLoaded && _ctx.currentContract)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$route.name == 'home' ? _ctx.$t('consumption.synthesis') : _ctx.$t('app.synthesis')), 1),\n _hoisted_4\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.contractValue >= 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.$t('consumption.generatedDocs')), 1),\n _createElementVNode(\"p\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.formatCompactNumber(_ctx.contractValue)) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('consumption.outOf')) + \" \" + _toDisplayString(_ctx.formatCompactNumber(_ctx.contractLimit)), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", {\n class: \"app-progress__bar\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t\tbackgroundColor: '#034C7A',\r\n\t\t\t\t\t\t\twidth: Math.round((100 * _ctx.contractValue) / _ctx.contractLimit) + '%',\r\n\t\t\t\t\t\t})\n }, null, 4)\n ]),\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.contractLimit != undefined\r\n\t\t\t\t\t\t\t? Math.round((100 * _ctx.contractValue) / _ctx.contractLimit) + '%'\r\n\t\t\t\t\t\t\t: _ctx.$t('consumption.unlimited')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.templatesValue >= 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _hoisted_17,\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"p\", _hoisted_19, _toDisplayString(_ctx.$t('consumption.docTemplates')), 1),\n _createElementVNode(\"p\", _hoisted_20, [\n _createTextVNode(_toDisplayString(_ctx.formatCompactNumber(_ctx.templatesValue)) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.$t('consumption.templates')), 1)\n ])\n ])\n ]),\n _hoisted_22,\n _createElementVNode(\"p\", _hoisted_23, _toDisplayString(_ctx.$t('consumption.unlimited')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.signLimit > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _hoisted_26,\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"p\", _hoisted_28, _toDisplayString(_ctx.$t('consumption.signatures')), 1),\n _createElementVNode(\"p\", _hoisted_29, [\n _createTextVNode(_toDisplayString(_ctx.formatCompactNumber(_ctx.currentContract.real_signatures__c)) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_30, _toDisplayString(_ctx.$t('consumption.outOf')) + \" \" + _toDisplayString(_ctx.formatCompactNumber(_ctx.signLimit)), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"div\", {\n class: \"app-progress__bar\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t\tbackgroundColor: '#FFAB00',\r\n\t\t\t\t\t\t\twidth:\r\n\t\t\t\t\t\t\t\tMath.min(Math.round((100 * _ctx.currentContract.real_signatures__c) / _ctx.signLimit), 100) + '%',\r\n\t\t\t\t\t\t})\n }, null, 4)\n ]),\n _createElementVNode(\"p\", _hoisted_32, _toDisplayString(Math.round((100 * _ctx.currentContract.real_signatures__c) / _ctx.signLimit) + '%'), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_33))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { Contract } from '@/types/salesforce-objects.type';\r\nimport OrgContractService from '@/services/org-contract.service';\r\n\r\nexport default class ConsumptionCardsGroup extends Vue {\r\n\ttoast = useToast();\r\n\tcurrentContract: Contract | undefined = undefined;\r\n\tcontractLoaded = false;\r\n\r\n\tcontractValue = 0;\r\n\tcontractLimit = 0;\r\n\ttemplatesValue = 0;\r\n\tsignValue = 0;\r\n\tsignLimit = 0;\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.currentContract = await OrgContractService.getCurrentContract();\r\n\t\t\tthis.contractLoaded = true;\r\n\r\n\t\t\tif (this.currentContract) {\r\n\t\t\t\tthis.contractValue = this.currentContract.real_generation__c;\r\n\t\t\t\tthis.contractLimit = this.currentContract.gnx__Number_of_generations__c;\r\n\t\t\t\tthis.templatesValue = this.currentContract.gnx__Number_of_templates__c\r\n\t\t\t\t\t? this.currentContract.gnx__Number_of_templates__c\r\n\t\t\t\t\t: 0;\r\n\t\t\t\tthis.signLimit = this.currentContract.authorized_sign__c;\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tthis.contractLoaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Retourne un chiffre (5000 par exemple) sous forme simplifié (5K)\r\n\t * @param number nombre\r\n\t */\r\n\tformatCompactNumber(number: number) {\r\n\t\tif (number < 1000) {\r\n\t\t\treturn number;\r\n\t\t} else if (number >= 1000 && number < 1_000_000) {\r\n\t\t\treturn (number / 1000).toFixed(1) + 'K';\r\n\t\t} else if (number >= 1_000_000 && number < 1_000_000_000) {\r\n\t\t\treturn (number / 1_000_000).toFixed(1) + 'M';\r\n\t\t} else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\r\n\t\t\treturn (number / 1_000_000_000).toFixed(1) + 'B';\r\n\t\t} else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\r\n\t\t\treturn (number / 1_000_000_000_000).toFixed(1) + 'T';\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./ConsumptionCardsGroup.vue?vue&type=template&id=305913c5&scoped=true&ts=true\"\nimport script from \"./ConsumptionCardsGroup.vue?vue&type=script&lang=ts\"\nexport * from \"./ConsumptionCardsGroup.vue?vue&type=script&lang=ts\"\n\nimport \"./ConsumptionCardsGroup.vue?vue&type=style&index=0&id=305913c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-305913c5\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/warning_yellow_duo.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4c851153\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal__close\" }\nconst _hoisted_4 = { class: \"app-modal\" }\nconst _hoisted_5 = { class: \"app-modal__header\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_7 = { class: \"app-modal__header-text\" }\nconst _hoisted_8 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_9 = { class: \"app-modal__header-title\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_11 = { class: \"app-modal__body\" }\nconst _hoisted_12 = { class: \"app-modal__body-text\" }\nconst _hoisted_13 = { class: \"app-modal__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.close()))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('workspaces.configuration')), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('workspaces.connectionToSalesforce')), 1)\n ])\n ]),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('workspaces.configuration1')) + \" \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workspaces.configuration2')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workspaces.configuration3')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.loginSalesforce(false)))\n }, _toDisplayString(_ctx.$t('workspaces.production')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.loginSalesforce(true)))\n }, _toDisplayString(_ctx.$t('workspaces.sandbox')), 1)\n ])\n ])\n ])\n ]))\n}","import { useToast } from 'vue-toastification';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\n\r\n/**\r\n * Gestion de la liaison du compte Gonexa avec l'environnement Salesforce\r\n */\r\nexport default class AuthSalesforceService {\r\n\tstatic toast = useToast();\r\n\r\n\t/**\r\n\t * Méthode qui permet à l'utilisateur de se connecter à un compte Salesforce, puis d'être redirigé sur l'App\r\n\t * TODO: Description des params et retour\r\n\t */\r\n\tstatic async loginToSalesforce(toSandbox: boolean, instanceUrl: string, oldOrgId = '') {\r\n\t\tconst salesforceState = {\r\n\t\t\torgType: toSandbox ? 'test' : 'login',\r\n\t\t\tspecificDomain: '', // Si nom de domaine spécifique pour le login, par exemple : gonexa.my.salesforce.com\r\n\t\t\toldOrgId: oldOrgId != '' ? oldOrgId : null,\r\n\t\t};\r\n\t\tlet domain = instanceUrl;\r\n\t\tif (!domain) {\r\n\t\t\tdomain = toSandbox ? process.env.VUE_APP_TEST_URI : process.env.VUE_APP_PROD_URI;\r\n\t\t}\r\n\t\tconst salesforceOAuthUrl = `${domain}/services/oauth2/authorize?prompt=login&response_type=code&client_id=${\r\n\t\t\tprocess.env.VUE_APP_CLIENT_ID\r\n\t\t}&redirect_uri=${location.origin}/callback&scope=id+api+refresh_token+offline_access&state=${JSON.stringify(\r\n\t\t\tsalesforceState\r\n\t\t)}`;\r\n\t\twindow.location.replace(salesforceOAuthUrl);\r\n\t}\r\n\r\n\t/**\r\n\t * Méthode qui permet à l'utilisateur\r\n\t * TODO: Description des params et retour\r\n\t */\r\n\tstatic async authToSalesforce(\r\n\t\tsalesforceCode: string,\r\n\t\torgType: string,\r\n\t\tspecificDomain: string,\r\n\t\toldOrgId: string | null\r\n\t) {\r\n\t\tconst requestBody = {\r\n\t\t\tsalesforceCode: salesforceCode,\r\n\t\t\torgType: orgType,\r\n\t\t\tspecificDomain: specificDomain,\r\n\t\t\toldOrgId: oldOrgId,\r\n\t\t};\r\n\r\n\t\tconst uri: string = process.env.VUE_APP_APP_API_URI;\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync('post', `${uri}/api/salesforce/auth`, requestBody);\r\n\t}\r\n}\r\n","\r\nimport AuthSalesforceService from '@/services/auth-salesforce.service';\r\nimport { Vue } from 'vue-class-component';\r\nexport default class ConfigurationModal extends Vue {\r\n\tclose() {\r\n\t\tthis.$emit('close');\r\n\t}\r\n\taction() {\r\n\t\tthis.$emit('action');\r\n\t}\r\n\tloginSalesforce(toSandbox: boolean) {\r\n\t\tAuthSalesforceService.loginToSalesforce(toSandbox, '');\r\n\t}\r\n}\r\n","import { render } from \"./ConfigurationModal.vue?vue&type=template&id=4c851153&scoped=true&ts=true\"\nimport script from \"./ConfigurationModal.vue?vue&type=script&lang=ts\"\nexport * from \"./ConfigurationModal.vue?vue&type=script&lang=ts\"\n\nimport \"./ConfigurationModal.vue?vue&type=style&index=0&id=4c851153&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c851153\"]])\n\nexport default __exports__","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\n\r\nimport UserInfosCard from '@/components/user/UserInfosCard.vue';\r\nimport ContractInfosCard from '@/components/user/ContractInfosCard.vue';\r\nimport GonexaUniversityComponent from '@/components/general/GonexaUniversityComponent.vue';\r\nimport ConsumptionCardsGroup from '@/components/consumption/ConsumptionCardsGroup.vue';\r\nimport ConfigurationModal from './general/ConfigurationModal.vue';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tUserInfosCard,\r\n\t\tContractInfosCard,\r\n\t\tGonexaUniversityComponent,\r\n\t\tConsumptionCardsGroup,\r\n\t\tConfigurationModal,\r\n\t},\r\n})\r\nexport default class HomeView extends Vue {\r\n\tauthStore = useAuthStore();\r\n\tisOwnerFree = false;\r\n\tisOwnerVerifInProgress = false;\r\n\tisOwnerVerified = false;\r\n\tisOwnerBlocked = false;\r\n\tisUser = false;\r\n\tisConfigurationModelOpen = false;\r\n\r\n\tmounted(): void {\r\n\t\tconst roleName = this.authStore.roleName?.toLowerCase();\r\n\t\tconst companyStatus = this.authStore.companyStatus?.toLowerCase();\r\n\r\n\t\tif (roleName === 'owner') {\r\n\t\t\tthis.isOwnerFree = companyStatus === 'free';\r\n\t\t\tthis.isOwnerVerifInProgress = companyStatus === 'verificationinprogress';\r\n\t\t\tthis.isOwnerVerified = companyStatus === 'verified';\r\n\t\t\tthis.isOwnerBlocked = companyStatus === 'blocked';\r\n\t\t} else {\r\n\t\t\tthis.isUser = true;\r\n\t\t}\r\n\t}\r\n\r\n\topenSupport() {\r\n\t\twindow.open('https://aide.gonexa.fr/s/contactsupport?language=fr', '_blank');\r\n\t}\r\n\r\n\tcloseModal() {\r\n\t\tthis.isConfigurationModelOpen = false;\r\n\t}\r\n\topenModal() {\r\n\t\tthis.isConfigurationModelOpen = true;\r\n\t}\r\n}\r\n","import { render } from \"./HomeView.vue?vue&type=template&id=037d03d7&scoped=true&ts=true\"\nimport script from \"./HomeView.vue?vue&type=script&lang=ts\"\nexport * from \"./HomeView.vue?vue&type=script&lang=ts\"\n\nimport \"./HomeView.vue?vue&type=style&index=0&id=037d03d7&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-037d03d7\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/warning_red.svg'\nimport _imports_1 from '@/assets/svg/alarm_yellow.svg'\nimport _imports_2 from '@/assets/svg/check_green.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-715237ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-1\" }\nconst _hoisted_2 = { class: \"app-title-2__container\" }\nconst _hoisted_3 = { class: \"app-title-2__text\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = { class: \"factures app-table__container\" }\nconst _hoisted_6 = { class: \"app-table\" }\nconst _hoisted_7 = { class: \"app-table__header\" }\nconst _hoisted_8 = { class: \"app-table__header-row\" }\nconst _hoisted_9 = { class: \"app-table__header-cell\" }\nconst _hoisted_10 = { class: \"app-table__header-cell\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"app-table__body\"\n}\nconst _hoisted_12 = { class: \"app-table__body-cell\" }\nconst _hoisted_13 = { class: \"app-table__body-cell\" }\nconst _hoisted_14 = { class: \"app-table__body-cell\" }\nconst _hoisted_15 = { class: \"app-table__body-cell\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"factures__statut-icon\",\n src: _imports_0,\n alt: \"\"\n}\nconst _hoisted_17 = {\n key: 1,\n class: \"factures__statut-icon\",\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_18 = {\n key: 2,\n class: \"factures__statut-icon\",\n src: _imports_2,\n alt: \"\"\n}\nconst _hoisted_19 = {\n key: 1,\n class: \"app-table__body\"\n}\nconst _hoisted_20 = { class: \"app-table__body-row\" }\nconst _hoisted_21 = {\n class: \"app-table__body-cell\",\n colspan: \"5\"\n}\nconst _hoisted_22 = { class: \"app-table__empty-table\" }\nconst _hoisted_23 = {\n key: 2,\n class: \"app-table__body\"\n}\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ])\n], -1))\nconst _hoisted_25 = [\n _hoisted_24\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BillingCardsGroup = _resolveComponent(\"BillingCardsGroup\")!\n const _component_TicketComponent = _resolveComponent(\"TicketComponent\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('app.billing')), 1),\n _createVNode(_component_BillingCardsGroup),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('billing.list')), 1),\n _hoisted_4\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"table\", _hoisted_6, [\n _createElementVNode(\"thead\", _hoisted_7, [\n _createElementVNode(\"tr\", _hoisted_8, [\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isNbSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isNbSorted == 0 || _ctx.isNbSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.sortTableColumn()))\n }, _toDisplayString(_ctx.$t('billing.no')), 3),\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isDateSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isDateSorted == 0 || _ctx.isDateSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.sortTableColumnDate()))\n }, _toDisplayString(_ctx.$t('billing.date')), 3),\n _createElementVNode(\"th\", _hoisted_9, _toDisplayString(_ctx.$t('billing.amount')), 1),\n _createElementVNode(\"th\", _hoisted_10, _toDisplayString(_ctx.$t('billing.status')), 1)\n ])\n ]),\n (_ctx.infoLoaded && _ctx.invoices != undefined)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.invoices, (inv) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"app-table__body-row\",\n key: inv.id\n }, [\n _createElementVNode(\"td\", _hoisted_12, _toDisplayString(inv.gnx__Invoice_number__c), 1),\n _createElementVNode(\"td\", _hoisted_13, _toDisplayString(_ctx.getFormattedDate(inv.date_de_facture_Formule__c)), 1),\n _createElementVNode(\"td\", _hoisted_14, _toDisplayString(inv.gnx__Amount_with_taxes__c) + \"€ \" + _toDisplayString(_ctx.$t('billing.taxes')), 1),\n _createElementVNode(\"td\", _hoisted_15, [\n (_ctx.compareDates(inv.payment_due_date__c) == -1 && inv.gnx__Stage__c != 'Paid')\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_16))\n : (inv.gnx__Stage__c == 'Issued')\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_17))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_18))\n ])\n ]))\n }), 128))\n ]))\n : (_ctx.infoLoaded && (_ctx.invoices == undefined || (_ctx.invoices && _ctx.invoices.length > 0)))\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_19, [\n _createElementVNode(\"tr\", _hoisted_20, [\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"p\", _hoisted_22, _toDisplayString(_ctx.$t('billing.emptyTable')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"tbody\", _hoisted_23, _hoisted_25))\n ])\n ]),\n _createVNode(_component_TicketComponent)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d66d8adc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"ticket app-card\" }\nconst _hoisted_2 = { class: \"ticket__question\" }\nconst _hoisted_3 = { class: \"ticket__question-text\" }\nconst _hoisted_4 = { class: \"ticket__question-text --blue\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('ticketCard.question')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('ticketCard.contact')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.redirectTo('https://university.gonexa.fr')))\n }, _toDisplayString(_ctx.$t('ticketCard.open')), 1)\n ])\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nexport default class TicketComponent extends Vue {\r\n\ttoast = useToast();\r\n\r\n\tredirectTo(link: string) {\r\n\t\ttry {\r\n\t\t\twindow.open(link, '_blank');\r\n\t\t} catch (error) {\r\n\t\t\tthis.toast.error(this.$t('error.redirect'));\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./TicketComponent.vue?vue&type=template&id=d66d8adc&scoped=true&ts=true\"\nimport script from \"./TicketComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./TicketComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./TicketComponent.vue?vue&type=style&index=0&id=d66d8adc&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d66d8adc\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/calendar_darkblue.svg'\nimport _imports_1 from '@/assets/svg/currency_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ca8c553c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n key: 0,\n class: \"app-title-2__container\"\n}\nconst _hoisted_3 = { class: \"app-title-2__text\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = {\n key: 1,\n class: \"info\"\n}\nconst _hoisted_6 = { class: \"app-card\" }\nconst _hoisted_7 = { class: \"app-card__header\" }\nconst _hoisted_8 = { class: \"app-card__header-icon\" }\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = { class: \"app-card__header-text\" }\nconst _hoisted_11 = { class: \"app-card__header-title\" }\nconst _hoisted_12 = { class: \"app-card__header-subtitle indicator\" }\nconst _hoisted_13 = { class: \"app-card\" }\nconst _hoisted_14 = { class: \"app-card__header\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_16 = { class: \"app-card__header-text\" }\nconst _hoisted_17 = { class: \"app-card__header-title\" }\nconst _hoisted_18 = { class: \"app-card__header-subtitle indicator\" }\nconst _hoisted_19 = { class: \"app-card\" }\nconst _hoisted_20 = { class: \"app-card__header\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-card__header-icon\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n })\n], -1))\nconst _hoisted_22 = { class: \"app-card__header-text\" }\nconst _hoisted_23 = { class: \"app-card__header-title\" }\nconst _hoisted_24 = { class: \"app-card__header-subtitle indicator\" }\nconst _hoisted_25 = { key: 2 }\nconst _hoisted_26 = {\n key: 1,\n class: \"app-spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.infoLoaded)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.invoices != undefined && _ctx.lastInvoice != undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('app.synthesis')), 1),\n _hoisted_4\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.invoices != undefined && _ctx.lastInvoice != undefined)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"img\", {\n src: _ctx.globalStatusIcon,\n alt: \"\"\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('billing.overallStatus')), 1),\n _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.globalStatus), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('billing.lastInvoice')), 1),\n _createElementVNode(\"p\", _hoisted_18, _toDisplayString(_ctx.getFormattedDate(_ctx.lastInvoice.date_de_facture_Formule__c)), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"p\", _hoisted_23, _toDisplayString(_ctx.$t('billing.lastAmount')), 1),\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.lastInvoice.gnx__Amount_with_taxes__c + '€ ' + _ctx.$t('billing.taxes')), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_26))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nimport OrgContractService from '@/services/org-contract.service';\r\nimport { Invoice } from '@/types/salesforce-objects.type';\r\n\r\nexport default class BillingCardsGroup extends Vue {\r\n\ttoast = useToast();\r\n\tinvoices: Invoice[] | undefined = undefined;\r\n\tlastInvoice: Invoice | undefined = undefined;\r\n\tinfoLoaded = false;\r\n\tglobalStatus = '';\r\n\tglobalStatusIcon = '';\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.invoices = await OrgContractService.getAllInvoices();\r\n\t\t\tthis.defineGlobalStatus();\r\n\t\t\tthis.lastInvoice = this.invoices[this.invoices.length - 1];\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t\twindow.addEventListener('langChanged', () => {\r\n\t\t\t\tthis.defineGlobalStatus();\r\n\t\t\t});\r\n\t\t} catch {\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\tbeforeDestroy() {\r\n\t\twindow.removeEventListener('langChanged', () => {\r\n\t\t\tthis.defineGlobalStatus();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Définit le texte et l'icone correspondant à l'état global des factures\r\n\t */\r\n\tdefineGlobalStatus() {\r\n\t\tif (this.invoices != undefined) {\r\n\t\t\tconst invoicesNb = this.invoices?.length;\r\n\t\t\tlet index = 0;\r\n\t\t\tlet isInPayment = false;\r\n\t\t\tlet isLate = false;\r\n\r\n\t\t\twhile (index < invoicesNb && !isLate) {\r\n\t\t\t\tconst indexStage = this.invoices[index].gnx__Stage__c.toLocaleLowerCase();\r\n\t\t\t\tlet indexDate = this.invoices[index].payment_due_date__c;\r\n\r\n\t\t\t\tif (this.compareDates(indexDate) == -1 && indexStage != 'paid') isLate = true;\r\n\t\t\t\telse if (indexStage == 'issued') isInPayment = true;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\r\n\t\t\tif (isLate) {\r\n\t\t\t\tthis.globalStatus = this.$t('billing.late');\r\n\t\t\t\tthis.globalStatusIcon = require('@/assets/svg/warning_red.svg');\r\n\t\t\t} else if (isInPayment) {\r\n\t\t\t\tthis.globalStatus = this.$t('billing.toPay');\r\n\t\t\t\tthis.globalStatusIcon = require('@/assets/svg/alarm_yellow.svg');\r\n\t\t\t} else {\r\n\t\t\t\tthis.globalStatus = this.$t('billing.upToDate');\r\n\t\t\t\tthis.globalStatusIcon = require('@/assets/svg/check_green.svg');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcompareDates(dueDateStr: string): number {\r\n\t\tif (dueDateStr.includes('T')) dueDateStr = dueDateStr.slice(0, 10);\r\n\t\tconst dueDateParts: any = dueDateStr.split('-');\r\n\t\tlet dueDate = new Date(+dueDateParts[0], dueDateParts[1] - 1, +dueDateParts[2]);\r\n\t\tdueDate.setHours(0, 0, 0, 0);\r\n\r\n\t\tlet currentDate = new Date();\r\n\t\tcurrentDate.setHours(0, 0, 0, 0);\r\n\r\n\t\tif (dueDate < currentDate) return -1;\r\n\t\telse return 0;\r\n\t}\r\n\r\n\tgetFormattedDate(dateString: string) {\r\n\t\ttry {\r\n\t\t\tif (dateString != undefined) {\r\n\t\t\t\t// Si c'est un format DATETIME, je ne garde que la partie DATE\r\n\t\t\t\tif (dateString.includes('T')) dateString = dateString.slice(0, 10);\r\n\t\t\t\tconst dateParts: any = dateString.split('-');\r\n\t\t\t\tconst date = new Date(+dateParts[0], dateParts[1] - 1, +dateParts[2]);\r\n\r\n\t\t\t\t// Récupère le jour, le mois et l'année de la date\r\n\t\t\t\tconst day = date.getDate().toString().padStart(2, '0');\r\n\t\t\t\tconst month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n\t\t\t\tconst year = date.getFullYear();\r\n\r\n\t\t\t\tif (this.$i18n.locale == 'fr') {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY si l'App est en français\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY sinon\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./BillingCardsGroup.vue?vue&type=template&id=ca8c553c&scoped=true&ts=true\"\nimport script from \"./BillingCardsGroup.vue?vue&type=script&lang=ts\"\nexport * from \"./BillingCardsGroup.vue?vue&type=script&lang=ts\"\n\nimport \"./BillingCardsGroup.vue?vue&type=style&index=0&id=ca8c553c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ca8c553c\"]])\n\nexport default __exports__","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport BillingCardsGroup from '@/components/billing/BillingCardsGroup.vue';\r\n\r\nimport OrgContractService from '@/services/org-contract.service';\r\nimport { Invoice } from '@/types/salesforce-objects.type';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tTicketComponent,\r\n\t\tBillingCardsGroup,\r\n\t},\r\n})\r\nexport default class BillingView extends Vue {\r\n\ttoast = useToast();\r\n\tinvoices: Invoice[] | undefined = undefined;\r\n\tinfoLoaded = false;\r\n\tisNbSorted = 1;\r\n\tisDateSorted = 0;\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.invoices = (await OrgContractService.getAllInvoices())?.sort((x, y) =>\r\n\t\t\t\tx.gnx__Invoice_number__c.localeCompare(y.gnx__Invoice_number__c)\r\n\t\t\t);\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t} catch {\r\n\t\t\tthis.toast.error(this.$t('error.noInvoice'));\r\n\t\t\tthis.infoLoaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\t// TO FIX : Téléchargement des factures\r\n\t/**\r\n\t * Fait télécharger la facture en PDF\r\n\t * @param facture La facture associé à un contrat\r\n\t */\r\n\t/* async downloadInvoicePDF(invoice: Invoice) {\r\n\t\tthis.toast.info(this.$t('billing.downloading'));\r\n\t\tconst versionData = await OrgContractService.getInvoiceVersionData(invoice.id);\r\n\t\tconst fileURL = URL.createObjectURL(versionData);\r\n\t\tconst link = document.createElement('a');\r\n\t\tlink.href = fileURL;\r\n\t\tlink.download = 'F-' + invoice.date_de_facture_Formule__c + '-' + invoice.name.replace('INV-', '') + '.pdf';\r\n\t\tlink.click();\r\n\t} */\r\n\r\n\tgetFormattedDate(dateString: string) {\r\n\t\ttry {\r\n\t\t\tif (dateString != undefined) {\r\n\t\t\t\t// Si c'est un format DATETIME, je ne garde que la partie DATE\r\n\t\t\t\tif (dateString.includes('T')) dateString = dateString.slice(0, 10);\r\n\t\t\t\tconst dateParts: any = dateString.split('-');\r\n\t\t\t\tconst date = new Date(+dateParts[0], dateParts[1] - 1, +dateParts[2]);\r\n\r\n\t\t\t\t// Récupère le jour, le mois et l'année de la date\r\n\t\t\t\tconst day = date.getDate().toString().padStart(2, '0');\r\n\t\t\t\tconst month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n\t\t\t\tconst year = date.getFullYear();\r\n\r\n\t\t\t\tif (this.$i18n.locale == 'fr') {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY si l'App est en français\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Formate la date en DD/MM/YYYY sinon\r\n\t\t\t\t\treturn `${day}/${month}/${year}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n\r\n\tcompareDates(dueDateStr: string): number {\r\n\t\tif (dueDateStr.includes('T')) dueDateStr = dueDateStr.slice(0, 10);\r\n\t\tconst dueDateParts: any = dueDateStr.split('-');\r\n\t\tlet dueDate = new Date(+dueDateParts[0], dueDateParts[1] - 1, +dueDateParts[2]);\r\n\t\tdueDate.setHours(0, 0, 0, 0);\r\n\r\n\t\tlet currentDate = new Date();\r\n\t\tcurrentDate.setHours(0, 0, 0, 0);\r\n\r\n\t\tif (dueDate < currentDate) return -1;\r\n\t\telse return 0;\r\n\t}\r\n\r\n\tsortTableColumn() {\r\n\t\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\t\tif (this.invoices != undefined) {\r\n\t\t\tlet newSortedList = [];\r\n\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isNbSorted == 1\r\n\t\t\t\t\t? this.invoices\r\n\t\t\t\t\t\t\t.sort((x, y) => x.gnx__Invoice_number__c.localeCompare(y.gnx__Invoice_number__c))\r\n\t\t\t\t\t\t\t.reverse()\r\n\t\t\t\t\t: this.invoices.sort((x, y) => x.gnx__Invoice_number__c.localeCompare(y.gnx__Invoice_number__c));\r\n\r\n\t\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\t\tthis.isNbSorted = this.isNbSorted == 1 ? -1 : 1;\r\n\r\n\t\t\tthis.invoices = newSortedList;\r\n\t\t}\r\n\t}\r\n\r\n\tsortTableColumnDate() {\r\n\t\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\t\tif (this.invoices != undefined) {\r\n\t\t\tlet newSortedList = [];\r\n\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isDateSorted == 1\r\n\t\t\t\t\t? this.invoices.sort(\r\n\t\t\t\t\t\t\t(x, y) =>\r\n\t\t\t\t\t\t\t\tthis.stringToDate(y.date_de_facture_Formule__c).getTime() -\r\n\t\t\t\t\t\t\t\tthis.stringToDate(x.date_de_facture_Formule__c).getTime()\r\n\t\t\t\t\t )\r\n\t\t\t\t\t: this.invoices\r\n\t\t\t\t\t\t\t.sort(\r\n\t\t\t\t\t\t\t\t(x, y) =>\r\n\t\t\t\t\t\t\t\t\tthis.stringToDate(y.date_de_facture_Formule__c).getTime() -\r\n\t\t\t\t\t\t\t\t\tthis.stringToDate(x.date_de_facture_Formule__c).getTime()\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.reverse();\r\n\r\n\t\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\t\tthis.isDateSorted = this.isDateSorted == 1 ? -1 : 1;\r\n\r\n\t\t\tthis.invoices = newSortedList;\r\n\t\t}\r\n\t}\r\n\r\n\tstringToDate(dateString: string): Date {\r\n\t\treturn new Date(dateString);\r\n\t}\r\n}\r\n","import { render } from \"./BillingView.vue?vue&type=template&id=715237ae&scoped=true&ts=true\"\nimport script from \"./BillingView.vue?vue&type=script&lang=ts\"\nexport * from \"./BillingView.vue?vue&type=script&lang=ts\"\n\nimport \"./BillingView.vue?vue&type=style&index=0&id=715237ae&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-715237ae\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, withModifiers as _withModifiers, vShow as _vShow, withDirectives as _withDirectives, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/add_circle_darkblue.svg'\nimport _imports_1 from '@/assets/svg/more_points_grey.svg'\nimport _imports_2 from '@/assets/svg/copy_black.svg'\nimport _imports_3 from '@/assets/svg/edit_pencil_black.svg'\nimport _imports_4 from '@/assets/svg/delete_black.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-180a18e1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"profile__title\" }\nconst _hoisted_2 = { class: \"app-title-1\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"app-title-2__container\"\n}\nconst _hoisted_4 = { class: \"app-title-2__text\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_6 = {\n key: 1,\n class: \"profile\"\n}\nconst _hoisted_7 = { class: \"app-title-2__container\" }\nconst _hoisted_8 = { class: \"app-title-2__text\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_10 = { class: \"users__header\" }\nconst _hoisted_11 = { class: \"users__active\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_0 }, null, -1))\nconst _hoisted_13 = { class: \"users__list app-table__container\" }\nconst _hoisted_14 = { class: \"app-table\" }\nconst _hoisted_15 = { class: \"app-table__header\" }\nconst _hoisted_16 = { class: \"app-table__header-row\" }\nconst _hoisted_17 = { class: \"app-table__header-cell\" }\nconst _hoisted_18 = { class: \"app-table__header-cell action__column\" }\nconst _hoisted_19 = { key: 0 }\nconst _hoisted_20 = { class: \"app-table__body-cell\" }\nconst _hoisted_21 = { class: \"app-table__body-cell\" }\nconst _hoisted_22 = { class: \"app-table__body-cell\" }\nconst _hoisted_23 = { class: \"app-table__body-cell\" }\nconst _hoisted_24 = { class: \"app-table__body-cell action__cell\" }\nconst _hoisted_25 = [\"id\", \"onClick\"]\nconst _hoisted_26 = [\"id\", \"onMouseleave\"]\nconst _hoisted_27 = [\"onClick\"]\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_2 }, null, -1))\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Copier l'ID Sign\", -1))\nconst _hoisted_30 = [\n _hoisted_28,\n _hoisted_29\n]\nconst _hoisted_31 = [\"onClick\"]\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_3 }, null, -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Modifier\", -1))\nconst _hoisted_34 = [\n _hoisted_32,\n _hoisted_33\n]\nconst _hoisted_35 = [\"onClick\"]\nconst _hoisted_36 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_4 }, null, -1))\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Supprimer\", -1))\nconst _hoisted_38 = [\n _hoisted_36,\n _hoisted_37\n]\nconst _hoisted_39 = {\n key: 1,\n class: \"app-table__body\"\n}\nconst _hoisted_40 = { class: \"app-table__body-row\" }\nconst _hoisted_41 = {\n class: \"app-table__body-cell\",\n colspan: \"5\"\n}\nconst _hoisted_42 = { class: \"app-table__empty-table\" }\nconst _hoisted_43 = {\n key: 2,\n class: \"app-table__body\"\n}\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ])\n], -1))\nconst _hoisted_45 = [\n _hoisted_44\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserInfosCard = _resolveComponent(\"UserInfosCard\")!\n const _component_TicketComponent = _resolveComponent(\"TicketComponent\")!\n const _component_UserCreateModal = _resolveComponent(\"UserCreateModal\")!\n const _component_UserDeleteModal = _resolveComponent(\"UserDeleteModal\")!\n const _component_UserEditModal = _resolveComponent(\"UserEditModal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('app.users')), 1)\n ]),\n (_ctx.authStore.roleName?.toLowerCase() == 'owner' && _ctx.authStore.companyStatus?.toLowerCase() == 'verified')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('users.myInfos')), 1),\n _hoisted_5\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.authStore.roleName?.toLowerCase() == 'owner' && _ctx.authStore.companyStatus?.toLowerCase() == 'verified')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_UserInfosCard, { class: \"profile__card\" })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('users.list')), 1),\n _hoisted_9\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.nbActiveUsers == 0\r\n\t\t\t\t\t? _ctx.$t('users.noActiveUser')\r\n\t\t\t\t\t: _ctx.nbActiveUsers == 1\r\n\t\t\t\t\t? _ctx.nbActiveUsers + ' ' + _ctx.$t('users.oneActiveUser')\r\n\t\t\t\t\t: _ctx.nbActiveUsers + ' ' + _ctx.$t('users.activeUsers')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _white-tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.openCreateModal()))\n }, [\n _hoisted_12,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('users.new')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"table\", _hoisted_14, [\n _createElementVNode(\"thead\", _hoisted_15, [\n _createElementVNode(\"tr\", _hoisted_16, [\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isNameSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isNameSorted == 0 || _ctx.isNameSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.sortTableColumn('name')))\n }, _toDisplayString(_ctx.$t('users.name')), 3),\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isUsernameSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isUsernameSorted == 0 || _ctx.isUsernameSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.sortTableColumn('username')))\n }, _toDisplayString(_ctx.$t('auth.inputs.username')), 3),\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isEmailSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isEmailSorted == 0 || _ctx.isEmailSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.sortTableColumn('email')))\n }, _toDisplayString(_ctx.$t('auth.inputs.email')), 3),\n _createElementVNode(\"th\", _hoisted_17, _toDisplayString(_ctx.$t('users.profile')), 1),\n _createElementVNode(\"th\", _hoisted_18, _toDisplayString(_ctx.$t('users.actions')), 1)\n ])\n ]),\n (_ctx.userLoaded && _ctx.usersList.length != 0)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_19, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usersList, (user, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"app-table__body-row\",\n key: user.username\n }, [\n _createElementVNode(\"td\", _hoisted_20, _toDisplayString(user.firstName) + \" \" + _toDisplayString(user.lastName), 1),\n _createElementVNode(\"td\", _hoisted_21, _toDisplayString(user.username), 1),\n _createElementVNode(\"td\", _hoisted_22, _toDisplayString(user.email), 1),\n _createElementVNode(\"td\", _hoisted_23, _toDisplayString(user.roleName == 'owner' ? _ctx.$t('users.owner') : _ctx.$t('users.limited')), 1),\n _createElementVNode(\"td\", _hoisted_24, [\n _createElementVNode(\"img\", {\n class: \"action__more\",\n src: _imports_1,\n alt: \"Plus d'actions\",\n id: 'button-' + index,\n onClick: _withModifiers(($event: any) => (_ctx.showActions(index)), [\"self\"])\n }, null, 8, _hoisted_25),\n _createElementVNode(\"div\", {\n class: \"gnx-btn-group _vertical action__group\",\n id: 'group-' + index,\n onMouseleave: ($event: any) => (_ctx.hideActions(index))\n }, [\n _createElementVNode(\"span\", {\n class: \"gnx-btn _white action__line\",\n onClick: ($event: any) => (_ctx.copyId(user.username, index))\n }, _hoisted_30, 8, _hoisted_27),\n _createElementVNode(\"span\", {\n class: \"gnx-btn _white action__line\",\n onClick: ($event: any) => (_ctx.openEditModal(user, index))\n }, _hoisted_34, 8, _hoisted_31),\n (\r\n\t\t\t\t\t\t\t\t\tuser.username != _ctx.authStore.username &&\r\n\t\t\t\t\t\t\t\t\t(user.roleName != 'owner' ||\r\n\t\t\t\t\t\t\t\t\t\t_ctx.usersList.filter((x) => x.roleName == 'owner').length > 1)\r\n\t\t\t\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"gnx-btn _white action__line\",\n onClick: ($event: any) => (_ctx.openDeleteModal(user, index))\n }, _hoisted_38, 8, _hoisted_35))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_26)\n ])\n ]))\n }), 128))\n ]))\n : (_ctx.userLoaded && _ctx.usersList.length <= 0)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_39, [\n _createElementVNode(\"tr\", _hoisted_40, [\n _createElementVNode(\"td\", _hoisted_41, [\n _createElementVNode(\"p\", _hoisted_42, _toDisplayString(_ctx.$t('users.noUser')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"tbody\", _hoisted_43, _hoisted_45))\n ])\n ]),\n _createVNode(_component_TicketComponent),\n _withDirectives(_createVNode(_component_UserCreateModal, {\n onClose: _cache[4] || (_cache[4] = ($event: any) => (_ctx.closeModal())),\n onAction: _ctx.addNewUser\n }, null, 8, [\"onAction\"]), [\n [_vShow, _ctx.isCreateModalopen]\n ]),\n _withDirectives(_createVNode(_component_UserDeleteModal, {\n onClose: _cache[5] || (_cache[5] = ($event: any) => (_ctx.closeModal())),\n onAction: _cache[6] || (_cache[6] = ($event: any) => (_ctx.deleteUser(_ctx.modalUser)))\n }, null, 512), [\n [_vShow, _ctx.isDeleteModalopen]\n ]),\n (_ctx.isEditModalopen)\n ? (_openBlock(), _createBlock(_component_UserEditModal, {\n key: 2,\n originalUser: _ctx.userToEdit,\n usersList: _ctx.usersList,\n onClose: _cache[7] || (_cache[7] = ($event: any) => (_ctx.closeModal())),\n onAction: _ctx.updateUserList\n }, null, 8, [\"originalUser\", \"usersList\", \"onAction\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/warning_yellow.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7e543c6e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal__close\" }\nconst _hoisted_4 = { class: \"app-modal\" }\nconst _hoisted_5 = { class: \"app-modal__header\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_7 = { class: \"app-modal__header-text\" }\nconst _hoisted_8 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_9 = { class: \"app-modal__header-title\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_11 = { class: \"app-modal__body\" }\nconst _hoisted_12 = { class: \"app-modal__body-text\" }\nconst _hoisted_13 = { class: \"app-modal__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.close()))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('users.user')), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('users.deletion')), 1)\n ])\n ]),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('users.confirm1')) + \" \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('users.confirm2')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('users.confirm3')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _tertiary app-modal__footer-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.close()))\n }, _toDisplayString(_ctx.$t('app.cancel')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _secondary app-modal__footer-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.action()))\n }, _toDisplayString(_ctx.$t('users.delete')), 1)\n ])\n ])\n ])\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\n\r\nexport default class UserDeleteModal extends Vue {\r\n\tclose() {\r\n\t\tthis.$emit('close');\r\n\t}\r\n\r\n\taction() {\r\n\t\tthis.$emit('action');\r\n\t}\r\n}\r\n","import { render } from \"./UserDeleteModal.vue?vue&type=template&id=7e543c6e&scoped=true&ts=true\"\nimport script from \"./UserDeleteModal.vue?vue&type=script&lang=ts\"\nexport * from \"./UserDeleteModal.vue?vue&type=script&lang=ts\"\n\nimport \"./UserDeleteModal.vue?vue&type=style&index=0&id=7e543c6e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7e543c6e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, normalizeClass as _normalizeClass, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7cc25976\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"gnx-label\" }\nconst _hoisted_2 = {\n key: 0,\n style: {\"color\":\"#e58a80\"}\n}\nconst _hoisted_3 = { class: \"gnx-field-content\" }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = {\n key: 0,\n value: \"\",\n disabled: \"\",\n hidden: \"\"\n}\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"gnx-field-content-icon\" }, null, -1))\nconst _hoisted_8 = {\n key: 0,\n class: \"gnx-field-error\"\n}\n\nimport { ref, watch } from 'vue';\r\n\r\n// Définir les props\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PickList',\n props: {\r\n\tlabel: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\titems: {\r\n\t\ttype: Array as () => { value: string | number; label: string }[],\r\n\t\trequired: true,\r\n\t},\r\n\tmodelValue: {\r\n\t\ttype: String as () => string | null,\r\n\t\trequired: true,\r\n\t},\r\n\temptyLabel: {\r\n\t\ttype: String,\r\n\t\tdefault: null,\r\n\t},\r\n\terrorMessage: {\r\n\t\ttype: String,\r\n\t\tdefault: null,\r\n\t},\r\n\twidth: {\r\n\t\ttype: String,\r\n\t\tdefault: '100%',\r\n\t},\r\n\tisRequired: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n},\n emits: ['update:modelValue'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\n\r\n\r\n\r\n\r\nconst localSelectedItem = ref(props.modelValue);\r\n\r\n// Mettre à jour la valeur locale lorsque la prop change\r\nwatch(localSelectedItem, (newValue) => {\r\n\temit('update:modelValue', newValue);\r\n});\r\n\r\nwatch(\r\n\t() => props.modelValue,\r\n\t(newValue) => {\r\n\t\tlocalSelectedItem.value = newValue;\r\n\t},\r\n\t{ immediate: true }\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"gnx-form-field _thin\",\n style: _normalizeStyle({ width: __props.width })\n }, [\n _createElementVNode(\"label\", _hoisted_1, [\n (__props.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"* \"))\n : _createCommentVNode(\"\", true),\n _createTextVNode(_toDisplayString(__props.label), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _withDirectives(_createElementVNode(\"select\", {\n class: _normalizeClass([\"gnx-field-content-select\", { _error: __props.errorMessage }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((localSelectedItem).value = $event)),\n disabled: __props.disabled\n }, [\n (__props.emptyLabel)\n ? (_openBlock(), _createElementBlock(\"option\", _hoisted_5, _toDisplayString(__props.emptyLabel), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.items, (item) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: item.value,\n value: item.value\n }, _toDisplayString(item.label), 9, _hoisted_6))\n }), 128))\n ], 10, _hoisted_4), [\n [_vModelSelect, localSelectedItem.value]\n ]),\n _hoisted_7\n ]),\n (__props.errorMessage)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(__props.errorMessage), 1))\n : _createCommentVNode(\"\", true)\n ], 4))\n}\n}\n\n})","import script from \"./PickList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PickList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PickList.vue?vue&type=style&index=0&id=7cc25976&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7cc25976\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/add_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-329be68b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal\" }\nconst _hoisted_4 = { class: \"app-modal__header\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_6 = { class: \"app-modal__header-text\" }\nconst _hoisted_7 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_8 = { class: \"app-modal__header-title\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_10 = [\"onSubmit\"]\nconst _hoisted_11 = { class: \"app-modal__body body-container\" }\nconst _hoisted_12 = { class: \"fields-container\" }\nconst _hoisted_13 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_14 = { class: \"gnx-label\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_16 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_17 = { class: \"gnx-label\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_19 = { class: \"fields-container\" }\nconst _hoisted_20 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_21 = { class: \"gnx-label\" }\nconst _hoisted_22 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_23 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_24 = { class: \"gnx-label\" }\nconst _hoisted_25 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_26 = { class: \"fields-container\" }\nconst _hoisted_27 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_28 = { class: \"app-modal__footer\" }\nconst _hoisted_29 = [\"disabled\"]\nconst _hoisted_30 = {\n key: 0,\n class: \"app-spinner --small\"\n}\n\nimport { ref } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport PickList from '@/components/general/PickList.vue';\r\nimport UserService from '@/services/user.service';\r\nimport { GonexaUser } from '@/types/gonexa-users.type';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\ninterface CreationInputs {\r\n\tfirstName: string;\r\n\tlastName: string;\r\n\temail: string;\r\n\tusername: string;\r\n\troleName: string;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserCreateModal',\n emits: ['close', 'action'],\n setup(__props, { emit: emits }) {\n\r\nconst { t } = useI18n();\r\n\r\nconst createEmptyUser = (): GonexaUser => ({\r\n\tfirstName: '',\r\n\tlastName: '',\r\n\temail: '',\r\n\tusername: '',\r\n\troleName: '',\r\n\tcreatedDate: '',\r\n});\r\n\r\nconst createEmptyErrors = (): CreationInputs => ({\r\n\tfirstName: '',\r\n\tlastName: '',\r\n\temail: '',\r\n\tusername: '',\r\n\troleName: '',\r\n});\r\n\r\nconst toast = useToast();\r\nconst isLoading = ref(false);\r\nconst newUser = ref<GonexaUser>(createEmptyUser());\r\nconst inputErrors = ref<CreationInputs>(createEmptyErrors());\r\nconst rolesItems = ref([\r\n\t{ value: 'user', label: t('users.limited') },\r\n\t{ value: 'owner', label: t('users.owner') },\r\n]);\r\n\r\n\r\n\r\nconst action = () => {\r\n\temits('action', newUser.value);\r\n\tclose();\r\n};\r\n\r\nconst close = () => {\r\n\tnewUser.value = createEmptyUser();\r\n\tinputErrors.value = createEmptyErrors();\r\n\temits('close');\r\n};\r\n\r\nconst createNewUser = async () => {\r\n\tif (!checkInputErrors()) return;\r\n\tisLoading.value = true;\r\n\ttry {\r\n\t\tawait UserService.inviteNewUser(newUser.value);\r\n\t\ttoast.success(t('success.userInvited'));\r\n\t\taction();\r\n\t} catch (error: any) {\r\n\t\tswitch (error.message) {\r\n\t\t\tcase 'OwnerDoesNotExist': {\r\n\t\t\t\ttoast.error(t('error.accountNotIdentified'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'CompanyDoesNotExist':\r\n\t\t\t\ttoast.error(t('error.companyNotIdentified'));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'UnknownRole':\r\n\t\t\t\ttoast.error(t('error.roleNotIdentified'));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'IsNotOwner': {\r\n\t\t\t\ttoast.error(t('error.notAuthorized'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'UsernameAlreadyExists': {\r\n\t\t\t\ttoast.error(t('error.auth.usernameAlreadyExists'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'RoleError': {\r\n\t\t\t\ttoast.error(t('error.roleNewUser'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'MailTokenError':\r\n\t\t\tcase 'SendingMailError': {\r\n\t\t\t\ttoast.error(t('error.email.sendInvitation'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\ttoast.error(t('error.newUser'));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t} finally {\r\n\t\tisLoading.value = false;\r\n\t}\r\n};\r\n\r\nconst checkInputErrors = () => {\r\n\tlet isValid = true;\r\n\tif (!newUser.value.firstName) {\r\n\t\tinputErrors.value.firstName = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\tif (!newUser.value.lastName) {\r\n\t\tinputErrors.value.lastName = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\tif (!newUser.value.email) {\r\n\t\tinputErrors.value.email = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t} else if (!newUser.value.email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)) {\r\n\t\tinputErrors.value.email = t('error.email.wrongFormat');\r\n\t\tisValid = false;\r\n\t}\r\n\tif (!newUser.value.username) {\r\n\t\tinputErrors.value.username = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\tif (newUser.value.username.match(/\\+/)) {\r\n\t\tinputErrors.value.username = t('error.NotPlus');\r\n\t\tisValid = false;\r\n\t}\r\n\tif (!newUser.value.roleName) {\r\n\t\tinputErrors.value.roleName = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else if (newUser.value.roleName != 'owner' && newUser.value.roleName != 'user') {\r\n\t\tinputErrors.value.roleName = 'error.roleNotIdentified';\r\n\t\tisValid = false;\r\n\t}\r\n\treturn isValid;\r\n};\r\n\r\nfunction onFocusOutEmail() {\r\n\tif (\r\n\t\t(newUser.value.username == null || newUser.value.username == '') &&\r\n\t\tnewUser.value.email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)\r\n\t)\r\n\t\tnewUser.value.username = newUser.value.email;\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", { class: \"app-modal__close\" }, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: close\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('users.user')), 1),\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('users.creation')), 1)\n ])\n ]),\n _hoisted_9,\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createNewUser, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.$t('auth.inputs.firstname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.firstName }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((newUser.value.firstName) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (inputErrors.value.firstName = !newUser.value.firstName ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, newUser.value.firstName]\n ]),\n (inputErrors.value.firstName)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_15, _toDisplayString(inputErrors.value.firstName), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('auth.inputs.lastname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.lastName }]),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((newUser.value.lastName) = $event)),\n onFocusout: _cache[3] || (_cache[3] = ($event: any) => (inputErrors.value.lastName = !newUser.value.lastName ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, newUser.value.lastName]\n ]),\n (inputErrors.value.lastName)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_18, _toDisplayString(inputErrors.value.lastName), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"p\", _hoisted_21, _toDisplayString(_ctx.$t('auth.inputs.email')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"email\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.email }]),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((newUser.value.email) = $event)),\n onFocusout: _cache[5] || (_cache[5] = ($event: any) => (onFocusOutEmail()))\n }, null, 34), [\n [_vModelText, newUser.value.email]\n ]),\n (inputErrors.value.email)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_22, _toDisplayString(inputErrors.value.email), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.$t('auth.inputs.username')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.username }]),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((newUser.value.username) = $event)),\n onFocusout: _cache[7] || (_cache[7] = ($event: any) => (inputErrors.value.username = !newUser.value.username ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, newUser.value.username]\n ]),\n (inputErrors.value.username)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_25, _toDisplayString(inputErrors.value.username), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n (rolesItems.value.length > 0)\n ? (_openBlock(), _createBlock(PickList, {\n key: 0,\n label: _ctx.$t('users.profile'),\n modelValue: newUser.value.roleName,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((newUser.value.roleName) = $event)),\n items: rolesItems.value,\n emptyLabel: _ctx.$t('users.profileEmptyLabel'),\n errorMessage: inputErrors.value.roleName ? _ctx.$t(inputErrors.value.roleName) : '',\n onChange: _cache[9] || (_cache[9] = ($event: any) => (inputErrors.value.roleName = newUser.value.roleName === '' ? 'error.emptyField' : ''))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n type: \"submit\",\n disabled: isLoading.value\n }, [\n _createTextVNode(_toDisplayString(isLoading.value ? '' : _ctx.$t('users.create')) + \" \", 1),\n (isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_30))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_29)\n ])\n ], 40, _hoisted_10)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserCreateModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserCreateModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserCreateModal.vue?vue&type=style&index=0&id=329be68b&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-329be68b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/edit_pencil_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3926a191\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal\" }\nconst _hoisted_4 = { class: \"app-modal__header\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_6 = { class: \"app-modal__header-text\" }\nconst _hoisted_7 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_8 = { class: \"app-modal__header-title\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_10 = [\"onSubmit\"]\nconst _hoisted_11 = { class: \"app-modal__body body-container\" }\nconst _hoisted_12 = { class: \"fields-container\" }\nconst _hoisted_13 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_14 = { class: \"gnx-label\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_16 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_17 = { class: \"gnx-label\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_19 = { class: \"fields-container\" }\nconst _hoisted_20 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_21 = { class: \"gnx-label\" }\nconst _hoisted_22 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_23 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_24 = { class: \"gnx-label\" }\nconst _hoisted_25 = {\n key: 0,\n class: \"gnx-field-error\"\n}\nconst _hoisted_26 = {\n key: 0,\n class: \"fields-container\"\n}\nconst _hoisted_27 = { class: \"app-form__field gnx-form-field _thin\" }\nconst _hoisted_28 = { class: \"app-modal__footer\" }\nconst _hoisted_29 = [\"disabled\"]\nconst _hoisted_30 = {\n key: 0,\n class: \"app-spinner --small\"\n}\n\nimport { ref } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport PickList from '@/components/general/PickList.vue';\r\nimport UserService from '@/services/user.service';\r\nimport { GonexaUser } from '@/types/gonexa-users.type';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserEditModal',\n props: {\r\n\toriginalUser: Object as () => GonexaUser,\r\n\tusersList: {\r\n\t\ttype: Array as () => GonexaUser[],\r\n\t\tdefault: () => [],\r\n\t},\r\n},\n emits: ['close', 'action'],\n setup(__props, { emit: emits }) {\n\nconst props = __props;\n\r\nconst { t } = useI18n();\r\n\r\nconst createEmptyUser = (): GonexaUser => ({\r\n\tfirstName: '',\r\n\tlastName: '',\r\n\temail: '',\r\n\tusername: '',\r\n\troleName: '',\r\n\tcreatedDate: '',\r\n});\r\n\r\n\r\n\r\n\r\n\r\nconst toast = useToast();\r\nconst isLoading = ref(false);\r\n\r\nconst originalUser = ref<GonexaUser>({ ...props.originalUser } as GonexaUser);\r\nconst editedUser = ref<GonexaUser>({ ...props.originalUser } as GonexaUser);\r\nconst inputErrors = ref({\r\n\tfirstName: '',\r\n\tlastName: '',\r\n\temail: '',\r\n\tusername: '',\r\n\troleName: '',\r\n});\r\n\r\nconst rolesItems = ref([\r\n\t{ value: 'user', label: t('users.limited') },\r\n\t{ value: 'owner', label: t('users.owner') },\r\n]);\r\n\r\nconst close = () => {\r\n\teditedUser.value = createEmptyUser();\r\n\temits('close');\r\n};\r\n\r\nconst action = () => {\r\n\temits('action', originalUser.value.username, editedUser.value);\r\n\tclose();\r\n};\r\n\r\nconst editExistingUser = async () => {\r\n\tif (!checkInputErrors()) return;\r\n\tif (\r\n\t\teditedUser.value.roleName != 'owner' &&\r\n\t\toriginalUser.value.roleName == 'owner' &&\r\n\t\tprops.usersList.filter((x) => x.roleName == 'owner').length == 1\r\n\t) {\r\n\t\ttoast.error(t('error.minimumOneOwner'));\r\n\t\treturn;\r\n\t}\r\n\r\n\tisLoading.value = true;\r\n\ttry {\r\n\t\tawait UserService.updateUser({\r\n\t\t\tOriginalUsername: originalUser.value.username,\r\n\t\t\tEmail: editedUser.value.email,\r\n\t\t\tLastName: editedUser.value.lastName,\r\n\t\t\tFirstName: editedUser.value.firstName,\r\n\t\t\tUsername: editedUser.value.username,\r\n\t\t\tRoleName: editedUser.value.roleName,\r\n\t\t})\r\n\t\t\t.then((response: string) => {\r\n\t\t\t\tswitch (response) {\r\n\t\t\t\t\tcase 'InvitationMailResent': {\r\n\t\t\t\t\t\ttoast.success(t('auth.emails.resent') + originalUser.value.email);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UserModifedMailResent': {\r\n\t\t\t\t\t\ttoast.success(t('auth.emails.modifiedResent'));\r\n\t\t\t\t\t\teditedUser.value.email = originalUser.value.email;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UserModified': {\r\n\t\t\t\t\t\ttoast.success(t('success.userModified'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\taction();\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tswitch (error.message) {\r\n\t\t\t\t\tcase 'IsNotOwner': {\r\n\t\t\t\t\t\ttoast.error(t('error.notOwner'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UserDoesNotExist': {\r\n\t\t\t\t\t\ttoast.error(t('error.auth.userDoesNotExist'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UserInTheWrongCompany': {\r\n\t\t\t\t\t\ttoast.error(t('error.wrongCompany'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UnknownRole': {\r\n\t\t\t\t\t\ttoast.error(t('error.roleNotIdentified'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'UsernameAlreadyExists': {\r\n\t\t\t\t\t\ttoast.error(t('error.auth.usernameAlreadyExists'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'RegistrationNotCompleted': {\r\n\t\t\t\t\t\ttoast.error(t('error.auth.userRegistrationNotSucceeded'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'MinimumOneOwner': {\r\n\t\t\t\t\t\ttoast.error(t('error.minimumOneOwner'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\ttoast.error(t('error.editUser'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t} catch (error: any) {\r\n\t\ttoast.error(t('error.editUser'));\r\n\t} finally {\r\n\t\tisLoading.value = false;\r\n\t}\r\n};\r\n\r\nconst checkInputErrors = () => {\r\n\tlet isValid = true;\r\n\r\n\tif (!editedUser.value.firstName) {\r\n\t\tinputErrors.value.firstName = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\tif (!editedUser.value.lastName) {\r\n\t\tinputErrors.value.lastName = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\tif (!editedUser.value.email) {\r\n\t\tinputErrors.value.email = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t} else if (!editedUser.value.email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/gi)) {\r\n\t\tinputErrors.value.email = t('error.email.wrongFormat');\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\tif (!editedUser.value.username) {\r\n\t\tinputErrors.value.username = t('error.emptyField');\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\tif (editedUser.value.username.match(/\\+/)) {\r\n\t\tinputErrors.value.username = t('error.NotPlus');\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\tif (!editedUser.value.roleName) {\r\n\t\tinputErrors.value.roleName = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else if (editedUser.value.roleName != 'owner' && editedUser.value.roleName != 'user') {\r\n\t\tinputErrors.value.roleName = 'error.roleNotIdentified';\r\n\t\tisValid = false;\r\n\t}\r\n\r\n\treturn isValid;\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", { class: \"app-modal__close\" }, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: close\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('users.user')), 1),\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('users.modification')), 1)\n ])\n ]),\n _hoisted_9,\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(editExistingUser, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.$t('auth.inputs.email')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"email\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.email }]),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((editedUser.value.email) = $event)),\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (inputErrors.value.email = !editedUser.value.email ? _ctx.$t('error.emptyField') : ''))\n }, null, 34), [\n [_vModelText, editedUser.value.email]\n ]),\n (inputErrors.value.email)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_15, _toDisplayString(inputErrors.value.email), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('auth.inputs.username')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.username }]),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((editedUser.value.username) = $event)),\n onFocusout: _cache[3] || (_cache[3] = ($event: any) => (\r\n\t\t\t\t\t\t\t\t\t\tinputErrors.value.username = !editedUser.value.username ? _ctx.$t('error.emptyField') : ''\r\n\t\t\t\t\t\t\t\t\t))\n }, null, 34), [\n [_vModelText, editedUser.value.username]\n ]),\n (inputErrors.value.username)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_18, _toDisplayString(inputErrors.value.username), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"p\", _hoisted_21, _toDisplayString(_ctx.$t('auth.inputs.firstname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.firstName }]),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((editedUser.value.firstName) = $event)),\n onFocusout: _cache[5] || (_cache[5] = ($event: any) => (\r\n\t\t\t\t\t\t\t\t\t\tinputErrors.value.firstName = !editedUser.value.firstName ? _ctx.$t('error.emptyField') : ''\r\n\t\t\t\t\t\t\t\t\t))\n }, null, 34), [\n [_vModelText, editedUser.value.firstName]\n ]),\n (inputErrors.value.firstName)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_22, _toDisplayString(inputErrors.value.firstName), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.$t('auth.inputs.lastname')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: inputErrors.value.lastName }]),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((editedUser.value.lastName) = $event)),\n onFocusout: _cache[7] || (_cache[7] = ($event: any) => (\r\n\t\t\t\t\t\t\t\t\t\tinputErrors.value.lastName = !editedUser.value.lastName ? _ctx.$t('error.emptyField') : ''\r\n\t\t\t\t\t\t\t\t\t))\n }, null, 34), [\n [_vModelText, editedUser.value.lastName]\n ]),\n (inputErrors.value.lastName)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_25, _toDisplayString(inputErrors.value.lastName), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (__props.usersList.length != 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n (rolesItems.value.length > 0)\n ? (_openBlock(), _createBlock(PickList, {\n key: 0,\n label: _ctx.$t('users.profile'),\n modelValue: editedUser.value.roleName,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((editedUser.value.roleName) = $event)),\n items: rolesItems.value,\n emptyLabel: _ctx.$t('users.profileEmptyLabel'),\n errorMessage: inputErrors.value.roleName ? _ctx.$t(inputErrors.value.roleName) : '',\n onChange: _cache[9] || (_cache[9] = ($event: any) => (\r\n\t\t\t\t\t\t\t\t\t\tinputErrors.value.roleName = editedUser.value.roleName === '' ? 'error.emptyField' : ''\r\n\t\t\t\t\t\t\t\t\t))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n type: \"submit\",\n disabled: isLoading.value\n }, [\n _createTextVNode(_toDisplayString(isLoading.value ? '' : _ctx.$t('users.save')) + \" \", 1),\n (isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_30))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_29)\n ])\n ], 40, _hoisted_10)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserEditModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserEditModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserEditModal.vue?vue&type=style&index=0&id=3926a191&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3926a191\"]])\n\nexport default __exports__","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nimport UserInfosCard from '@/components/user/UserInfosCard.vue';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport UserDeleteModal from '@/components/user/UserDeleteModal.vue';\r\nimport UserCreateModal from './UserCreateModal.vue';\r\n\r\nimport UserService from '@/services/user.service';\r\nimport { GonexaUser } from '@/types/gonexa-users.type';\r\nimport UserEditModal from './UserEditModal.vue';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tUserInfosCard,\r\n\t\tTicketComponent,\r\n\t\tUserDeleteModal,\r\n\t\tUserCreateModal,\r\n\t\tUserEditModal,\r\n\t},\r\n})\r\nexport default class UserView extends Vue {\r\n\tauthStore = useAuthStore();\r\n\ttoast = useToast();\r\n\tuserLoaded = false;\r\n\tnbActiveUsers = 0;\r\n\r\n\tusersList = [] as GonexaUser[];\r\n\tmodalUser = {} as GonexaUser;\r\n\tuserToEdit = {} as GonexaUser;\r\n\r\n\tisCreateModalopen = false;\r\n\tisEditModalopen = false;\r\n\tisDeleteModalopen = false;\r\n\r\n\tisUsernameSorted = 1;\r\n\tisNameSorted = 0;\r\n\tisEmailSorted = 0;\r\n\r\n\tasync mounted() {\r\n\t\tif (\r\n\t\t\tthis.authStore.username &&\r\n\t\t\tthis.authStore.firstname &&\r\n\t\t\tthis.authStore.lastname &&\r\n\t\t\tthis.authStore.email &&\r\n\t\t\tthis.authStore.roleName &&\r\n\t\t\tthis.authStore.createdDate\r\n\t\t) {\r\n\t\t\tthis.usersList.push({\r\n\t\t\t\tusername: this.authStore.username,\r\n\t\t\t\tfirstName: this.authStore.firstname,\r\n\t\t\t\tlastName: this.authStore.lastname,\r\n\t\t\t\temail: this.authStore.email,\r\n\t\t\t\troleName: this.authStore.roleName,\r\n\t\t\t\tcreatedDate: this.authStore.createdDate,\r\n\t\t\t});\r\n\r\n\t\t\tconst result = await UserService.getCompanyUsers();\r\n\t\t\tconst sortedUsers = result?.sort((x, y) => x.username.localeCompare(y.username));\r\n\t\t\tthis.usersList.push(...sortedUsers);\r\n\r\n\t\t\tthis.nbActiveUsers = this.usersList.length;\r\n\t\t\tthis.userLoaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\topenCreateModal() {\r\n\t\tthis.isCreateModalopen = true;\r\n\t}\r\n\taddNewUser(user: GonexaUser) {\r\n\t\tthis.usersList.push(user);\r\n\t}\r\n\r\n\topenDeleteModal(userToDelete: GonexaUser, index: number) {\r\n\t\tthis.hideActions(index);\r\n\t\tthis.modalUser = userToDelete;\r\n\t\tthis.isDeleteModalopen = true;\r\n\t}\r\n\tdeleteUser(user: GonexaUser) {\r\n\t\tUserService.deleteCompanyUser(user)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.toast.success(this.$t('success.userDeleted'));\r\n\t\t\t\tthis.closeModal();\r\n\t\t\t\tthis.nbActiveUsers--;\r\n\t\t\t\tthis.usersList = this.usersList.filter((x) => x.username != user.username);\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tthis.toast.error(this.$t('error.deleteUser'));\r\n\t\t\t});\r\n\t}\r\n\r\n\topenEditModal(user: GonexaUser, index: number) {\r\n\t\tthis.hideActions(index);\r\n\t\tthis.userToEdit = user;\r\n\t\tthis.isEditModalopen = true;\r\n\t}\r\n\tupdateUserList(originalUsername: string, editedUser: GonexaUser) {\r\n\t\tthis.usersList.forEach((elem) => {\r\n\t\t\tif (elem.username == originalUsername) {\r\n\t\t\t\tconst index = this.usersList.indexOf(elem);\r\n\t\t\t\tthis.usersList[index] = editedUser;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcloseModal() {\r\n\t\tthis.isEditModalopen = false;\r\n\t\tthis.isDeleteModalopen = false;\r\n\t\tthis.isCreateModalopen = false;\r\n\t}\r\n\r\n\tsortTableColumn(type: string) {\r\n\t\tlet newSortedList = [];\r\n\r\n\t\tif (type == 'name') {\r\n\t\t\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t\t\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t\t\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isNameSorted == 1\r\n\t\t\t\t\t? this.usersList.sort((x, y) => x.firstName.localeCompare(y.firstName)).reverse()\r\n\t\t\t\t\t: this.usersList.sort((x, y) => x.firstName.localeCompare(y.firstName));\r\n\r\n\t\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\t\tthis.isNameSorted = this.isNameSorted == 1 ? -1 : 1;\r\n\r\n\t\t\t// Et on remet les deux autres colonnes non triées à 0\r\n\t\t\tthis.isUsernameSorted = 0;\r\n\t\t\tthis.isEmailSorted = 0;\r\n\t\t} else if (type == 'email') {\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isEmailSorted == 1\r\n\t\t\t\t\t? this.usersList.sort((x, y) => x.email.localeCompare(y.email)).reverse()\r\n\t\t\t\t\t: this.usersList.sort((x, y) => x.email.localeCompare(y.email));\r\n\r\n\t\t\tthis.isEmailSorted = this.isEmailSorted == 1 ? -1 : 1;\r\n\t\t\tthis.isUsernameSorted = 0;\r\n\t\t\tthis.isNameSorted = 0;\r\n\t\t} else {\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isUsernameSorted == 1\r\n\t\t\t\t\t? this.usersList.sort((x, y) => x.username.localeCompare(y.username)).reverse()\r\n\t\t\t\t\t: this.usersList.sort((x, y) => x.username.localeCompare(y.username));\r\n\r\n\t\t\tthis.isUsernameSorted = this.isUsernameSorted == 1 ? -1 : 1;\r\n\t\t\tthis.isNameSorted = 0;\r\n\t\t\tthis.isEmailSorted = 0;\r\n\t\t}\r\n\r\n\t\tthis.usersList = newSortedList;\r\n\t}\r\n\r\n\tshowActions(index: number) {\r\n\t\tconst moreButton = document.getElementById('button-' + index);\r\n\t\tconst actionsGroup = document.getElementById('group-' + index);\r\n\r\n\t\tif (moreButton && actionsGroup) {\r\n\t\t\tif (index == 0 && index + 1 == this.usersList.length) actionsGroup.style.top = '-36px';\r\n\t\t\telse if (index + 1 == this.usersList.length) actionsGroup.style.top = '-76px';\r\n\t\t\telse actionsGroup.style.top = '16px';\r\n\t\t\tmoreButton.style.display = 'none';\r\n\t\t\tactionsGroup.style.display = 'flex';\r\n\t\t}\r\n\t}\r\n\r\n\thideActions(index: number) {\r\n\t\tconst moreButton = document.getElementById('button-' + index);\r\n\t\tconst actionsGroup = document.getElementById('group-' + index);\r\n\r\n\t\tif (moreButton && actionsGroup) {\r\n\t\t\tmoreButton.style.display = 'flex';\r\n\t\t\tactionsGroup.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\tcopyId(username: string, index: number) {\r\n\t\tthis.hideActions(index);\r\n\r\n\t\tUserService.getUserId(username)\r\n\t\t\t.then((userId) => {\r\n\t\t\t\tnavigator.clipboard.writeText(userId);\r\n\t\t\t\tthis.toast.success(this.$t('users.idCopied'));\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tthis.toast.error(this.$t('error.idNotCopied'));\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { render } from \"./UserView.vue?vue&type=template&id=180a18e1&scoped=true&ts=true\"\nimport script from \"./UserView.vue?vue&type=script&lang=ts\"\nexport * from \"./UserView.vue?vue&type=script&lang=ts\"\n\nimport \"./UserView.vue?vue&type=style&index=0&id=180a18e1&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-180a18e1\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, normalizeClass as _normalizeClass, renderList as _renderList, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/check_green.svg'\nimport _imports_1 from '@/assets/svg/warning_red.svg'\nimport _imports_2 from '@/assets/svg/add_circle_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7ad56ed6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-1 --shrinkable\" }\nconst _hoisted_2 = { class: \"app-title-2__container\" }\nconst _hoisted_3 = { class: \"app-title-2__text\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = { class: \"production__infos\" }\nconst _hoisted_6 = { class: \"production__section\" }\nconst _hoisted_7 = { class: \"production__title\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"production__subtitle\"\n}\nconst _hoisted_9 = {\n key: 1,\n class: \"production__subtitle-empty\"\n}\nconst _hoisted_10 = { class: \"production__section\" }\nconst _hoisted_11 = { class: \"production__title\" }\nconst _hoisted_12 = {\n key: 0,\n class: \"production__subtitle\"\n}\nconst _hoisted_13 = { class: \"production__section\" }\nconst _hoisted_14 = { class: \"production__title\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"production__status\"\n}\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-spinner --small app-breadcrumb__item\" }, null, -1))\nconst _hoisted_17 = [\n _hoisted_16\n]\nconst _hoisted_18 = {\n key: 1,\n class: \"production__status\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"production__status-img\",\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_20 = [\n _hoisted_19\n]\nconst _hoisted_21 = {\n key: 2,\n class: \"production__status\"\n}\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"production__status-img\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_23 = { class: \"production__section\" }\nconst _hoisted_24 = {\n key: 0,\n class: \"production__title package\"\n}\nconst _hoisted_25 = {\n key: 2,\n class: \"production__subtitle package\"\n}\nconst _hoisted_26 = { class: \"app-title-2__container\" }\nconst _hoisted_27 = { class: \"app-title-2__text\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_29 = { class: \"sandbox__header\" }\nconst _hoisted_30 = { class: \"sandbox__active\" }\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", { src: _imports_2 }, null, -1))\nconst _hoisted_32 = { class: \"app-table__container sandboxes\" }\nconst _hoisted_33 = { class: \"app-table\" }\nconst _hoisted_34 = { class: \"app-table__header\" }\nconst _hoisted_35 = { class: \"app-table__header-row\" }\nconst _hoisted_36 = { class: \"app-table__header-cell\" }\nconst _hoisted_37 = { class: \"app-table__header-cell\" }\nconst _hoisted_38 = { class: \"app-table__header-cell package\" }\nconst _hoisted_39 = {\n key: 0,\n class: \"app-table__body\"\n}\nconst _hoisted_40 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" })\n], -1))\nconst _hoisted_41 = [\"onClick\"]\nconst _hoisted_42 = { class: \"app-table__body-cell\" }\nconst _hoisted_43 = { class: \"app-table__body-cell\" }\nconst _hoisted_44 = {\n key: 0,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-spinner --small app-breadcrumb__item\" }, null, -1))\nconst _hoisted_46 = [\n _hoisted_45\n]\nconst _hoisted_47 = {\n key: 1,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_48 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"sandboxes__status-icon\",\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_49 = [\n _hoisted_48\n]\nconst _hoisted_50 = {\n key: 2,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_51 = { class: \"sandboxes__status\" }\nconst _hoisted_52 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"sandboxes__status-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_53 = {\n key: 3,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_54 = { class: \"app-table__body-cell sandboxes__actions-cell package\" }\nconst _hoisted_55 = {\n key: 1,\n class: \"app-table__body\"\n}\nconst _hoisted_56 = { class: \"app-table__body-row\" }\nconst _hoisted_57 = {\n class: \"app-table__body-cell\",\n colspan: \"4\"\n}\nconst _hoisted_58 = { class: \"sandboxes__empty-table\" }\nconst _hoisted_59 = {\n key: 2,\n class: \"app-table__body\"\n}\nconst _hoisted_60 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell package\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ])\n], -1))\nconst _hoisted_61 = [\n _hoisted_60\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_WarningConnection = _resolveComponent(\"WarningConnection\")!\n const _component_TicketComponent = _resolveComponent(\"TicketComponent\")!\n const _component_WorkspaceModal = _resolveComponent(\"WorkspaceModal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('app.workspaces')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('workspaces.myProd')), 1),\n _hoisted_4\n ]),\n _createVNode(_component_WarningConnection),\n _createElementVNode(\"div\", {\n class: \"app-card production\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (this.redirectToEnvironmentPage(_ctx.prodEnvironment)))\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('workspaces.orgId')), 1),\n (_ctx.prodExists)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(_ctx.prodEnvironment?.externalId), 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_9, _toDisplayString(_ctx.isExternalEnvironmentsLoaded ? _ctx.$t('workspaces.noConnection') : _ctx.$t('workspaces.loading')), 1))\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('workspaces.orgName')), 1),\n (_ctx.prodExists)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_12, _toDisplayString(_ctx.prodEnvironment?.orgName), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.$t('workspaces.status')), 1),\n (_ctx.prodExists && _ctx.prodEnvironment)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_ctx.getIssuesNumber(_ctx.prodEnvironment) < 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, _hoisted_17))\n : _createCommentVNode(\"\", true),\n (_ctx.getIssuesNumber(_ctx.prodEnvironment) == 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, _hoisted_20))\n : (_ctx.getIssuesNumber(_ctx.prodEnvironment) > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _hoisted_22,\n _createTextVNode(\" \" + _toDisplayString(_ctx.getIssuesNumber(_ctx.prodEnvironment) > 1\r\n\t\t\t\t\t\t\t\t? _ctx.getIssuesNumber(_ctx.prodEnvironment) + _ctx.$t('workspaces.neededActions')\r\n\t\t\t\t\t\t\t\t: _ctx.getIssuesNumber(_ctx.prodEnvironment) + _ctx.$t('workspaces.neededAction')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [], 64))\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n (!this.isExternalEnvironmentsLoaded || _ctx.prodExists)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_24, _toDisplayString(_ctx.$t('workspaces.packageversion')), 1))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"gnx-btn\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.loginSalesforce(false)))\n }, _toDisplayString(_ctx.$t('workspaces.connectProd')), 1)),\n (_ctx.prodExists)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_25, _toDisplayString(_ctx.prodEnvironment?.currentPackageVersion.sfLma__Version_Number__c\r\n\t\t\t\t\t\t\t? _ctx.prodEnvironment.currentPackageVersion.sfLma__Version_Number__c\r\n\t\t\t\t\t\t\t: _ctx.$t('workspaces.unknown')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"p\", _hoisted_27, _toDisplayString(_ctx.$t('workspaces.sandboxList')), 1),\n _hoisted_28\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"p\", _hoisted_30, _toDisplayString(_ctx.sandboxNb == 0\r\n\t\t\t\t\t? _ctx.$t('workspaces.noActivSandbox')\r\n\t\t\t\t\t: _ctx.sandboxNb == 1\r\n\t\t\t\t\t? _ctx.$t('workspaces.oneActivSandbox')\r\n\t\t\t\t\t: _ctx.sandboxNb + ' ' + _ctx.$t('workspaces.activSandboxes')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _white-tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.loginSalesforce(true)))\n }, [\n _hoisted_31,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workspaces.connectSandbox')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"table\", _hoisted_33, [\n _createElementVNode(\"thead\", _hoisted_34, [\n _createElementVNode(\"tr\", _hoisted_35, [\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t'--top': _ctx.isNameSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isNameSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.sortTableColumn()))\n }, _toDisplayString(_ctx.$t('workspaces.name')), 3),\n _createElementVNode(\"th\", _hoisted_36, _toDisplayString(_ctx.$t('workspaces.orgId')), 1),\n _createElementVNode(\"th\", _hoisted_37, _toDisplayString(_ctx.$t('workspaces.status')), 1),\n _createElementVNode(\"th\", _hoisted_38, _toDisplayString(_ctx.$t('workspaces.packageversion')), 1)\n ])\n ]),\n (_ctx.isExternalEnvironmentsLoaded && _ctx.externalEnvironnements && _ctx.externalEnvironnements.length > 0)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_39, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.externalEnvironnements.filter(\r\n\t\t\t\t\t\t(env) => env.typeOrg.toLowerCase() == 'sandbox'\r\n\t\t\t\t\t), (environment) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: environment.id\n }, [\n _hoisted_40,\n _createElementVNode(\"tr\", {\n class: \"app-table__body-row --sandbox\",\n onClick: ($event: any) => (this.redirectToEnvironmentPage(environment))\n }, [\n _createElementVNode(\"td\", _hoisted_42, _toDisplayString(environment.orgName), 1),\n _createElementVNode(\"td\", _hoisted_43, _toDisplayString(environment.externalId), 1),\n (_ctx.getIssuesNumber(environment) < 0)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_44, _hoisted_46))\n : (_ctx.getIssuesNumber(environment) == 0)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_47, _hoisted_49))\n : (\r\n\t\t\t\t\t\t\t\tenvironment.status['isUserConnected'] != 'true' ||\r\n\t\t\t\t\t\t\t\tenvironment.status['envStatus'].toLocaleLowerCase() == 'refreshed' ||\r\n\t\t\t\t\t\t\t\tenvironment.status['isSecurised'] != 'true' ||\r\n\t\t\t\t\t\t\t\tenvironment.status['isSignUser'] != 'true' ||\r\n\t\t\t\t\t\t\t\tenvironment.status['isUserAndRefreshToken'] != 'true'\r\n\t\t\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_50, [\n _createElementVNode(\"div\", _hoisted_51, [\n _hoisted_52,\n _createTextVNode(\" \" + _toDisplayString(_ctx.getIssuesNumber(environment) > 1\r\n\t\t\t\t\t\t\t\t\t\t? _ctx.getIssuesNumber(environment) + _ctx.$t('workspaces.neededActions')\r\n\t\t\t\t\t\t\t\t\t\t: _ctx.getIssuesNumber(environment) + _ctx.$t('workspaces.neededAction')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_53)),\n _createElementVNode(\"td\", _hoisted_54, _toDisplayString(environment.currentPackageVersion.sfLma__Version_Number__c\r\n\t\t\t\t\t\t\t\t\t? environment.currentPackageVersion.sfLma__Version_Number__c\r\n\t\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.unknown')), 1)\n ], 8, _hoisted_41)\n ], 64))\n }), 128))\n ]))\n : (\r\n\t\t\t\t\t_ctx.isExternalEnvironmentsLoaded &&\r\n\t\t\t\t\t(!_ctx.externalEnvironnements || (_ctx.externalEnvironnements && _ctx.externalEnvironnements.length == 0))\r\n\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_55, [\n _createElementVNode(\"tr\", _hoisted_56, [\n _createElementVNode(\"td\", _hoisted_57, [\n _createElementVNode(\"p\", _hoisted_58, _toDisplayString(_ctx.$t('workspaces.emptyTable')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"tbody\", _hoisted_59, _hoisted_61))\n ])\n ]),\n _createVNode(_component_TicketComponent),\n _withDirectives(_createVNode(_component_WorkspaceModal, {\n onClose: _cache[4] || (_cache[4] = ($event: any) => (_ctx.closeModal())),\n onAction: _cache[5] || (_cache[5] = ($event: any) => (_ctx.deleteExternalEnvironment(_ctx.externalEnvironmentToDelete)))\n }, null, 512), [\n [_vShow, _ctx.isModalOpen]\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/warning_yellow.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6e448531\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal__close\" }\nconst _hoisted_4 = { class: \"app-modal\" }\nconst _hoisted_5 = { class: \"app-modal__header\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_7 = { class: \"app-modal__header-text\" }\nconst _hoisted_8 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_9 = { class: \"app-modal__header-title\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_11 = { class: \"app-modal__body\" }\nconst _hoisted_12 = { class: \"app-modal__body-text\" }\nconst _hoisted_13 = { class: \"app-modal__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.close()))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('workspaces.workspace')), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('workspaces.deletion')), 1)\n ])\n ]),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('workspaces.confirm1')) + \" \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workspaces.confirm2')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workspaces.confirm3')), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _tertiary app-modal__footer-btn\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.close()))\n }, _toDisplayString(_ctx.$t('app.cancel')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _secondary app-modal__footer-btn\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.action && _ctx.action(...args)))\n }, _toDisplayString(_ctx.$t('workspaces.delete')), 1)\n ])\n ])\n ])\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nexport default class WorkspaceModal extends Vue {\r\n\tclose() {\r\n\t\tthis.$emit('close');\r\n\t}\r\n\taction() {\r\n\t\tthis.$emit('action');\r\n\t}\r\n}\r\n","import { render } from \"./WorkspaceModal.vue?vue&type=template&id=6e448531&scoped=true&ts=true\"\nimport script from \"./WorkspaceModal.vue?vue&type=script&lang=ts\"\nexport * from \"./WorkspaceModal.vue?vue&type=script&lang=ts\"\n\nimport \"./WorkspaceModal.vue?vue&type=style&index=0&id=6e448531&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6e448531\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/warning_yellow_duo.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5598da78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"app-card progress\"\n}\nconst _hoisted_2 = { class: \"progress__infos\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"progress__infos-img\",\n alt: \"\"\n}, null, -1))\nconst _hoisted_4 = { class: \"progress__infos-text app-card__header-text\" }\nconst _hoisted_5 = { class: \"progress__infos-text --title\" }\nconst _hoisted_6 = { class: \"progress__infos-text --subtitle\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.isOwnerFree)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.$t('app.billingConsumption')), 1),\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.$t('home.connectionText')), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\n\r\nexport default class WarningConnection extends Vue {\r\n\tauthStore = useAuthStore();\r\n\tisOwnerFree = false;\r\n\tisOwnerVerifInProgress = false;\r\n\tisOwnerVerified = false;\r\n\tisOwnerBlocked = false;\r\n\tisUser = false;\r\n\r\n\tmounted(): void {\r\n\t\tconst roleName = this.authStore.roleName?.toLowerCase();\r\n\t\tconst companyStatus = this.authStore.companyStatus?.toLowerCase();\r\n\r\n\t\tif (roleName === 'owner') {\r\n\t\t\tthis.isOwnerFree = companyStatus === 'free';\r\n\t\t\tthis.isOwnerVerifInProgress = companyStatus === 'verificationinprogress';\r\n\t\t\tthis.isOwnerVerified = companyStatus === 'verified';\r\n\t\t\tthis.isOwnerBlocked = companyStatus === 'blocked';\r\n\t\t} else {\r\n\t\t\tthis.isUser = true;\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./WarningConnection.vue?vue&type=template&id=5598da78&scoped=true&ts=true\"\nimport script from \"./WarningConnection.vue?vue&type=script&lang=ts\"\nexport * from \"./WarningConnection.vue?vue&type=script&lang=ts\"\n\nimport \"./WarningConnection.vue?vue&type=style&index=0&id=5598da78&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5598da78\"]])\n\nexport default __exports__","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport AuthSalesforceService from '@/services/auth-salesforce.service';\r\nimport EnvironmentsService from '@/services/environments.service';\r\nimport { EnvData, ExternalEnvironnement, ExternalUser } from '@/types/gonexa-users.type';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport WorkspaceModal from './WorkspaceModal.vue';\r\nimport WarningConnection from '../general/WarningConnection.vue';\r\nimport { useEnvironmentStore } from '@/stores/environment.store';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tTicketComponent,\r\n\t\tWorkspaceModal,\r\n\t\tWarningConnection,\r\n\t},\r\n})\r\nexport default class WorkpaceView extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\tenvironmentStore: ReturnType<typeof useEnvironmentStore> = useEnvironmentStore();\r\n\r\n\texternalEnvironnements: ExternalEnvironnement[] | undefined = undefined;\r\n\texternalUsers: ExternalUser[] | undefined = undefined;\r\n\tprodEnvironment: ExternalEnvironnement | undefined = undefined;\r\n\tsandboxNb = 0;\r\n\tprodExists = false;\r\n\tisNameSorted = 1;\r\n\tisExternalEnvironmentsLoaded = false;\r\n\r\n\texternalEnvironmentToDelete = '';\r\n\tisModalOpen = false;\r\n\tloadingEnvironmentsToSecurise: {\r\n\t\t[index: string]: boolean;\r\n\t} = {};\r\n\r\n\tenvsStatus: Array<EnvData> = [];\r\n\tenvsLoaded = false;\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\t// Chargement des External Environments et Users\r\n\t\t\tEnvironmentsService.getExternalEnvironmentsStatusStream(this.SetExtEnvsStatus, this.OnCompleteEnvsStatus);\r\n\t\t\tthis.externalEnvironnements = (await EnvironmentsService.getExternalEnvironments())?.sort((x, y) =>\r\n\t\t\t\tx.orgName.localeCompare(y.orgName)\r\n\t\t\t);\r\n\t\t\tthis.envsLoaded = true;\r\n\t\t\tthis.UpdateExtEnvsStatus(this.envsStatus);\r\n\r\n\t\t\tthis.checkIfProdExists();\r\n\t\t\tthis.sandboxNb = this.externalEnvironnements.filter(\r\n\t\t\t\t(env) => env.status['envStatus'].toLowerCase() === 'connected' && env.typeOrg.toLowerCase() == 'sandbox'\r\n\t\t\t).length;\r\n\t\t\tthis.isExternalEnvironmentsLoaded = true;\r\n\t\t} catch (error) {\r\n\t\t\tthis.toast.error(this.$t('error.environment.null'));\r\n\t\t}\r\n\t}\r\n\r\n\tSetExtEnvsStatus(envs: EnvData[]) {\r\n\t\tif (!this.envsLoaded) {\r\n\t\t\tthis.envsStatus.push(...envs);\r\n\t\t} else {\r\n\t\t\tthis.UpdateExtEnvsStatus(envs);\r\n\t\t}\r\n\t}\r\n\r\n\tOnCompleteEnvsStatus() {\r\n\t\tthis.environmentStore.setEnvironmentsStatus(true);\r\n\t}\r\n\r\n\tasync UpdateExtEnvsStatus(envs: EnvData[]) {\r\n\t\tfor (const envData of envs) {\r\n\t\t\tconst env: ExternalEnvironnement | undefined = this.externalEnvironnements?.find(\r\n\t\t\t\t(e) => e.id === envData.envId\r\n\t\t\t);\r\n\t\t\tif (env !== undefined) {\r\n\t\t\t\tenv.status['signStatus'] = envData.signStatus;\r\n\t\t\t\tenv.status['isUserAndRefreshToken'] = envData.isUserAndRefreshToken;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcheckIfProdExists(): void {\r\n\t\tif (\r\n\t\t\tthis.externalEnvironnements &&\r\n\t\t\tthis.externalEnvironnements.filter((env) => env.typeOrg.toLocaleLowerCase() == 'prod').length > 0\r\n\t\t) {\r\n\t\t\tthis.prodEnvironment = this.externalEnvironnements.filter(\r\n\t\t\t\t(env) => env.typeOrg.toLocaleLowerCase() == 'prod'\r\n\t\t\t)[0];\r\n\t\t\tthis.prodExists = true;\r\n\t\t} else this.prodExists = false;\r\n\t}\r\n\r\n\topenDeleteModal(id: string) {\r\n\t\tthis.externalEnvironmentToDelete = id;\r\n\t\tthis.isModalOpen = true;\r\n\t}\r\n\r\n\tcloseModal() {\r\n\t\tthis.isModalOpen = false;\r\n\t}\r\n\r\n\tasync deleteExternalEnvironment(id: string) {\r\n\t\tif (id) {\r\n\t\t\tawait EnvironmentsService.deleteExternalUser(id);\r\n\r\n\t\t\t// Rechargement des External Environments suite à la suppression d'un ExternalUser\r\n\t\t\tthis.externalEnvironnements = await EnvironmentsService.getExternalEnvironments();\r\n\t\t\tthis.sandboxNb = this.externalEnvironnements.filter(\r\n\t\t\t\t(env) => env.status['isConnected'] === 'true' && env.typeOrg.toLowerCase() == 'sandbox'\r\n\t\t\t).length;\r\n\t\t}\r\n\t\tthis.closeModal();\r\n\t}\r\n\r\n\tasync secureOrg(id: string) {\r\n\t\tthis.loadingEnvironmentsToSecurise[id] = true;\r\n\r\n\t\tconst isSuccess = await EnvironmentsService.securiseExternalEnvironment(id);\r\n\r\n\t\tif (isSuccess == true && this.externalEnvironnements) {\r\n\t\t\tconst indexEnvironment = this.externalEnvironnements.findIndex((env) => env.id == id);\r\n\t\t\tthis.externalEnvironnements[indexEnvironment].status['isSecurised'] = 'true';\r\n\t\t}\r\n\r\n\t\tthis.loadingEnvironmentsToSecurise[id] = false;\r\n\t}\r\n\r\n\tredirectToEnvironmentPage(environnement: ExternalEnvironnement | undefined) {\r\n\t\tconst selection = window.getSelection();\r\n\t\tif (!selection || selection.toString().length <= 0) {\r\n\t\t\tif (environnement)\r\n\t\t\t\tthis.$router.push({\r\n\t\t\t\t\tpath: `workspaces/${environnement.id}`,\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetIssuesNumber(environment: ExternalEnvironnement | null): number {\r\n\t\tlet issues = 0;\r\n\r\n\t\tif (!environment) return issues;\r\n\r\n\t\tif (\r\n\t\t\tenvironment.status['isUserConnected'] != 'true' ||\r\n\t\t\tenvironment.status['envStatus'].toLocaleLowerCase() == 'refreshed' ||\r\n\t\t\tenvironment.status['isSecurised'] != 'true' ||\r\n\t\t\tenvironment.status['isUserAndRefreshToken'] != 'true'\r\n\t\t)\r\n\t\t\tissues++;\r\n\r\n\t\t//if (environment.status['Sign'] != 'NotSign' && environment.status['Sign'] != 'Connected') issues++;\r\n\t\tif ([environment.status['isUserAndRefreshToken']].includes('onloading')) issues = -1;\r\n\r\n\t\treturn issues;\r\n\t}\r\n\r\n\tsortTableColumn() {\r\n\t\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\t\tif (this.externalEnvironnements != undefined) {\r\n\t\t\tlet newSortedList = [];\r\n\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isNameSorted == 1\r\n\t\t\t\t\t? this.externalEnvironnements.sort((x, y) => x.orgName.localeCompare(y.orgName)).reverse()\r\n\t\t\t\t\t: this.externalEnvironnements.sort((x, y) => x.orgName.localeCompare(y.orgName));\r\n\r\n\t\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\t\tthis.isNameSorted = this.isNameSorted == 1 ? -1 : 1;\r\n\r\n\t\t\tthis.externalEnvironnements = newSortedList;\r\n\t\t}\r\n\t}\r\n\r\n\tloginSalesforce(toSandbox: boolean) {\r\n\t\tAuthSalesforceService.loginToSalesforce(toSandbox, '');\r\n\t}\r\n}\r\n","import { render } from \"./WorkspaceView.vue?vue&type=template&id=7ad56ed6&scoped=true&ts=true\"\nimport script from \"./WorkspaceView.vue?vue&type=script&lang=ts\"\nexport * from \"./WorkspaceView.vue?vue&type=script&lang=ts\"\n\nimport \"./WorkspaceView.vue?vue&type=style&index=0&id=7ad56ed6&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7ad56ed6\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"app-title-1 --shrinkable\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ConsumptionCardsGroup = _resolveComponent(\"ConsumptionCardsGroup\")!\n const _component_ConsumptionChart = _resolveComponent(\"ConsumptionChart\")!\n const _component_TicketComponent = _resolveComponent(\"TicketComponent\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('app.consumption')), 1),\n _createVNode(_component_ConsumptionCardsGroup),\n _createVNode(_component_ConsumptionChart),\n _createVNode(_component_TicketComponent)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1a04773c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"app-title-2__container\" }\nconst _hoisted_3 = { class: \"app-title-2__text --wrapable\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = { class: \"chart app-card\" }\nconst _hoisted_6 = { class: \"btn-group\" }\nconst _hoisted_7 = { class: \"gnx-btn-group _horizontal\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"consoTodayGraph\",\n class: \"consoChart\"\n}, null, -1))\nconst _hoisted_9 = {\n key: 1,\n class: \"app-card__error\"\n}\nconst _hoisted_10 = {\n key: 2,\n class: \"app-spinner\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.contractLoaded && _ctx.clientContract && _ctx.consumption)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('consumption.evolution')), 1),\n _hoisted_4\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"gnx-btn\", {\r\n\t\t\t\t\t\t\t'btn-focus': _ctx.graphName == 'doc',\r\n\t\t\t\t\t\t\t'no-group-btn': !_ctx.clientContract.gnx__Account__r.sign__c, //&& !clientContract.gnx__Account__r.rF__c,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.initGenerationInfos(_ctx.consumption))),\n autofocus: \"\"\n }, \" Doc \", 2),\n (_ctx.clientContract.gnx__Account__r.sign__c)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"gnx-btn\", {\r\n\t\t\t\t\t\t\t'btn-focus': _ctx.graphName == 'sign',\r\n\t\t\t\t\t\t}]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.initGenerationInfos(_ctx.consumption, 'sign'))),\n autofocus: \"\"\n }, \" Sign \", 2))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _hoisted_8\n ])\n ]))\n : (_ctx.contractLoaded && (!_ctx.clientContract || !_ctx.consumption))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10))\n}","\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport ApexCharts from 'apexcharts';\r\n\r\nimport OrgContractService from '@/services/org-contract.service';\r\nimport { Consumption, Contract } from '@/types/salesforce-objects.type';\r\n\r\nexport default class ConsumptionChart extends Vue {\r\n\ttoast = useToast();\r\n\r\n\tgenerationPercentage = '';\r\n\tgenerationLimit = '';\r\n\terror = false;\r\n\tcontractLoaded = false;\r\n\tgraphName = 'doc';\r\n\r\n\tconsumption: Consumption[] | undefined = undefined;\r\n\tclientContract: Contract | undefined = undefined;\r\n\r\n\tasync mounted() {\r\n\t\ttry {\r\n\t\t\tthis.clientContract = await OrgContractService.getCurrentContract();\r\n\r\n\t\t\tthis.clientContract.authorized_RF__c = 0; // /!\\ A ENLEVER LORSE QU'IL Y AURA LES CONSOS RF\r\n\r\n\t\t\t// Si un contrat existe, je récupère sa consommation\r\n\t\t\tif (this.clientContract) {\r\n\t\t\t\tthis.consumption = await OrgContractService.getConsumptions(this.clientContract.id);\r\n\r\n\t\t\t\tif (this.consumption) {\r\n\t\t\t\t\tthis.generationLimit = this.clientContract.gnx__Number_of_generations__c.toString();\r\n\t\t\t\t\tlet diviser = this.clientContract.gnx__Number_of_generations__c;\r\n\r\n\t\t\t\t\tthis.generationPercentage =\r\n\t\t\t\t\t\tMath.round((100 * this.clientContract.real_generation__c) / diviser).toString() + '%';\r\n\t\t\t\t\tthis.contractLoaded = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tthis.toast.error(this.$t('error.noConsumption'));\r\n\t\t\tthis.contractLoaded = true;\r\n\t\t}\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tif (this.consumption) this.initGenerationInfos(this.consumption);\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * Initialise le graphique\r\n\t * @param consumptions toutes les consommations du contrat\r\n\t */\r\n\tinitGenerationInfos(consumptions: Consumption[], type = 'doc') {\r\n\t\tthis.graphName = type;\r\n\t\tconst chartElm = document.querySelector('#consoTodayGraph');\r\n\t\tif (!chartElm) return;\r\n\r\n\t\t// Vidage du graphique s'il y en a déjà un\r\n\t\twhile (chartElm?.firstChild) {\r\n\t\t\tchartElm.removeChild(chartElm?.firstChild);\r\n\t\t}\r\n\r\n\t\tconst lastYearDate = new Date();\r\n\t\tlastYearDate.setFullYear(lastYearDate.getFullYear() - 1);\r\n\t\tconsumptions = consumptions.filter(\r\n\t\t\t(item) =>\r\n\t\t\t\tnew Date(item.month__c) >= lastYearDate &&\r\n\t\t\t\tnew Date(item.month__c) <= new Date() &&\r\n\t\t\t\titem.product_Type__c.toLocaleLowerCase() == type.toLocaleLowerCase()\r\n\t\t);\r\n\r\n\t\tconst options = {\r\n\t\t\tchart: {\r\n\t\t\t\theight: '400px',\r\n\t\t\t\ttype: 'line',\r\n\t\t\t\ttoolbar: {\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t},\r\n\t\t\t\tselection: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\ttype: 'x',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tstroke: {\r\n\t\t\t\twidth: 2,\r\n\t\t\t\tcurve: 'smooth',\r\n\t\t\t},\r\n\t\t\tgrid: {\r\n\t\t\t\tshow: false,\r\n\t\t\t},\r\n\t\t\tyaxis: {\r\n\t\t\t\tshow: true,\r\n\t\t\t},\r\n\t\t\tlabels: consumptions.map((elem: Consumption) => {\r\n\t\t\t\treturn elem.month__c;\r\n\t\t\t}),\r\n\t\t\tcolors: [type == 'doc' ? '#0571BC' : '#E58A80', '#F78F53'],\r\n\t\t\tseries: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: this.$t('consumption.actual'),\r\n\t\t\t\t\ttype: 'line',\r\n\t\t\t\t\tdata: consumptions.map((elem: Consumption) => {\r\n\t\t\t\t\t\tconst index = consumptions.indexOf(elem);\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t(index > -1 ? consumptions.slice(0, index + 1) : []).reduce(\r\n\t\t\t\t\t\t\t\t(accumulator, currentValue) => accumulator + currentValue.generationNumber__c,\r\n\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t) ?? 0\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: this.$t('consumption.limit'),\r\n\t\t\t\t\ttype: 'line',\r\n\t\t\t\t\tdata: Array(consumptions.length)\r\n\t\t\t\t\t\t.fill(consumptions.length)\r\n\t\t\t\t\t\t.map(() => this.clientContract?.authorized_sign__c ?? 0),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\t// Affichage du graphique\r\n\t\tconst chart = new ApexCharts(chartElm, options);\r\n\t\tchart.render();\r\n\t}\r\n}\r\n","import { render } from \"./ConsumptionChart.vue?vue&type=template&id=1a04773c&scoped=true&ts=true\"\nimport script from \"./ConsumptionChart.vue?vue&type=script&lang=ts\"\nexport * from \"./ConsumptionChart.vue?vue&type=script&lang=ts\"\n\nimport \"./ConsumptionChart.vue?vue&type=style&index=0&id=1a04773c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1a04773c\"]])\n\nexport default __exports__","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport ConsumptionCardsGroup from '@/components/consumption/ConsumptionCardsGroup.vue';\r\nimport ConsumptionChart from '@/components/consumption/ConsumptionChart.vue';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tConsumptionChart,\r\n\t\tConsumptionCardsGroup,\r\n\t\tTicketComponent,\r\n\t},\r\n})\r\nexport default class ConsumptionView extends Vue {}\r\n","import { render } from \"./ConsumptionView.vue?vue&type=template&id=b8304802&ts=true\"\nimport script from \"./ConsumptionView.vue?vue&type=script&lang=ts\"\nexport * from \"./ConsumptionView.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"app-spinner\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n}","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport AuthGonexaService from '@/services/auth-gonexa.service';\r\nimport AuthSalesforceService from '@/services/auth-salesforce.service';\r\n\r\n@Options({\r\n\tprops: {\r\n\t\tisRefreshSandbox: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t},\r\n})\r\nexport default class CallbackSalesforce extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\r\n\tisValidation!: boolean;\r\n\r\n\tasync mounted() {\r\n\t\tconst salesforceCode = new URLSearchParams(window.location.search).get('code');\r\n\t\tconst encodedState = new URLSearchParams(window.location.search).get('state');\r\n\t\tconst salesforceState = encodedState == null ? '' : JSON.parse(decodeURI(encodedState));\r\n\r\n\t\tif (salesforceCode && salesforceState) {\r\n\t\t\tawait AuthSalesforceService.authToSalesforce(\r\n\t\t\t\tsalesforceCode,\r\n\t\t\t\tsalesforceState.orgType,\r\n\t\t\t\tsalesforceState.specificDomain,\r\n\t\t\t\tsalesforceState.oldOrgId\r\n\t\t\t)\r\n\t\t\t\t.then(async () => {\r\n\t\t\t\t\tawait AuthGonexaService.getCompanyStatus().then((newStatus) => {\r\n\t\t\t\t\t\tthis.authStore.companyStatus = newStatus;\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => {\r\n\t\t\t\t\tswitch (error) {\r\n\t\t\t\t\t\tcase 'access_denied':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.accessDenied'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'inactive_org':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.inactiveOrg'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'inactive_user':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.inactiveUser'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'invalid_app_acess':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.noAccess'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'NO_ACCESS':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.noUser'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'server_error':\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.server'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tconsole.error(this.$t('consoleError.salesforceAuth'));\r\n\t\t\t\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\t\t\t\tthis.toast.error(this.$t('error.salesforce.auth'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.finally(async () => {\r\n\t\t\t\t\tthis.$router.push('workspaces');\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./CallbackSalesforce.vue?vue&type=template&id=07881323&ts=true\"\nimport script from \"./CallbackSalesforce.vue?vue&type=script&lang=ts\"\nexport * from \"./CallbackSalesforce.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/arrow_left_lightgrey.svg'\nimport _imports_1 from '@/assets/svg/forbidden_red.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0ae63632\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-1\" }\nconst _hoisted_2 = { class: \"app-card picklist-card\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\",\n class: \"arrow\"\n}, null, -1))\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = {\n key: 0,\n class: \"app-spinner --small\"\n}\nconst _hoisted_6 = { class: \"app-title-2__container\" }\nconst _hoisted_7 = { class: \"app-title-2__text\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_9 = { class: \"deployment__header\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"deployment__orgname\"\n}\nconst _hoisted_11 = { class: \"gnx-searchbar\" }\nconst _hoisted_12 = [\"placeholder\"]\nconst _hoisted_13 = { class: \"files app-table__container\" }\nconst _hoisted_14 = { class: \"app-table\" }\nconst _hoisted_15 = { class: \"app-table__header\" }\nconst _hoisted_16 = { class: \"app-table__header-row\" }\nconst _hoisted_17 = { class: \"app-table__header-cell checkbox-col\" }\nconst _hoisted_18 = [\"checked\"]\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n class: \"gnx-checkbox-txt\",\n for: \"test-c1\"\n}, null, -1))\nconst _hoisted_20 = { class: \"app-table__header-cell other-col\" }\nconst _hoisted_21 = { class: \"app-table__header-cell other-col\" }\nconst _hoisted_22 = { class: \"app-table__header-cell other-col\" }\nconst _hoisted_23 = {\n key: 0,\n class: \"app-table__body\"\n}\nconst _hoisted_24 = {\n key: 0,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_25 = [\"id\", \"onChange\", \"checked\"]\nconst _hoisted_26 = [\"for\"]\nconst _hoisted_27 = {\n key: 1,\n class: \"app-table__body-cell\"\n}\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_29 = [\n _hoisted_28\n]\nconst _hoisted_30 = { class: \"app-table__body-cell\" }\nconst _hoisted_31 = { class: \"app-table__body-cell\" }\nconst _hoisted_32 = { class: \"app-table__body-cell\" }\nconst _hoisted_33 = { class: \"files__extension\" }\nconst _hoisted_34 = [\"src\"]\nconst _hoisted_35 = { class: \"app-table__body-cell\" }\nconst _hoisted_36 = { class: \"app-table__body-cell\" }\nconst _hoisted_37 = {\n key: 1,\n class: \"app-table__body\"\n}\nconst _hoisted_38 = { class: \"app-table__body-row\" }\nconst _hoisted_39 = {\n class: \"app-table__body-cell\",\n colspan: \"6\"\n}\nconst _hoisted_40 = { class: \"app-table__empty-table\" }\nconst _hoisted_41 = {\n key: 2,\n class: \"app-table__body\"\n}\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ])\n], -1))\nconst _hoisted_43 = [\n _hoisted_42\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PickList = _resolveComponent(\"PickList\")!\n const _component_TicketComponent = _resolveComponent(\"TicketComponent\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('deployment.title')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_PickList, {\n label: _ctx.$t('deployment.sourceEnvironment'),\n items: _ctx.environmentsSourceItems,\n emptyLabel: _ctx.$t('deployment.sourceEnvironmentEmptyLabel'),\n modelValue: _ctx.selectedSource,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedSource) = $event)),\n disabled: _ctx.documentsLoading\n }, null, 8, [\"label\", \"items\", \"emptyLabel\", \"modelValue\", \"disabled\"]),\n _hoisted_3,\n _createVNode(_component_PickList, {\n label: _ctx.$t('deployment.targetEnvironment'),\n items: _ctx.environmentsTargetItems,\n emptyLabel: _ctx.$t('deployment.targetEnvironmentEmptyLabel'),\n modelValue: _ctx.selectedTarget,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.selectedTarget) = $event)),\n disabled: _ctx.documentsLoading || !_ctx.selectedSource || _ctx.externalEnvironnementsTarget.length == 0\n }, null, 8, [\"label\", \"items\", \"emptyLabel\", \"modelValue\", \"disabled\"]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.deployDocuments())),\n disabled: !_ctx.selectedTarget || !_ctx.selectedSource || _ctx.deploymentLoading || _ctx.selectedDocuments.length == 0\n }, [\n _createTextVNode(_toDisplayString(!_ctx.deploymentLoading ? _ctx.$t('deployment.deployModels') : '') + \" \", 1),\n (_ctx.deploymentLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_4)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('deployment.modelsList')), 1),\n _hoisted_8\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (!_ctx.selectedSource)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_10, _toDisplayString(_ctx.externalEnvironnements.find((x) => x.instanceUrl == _ctx.selectedSource)?.orgName ?? ''), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_11, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-search\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.searchText) = $event)),\n placeholder: _ctx.$t('deployment.research')\n }, null, 8, _hoisted_12), [\n [_vModelText, _ctx.searchText]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"table\", _hoisted_14, [\n _createElementVNode(\"thead\", _hoisted_15, [\n _createElementVNode(\"tr\", _hoisted_16, [\n _createElementVNode(\"th\", _hoisted_17, [\n _createElementVNode(\"input\", {\n class: \"gnx-checkbox-btn\",\n type: \"checkbox\",\n id: \"test-c1\",\n checked: \r\n\t\t\t\t\t\t\t\t_ctx.documents.length > 0 &&\r\n\t\t\t\t\t\t\t\t_ctx.documents.filter((element) => element.azureId != undefined).length ==\r\n\t\t\t\t\t\t\t\t\t_ctx.selectedDocuments.length\r\n\t\t\t\t\t\t\t,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.selectAllDocument()))\n }, null, 8, _hoisted_18),\n _hoisted_19\n ]),\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell name-col\", {\r\n\t\t\t\t\t\t\t'app-table__sortable-column': _ctx.documents.length != 0,\r\n\t\t\t\t\t\t\t'--top': _ctx.isTemplateSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isTemplateSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.sortTableColumn('template')))\n }, _toDisplayString(_ctx.$t('deployment.modelName')), 3),\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell name-col\", {\r\n\t\t\t\t\t\t\t'app-table__sortable-column': _ctx.documents.length != 0,\r\n\t\t\t\t\t\t\t'--top': _ctx.isFileSorted == -1,\r\n\t\t\t\t\t\t\t'--bottom': _ctx.isFileSorted == 1,\r\n\t\t\t\t\t\t}]),\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.sortTableColumn('file')))\n }, _toDisplayString(_ctx.$t('deployment.fileName')), 3),\n _createElementVNode(\"th\", _hoisted_20, _toDisplayString(_ctx.$t('deployment.format')), 1),\n _createElementVNode(\"th\", _hoisted_21, _toDisplayString(_ctx.$t('deployment.size')), 1),\n _createElementVNode(\"th\", _hoisted_22, _toDisplayString(_ctx.$t('deployment.lastSend')), 1)\n ])\n ]),\n (_ctx.documents.length != 0 && !_ctx.documentsLoading)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_23, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.searchedDocumentList(), (document, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"app-table__body-row\",\n key: index\n }, [\n (document.azureId)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_24, [\n _createElementVNode(\"input\", {\n class: \"gnx-checkbox-btn\",\n type: \"checkbox\",\n id: index.toString(),\n onChange: ($event: any) => (_ctx.selectDocument($event, document)),\n checked: _ctx.selectedDocuments.includes(document.externalId)\n }, null, 40, _hoisted_25),\n _createElementVNode(\"label\", {\n class: \"gnx-checkbox-txt\",\n for: index.toString()\n }, null, 8, _hoisted_26)\n ]))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_27, _hoisted_29)),\n _createElementVNode(\"td\", _hoisted_30, _toDisplayString(document.name), 1),\n _createElementVNode(\"td\", _hoisted_31, _toDisplayString(document.fileName), 1),\n _createElementVNode(\"td\", _hoisted_32, [\n _createElementVNode(\"div\", _hoisted_33, [\n (document.extension)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"files__extension-icon\",\n src: require('@/assets/png/' + _ctx.getFormatIcon(document.extension) + '.png')\n }, null, 8, _hoisted_34))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(document.extension ? _ctx.getFormatText(document.extension) : ''), 1)\n ])\n ]),\n _createElementVNode(\"td\", _hoisted_35, _toDisplayString(document.size ? _ctx.humanFileSize(document.size) : 0), 1),\n _createElementVNode(\"td\", _hoisted_36, _toDisplayString(document.lastSendDate ? document.lastSendDate.toLocaleDateString() : ''), 1)\n ]))\n }), 128))\n ]))\n : (_ctx.documents.length == 0 && !_ctx.documentsLoading)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_37, [\n _createElementVNode(\"tr\", _hoisted_38, [\n _createElementVNode(\"td\", _hoisted_39, [\n _createElementVNode(\"p\", _hoisted_40, _toDisplayString(_ctx.selectedSource == '' ? _ctx.$t('deployment.noSourceSelected') : _ctx.$t('deployment.emptyTable')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"tbody\", _hoisted_41, _hoisted_43))\n ])\n ]),\n _createVNode(_component_TicketComponent)\n ], 64))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { DocumentTemplate } from '@/types/salesforce-objects.type';\r\nimport { useToast } from 'vue-toastification';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\nimport { useSalesforceStore } from '@/stores/salesforce.store';\r\nimport { Vue } from 'vue-class-component';\r\n\r\nexport default class DocumentTemplateService {\r\n\tstatic toast = useToast();\r\n\tstatic sfStore: ReturnType<typeof useSalesforceStore>;\r\n\r\n\t/**\r\n\t * Recupere et renvoie les documents template d'un environnement salesforce\r\n\t * @param salesforceInstanceUrl\r\n\t * @param token\r\n\t * @returns Doucment template d'un environment salesforce\r\n\t */\r\n\tstatic async getAllDocumentTemplatesInfo(orgId: string): Promise<DocumentTemplate[]> {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\t\tconst documentTemplates: DocumentTemplate[] = [];\r\n\t\tif (this.sfStore.docTemplates && this.sfStore.docTemplates[orgId]) return this.sfStore.docTemplates[orgId];\r\n\r\n\t\ttry {\r\n\t\t\tconst responseTemplates = await CalloutAppApiService.calloutAsync(\r\n\t\t\t\t'get',\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/templates`\r\n\t\t\t);\r\n\r\n\t\t\tconst documentTemplateRecords = responseTemplates.records;\r\n\t\t\tconst contentVersionIds = [];\r\n\r\n\t\t\tfor (const documentTemplateRecord of documentTemplateRecords) {\r\n\t\t\t\tconst contentVersionId = documentTemplateRecord.gnx__Salesforce_content_version_id_sent__c;\r\n\t\t\t\tif (contentVersionId) contentVersionIds.push(contentVersionId);\r\n\t\t\t}\r\n\r\n\t\t\tconst responseContentVersion = await CalloutAppApiService.calloutAsync(\r\n\t\t\t\t'post',\r\n\t\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/templates/contentversion`,\r\n\t\t\t\t{ contentIds: contentVersionIds }\r\n\t\t\t);\r\n\t\t\tif (responseContentVersion.records?.length > 0) {\r\n\t\t\t\tconst contentVersions: [] = responseContentVersion.records;\r\n\t\t\t\tfor (const documentTemplateRecord of documentTemplateRecords) {\r\n\t\t\t\t\tif (documentTemplateRecord.gnx__Salesforce_content_version_id_sent__c) {\r\n\t\t\t\t\t\tconst contentVersion: any = contentVersions.find(\r\n\t\t\t\t\t\t\t(version: any) =>\r\n\t\t\t\t\t\t\t\tversion.id === documentTemplateRecord.gnx__Salesforce_content_version_id_sent__c\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst documentTemplate: DocumentTemplate = {\r\n\t\t\t\t\t\t\tlastSendDate: new Date(documentTemplateRecord.gnx__date_of_last_send__c),\r\n\t\t\t\t\t\t\tname: documentTemplateRecord.name,\r\n\t\t\t\t\t\t\tazureId: documentTemplateRecord.gnx__Template_ID_on_Azure__c,\r\n\t\t\t\t\t\t\tfileName: contentVersion?.title ? contentVersion?.title : '',\r\n\t\t\t\t\t\t\textension: contentVersion?.fileExtension,\r\n\t\t\t\t\t\t\tsize: contentVersion?.contentSize,\r\n\t\t\t\t\t\t\texternalId: documentTemplateRecord.gnx__External_ID__c,\r\n\t\t\t\t\t\t\tid: documentTemplateRecord.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tdocumentTemplates.push(documentTemplate);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst documentTemplate: DocumentTemplate = {\r\n\t\t\t\t\t\t\tname: documentTemplateRecord.name,\r\n\t\t\t\t\t\t\tfileName: '',\r\n\t\t\t\t\t\t\texternalId: documentTemplateRecord.gnx__External_ID__c,\r\n\t\t\t\t\t\t\tid: documentTemplateRecord.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tdocumentTemplates.push(documentTemplate);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.sfStore.docTemplates == null) {\r\n\t\t\t\tthis.sfStore.docTemplates = { [orgId]: documentTemplates };\r\n\t\t\t} else {\r\n\t\t\t\tthis.sfStore.docTemplates[orgId] = documentTemplates;\r\n\t\t\t}\r\n\t\t\treturn this.sfStore.docTemplates[orgId];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('📄 Erreur lors de la requête de recuperation des document templates :');\r\n\t\t\tconsole.error(error);\r\n\t\t\treturn documentTemplates;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Déploiement des document template\r\n\t * @param salesforceInstanceUrl\r\n\t * @param instanceDestinationUrl\r\n\t * @param token\r\n\t * @param targetToken\r\n\t * @param externalIds\r\n\t * @param orgId\r\n\t */\r\n\tstatic async deployDocumentTemplates(\r\n\t\tsalesforceInstanceUrl: string,\r\n\t\tinstanceDestinationUrl: string,\r\n\t\texternalIds: string[],\r\n\t\ttypeOrg: string,\r\n\t\torgId: string\r\n\t) {\r\n\t\tthis.sfStore = useSalesforceStore();\r\n\r\n\t\tCalloutAppApiService.calloutAsync('post', `${process.env.VUE_APP_APP_API_URI}/api/deployment`, {\r\n\t\t\ttargetInstanceUrl: instanceDestinationUrl,\r\n\t\t\tinstanceUrl: salesforceInstanceUrl,\r\n\t\t\texternalIds: externalIds,\r\n\t\t\ttypeOrg: typeOrg,\r\n\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.toast.success(Vue.prototype.$t('success.deployment'));\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('📄 Erreur lors du déploiement des modèles :');\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tthis.toast.error(Vue.prototype.$t('error.deployment'));\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.sfStore.deleteTemplates(orgId);\r\n\t\t\t});\r\n\t}\r\n}\r\n","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\n\r\nimport PickList from '@/components/general/PickList.vue'; // <-- On importe votre PickList\r\nimport EnvironmentsService from '@/services/environments.service';\r\nimport DocumentTemplateService from '@/services/document-template.service';\r\nimport { ExternalEnvironnement, ExternalUser } from '@/types/gonexa-users.type';\r\nimport { DocumentTemplate } from '@/types/salesforce-objects.type';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tTicketComponent,\r\n\t\tPickList,\r\n\t},\r\n\twatch: {\r\n\t\tasync selectedSource(newVal: string) {\r\n\t\t\t// même logique qu'avant\r\n\t\t\tconst env = this.externalEnvironnements.find(\r\n\t\t\t\t(x: ExternalEnvironnement) => x.externalId === newVal || x.orgName === newVal\r\n\t\t\t);\r\n\t\t\tif (env) {\r\n\t\t\t\tawait this.selectEnvironment(env, true);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tselectedTarget(newVal: string) {\r\n\t\t\t// même logique qu'avant\r\n\t\t\tconst env = this.externalEnvironnementsTarget.find(\r\n\t\t\t\t(x: ExternalEnvironnement) => x.externalId === newVal || x.orgName === newVal\r\n\t\t\t);\r\n\t\t\tif (env) {\r\n\t\t\t\tthis.selectEnvironment(env, false);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n})\r\nexport default class DeploymentView extends Vue {\r\n\ttoast = useToast();\r\n\tauthStore = useAuthStore();\r\n\r\n\tenvironmentLoaded = false;\r\n\tdocumentsLoading = false;\r\n\tdeploymentLoading = false;\r\n\r\n\texternalEnvironnements: ExternalEnvironnement[] = [];\r\n\texternalEnvironnementsTarget: ExternalEnvironnement[] = [];\r\n\tselectedSource = '';\r\n\tselectedTarget = '';\r\n\texternalUsers: ExternalUser[] = [];\r\n\r\n\tdocuments: DocumentTemplate[] = [];\r\n\tselectedDocuments: string[] = [];\r\n\tsearchText = '';\r\n\r\n\tisTemplateSorted = 1;\r\n\tisFileSorted = 0;\r\n\r\n\tasync mounted() {\r\n\t\t// Récupération de tous les External Environments et Users associés à l'utilisateur\r\n\t\tthis.externalEnvironnements = await EnvironmentsService.getExternalEnvironments();\r\n\t\tthis.externalUsers = await EnvironmentsService.getExternalUsers();\r\n\r\n\t\tthis.externalEnvironnements = this.externalEnvironnements.filter((x) =>\r\n\t\t\tthis.externalUsers.some((y) => y.externalEnvironmentId == x.id)\r\n\t\t);\r\n\t\tthis.environmentLoaded = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Alimente le PickList source\r\n\t */\r\n\tget environmentsSourceItems() {\r\n\t\treturn this.externalEnvironnements.map((env) => ({\r\n\t\t\tvalue: env.orgName,\r\n\t\t\tlabel: env.orgName,\r\n\t\t}));\r\n\t}\r\n\r\n\t/**\r\n\t * Alimente le PickList cible\r\n\t */\r\n\tget environmentsTargetItems() {\r\n\t\treturn this.externalEnvironnementsTarget.map((env) => ({\r\n\t\t\tvalue: env.orgName,\r\n\t\t\tlabel: env.orgName,\r\n\t\t}));\r\n\t}\r\n\r\n\t/**\r\n\t * Recherche un docment template par son nom, son nom de fichier, ou son extension\r\n\t */\r\n\tsearchedDocumentList(): DocumentTemplate[] {\r\n\t\treturn this.documents.filter(\r\n\t\t\t(document) =>\r\n\t\t\t\tdocument.name.toLowerCase().includes(this.searchText.toLowerCase()) ||\r\n\t\t\t\t(document.fileName && document.fileName.toLowerCase().includes(this.searchText.toLowerCase())) ||\r\n\t\t\t\t(document.extension &&\r\n\t\t\t\t\tthis.getFormatText(document.extension).toLowerCase().includes(this.searchText.toLowerCase()))\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Charge la liste des document templates\r\n\t */\r\n\tasync selectEnvironment(env: ExternalEnvironnement, isSource: boolean) {\r\n\t\tif (isSource) {\r\n\t\t\tthis.selectedSource = env.orgName;\r\n\r\n\t\t\tthis.documentsLoading = true;\r\n\r\n\t\t\tconst externalEnvironmentId: string | undefined = this.externalEnvironnements.find(\r\n\t\t\t\t(x) => x.orgName == this.selectedSource\r\n\t\t\t)?.externalId;\r\n\r\n\t\t\tif (externalEnvironmentId) {\r\n\t\t\t\tthis.documents = (\r\n\t\t\t\t\tawait DocumentTemplateService.getAllDocumentTemplatesInfo(externalEnvironmentId)\r\n\t\t\t\t)?.sort((x, y) => x.name.localeCompare(y.name));\r\n\t\t\t\tthis.documentsLoading = false;\r\n\r\n\t\t\t\tthis.externalEnvironnementsTarget = this.externalEnvironnements.filter(\r\n\t\t\t\t\t(x) => x.externalId != externalEnvironmentId\r\n\t\t\t\t);\r\n\t\t\t\tthis.selectedTarget = '';\r\n\t\t\t}\r\n\r\n\t\t\tthis.selectedDocuments = [];\r\n\t\t\tthis.documentsLoading = false;\r\n\t\t} else {\r\n\t\t\tthis.selectedTarget = env.orgName;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initialise le document séléctionné\r\n\t */\r\n\tselectDocument(event: Event, document: DocumentTemplate) {\r\n\t\tconst isCheckboxChecked = (event.target as HTMLInputElement).checked;\r\n\r\n\t\tif (isCheckboxChecked) {\r\n\t\t\tif (!this.selectedDocuments.includes(document.externalId)) {\r\n\t\t\t\tthis.selectedDocuments.push(document.externalId);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.selectedDocuments.includes(document.externalId)) {\r\n\t\t\t\tconst index = this.selectedDocuments.indexOf(document.externalId);\r\n\t\t\t\tthis.selectedDocuments.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sélectionne tous les documents\r\n\t */\r\n\tselectAllDocument() {\r\n\t\tif (this.documents.filter((element) => element.azureId != undefined).length == this.selectedDocuments.length) {\r\n\t\t\tthis.selectedDocuments = [];\r\n\t\t} else {\r\n\t\t\tthis.selectedDocuments = [];\r\n\t\t\tthis.documents.forEach((element) => {\r\n\t\t\t\tif (element.azureId) this.selectedDocuments.push(element.externalId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Deploie le ou les documents sélectionnés\r\n\t */\r\n\tasync deployDocuments() {\r\n\t\tif (this.selectedSource && this.selectedTarget && this.selectedDocuments.length > 0) {\r\n\t\t\tthis.toast.info(this.$t('deployment.title') + ' ...', { showCloseButtonOnHover: true });\r\n\r\n\t\t\tconst sourceOrg: ExternalEnvironnement | undefined = this.externalEnvironnements.find(\r\n\t\t\t\t(x) => x.orgName == this.selectedSource\r\n\t\t\t);\r\n\t\t\tconst targetOrg: ExternalEnvironnement | undefined = this.externalEnvironnements.find(\r\n\t\t\t\t(x) => x.orgName == this.selectedTarget\r\n\t\t\t);\r\n\r\n\t\t\tif (sourceOrg && targetOrg) {\r\n\t\t\t\tthis.deploymentLoading = true;\r\n\r\n\t\t\t\tawait DocumentTemplateService.deployDocumentTemplates(\r\n\t\t\t\t\tsourceOrg.instanceUrl,\r\n\t\t\t\t\ttargetOrg.instanceUrl,\r\n\t\t\t\t\tthis.selectedDocuments,\r\n\t\t\t\t\ttargetOrg.typeOrg,\r\n\t\t\t\t\ttargetOrg.externalId\r\n\t\t\t\t);\r\n\t\t\t\tthis.deploymentLoading = false;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!this.selectedSource) this.toast.info(this.$t('deployment.noSourceSelected'));\r\n\t\t\telse if (!this.selectedTarget) this.toast.info(this.$t('deployment.noDestinationSelected'));\r\n\t\t\telse if (this.selectedDocuments.length <= 0) this.toast.info(this.$t('deployment.noModelSelected'));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * SOURCE DE CETTE FONCTION : https://stackoverflow.com/questions/10420352/converting-file-size-in-bytes-to-human-readable-string\r\n\t * Format octets as human-readable text.\r\n\t *\r\n\t * @param octets Number of octets.\r\n\t * @param si True to use metric (SI) units, aka powers of 1000. False to use\r\n\t * binary (IEC), aka powers of 1024.\r\n\t * @param dp Number of decimal places to display.\r\n\t *\r\n\t * @return Formatted string.\r\n\t */\r\n\thumanFileSize(octets: number, si = false, dp = 1) {\r\n\t\tconst thresh = si ? 1000 : 1024;\r\n\r\n\t\tif (Math.abs(octets) < thresh) {\r\n\t\t\treturn octets + ' o';\r\n\t\t}\r\n\r\n\t\tconst units = si\r\n\t\t\t? ['Kio', 'Mio', 'Gio', 'Tio', 'Pio', 'Eio', 'Zio', 'Yi']\r\n\t\t\t: ['Ko', 'Mo', 'Go', 'TB', 'Po', 'Eo', 'Zo', 'Yo'];\r\n\t\tlet u = -1;\r\n\t\tconst r = 10 ** dp;\r\n\r\n\t\tdo {\r\n\t\t\toctets /= thresh;\r\n\t\t\t++u;\r\n\t\t} while (Math.round(Math.abs(octets) * r) / r >= thresh && u < units.length - 1);\r\n\r\n\t\treturn octets.toFixed(dp).replace('.', ',') + ' ' + units[u];\r\n\t}\r\n\r\n\t/**\r\n\t * Retourne le nom de l'image correspondant au format du fichier dans le dossier png\r\n\t * @param format format du fichier\r\n\t */\r\n\tgetFormatIcon(format: string): string {\r\n\t\tswitch (format) {\r\n\t\t\tcase 'docx':\r\n\t\t\t\treturn 'logo_word';\r\n\t\t\tcase 'xlsx':\r\n\t\t\t\treturn 'logo_excel';\r\n\t\t\tcase 'pptx':\r\n\t\t\t\treturn 'logo_powerpoint';\r\n\t\t\tcase 'pdf':\r\n\t\t\t\treturn 'logo_pdf';\r\n\t\t}\r\n\t\treturn 'insert_drive_file';\r\n\t}\r\n\r\n\t/**\r\n\t * Retourne le nom du format du fichier\r\n\t * @param format format du fichier\r\n\t */\r\n\tgetFormatText(format: string): string {\r\n\t\tswitch (format) {\r\n\t\t\tcase 'docx':\r\n\t\t\t\treturn 'Word';\r\n\t\t\tcase 'xlsx':\r\n\t\t\t\treturn 'Excel';\r\n\t\t\tcase 'pptx':\r\n\t\t\t\treturn 'PowerPoint';\r\n\t\t\tcase 'pdf':\r\n\t\t\t\treturn 'PDF';\r\n\t\t}\r\n\t\treturn this.$t('deployment.unknownFormat');\r\n\t}\r\n\r\n\tsortTableColumn(type: string) {\r\n\t\tlet newSortedList = [];\r\n\r\n\t\tif (type == 'template') {\r\n\t\t\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t\t\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t\t\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isTemplateSorted == 1\r\n\t\t\t\t\t? this.documents.sort((x, y) => x.name.localeCompare(y.name)).reverse()\r\n\t\t\t\t\t: this.documents.sort((x, y) => x.name.localeCompare(y.name));\r\n\r\n\t\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\t\tthis.isTemplateSorted = this.isTemplateSorted == 1 ? -1 : 1;\r\n\r\n\t\t\t// Et on remet l'autre colonne non triées à 0\r\n\t\t\tthis.isFileSorted = 0;\r\n\t\t} else {\r\n\t\t\tnewSortedList =\r\n\t\t\t\tthis.isFileSorted == 1\r\n\t\t\t\t\t? this.documents.sort((x, y) => x.fileName.localeCompare(y.fileName)).reverse()\r\n\t\t\t\t\t: this.documents.sort((x, y) => x.fileName.localeCompare(y.fileName));\r\n\r\n\t\t\tthis.isFileSorted = this.isFileSorted == 1 ? -1 : 1;\r\n\t\t\tthis.isTemplateSorted = 0;\r\n\t\t}\r\n\r\n\t\tthis.documents = newSortedList;\r\n\t}\r\n}\r\n","import { render } from \"./DeploymentView.vue?vue&type=template&id=0ae63632&scoped=true&ts=true\"\nimport script from \"./DeploymentView.vue?vue&type=script&lang=ts\"\nexport * from \"./DeploymentView.vue?vue&type=script&lang=ts\"\n\nimport \"./DeploymentView.vue?vue&type=style&index=0&id=0ae63632&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0ae63632\"]])\n\nexport default __exports__","import { Webdoc, WebdocAction, WebdocBranding } from '@/types/webdoc.type';\r\nimport axios from 'axios';\r\nimport { Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nexport default class WebdocService {\r\n\tstatic toast = useToast();\r\n\r\n\tstatic async getWebdoc(token: string): Promise<Webdoc> {\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/webdoc/${token}`)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async getWebdocBranding(token: string): Promise<string> {\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/webdoc/branding/${token}`)\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: Error) => {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async getBlobFromContentId(webdocToken: string, contentDocumentId: string): Promise<string> {\r\n\t\ttry {\r\n\t\t\tconst htmlContent = await axios.post(`${process.env.VUE_APP_APP_API_URI}/api/webdoc/html`, {\r\n\t\t\t\twebdocToken: webdocToken,\r\n\t\t\t\tcontentDocId: contentDocumentId,\r\n\t\t\t});\r\n\r\n\t\t\treturn htmlContent.data.content;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\r\n\t\t\t\t'📄 Erreur lors de la récupération du fichier Salesforce ' + contentDocumentId + ' : ' + error\r\n\t\t\t);\r\n\t\t\tconsole.error(error);\r\n\t\t\t// Traitez l'erreur selon vos besoins\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async setWebdocSign(webdocToken: string, actions: WebdocAction[]) {\r\n\t\treturn await axios.post(`${process.env.VUE_APP_APP_API_URI}/api/webdoc/sign`, {\r\n\t\t\twebdocToken: webdocToken,\r\n\t\t\tactions: actions,\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async getWebdocFile(webdocToken: string): Promise<Blob> {\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/webdoc/download/${webdocToken}`, {\r\n\t\t\t\tresponseType: 'blob',\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(\"📑 Erreur de téléchargement d'un webdoc\");\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tthis.toast.error(Vue.prototype.$t('error.downloadWebdoc'));\r\n\t\t\t\tthrow new Error(error);\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/arrow_left_blue.svg'\nimport _imports_1 from '@/assets/png/logo-gonexa.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2768629b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"webdoc-popup\" }\nconst _hoisted_2 = { class: \"webdoc-popup__body\" }\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"webdoc-popup__title\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = { class: \"webdoc-popup__subtitle\" }\nconst _hoisted_7 = {\n key: 1,\n class: \"webdoc-popup__button\"\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = { class: \"webdoc-popup__footer\" }\nconst _hoisted_12 = { class: \"webdoc-popup__footer--texts\" }\nconst _hoisted_13 = { href: \"https://www.gonexa.fr/legal/mentions\" }\nconst _hoisted_14 = { class: \"lang-choice\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"webdoc-container\",\n style: _normalizeStyle({\r\n\t\t\t'background-color': _ctx.branding?.Background ? _ctx.branding.Background : undefined,\r\n\t\t\tcolor: _ctx.branding?.Text ? _ctx.branding.Text : undefined,\r\n\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.branding?.Logo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"brand-logo\",\n src: _ctx.branding.Logo,\n alt: \"\"\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"img\", {\n class: \"webdoc-popup__check-icon\",\n src: _ctx.icon,\n alt: \"\"\n }, null, 8, _hoisted_5),\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.subtitle), 1),\n (_ctx.isValidation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary --cancel\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.close && _ctx.close(...args)))\n }, [\n _hoisted_8,\n _createTextVNode(_toDisplayString(_ctx.$t('sign.backToDocument')), 1)\n ]),\n _createElementVNode(\"button\", {\n onMouseover: _cache[1] || (_cache[1] = ($event: any) => (_ctx.hover($event))),\n onMouseleave: _cache[2] || (_cache[2] = ($event: any) => (_ctx.unhover($event))),\n class: \"gnx-btn _primary --validate\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.action && _ctx.action(...args)))\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.buttonIcon,\n alt: \"\",\n class: \"btn-icon\"\n }, null, 8, _hoisted_9),\n _createTextVNode(_toDisplayString(_ctx.buttonText), 1)\n ], 32)\n ]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n class: \"gnx-btn _primary\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.action && _ctx.action(...args)))\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.buttonIcon,\n alt: \"\"\n }, null, 8, _hoisted_10),\n _createTextVNode(_toDisplayString(_ctx.buttonText), 1)\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"strong\", null, [\n _createTextVNode(\"© Gonexa | \"),\n _createElementVNode(\"a\", _hoisted_13, _toDisplayString(_ctx.$t('app.legalNotice')), 1)\n ])\n ]),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('app.gonexaTeam')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-toggle-btn\",\n type: \"checkbox\",\n id: \"change-lang\",\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.changeLanguage && _ctx.changeLanguage(...args))),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.currentLang) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.currentLang]\n ]),\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"gnx-toggle-txt dashboard__lang\", !_ctx.currentLang ? 'fr' : 'en']),\n for: \"change-lang\"\n }, null, 2)\n ]),\n _hoisted_15\n ])\n ])\n ], 4))\n}","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport { PropType } from 'vue';\r\nimport { WebdocBranding } from '@/types/webdoc.type';\r\n\r\n@Options({\r\n\tprops: {\r\n\t\ttitle: String,\r\n\t\tsubtitle: String,\r\n\t\ticon: String,\r\n\t\tbuttonIcon: String,\r\n\t\tbuttonText: String,\r\n\t\tbranding: {\r\n\t\t\ttype: Object as PropType<WebdocBranding>,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tisValidation: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t},\r\n})\r\nexport default class WebdocPopup extends Vue {\r\n\tcurrentLang = false;\r\n\r\n\ttitle!: string;\r\n\tsubtitle!: string;\r\n\ticon!: string;\r\n\tbuttonIcon!: string;\r\n\tbuttonText!: string;\r\n\tbranding!: WebdocBranding;\r\n\tisValidation!: boolean;\r\n\twhiteImg = require(`@/assets/svg/check_white_new.svg`);\r\n\r\n\tpublic changeLanguage() {\r\n\t\tthis.$i18n.locale = this.currentLang ? 'fr' : 'en';\r\n\t\tlocalStorage.setItem('APP_LG', this.$i18n.locale);\r\n\t\twindow.dispatchEvent(new Event('langChanged'));\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.$emit('close');\r\n\t}\r\n\r\n\taction() {\r\n\t\tthis.$emit('action');\r\n\t}\r\n\r\n\tunhover(event: Event) {\r\n\t\tconst element = event.target as HTMLElement;\r\n\r\n\t\tif (element.firstChild) (element.firstChild as HTMLElement).setAttribute('src', this.buttonIcon);\r\n\t}\r\n\r\n\thover(event: Event) {\r\n\t\tconst element = event.target as HTMLElement;\r\n\t\tif (element.firstChild) (element.firstChild as HTMLElement).setAttribute('src', this.whiteImg);\r\n\t}\r\n}\r\n","import { render } from \"./WebdocPopup.vue?vue&type=template&id=2768629b&scoped=true&ts=true\"\nimport script from \"./WebdocPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./WebdocPopup.vue?vue&type=script&lang=ts\"\n\nimport \"./WebdocPopup.vue?vue&type=style&index=0&id=2768629b&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2768629b\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/png/logo-gonexa.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e064926c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"webdoc-error\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"error\" }\nconst _hoisted_4 = { class: \"error__number\" }\nconst _hoisted_5 = { class: \"error__title\" }\nconst _hoisted_6 = { class: \"error__joke\" }\nconst _hoisted_7 = { class: \"webdoc-error__footer\" }\nconst _hoisted_8 = { class: \"webdoc-error__footer--texts\" }\nconst _hoisted_9 = { href: \"https://www.gonexa.fr/legal/mentions\" }\nconst _hoisted_10 = { class: \"lang-choice\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"webdoc-container\",\n style: _normalizeStyle({\r\n\t\t\t'background-color': _ctx.branding?.Background ? _ctx.branding.Background : undefined,\r\n\t\t\tcolor: _ctx.branding?.Text ? _ctx.branding.Text : undefined,\r\n\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (_ctx.branding?.Logo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"brand-logo\",\n src: _ctx.branding.Logo,\n alt: \"\"\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.is404 ? '404' : _ctx.$t('error.webdocOops')), 1),\n _createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.is404 ? _ctx.$t('errorPage.notFound') : _ctx.$t('error.webdocErrorWhileLoading')), 1),\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.is404 ? _ctx.$t('errorPage.joke') : _ctx.$t(_ctx.errormessage)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", null, [\n _createElementVNode(\"strong\", null, [\n _createTextVNode(\"© Gonexa | \"),\n _createElementVNode(\"a\", _hoisted_9, _toDisplayString(_ctx.$t('app.legalNotice')), 1)\n ])\n ]),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('app.gonexaTeam')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-toggle-btn\",\n type: \"checkbox\",\n id: \"change-lang\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.changeLanguage && _ctx.changeLanguage(...args))),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.currentLang) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.currentLang]\n ]),\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"gnx-toggle-txt dashboard__lang\", !_ctx.currentLang ? 'fr' : 'en']),\n for: \"change-lang\"\n }, null, 2)\n ]),\n _hoisted_11\n ])\n ])\n ], 4))\n}","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport { PropType } from 'vue';\r\nimport { WebdocBranding } from '@/types/webdoc.type';\r\n\r\n@Options({\r\n\tprops: {\r\n\t\terrormessage: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: 'error.webdocIssueWhenLoading',\r\n\t\t},\r\n\t\tis404: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\tbranding: {\r\n\t\t\ttype: Object as PropType<WebdocBranding>,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t},\r\n})\r\nexport default class WebdocError extends Vue {\r\n\tcurrentLang = false;\r\n\terrormessage!: string;\r\n\tis404!: boolean;\r\n\tbranding!: WebdocBranding;\r\n\r\n\tpublic changeLanguage() {\r\n\t\tthis.$i18n.locale = this.currentLang ? 'fr' : 'en';\r\n\t\tlocalStorage.setItem('APP_LG', this.$i18n.locale);\r\n\t\twindow.dispatchEvent(new Event('langChanged'));\r\n\t}\r\n}\r\n","import { render } from \"./WebdocError.vue?vue&type=template&id=e064926c&scoped=true&ts=true\"\nimport script from \"./WebdocError.vue?vue&type=script&lang=ts\"\nexport * from \"./WebdocError.vue?vue&type=script&lang=ts\"\n\nimport \"./WebdocError.vue?vue&type=style&index=0&id=e064926c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e064926c\"]])\n\nexport default __exports__","import { PicklistModel, StakeHolder, WebdocAction, WebdocInteraction } from '@/types/webdoc.type';\r\nimport { Vue } from 'vue-class-component';\r\n\r\nexport default class InteractionFormat {\r\n\ttop: number;\r\n\tleft: number;\r\n\tmappedAction: WebdocInteraction;\r\n\taction: WebdocAction;\r\n\tisSignatoryAction: boolean;\r\n\tinteractionIndex: number;\r\n\ttooltip: string;\r\n\tisWebdoc: boolean;\r\n\trecipients: StakeHolder[];\r\n\tcurrentIndex: number;\r\n\r\n\tconstructor(\r\n\t\ttop: number,\r\n\t\tleft: number,\r\n\t\tmappedAction: WebdocInteraction,\r\n\t\taction: WebdocAction,\r\n\t\tisSignatoryAction: boolean,\r\n\t\tinteractionIndex: number,\r\n\t\ttooltip: string,\r\n\t\tisWebdoc: boolean,\r\n\t\trecipients: StakeHolder[],\r\n\t\tcurrentIndex: number\r\n\t) {\r\n\t\tthis.top = top;\r\n\t\tthis.left = left;\r\n\t\tthis.mappedAction = mappedAction;\r\n\t\tthis.action = action;\r\n\t\tthis.isSignatoryAction = isSignatoryAction;\r\n\t\tthis.interactionIndex = interactionIndex;\r\n\t\tthis.tooltip = tooltip;\r\n\t\tthis.isWebdoc = isWebdoc;\r\n\t\tthis.recipients = recipients;\r\n\t\tthis.currentIndex = currentIndex;\r\n\t}\r\n\r\n\tgetNode(): [string, WebdocAction] {\r\n\t\tlet node = '';\r\n\t\tswitch (this.mappedAction.type) {\r\n\t\t\tcase 'text': {\r\n\t\t\t\tif (this.mappedAction.isAutofilled)\r\n\t\t\t\t\tthis.action.value = this.mappedAction.value ? this.mappedAction.value : '';\r\n\t\t\t\tthis.mappedAction.height = this.mappedAction.height - 2;\r\n\t\t\t\tnode = `<div class=\"interaction-container\" style=\"top: ${this.top}px; left: calc( ${\r\n\t\t\t\t\tthis.left\r\n\t\t\t\t}px + var(--padding))\"><textarea ${\r\n\t\t\t\t\tthis.isSignatoryAction ? '' : 'disabled'\r\n\t\t\t\t} class=\"interaction-input\" id=\"interaction-${this.interactionIndex}\" type=\"text\" \r\n maxlength=\"${this.mappedAction.maxLength}\" style=\";width: ${this.mappedAction.width\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px;height: ${this.mappedAction.height\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px; outline: none;padding: 0;padding-left: 5px; border: solid 1px ${\r\n\t\t\t\t\t!this.mappedAction.isOptional ? 'rgb(0,0,0, .1)' : '#E58180'\r\n\t\t\t\t}; border-radius: 6px;background: #FCFCFC;\">${\r\n\t\t\t\t\tthis.mappedAction.isAutofilled ? this.action.value : ''\r\n\t\t\t\t}</textarea><span class=\"tooltiptext\">${this.tooltip}</span>\r\n </div>`;\r\n\t\t\t\tthis.action.type = 'String';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'number': {\r\n\t\t\t\tif (this.mappedAction.isAutofilled)\r\n\t\t\t\t\tthis.action.value = this.mappedAction.value ? this.mappedAction.value : '';\r\n\r\n\t\t\t\tnode = `<div class=\"interaction-container\" style=\"top: ${this.top}px; left: calc( ${\r\n\t\t\t\t\tthis.left\r\n\t\t\t\t}px + var(--padding))\"><input ${\r\n\t\t\t\t\tthis.isSignatoryAction ? '' : 'disabled'\r\n\t\t\t\t} class=\"interaction-input\" id=\"interaction-${this.interactionIndex}\" type=\"number\" ${\r\n\t\t\t\t\tthis.mappedAction.isAutofilled ? `value=\"${this.action.value}\"` : ''\r\n\t\t\t\t}\r\n maxlength=\"${this.mappedAction.maxLength}\" style=\";width: ${this.mappedAction.width\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px;height: ${this.mappedAction.height\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px; outline: none;padding: 0;padding-left: 5px; border: solid 1px ${\r\n\t\t\t\t\t!this.mappedAction.isOptional ? 'rgb(0,0,0, .1)' : '#E58180'\r\n\t\t\t\t}; border-radius: 6px;background: #FCFCFC; -webkit-appearance: textfield; -moz-appearance: textfield;\"/>\r\n <span class=\"tooltiptext\">${this.tooltip}</span>\r\n </div>`;\r\n\t\t\t\tthis.action.type = 'String';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'checkbox': {\r\n\t\t\t\tif (this.mappedAction.isAutofilled) {\r\n\t\t\t\t\tthis.action.value = this.mappedAction.value ? this.mappedAction.value : 'false';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.action.value = 'false';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnode = `<div class=\"interaction-container\" style=\"top: ${this.top}px; left: calc( ${\r\n\t\t\t\t\tthis.left\r\n\t\t\t\t}px + var(--padding)); width: ${this.mappedAction.width\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px;height: ${this.mappedAction.height.toString().trim()}px;\"><input ${\r\n\t\t\t\t\tthis.isSignatoryAction ? '' : 'disabled'\r\n\t\t\t\t} class=\"interaction-input gnx-checkbox-btn\" id=\"interaction-${this.interactionIndex}\" type=\"checkbox\"\r\n ${this.mappedAction.isAutofilled ? (this.mappedAction.value == 'true' ? 'checked' : '') : ''} \r\n style=\"margin: 0; outline: none;padding: 0; border: solid 1px ${\r\n\t\t\t\t\t\t!this.mappedAction.isOptional ? 'rgb(0,0,0, .1)' : '#E58180'\r\n\t\t\t\t\t}; border-radius: 6px;background: #FCFCFC; width:${this.mappedAction.width}px; height:${\r\n\t\t\t\t\tthis.mappedAction.height\r\n\t\t\t\t}px;\"/>\r\n <label class=\"gnx-checkbox-txt interaction\" for=\"interaction-${\r\n\t\t\t\t\t\tthis.interactionIndex\r\n\t\t\t\t\t}\" style=\"position:static; width:${this.mappedAction.width}px; height:${\r\n\t\t\t\t\tthis.mappedAction.height\r\n\t\t\t\t}px;\"></label>\r\n <span class=\"tooltiptext\">${this.tooltip}</span>\r\n </div>`;\r\n\t\t\t\tthis.action.type = 'checkbox';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'picklist': {\r\n\t\t\t\tif (this.mappedAction.value) {\r\n\t\t\t\t\tlet picklistModel = {} as PicklistModel;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.isSignatoryAction &&\r\n\t\t\t\t\t\tthis.isWebdoc &&\r\n\t\t\t\t\t\tthis.recipients[this.currentIndex - 1].status.toLocaleLowerCase() == 'signed'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tpicklistModel = {\r\n\t\t\t\t\t\t\toldValue: this.mappedAction.value,\r\n\t\t\t\t\t\t\tpicklistLabels: [this.mappedAction.value],\r\n\t\t\t\t\t\t\tpicklistValues: [this.mappedAction.value],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpicklistModel = JSON.parse(this.mappedAction.value) as PicklistModel;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.mappedAction.isAutofilled && picklistModel.oldValue != null)\r\n\t\t\t\t\t\tthis.action.value = picklistModel.oldValue ? picklistModel.oldValue : '';\r\n\t\t\t\t\tlet picklistOptions = '';\r\n\t\t\t\t\tpicklistOptions += `<option ${\r\n\t\t\t\t\t\t!this.mappedAction.isAutofilled ||\r\n\t\t\t\t\t\t(this.mappedAction.isAutofilled && picklistModel.oldValue == null)\r\n\t\t\t\t\t\t\t? 'selected'\r\n\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t} ${this.mappedAction.isOptional ? 'disabled' : ''}></option>`;\r\n\t\t\t\t\tpicklistModel.picklistValues.forEach((value, index) => {\r\n\t\t\t\t\t\tpicklistOptions += `<option value=\"${value}\" ${\r\n\t\t\t\t\t\t\tthis.mappedAction.isAutofilled &&\r\n\t\t\t\t\t\t\tpicklistModel.oldValue != null &&\r\n\t\t\t\t\t\t\tpicklistModel.oldValue === value\r\n\t\t\t\t\t\t\t\t? 'selected'\r\n\t\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t\t} >${picklistModel.picklistLabels[index]}</option>`;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tnode = `<div class=\"interaction-container\" style=\"top: ${this.top}px; left: calc( ${\r\n\t\t\t\t\t\tthis.left\r\n\t\t\t\t\t}px + var(--padding))\">\r\n <select ${\r\n\t\t\t\t\t\t\t\tthis.isSignatoryAction ? '' : 'disabled'\r\n\t\t\t\t\t\t\t} class=\"interaction-input\" id=\"interaction-${\r\n\t\t\t\t\t\tthis.interactionIndex\r\n\t\t\t\t\t}\" style=\"width: ${this.mappedAction.width.toString().trim()}px;height: ${this.mappedAction.height\r\n\t\t\t\t\t\t.toString()\r\n\t\t\t\t\t\t.trim()}px; outline: none;padding: 0; padding-left: 5px; border: solid 1px ${\r\n\t\t\t\t\t\t!this.mappedAction.isOptional ? 'rgb(0,0,0, .1)' : '#E58180'\r\n\t\t\t\t\t}; border-radius: 6px;background: #FCFCFC;\">\r\n ${picklistOptions}\r\n </select>\r\n <span class=\"tooltiptext\">${this.tooltip}</span>\r\n </div>`;\r\n\t\t\t\t\tthis.action.type = 'String';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'date': {\r\n\t\t\t\tif (this.mappedAction.isAutofilled)\r\n\t\t\t\t\tthis.action.value = this.mappedAction.value ? this.mappedAction.value : '';\r\n\t\t\t\tnode = `<div class=\"interaction-container\" style=\" top: ${this.top}px; left: calc( ${\r\n\t\t\t\t\tthis.left\r\n\t\t\t\t}px + var(--padding))\">\r\n <input ${this.isSignatoryAction ? '' : 'disabled'} class=\"interaction-input\" id=\"interaction-${\r\n\t\t\t\t\tthis.interactionIndex\r\n\t\t\t\t}\" type=\"text\" ${\r\n\t\t\t\t\tthis.mappedAction.isAutofilled\r\n\t\t\t\t\t\t? `value=\"${\r\n\t\t\t\t\t\t\t\tthis.mappedAction.value != null && this.mappedAction.value != ''\r\n\t\t\t\t\t\t\t\t\t? this.mappedAction.value\r\n\t\t\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t\t }\"`\r\n\t\t\t\t\t\t: ''\r\n\t\t\t\t}\r\n maxlength=\"${this.mappedAction.maxLength}\" style=\"width: ${this.mappedAction.width\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px;height: ${this.mappedAction.height\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.trim()}px; outline: none;padding: 0; padding-left: 5px; border: solid 1px ${\r\n\t\t\t\t\t!this.mappedAction.isOptional ? 'rgb(0,0,0, .1)' : '#E58180'\r\n\t\t\t\t}; border-radius: 6px;background: #FCFCFC; background-image: url(${require('@/assets/svg/calendar_grey.svg')}); \r\n background-size: 20px; background-position: right; background-repeat: no-repeat;\"/>\r\n <span class=\"tooltiptext\">${this.tooltip}</span>\r\n </div>`;\r\n\t\t\t\tthis.action.type = 'String';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\tconsole.error('error with input type ' + this.mappedAction.type);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [node, this.action];\r\n\t}\r\n\r\n\tstatic getSignPreview(\r\n\t\tname: string,\r\n\t\twidth: string,\r\n\t\theight: string,\r\n\t\ttop: string,\r\n\t\tleft: string,\r\n\t\tisSignatory: boolean\r\n\t) {\r\n\t\tconst htmlSignPreview = `<div class=\"sign-preview\" style=\"clear: both;margin: 0; width: ${width.trim()}px; height: ${height.trim()}px; position: absolute; top: ${top}px; left: calc( ${left}px + var(--padding))\">\r\n\t\t<div\r\n\t\t\tclass=\"sign-preview__content\"\r\n\t\t\tstyle=\"\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: ${width.trim()}px;\r\n\t\t\t\theight: ${height.trim()}px;\r\n\t\t\t\tborder: 1px solid ${isSignatory ? '#0571BC' : 'transparent'};\r\n\t\t\t\t\r\n\t\t\t\tborder-radius: 8px;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tz-index:100;\r\n\t\t\t\"\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"sign-preview__header-text\"\r\n\t\t\t\tstyle=\"\r\n\t\t\t\t\tbackground: #0571BC;\r\n\t\t\t\t\tcolor: white;\r\n\t\t\t\t\tborder-radius: 10px;\r\n\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\tpadding: 5px 10px;\r\n\t\t\t\t\twidth: fit-content;\r\n\t\t\t\t\tfont-family: 'Montserrat', 'Roboto', 'Helvetica', 'sans-serif';\r\n\t\t\t\t\tfont-weight: 500;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttransform: translate(-50%, -50%);\r\n\t\t\t\t\tz-index: 10;\r\n\t\t\t\t\tleft: 50%;\r\n\t\t\t\t\tfont-size: 9px;\r\n\t\t\t\t\t${isSignatory ? '' : 'display: none;'}\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t\t${Vue.prototype.$t('sign.preview')}\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"sign-preview__body\"\r\n\t\t\t\tstyle=\"margin-top: 11px; text-align: center; position: relative; height: ${\r\n\t\t\t\t\tparseInt(height.trim()) - 11\r\n\t\t\t\t}px; display: flex; flex-direction: column; justify-content: center;\"\r\n\t\t\t>\r\n\t\t\t\t<p class=\"sign-preview__name\" style=\"font-family: Kalam, cursive; font-size: ${\r\n\t\t\t\t\tNumber(width) * ((18 * 0.00566) / name.length)\r\n\t\t\t\t}em\">${name}</p>\r\n\t\t\t\t<p\r\n\t\t\t\t\tclass=\"sign-preview__date\"\r\n\t\t\t\t\tstyle=\"\r\n\t\t\t\t\t\tfont-size: 8px;\r\n\t\t\t\t\t\tfont-family: 'Montserrat', 'Roboto', 'Helvetica', 'sans-serif';\r\n\t\t\t\t\t\tcolor: #616161;\r\n\t\t\t\t\t\"\r\n\t\t\t\t>\r\n\t\t\t\t\t${Vue.prototype.$t('sign.the') + ' ' + new Date().toLocaleDateString()}\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>`;\r\n\t\treturn htmlSignPreview;\r\n\t}\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vShow as _vShow, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/mouse_and_arrow_gray.svg'\nimport _imports_1 from '@/assets/svg/minus_blue.svg'\nimport _imports_2 from '@/assets/svg/plus_blue.svg'\nimport _imports_3 from '@/assets/svg/menu_blue.svg'\nimport _imports_4 from '@/assets/svg/menu_white.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7e27b8f9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"document\",\n id: \"docContainer\",\n ref: \"docContainer\"\n}\nconst _hoisted_2 = { class: \"scroll-popup\" }\nconst _hoisted_3 = {\n class: \"scroll-popup__background\",\n id: \"scroll-popup\"\n}\nconst _hoisted_4 = { class: \"scroll-popup__body\" }\nconst _hoisted_5 = { class: \"scroll-popup__text\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"scroll-popup__logos\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"\"\n })\n], -1))\nconst _hoisted_8 = { class: \"controlContainer\" }\nconst _hoisted_9 = {\n class: \"documentControlls\",\n id: \"documentControlls\",\n ref: \"docControlls\"\n}\nconst _hoisted_10 = {\n key: 0,\n class: \"zoom-control webdoc-button\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_12 = [\n _hoisted_11\n]\nconst _hoisted_13 = { class: \"input-container\" }\nconst _hoisted_14 = [\"value\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_2,\n alt: \"\"\n}, null, -1))\nconst _hoisted_16 = [\n _hoisted_15\n]\nconst _hoisted_17 = {\n key: 0,\n src: _imports_3,\n alt: \"\"\n}\nconst _hoisted_18 = {\n key: 1,\n src: _imports_4,\n alt: \"\"\n}\nconst _hoisted_19 = { class: \"\" }\nconst _hoisted_20 = { class: \"webdoc-button--group\" }\nconst _hoisted_21 = { class: \"webdoc-button --select --language\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", null, \"fr\", -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", null, \"en\", -1))\nconst _hoisted_24 = [\n _hoisted_22,\n _hoisted_23\n]\nconst _hoisted_25 = {\n class: \"documentControlls --hover-popup\",\n id: \"documentControlls\",\n ref: \"docControlls\"\n}\nconst _hoisted_26 = { class: \"webdoc-button--group\" }\nconst _hoisted_27 = { class: \"webdoc-button --select --language\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", null, \"fr\", -1))\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", null, \"en\", -1))\nconst _hoisted_30 = [\n _hoisted_28,\n _hoisted_29\n]\nconst _hoisted_31 = [\"title\"]\nconst _hoisted_32 = { class: \"doc-info--title\" }\nconst _hoisted_33 = {\n key: 0,\n class: \"doc-info--subtitle\"\n}\nconst _hoisted_34 = { id: \"documentController\" }\nconst _hoisted_35 = { class: \"doc-index\" }\nconst _hoisted_36 = { class: \"button-container\" }\nconst _hoisted_37 = { class: \"webdoc-button\" }\nconst _hoisted_38 = { class: \"\" }\nconst _hoisted_39 = {\n key: 0,\n class: \"app-spinner\"\n}\n\nimport {\r\n\tStakeHolder,\r\n\tWebdoc,\r\n\tWebdocAction,\r\n\tWebdocInteraction,\r\n\tWebdocInteractionApprovalList,\r\n} from '@/types/webdoc.type';\r\nimport { nextTick, onMounted, PropType, ref } from 'vue';\r\nimport InteractionFormat from '@/utils/interaction-format';\r\nimport AirDatepicker from 'air-datepicker';\r\nimport localeEn from 'air-datepicker/locale/en';\r\nimport localeFr from 'air-datepicker/locale/fr';\r\nimport 'air-datepicker/air-datepicker.css';\r\nimport { useI18n } from 'vue-i18n';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DocumentViewer',\n props: {\r\n\ttitle: String,\r\n\tisWebdoc: {\r\n\t\ttype: Boolean,\r\n\t\trequired: false,\r\n\t\tdefault: false,\r\n\t},\r\n\tdocumentsCallbacks: {\r\n\t\ttype: Array as PropType<Array<() => Promise<[string, string]>>>,\r\n\t\tdefault: () => [],\r\n\t\tvalidator: (value: any) => Array.isArray(value) && value.every((item) => typeof item === 'function'),\r\n\t},\r\n\tcreatedDate: {\r\n\t\ttype: Date,\r\n\t\trequired: false,\r\n\t\tdefault: new Date(),\r\n\t},\r\n\twebdoc: {\r\n\t\ttype: Object as PropType<Webdoc>,\r\n\t\trequired: false,\r\n\t\tdefault: null,\r\n\t},\r\n\tinteractions: {\r\n\t\ttype: Array as PropType<Array<WebdocInteraction>>,\r\n\t\trequired: false,\r\n\t\tdefault: () => [],\r\n\t\tvalidator: (value: any) => Array.isArray(value),\r\n\t},\r\n\trecipients: {\r\n\t\ttype: Array as PropType<Array<StakeHolder>>,\r\n\t\trequired: false,\r\n\t\tdefault: () => [],\r\n\t\tvalidator: (value: any) => Array.isArray(value),\r\n\t},\r\n\tmenuOpen: {\r\n\t\ttype: Boolean,\r\n\t\trequired: false,\r\n\t\tdefault: false,\r\n\t},\r\n},\n emits: [\r\n\t'consulted',\r\n\t'actions',\r\n\t'screenstate',\r\n\t'webdocMode',\r\n\t'currentPage',\r\n\t'pageNumber',\r\n\t'update:menuOpen',\r\n],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\nconst { availableLocales, locale: currentLocale, t, messages: currentMessages } = useI18n({ useScope: 'global' });\r\n\r\n\r\n\r\n\r\n\r\nconst actions = ref<WebdocAction[]>([]);\r\n\r\nlet docContent = ref<HTMLElement | null>(null);\r\nlet docView = ref<HTMLElement | null>(null);\r\n\r\nlet docLoading = ref(false);\r\nlet consultation = ref(true);\r\nlet interaction = ref(false);\r\nlet signature = ref(false);\r\nlet allowZoom = ref(false);\r\nlet scalingMobile = ref(false);\r\nlet screenState = ref(true);\r\n\r\nlet zoom = ref(1);\r\nlet pageNumber = ref(0);\r\nlet currentPage = ref(0);\r\nlet progression = ref(0);\r\n\r\nlet pages = ref<string[]>([]);\r\nlet pagesRatios = ref<number[]>([]);\r\nlet lastTouchDistance!: number | null;\r\nlet datepickers = ref<AirDatepicker<HTMLElement>[]>([]);\r\n\r\nonMounted(async () => {\r\n\tconst screenStateLS = localStorage.getItem('APP_NB');\r\n\tif (screenStateLS) screenState.value = screenStateLS == 'true' ? true : false;\r\n\tmanageScreenSize();\r\n\twindow.addEventListener('resize', manageScreenSize);\r\n\r\n\twindow.addEventListener('resize', adjustDocControlls);\r\n\twindow.addEventListener('resize', adjustDocumentContent);\r\n\r\n\tadjustDocControlls();\r\n\tnextTick(async () => {\r\n\t\tawait loadHtmlDoc();\r\n\t\tadjustDocumentContent();\r\n\t\tadjustDocControlls();\r\n\t});\r\n});\r\n\r\nfunction toggleMenu() {\r\n\temit('update:menuOpen', !props.menuOpen);\r\n}\r\n\r\n/**\r\n * Ajuste la taille des contrôles (zoom etc...) du doc\r\n */\r\nasync function adjustDocControlls() {\r\n\tconst docControlls = document.getElementsByClassName('documentControlls');\r\n\tconst docView = document.getElementById('docView');\r\n\tconst docContainer = document.getElementById('docContainer');\r\n\tlet scrollPopup = document.getElementById('scroll-popup');\r\n\tif (docView && docControlls.length > 0) {\r\n\t\tArray.from(docControlls).forEach((docControl) => {\r\n\t\t\t(docControl as HTMLElement).style.width = (docView.offsetWidth - 20).toString() + 'px';\r\n\t\t});\r\n\t\tif (scrollPopup) {\r\n\t\t\tif (docContainer) {\r\n\t\t\t\tscrollPopup.style.width = docContainer.getBoundingClientRect().width + 'px';\r\n\t\t\t} else {\r\n\t\t\t\tscrollPopup.style.width = docView.getBoundingClientRect().width + 'px';\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tif (scrollPopup) {\r\n\t\t\tif (docContainer) {\r\n\t\t\t\tscrollPopup.style.width = docContainer.getBoundingClientRect().width + 'px';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tnextTick(() => {\r\n\t\t\t\tconst scrollPopup = document.getElementById('scroll-popup');\r\n\t\t\t\tconst docContainer = document.getElementById('docContainer');\r\n\t\t\t\tif (scrollPopup && docContainer)\r\n\t\t\t\t\tscrollPopup.style.width = docContainer.getBoundingClientRect().width + 'px';\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * ajuste la taille du document pour qu'il soit visible correctement\r\n */\r\nfunction adjustDocumentContent() {\r\n\tif (docContent.value && docView.value) {\r\n\t\tconst top = (docContent.value.offsetHeight * zoom.value - docView.value.offsetHeight + 30) / 4;\r\n\r\n\t\t//docContent.value.style.top = top + 'px';\r\n\t}\r\n}\r\n\r\nasync function fixDocumentAlignement(isInNextTick = false) {\r\n\tconst func = () => {\r\n\t\tconst documentContent = document.getElementById('documentContent');\r\n\t\tif (documentContent && documentContent.parentElement) {\r\n\t\t\tconst documentContentRect = documentContent.getBoundingClientRect();\r\n\t\t\tconst documentControllerRect = documentContent.parentElement.getBoundingClientRect();\r\n\t\t\tconst newWidth = (documentControllerRect.width - documentContentRect.width) / 2;\r\n\t\t\tif (newWidth >= 0) {\r\n\t\t\t\tdocumentContent.style.marginLeft = newWidth + 'px';\r\n\t\t\t\tdocumentContent.style.paddingLeft = '0px';\r\n\t\t\t\tdocumentContent.style.paddingRight = '0px';\r\n\t\t\t\tdocumentContent.style.setProperty('--padding', '0px');\r\n\t\t\t} else {\r\n\t\t\t\tdocumentContent.style.marginLeft = 0 + 'px';\r\n\t\t\t\tdocumentContent.style.paddingLeft = '2rem';\r\n\t\t\t\tdocumentContent.style.paddingRight = '2rem';\r\n\t\t\t\tdocumentContent.style.setProperty('--padding', '2rem');\r\n\t\t\t}\r\n\t\t\tif (zoom.value < 1) {\r\n\t\t\t\tdocumentContent.parentElement.style.setProperty(\r\n\t\t\t\t\t'--contentWidth',\r\n\t\t\t\t\t`${documentControllerRect.height - documentContentRect.height}px`\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tdocumentContent.parentElement.style.setProperty('--contentWidth', `0px`);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tif (isInNextTick) {\r\n\t\tfunc();\r\n\t} else {\r\n\t\tawait nextTick();\r\n\t\tfunc();\r\n\t}\r\n}\r\n\r\nfunction manageScreenSize() {\r\n\tif (window.innerWidth <= 1100) {\r\n\t\tif (screenState.value) {\r\n\t\t\tscreenState.value = !screenState.value;\r\n\t\t\tlocalStorage.setItem('APP_NB', screenState.value.toString());\r\n\t\t}\r\n\t\tif (window.innerWidth <= 768 && allowZoom.value) {\r\n\t\t\tzoom.value = (0.47 * window.innerWidth) / 428;\r\n\t\t}\r\n\t} else if (window.innerWidth > 1100 && !screenState.value) {\r\n\t\tscreenState.value = !screenState.value;\r\n\t\tlocalStorage.setItem('APP_NB', screenState.value.toString());\r\n\t\tzoom.value = 1;\r\n\t}\r\n\temit('screenstate', screenState.value);\r\n\tadjustDocumentContent();\r\n\tadjustDocControlls();\r\n\tfixDocumentAlignement();\r\n\tadjustDocControlls();\r\n}\r\n\r\n/**\r\n * Charge TOUT les fichiers en html\r\n */\r\nasync function loadHtmlDoc(index = 0) {\r\n\tlet updateFunction: (() => void)[] = [];\r\n\tdocLoading.value = true;\r\n\tlet [file, documentId] = await props.documentsCallbacks[index]();\r\n\tdocLoading.value = false;\r\n\tconst htmlContainer = document.createElement('div');\r\n\tconst containerId = `document-container-${documentId}`; // ID unique pour chaque container\r\n\thtmlContainer.id = containerId; // Associer un ID\r\n\thtmlContainer.classList.add('document-container');\r\n\r\n\t//retire les balises qui coupe la balise signature\r\n\tif (index == 0) file = file.replaceAll('<span class=\"stl_06\">', '');\r\n\r\n\thtmlContainer.innerHTML = file;\r\n\r\n\tconst docContainer = document.getElementById('documentContent') as HTMLDivElement;\r\n\r\n\t//on affiche les pages et ont leur met les ombres\r\n\tif (docContainer) {\r\n\t\tdocContainer.appendChild(htmlContainer);\r\n\r\n\t\t//pour le premier document (tout les autres documents sont des annexes)\r\n\t\tif (index == 0)\r\n\t\t\tif (htmlContainer) {\r\n\t\t\t\tconst signIndex =\r\n\t\t\t\t\tprops.webdoc && props.isWebdoc\r\n\t\t\t\t\t\t? props.webdoc.recipients.findIndex((elem) => elem.id == props.webdoc?.signatory.id) + 1\r\n\t\t\t\t\t\t: -1;\r\n\t\t\t\tconst spans = Array.from(htmlContainer.getElementsByTagName('span'));\r\n\t\t\t\tconst spansLength = spans.length;\r\n\r\n\t\t\t\t//pour tout les spans\r\n\t\t\t\tlet tagsBuffer: string[] = [];\r\n\t\t\t\tlet spansBuffer: HTMLSpanElement[] = [];\r\n\t\t\t\tlet recordBuffer = false;\r\n\t\t\t\tfor (let i = 0; i < spansLength; i++) {\r\n\t\t\t\t\tconst textContent = spans[i].textContent;\r\n\r\n\t\t\t\t\t//Si la balise span a du contenu\r\n\t\t\t\t\tif (textContent) {\r\n\t\t\t\t\t\tif (!recordBuffer && textContent.replaceAll(' ', '').includes('{')) {\r\n\t\t\t\t\t\t\trecordBuffer = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (recordBuffer && spans[i]) {\r\n\t\t\t\t\t\t\ttagsBuffer.push(textContent);\r\n\t\t\t\t\t\t\tspansBuffer.push(spans[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (recordBuffer && textContent.replaceAll(' ', '').includes('}')) recordBuffer = false;\r\n\r\n\t\t\t\t\t\tconst bufferedTag = tagsBuffer.join('').replaceAll(/\\s/g, '');\r\n\t\t\t\t\t\tconst isMultipleLineTag = /{!.*?}/g.test(bufferedTag);\r\n\t\t\t\t\t\tconst isOneLineTag = /{!.*?}/g.test(textContent);\r\n\r\n\t\t\t\t\t\t//Si le contenu de la span contient une balise\r\n\t\t\t\t\t\tif (isOneLineTag || isMultipleLineTag) {\r\n\t\t\t\t\t\t\tdocContainer.style.display = 'block';\r\n\t\t\t\t\t\t\tif (isOneLineTag) {\r\n\t\t\t\t\t\t\t\tlet found = spans[i];\r\n\t\t\t\t\t\t\t\tconst matches = found.textContent?.match(/{!.*?}/g);\r\n\r\n\t\t\t\t\t\t\t\tif (matches) {\r\n\t\t\t\t\t\t\t\t\tfound.innerHTML = found.innerHTML.replace(\r\n\t\t\t\t\t\t\t\t\t\t/{!.*?}/g,\r\n\t\t\t\t\t\t\t\t\t\t'<span style=\"color:white\">' + '$&' + '</span>'\r\n\t\t\t\t\t\t\t\t\t); //on met les balise qui correspondent à la regex, en blanc\r\n\r\n\t\t\t\t\t\t\t\t\tmatches.forEach((match) => {\r\n\t\t\t\t\t\t\t\t\t\tconst whiteNode = Array.from(htmlContainer.getElementsByTagName('span')).find(\r\n\t\t\t\t\t\t\t\t\t\t\t(elem) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconst elemMatches = elem.textContent?.match(/{!.*?}/g);\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (elemMatches) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telemMatches.length == 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telemMatches[0] == match &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.style.color == 'white'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t); //on récupère la balise en blanc qui correspond à la balise pour récuperer sa position\r\n\r\n\t\t\t\t\t\t\t\t\t\tconst splittedAction = match\r\n\t\t\t\t\t\t\t\t\t\t\t.replace('{', '')\r\n\t\t\t\t\t\t\t\t\t\t\t.replace('}', '')\r\n\t\t\t\t\t\t\t\t\t\t\t.replace('!', '')\r\n\t\t\t\t\t\t\t\t\t\t\t.split('|'); //on recupere chaque partie de la balise\r\n\r\n\t\t\t\t\t\t\t\t\t\tupdateFunction.push(() =>\r\n\t\t\t\t\t\t\t\t\t\t\tinsertInteractionNode(\r\n\t\t\t\t\t\t\t\t\t\t\t\tsplittedAction,\r\n\t\t\t\t\t\t\t\t\t\t\t\tsignIndex,\r\n\t\t\t\t\t\t\t\t\t\t\t\twhiteNode,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfound,\r\n\t\t\t\t\t\t\t\t\t\t\t\thtmlContainer,\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatch\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlet found = spansBuffer[0]; //on met les balise qui correspondent à la regex, en blanc\r\n\t\t\t\t\t\t\t\tfor (let j = 0; j < tagsBuffer.length; j++) {\r\n\t\t\t\t\t\t\t\t\tconst spanTag = spansBuffer[j];\r\n\t\t\t\t\t\t\t\t\tconst matches = spanTag.textContent?.match(tagsBuffer[j]);\r\n\t\t\t\t\t\t\t\t\tif (matches) {\r\n\t\t\t\t\t\t\t\t\t\tif (spanTag) {\r\n\t\t\t\t\t\t\t\t\t\t\tconst newContent = spansBuffer[j].textContent?.replace(\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatches[0],\r\n\t\t\t\t\t\t\t\t\t\t\t\t'<span style=\"color:white\">' + '$&' + '</span>'\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\tif (newContent) spansBuffer[j].innerHTML = newContent;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconst splittedAction = bufferedTag\r\n\t\t\t\t\t\t\t\t\t.replace('{', '')\r\n\t\t\t\t\t\t\t\t\t.replace('}', '')\r\n\t\t\t\t\t\t\t\t\t.replace('!', '')\r\n\t\t\t\t\t\t\t\t\t.split('|'); //on recupere chaque partie de la balise\r\n\r\n\t\t\t\t\t\t\t\tif (found)\r\n\t\t\t\t\t\t\t\t\tupdateFunction.push(() =>\r\n\t\t\t\t\t\t\t\t\t\tinsertInteractionNode(\r\n\t\t\t\t\t\t\t\t\t\t\tsplittedAction,\r\n\t\t\t\t\t\t\t\t\t\t\tsignIndex,\r\n\t\t\t\t\t\t\t\t\t\t\tundefined,\r\n\t\t\t\t\t\t\t\t\t\t\tfound,\r\n\t\t\t\t\t\t\t\t\t\t\thtmlContainer,\r\n\t\t\t\t\t\t\t\t\t\t\tbufferedTag\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tspansBuffer = [];\r\n\t\t\t\t\t\t\ttagsBuffer = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\tconst elements = docContainer.querySelectorAll('.stl_');\r\n\t\telements.forEach((elem) => {\r\n\t\t\tconst htmlElem = elem as HTMLElement;\r\n\t\t\thtmlElem.style.marginBottom = '40px';\r\n\t\t\thtmlElem.style.boxShadow = '0px 0px 20px rgba(149, 149, 149, 0.2509803922)';\r\n\t\t});\r\n\t}\r\n\t//quand le document apparait sur les 1/3 de l'ecran on le valide\r\n\tconst observer = (id: string) => {\r\n\t\tpagesRatios.value.push(0);\r\n\t\treturn new IntersectionObserver(\r\n\t\t\t(entries) => {\r\n\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\tconst pageIndex = pages.value.indexOf(id);\r\n\t\t\t\t\tif (pageIndex >= 0) {\r\n\t\t\t\t\t\tpagesRatios.value[pageIndex] = entry.intersectionRatio;\r\n\t\t\t\t\t\tconst consultedPage = pagesRatios.value.indexOf(Math.max(...pagesRatios.value));\r\n\t\t\t\t\t\tif (consultedPage >= 0) {\r\n\t\t\t\t\t\t\tcurrentPage.value = consultedPage + 1;\r\n\t\t\t\t\t\t\temit('currentPage', currentPage.value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ threshold: 0.1 }\r\n\t\t);\r\n\t};\r\n\tconst uuid = () => {\r\n\t\treturn '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>\r\n\t\t\t(+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16)\r\n\t\t);\r\n\t};\r\n\r\n\tArray.from(htmlContainer.getElementsByClassName('stl_')).forEach((element) => {\r\n\t\telement.id = uuid();\r\n\t\tconst elementObserver = observer(element.id);\r\n\t\telementObserver.observe(element);\r\n\t\tpages.value.push(element.id);\r\n\t\tpageNumber.value++;\r\n\t\temit('pageNumber', pageNumber.value);\r\n\t});\r\n\r\n\tif (index != props.documentsCallbacks.length - 1) {\r\n\t\tloadHtmlDoc(index + 1);\r\n\t} else {\r\n\t\t//setConsultedOnScroll();\r\n\t\tinitWheelZoomControl();\r\n\t\tfixDocumentAlignement();\r\n\t\tinitTouchZoomControl();\r\n\t\tallowZoom.value = true;\r\n\t\tnextTick(() => {\r\n\t\t\tupdateFunction.reverse();\r\n\t\t\tif (!screenState.value) {\r\n\t\t\t\tupdateFunction.forEach((func) => func());\r\n\t\t\t\tmanageScreenSize();\r\n\t\t\t\tadjustDocumentContent();\r\n\t\t\t\tnextTick(() => {\r\n\t\t\t\t\tfixDocumentAlignement(true);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tupdateFunction.forEach((func) => func());\r\n\t\t\t}\r\n\t\t\tsetConsultedOnScroll();\r\n\t\t\temitActions();\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction changeLanguageInteraction() {\r\n\tArray.from(document.getElementsByClassName('sign-preview__header-text')).forEach((element) => {\r\n\t\telement.textContent = t('sign.preview');\r\n\t});\r\n\tArray.from(document.getElementsByClassName('sign-preview__date')).forEach((element) => {\r\n\t\telement.textContent = t('sign.the') + ' ' + new Date().toLocaleDateString();\r\n\t});\r\n\tdatepickers.value.forEach((dp) => {\r\n\t\tdp.update({ locale: currentLocale.value == 'fr' ? localeFr : localeEn });\r\n\t});\r\n}\r\n\r\nfunction handleZoomInput(event: Event) {\r\n\tconst target = event.target as HTMLInputElement;\r\n\tif (target != null) {\r\n\t\tconst zoomValue = Number(target.value);\r\n\t\tif (zoomValue != null && zoomValue <= 200 && zoomValue >= 2) {\r\n\t\t\tzoom.value = zoomValue / 100;\r\n\t\t\tfixDocumentAlignement();\r\n\t\t} else {\r\n\t\t\tif (zoomValue != null && zoomValue > 200) zoom.value = 2;\r\n\t\t\telse if (zoomValue != null && zoomValue <= 2) zoom.value = 0.1;\r\n\r\n\t\t\tfixDocumentAlignement();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction initTouchZoomControl() {\r\n\tconst docController = document.getElementById('documentController') as HTMLDivElement;\r\n\tif (docController) {\r\n\t\tdocController.addEventListener('touchstart', (e) => {\r\n\t\t\tif (e.touches.length === 2) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tscalingMobile.value = true;\r\n\t\t\t\tlastTouchDistance = getDistance(e.touches[0], e.touches[1]);\r\n\t\t\t}\r\n\t\t});\r\n\t\tdocController.addEventListener('touchmove', (e) => {\r\n\t\t\tif (e.touches.length === 2 && lastTouchDistance !== null) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst currentTouchDistance = getDistance(e.touches[0], e.touches[1]);\r\n\t\t\t\tconst distanceChange = currentTouchDistance - lastTouchDistance;\r\n\r\n\t\t\t\tzoom.value += distanceChange * 0.005;\r\n\t\t\t\tzoom.value = Math.max(0.1, Math.min(zoom.value, 2));\r\n\t\t\t\tfixDocumentAlignement();\r\n\r\n\t\t\t\tlastTouchDistance = currentTouchDistance;\r\n\t\t\t}\r\n\t\t});\r\n\t\tdocController.addEventListener('touchend', (e) => {\r\n\t\t\tif (e.touches.length < 2) {\r\n\t\t\t\tlastTouchDistance = null;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction initWheelZoomControl() {\r\n\tconst docController = document.getElementById('documentController') as HTMLDivElement;\r\n\tif (docController)\r\n\t\tdocController.addEventListener(\r\n\t\t\t'wheel',\r\n\t\t\t(event) => {\r\n\t\t\t\tif (event.ctrlKey && allowZoom.value) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tconst delta = Math.sign(event.deltaY);\r\n\t\t\t\t\tif (delta > 0) {\r\n\t\t\t\t\t\tzoomControl('decrease');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tzoomControl('increase');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ passive: false }\r\n\t\t);\r\n}\r\n\r\n/**\r\n * Contrôle les bouton + et - pour le zoom\r\n */\r\nfunction zoomControl(type: string) {\r\n\tif (allowZoom.value) {\r\n\t\tif (type == 'decrease') {\r\n\t\t\tif (zoom.value > 0.1 && zoom.value - 0.1 > 0) zoom.value = zoom.value - 0.1;\r\n\t\t} else {\r\n\t\t\tif (zoom.value < 2) zoom.value = zoom.value + 0.1;\r\n\t\t}\r\n\t\tadjustDocumentContent();\r\n\t}\r\n\tfixDocumentAlignement();\r\n}\r\n\r\nfunction getDistance(touch1: Touch, touch2: Touch): number {\r\n\tconst dx = touch1.clientX - touch2.clientX;\r\n\tconst dy = touch1.clientY - touch2.clientY;\r\n\treturn Math.sqrt(dx * dx + dy * dy);\r\n}\r\n\r\nasync function insertInteractionNode(\r\n\tsplittedAction: string[],\r\n\tsignIndex: number,\r\n\twhiteNode: HTMLSpanElement | undefined,\r\n\tfound: HTMLSpanElement,\r\n\thtmlContainer: HTMLDivElement,\r\n\tmatch: string\r\n) {\r\n\tconst isSignatoryAction = splittedAction[0] == `s${signIndex}`;\r\n\tconst currentIndex: number = +splittedAction[0].replaceAll('s', '');\r\n\r\n\tif (\r\n\t\tsplittedAction.length > 0 &&\r\n\t\tprops.webdoc\r\n\t\t//&& props.webdoc.recipients[currentIndex - 1].id == props.webdoc.signatory.id\r\n\t) {\r\n\t\tlet top =\r\n\t\t\twhiteNode == undefined\r\n\t\t\t\t? found.getBoundingClientRect().top - htmlContainer.getBoundingClientRect().top\r\n\t\t\t\t: whiteNode.getBoundingClientRect().top - htmlContainer.getBoundingClientRect().top;\r\n\t\tconst left =\r\n\t\t\twhiteNode == undefined\r\n\t\t\t\t? found.getBoundingClientRect().left - htmlContainer.getBoundingClientRect().left\r\n\t\t\t\t: whiteNode.getBoundingClientRect().left - htmlContainer.getBoundingClientRect().left; //on recupere les coordonées de l'élément à mettre\r\n\t\tlet node = '';\r\n\t\tlet action: WebdocAction = {\r\n\t\t\ttag: match,\r\n\t\t\tvalue: '',\r\n\t\t\ttype: 'Signature',\r\n\t\t};\r\n\t\tlet interactionIndex = -1;\r\n\t\tconst mappedAction = props.webdoc.interactions.find((elem, index) => {\r\n\t\t\tif (elem.tag == match) {\r\n\t\t\t\tinteractionIndex = index;\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\t\t}); //on recupere les interactions qui sont dans salesforce\r\n\t\tif (props.webdoc.recipientsInteractions) {\r\n\t\t\tconst interactionMap = new Map<string, WebdocInteractionApprovalList>(\r\n\t\t\t\tObject.entries(JSON.parse(props.webdoc.recipientsInteractions))\r\n\t\t\t);\r\n\t\t\tif (!isSignatoryAction) {\r\n\t\t\t\tconst interaction = interactionMap.get(props.webdoc.recipients[currentIndex - 1].id);\r\n\t\t\t\tif (interaction) {\r\n\t\t\t\t\tinteraction.data.forEach((interactionApproval) => {\r\n\t\t\t\t\t\tif (interactionApproval.tag == match) {\r\n\t\t\t\t\t\t\tif (mappedAction && props.webdoc != undefined) {\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\tprops.webdoc.recipients[currentIndex - 1].status.toLocaleLowerCase() == 'signed' &&\r\n\t\t\t\t\t\t\t\t\tinteractionApproval.value != null\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tmappedAction.value = interactionApproval.value;\r\n\t\t\t\t\t\t\t\t\tmappedAction.isAutofilled = true;\r\n\t\t\t\t\t\t\t\t} else if (interactionApproval.oldValue != null) {\r\n\t\t\t\t\t\t\t\t\tmappedAction.value = interactionApproval.oldValue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (mappedAction) {\r\n\t\t\tconsultation.value = false; // on définit que ce webdoc n'est pas fait pour etre que consulté\r\n\t\t\tif (splittedAction.length == 1) {\r\n\t\t\t\t//si c'est une signature\r\n\t\t\t\t//si c'est la signature de l'utilisateur actuel ou si c'est la signature d'un autre utilisateur\r\n\t\t\t\tif (\r\n\t\t\t\t\tisSignatoryAction ||\r\n\t\t\t\t\t(!isSignatoryAction && props.recipients[currentIndex - 1].status.toLocaleLowerCase() == 'signed')\r\n\t\t\t\t) {\r\n\t\t\t\t\tnode = InteractionFormat.getSignPreview(\r\n\t\t\t\t\t\tprops.recipients[currentIndex - 1].firstName +\r\n\t\t\t\t\t\t\t' ' +\r\n\t\t\t\t\t\t\tprops.webdoc.recipients[currentIndex - 1].lastName,\r\n\t\t\t\t\t\tmappedAction.width.toString(),\r\n\t\t\t\t\t\tmappedAction.height.toString(),\r\n\t\t\t\t\t\ttop.toString(),\r\n\t\t\t\t\t\tleft.toString(),\r\n\t\t\t\t\t\tisSignatoryAction\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (isSignatoryAction) signature.value = true; //on définit que le document doit être signé par la personne\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlet tooltip = !isSignatoryAction\r\n\t\t\t\t\t? (props.recipients[currentIndex - 1].status.toLocaleLowerCase() == 'signed'\r\n\t\t\t\t\t\t\t? t('webdoc.filledBy')\r\n\t\t\t\t\t\t\t: t('webdoc.fillBy')) +\r\n\t\t\t\t\t props.recipients[currentIndex - 1].firstName +\r\n\t\t\t\t\t ' ' +\r\n\t\t\t\t\t props.recipients[currentIndex - 1].lastName\r\n\t\t\t\t\t: mappedAction.instruction == null || mappedAction.instruction.length == 0\r\n\t\t\t\t\t? t('webdoc.fillByYou')\r\n\t\t\t\t\t: mappedAction.instruction;\r\n\t\t\t\tif (mappedAction.type == 'checkbox') mappedAction.height = mappedAction.width; //on définit la height à la même taille que la width\r\n\t\t\t\tinteraction.value = true; // on définit qu'il y a des interractions\r\n\t\t\t\tif (mappedAction.height <= 24 || mappedAction.type == 'checkbox')\r\n\t\t\t\t\ttop =\r\n\t\t\t\t\t\ttop +\r\n\t\t\t\t\t\t(whiteNode == undefined\r\n\t\t\t\t\t\t\t? found.getBoundingClientRect().height / 2 - mappedAction.height / 2\r\n\t\t\t\t\t\t\t: whiteNode.getBoundingClientRect().height) /\r\n\t\t\t\t\t\t\t2 -\r\n\t\t\t\t\t\tmappedAction.height / 2;\r\n\r\n\t\t\t\tconst interactionFormat = new InteractionFormat(\r\n\t\t\t\t\ttop,\r\n\t\t\t\t\tleft,\r\n\t\t\t\t\tmappedAction,\r\n\t\t\t\t\taction,\r\n\t\t\t\t\tisSignatoryAction,\r\n\t\t\t\t\tinteractionIndex,\r\n\t\t\t\t\ttooltip,\r\n\t\t\t\t\tprops.isWebdoc,\r\n\t\t\t\t\tprops.recipients,\r\n\t\t\t\t\tprops.isWebdoc ? currentIndex : -1\r\n\t\t\t\t);\r\n\t\t\t\t[node, action] = interactionFormat.getNode();\r\n\t\t\t}\r\n\t\t\tif (props.isWebdoc && isSignatoryAction) actions.value.push(action);\r\n\r\n\t\t\thtmlContainer.insertAdjacentHTML('afterbegin', node);\r\n\r\n\t\t\tif (interactionIndex >= 0 && splittedAction.length > 1) {\r\n\t\t\t\tconst interaction = document.getElementById(`interaction-${interactionIndex}`);\r\n\r\n\t\t\t\tif (interaction) {\r\n\t\t\t\t\tif (isSignatoryAction) {\r\n\t\t\t\t\t\tconst index = actions.value.length - 1;\r\n\t\t\t\t\t\tif (mappedAction.type == 'checkbox' || mappedAction.type == 'picklist') {\r\n\t\t\t\t\t\t\tinteraction.addEventListener('change', (ev) => {\r\n\t\t\t\t\t\t\t\tif (mappedAction.type == 'checkbox') {\r\n\t\t\t\t\t\t\t\t\tconst interactionInput = ev.target as HTMLInputElement;\r\n\t\t\t\t\t\t\t\t\tactions.value[index].value = interactionInput.checked.toString();\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconst interactionInput = ev.target as HTMLSelectElement;\r\n\t\t\t\t\t\t\t\t\tactions.value[index].value = interactionInput.value.toString();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\temitActions();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else if (mappedAction.type == 'date') {\r\n\t\t\t\t\t\t\tconst selectedDate = new Date(action.value);\r\n\t\t\t\t\t\t\tconst changeDateValue = (value: string) => {\r\n\t\t\t\t\t\t\t\tactions.value[index].value = value;\r\n\t\t\t\t\t\t\t\temitActions();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tconst airpicker = new AirDatepicker(interaction, {\r\n\t\t\t\t\t\t\t\tmultipleDates: false,\r\n\t\t\t\t\t\t\t\tselectedDates:\r\n\t\t\t\t\t\t\t\t\tmappedAction.isAutofilled && action.value != '' && action.value != null\r\n\t\t\t\t\t\t\t\t\t\t? [selectedDate]\r\n\t\t\t\t\t\t\t\t\t\t: false,\r\n\t\t\t\t\t\t\t\tdateFormat: 'yyyy-MM-dd',\r\n\t\t\t\t\t\t\t\tlocale: currentLocale.value == 'fr' ? localeFr : localeEn,\r\n\t\t\t\t\t\t\t\tonSelect({ date, formattedDate, datepicker }) {\r\n\t\t\t\t\t\t\t\t\tif (typeof formattedDate === 'string') changeDateValue(formattedDate);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tdatepickers.value.push(airpicker);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tinteraction.addEventListener('input', (ev) => {\r\n\t\t\t\t\t\t\t\tconst interactionInput = ev.target as HTMLTextAreaElement;\r\n\t\t\t\t\t\t\t\tactions.value[index].value = interactionInput.value.toString();\r\n\t\t\t\t\t\t\t\temitActions();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif (mappedAction.type == 'number') {\r\n\t\t\t\t\t\t\t\tinteraction.addEventListener('wheel', (ev) => {\r\n\t\t\t\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tinteraction.addEventListener('beforeinput', (ev) => {\r\n\t\t\t\t\t\t\t\t\tconst data = ev.data;\r\n\t\t\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\t\t\tconst isAllow = /\\d|\\./.test(data);\r\n\t\t\t\t\t\t\t\t\t\tif (!isAllow) {\r\n\t\t\t\t\t\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\temit('webdocMode', consultation.value, interaction.value, signature.value);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction setConsultedOnScroll() {\r\n\tlet documentViewGlobal = document.getElementById('docView');\r\n\tif (documentViewGlobal) {\r\n\t\tconst consultedFunction = () => {\r\n\t\t\tconst documentView = document.getElementById('docView');\r\n\t\t\tif (documentView == null) return;\r\n\t\t\tconst hasVerticalScrollbar = documentView.scrollHeight > documentView.clientHeight;\r\n\r\n\t\t\tconst scrollStage = documentView.scrollHeight - documentView.offsetHeight;\r\n\t\t\tconst percetenage = (100 * documentView.scrollTop) / scrollStage;\r\n\r\n\t\t\tif (progression.value < percetenage) {\r\n\t\t\t\tprogression.value = percetenage;\r\n\r\n\t\t\t\tArray.from(document.getElementsByClassName('sign-btn')).forEach((element) => {\r\n\t\t\t\t\t(element as HTMLElement).style.setProperty('--progression', `${progression.value}%`);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tdocumentView.scrollTop == scrollStage ||\r\n\t\t\t\tdocumentView.scrollTop + 2 >= scrollStage ||\r\n\t\t\t\t!hasVerticalScrollbar\r\n\t\t\t) {\r\n\t\t\t\temit('consulted');\r\n\t\t\t}\r\n\t\t};\r\n\t\tdocumentViewGlobal.addEventListener('scroll', consultedFunction);\r\n\t\tnextTick(() => {\r\n\t\t\tconsultedFunction();\r\n\t\t});\r\n\t\tconsultedFunction();\r\n\t}\r\n}\r\n\r\nfunction emitActions() {\r\n\temit('actions', actions.value);\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"documentView\",\n ref_key: \"docView\",\n ref: docView,\n id: \"docView\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('sign.scroll')), 1),\n _hoisted_6,\n _createTextVNode(_toDisplayString(_ctx.$t('sign.scrollToBottom')), 1)\n ]),\n _hoisted_7\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n (_unref(screenState))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"zoom-control__minus\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (zoomControl('decrease')))\n }, _hoisted_12),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"input\", {\n value: Math.round(_unref(zoom) * 100),\n onChange: _cache[1] || (_cache[1] = ($event: any) => (handleZoomInput($event))),\n onFocusout: _cache[2] || (_cache[2] = ($event: any) => (handleZoomInput($event))),\n type: \"number\"\n }, null, 40, _hoisted_14),\n _createTextVNode(\" % \")\n ]),\n _createElementVNode(\"button\", {\n class: \"zoom-control__plus\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (zoomControl('increase')))\n }, _hoisted_16)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"webdoc-button --menu\", {\r\n\t\t\t\t\t\t\t'--dark': __props.menuOpen,\r\n\t\t\t\t\t\t}]),\n onClick: toggleMenu\n }, [\n (!__props.menuOpen)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_17))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_18)),\n _createElementVNode(\"div\", _hoisted_19, _toDisplayString(_ctx.$t('sign.menu')), 1)\n ], 2)),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _withDirectives(_createElementVNode(\"select\", {\n name: \"lang\",\n id: \"\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.$i18n.locale) = $event)),\n onClick: changeLanguageInteraction\n }, _hoisted_24, 512), [\n [_vModelSelect, _ctx.$i18n.locale]\n ])\n ])\n ])\n ], 512),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"div\", _hoisted_27, [\n _withDirectives(_createElementVNode(\"select\", {\n name: \"lang\",\n id: \"\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.$i18n.locale) = $event)),\n onClick: changeLanguageInteraction\n }, _hoisted_30, 512), [\n [_vModelSelect, _ctx.$i18n.locale]\n ])\n ])\n ])\n ], 512)\n ]),\n _createElementVNode(\"div\", {\n class: \"doc-info\",\n title: __props.webdoc.name\n }, [\n _createElementVNode(\"div\", _hoisted_32, _toDisplayString(__props.webdoc.name), 1),\n (_unref(screenState))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_33, _toDisplayString(_ctx.$t('sign.hasBeenSent')) + \" \" + _toDisplayString(new Date(__props.webdoc.createdDate).toLocaleDateString()), 1))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_31),\n _createElementVNode(\"div\", _hoisted_34, [\n _withDirectives(_createElementVNode(\"div\", {\n id: \"documentContent\",\n ref_key: \"docContent\",\n ref: docContent,\n style: _normalizeStyle({\r\n\t\t\t\t\t\ttransform: `scale(${_unref(zoom)})`,\r\n\t\t\t\t\t\t//'border-right': `solid ${zoom != 1 ? zoom ** 6 : 0}px transparent`,\r\n\t\t\t\t\t})\n }, null, 4), [\n [_vShow, !_unref(docLoading)]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, \"Page \" + _toDisplayString(_unref(currentPage)) + \"/\" + _toDisplayString(_unref(pageNumber)), 1)\n ])\n ])\n ]),\n (_unref(docLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_39))\n : _createCommentVNode(\"\", true)\n ], 512)\n ], 512))\n}\n}\n\n})","import script from \"./DocumentViewer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DocumentViewer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./DocumentViewer.vue?vue&type=style&index=0&id=7e27b8f9&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7e27b8f9\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/file_blue.svg'\nimport _imports_1 from '@/assets/svg/paper_clip_blue.svg'\nimport _imports_2 from '@/assets/svg/sign_pen_lightred.svg'\nimport _imports_3 from '@/assets/svg/check_white_new.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d9aef94\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"sign-container__infos\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"doc-info--subtitle\" }\nconst _hoisted_4 = { class: \"doc-info--title\" }\nconst _hoisted_5 = { class: \"contact--logo\" }\nconst _hoisted_6 = { class: \"contact--logo\" }\nconst _hoisted_7 = { class: \"document-text\" }\nconst _hoisted_8 = {\n key: 0,\n src: _imports_0\n}\nconst _hoisted_9 = {\n key: 1,\n src: _imports_1,\n alt: \"\"\n}\nconst _hoisted_10 = [\"title\"]\nconst _hoisted_11 = { class: \"sign-container__btn\" }\nconst _hoisted_12 = [\"disabled\", \"data-text\"]\nconst _hoisted_13 = {\n key: 0,\n src: _imports_2,\n alt: \"\"\n}\nconst _hoisted_14 = {\n key: 1,\n src: _imports_3,\n alt: \"\"\n}\nconst _hoisted_15 = { class: \"sign-btn__text\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"app-spinner --small\"\n}\nconst _hoisted_17 = {\n key: 1,\n class: \"consultation-text\"\n}\nconst _hoisted_18 = { class: \"sign-footer__stage\" }\nconst _hoisted_19 = [\"disabled\", \"data-text\"]\nconst _hoisted_20 = {\n key: 0,\n src: _imports_2,\n alt: \"\"\n}\nconst _hoisted_21 = {\n key: 1,\n src: _imports_3,\n alt: \"\"\n}\nconst _hoisted_22 = { class: \"sign-btn--text\" }\nconst _hoisted_23 = {\n key: 2,\n class: \"app-spinner --small\"\n}\n\nimport { StakeHolder, Webdoc, WebdocBranding } from '@/types/webdoc.type';\r\nimport { nextTick, onMounted, PropType, ref } from 'vue';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SignPane',\n props: {\r\n\twebdoc: Object as PropType<Webdoc>,\r\n\twebdocBranding: {\r\n\t\ttype: Object as PropType<WebdocBranding>,\r\n\t\trequired: false,\r\n\t\tdefault: undefined,\r\n\t},\r\n\tmenuOpen: Boolean,\r\n\tscreenState: Boolean,\r\n\tsignature: Boolean,\r\n\tsignatureLoaded: Boolean,\r\n\tconsultation: Boolean,\r\n\tconsulted: Boolean,\r\n\tinteraction: Boolean,\r\n\tcurrentPage: Number,\r\n\tpageNumber: Number,\r\n},\n emits: ['openValidationScreen'],\n setup(__props, { emit: emits }) {\n\nconst props = __props;\n\r\nconst buttonStyles = ref<{ [key: string]: string | undefined }>({});\r\n\r\n\r\n\r\n\r\n\r\nonMounted(() => {\r\n\tif (props.webdocBranding?.Button || props.webdocBranding?.ButtonText) {\r\n\t\tbuttonStyles.value = {\r\n\t\t\tbackgroundColor: props.webdocBranding.Button ? props.webdocBranding.Button : undefined,\r\n\t\t\tcolor: props.webdocBranding.ButtonText ? props.webdocBranding.ButtonText : undefined,\r\n\t\t};\r\n\t}\r\n});\r\n\r\nfunction nameToIcon(name: string): string {\r\n\tlet majs = '';\r\n\tlet count = 0;\r\n\tconst specialChar = /[ `!@#$%^&*()_+\\-=\\\\[\\]{};':\"\\\\|,.<>\\\\/?~]/;\r\n\tfor (let i = 0; i < name.length; i++) {\r\n\t\tif (name[i] == name[i].toUpperCase() && !specialChar.test(name[i])) {\r\n\t\t\tcount++;\r\n\t\t\tmajs += name[i];\r\n\t\t\tif (count >= 2) break;\r\n\t\t}\r\n\t}\r\n\r\n\tif (count < 2) {\r\n\t\tmajs = name.substring(0, 2);\r\n\t}\r\n\r\n\treturn majs;\r\n}\r\n\r\nfunction getRecipients(stakeHolder: StakeHolder[]): StakeHolder[] {\r\n\treturn stakeHolder.filter((x) => x.type != 'Owner');\r\n}\r\n\r\nfunction logoStyle() {\r\n\tconst sizes = {\r\n\t\tS: '100px',\r\n\t\tM: '180px',\r\n\t\tL: '250px',\r\n\t};\r\n\treturn { width: sizes[props.webdocBranding?.LogoSize as keyof typeof sizes] || 'auto' };\r\n}\r\n\r\nfunction openValidationScreen() {\r\n\temits('openValidationScreen');\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"sign-container\", {\r\n\t\t\t'--menu': !__props.screenState,\r\n\t\t}]),\n style: _normalizeStyle({\r\n\t\t\tleft: __props.menuOpen || __props.screenState ? '0px' : '-100%',\r\n\t\t\t'background-color': __props.webdocBranding?.Background ? __props.webdocBranding.Background : undefined,\r\n\t\t\tcolor: __props.webdocBranding?.Text ? __props.webdocBranding.Text : undefined,\r\n\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (__props.webdocBranding?.Logo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"company-logo\",\n src: __props.webdocBranding.Logo,\n alt: \"Company Logo\",\n style: _normalizeStyle(logoStyle())\n }, null, 12, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"doc-info\",\n style: _normalizeStyle({\r\n\t\t\t\t\t'border-bottom': __props.webdocBranding?.Logo ? 'none' : undefined,\r\n\t\t\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('sign.youSigned')), 1),\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(__props.webdoc?.signatory.firstName) + \" \" + _toDisplayString(__props.webdoc?.signatory.lastName), 1)\n ], 4),\n _createElementVNode(\"div\", {\n class: \"sign-pane\",\n style: _normalizeStyle({\r\n\t\t\t\t\tcolor: __props.webdocBranding?.Text ? __props.webdocBranding.Text : undefined,\r\n\t\t\t\t})\n }, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('sign.sender')), 1),\n _createElementVNode(\"div\", {\n class: \"contact expediteur\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t'background-color': __props.webdocBranding?.Button ? __props.webdocBranding.Button : undefined,\r\n\t\t\t\t\t\tcolor: __props.webdocBranding?.ButtonText ? __props.webdocBranding.ButtonText : undefined,\r\n\t\t\t\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(nameToIcon((__props.webdoc?.owner?.firstName || '') + (__props.webdoc?.owner?.lastName || ''))), 1),\n _createElementVNode(\"p\", null, _toDisplayString(__props.webdoc?.owner.firstName) + \" \" + _toDisplayString(__props.webdoc?.owner.lastName), 1)\n ], 4),\n _createElementVNode(\"p\", null, _toDisplayString((__props.webdoc?.recipients?.length ?? 0) > 1 ? _ctx.$t('sign.recipients') : _ctx.$t('sign.recipient')), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getRecipients(__props.webdoc?.recipients ?? []), (destinataire) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"contact\",\n key: destinataire.id,\n style: _normalizeStyle({\r\n\t\t\t\t\t\t'background-color': __props.webdocBranding?.Button ? __props.webdocBranding.Button : undefined,\r\n\t\t\t\t\t\tcolor: __props.webdocBranding?.ButtonText ? __props.webdocBranding.ButtonText : undefined,\r\n\t\t\t\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(nameToIcon(destinataire.firstName + ' ' + destinataire.lastName)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(destinataire.firstName) + \" \" + _toDisplayString(destinataire.lastName), 1)\n ], 4))\n }), 128)),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('sign.document')), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.webdoc?.contentDocuments, (doc, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: doc.id,\n class: _normalizeClass([\"file\", {\r\n\t\t\t\t\t\t'--attach': index != 0,\r\n\t\t\t\t\t}]),\n style: _normalizeStyle({\r\n\t\t\t\t\t\t'background-color': __props.webdocBranding?.Button ? __props.webdocBranding.Button : undefined,\r\n\t\t\t\t\t\tcolor: __props.webdocBranding?.ButtonText ? __props.webdocBranding.ButtonText : undefined,\r\n\t\t\t\t\t})\n }, [\n (index == 0)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_8))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_9)),\n _createElementVNode(\"p\", {\n title: doc.title\n }, _toDisplayString(doc.title), 9, _hoisted_10)\n ], 6))\n }), 128))\n ], 4)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n (!__props.consultation)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n disabled: __props.consulted != true && __props.signatureLoaded == true,\n class: _normalizeClass(['gnx-btn _primary sign-btn', { 'branded-btn': __props.webdocBranding?.Button }]),\n onClick: openValidationScreen,\n \"data-text\": __props.signatureLoaded ? (__props.signature ? _ctx.$t('sign.sign') : _ctx.$t('sign.validate')) : '',\n id: \"sign-btn\",\n style: _normalizeStyle(buttonStyles.value)\n }, [\n (__props.signature)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_13))\n : (__props.interaction)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_14))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_15, _toDisplayString(__props.signatureLoaded ? (__props.signature ? _ctx.$t('sign.sign') : _ctx.$t('sign.validate')) : ''), 1),\n (!__props.signatureLoaded)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16))\n : _createCommentVNode(\"\", true)\n ], 14, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (!__props.consultation && __props.signature && !__props.consulted)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('sign.checkTheDocument')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ], 6),\n (!__props.screenState)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"sign-footer\",\n style: _normalizeStyle({\r\n\t\t\t'background-color': __props.webdocBranding?.Background ? __props.webdocBranding.Background : undefined,\r\n\t\t\tcolor: __props.webdocBranding?.Text ? __props.webdocBranding.Text : undefined,\r\n\t\t})\n }, [\n _createElementVNode(\"p\", _hoisted_18, \"Page \" + _toDisplayString(__props.currentPage) + \"/\" + _toDisplayString(__props.pageNumber), 1),\n (!__props.consultation)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass(['gnx-btn _primary sign-btn', { 'branded-btn': __props.webdocBranding?.Button }]),\n disabled: __props.consulted != true && __props.signatureLoaded == true,\n onClick: openValidationScreen,\n \"data-text\": __props.signatureLoaded ? (__props.signature ? _ctx.$t('sign.sign') : _ctx.$t('sign.validate')) : '',\n id: \"sign-btn\",\n style: _normalizeStyle(buttonStyles.value)\n }, [\n (__props.signature)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_20))\n : (__props.interaction)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_21))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_22, _toDisplayString(__props.signatureLoaded ? (__props.signature ? _ctx.$t('sign.sign') : _ctx.$t('sign.validate')) : ''), 1),\n (!__props.signatureLoaded)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23))\n : _createCommentVNode(\"\", true)\n ], 14, _hoisted_19))\n : _createCommentVNode(\"\", true)\n ], 4))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./SignPane.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SignPane.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SignPane.vue?vue&type=style&index=0&id=8d9aef94&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d9aef94\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, isRef as _isRef, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-60b429eb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"page\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"content\"\n}\nconst _hoisted_3 = {\n key: 5,\n class: \"app-spinner\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"hover-loader\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-spinner\" }, null, -1))\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { useI18n } from 'vue-i18n';\r\nimport WebdocService from '@/services/webdoc.service';\r\nimport { StakeHolder, Webdoc, WebdocAction, WebdocBranding, WebdocInteraction } from '@/types/webdoc.type';\r\nimport { useToast } from 'vue-toastification';\r\nimport { AxiosError } from 'axios';\r\nimport WebdocPopup from './WebdocPopup.vue';\r\nimport WebdocError from './WebdocError.vue';\r\nimport { useRoute } from 'vue-router';\r\nimport { onMounted, ref } from 'vue';\r\nimport DocumentViewer from './DocumentViewer.vue';\r\nimport SignPane from '@/components/sign/SignPane.vue';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SignView',\n setup(__props) {\n\r\nconst { availableLocales, locale: currentLocale, t, messages: currentMessages } = useI18n({ useScope: 'global' });\r\nconst route = useRoute();\r\nconst toast = useToast();\r\nlet webdoc = ref<Webdoc | undefined>(undefined);\r\nlet webdocToken = ref<string>('');\r\nconst actions = ref<WebdocAction[]>([]);\r\nconst interactions = ref<WebdocInteraction[]>([]);\r\nconst recipients = ref<StakeHolder[]>([]);\r\nconst documentFunctions = ref<(() => Promise<[string, string]>)[]>([]);\r\nlet currentPage = ref<number>(0);\r\nlet pageNumber = ref<number>(0);\r\nconst webdocBranding = ref<WebdocBranding>({\r\n\tLogo: '',\r\n\tLogoSize: '',\r\n\tBackground: '',\r\n\tText: '',\r\n\tButton: '',\r\n\tButtonText: '',\r\n});\r\n\r\n// mode du webdoc\r\nconst consultation = ref<boolean>(true);\r\nconst interaction = ref<boolean>(false);\r\nconst signature = ref<boolean>(false);\r\n\r\n//status pour les chargements\r\nconst signatureLoaded = ref<boolean>(true);\r\nconst webdocLoaded = ref<boolean>(false);\r\n\r\n//status divers\r\nconst consulted = ref<boolean>(false);\r\nconst expired = ref<boolean>(false);\r\nconst validation = ref<boolean>(false);\r\nconst hasEveryStakeHolderSigned = ref<boolean>(false);\r\nconst menuOpen = ref<boolean>(false);\r\nconst screenState = ref<boolean>(true);\r\n\r\nconst error = ref<string | undefined>(undefined);\r\n\r\nonMounted(async () => {\r\n\twebdocToken.value = route.params.token.toString();\r\n\tawait WebdocService.getWebdoc(webdocToken.value)\r\n\t\t.then((result) => {\r\n\t\t\t(result as Webdoc).contentDocuments.forEach((doc) => {\r\n\t\t\t\tdocumentFunctions.value.push(async () => {\r\n\t\t\t\t\tconst docData = await WebdocService.getBlobFromContentId(webdocToken.value, doc.id);\r\n\t\t\t\t\treturn [docData, doc.id];\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\twebdoc.value = result;\r\n\t\t\tif (webdoc.value.status.toLocaleLowerCase() == 'expired') {\r\n\t\t\t\texpired.value = true;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch((err) => {\r\n\t\t\tconsole.error(err);\r\n\t\t\tif (err.response) {\r\n\t\t\t\tconsole.error('Erreur lors de la récuperation de signature ');\r\n\t\t\t\tconsole.error(`Erreur : ${err.response.data}`);\r\n\t\t\t\tswitch (err.response.data) {\r\n\t\t\t\t\tcase 'WebdocExpired': {\r\n\t\t\t\t\t\texpired.value = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'NoWebdocFound': {\r\n\t\t\t\t\t\terror.value = 'error.webdocNotFound';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'NoStakeholdersFound': {\r\n\t\t\t\t\t\terror.value = 'error.webdocnoStakeHolders';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase 'NoContentDocument': {\r\n\t\t\t\t\t\terror.value = 'error.webdocNoContentDocument';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\terror.value = 'error.webdocError';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\terror.value = 'error.webdocError';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\tawait WebdocService.getWebdocBranding(webdocToken.value)\r\n\t\t.then((branding) => {\r\n\t\t\tif (branding && branding != '') webdocBranding.value = JSON.parse(branding);\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error(error);\r\n\t\t});\r\n\r\n\tif (webdoc.value) {\r\n\t\twindow.document.title = webdoc.value.name;\r\n\r\n\t\tsetWebdocMode();\r\n\t\thasEveryStakeHolderSigned.value = webdoc.value.recipients.every(\r\n\t\t\t(stakeHolder) =>\r\n\t\t\t\t!hasInteraction(stakeHolder) || stakeHolder.type == 'Owner' || stakeHolder.status == 'signed'\r\n\t\t);\r\n\t\tif (\r\n\t\t\t!webdoc.value.recipients.every(\r\n\t\t\t\t(stakeHolder) => stakeHolder.type == 'Owner' || stakeHolder.status == 'signed'\r\n\t\t\t) &&\r\n\t\t\t!expired.value\r\n\t\t) {\r\n\t\t\tinteractions.value = webdoc.value.interactions;\r\n\t\t\trecipients.value = webdoc.value.recipients;\r\n\t\t}\r\n\t\twebdocLoaded.value = true;\r\n\t}\r\n});\r\n\r\nfunction hasInteraction(stakeholder: StakeHolder): boolean {\r\n\tif (webdoc.value) {\r\n\t\tlet hasInteraction = false;\r\n\t\tconst signIndex = webdoc.value.recipients.findIndex((elem) => elem.id == stakeholder.id) + 1;\r\n\r\n\t\twebdoc.value.interactions.forEach((interaction) => {\r\n\t\t\tif (interaction.recipient == `s${signIndex}`) {\r\n\t\t\t\thasInteraction = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn hasInteraction;\r\n\t} else {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nfunction handleActions(webdocActions: WebdocAction[]) {\r\n\tactions.value = webdocActions;\r\n}\r\n\r\nfunction handleConsulted() {\r\n\tconsulted.value = true;\r\n}\r\n\r\nfunction handleScreenState(state: boolean) {\r\n\tscreenState.value = state;\r\n}\r\n\r\nfunction handleWebdocMode(consult: boolean, inter: boolean, sign: boolean) {\r\n\tconsultation.value = consult;\r\n\tinteraction.value = inter;\r\n\tsignature.value = sign;\r\n}\r\n\r\nasync function closeWebdocPopup() {\r\n\tvalidation.value = false;\r\n}\r\nfunction setWebdocMode() {\r\n\tif (webdoc.value) {\r\n\t\tconst signIndex = webdoc.value.recipients.findIndex((elem) => elem.id == webdoc.value?.signatory.id) + 1;\r\n\t\twebdoc.value.interactions.forEach((interact) => {\r\n\t\t\tif (interact.recipient == `s${signIndex}`) {\r\n\t\t\t\tconsultation.value = false;\r\n\t\t\t\tconst splittedTag = interact.tag.replace('{!', '').replace('}', '').split('|');\r\n\t\t\t\tif (splittedTag.length == 1) {\r\n\t\t\t\t\tsignature.value = true;\r\n\t\t\t\t} else if (splittedTag.length > 1) {\r\n\t\t\t\t\tinteraction.value = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (!interaction.value && !signature.value) consultation.value = true;\r\n\t}\r\n}\r\n\r\nfunction openValidationScreen() {\r\n\tlet hasEveryRequiredInteractionBeenFilled = true;\r\n\tactions.value.forEach((action) => {\r\n\t\tif (webdoc.value) {\r\n\t\t\tconst mappedAction = webdoc.value.interactions.find((elem) => {\r\n\t\t\t\tif (elem.tag == action.tag) return elem;\r\n\t\t\t});\r\n\t\t\tif (\r\n\t\t\t\tmappedAction &&\r\n\t\t\t\tmappedAction.isOptional &&\r\n\t\t\t\taction.value != null &&\r\n\t\t\t\taction.value.match(/^ *$/) !== null\r\n\t\t\t) {\r\n\t\t\t\tconsole.error(`📑 Le champ \"${mappedAction.name}\" ne semble pas rempli`);\r\n\t\t\t\thasEveryRequiredInteractionBeenFilled = false;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tif (hasEveryRequiredInteractionBeenFilled) validation.value = true;\r\n\telse {\r\n\t\ttoast.error(t('sign.fieldMissing'));\r\n\t}\r\n}\r\n\r\nfunction mailToOwner() {\r\n\tif (webdoc.value) {\r\n\t\twindow.location.href = `mailto:${\r\n\t\t\twebdoc.value.recipients.filter((recipient) => recipient.type.toLocaleLowerCase() == 'owner')[0].email\r\n\t\t}`;\r\n\t}\r\n}\r\n\r\nasync function setDocumentSigned() {\r\n\tconst webdocToken = route.params.token.toString();\r\n\tsignatureLoaded.value = false;\r\n\tlet hasEveryRequiredInteractionBeenFilled = true;\r\n\tactions.value.forEach((action) => {\r\n\t\tif (webdoc.value) {\r\n\t\t\tconst mappedAction = webdoc.value.interactions.find((elem) => {\r\n\t\t\t\tif (elem.tag == action.tag) return elem;\r\n\t\t\t});\r\n\t\t\tif (\r\n\t\t\t\tmappedAction &&\r\n\t\t\t\tmappedAction.isOptional &&\r\n\t\t\t\taction.value != null &&\r\n\t\t\t\taction.value.match(/^ *$/) !== null\r\n\t\t\t) {\r\n\t\t\t\thasEveryRequiredInteractionBeenFilled = false;\r\n\t\t\t\ttoast.error(t('sign.fieldMissing'));\r\n\t\t\t\tsignatureLoaded.value = true;\r\n\t\t\t\tvalidation.value = false;\r\n\t\t\t\tactions.value = [];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tif (hasEveryRequiredInteractionBeenFilled)\r\n\t\tawait WebdocService.setWebdocSign(webdocToken, actions.value)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (webdoc.value) {\r\n\t\t\t\t\twebdoc.value.signatory.status = 'signed';\r\n\t\t\t\t\twebdoc.value.recipients.forEach((recipient) => {\r\n\t\t\t\t\t\tif (recipient.email == webdoc.value?.signatory.email)\r\n\t\t\t\t\t\t\trecipient.status = webdoc.value.signatory.status;\r\n\t\t\t\t\t});\r\n\t\t\t\t\thasEveryStakeHolderSigned.value = webdoc.value.recipients.every(\r\n\t\t\t\t\t\t(stakeHolder) => stakeHolder.type == 'Owner' || stakeHolder.status == 'signed'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tif (error.response)\r\n\t\t\t\t\tswitch (error.response.data) {\r\n\t\t\t\t\t\tcase 'AlreadySign': {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocAlreadySign'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'ActionAlreadyRegistred': {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocActionAlreadyRegistred'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'WebdocExpired': {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocExpired'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'NoStakeholdersFound': {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocExpired'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'NoWebdocFound': {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocNotFound'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\t\ttoast.error(t('error.webdocSignatureError'));\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsignatureLoaded.value = true;\r\n\t\t\t});\r\n}\r\n\r\n/**\r\n * Fait télécharger la facture en PDF\r\n * @param facture La facture associé à un contrat\r\n */\r\nasync function downloadWebdocPDF() {\r\n\t// if (\r\n\t// \t!consultation &&\r\n\t// \t!webdoc?.recipients.every(\r\n\t// \t\t(stakeHolder) =>\r\n\t// \t\t\t!hasInteraction(stakeHolder) || stakeHolder.type == 'Owner' || stakeHolder.status == 'signed'\r\n\t// \t)\r\n\t// ) {\r\n\t// \tconsole.log(\"📑 Erreur de téléchargement d'un webdoc : Tous les signataires n'ont pas signé\");\r\n\t// \tconsole.log('Consultation : ' + consultation);\r\n\t// \tconsole.log('Webdoc : ' + webdoc?.recipients);\r\n\t// \ttoast.error($t('error.webdocNotDone'));\r\n\t// \treturn;\r\n\t// } else {\r\n\ttoast.info(t('webdoc.downloading'));\r\n\tawait WebdocService.getWebdocFile(webdocToken.value)\r\n\t\t.then((versionData) => {\r\n\t\t\tconst fileURL = URL.createObjectURL(versionData);\r\n\t\t\tconst link = document.createElement('a');\r\n\t\t\tlink.href = fileURL;\r\n\t\t\tlink.download = webdoc.value?.contentDocuments[0].title + '.pdf';\r\n\t\t\tlink.click();\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tswitch (error.response.data) {\r\n\t\t\t\tcase 'NotSigned': {\r\n\t\t\t\t\ttoast.error(t('error.webdocEveryoneMustSigned'));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tdefault: {\r\n\t\t\t\t\ttoast.error(t('error.downloadWebdoc'));\r\n\t\t\t\t\tconsole.error(\"📑 Erreur de téléchargement d'un webdoc\");\r\n\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error();\r\n\t\t});\r\n\t//}\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n (\r\n\t\t\t\twebdocLoaded.value &&\r\n\t\t\t\t_unref(webdoc) != undefined &&\r\n\t\t\t\t_unref(webdoc).signatory.status != 'signed' &&\r\n\t\t\t\t!validation.value &&\r\n\t\t\t\t!expired.value &&\r\n\t\t\t\t!error.value\r\n\t\t\t)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(webdoc))\n ? (_openBlock(), _createBlock(DocumentViewer, {\n key: 0,\n interactions: _unref(webdoc).interactions,\n recipients: _unref(webdoc).recipients,\n webdoc: _unref(webdoc),\n \"is-webdoc\": true,\n \"menu-open\": menuOpen.value,\n \"onUpdate:menuOpen\": _cache[0] || (_cache[0] = ($event: any) => (menuOpen.value = $event)),\n \"documents-callbacks\": documentFunctions.value,\n onConsulted: handleConsulted,\n onActions: handleActions,\n onScreenstate: handleScreenState,\n onWebdocMode: handleWebdocMode,\n onCurrentPage: _cache[1] || (_cache[1] = ($event: any) => (_isRef(currentPage) //@ts-ignore\n ? currentPage.value = $event : currentPage = $event)),\n onPageNumber: _cache[2] || (_cache[2] = ($event: any) => (_isRef(pageNumber) //@ts-ignore\n ? pageNumber.value = $event : pageNumber = $event))\n }, null, 8, [\"interactions\", \"recipients\", \"webdoc\", \"menu-open\", \"documents-callbacks\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(SignPane, {\n webdoc: _unref(webdoc),\n \"webdoc-branding\": webdocBranding.value,\n \"menu-open\": menuOpen.value,\n \"screen-state\": screenState.value,\n signature: signature.value,\n \"signature-loaded\": signatureLoaded.value,\n consultation: consultation.value,\n consulted: consulted.value,\n interaction: interaction.value,\n actions: actions.value,\n \"current-page\": _unref(currentPage),\n \"page-number\": _unref(pageNumber),\n onOpenValidationScreen: openValidationScreen\n }, null, 8, [\"webdoc\", \"webdoc-branding\", \"menu-open\", \"screen-state\", \"signature\", \"signature-loaded\", \"consultation\", \"consulted\", \"interaction\", \"actions\", \"current-page\", \"page-number\"])\n ]))\n : (\r\n\t\t\t\twebdocLoaded.value && _unref(webdoc) != undefined && _unref(webdoc).signatory.status != 'signed' && validation.value && !error.value\r\n\t\t\t)\n ? (_openBlock(), _createBlock(WebdocPopup, {\n key: 1,\n title: signature.value ? _ctx.$t('sign.confirmSignature') : _ctx.$t('sign.confirmValidation'),\n subtitle: _ctx.$t('sign.validationText'),\n icon: require('@/assets/svg/question_grey.svg'),\n buttonText: signature.value ? _ctx.$t('sign.validateSignature') : _ctx.$t('sign.validateValidation'),\n buttonIcon: require('@/assets/svg/check_green_new.svg'),\n branding: webdocBranding.value,\n isValidation: \"\",\n onAction: setDocumentSigned,\n onClose: closeWebdocPopup\n }, null, 8, [\"title\", \"subtitle\", \"icon\", \"buttonText\", \"buttonIcon\", \"branding\"]))\n : (\r\n\t\t\t\twebdocLoaded.value && _unref(webdoc) != undefined && _unref(webdoc).signatory.status == 'signed' && !error.value && !consultation.value\r\n\t\t\t)\n ? (_openBlock(), _createBlock(WebdocPopup, {\n key: 2,\n title: signature.value ? _ctx.$t('sign.documentHasBeenSigned') : _ctx.$t('sign.documentHasBeenValidated'),\n subtitle: \r\n\t\t\t\thasEveryStakeHolderSigned.value\r\n\t\t\t\t\t? _ctx.$t('sign.documentAvaible')\r\n\t\t\t\t\t: signature.value\r\n\t\t\t\t\t? _ctx.$t('sign.documentSoonAvaiable')\r\n\t\t\t\t\t: _ctx.$t('sign.documentSoonAvaiableValidation')\r\n\t\t\t,\n icon: require('@/assets/svg/check_circle_green_new.svg'),\n buttonText: _ctx.$t('sign.downloadDocument'),\n buttonIcon: require('@/assets/svg/download_blue.svg'),\n branding: webdocBranding.value,\n onAction: downloadWebdocPDF\n }, null, 8, [\"title\", \"subtitle\", \"icon\", \"buttonText\", \"buttonIcon\", \"branding\"]))\n : (expired.value && !error.value)\n ? (_openBlock(), _createBlock(WebdocPopup, {\n key: 3,\n title: _ctx.$t('sign.documentLinkHasExpired'),\n subtitle: _ctx.$t('sign.linkExpiredText'),\n icon: require('@/assets/svg/message_orange.svg'),\n buttonText: _ctx.$t('sign.sentMailToExpeditor'),\n buttonIcon: require('@/assets/svg/send_blue.svg'),\n branding: webdocBranding.value,\n onAction: mailToOwner\n }, null, 8, [\"title\", \"subtitle\", \"icon\", \"buttonText\", \"buttonIcon\", \"branding\"]))\n : (error.value)\n ? (_openBlock(), _createBlock(WebdocError, {\n key: 4,\n is404: error.value == 'error.webdocNotFound',\n branding: webdocBranding.value\n }, null, 8, [\"is404\", \"branding\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3))\n ]),\n (!signatureLoaded.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./SignView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SignView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SignView.vue?vue&type=style&index=0&id=60b429eb&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-60b429eb\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4cb503e1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"error__number\" }, \"404\", -1))\nconst _hoisted_3 = { class: \"error__title\" }\nconst _hoisted_4 = { class: \"error__joke\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('errorPage.notFound')), 1),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.$t('errorPage.joke')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary error__button\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.homePage()))\n }, _toDisplayString(_ctx.$t('errorPage.home')), 1)\n ]))\n}","\r\nimport { Vue } from 'vue-class-component';\r\n\r\nexport default class ErrorView extends Vue {\r\n\terrormessage!: string;\r\n\r\n\topenSupport() {\r\n\t\tconst win = window.open('https://aide.gonexa.fr/s/contactsupport', '_blank');\r\n\t\tif (win) win.focus();\r\n\t}\r\n\r\n\thomePage() {\r\n\t\tthis.$router.push('/home');\r\n\t}\r\n}\r\n","import { render } from \"./ErrorView.vue?vue&type=template&id=4cb503e1&scoped=true&ts=true\"\nimport script from \"./ErrorView.vue?vue&type=script&lang=ts\"\nexport * from \"./ErrorView.vue?vue&type=script&lang=ts\"\n\nimport \"./ErrorView.vue?vue&type=style&index=0&id=4cb503e1&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4cb503e1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createTextVNode as _createTextVNode, isRef as _isRef, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/settings_blue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bbc787d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal__close\" }\nconst _hoisted_4 = { class: \"app-modal\" }\nconst _hoisted_5 = { class: \"app-modal__header\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_7 = { class: \"app-modal__header-text\" }\nconst _hoisted_8 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_9 = { class: \"app-modal__header-title\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_11 = { class: \"app-modal__body\" }\nconst _hoisted_12 = { class: \"app-modal__body-text\" }\nconst _hoisted_13 = { class: \"app-modal__body-text --warn\" }\nconst _hoisted_14 = { class: \"app-modal__footer\" }\n\nimport { onMounted, PropType, ref } from 'vue';\r\nimport PickList from '@/components/general/PickList.vue';\r\nimport { useI18n } from 'vue-i18n';\r\nimport { SalesforcePackage } from '@/types/gonexa-users.type';\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PackageModal',\n props: {\r\n\torgName: { type: String, required: true },\r\n\tpackageId: { type: String, required: true },\r\n\tpackages: { type: Array as PropType<Array<SalesforcePackage>>, required: true },\r\n},\n emits: ['close', 'action'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\nconst { t } = useI18n();\r\n\r\n\r\n\r\n\r\n\r\nlet packageId = ref<string>(props.packageId);\r\nlet packagesItems = ref<Array<{ value: string | number; label: string }>>([]);\r\n\r\nonMounted(() => {\r\n\tconst sortedPackages = [...props.packages]\r\n\t\t.sort((a, b) => {\r\n\t\t\tconst versionA = a.sfLma__Version_Number__c.split('.').map(Number);\r\n\t\t\tconst versionB = b.sfLma__Version_Number__c.split('.').map(Number);\r\n\r\n\t\t\tfor (let i = 0; i < Math.max(versionA.length, versionB.length); i++) {\r\n\t\t\t\tconst numA = versionA[i] || 0;\r\n\t\t\t\tconst numB = versionB[i] || 0;\r\n\t\t\t\tif (numA !== numB) {\r\n\t\t\t\t\treturn numA - numB;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t})\r\n\t\t.reverse();\r\n\r\n\tconst indexOfCurrentVersion = sortedPackages.findIndex((p) => p.sfLma__Version_ID__c === packageId.value);\r\n\tconst indexVersion = indexOfCurrentVersion === -1 ? sortedPackages.length - 1 : indexOfCurrentVersion;\r\n\tconst packages = sortedPackages.filter((p, index) => index < indexVersion).filter((p) => p.is_Installable__c);\r\n\tpackagesItems.value = packages.map((p) => ({\r\n\t\tvalue: p.sfLma__Version_ID__c,\r\n\t\tlabel: 'Version ' + p.sfLma__Version_Number__c + ' — ' + p.name,\r\n\t}));\r\n});\r\n\r\nfunction close() {\r\n\temit('close');\r\n}\r\nfunction action() {\r\n\temit('action', packageId.value);\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (close()))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('workspaces.package')), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_unref(packageId) != undefined\r\n\t\t\t\t\t\t\t\t\t? _ctx.$t('workspaces.updateEnvironment')\r\n\t\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.installPackage')), 1)\n ])\n ]),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"p\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_unref(packageId) != undefined\r\n\t\t\t\t\t\t\t\t? _unref(t)('workspaces.chooseUpdate')\r\n\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.chooseInstallPackage')) + \" \", 1),\n _createElementVNode(\"strong\", null, _toDisplayString(__props.orgName), 1)\n ]),\n _createElementVNode(\"p\", _hoisted_13, [\n _createElementVNode(\"strong\", null, _toDisplayString(_unref(packageId) != undefined\r\n\t\t\t\t\t\t\t\t? _unref(t)('workspaces.updatePackageWarn')\r\n\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.installPackageWarn')), 1)\n ]),\n _createVNode(PickList, {\n label: _ctx.$t('workspaces.wishedPackage'),\n items: _unref(packagesItems),\n emptyLabel: _ctx.$t('workspaces.wishedPackageEmptyLabel'),\n modelValue: _unref(packageId),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(packageId) ? (packageId).value = $event : packageId = $event)),\n isDisabled: false\n }, null, 8, [\"label\", \"items\", \"emptyLabel\", \"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _tertiary app-modal__footer-btn\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (close()))\n }, _toDisplayString(_ctx.$t('app.cancel')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (action()))\n }, _toDisplayString(_ctx.$t('workspaces.continue')), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./PackageModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PackageModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PackageModal.vue?vue&type=style&index=0&id=1bbc787d&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bbc787d\"]])\n\nexport default __exports__","<template>\r\n\t<div class=\"back-button\" @click=\"onClick\">\r\n\t\t<img class=\"back-button-icon\" src=\"@/assets/svg/arrow_left_darkblue.svg\" alt=\"Back\" />\r\n\t\t{{ buttonLabel }}\r\n\t</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { defineProps, defineEmits } from 'vue';\r\n\r\ndefineProps({\r\n\tbuttonLabel: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n});\r\n\r\nconst emit = defineEmits(['onClick']);\r\n\r\nfunction onClick() {\r\n\temit('onClick');\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.back-button {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\twidth: fit-content;\r\n\tmargin-bottom: 16px;\r\n\tgap: 6px;\r\n\tfont-style: italic;\r\n\tcursor: pointer;\r\n\t@include create-typography(16px, 700, $tertiary-color-2, $primary-font);\r\n}\r\n</style>\r\n","import script from \"./ButtonBack.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ButtonBack.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ButtonBack.vue?vue&type=style&index=0&id=3ea5d94f&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3ea5d94f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, isRef as _isRef, normalizeClass as _normalizeClass, renderList as _renderList, vShow as _vShow, withDirectives as _withDirectives, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/warning_red.svg'\nimport _imports_1 from '@/assets/svg/check_green.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-446b985c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"environment__header\" }\nconst _hoisted_2 = { class: \"environment__header-title\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"app-title-1\"\n}\nconst _hoisted_4 = { class: \"environment__header --type\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"app-spinner app-title-1\"\n}\nconst _hoisted_6 = {\n key: 2,\n class: \"environment__header-status\"\n}\nconst _hoisted_7 = {\n key: 0,\n class: \"environment__header-status-icon\",\n src: _imports_0\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"environment__header-status-icon\",\n src: _imports_1\n}\nconst _hoisted_9 = {\n key: 2,\n class: \"environment__header-status-text\"\n}\nconst _hoisted_10 = { class: \"environment__header-package\" }\nconst _hoisted_11 = { class: \"environment__header-package-title\" }\nconst _hoisted_12 = {\n key: 0,\n class: \"environment__header-package-name\"\n}\nconst _hoisted_13 = {\n key: 1,\n class: \"last-version-status\"\n}\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"status-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_15 = [\"disabled\"]\nconst _hoisted_16 = {\n key: 1,\n class: \"app-spinner --small\"\n}\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = { class: \"app-title-2__container\" }\nconst _hoisted_19 = { class: \"app-title-2__text\" }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_21 = {\n key: 0,\n class: \"app-card issue\"\n}\nconst _hoisted_22 = { class: \"issue__descirption\" }\nconst _hoisted_23 = { class: \"issue__description-title\" }\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"issue__description-icon\",\n src: _imports_0\n}, null, -1))\nconst _hoisted_25 = { class: \"issue__description-text\" }\nconst _hoisted_26 = { class: \"issue__description-description\" }\nconst _hoisted_27 = { class: \"issue__action\" }\nconst _hoisted_28 = {\n key: 1,\n class: \"app-spinner\"\n}\nconst _hoisted_29 = { class: \"app-title-2__container\" }\nconst _hoisted_30 = { class: \"app-title-2__text\" }\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_32 = { class: \"app-table__container sandboxes\" }\nconst _hoisted_33 = { class: \"app-table\" }\nconst _hoisted_34 = { class: \"app-table__header\" }\nconst _hoisted_35 = { class: \"app-table__header-row\" }\nconst _hoisted_36 = { class: \"app-table__header-cell\" }\nconst _hoisted_37 = { class: \"app-table__header-cell\" }\nconst _hoisted_38 = {\n key: 0,\n class: \"app-table__body\"\n}\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" }),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"separator\" })\n], -1))\nconst _hoisted_40 = { class: \"app-table__body-row --user\" }\nconst _hoisted_41 = { class: \"app-table__body-cell\" }\nconst _hoisted_42 = { class: \"app-table__body-cell\" }\nconst _hoisted_43 = {\n key: 0,\n class: \"app-table__body-cell user__status\"\n}\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"user__status-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_45 = {\n key: 1,\n class: \"app-table__body-cell user__status\"\n}\nconst _hoisted_46 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"user__status-icon\",\n src: _imports_0,\n alt: \"\"\n}, null, -1))\nconst _hoisted_47 = {\n key: 1,\n class: \"app-table__body\"\n}\nconst _hoisted_48 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"tr\", { class: \"app-table__body-row\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"td\", { class: \"app-table__body-cell package\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"loading-line\" })\n ])\n], -1))\nconst _hoisted_49 = [\n _hoisted_48\n]\nconst _hoisted_50 = {\n key: 0,\n class: \"environment__footer\"\n}\n\nimport AuthSalesforceService from '@/services/auth-salesforce.service';\r\nimport EnvironmentsService from '@/services/environments.service';\r\nimport PackageModal from '@/components/workspace/PackageModal.vue';\r\nimport WorkspaceModal from '@/components/workspace/WorkspaceModal.vue';\r\n//import SignModal from '@/components/workspace/SignModal.vue';\r\nimport {\r\n\tExternalEnvironnement,\r\n\tExternalEnvironnementIndividual,\r\n\tGonexaSignParameters,\r\n} from '@/types/gonexa-users.type';\r\nimport { ref, onMounted } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useI18n } from 'vue-i18n';\r\nimport { useRoute, useRouter } from 'vue-router';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport ButtonBack from '../general/ButtonBack.vue';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkspaceIndivudual',\n setup(__props) {\n\r\nconst { t } = useI18n();\r\nconst route = useRoute();\r\nconst router = useRouter();\r\n\r\nconst externalEnvironment = ref<ExternalEnvironnementIndividual | null>(null);\r\nconst externalEnvironmentLoading = ref<boolean>(false);\r\nconst toast = useToast();\r\nlet isNameSorted = ref<number>(1);\r\nconst authStore = useAuthStore();\r\nlet packageModal = ref<boolean>(false);\r\nlet signModal = ref<boolean>(false);\r\nlet isDeleteModalOpen = ref<boolean>(false);\r\nlet deletionInProgress = ref<boolean>(false);\r\n\r\nonMounted(async () => {\r\n\texternalEnvironmentLoading.value = true;\r\n\texternalEnvironment.value = await EnvironmentsService.getExernalEnvironment(route.params.id as string);\r\n\texternalEnvironmentLoading.value = false;\r\n});\r\n\r\nfunction updateSignParameter(signParameter: GonexaSignParameters) {\r\n\tif (externalEnvironment.value) externalEnvironment.value.sign = signParameter;\r\n}\r\n\r\nfunction getIssuesNumber(environment: ExternalEnvironnement | null): number {\r\n\tlet issues = 0;\r\n\r\n\tif (!environment) return issues;\r\n\r\n\tif (\r\n\t\tenvironment.status['isUserConnected'] != 'true' ||\r\n\t\tenvironment.status['envStatus'].toLocaleLowerCase() == 'refreshed' ||\r\n\t\tenvironment.status['isSecurised'] != 'true' ||\r\n\t\tenvironment.status['isUserAndRefreshToken'] != 'true'\r\n\t)\r\n\t\tissues++;\r\n\t//if (environment.status['Sign'] != 'NotSign' && environment.status['Sign'] != 'Connected') issues++;\r\n\tif ([environment.status['isUserAndRefreshToken']].includes('onloading')) issues = -1;\r\n\r\n\treturn issues;\r\n}\r\n\r\nfunction getLanguage(code: string | undefined | null): string {\r\n\tswitch (true) {\r\n\t\tcase code?.startsWith('fr'):\r\n\t\t\treturn 'language.french';\r\n\t\tcase code?.startsWith('en'):\r\n\t\t\treturn 'language.english';\r\n\t\tcase code?.startsWith('es'):\r\n\t\t\treturn 'language.spanish';\r\n\t\tcase code?.startsWith('de'):\r\n\t\t\treturn 'language.german';\r\n\t\tcase code?.startsWith('it'):\r\n\t\t\treturn 'language.italian';\r\n\t\tcase code?.startsWith('pl'):\r\n\t\t\treturn 'language.polish';\r\n\t\tcase code?.startsWith('nl_NL'):\r\n\t\t\treturn 'language.dutch';\r\n\t\tdefault:\r\n\t\t\treturn 'language.unknown';\r\n\t}\r\n}\r\n\r\nfunction closeDeleteModal() {\r\n\tisDeleteModalOpen.value = false;\r\n}\r\n\r\nfunction redirectLink(packageId: string) {\r\n\twindow.open(\r\n\t\t`${externalEnvironment.value?.instanceUrl}/packagingSetupUI/ipLanding.app?apvId=${packageId}`,\r\n\t\t'_blank'\r\n\t);\r\n\tpackageModal.value = false;\r\n}\r\n\r\nfunction sortTableColumn() {\r\n\t// Si 0, alors pas trié, donc on tri en croissant\r\n\t// Si 1, trié en croissants, donc on trie en décroissant\r\n\t// Si -1, trié en décroissant, dont on trie en croissant\r\n\r\n\tif (externalEnvironment.value != undefined) {\r\n\t\tlet newSortedList = [];\r\n\r\n\t\tnewSortedList =\r\n\t\t\tisNameSorted.value == 1\r\n\t\t\t\t? externalEnvironment.value.extUsers.sort((x, y) => x.fullname.localeCompare(y.fullname)).reverse()\r\n\t\t\t\t: externalEnvironment.value.extUsers.sort((x, y) => x.fullname.localeCompare(y.fullname));\r\n\r\n\t\t// Suite au tri, on met à jour la variable pour qu'elle soit cohérente\r\n\t\tisNameSorted.value = isNameSorted.value == 1 ? -1 : 1;\r\n\r\n\t\texternalEnvironment.value.extUsers = newSortedList;\r\n\t}\r\n}\r\n\r\nasync function deleteExternalEnvironment() {\r\n\tif (externalEnvironment.value && deletionInProgress.value == false) {\r\n\t\tdeletionInProgress.value = true;\r\n\t\ttoast.info(t('workspaces.deletionInProgress'));\r\n\t\tawait EnvironmentsService.deleteExternalUser(externalEnvironment.value.id);\r\n\t\tdeletionInProgress.value = false;\r\n\t\trouter.push('/workspaces');\r\n\t}\r\n\tcloseDeleteModal();\r\n}\r\n\r\nfunction logToSalesforce() {\r\n\tif (externalEnvironment.value) {\r\n\t\tif (externalEnvironment.value.status['envStatus'].toLocaleLowerCase() == 'refreshed') {\r\n\t\t\tloginSalesforceWithOldOrgId(true, externalEnvironment.value.externalId);\r\n\t\t} else {\r\n\t\t\tif (externalEnvironment.value.typeOrg.toLocaleLowerCase() == 'prod') {\r\n\t\t\t\tloginSalesforceWithUrl(false, externalEnvironment.value.instanceUrl);\r\n\t\t\t} else {\r\n\t\t\t\tloginSalesforceWithUrl(true, externalEnvironment.value.instanceUrl);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction loginSalesforceWithUrl(toSandbox: boolean, instanceUrl: string) {\r\n\tAuthSalesforceService.loginToSalesforce(toSandbox, instanceUrl);\r\n}\r\n\r\nfunction loginSalesforceWithOldOrgId(toSandbox: boolean, oldOrgId: string) {\r\n\tAuthSalesforceService.loginToSalesforce(toSandbox, '', oldOrgId);\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", null, [\n _createVNode(ButtonBack, {\n buttonLabel: _ctx.$t('workspaces.workspaceList'),\n onOnClick: _cache[0] || (_cache[0] = ($event: any) => (_unref(router).push(`/workspaces`)))\n }, null, 8, [\"buttonLabel\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createTextVNode(_toDisplayString(externalEnvironment.value?.orgName) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString('[' + externalEnvironment.value?.typeOrg + ']'), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5)),\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (getIssuesNumber(externalEnvironment.value) > 0)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_7))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_8)),\n (getIssuesNumber(externalEnvironment.value) > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _toDisplayString(getIssuesNumber(externalEnvironment.value) > 1\r\n\t\t\t\t\t\t\t\t? getIssuesNumber(externalEnvironment.value) + _ctx.$t('workspaces.neededActions')\r\n\t\t\t\t\t\t\t\t: getIssuesNumber(externalEnvironment.value) + _ctx.$t('workspaces.neededAction')), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(externalEnvironment.value?.currentPackageVersion != undefined ? _unref(t)('workspaces.installedVersion') : ''), 1),\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, _toDisplayString(externalEnvironment.value?.currentPackageVersion?.sfLma__Version_Number__c != undefined\r\n\t\t\t\t\t\t\t\t? 'Version ' + externalEnvironment.value?.currentPackageVersion?.sfLma__Version_Number__c\r\n\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.notInstalledPackage')), 1))\n : _createCommentVNode(\"\", true),\n (\r\n\t\t\t\t\t\t!externalEnvironmentLoading.value &&\r\n\t\t\t\t\t\texternalEnvironment.value?.currentPackageVersion?.sfLma__Version_ID__c ==\r\n\t\t\t\t\t\t\texternalEnvironment.value?.packageVersions[0].sfLma__Version_ID__c\r\n\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _createTextVNode(_toDisplayString(_unref(t)('workspaces.lastVersionUpdated')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n class: \"gnx-btn _primary\",\n disabled: externalEnvironmentLoading.value,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_isRef(packageModal) //@ts-ignore\n ? packageModal.value = true : packageModal = true))\n }, [\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(externalEnvironment.value?.currentPackageVersion != undefined\r\n\t\t\t\t\t\t\t\t? _ctx.$t('workspaces.updatePackage')\r\n\t\t\t\t\t\t\t\t: _ctx.$t('workspaces.installPackage')), 1)\n ], 64))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16))\n ], 8, _hoisted_15))\n ])\n ]),\n (getIssuesNumber(externalEnvironment.value) > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"p\", _hoisted_19, _toDisplayString(_unref(t)('workspaces.infoAndAlert')), 1),\n _hoisted_20\n ]),\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (\r\n\t\t\t\t\t\texternalEnvironment.value?.status['envStatus'].toLocaleLowerCase() == 'refreshed' ||\r\n\t\t\t\t\t\texternalEnvironment.value?.status['isUserConnected'] != 'true' ||\r\n\t\t\t\t\t\texternalEnvironment.value?.status['isSecurised'] != 'true' ||\r\n\t\t\t\t\t\texternalEnvironment.value?.status['isUserAndRefreshToken'] != 'true'\r\n\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"div\", _hoisted_23, [\n _hoisted_24,\n _createElementVNode(\"div\", _hoisted_25, _toDisplayString(_unref(t)('workspaces.userIsNotConnected')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_26, _toDisplayString(_unref(t)('workspaces.userIsNotConnectedDescription')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"div\", {\n class: \"gnx-btn _primary\",\n onClick: logToSalesforce\n }, _toDisplayString(_unref(t)('workspaces.connect')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_28))\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"p\", _hoisted_30, _toDisplayString(_unref(t)('workspaces.users')), 1),\n _hoisted_31\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"table\", _hoisted_33, [\n _createElementVNode(\"thead\", _hoisted_34, [\n _createElementVNode(\"tr\", _hoisted_35, [\n _createElementVNode(\"th\", {\n class: _normalizeClass([\"app-table__header-cell app-table__sortable-column\", {\r\n\t\t\t\t\t\t\t\t'--top': _unref(isNameSorted) == -1,\r\n\t\t\t\t\t\t\t\t'--bottom': _unref(isNameSorted) == 1,\r\n\t\t\t\t\t\t\t}]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (sortTableColumn()))\n }, _toDisplayString(_ctx.$t('workspaces.fullname')), 3),\n _createElementVNode(\"th\", _hoisted_36, _toDisplayString(_ctx.$t('workspaces.username')), 1),\n _createElementVNode(\"th\", _hoisted_37, _toDisplayString(_ctx.$t('workspaces.status')), 1)\n ])\n ]),\n (!externalEnvironmentLoading.value)\n ? (_openBlock(), _createElementBlock(\"tbody\", _hoisted_38, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(externalEnvironment.value?.extUsers, (user) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: user.username\n }, [\n _hoisted_39,\n _createElementVNode(\"tr\", _hoisted_40, [\n _createElementVNode(\"td\", _hoisted_41, _toDisplayString(user.fullname), 1),\n _createElementVNode(\"td\", _hoisted_42, _toDisplayString(user.username), 1),\n (\r\n\t\t\t\t\t\t\t\t\texternalEnvironment.value?.status['envStatus'].toLocaleLowerCase() != 'refreshed' &&\r\n\t\t\t\t\t\t\t\t\texternalEnvironment.value?.status['isUserConnected'] == 'true' &&\r\n\t\t\t\t\t\t\t\t\texternalEnvironment.value?.status['isSecurised'] == 'true' &&\r\n\t\t\t\t\t\t\t\t\t(user.username == _unref(authStore).username\r\n\t\t\t\t\t\t\t\t\t\t? externalEnvironment.value?.status['isUserAndRefreshToken'] == 'true'\r\n\t\t\t\t\t\t\t\t\t\t: true) &&\r\n\t\t\t\t\t\t\t\t\tuser.status == 'Connected'\r\n\t\t\t\t\t\t\t\t)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_43, [\n _hoisted_44,\n _createTextVNode(_toDisplayString(_unref(t)('workspaces.connected')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_45, [\n _hoisted_46,\n _createTextVNode(_toDisplayString(_unref(t)('workspaces.disconnected')), 1)\n ]))\n ])\n ], 64))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"tbody\", _hoisted_47, _hoisted_49))\n ])\n ])\n ]),\n (externalEnvironment.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_50, [\n (externalEnvironment.value?.typeOrg != 'prod')\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"gnx-btn _secondary\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_isRef(isDeleteModalOpen) //@ts-ignore\n ? isDeleteModalOpen.value = true : isDeleteModalOpen = true))\n }, _toDisplayString(_ctx.$t('workspaces.disconnectEnvironement')), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (externalEnvironment.value)\n ? _withDirectives((_openBlock(), _createBlock(PackageModal, {\n key: 1,\n \"org-name\": externalEnvironment.value?.orgName,\n \"package-id\": externalEnvironment.value?.currentPackageVersion?.sfLma__Version_ID__c,\n packages: externalEnvironment.value?.packageVersions,\n onClose: _cache[4] || (_cache[4] = ($event: any) => (_isRef(packageModal) //@ts-ignore\n ? packageModal.value = false : packageModal = false)),\n onAction: redirectLink\n }, null, 8, [\"org-name\", \"package-id\", \"packages\"])), [\n [_vShow, _unref(packageModal)]\n ])\n : _createCommentVNode(\"\", true),\n _withDirectives(_createVNode(WorkspaceModal, {\n onClose: closeDeleteModal,\n onAction: _cache[5] || (_cache[5] = ($event: any) => (deleteExternalEnvironment()))\n }, null, 512), [\n [_vShow, _unref(isDeleteModalOpen)]\n ])\n ], 64))\n}\n}\n\n})","import script from \"./WorkspaceIndivudual.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkspaceIndivudual.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkspaceIndivudual.vue?vue&type=style&index=0&id=446b985c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-446b985c\"]])\n\nexport default __exports__","import axios, { AxiosError } from 'axios';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport { CompanyLogo } from '@/types/webdoc.type';\r\nimport { Branding, BrandingUpdate } from '@/types/brandings.type';\r\n\r\nexport default class BrandingsService {\r\n\tstatic authStore: ReturnType<typeof useAuthStore>;\r\n\r\n\t/**\r\n\t * Récupérer les brandings d'une entreprise\r\n\t * @returns L'objet JSON des brandings de l'entreprise\r\n\t */\r\n\tstatic async getBrandings(): Promise<Branding[]> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/companyBranding`, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('😕 Erreur lors de la récupération des brandings.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Récupérer un branding\r\n\t * @param brandingId : L'id du branding\r\n\t * @returns L'objet JSON du branding de l'entreprise\r\n\t */\r\n\tstatic async getBranding(brandingId: string): Promise<Branding> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.get(`${process.env.VUE_APP_APP_API_URI}/api/companyBranding/${brandingId}`, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('😕 Erreur lors de la récupération du branding.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Créer un branding\r\n\t * @param name : Le nom du branding\r\n\t * @returns L'id du branding créé\r\n\t */\r\n\tstatic async createBranding(name: string): Promise<string> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.post(`${process.env.VUE_APP_APP_API_URI}/api/companyBranding`, name, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(({ data }) => {\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('😕 Erreur lors de la création du branding.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Mettre à jour un branding\r\n\t * @param branding : L'objet JSON du branding\r\n\t * @returns true si la mise à jour a réussi, sinon une erreur est émise\r\n\t */\r\n\tstatic async updateBranding(branding: BrandingUpdate): Promise<boolean> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.put(`${process.env.VUE_APP_APP_API_URI}/api/companyBranding/${branding.id}`, branding, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('😕 Erreur lors de la mise à jour du branding.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Supprimer un branding\r\n\t * @param brandingId : L'id du branding\r\n\t * @returns true si la suppression a réussi, sinon une erreur est émise\r\n\t */\r\n\tstatic async deleteBranding(brandingId: string): Promise<boolean> {\r\n\t\tthis.authStore = useAuthStore();\r\n\r\n\t\treturn await axios\r\n\t\t\t.delete(`${process.env.VUE_APP_APP_API_URI}/api/companyBranding/${brandingId}`, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${this.authStore.userToken}`,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error: AxiosError) => {\r\n\t\t\t\tconsole.error('😕 Erreur lors de la suppression du branding.');\r\n\t\t\t\tconsole.error(error);\r\n\r\n\t\t\t\tif (typeof error.response?.data === 'string') throw new Error(error.response.data);\r\n\t\t\t\telse throw new Error();\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/warning_yellow_duo.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e2d4a83c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal\" }\nconst _hoisted_4 = { class: \"app-modal__header\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"\"\n}, null, -1))\nconst _hoisted_6 = { class: \"app-modal__header-text\" }\nconst _hoisted_7 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_8 = { class: \"app-modal__header-title\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_10 = { class: \"app-modal__body\" }\nconst _hoisted_11 = { class: \"app-modal__body-text\" }\nconst _hoisted_12 = { class: \"app-modal__footer\" }\n\n\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ConfirmActionModal',\n props: {\r\n\ttitle: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tsubtitle: {\r\n\t\ttype: String,\r\n\t\trequired: false,\r\n\t},\r\n\tmessage: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tcancelButtonText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'Cancel',\r\n\t},\r\n\tconfirmButtonText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'Confirm',\r\n\t},\r\n\tisCritical: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n},\n emits: ['close', 'confirm'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\n\r\n\r\n\r\n\r\nconst emitClose = () => {\r\n\temit('close');\r\n};\r\n\r\nconst emitConfirm = () => {\r\n\temit('confirm');\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", { class: \"app-modal__close\" }, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"Close\",\n onClick: emitClose\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(__props.subtitle), 1),\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(__props.title), 1)\n ])\n ]),\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(__props.message), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(['gnx-btn', 'app-modal__footer-btn', !__props.isCritical ? '_secondary' : '']),\n onClick: emitClose\n }, _toDisplayString(__props.cancelButtonText), 3),\n _createElementVNode(\"button\", {\n class: _normalizeClass(['gnx-btn', 'app-modal__footer-btn', !__props.isCritical ? '_primary' : '_secondary']),\n onClick: emitConfirm\n }, _toDisplayString(__props.confirmButtonText), 3)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./ConfirmActionModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ConfirmActionModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ConfirmActionModal.vue?vue&type=style&index=0&id=e2d4a83c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e2d4a83c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderSlot as _renderSlot, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-371823fd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal\" }\nconst _hoisted_4 = { class: \"app-modal__header\" }\nconst _hoisted_5 = { class: \"app-modal__header-text\" }\nconst _hoisted_6 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_7 = { class: \"app-modal__header-title\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_9 = { class: \"app-modal__body\" }\nconst _hoisted_10 = [\"onSubmit\"]\nconst _hoisted_11 = { class: \"app-modal__footer\" }\n\n\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FormModal',\n props: {\r\n\ttitle: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tsubtitle: {\r\n\t\ttype: String,\r\n\t\trequired: false,\r\n\t},\r\n\tcancelButtonText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'Cancel',\r\n\t},\r\n\tconfirmButtonText: {\r\n\t\ttype: String,\r\n\t\tdefault: 'Confirm',\r\n\t},\r\n},\n emits: ['close', 'confirm'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\n\r\n\r\n\r\n\r\nconst emitClose = () => {\r\n\temit('close');\r\n};\r\n\r\nconst emitConfirm = () => {\r\n\temit('confirm');\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", { class: \"app-modal__close\" }, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"Close\",\n onClick: emitClose\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(__props.subtitle), 1),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(__props.title), 1)\n ])\n ]),\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(emitConfirm, [\"prevent\"])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 40, _hoisted_10)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn app-modal__footer-btn _secondary\",\n onClick: emitClose\n }, _toDisplayString(__props.cancelButtonText), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn app-modal__footer-btn _primary\",\n onClick: emitConfirm\n }, _toDisplayString(__props.confirmButtonText), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./FormModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FormModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FormModal.vue?vue&type=style&index=0&id=371823fd&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-371823fd\"]])\n\nexport default __exports__","<template>\r\n\t<div>\r\n\t\t<div class=\"datatable__header\">\r\n\t\t\t<div class=\"datatable__header-results-text\">\r\n\t\t\t\t{{ elementName }}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"datatable__header-params\">\r\n\t\t\t\t<button v-if=\"headerParamsButton\" class=\"gnx-btn _white-tertiary\" @click=\"headerParamsButton.callback\">\r\n\t\t\t\t\t<img\r\n\t\t\t\t\t\tv-if=\"headerParamsButton.icon\"\r\n\t\t\t\t\t\t:src=\"require(`@/assets/svg/${headerParamsButton.icon}`)\"\r\n\t\t\t\t\t\talt=\"Action\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<p v-if=\"headerParamsButton.name\">{{ headerParamsButton.name }}</p>\r\n\t\t\t\t</button>\r\n\t\t\t\t<div v-if=\"showSearchFilter\" class=\"gnx-searchbar\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tclass=\"gnx-search\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t:placeholder=\"$t('datatable.searchTerm')\"\r\n\t\t\t\t\t\tv-model=\"searchTerm\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<img\r\n\t\t\t\t\tv-if=\"showRefreshButton\"\r\n\t\t\t\t\tclass=\"datatable__header-params-refresh-btn\"\r\n\t\t\t\t\tsrc=\"@/assets/svg/refresh.svg\"\r\n\t\t\t\t\t@click=\"emits('refresh')\"\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"datatable__table-container\" :style=\"{ maxHeight: maxHeight }\">\r\n\t\t\t<table v-if=\"columns.length > 0\" class=\"datatable__table\">\r\n\t\t\t\t<thead class=\"datatable__table-header\">\r\n\t\t\t\t\t<tr class=\"datatable__table-header-row\">\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\tv-for=\"column in columns\"\r\n\t\t\t\t\t\t\tclass=\"datatable__table-header-cell datatable__sortable-column\"\r\n\t\t\t\t\t\t\t:key=\"column.key\"\r\n\t\t\t\t\t\t\t:class=\"getSortClass(column.key)\"\r\n\t\t\t\t\t\t\t@click=\"sortColumn(column.key)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ column.label }}\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t<!-- Colonne d'actions -->\r\n\t\t\t\t\t\t<th v-if=\"actionButton\" class=\"datatable__table-header-cell\">\r\n\t\t\t\t\t\t\t<p v-if=\"actionButton.title\">{{ actionButton.title }}</p>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</thead>\r\n\t\t\t\t<tbody v-if=\"isLoading\">\r\n\t\t\t\t\t<tr class=\"datatable__separator-row\">\r\n\t\t\t\t\t\t<td :colspan=\"columns.length + (actionButton ? 1 : 0)\">\r\n\t\t\t\t\t\t\t<div class=\"datatable__separator-row-line datatable__separator-row-line-first\"></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class=\"datatable__table-body-row\">\r\n\t\t\t\t\t\t<td\r\n\t\t\t\t\t\t\tv-for=\"n in columns.length + (actionButton ? 1 : 0)\"\r\n\t\t\t\t\t\t\t:key=\"n\"\r\n\t\t\t\t\t\t\tclass=\"datatable__table-body-cell\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div class=\"datatable__loading-line-cell\"></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t\t<tbody v-else-if=\"sortedData.length <= 0\">\r\n\t\t\t\t\t<tr class=\"datatable__separator-row\">\r\n\t\t\t\t\t\t<td :colspan=\"columns.length + (actionButton ? 1 : 0)\">\r\n\t\t\t\t\t\t\t<div class=\"datatable__separator-row-line datatable__separator-row-line-first\"></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class=\"datatable__table-body-row\">\r\n\t\t\t\t\t\t<td class=\"datatable__table-body-cell\" :colspan=\"columns.length + (actionButton ? 1 : 0)\">\r\n\t\t\t\t\t\t\t<p class=\"datatable__full-line-message-cell\">\r\n\t\t\t\t\t\t\t\t{{ noDataMessage ? noDataMessage : $t('datatable.noDataFound') }}\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t\t<tbody v-else>\r\n\t\t\t\t\t<template v-for=\"(row, index) in sortedData\" :key=\"row.id\">\r\n\t\t\t\t\t\t<tr class=\"datatable__separator-row\">\r\n\t\t\t\t\t\t\t<td :colspan=\"columns.length + (actionButton ? 1 : 0)\">\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tclass=\"datatable__separator-row-line\"\r\n\t\t\t\t\t\t\t\t\t:class=\"{ 'datatable__separator-row-line-first': index === 0 }\"\r\n\t\t\t\t\t\t\t\t></div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t<tr\r\n\t\t\t\t\t\t\tclass=\"datatable__table-body-row\"\r\n\t\t\t\t\t\t\t:class=\"{ 'datatable__table-body-row-clickable': isRowClickable }\"\r\n\t\t\t\t\t\t\t@click=\"handleRowClick(row)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<td\r\n\t\t\t\t\t\t\t\tv-for=\"column in columns\"\r\n\t\t\t\t\t\t\t\tclass=\"datatable__table-body-cell\"\r\n\t\t\t\t\t\t\t\t:key=\"column.key\"\r\n\t\t\t\t\t\t\t\t:title=\"row[column.overText] ? row[column.overText] : ''\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<!-- Gestion des booléens -->\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tv-if=\"column.type === 'boolean' || column.type === 'invisibleIfFalseBoolean'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"datatable__boolean-cell\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"row[column.key]\"\r\n\t\t\t\t\t\t\t\t\t\tsrc=\"@/assets/svg/check_green.svg\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"datatable__boolean-icon\"\r\n\t\t\t\t\t\t\t\t\t\talt=\"check\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\tv-else-if=\"column.type === 'boolean'\"\r\n\t\t\t\t\t\t\t\t\t\tsrc=\"@/assets/svg/cross_red.svg\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"datatable__boolean-icon\"\r\n\t\t\t\t\t\t\t\t\t\talt=\"cross\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div v-else-if=\"column.type === 'date'\">\r\n\t\t\t\t\t\t\t\t\t{{ formatDateTime(row[column.key]) }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div v-else-if=\"column.type === 'localDate'\">\r\n\t\t\t\t\t\t\t\t\t{{ new Date(row[column.key]).toLocaleDateString() }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div v-else-if=\"column.type === 'image'\">\r\n\t\t\t\t\t\t\t\t\t<img :src=\"row[column.key]\" alt=\"\" class=\"datatable__image\" />\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<!-- Autres types de données -->\r\n\t\t\t\t\t\t\t\t<div v-else>\r\n\t\t\t\t\t\t\t\t\t{{ row[column.key] }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<!-- Bouton d'action -->\r\n\t\t\t\t\t\t\t<td v-if=\"actionButton\" class=\"datatable__table-body-cell app-table__action-cell\">\r\n\t\t\t\t\t\t\t\t<div class=\"app-table__action-cell-btn\" @click.stop=\"actionButton.callback(row)\">\r\n\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\tv-if=\"actionButton.icon\"\r\n\t\t\t\t\t\t\t\t\t\t:src=\"require(`@/assets/svg/${actionButton.icon}`)\"\r\n\t\t\t\t\t\t\t\t\t\talt=\"Action\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t<p v-if=\"actionButton.name\">{{ actionButton.name }}</p>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed, defineEmits, defineProps, ref } from 'vue';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst { locale } = useI18n();\r\n\r\nconst props = defineProps({\r\n\tdata: {\r\n\t\ttype: Array,\r\n\t\trequired: true,\r\n\t},\r\n\telementName: {\r\n\t\ttype: String || null,\r\n\t\tdefault: null,\r\n\t},\r\n\tcolumns: {\r\n\t\ttype: Array,\r\n\t\tdefault: () => [],\r\n\t},\r\n\tisLoading: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true,\r\n\t},\r\n\tshowRefreshButton: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tshowSearchFilter: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tmaxHeight: {\r\n\t\ttype: String,\r\n\t\tdefault: 'auto',\r\n\t},\r\n\tactionButton: {\r\n\t\ttype: Object,\r\n\t\tdefault: null,\r\n\t},\r\n\theaderParamsButton: {\r\n\t\ttype: Object,\r\n\t\tdefault: null,\r\n\t},\r\n\tisRowClickable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tnoDataMessage: {\r\n\t\ttype: String,\r\n\t\tdefault: null,\r\n\t},\r\n});\r\n\r\nconst emits = defineEmits(['rowClick', 'refresh']);\r\n\r\nconst sortState = ref({ column: null, direction: 1 });\r\nconst searchTerm = ref('');\r\n\r\nfunction formatDateTime(value) {\r\n\tconst dateObj = new Date(value);\r\n\r\n\t// Options pour \"JJ/MM/AAAA HH:mm:ss\" en tenant compte de la locale\r\n\treturn new Intl.DateTimeFormat(locale.value, {\r\n\t\tyear: 'numeric',\r\n\t\tmonth: '2-digit',\r\n\t\tday: '2-digit',\r\n\t\thour: '2-digit',\r\n\t\tminute: '2-digit',\r\n\t\tsecond: '2-digit',\r\n\t\thour12: false,\r\n\t}).format(dateObj);\r\n}\r\n\r\n// Filtrage des données basé sur la valeur de searchTerm\r\nconst filteredData = computed(() => {\r\n\tif (!searchTerm.value.trim()) return props.data;\r\n\tconst searchLower = searchTerm.value.toLowerCase();\r\n\treturn props.data.filter((row) => JSON.stringify(row).toLowerCase().includes(searchLower));\r\n});\r\n\r\nconst sortedData = computed(() => {\r\n\tif (!sortState.value.column) return filteredData.value;\r\n\r\n\tconst { column, direction } = sortState.value;\r\n\treturn [...filteredData.value].sort((a, b) => {\r\n\t\tconst valueA = a[column] ?? '';\r\n\t\tconst valueB = b[column] ?? '';\r\n\r\n\t\tif (valueA < valueB) return -1 * direction;\r\n\t\tif (valueA > valueB) return 1 * direction;\r\n\t\treturn 0;\r\n\t});\r\n});\r\n\r\n// Fonction pour gérer le tri\r\nconst sortColumn = (column) => {\r\n\tif (sortState.value.column === column) {\r\n\t\tsortState.value.direction *= -1; // Change la direction\r\n\t} else {\r\n\t\tsortState.value.column = column;\r\n\t\tsortState.value.direction = 1; // Définit une nouvelle colonne triée\r\n\t}\r\n};\r\n\r\n// Retourne la classe CSS en fonction de l'état du tri\r\nconst getSortClass = (column) => {\r\n\tif (sortState.value.column === column) {\r\n\t\treturn sortState.value.direction === 1 ? '--top' : '--bottom';\r\n\t}\r\n\treturn '';\r\n};\r\n\r\nconst handleRowClick = (row) => {\r\n\tif (props.isRowClickable) {\r\n\t\temits('rowClick', row);\r\n\t}\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.datatable {\r\n\t&__table-container {\r\n\t\tflex-shrink: 0;\r\n\t\toverflow-x: auto;\r\n\t\tbox-shadow: $primary-shadow;\r\n\t\tbackground-color: #ffffff;\r\n\t\tborder-radius: 20px;\r\n\t\t&::-webkit-scrollbar-track {\r\n\t\t\tmargin: 20px;\r\n\t\t}\r\n\t}\r\n\r\n\t&__table {\r\n\t\tbox-sizing: border-box;\r\n\t\twidth: 100%;\r\n\t\theight: fit-content;\r\n\t\ttext-align: left;\r\n\t\tborder-collapse: separate;\r\n\t\tborder-spacing: 0;\r\n\t\tborder-color: #ffffff;\r\n\t\tborder-style: solid;\r\n\t\tborder-width: 8px 16px;\r\n\t}\r\n\r\n\t&__table-header {\r\n\t\twidth: 100%;\r\n\t\ttext-align: left;\r\n\t}\r\n\r\n\t&__table-header-row {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t&__table-header-cell {\r\n\t\tvertical-align: middle !important;\r\n\t\t@include create-typography(16px, 600, $tertiary-color-1, $primary-font);\r\n\t\ttext-transform: uppercase;\r\n\t\tpadding: 16px;\r\n\t\tvertical-align: top;\r\n\t}\r\n\r\n\t&__table-body-row {\r\n\t\twidth: 100%;\r\n\t\t&-clickable {\r\n\t\t\tcursor: pointer;\r\n\t\t\t&:hover {\r\n\t\t\t\tbackground-color: $tertiary-color-5;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&__table-body-cell {\r\n\t\t@include create-typography(16px, 600, $tertiary-color-1, $primary-font);\r\n\t\tpadding: 16px;\r\n\t\tvertical-align: middle;\r\n\t\theight: 40px;\r\n\t\t&:first-child {\r\n\t\t\tborder-radius: 8px 0 0 8px;\r\n\t\t}\r\n\t\t&:last-child {\r\n\t\t\tborder-radius: 0 8px 8px 0;\r\n\t\t}\r\n\t}\r\n\r\n\t&__boolean-cell {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t&__boolean-icon {\r\n\t\twidth: 30px;\r\n\t\theight: 30px;\r\n\t}\r\n\r\n\t&__image {\r\n\t\twidth: auto;\r\n\t\theight: 30px;\r\n\t}\r\n\r\n\t&__full-line-message-cell {\r\n\t\ttext-align: center;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t&__loading-line-cell {\r\n\t\tmax-width: 115px;\r\n\t\twidth: 100%;\r\n\t\theight: 9px;\r\n\t\tborder-radius: 50px;\r\n\t\tbackground-color: $tertiary-color-4;\r\n\t}\r\n\r\n\t&__header {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between;\r\n\t\talign-items: center;\r\n\t\tmargin-bottom: 16px;\r\n\t\tflex-wrap: wrap;\r\n\t\t&-results-text {\r\n\t\t\tcolor: $primary-color-1;\r\n\t\t\tfont-size: 16px;\r\n\t\t}\r\n\t\t&-params {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 16px;\r\n\t\t\tflex-wrap: wrap;\r\n\t\t\t&-refresh-btn {\r\n\t\t\t\tpadding: 8px 0px;\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&__sortable-column {\r\n\t\tcursor: pointer;\r\n\t\tposition: relative;\r\n\t\t&::after {\r\n\t\t\tcontent: url('@/assets/svg/arrow_bottom.svg');\r\n\t\t\tmargin-left: 8px;\r\n\t\t\theight: 8px;\r\n\t\t\topacity: 0;\r\n\t\t\ttransition: opacity 0.1s ease-in;\r\n\t\t\tposition: absolute;\r\n\t\t}\r\n\t\t&:hover::after {\r\n\t\t\topacity: 1;\r\n\t\t\ttransition: opacity 0.1s ease-in;\r\n\t\t}\r\n\t\t&:active::after {\r\n\t\t\tfilter: brightness(80%);\r\n\t\t}\r\n\t}\r\n\r\n\t&__separator-row {\r\n\t\t&-line {\r\n\t\t\tmargin: 6px 0;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 2px;\r\n\t\t\tborder-radius: 2px;\r\n\t\t\tbackground-color: $tertiary-color-5;\r\n\t\t\t&-first {\r\n\t\t\t\tmargin-top: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.--top.datatable__sortable-column::after {\r\n\tcontent: url('@/assets/svg/arrow_top.svg');\r\n}\r\n\r\n.--bottom.datatable__sortable-column::after {\r\n\tcontent: url('@/assets/svg/arrow_bottom.svg');\r\n}\r\n\r\n.gnx-checkbox-txt {\r\n\tmin-height: 24px;\r\n}\r\n\r\n.gnx-btn._white-tertiary {\r\n\tbackground-color: #fff;\r\n\tbox-shadow: $primary-shadow;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tcolumn-gap: 8px;\r\n\r\n\t&:hover {\r\n\t\tcolor: $primary-color-1;\r\n\t\tbackground-color: lighten($primary-color-1, 70);\r\n\t}\r\n\t&:active {\r\n\t\tbackground-color: lighten($primary-color-1, 65);\r\n\t}\r\n}\r\n</style>\r\n","import script from \"./DataTable.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DataTable.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./DataTable.vue?vue&type=style&index=0&id=6e8aaaf6&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6e8aaaf6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, vModelText as _vModelText, withDirectives as _withDirectives, withCtx as _withCtx, createBlock as _createBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/add_circle_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4e98ae0e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-1 --shrinkable\" }\nconst _hoisted_2 = { class: \"app-title-2__container\" }\nconst _hoisted_3 = { class: \"app-title-2__text\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"brandings__header\"\n}\nconst _hoisted_6 = { class: \"brandings__active\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"plus\"\n}, null, -1))\nconst _hoisted_8 = { class: \"gnx-form-field\" }\nconst _hoisted_9 = {\n class: \"gnx-label\",\n for: \"name\"\n}\nconst _hoisted_10 = [\"placeholder\"]\n\nimport { ref, reactive, computed, onMounted } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useRouter } from 'vue-router';\r\nimport BrandingsService from '@/services/brandings.service';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport { useI18n } from 'vue-i18n';\r\nimport { Branding } from '@/types/brandings.type';\r\nimport ConfirmActionModal from '../general/ConfirmActionModal.vue';\r\nimport FormModal from '../general/FormModal.vue';\r\nimport DataTable from '../general/DataTable.vue';\r\nimport { DatatableColumn } from '@/types/datatable-column';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BrandingsView',\n setup(__props) {\n\r\nconst toast = useToast();\r\nconst router = useRouter();\r\nconst { t } = useI18n();\r\n\r\nconst brandings = ref<Branding[]>([]);\r\n\r\nconst showConfirmModal = ref(false);\r\nconst brandingToDelete = ref<string | null>(null);\r\n\r\nconst showCreateModal = ref(false);\r\nconst formData = reactive({\r\n\tname: '',\r\n});\r\nconst isLoading = ref(true);\r\n\r\nconst brandingsColumns = computed<DatatableColumn<Branding>[]>(() => [\r\n\t{\r\n\t\tkey: 'name',\r\n\t\tlabel: t('brandings.name'),\r\n\t},\r\n\t{\r\n\t\tkey: 'isDefault',\r\n\t\tlabel: t('brandings.isDefault'),\r\n\t\ttype: 'invisibleIfFalseBoolean',\r\n\t},\r\n\t{\r\n\t\tkey: 'logo',\r\n\t\tlabel: t('brandings.logo'),\r\n\t\ttype: 'image',\r\n\t},\r\n\t{\r\n\t\tkey: 'lastModification',\r\n\t\tlabel: t('brandings.lastModification'),\r\n\t\ttype: 'localDate',\r\n\t},\r\n]);\r\n\r\nconst deleteAction = {\r\n\ticon: 'delete_red.svg',\r\n\tcallback: (branding: Branding) => confirmDelete(branding),\r\n};\r\n\r\nconst loadBrandings = async () => {\r\n\tisLoading.value = true;\r\n\ttry {\r\n\t\tconst response = await BrandingsService.getBrandings();\r\n\t\tbrandings.value = response;\r\n\t} catch (error) {\r\n\t\tconsole.error(error);\r\n\t\ttoast.error(t('brandings.loadError'));\r\n\t}\r\n\r\n\tisLoading.value = false;\r\n};\r\n\r\nconst createBranding = async () => {\r\n\tif (formData.name) {\r\n\t\ttry {\r\n\t\t\tawait BrandingsService.createBranding(formData.name.trim());\r\n\t\t\ttoast.success(t('brandings.createModal.created'));\r\n\t\t\tloadBrandings();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t\ttoast.error(t('brandings.createModal.createError'));\r\n\t\t}\r\n\t\tshowCreateModal.value = false;\r\n\t} else {\r\n\t\ttoast.error(t('brandings.createModal.emptyName'));\r\n\t}\r\n\tformData.name = '';\r\n};\r\n\r\nconst confirmDelete = (branding: Branding) => {\r\n\tbrandingToDelete.value = branding.id;\r\n\tshowConfirmModal.value = true;\r\n};\r\n\r\nconst deleteBranding = async () => {\r\n\tif (brandingToDelete.value) {\r\n\t\ttry {\r\n\t\t\tawait BrandingsService.deleteBranding(brandingToDelete.value);\r\n\t\t\ttoast.success(t('brandings.deleteModal.deleted'));\r\n\t\t\tloadBrandings();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t\ttoast.error(t('brandings.deleteModal.deleteError'));\r\n\t\t}\r\n\t}\r\n\tshowConfirmModal.value = false;\r\n\tbrandingToDelete.value = null;\r\n};\r\n\r\nconst redirectToBranding = (brandingId: string) => {\r\n\trouter.push(`/branding/${brandingId}`);\r\n};\r\n\r\nonMounted(loadBrandings);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('brandings.title')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t('brandings.brandingsList')), 1),\n _hoisted_4\n ]),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(brandings.value.length == 0\r\n\t\t\t\t\t? _ctx.$t('brandings.noBranding')\r\n\t\t\t\t\t: brandings.value.length == 1\r\n\t\t\t\t\t? '1 ' + _ctx.$t('brandings.oneBranding')\r\n\t\t\t\t\t: brandings.value.length + ' ' + _ctx.$t('brandings.brandings')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _white-tertiary\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (showCreateModal.value = true), [\"prevent\"]))\n }, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('brandings.newBranding')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(DataTable, {\n data: brandings.value,\n columns: brandingsColumns.value,\n isLoading: isLoading.value,\n isRowClickable: true,\n onRowClick: _cache[1] || (_cache[1] = (row) => redirectToBranding(row.id)),\n noDataMessage: _ctx.$t('brandings.noBranding'),\n actionButton: deleteAction\n }, null, 8, [\"data\", \"columns\", \"isLoading\", \"noDataMessage\"]),\n (showCreateModal.value)\n ? (_openBlock(), _createBlock(FormModal, {\n key: 1,\n onClose: _cache[3] || (_cache[3] = ($event: any) => (showCreateModal.value = false)),\n title: _ctx.$t('brandings.createModal.title'),\n subtitle: _ctx.$t('brandings.createModal.subtitle'),\n \"cancel-button-text\": _ctx.$t('brandings.createModal.cancel'),\n \"confirm-button-text\": _ctx.$t('brandings.createModal.create'),\n onConfirm: createBranding\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('brandings.createModal.name')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-field-text\",\n id: \"name\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((formData.name) = $event)),\n type: \"text\",\n placeholder: _ctx.$t('brandings.createModal.defaultName'),\n required: \"\"\n }, null, 8, _hoisted_10), [\n [_vModelText, formData.name]\n ])\n ])\n ]),\n _: 1\n }, 8, [\"title\", \"subtitle\", \"cancel-button-text\", \"confirm-button-text\"]))\n : _createCommentVNode(\"\", true),\n (showConfirmModal.value)\n ? (_openBlock(), _createBlock(ConfirmActionModal, {\n key: 2,\n onClose: _cache[4] || (_cache[4] = ($event: any) => (showConfirmModal.value = false)),\n onConfirm: deleteBranding,\n title: _ctx.$t('brandings.deleteModal.title'),\n subtitle: _ctx.$t('brandings.deleteModal.subtitle'),\n message: _ctx.$t('brandings.deleteModal.text'),\n \"cancel-button-text\": _ctx.$t('brandings.deleteModal.cancel'),\n \"confirm-button-text\": _ctx.$t('brandings.deleteModal.confirm'),\n isCritical: \"\"\n }, null, 8, [\"title\", \"subtitle\", \"message\", \"cancel-button-text\", \"confirm-button-text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(TicketComponent)\n ], 64))\n}\n}\n\n})","import script from \"./BrandingsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BrandingsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./BrandingsView.vue?vue&type=style&index=0&id=4e98ae0e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4e98ae0e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-26424f24\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"logoSelection__container\" }\nconst _hoisted_2 = { class: \"fileInput__container\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"gnx-btn _primary\" }\nconst _hoisted_6 = {\n key: 1,\n class: \"logoSelection__label\"\n}\nconst _hoisted_7 = { class: \"gnx-btn _primary\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", {\n for: \"media\",\n class: \"fileInput__dropzone\",\n onDragover: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"prevent\"])),\n onDrop: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.handleFileDrop && _ctx.handleFileDrop(...args)), [\"prevent\"]))\n }, [\n (_ctx.localLogo)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"logoSelection__preview\",\n alt: \"logo\",\n src: _ctx.localLogo\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('brandings.image.replace')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('brandings.image.import')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('brandings.image.orDrop')), 1)\n ]))\n ], 32),\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"media\",\n accept: \".jfif, .pjpeg, .jpeg, .pjp, .jpg, .png, .gif, image/jpeg, image/png, image/gif\",\n onChange: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.handleFileUpload && _ctx.handleFileUpload(...args)))\n }, null, 32)\n ])\n ]))\n}","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { useToast } from 'vue-toastification';\r\n\r\n@Options({\r\n\tprops: {\r\n\t\tcompanyLogo: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t},\r\n\twatch: {\r\n\t\tcompanyLogo(newLogo: string) {\r\n\t\t\tthis.localLogo = newLogo;\r\n\t\t},\r\n\t},\r\n})\r\nexport default class ImageInputComponent extends Vue {\r\n\tMAX_FILE_SIZE = 2000000;\r\n\r\n\tlocalLogo = '';\r\n\tcompanyLogo!: string;\r\n\ttoast = useToast();\r\n\r\n\tmounted() {\r\n\t\tthis.localLogo = this.companyLogo;\r\n\t}\r\n\r\n\thandleFileUpload(e: Event) {\r\n\t\ttry {\r\n\t\t\tconst file = (e.target as HTMLInputElement).files\r\n\t\t\t\t? (e.target as HTMLInputElement).files?.[0]\r\n\t\t\t\t: (e as DragEvent).dataTransfer?.files[0];\r\n\r\n\t\t\tif (file && file.size > this.MAX_FILE_SIZE) {\r\n\t\t\t\tthis.toast.error(this.$t('brandings.logoSizeError'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (file && file.type === 'image/svg+xml') {\r\n\t\t\t\tthis.toast.error(this.$t('brandings.logoFormatError'));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (file) {\r\n\t\t\t\tconst reader = new FileReader();\r\n\t\t\t\treader.onload = (event: ProgressEvent<FileReader>) => {\r\n\t\t\t\t\tthis.localLogo = event.target?.result as string;\r\n\t\t\t\t\tthis.$emit('image-updated', this.localLogo);\r\n\t\t\t\t};\r\n\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n\r\n\thandleFileDrop(e: DragEvent) {\r\n\t\te.preventDefault();\r\n\t\ttry {\r\n\t\t\tconst file = e.dataTransfer?.files[0];\r\n\t\t\tif (file && file.type.startsWith('image/')) {\r\n\t\t\t\tthis.handleFileUpload(e);\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\t}\r\n}\r\n","import { render } from \"./ImageInputComponent.vue?vue&type=template&id=26424f24&scoped=true&ts=true\"\nimport script from \"./ImageInputComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ImageInputComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ImageInputComponent.vue?vue&type=style&index=0&id=26424f24&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-26424f24\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-afee4244\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"color-picker__container\" }\nconst _hoisted_2 = { class: \"color-picker__title\" }\nconst _hoisted_3 = { class: \"color-picker__selectedColor\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ColorPicker = _resolveComponent(\"ColorPicker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.title), 1),\n _createVNode(_component_ColorPicker, {\n pureColor: _ctx.selectedColor,\n \"onUpdate:pureColor\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedColor) = $event)),\n format: \"hex\",\n shape: \"square\",\n \"picker-type\": \"chrome\",\n \"use-type\": \"pure\",\n \"disable-history\": true,\n \"disable-alpha\": true\n }, null, 8, [\"pureColor\"]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.selectedColor), 1)\n ]))\n}","\r\nimport { Vue, Options } from 'vue-class-component';\r\nimport { ColorPicker } from 'vue3-colorpicker';\r\nimport 'vue3-colorpicker/style.css';\r\n\r\n@Options({\r\n\tcomponents: {\r\n\t\tColorPicker,\r\n\t},\r\n\tprops: {\r\n\t\ttitle: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\tcolor: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t},\r\n\twatch: {\r\n\t\tcolor(newColor) {\r\n\t\t\tthis.selectedColor = newColor;\r\n\t\t},\r\n\t\tselectedColor(newColor: string) {\r\n\t\t\tthis.$emit('color-updated', newColor);\r\n\t\t},\r\n\t},\r\n})\r\nexport default class ColorInputComponent extends Vue {\r\n\tselectedColor = '';\r\n\ttitle!: string;\r\n\tcolor!: string;\r\n\r\n\tcreated() {\r\n\t\tthis.selectedColor = this.color;\r\n\t}\r\n}\r\n","import { render } from \"./ColorInputComponent.vue?vue&type=template&id=afee4244&scoped=true&ts=true\"\nimport script from \"./ColorInputComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ColorInputComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ColorInputComponent.vue?vue&type=style&index=0&id=afee4244&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-afee4244\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/minus_blue.svg'\nimport _imports_1 from '@/assets/svg/plus_blue.svg'\nimport _imports_2 from '@/assets/png/document-preview.png'\nimport _imports_3 from '@/assets/svg/file_blue.svg'\nimport _imports_4 from '@/assets/svg/sign_pen_lightred.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-89e32872\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"preview-page\" }\nconst _hoisted_2 = { class: \"document-wrapper\" }\nconst _hoisted_3 = { class: \"control-container\" }\nconst _hoisted_4 = {\n class: \"documentControlls\",\n id: \"documentControlls\",\n ref: \"docControlls\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createStaticVNode(\"<div class=\\\"zoom-control webdoc-button\\\" data-v-89e32872><button class=\\\"zoom-control__minus\\\" data-v-89e32872><img src=\\\"\" + _imports_0 + \"\\\" alt=\\\"\\\" data-v-89e32872></button><p data-v-89e32872>100%</p><button class=\\\"zoom-control__plus\\\" data-v-89e32872><img src=\\\"\" + _imports_1 + \"\\\" alt=\\\"\\\" data-v-89e32872></button></div>\", 1)\nconst _hoisted_6 = { class: \"webdoc-button--group\" }\nconst _hoisted_7 = { class: \"webdoc-button --select --language\" }\nconst _hoisted_8 = {\n name: \"lang\",\n id: \"\"\n}\nconst _hoisted_9 = { class: \"doc-info\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"doc-info--title\" }, \"Devis à signer\", -1))\nconst _hoisted_11 = { class: \"doc-info--subtitle\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"documentController\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"document\",\n src: _imports_2,\n alt: \"Document\"\n })\n], -1))\nconst _hoisted_13 = { class: \"sign-container__header\" }\nconst _hoisted_14 = [\"src\"]\nconst _hoisted_15 = { class: \"sign-container__content\" }\nconst _hoisted_16 = { class: \"doc-info--subtitle\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"doc-info--title\" }, \"Jean Blanc\", -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"contact--logo\" }, \"VR\", -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Valentin Rona\", -1))\nconst _hoisted_20 = [\n _hoisted_18,\n _hoisted_19\n]\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"contact--logo\" }, \"JB\", -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Jean Blanc\", -1))\nconst _hoisted_23 = [\n _hoisted_21,\n _hoisted_22\n]\nconst _hoisted_24 = { class: \"document-text\" }\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_3,\n alt: \"titre doc\"\n}, null, -1))\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Devis à signer\", -1))\nconst _hoisted_27 = [\n _hoisted_25,\n _hoisted_26\n]\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_4,\n alt: \"\"\n}, null, -1))\nconst _hoisted_29 = { class: \"sign-btn__text\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"select\", _hoisted_8, [\n _createElementVNode(\"option\", null, _toDisplayString(_ctx.$i18n.locale), 1)\n ])\n ])\n ])\n ], 512)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(_ctx.$t('sign.hasBeenSent')) + \" 25/05/2021\", 1)\n ]),\n _hoisted_12\n ]),\n _createElementVNode(\"div\", {\n class: \"sign-container\",\n style: _normalizeStyle({\r\n\t\t\t\tbackgroundColor: _ctx.colors?.Background || undefined,\r\n\t\t\t\tcolor: _ctx.colors?.Text || undefined,\r\n\t\t\t})\n }, [\n _createElementVNode(\"div\", _hoisted_13, [\n (_ctx.logo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"company-logo\",\n src: _ctx.logo,\n alt: \"Company Logo\",\n style: _normalizeStyle(_ctx.logoStyle)\n }, null, 12, _hoisted_14))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", {\n class: \"doc-info\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t'border-bottom': _ctx.logo ? 'none' : '2px solid rgba(0, 0, 0, 0.024)',\r\n\t\t\t\t\t\t'border-radius': _ctx.logo ? '0' : '2px',\r\n\t\t\t\t\t})\n }, [\n _createElementVNode(\"p\", _hoisted_16, _toDisplayString(_ctx.$t('sign.youSigned')), 1),\n _hoisted_17\n ], 4),\n _createElementVNode(\"div\", {\n class: \"sign-pane\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\tcolor: _ctx.colors ? _ctx.colors.Text : undefined,\r\n\t\t\t\t\t})\n }, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('sign.sender')), 1),\n _createElementVNode(\"div\", {\n class: \"contact expediteur\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t\tbackgroundColor: _ctx.colors?.Button || undefined,\r\n\t\t\t\t\t\t\tcolor: _ctx.colors?.ButtonText || undefined,\r\n\t\t\t\t\t\t})\n }, _hoisted_20, 4),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('sign.recipient')), 1),\n _createElementVNode(\"div\", {\n class: \"contact\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t\tbackgroundColor: _ctx.colors?.Button || undefined,\r\n\t\t\t\t\t\t\tcolor: _ctx.colors?.ButtonText || undefined,\r\n\t\t\t\t\t\t})\n }, _hoisted_23, 4),\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.$t('sign.document')), 1),\n _createElementVNode(\"div\", {\n class: \"file\",\n style: _normalizeStyle({\r\n\t\t\t\t\t\t\tbackgroundColor: _ctx.colors?.Button || undefined,\r\n\t\t\t\t\t\t\tcolor: _ctx.colors?.ButtonText || undefined,\r\n\t\t\t\t\t\t})\n }, _hoisted_27, 4)\n ], 4)\n ]),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary sign-btn\",\n style: _normalizeStyle({\r\n\t\t\t\t\tbackgroundColor: _ctx.colors?.Button || undefined,\r\n\t\t\t\t\tcolor: _ctx.colors?.ButtonText || undefined,\r\n\t\t\t\t})\n }, [\n _hoisted_28,\n _createElementVNode(\"p\", _hoisted_29, _toDisplayString(_ctx.$t('sign.sign')), 1)\n ], 4)\n ], 4)\n ]))\n}","\r\nimport { Vue, Options } from 'vue-class-component';\r\n\r\n@Options({\r\n\tprops: {\r\n\t\tcolors: {\r\n\t\t\ttype: Object as () => {\r\n\t\t\t\tBackground: string;\r\n\t\t\t\tText: string;\r\n\t\t\t\tButton: string;\r\n\t\t\t\tButtonText: string;\r\n\t\t\t},\r\n\t\t\trequired: false,\r\n\t\t},\r\n\t\tlogo: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: '',\r\n\t\t},\r\n\t\tlogoSize: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: '',\r\n\t\t},\r\n\t},\r\n})\r\nexport default class SignPreviewComponent extends Vue {\r\n\tcolors!: {\r\n\t\tBackground: string;\r\n\t\tText: string;\r\n\t\tButton: string;\r\n\t\tButtonText: string;\r\n\t};\r\n\tlogo!: string;\r\n\tlogoSize!: string;\r\n\r\n\tget logoStyle() {\r\n\t\tconst sizes = {\r\n\t\t\tS: '100px',\r\n\t\t\tM: '180px',\r\n\t\t\tL: '250px',\r\n\t\t};\r\n\t\treturn { width: sizes[this.logoSize as keyof typeof sizes] || 'auto' };\r\n\t}\r\n}\r\n","import { render } from \"./SignPreviewComponent.vue?vue&type=template&id=89e32872&scoped=true&ts=true\"\nimport script from \"./SignPreviewComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./SignPreviewComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./SignPreviewComponent.vue?vue&type=style&index=0&id=89e32872&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-89e32872\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, vModelText as _vModelText, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelSelect as _vModelSelect, createBlock as _createBlock, vModelCheckbox as _vModelCheckbox, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-79e5869f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-title-2__container\" }\nconst _hoisted_2 = { class: \"app-title-2__text\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = { class: \"preferences__settings\" }\nconst _hoisted_6 = { class: \"preferences__section\" }\nconst _hoisted_7 = { class: \"preferences__title\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"preferences__size-container\"\n}\nconst _hoisted_9 = { class: \"gnx-form-field\" }\nconst _hoisted_10 = { class: \"gnx-label\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"S\" }, \"S\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"M\" }, \"M\", -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"L\" }, \"L\", -1))\nconst _hoisted_14 = [\n _hoisted_11,\n _hoisted_12,\n _hoisted_13\n]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"gnx-field-select-arrow\" }, null, -1))\nconst _hoisted_16 = { class: \"preferences__section\" }\nconst _hoisted_17 = { class: \"preferences__title\" }\nconst _hoisted_18 = { class: \"preferences__colors-container\" }\nconst _hoisted_19 = { class: \"preferences__section\" }\nconst _hoisted_20 = [\"checked\"]\nconst _hoisted_21 = {\n class: \"gnx-checkbox-txt\",\n for: \"isDefault\"\n}\nconst _hoisted_22 = { class: \"app-card__footer\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = {\n key: 2,\n class: \"app-spinner\"\n}\nconst _hoisted_25 = { key: 3 }\nconst _hoisted_26 = { class: \"app-title-2__container\" }\nconst _hoisted_27 = { class: \"app-title-2__text\" }\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-title-2__line\" }, null, -1))\nconst _hoisted_29 = { class: \"preferences__preview\" }\n\nimport { ref, reactive, computed, onMounted } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport BrandingsService from '@/services/brandings.service';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport ImageInputComponent from './ImageInputComponent.vue';\r\nimport ColorInputComponent from './ColorInputComponent.vue';\r\nimport SignPreviewComponent from './SignPreviewComponent.vue';\r\nimport ButtonBack from '@/components/general/ButtonBack.vue';\r\nimport { useI18n } from 'vue-i18n';\r\nimport { useRouter } from 'vue-router';\r\nimport OrgContractService from '@/services/org-contract.service';\r\nimport { Contract } from '@/types/salesforce-objects.type';\r\nimport { Branding } from '@/types/brandings.type';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BrandingView',\n setup(__props) {\n\r\nconst router = useRouter();\r\nconst brandingId = router.currentRoute.value.params.id as string;\r\n\r\nconst { t } = useI18n();\r\nconst toast = useToast();\r\n\r\nconst isLoading = ref(true);\r\n\r\nconst savedBranding = ref<Branding | undefined>(undefined);\r\n\r\nconst brandingName = ref<string>('');\r\nconst brandingIsDefault = ref<boolean>(false);\r\n\r\nconst defaultColors = reactive({\r\n\tBackground: '#012638',\r\n\tText: '#ffffff',\r\n\tButton: '#0B827E',\r\n\tButtonText: '#EAF6FF',\r\n});\r\n\r\nconst localColors = reactive({ ...defaultColors });\r\nconst savedColors = reactive({ ...defaultColors });\r\n\r\nconst keys = reactive({\r\n\tBackground: 'Background',\r\n\tText: 'Text',\r\n\tButton: 'Button',\r\n\tButtonText: 'ButtonText',\r\n});\r\n\r\nconst localLogo = ref<string | null>(null);\r\nconst localLogoSize = ref('M');\r\n\r\nconst currentContract = ref<Contract | undefined>(undefined);\r\n\r\nconst loadPreferences = async () => {\r\n\ttry {\r\n\t\tconst branding = await BrandingsService.getBranding(brandingId);\r\n\t\tisLoading.value = false;\r\n\r\n\t\tsavedBranding.value = branding;\r\n\r\n\t\tbrandingName.value = branding?.name ?? '';\r\n\r\n\t\tconst storedColors = {\r\n\t\t\tBackground: branding?.background,\r\n\t\t\tText: branding?.text,\r\n\t\t\tButton: branding?.button,\r\n\t\t\tButtonText: branding?.buttonText,\r\n\t\t};\r\n\r\n\t\tif (storedColors) {\r\n\t\t\tfor (const key of Object.keys(defaultColors) as (keyof typeof defaultColors)[]) {\r\n\t\t\t\tif (!storedColors[key]) {\r\n\t\t\t\t\tstoredColors[key] = defaultColors[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tObject.assign(localColors, storedColors);\r\n\t\t\tObject.assign(savedColors, storedColors);\r\n\t\t}\r\n\r\n\t\tconst storedLogo = (branding?.logo || branding?.logoSize) && {\r\n\t\t\tLogo: branding?.logo,\r\n\t\t\tLogoSize: branding?.logoSize,\r\n\t\t};\r\n\t\tif (storedLogo) {\r\n\t\t\tconst { Logo, LogoSize } = storedLogo;\r\n\t\t\tlocalLogo.value = Logo ?? null;\r\n\t\t\tlocalLogoSize.value = LogoSize || 'M';\r\n\t\t}\r\n\r\n\t\tbrandingIsDefault.value = branding?.isDefault ?? false;\r\n\t\tawait getContract();\r\n\t} catch (error) {\r\n\t\tconsole.error(error);\r\n\t\ttoast.error('Error loading preferences');\r\n\t} finally {\r\n\t\tisLoading.value = false;\r\n\t}\r\n};\r\n\r\nconst getContract = async () => {\r\n\ttry {\r\n\t\tcurrentContract.value = await OrgContractService.getCurrentContract();\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.noContract'));\r\n\t\tconsole.error(error);\r\n\t}\r\n};\r\n\r\nconst updateColor = (type: 'Background' | 'Text' | 'Button' | 'ButtonText', color: string) => {\r\n\tlocalColors[type] = color;\r\n};\r\n\r\nconst updateLogo = (newLogo: string) => {\r\n\tlocalLogo.value = newLogo;\r\n};\r\n\r\nconst preferencesUpdated = computed(() => {\r\n\treturn (\r\n\t\tJSON.stringify(localColors) !== JSON.stringify(savedColors) ||\r\n\t\tlocalLogo.value !== savedBranding.value?.logo ||\r\n\t\tlocalLogoSize.value !== savedBranding.value?.logoSize ||\r\n\t\tbrandingName.value !== savedBranding.value?.name ||\r\n\t\tbrandingIsDefault.value !== savedBranding.value?.isDefault\r\n\t);\r\n});\r\n\r\nconst saveChanges = async () => {\r\n\tisLoading.value = true;\r\n\r\n\ttry {\r\n\t\tconst updatedBranding = {\r\n\t\t\tid: brandingId,\r\n\t\t\tname: brandingName.value.trim(),\r\n\t\t\tbackground: localColors.Background,\r\n\t\t\ttext: localColors.Text,\r\n\t\t\tbutton: localColors.Button,\r\n\t\t\tbuttonText: localColors.ButtonText,\r\n\t\t\tlogo: localLogo.value,\r\n\t\t\tlogoSize: localLogoSize.value,\r\n\t\t\tisDefault: brandingIsDefault.value,\r\n\t\t};\r\n\r\n\t\tawait BrandingsService.updateBranding(updatedBranding);\r\n\t\tawait loadPreferences();\r\n\t\ttoast.success(t('brandings.saveSuccess'));\r\n\t} catch (error) {\r\n\t\tconsole.error(error);\r\n\t\ttoast.error(t('brandings.saveError'));\r\n\t} finally {\r\n\t\tisLoading.value = false;\r\n\t}\r\n};\r\n\r\nonMounted(loadPreferences);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(ButtonBack, {\n buttonLabel: _ctx.$t('brandings.backToList'),\n onOnClick: _cache[0] || (_cache[0] = ($event: any) => (_unref(router).push(`/brandings`)))\n }, null, 8, [\"buttonLabel\"]),\n (!isLoading.value)\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"app-title-1 preferences__name-input\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((brandingName).value = $event))\n }, null, 512)), [\n [_vModelText, brandingName.value]\n ])\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('brandings.title')), 1),\n _hoisted_3\n ]),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t('brandings.logo')), 1),\n _createVNode(ImageInputComponent, {\n onImageUpdated: updateLogo,\n companyLogo: localLogo.value\n }, null, 8, [\"companyLogo\"]),\n (localLogo.value && currentContract.value?.gnx__Account__r?.webDoc__c)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", _hoisted_10, _toDisplayString(_ctx.$t('brandings.image.size')), 1),\n _withDirectives(_createElementVNode(\"select\", {\n class: \"gnx-field-select\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((localLogoSize).value = $event))\n }, _hoisted_14, 512), [\n [_vModelSelect, localLogoSize.value]\n ]),\n _hoisted_15\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('brandings.colors.title')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createBlock(ColorInputComponent, {\n key: keys.Background,\n title: _ctx.$t('brandings.colors.background'),\n color: localColors.Background,\n onColorUpdated: _cache[3] || (_cache[3] = ($event: any) => (updateColor('Background', $event)))\n }, null, 8, [\"title\", \"color\"])),\n (_openBlock(), _createBlock(ColorInputComponent, {\n key: keys.Text,\n title: _ctx.$t('brandings.colors.text'),\n color: localColors.Text,\n onColorUpdated: _cache[4] || (_cache[4] = ($event: any) => (updateColor('Text', $event)))\n }, null, 8, [\"title\", \"color\"])),\n (_openBlock(), _createBlock(ColorInputComponent, {\n key: keys.Button,\n title: _ctx.$t('brandings.colors.button'),\n color: localColors.Button,\n onColorUpdated: _cache[5] || (_cache[5] = ($event: any) => (updateColor('Button', $event)))\n }, null, 8, [\"title\", \"color\"])),\n (_openBlock(), _createBlock(ColorInputComponent, {\n key: keys.ButtonText,\n title: _ctx.$t('brandings.colors.buttonText'),\n color: localColors.ButtonText,\n onColorUpdated: _cache[6] || (_cache[6] = ($event: any) => (updateColor('ButtonText', $event)))\n }, null, 8, [\"title\", \"color\"]))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-checkbox-btn\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((brandingIsDefault).value = $event)),\n checked: brandingIsDefault.value,\n id: \"isDefault\"\n }, null, 8, _hoisted_20), [\n [_vModelCheckbox, brandingIsDefault.value]\n ]),\n _createElementVNode(\"label\", _hoisted_21, _toDisplayString(_ctx.$t('brandings.defineDefault')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: saveChanges,\n disabled: !preferencesUpdated.value\n }, _toDisplayString(_ctx.$t('brandings.save')), 9, _hoisted_23)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_24)),\n (!isLoading.value && currentContract.value?.gnx__Account__r?.webDoc__c)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"p\", _hoisted_27, _toDisplayString(_ctx.$t('brandings.preview')), 1),\n _hoisted_28\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(SignPreviewComponent, {\n colors: localColors,\n logo: localLogo.value,\n logoSize: localLogoSize.value\n }, null, 8, [\"colors\", \"logo\", \"logoSize\"])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(TicketComponent)\n ], 64))\n}\n}\n\n})","import script from \"./BrandingView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BrandingView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./BrandingView.vue?vue&type=style&index=0&id=79e5869f&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79e5869f\"]])\n\nexport default __exports__","import { AffectedUser, Product, Priority, Status, Ticket, CloseReason } from '@/types/ticket.type';\r\nimport CalloutAppApiService from './callout-app-api.service';\r\nimport OrgInformationsService from './org-informations.service';\r\n\r\nexport default class TicketService {\r\n\tstatic async getTickets(): Promise<Ticket[]> {\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/tickets`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((results) => {\r\n\t\t\t\treturn results;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async getTicketById(id: string): Promise<Ticket> {\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'get',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/ticket/${id}`,\r\n\t\t\t''\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async closeTicketById(id: string): Promise<void> {\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'post',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/ticket/${id}/close`\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async createTicket(ticket: Ticket): Promise<Ticket> {\r\n\t\tconst orgId = await OrgInformationsService.getFirstOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'post',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/ticket`,\r\n\t\t\tticket\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async createNewComment(id: string, comment: string, subject: string): Promise<void> {\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'post',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/ticket/${id}/message`,\r\n\t\t\t{ content: comment, subject: subject }\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async uploadTicketFile(id: string, file: File): Promise<Ticket> {\r\n\t\tconst orgId = await OrgInformationsService.getOrgId();\r\n\r\n\t\t// Création de l'objet FormData\r\n\t\tconst formData = new FormData();\r\n\t\tformData.append('file', file);\r\n\r\n\t\t// Envoi avec un header `multipart/form-data`\r\n\t\treturn await CalloutAppApiService.calloutAsync(\r\n\t\t\t'post',\r\n\t\t\t`${process.env.VUE_APP_APP_API_URI}/api/salesforce/org/${orgId}/ticket/${id}/file`,\r\n\t\t\tformData\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic async getProducts(): Promise<Product[]> {\r\n\t\treturn [{ id: 'Doc' }, { id: 'Sign' }, { id: 'Webdoc' }, { id: 'Connect' }, { id: 'RF' }, { id: 'Other' }];\r\n\t}\r\n\r\n\tstatic async getPriorities(): Promise<Priority[]> {\r\n\t\treturn [{ id: 'P1' }, { id: 'P2' }, { id: 'P3' }, { id: 'P4' }];\r\n\t}\r\n\r\n\tstatic async getAffectedUsers(): Promise<AffectedUser[]> {\r\n\t\treturn [{ id: '1 à 20' }, { id: '20 à 100' }, { id: '100 à 200' }, { id: '+200' }];\r\n\t}\r\n\r\n\tstatic async getStatuses(): Promise<Status[]> {\r\n\t\treturn [{ id: 'new' }, { id: 'inProgress' }, { id: 'closed' }];\r\n\t}\r\n\r\n\tstatic getStatusIdFromTicket(ticket: Ticket): string {\r\n\t\tif (ticket.status === 'Closed') return 'closed';\r\n\t\telse if (ticket.app_IsNew__c === true) return 'new';\r\n\t\telse return 'inProgress';\r\n\t}\r\n\r\n\tstatic async getCloseReasons(): Promise<CloseReason[]> {\r\n\t\treturn [{ id: 'R1' }, { id: 'R2' }, { id: 'R3' }];\r\n\t}\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-70da5dde\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"section-separator__container\" }\nconst _hoisted_2 = { class: \"section-separator__text\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"section-separator__line\" }, null, -1))\n\n\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SectionSeparator',\n props: {\r\n\ttext: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n},\n setup(__props) {\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(__props.text), 1),\n _hoisted_3\n ]))\n}\n}\n\n})","import script from \"./SectionSeparator.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SectionSeparator.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SectionSeparator.vue?vue&type=style&index=0&id=70da5dde&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-70da5dde\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"app-title-1 --shrinkable\" }\n\nimport { ref, onMounted, computed, watch } from 'vue';\r\nimport TicketService from '@/services/ticket.service';\r\nimport router from '@/router';\r\nimport { Ticket } from '@/types/ticket.type';\r\nimport { ApiError } from '@/types/error.type';\r\nimport SectionSeparator from '@/components/general/SectionSeparator.vue';\r\nimport DataTable from '@/components/general/DataTable.vue';\r\nimport TicketComponent from '@/components/general/TicketComponent.vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { DatatableColumn } from '@/types/datatable-column';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TicketView',\n setup(__props) {\n\r\nconst { t } = useI18n();\r\n\r\nconst toast = useToast();\r\n\r\nconst tickets = ref<Ticket[]>([]);\r\nconst openTickets = ref<Ticket[]>([]);\r\nconst closedTickets = ref<Ticket[]>([]);\r\nconst isLoadingTickets = ref(false);\r\n\r\nconst openTicketsColumns = computed<DatatableColumn<Ticket>[]>(() => [\r\n\t{ key: 'caseNumber', label: t('tickets.objects.number') },\r\n\t{ key: 'subject', label: t('tickets.objects.description') },\r\n\t{ key: 'createdDate', label: t('tickets.objects.created_at'), type: 'date' },\r\n\t{ key: 'displayStatus', label: t('tickets.objects.status') },\r\n]);\r\n\r\nconst closedTicketsColumns = computed<DatatableColumn<Ticket>[]>(() => [\r\n\t{ key: 'caseNumber', label: t('tickets.objects.number') },\r\n\t{ key: 'subject', label: t('tickets.objects.description') },\r\n\t{ key: 'createdDate', label: t('tickets.objects.created_at'), type: 'date' },\r\n\t{ key: 'closedDate', label: t('tickets.objects.closed_at'), type: 'date' },\r\n]);\r\n\r\nconst fetchTickets = async () => {\r\n\ttry {\r\n\t\tisLoadingTickets.value = true;\r\n\t\ttickets.value = await TicketService.getTickets();\r\n\t} catch (err) {\r\n\t\tconst apiError = err as ApiError;\r\n\t\tconst error = apiError.response.data || t('error.getTickets');\r\n\t\ttoast.error(error);\r\n\t} finally {\r\n\t\tisLoadingTickets.value = false;\r\n\t}\r\n};\r\n\r\nconst displayTickets = computed<Ticket[]>(() => {\r\n\treturn tickets.value.map((ticket) => {\r\n\t\tconst statusResult = TicketService.getStatusIdFromTicket(ticket);\r\n\t\treturn {\r\n\t\t\t...ticket,\r\n\t\t\tdisplayStatus: t('pickList.status.' + statusResult),\r\n\t\t};\r\n\t});\r\n});\r\n\r\n// Surveille les modifications de la liste des tickets\r\nwatch(displayTickets, (newTickets) => {\r\n\t// Filtre les tickets en cours et nouveaux\r\n\topenTickets.value = newTickets.filter((ticket) => ticket.status !== 'Closed');\r\n\r\n\t// Filtre les tickets clôturés\r\n\tclosedTickets.value = newTickets.filter((ticket) => ticket.status === 'Closed');\r\n});\r\n\r\nconst openTicketCreateView = () => {\r\n\trouter.push({ name: 'ticketCreate' });\r\n};\r\n\r\nconst openTicketEditView = (ticket: Ticket) => {\r\n\trouter.push({ name: 'ticketEdit', params: { id: ticket.id } });\r\n};\r\n\r\nonMounted(() => {\r\n\tfetchTickets();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.$t('app.tickets')), 1),\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.openTicketsList')\n }, null, 8, [\"text\"]),\n _createVNode(DataTable, {\n headerParamsButton: {\r\n\t\t\tname: _ctx.$t('tickets.openTicketCreateView'),\r\n\t\t\ticon: 'add_circle_darkblue.svg',\r\n\t\t\tcallback: openTicketCreateView,\r\n\t\t},\n data: openTickets.value,\n elementName: openTickets.value.length + ' ' + _ctx.$t('tickets.openTickets'),\n columns: openTicketsColumns.value,\n isLoading: isLoadingTickets.value,\n isRowClickable: true,\n noDataMessage: _ctx.$t('datatable.noDataFound'),\n onRowClick: openTicketEditView\n }, null, 8, [\"headerParamsButton\", \"data\", \"elementName\", \"columns\", \"isLoading\", \"noDataMessage\"]),\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.closedTicketsList')\n }, null, 8, [\"text\"]),\n _createVNode(DataTable, {\n data: closedTickets.value,\n elementName: closedTickets.value.length + ' ' + _ctx.$t('tickets.closedTickets'),\n columns: closedTicketsColumns.value,\n isLoading: isLoadingTickets.value,\n isRowClickable: true,\n noDataMessage: _ctx.$t('datatable.noDataFound'),\n onRowClick: openTicketEditView\n }, null, 8, [\"data\", \"elementName\", \"columns\", \"isLoading\", \"noDataMessage\"]),\n _createVNode(TicketComponent)\n ], 64))\n}\n}\n\n})","import script from \"./TicketView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TicketView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, unref as _unref, normalizeStyle as _normalizeStyle, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8ea3817e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"gnx-label\"\n}\nconst _hoisted_2 = {\n key: 0,\n style: {\"color\":\"#e58a80\"}\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"custom-toolbar\" }, [\n /*#__PURE__*/_createElementVNode(\"select\", { class: \"ql-font\" }, [\n /*#__PURE__*/_createElementVNode(\"option\", { selected: \"\" }),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"serif\" }),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"monospace\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"select\", { class: \"ql-size\" }, [\n /*#__PURE__*/_createElementVNode(\"option\", {\n value: \"\",\n selected: \"\"\n }, \"Default\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"6pt\" }, \"6\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"8pt\" }, \"8\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"9pt\" }, \"9\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"10pt\" }, \"10\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"11pt\" }, \"11\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"12pt\" }, \"12\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"14pt\" }, \"14\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"16pt\" }, \"16\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"20pt\" }, \"20\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"22pt\" }, \"22\"),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"24pt\" }, \"24\")\n ]),\n /*#__PURE__*/_createElementVNode(\"select\", { class: \"ql-color\" }),\n /*#__PURE__*/_createElementVNode(\"select\", { class: \"ql-background\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-bold\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-italic\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-underline\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-strike\" }),\n /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"ql-list\",\n value: \"bullet\"\n }),\n /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"ql-list\",\n value: \"ordered\"\n }),\n /*#__PURE__*/_createElementVNode(\"select\", { class: \"ql-align\" }, [\n /*#__PURE__*/_createElementVNode(\"option\", { selected: \"\" }),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"center\" }),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"right\" }),\n /*#__PURE__*/_createElementVNode(\"option\", { value: \"justify\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-link\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-image\" }),\n /*#__PURE__*/_createElementVNode(\"button\", { class: \"ql-clean\" })\n], -1))\nconst _hoisted_4 = {\n key: 1,\n class: \"gnx-field-error\"\n}\n\nimport { ref, watch, onMounted, computed } from 'vue';\r\nimport { QuillEditor } from '@vueup/vue-quill';\r\nimport '@vueup/vue-quill/dist/vue-quill.snow.css';\r\nimport Quill from 'quill';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'InputTextHTML',\n props: {\r\n\tlabel: {\r\n\t\ttype: String,\r\n\t\tdefault: null,\r\n\t},\r\n\tmodelValue: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tplaceholder: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n\terrorMessage: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n\tisResizable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: true,\r\n\t},\r\n\tminHeight: {\r\n\t\ttype: String,\r\n\t\tdefault: 'auto',\r\n\t},\r\n\twidth: {\r\n\t\ttype: String,\r\n\t\tdefault: '100%',\r\n\t},\r\n\tisRequired: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n},\n emits: ['update:modelValue', 'change'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\nconst FontAttributor = Quill.import('attributors/style/font');\r\nconst SizeAttributor = Quill.import('attributors/style/size');\r\nconst AlignAttributor = Quill.import('attributors/style/align');\r\nconst BackgroundAttributor = Quill.import('attributors/style/background');\r\nconst ColorAttributor = Quill.import('attributors/style/color');\r\nconst DirectionAttributor = Quill.import('attributors/style/direction');\r\n\r\n(SizeAttributor as any).whitelist = [\r\n\t'',\r\n\t'6pt',\r\n\t'8pt',\r\n\t'9pt',\r\n\t'10pt',\r\n\t'11pt',\r\n\t'12pt',\r\n\t'14pt',\r\n\t'16pt',\r\n\t'20pt',\r\n\t'22pt',\r\n\t'24pt',\r\n];\r\n\r\nQuill.register('formats/size', SizeAttributor, true);\r\nQuill.register('formats/font', FontAttributor, true);\r\nQuill.register('formats/align', AlignAttributor, true);\r\nQuill.register('formats/background', BackgroundAttributor, true);\r\nQuill.register('formats/color', ColorAttributor, true);\r\nQuill.register('formats/direction', DirectionAttributor, true);\r\n\r\n\r\n\r\n\r\nconst quillEditorRef = ref<InstanceType<typeof QuillEditor> | null>(null);\r\n\r\nfunction onChangeHandler(content: string) {\r\n\temit('change', content);\r\n}\r\n\r\nconst inputValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(val: string) {\r\n\t\temit('update:modelValue', val);\r\n\t},\r\n});\r\n\r\nwatch(\r\n\t() => props.modelValue,\r\n\t(newVal) => {\r\n\t\tif (quillEditorRef.value) {\r\n\t\t\tconst quill = quillEditorRef.value.getQuill();\r\n\r\n\t\t\tif (quill.root.innerHTML !== newVal) {\r\n\t\t\t\tquill.clipboard.dangerouslyPasteHTML(newVal || '');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n);\r\n\r\nwatch(\r\n\t() => props.disabled,\r\n\t(newValue) => {\r\n\t\tif (quillEditorRef.value) {\r\n\t\t\tquillEditorRef.value.getQuill()?.enable(!newValue);\r\n\t\t}\r\n\t}\r\n);\r\n\r\nonMounted(() => {\r\n\tif (quillEditorRef.value) {\r\n\t\tquillEditorRef.value.getQuill()?.enable(!props.disabled);\r\n\t}\r\n});\r\n\r\nwatch(\r\n\t() => props.placeholder,\r\n\t(newPlaceholder) => {\r\n\t\tif (quillEditorRef.value) {\r\n\t\t\tconst quill = quillEditorRef.value.getQuill();\r\n\r\n\t\t\t// Met à jour le placeholder dans Quill\r\n\t\t\tquill.root.dataset.placeholder = newPlaceholder;\r\n\t\t}\r\n\t}\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"gnx-form-field _thin\", { disabled: __props.disabled, _error: __props.errorMessage }])\n }, [\n (__props.label)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n (__props.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"* \"))\n : _createCommentVNode(\"\", true),\n _createTextVNode(_toDisplayString(__props.label), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_unref(QuillEditor), {\n ref_key: \"quillEditorRef\",\n ref: quillEditorRef,\n content: inputValue.value,\n \"onUpdate:content\": [\n _cache[0] || (_cache[0] = ($event: any) => ((inputValue).value = $event)),\n onChangeHandler\n ],\n contentType: \"html\",\n theme: \"snow\",\n toolbar: \"#custom-toolbar\",\n placeholder: __props.disabled === true ? '' : __props.placeholder,\n style: _normalizeStyle({ 'min-height': __props.minHeight, width: __props.width })\n }, {\n toolbar: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"content\", \"placeholder\", \"style\"]),\n (__props.errorMessage)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(__props.errorMessage), 1))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","import script from \"./InputTextHTML.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./InputTextHTML.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./InputTextHTML.vue?vue&type=style&index=0&id=8ea3817e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8ea3817e\"]])\n\nexport default __exports__","import script from \"./StatusSteps.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./StatusSteps.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./StatusSteps.vue?vue&type=style&index=0&id=80f0c25c&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-80f0c25c\"]])\n\nexport default __exports__","export function htmlToString(html: string): string {\r\n\tif (!html) return '';\r\n\r\n\tconst parser = new DOMParser();\r\n\tconst doc = parser.parseFromString(html, 'text/html');\r\n\r\n\t// On récupère tous les <p> (et/ou <div>...) dans le body\r\n\tconst paragraphs = Array.from(doc.body.querySelectorAll('p'));\r\n\r\n\t// On va concaténer le texte de chaque paragraphe\r\n\t// en ajoutant un espace (ou un \\n) entre chaque\r\n\tlet result = paragraphs.map((p) => p.textContent?.trim() ?? '').join('\\n');\r\n\r\n\t// Par exemple, vous pouvez encore faire un .replace si vous voulez supprimer\r\n\t// les doubles espaces résiduels\r\n\tresult = result.replace(/[ ]{2,}/g, ' ').trim();\r\n\r\n\treturn result;\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, unref as _unref, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/arrow_right_darkblue_new.svg'\nimport _imports_1 from '@/assets/png/logo-gonexa.png'\nimport _imports_2 from '@/assets/svg/user_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3dd61c0a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"email-message-container\"\n}\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Arrow Icon\"\n}, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"email-message-item__avatar\" }\nconst _hoisted_6 = {\n key: 0,\n src: _imports_1,\n alt: \"Support Icon\"\n}\nconst _hoisted_7 = {\n key: 1,\n src: _imports_2,\n alt: \"User Icon\"\n}\nconst _hoisted_8 = { class: \"email-message-item__content\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"email-message-item__content-name\"\n}\nconst _hoisted_10 = {\n key: 1,\n class: \"email-message-item__content-body\"\n}\nconst _hoisted_11 = {\n key: 0,\n class: \"email-message-item__date\"\n}\nconst _hoisted_12 = { class: \"date-text\" }\nconst _hoisted_13 = { class: \"time-text\" }\nconst _hoisted_14 = [\"innerHTML\"]\nconst _hoisted_15 = {\n key: 1,\n class: \"email-message-line\"\n}\n\nimport { ref } from 'vue';\r\nimport { htmlToString } from '@/utils/formatter/htmlToString';\r\nimport { EmailMessage } from '@/types/ticket.type';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EmailMessageList',\n props: {\n emailMessages: {}\n },\n setup(__props: any) {\n\r\nconst { locale } = useI18n();\r\n\r\n\r\n\r\n/** Index de l'item actuellement déplié (ou null si aucun) */\r\nconst expandedIndex = ref<number | null>(null);\r\n\r\n/** Au clic, on bascule l'expansion : si l'item est déjà ouvert, on replie. */\r\nfunction toggleExpand(i: number) {\r\n\texpandedIndex.value = expandedIndex.value === i ? null : i;\r\n}\r\n\r\nfunction isSupport(email: string): boolean {\r\n\treturn email === 'support@gonexa.fr';\r\n}\r\n\r\nfunction formatDate(date: Date): string {\r\n\treturn new Intl.DateTimeFormat(locale.value, {\r\n\t\tday: 'numeric',\r\n\t\tmonth: 'long',\r\n\t\tyear: 'numeric',\r\n\t}).format(new Date(date));\r\n}\r\n\r\nfunction formatTime(date: Date): string {\r\n\treturn new Intl.DateTimeFormat(locale.value, {\r\n\t\thour: '2-digit',\r\n\t\tminute: '2-digit',\r\n\t}).format(new Date(date));\r\n}\r\n\r\nfunction orderEmailMessages(messages: EmailMessage[]): EmailMessage[] {\r\n\treturn [...messages].sort((a, b) => {\r\n\t\tconst dateA = new Date(a.createdDate).getTime();\r\n\t\tconst dateB = new Date(b.createdDate).getTime();\r\n\t\treturn dateB - dateA; // Tri décroissant (les plus récents en premier)\r\n\t});\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_ctx.emailMessages.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(orderEmailMessages(_ctx.emailMessages), (mail, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n _createElementVNode(\"div\", {\n class: \"email-message-item\",\n onClick: ($event: any) => (toggleExpand(index))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"email-message-item__arrow\", { rotated: expandedIndex.value === index }])\n }, _hoisted_4, 2),\n _createElementVNode(\"div\", _hoisted_5, [\n (mail.fromAddress && isSupport(mail.fromAddress))\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_6))\n : (_openBlock(), _createElementBlock(\"img\", _hoisted_7))\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (mail.fromName)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _toDisplayString(mail.fromName), 1))\n : _createCommentVNode(\"\", true),\n (mail.htmlBody)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _toDisplayString(_unref(htmlToString)(mail.htmlBody)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (mail.createdDate)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString(formatDate(mail.createdDate)), 1),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(formatTime(mail.createdDate)), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_2),\n (mail.htmlBody)\n ? (_openBlock(), _createBlock(_Transition, {\n key: 0,\n name: \"expand\"\n }, {\n default: _withCtx(() => [\n (expandedIndex.value === index)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"email-message-item__expanded\",\n innerHTML: mail.htmlBody\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024))\n : _createCommentVNode(\"\", true),\n (_ctx.emailMessages.length > index + 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./EmailMessageList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EmailMessageList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./EmailMessageList.vue?vue&type=style&index=0&id=3dd61c0a&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3dd61c0a\"]])\n\nexport default __exports__","<template>\r\n\t<div :style=\"{ 'max-width': maxWidth, 'min-width': minWidth }\">\r\n\t\t<div\r\n\t\t\tclass=\"file-uploader\"\r\n\t\t\t:class=\"{ 'is-drag-over': dragOver, disabled: disabled }\"\r\n\t\t\t@dragenter.prevent=\"onDragEnter\"\r\n\t\t\t@dragover.prevent=\"onDragOver\"\r\n\t\t\t@dragleave.prevent=\"onDragLeave\"\r\n\t\t\t@drop.prevent=\"onDrop\"\r\n\t\t>\r\n\t\t\t<div class=\"file-uploader__content\">\r\n\t\t\t\t<button type=\"button\" class=\"gnx-btn _primary\" @click=\"triggerFileDialog\" :disabled=\"disabled\">\r\n\t\t\t\t\t{{ buttonLabel }}\r\n\t\t\t\t</button>\r\n\r\n\t\t\t\t<span class=\"drop-label\">\r\n\t\t\t\t\t{{ dropLabel }}\r\n\t\t\t\t</span>\r\n\r\n\t\t\t\t<input ref=\"fileInput\" type=\"file\" :accept=\"extensionsAccepted\" @change=\"onFileSelected\" hidden />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-if=\"uploadedFiles.length\" class=\"uploaded-files\">\r\n\t\t\t<div\r\n\t\t\t\tv-for=\"(file, index) in uploadedFiles\"\r\n\t\t\t\t:key=\"index\"\r\n\t\t\t\tclass=\"uploaded-files-file\"\r\n\t\t\t\t:class=\"{ disabled: disabled }\"\r\n\t\t\t>\r\n\t\t\t\t<img class=\"uploaded-files-file-image\" src=\"@/assets/svg/paper-clip.svg\" alt=\"\" />\r\n\t\t\t\t<div class=\"uploaded-files-file-name\">{{ file.name }}</div>\r\n\t\t\t\t<div class=\"uploaded-files-file-size\">{{ formatFileSize(file.size) }}</div>\r\n\t\t\t\t<button class=\"uploaded-files-file-delete\" @click=\"removeFile(index)\" :disabled=\"disabled\"></button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, defineProps, computed, defineEmits } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst { t } = useI18n();\r\n\r\nconst toast = useToast();\r\n\r\nconst props = defineProps({\r\n\textensions: {\r\n\t\ttype: Array,\r\n\t\tdefault: () => [],\r\n\t},\r\n\tbuttonLabel: {\r\n\t\ttype: String,\r\n\t\tdefault: 'Importer un fichier',\r\n\t},\r\n\tdropLabel: {\r\n\t\ttype: String,\r\n\t\tdefault: 'ou déposer',\r\n\t},\r\n\tuploadedFiles: {\r\n\t\ttype: Array,\r\n\t\tdefault: () => [],\r\n\t},\r\n\tmaxWidth: {\r\n\t\ttype: String,\r\n\t\tdefault: '50%',\r\n\t},\r\n\tminWidth: {\r\n\t\ttype: String,\r\n\t\tdefault: '300px',\r\n\t},\r\n\tmaxFileSize: {\r\n\t\ttype: Number,\r\n\t\tdefault: null,\r\n\t},\r\n\tmaxFiles: {\r\n\t\ttype: Number,\r\n\t\tdefault: null,\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n});\r\n\r\nconst emit = defineEmits(['addFile', 'removeFile']);\r\n\r\nconst extensionsAccepted = computed(() => {\r\n\treturn props.extensions.map((ext) => `.${ext}`).join(',');\r\n});\r\n\r\nconst fileInput = ref(null);\r\nconst dragOver = ref(false);\r\n\r\nfunction triggerFileDialog() {\r\n\tif (!props.disabled) {\r\n\t\tfileInput.value?.click();\r\n\t}\r\n}\r\n\r\nfunction onFileSelected(event) {\r\n\tif (props.disabled) return;\r\n\tconst files = event.target.files;\r\n\tif (!files || !files.length) return;\r\n\r\n\temitAddFile(files[0]);\r\n\r\n\tevent.target.value = '';\r\n}\r\n\r\nfunction onDrop(event) {\r\n\tif (props.disabled) return;\r\n\tdragOver.value = false;\r\n\tconst files = event.dataTransfer?.files;\r\n\tif (!files || !files.length) return;\r\n\r\n\temitAddFile(files[0]);\r\n}\r\n\r\nfunction onDragEnter() {\r\n\tif (!props.disabled) {\r\n\t\tdragOver.value = true;\r\n\t}\r\n}\r\nfunction onDragOver() {\r\n\tif (!props.disabled) {\r\n\t\tdragOver.value = true;\r\n\t}\r\n}\r\nfunction onDragLeave() {\r\n\tdragOver.value = false;\r\n}\r\n\r\nfunction emitAddFile(file) {\r\n\tconst fileExtension = file.name.split('.').pop();\r\n\tif (props.extensions.length > 0 && !props.extensions.includes(fileExtension.toLowerCase())) {\r\n\t\ttoast.error(t('error.wrongExtension'));\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (props.maxFileSize !== null && file.size > props.maxFileSize * 1024 * 1024) {\r\n\t\ttoast.error(t('error.maxFileSize', { maxSize: props.maxFileSize }));\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (props.maxFiles !== null && props.uploadedFiles.length >= props.maxFiles) {\r\n\t\ttoast.error(t('error.maxFiles', { maxFiles: props.maxFiles }));\r\n\t\treturn;\r\n\t}\r\n\r\n\temit('addFile', file);\r\n}\r\n\r\nfunction removeFile(index) {\r\n\temit('removeFile', index);\r\n}\r\n\r\nfunction formatFileSize(size) {\r\n\tconst kb = size / 1024;\r\n\tif (kb < 1024) return `${kb.toFixed(2)}KB`;\r\n\treturn `${(kb / 1024).toFixed(2)}MB`;\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.file-uploader {\r\n\tdisplay: inline-flex;\r\n\tborder-radius: 8px;\r\n\tpadding: 8px;\r\n\tgap: 8px;\r\n\tborder: 2px dashed $tertiary-color-4;\r\n\tcursor: default;\r\n\twidth: max-content;\r\n\r\n\t&.is-drag-over {\r\n\t\tborder-color: $primary-color-4;\r\n\t}\r\n\r\n\t&.disabled {\r\n\t\tcursor: not-allowed;\r\n\t\tfilter: opacity(50%);\r\n\t}\r\n\r\n\t&__content {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tgap: 8px;\r\n\t\ttransition: background-color 0.2s ease;\r\n\t}\r\n}\r\n\r\n.drop-label {\r\n\tcolor: $tertiary-color-1;\r\n\tfont-size: 16px;\r\n\ttext-align: center;\r\n\tfont-weight: 400;\r\n}\r\n\r\n.uploaded-files {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tgap: 8px;\r\n\tmargin-top: 8px;\r\n\twidth: 100%;\r\n\r\n\t&-file {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tpadding: 4px 12px;\r\n\t\twidth: 100%;\r\n\r\n\t\t&.disabled {\r\n\t\t\tcursor: not-allowed;\r\n\t\t\tfilter: opacity(50%);\r\n\t\t}\r\n\r\n\t\t&-image {\r\n\t\t\twidth: 16px;\r\n\t\t\theight: 16px;\r\n\t\t\tmargin-right: 12px;\r\n\t\t}\r\n\r\n\t\t&-name {\r\n\t\t\tfont-size: 14px;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow: hidden;\r\n\t\t\ttext-overflow: ellipsis;\r\n\t\t\tdisplay: block;\r\n\t\t\tmargin-right: 8px;\r\n\t\t}\r\n\t\t&-size {\r\n\t\t\tflex: 1;\r\n\t\t\tfont-size: 12px;\r\n\t\t\tcolor: $tertiary-color-3;\r\n\t\t}\r\n\r\n\t\t&-delete {\r\n\t\t\tmargin-left: 32px;\r\n\t\t\tbackground: url('@/assets/svg/trash_darkblue.svg') no-repeat center;\r\n\t\t\tbackground-size: contain;\r\n\t\t\tmin-width: 20px;\r\n\t\t\tmin-height: 20px;\r\n\t\t\tborder: none;\r\n\t\t\tcursor: pointer;\r\n\t\t\ttransition: transform 0.2s ease;\r\n\r\n\t\t\t&:disabled {\r\n\t\t\t\tcursor: not-allowed;\r\n\t\t\t\tfilter: opacity(50%);\r\n\t\t\t}\r\n\r\n\t\t\t&:hover {\r\n\t\t\t\ttransform: scale(1.1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n","import script from \"./FileUploader.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FileUploader.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FileUploader.vue?vue&type=style&index=0&id=325e66c4&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-325e66c4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/cross_white.svg'\nimport _imports_1 from '@/assets/svg/setting_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-da51b596\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"app-modal__background\" }\nconst _hoisted_2 = { class: \"app-modal__container\" }\nconst _hoisted_3 = { class: \"app-modal__close\" }\nconst _hoisted_4 = { class: \"app-modal\" }\nconst _hoisted_5 = { class: \"app-modal__header\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"app-modal__header-icon\",\n src: _imports_1,\n alt: \"Setting\"\n}, null, -1))\nconst _hoisted_7 = { class: \"app-modal__header-text\" }\nconst _hoisted_8 = { class: \"app-modal__header-subtitle\" }\nconst _hoisted_9 = { class: \"app-modal__header-title\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-modal__separator\" }, null, -1))\nconst _hoisted_11 = { class: \"app-modal__body\" }\nconst _hoisted_12 = { class: \"app-modal__body-information\" }\nconst _hoisted_13 = { class: \"app-modal__footer\" }\n\n\r\n// import { useToast } from 'vue-toastification';\r\n// import PickList from '@/components/general/PickList.vue';\r\n// import TicketService from '@/services/ticket.service';\r\n// import { CloseReason } from '@/types/ticket.type';\r\n// import { useI18n } from 'vue-i18n';\r\n\r\n// const { t } = useI18n();\r\n\r\n// const toast = useToast();\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TicketCloseModal',\n props: {\r\n\tticketNumber: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n},\n emits: ['cancel', 'submit'],\n setup(__props, { emit }) {\n\r\n\r\n\r\n\r\n\r\nfunction handleCancel() {\r\n\temit('cancel');\r\n}\r\n\r\nfunction handleSubmit() {\r\n\temit('submit');\r\n}\r\n\r\n// function handleSubmit() {\r\n// \tif (!checkInputErrors()) return;\r\n// \temit('submit', selectedCloseReasonId.value);\r\n// }\r\n\r\n// const closeReasons = ref<CloseReason[]>([]);\r\n// const isLoadingCloseReasons = ref(false);\r\n// const selectedCloseReasonId = ref<string>('');\r\n\r\n// interface CloseInputs {\r\n// \tcloseReason: string;\r\n// }\r\n\r\n// const inputErrors = ref<CloseInputs>({\r\n// \tcloseReason: '',\r\n// });\r\n\r\n// const checkInputErrors = (): boolean => {\r\n// \tlet isValid = true;\r\n\r\n// \tif (selectedCloseReasonId.value === '') {\r\n// \t\tinputErrors.value.closeReason = 'error.emptyField';\r\n// \t\tisValid = false;\r\n// \t} else {\r\n// \t\tinputErrors.value.closeReason = '';\r\n// \t}\r\n\r\n// \treturn isValid;\r\n// };\r\n\r\n// const fetchCloseReasons = async () => {\r\n// \ttry {\r\n// \t\tisLoadingCloseReasons.value = true;\r\n// \t\tcloseReasons.value = await TicketService.getCloseReasons();\r\n// \t\tCloseReasonItems.value = [\r\n// \t\t\t...closeReasons.map((closeReason: CloseReason) => ({\r\n// \t\t\t\tvalue: closeReason.id,\r\n// \t\t\t\tlabel: closeReason.name,\r\n// \t\t\t})),\r\n// \t\t];\r\n// \t} catch (error) {\r\n// \t\ttoast.error(t('error.getEnvironments'));\r\n// \t} finally {\r\n// \t\tisLoadingCloseReasons.value = false;\r\n// \t}\r\n// };\r\n\r\n// const CloseReasonItems = computed(() => {\r\n// \tlet newCloseReasonItems = [{ value: '', label: '' }];\r\n// \tnewCloseReasonItems.push(\r\n// \t\t...closeReasons.value.map((closeReason: CloseReason) => {\r\n// \t\t\treturn { value: closeReason.id, label: t('pickList.closeReason.' + closeReason.id) };\r\n// \t\t})\r\n// \t);\r\n// \treturn newCloseReasonItems;\r\n// });\r\n\r\n// onMounted(() => {\r\n// \tfetchCloseReasons();\r\n// });\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"app-modal__close-btn\",\n src: _imports_0,\n alt: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (handleCancel()))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.$t('tickets.close.ticketNumber')) + _toDisplayString(__props.ticketNumber), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('tickets.close.title')), 1)\n ])\n ]),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, _toDisplayString(_ctx.$t('tickets.close.information')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _tertiary app-modal__footer-btn\",\n onClick: handleCancel\n }, _toDisplayString(_ctx.$t('app.cancel')), 1),\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary app-modal__footer-btn\",\n onClick: handleSubmit\n }, _toDisplayString(_ctx.$t('tickets.close.closeTicket')), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./TicketCloseModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TicketCloseModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TicketCloseModal.vue?vue&type=style&index=0&id=da51b596&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-da51b596\"]])\n\nexport default __exports__","export const MAX_FILE_SIZE_MB = 10; // Taille max en Mo\r\nexport const MAX_FILE_COUNT = 5;\r\nexport const ALLOWED_EXTENSIONS: string[] = [\r\n\t'csv',\r\n\t'bmp',\r\n\t'mp3',\r\n\t'vi',\r\n\t'gpg',\r\n\t'css',\r\n\t'doc',\r\n\t'gif',\r\n\t'ogg',\r\n\t'mov',\r\n\t'zip',\r\n\t'htm',\r\n\t'docx',\r\n\t'jpeg',\r\n\t'wav',\r\n\t'mpeg',\r\n\t'html',\r\n\t'dot',\r\n\t'jpg',\r\n\t'mpg',\r\n\t'js',\r\n\t'ics',\r\n\t'png',\r\n\t'swf',\r\n\t'xml',\r\n\t'js',\r\n\t'tif',\r\n\t'mp4',\r\n\t'xsl',\r\n\t'mdb',\r\n\t'tiff',\r\n\t'xslt',\r\n\t'pdf',\r\n\t'vsd',\r\n\t'pps',\r\n\t'ppsx',\r\n\t'ppt',\r\n\t'pptx',\r\n\t'rtf',\r\n\t'sxc',\r\n\t'sxi',\r\n\t'sxw',\r\n\t'txt',\r\n\t'xls',\r\n\t'xlsx',\r\n];\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, unref as _unref, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5cab8466\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"app-spinner\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = { class: \"ticket-header\" }\nconst _hoisted_4 = { class: \"ticket-header-number\" }\nconst _hoisted_5 = { class: \"ticket-header-group\" }\nconst _hoisted_6 = { class: \"ticket-header-title\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n key: 0,\n class: \"app-spinner --small\"\n}\nconst _hoisted_9 = { class: \"comment-body\" }\nconst _hoisted_10 = { class: \"comment-footer\" }\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = {\n key: 0,\n class: \"app-spinner --small\"\n}\nconst _hoisted_13 = { key: 0 }\n\nimport { ref, onMounted, computed, nextTick } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { useRoute, useRouter } from 'vue-router';\r\nimport TicketService from '@/services/ticket.service';\r\nimport SectionSeparator from '@/components/general/SectionSeparator.vue';\r\nimport InputTextHTML from '@/components/general/InputTextHTML.vue';\r\nimport StatusSteps from '@/components/general/StatusSteps.vue';\r\nimport EmailMessageList from '@/components/general/EmailMessageList.vue';\r\nimport FileUploader from '@/components/general/FileUploader.vue';\r\nimport ButtonBack from '@/components/general/ButtonBack.vue';\r\nimport TicketCloseModal from './TicketCloseModal.vue';\r\nimport { Status, Ticket } from '@/types/ticket.type';\r\nimport { ApiError } from '@/types/error.type';\r\nimport { htmlToString } from '@/utils/formatter/htmlToString';\r\nimport { ALLOWED_EXTENSIONS, MAX_FILE_SIZE_MB, MAX_FILE_COUNT } from '@/constants/file.constants';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\ninterface Step {\r\n\tname: string;\r\n\ticon: string | null;\r\n\tbackgroundColor: string | null;\r\n\tfontColor: string | null;\r\n}\r\n\r\n// get ticket by number by route params\r\ninterface EditInputs {\r\n\tnewComment: string;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TicketEditView',\n setup(__props) {\n\r\nconst { t } = useI18n();\r\n\r\nconst toast = useToast();\r\nconst route = useRoute();\r\nconst router = useRouter();\r\n\r\nconst editTicket = ref<Ticket>();\r\nconst editTicketFiles = ref<File[]>([]);\r\nconst newComment = ref<string>('');\r\nconst statuses = ref<Status[]>([]);\r\n\r\nconst isLoadingSubmitNewComment = ref(false);\r\nconst isLoadingCloseTicket = ref(false);\r\n\r\nconst isCloseModalOpen = ref(false);\r\n\r\nconst inputErrors = ref<EditInputs>({\r\n\tnewComment: '',\r\n});\r\n\r\nconst goBack = () => {\r\n\trouter.push({ name: 'tickets' });\r\n};\r\n\r\nfunction onAddFile(file: File) {\r\n\teditTicketFiles.value.push(file);\r\n}\r\n\r\nfunction onRemoveFile(index: number) {\r\n\teditTicketFiles.value.splice(index, 1);\r\n}\r\n\r\nconst submitNewComment = async () => {\r\n\tif (!checkInputErrors()) return;\r\n\r\n\tisLoadingSubmitNewComment.value = true;\r\n\r\n\ttry {\r\n\t\tif (editTicket.value?.id) {\r\n\t\t\tawait TicketService.createNewComment(editTicket.value.id, newComment.value, editTicket.value.subject);\r\n\t\t\ttoast.success(t('success.commentAdded'));\r\n\r\n\t\t\tawait uploadTicketFiles();\r\n\r\n\t\t\tnewComment.value = '';\r\n\t\t\tawait nextTick();\r\n\t\t\tinputErrors.value.newComment = '';\r\n\t\t\teditTicketFiles.value = [];\r\n\r\n\t\t\t// Rafraîchir les données du ticket pour voir le commentaire ajouté\r\n\t\t\tawait fetchTicketById();\r\n\r\n\t\t\tisLoadingSubmitNewComment.value = false;\r\n\t\t} else {\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.commentAdd'));\r\n\t\tisLoadingSubmitNewComment.value = false;\r\n\t}\r\n};\r\n\r\nconst uploadTicketFiles = async () => {\r\n\tfor (const ticketFile of editTicketFiles.value) {\r\n\t\ttry {\r\n\t\t\tif (editTicket.value) {\r\n\t\t\t\tawait TicketService.uploadTicketFile(editTicket.value.id, ticketFile);\r\n\t\t\t}\r\n\t\t\ttoast.success(t('success.fileUploaded', { fileName: ticketFile.name }));\r\n\t\t} catch (error) {\r\n\t\t\ttoast.error(t('error.fileUpload', { fileName: ticketFile.name }));\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst openTicketCloseModal = () => {\r\n\tisCloseModalOpen.value = true;\r\n};\r\n\r\nconst closeTicketCloseModal = () => {\r\n\tisCloseModalOpen.value = false;\r\n};\r\n\r\nconst closeTicket = async () => {\r\n\tif (!editTicket.value) return;\r\n\r\n\tisLoadingCloseTicket.value = true;\r\n\r\n\ttry {\r\n\t\tif (editTicket.value?.id) {\r\n\t\t\tcloseTicketCloseModal();\r\n\t\t\tawait TicketService.closeTicketById(editTicket.value.id);\r\n\t\t\ttoast.success(t('success.ticketClosed'));\r\n\t\t\tisLoadingCloseTicket.value = false;\r\n\t\t\tgoBack();\r\n\t\t} else {\r\n\t\t\tthrow new Error();\r\n\t\t}\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.ticketClose'));\r\n\t\tisLoadingCloseTicket.value = false;\r\n\t}\r\n};\r\n\r\nconst checkInputErrors = (): boolean => {\r\n\tlet isValid = true;\r\n\r\n\tif (!newComment.value || htmlToString(newComment.value) == '') {\r\n\t\tinputErrors.value.newComment = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.newComment = '';\r\n\t}\r\n\r\n\treturn isValid;\r\n};\r\n\r\nconst fetchTicketById = async () => {\r\n\ttry {\r\n\t\teditTicket.value = await TicketService.getTicketById(route.params.id as string);\r\n\t} catch (err) {\r\n\t\tconst apiError = err as ApiError;\r\n\t\tconst error = apiError.response?.data || t('error.getTicketById');\r\n\t\ttoast.error(error);\r\n\t}\r\n};\r\n\r\nconst fetchStatuses = async () => {\r\n\ttry {\r\n\t\tstatuses.value = await TicketService.getStatuses();\r\n\t} catch (err) {\r\n\t\tconst apiError = err as ApiError;\r\n\t\tconst error = apiError.response.data || t('error.getStatuses');\r\n\t\ttoast.error(error);\r\n\t}\r\n};\r\n\r\nfunction isClosedTicket() {\r\n\tif (editTicket.value) return TicketService.getStatusIdFromTicket(editTicket.value) === 'closed';\r\n\telse return null;\r\n}\r\n\r\nconst statusSteps = computed<Step[]>(() => {\r\n\tlet statusSteps = [];\r\n\tlet isPast = true;\r\n\tlet isActive = false;\r\n\tconst editTicketStatusId = editTicket.value ? TicketService.getStatusIdFromTicket(editTicket.value) : null;\r\n\tfor (const status of statuses.value) {\r\n\t\tif (status.id === editTicketStatusId) {\r\n\t\t\tisActive = true;\r\n\t\t\tisPast = false;\r\n\t\t} else {\r\n\t\t\tisActive = false;\r\n\t\t}\r\n\r\n\t\tlet backgroundColor = null;\r\n\t\tlet fontColor = null;\r\n\t\tlet icon = null;\r\n\r\n\t\tswitch (status.id) {\r\n\t\t\tcase 'new':\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\ticon = 'report_white.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-1)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else if (isPast) {\r\n\t\t\t\t\ticon = 'report_white.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-3)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ticon = 'report_darkblue.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-5)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-1)';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'inProgress':\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\ticon = 'loading_white.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-1)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else if (isPast) {\r\n\t\t\t\t\ticon = 'loading_white.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-3)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ticon = 'loading_darkblue.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-5)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-1)';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'closed':\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\ticon = 'check_white_new.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--success-color-1)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else if (isPast) {\r\n\t\t\t\t\ticon = 'check_white_new.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-3)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-5)';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ticon = 'check_darkblue_new.svg';\r\n\t\t\t\t\tbackgroundColor = 'var(--primary-color-5)';\r\n\t\t\t\t\tfontColor = 'var(--primary-color-1)';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tstatusSteps.push({\r\n\t\t\tname: t('pickList.status.' + status.id),\r\n\t\t\ticon: icon,\r\n\t\t\tbackgroundColor: backgroundColor,\r\n\t\t\tfontColor: fontColor,\r\n\t\t});\r\n\t}\r\n\treturn statusSteps;\r\n});\r\n\r\nonMounted(async () => {\r\n\tawait fetchTicketById();\r\n\tfetchStatuses();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(ButtonBack, {\n buttonLabel: _ctx.$t('tickets.edit.back'),\n onOnClick: goBack\n }, null, 8, [\"buttonLabel\"]),\n (!statusSteps.value || !editTicket.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_ctx.$t('tickets.edit.ticketNumber')) + _toDisplayString(editTicket.value.caseNumber), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(editTicket.value.subject), 1),\n (isClosedTicket() === false)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"gnx-btn _success\",\n onClick: openTicketCloseModal,\n disabled: isLoadingCloseTicket.value || isLoadingSubmitNewComment.value\n }, [\n _createTextVNode(_toDisplayString(isLoadingCloseTicket.value ? '' : _ctx.$t('tickets.edit.closeTicket')) + \" \", 1),\n (isLoadingCloseTicket.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(StatusSteps, { steps: statusSteps.value }, null, 8, [\"steps\"])\n ]),\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.edit.comment')\n }, null, 8, [\"text\"]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(InputTextHTML, {\n modelValue: newComment.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((newComment).value = $event)),\n errorMessage: inputErrors.value.newComment ? _ctx.$t(inputErrors.value.newComment) : '',\n placeholder: _ctx.$t('tickets.edit.commentPlaceholder'),\n minHeight: \"100px\",\n width: \"100%\",\n isRequired: true,\n disabled: isLoadingCloseTicket.value || isLoadingSubmitNewComment.value,\n onChange: _cache[1] || (_cache[1] = (content) => (inputErrors.value.newComment = _unref(htmlToString)(content) == '' ? 'error.emptyField' : ''))\n }, null, 8, [\"modelValue\", \"errorMessage\", \"placeholder\", \"disabled\"]),\n _createVNode(FileUploader, {\n extensions: _unref(ALLOWED_EXTENSIONS),\n maxFileSize: _unref(MAX_FILE_SIZE_MB),\n maxFiles: _unref(MAX_FILE_COUNT),\n buttonLabel: _ctx.$t('tickets.create.inputs.fileUploaderButtonLabel'),\n dropLabel: _ctx.$t('tickets.create.inputs.fileUploaderDropLabel'),\n uploadedFiles: editTicketFiles.value,\n disabled: isLoadingCloseTicket.value || isLoadingSubmitNewComment.value,\n onAddFile: onAddFile,\n onRemoveFile: onRemoveFile\n }, null, 8, [\"extensions\", \"maxFileSize\", \"maxFiles\", \"buttonLabel\", \"dropLabel\", \"uploadedFiles\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n onClick: submitNewComment,\n disabled: isLoadingCloseTicket.value || isLoadingSubmitNewComment.value\n }, [\n _createTextVNode(_toDisplayString(isLoadingSubmitNewComment.value ? '' : _ctx.$t('tickets.edit.submitComment')) + \" \", 1),\n (isLoadingSubmitNewComment.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_11)\n ]),\n (editTicket.value && editTicket.value.emailMessages)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.edit.message')\n }, null, 8, [\"text\"]),\n _createVNode(EmailMessageList, {\n emailMessages: editTicket.value.emailMessages\n }, null, 8, [\"emailMessages\"])\n ]))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createVNode(TicketCloseModal, {\n ticketNumber: editTicket.value.caseNumber,\n onCancel: closeTicketCloseModal,\n onSubmit: closeTicket\n }, null, 8, [\"ticketNumber\"]), [\n [_vShow, isCloseModalOpen.value]\n ])\n ]))\n ], 64))\n}\n}\n\n})","import script from \"./TicketEditView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TicketEditView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TicketEditView.vue?vue&type=style&index=0&id=5cab8466&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5cab8466\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3f5e1c9b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"gnx-form-field _thin\" }\nconst _hoisted_2 = { class: \"gnx-label\" }\nconst _hoisted_3 = {\n key: 0,\n style: {\"color\":\"#e58a80\"}\n}\nconst _hoisted_4 = [\"placeholder\", \"disabled\", \"maxlength\"]\nconst _hoisted_5 = {\n key: 0,\n class: \"gnx-field-error\"\n}\n\nimport { ref, watch } from 'vue';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'InputText',\n props: {\r\n\tlabel: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n\tmodelValue: {\r\n\t\ttype: String as () => string | null,\r\n\t\trequired: true,\r\n\t},\r\n\tplaceholder: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n\terrorMessage: {\r\n\t\ttype: String,\r\n\t\tdefault: '',\r\n\t},\r\n\tisRequired: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n\tmaxLength: {\r\n\t\ttype: Number,\r\n\t\tdefault: null,\r\n\t},\r\n},\n emits: ['update:modelValue'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\n\r\n\r\n\r\n\r\nconst inputValue = ref(props.modelValue);\r\n\r\nwatch(inputValue, (newValue) => {\r\n\temit('update:modelValue', newValue);\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, [\n (__props.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"* \"))\n : _createCommentVNode(\"\", true),\n _createTextVNode(_toDisplayString(__props.label), 1)\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n class: _normalizeClass([\"gnx-field-text\", { _error: __props.errorMessage }]),\n placeholder: __props.placeholder,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((inputValue).value = $event)),\n disabled: __props.disabled,\n maxlength: __props.maxLength !== null ? __props.maxLength : undefined\n }, null, 10, _hoisted_4), [\n [_vModelText, inputValue.value]\n ]),\n (__props.errorMessage)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, _toDisplayString(__props.errorMessage), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./InputText.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./InputText.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./InputText.vue?vue&type=style&index=0&id=3f5e1c9b&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3f5e1c9b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelCheckbox as _vModelCheckbox, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"disabled\"]\nconst _hoisted_2 = [\"for\"]\n\nimport { computed } from 'vue';\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CheckBox',\n props: {\r\n\tid: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tlabel: {\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t},\r\n\tmodelValue: {\r\n\t\ttype: Boolean,\r\n\t\trequired: true,\r\n\t},\r\n\tdisabled: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false,\r\n\t},\r\n},\n emits: ['update:modelValue'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\r\n\r\n\r\n\r\n\r\nconst computedValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value: boolean) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"gnx-checkbox-btn\",\n type: \"checkbox\",\n id: __props.id,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((computedValue).value = $event)),\n disabled: __props.disabled\n }, null, 8, _hoisted_1), [\n [_vModelCheckbox, computedValue.value]\n ]),\n _createElementVNode(\"label\", {\n class: \"gnx-checkbox-txt\",\n for: __props.id\n }, _toDisplayString(__props.label), 9, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./CheckBox.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CheckBox.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/svg/arrow_right_darkblue.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-82becdac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"app-spinner\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"ticket-create-form__fields\" }\nconst _hoisted_4 = { class: \"ticket-create-form__fields-qualification\" }\nconst _hoisted_5 = { class: \"picklist-row\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"picklist-row\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, null, -1))\nconst _hoisted_8 = { class: \"picklist-row\" }\nconst _hoisted_9 = { class: \"ticket-create-form__fields-fileuploader\" }\nconst _hoisted_10 = { class: \"ticket-create-form__fields-openaccess\" }\nconst _hoisted_11 = { class: \"ticket-create-form__fields-openaccess-title\" }\nconst _hoisted_12 = {\n target: \"_blank\",\n href: \"https://university.gonexa.fr/doc/basic/support-access\",\n class: \"ticket-create-form__fields-openaccess-link\"\n}\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Arrow\",\n class: \"ticket-create-form__fields-openaccess-link-icon\"\n}, null, -1))\nconst _hoisted_14 = { class: \"ticket-create-form__footer\" }\nconst _hoisted_15 = [\"disabled\"]\nconst _hoisted_16 = {\n key: 0,\n class: \"app-spinner --small\"\n}\n\nimport { ref, onMounted, computed } from 'vue';\r\nimport { useToast } from 'vue-toastification';\r\nimport { AffectedUser, Product, Priority, Ticket } from '@/types/ticket.type';\r\nimport TicketService from '@/services/ticket.service';\r\nimport InputText from '@/components/general/InputText.vue';\r\nimport InputTextHTML from '@/components/general/InputTextHTML.vue';\r\nimport PickList from '@/components/general/PickList.vue';\r\nimport Checkbox from '@/components/general/CheckBox.vue';\r\nimport FileUploader from '@/components/general/FileUploader.vue';\r\nimport ButtonBack from '@/components/general/ButtonBack.vue';\r\nimport router from '@/router';\r\nimport SectionSeparator from '@/components/general/SectionSeparator.vue';\r\nimport EnvironmentsService from '@/services/environments.service';\r\nimport { ExternalEnvironnement } from '@/types/gonexa-users.type';\r\nimport { htmlToString } from '@/utils/formatter/htmlToString';\r\nimport { ALLOWED_EXTENSIONS, MAX_FILE_SIZE_MB, MAX_FILE_COUNT } from '@/constants/file.constants';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nconst otherOrgIdPickListValue = 'otherOrgId';\r\ninterface CreationInputs {\r\n\thtmlBody: string;\r\n\tsubject: string;\r\n\tproduct: string;\r\n\torgId: string;\r\n\totherOrgId: string;\r\n\taffectedUser: string;\r\n\tpriority: string;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TicketCreateView',\n setup(__props) {\n\r\nconst { t } = useI18n();\r\n\r\nconst toast = useToast();\r\n\r\nconst externalEnvironments = ref<ExternalEnvironnement[]>([]);\r\nconst products = ref<Product[]>([]);\r\nconst affectedUsers = ref<AffectedUser[]>([]);\r\nconst priorities = ref<Priority[]>([]);\r\nconst otherOrgId = ref<string>('');\r\n\r\nfunction createEmptyTicket(): Ticket {\r\n\treturn {\r\n\t\tid: '',\r\n\t\tsubject: '',\r\n\t\tdescription: '',\r\n\t\thtmlBody: t('tickets.defaultHtmlBody'),\r\n\t\tcaseNumber: '',\r\n\t\tproduct__c: '',\r\n\t\torgId: '',\r\n\t\tpriority: '',\r\n\t\taffected_users__c: '',\r\n\t\taccessSupport: false,\r\n\t\tcreatedDate: new Date(),\r\n\t\tclosedDate: null,\r\n\t\tstatus: '',\r\n\t\tapp_IsNew__c: true,\r\n\t\temailMessages: null,\r\n\t\tdisplayStatus: '',\r\n\t};\r\n}\r\n\r\nconst isLoading = ref(false);\r\nconst newTicket = ref<Ticket>(createEmptyTicket());\r\nconst newTicketFiles = ref<File[]>([]);\r\nconst inputErrors = ref<CreationInputs>({\r\n\thtmlBody: '',\r\n\tsubject: '',\r\n\tproduct: '',\r\n\torgId: '',\r\n\totherOrgId: '',\r\n\taffectedUser: '',\r\n\tpriority: '',\r\n});\r\n\r\nconst goBack = () => {\r\n\trouter.push({ name: 'tickets' });\r\n};\r\n\r\nconst openTicketEditView = (ticketId: string) => {\r\n\trouter.push({ name: 'ticketEdit', params: { id: ticketId } });\r\n};\r\n\r\nfunction onAddFile(file: File) {\r\n\tnewTicketFiles.value.push(file);\r\n}\r\n\r\nfunction onRemoveFile(index: number) {\r\n\tnewTicketFiles.value.splice(index, 1);\r\n}\r\n\r\nconst createNewTicket = async () => {\r\n\tif (!checkInputErrors()) return;\r\n\r\n\tisLoading.value = true;\r\n\r\n\ttry {\r\n\t\tnewTicket.value.description = htmlToString(newTicket.value.htmlBody);\r\n\t\tif (newTicket.value.orgId === otherOrgIdPickListValue) newTicket.value.orgId = otherOrgId.value;\r\n\r\n\t\tnewTicket.value = await TicketService.createTicket(newTicket.value);\r\n\t\ttoast.success(t('success.ticketCreated'));\r\n\r\n\t\tawait uploadTicketFiles();\r\n\r\n\t\tisLoading.value = false;\r\n\t\topenTicketEditView(newTicket.value.id);\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.ticketCreation'));\r\n\t\tisLoading.value = false;\r\n\t}\r\n};\r\n\r\nconst uploadTicketFiles = async () => {\r\n\tfor (const ticketFile of newTicketFiles.value) {\r\n\t\ttry {\r\n\t\t\tawait TicketService.uploadTicketFile(newTicket.value.id, ticketFile);\r\n\t\t\ttoast.success(t('success.fileUploaded', { fileName: ticketFile.name }));\r\n\t\t} catch (error) {\r\n\t\t\ttoast.error(t('error.fileUpload', { fileName: ticketFile.name }));\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst checkInputErrors = (): boolean => {\r\n\tlet isValid = true;\r\n\r\n\tif (!newTicket.value.htmlBody || htmlToString(newTicket.value.htmlBody) == '') {\r\n\t\tinputErrors.value.htmlBody = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.htmlBody = '';\r\n\t}\r\n\r\n\tif (!newTicket.value.subject) {\r\n\t\tinputErrors.value.subject = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.subject = '';\r\n\t}\r\n\r\n\tif (newTicket.value.product__c === '') {\r\n\t\tinputErrors.value.product = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.product = '';\r\n\t}\r\n\r\n\tif (newTicket.value.orgId === '') {\r\n\t\tinputErrors.value.orgId = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.orgId = '';\r\n\t}\r\n\r\n\tif (newTicket.value.orgId === otherOrgIdPickListValue && otherOrgId.value === '') {\r\n\t\tinputErrors.value.otherOrgId = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.otherOrgId = '';\r\n\t}\r\n\r\n\tif (newTicket.value.affected_users__c === '') {\r\n\t\tinputErrors.value.affectedUser = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.affectedUser = '';\r\n\t}\r\n\r\n\tif (newTicket.value.priority === '') {\r\n\t\tinputErrors.value.priority = 'error.emptyField';\r\n\t\tisValid = false;\r\n\t} else {\r\n\t\tinputErrors.value.priority = '';\r\n\t}\r\n\r\n\treturn isValid;\r\n};\r\n\r\nconst fetchEnvironments = async () => {\r\n\ttry {\r\n\t\texternalEnvironments.value = await EnvironmentsService.getExternalEnvironments();\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.getEnvironments'));\r\n\t}\r\n};\r\n\r\nconst EnvironmentItems = computed(() => {\r\n\tlet newEnvironmentItems = [];\r\n\tnewEnvironmentItems.push(\r\n\t\t...externalEnvironments.value.map((externalEnvironment: ExternalEnvironnement) => {\r\n\t\t\treturn {\r\n\t\t\t\tvalue: externalEnvironment.externalId,\r\n\t\t\t\tlabel: externalEnvironment.orgName + ' [' + externalEnvironment.typeOrg + ']',\r\n\t\t\t};\r\n\t\t})\r\n\t);\r\n\tnewEnvironmentItems.push({\r\n\t\tvalue: otherOrgIdPickListValue,\r\n\t\tlabel: t('tickets.create.inputs.otherOrgIdPickListLabel'),\r\n\t});\r\n\treturn newEnvironmentItems;\r\n});\r\n\r\nconst fetchProducts = async () => {\r\n\ttry {\r\n\t\tproducts.value = await TicketService.getProducts();\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.getProducts'));\r\n\t}\r\n};\r\n\r\nconst ProductItems = computed(() => {\r\n\tlet newProductItems = [];\r\n\tnewProductItems.push(\r\n\t\t...products.value.map((product: Product) => {\r\n\t\t\treturn { value: product.id, label: t('pickList.product.' + product.id) };\r\n\t\t})\r\n\t);\r\n\treturn newProductItems;\r\n});\r\n\r\nconst fetchAffectedUsers = async () => {\r\n\ttry {\r\n\t\taffectedUsers.value = await TicketService.getAffectedUsers();\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.getAffectedUsers'));\r\n\t}\r\n};\r\n\r\nconst AffectedUserItems = computed(() => {\r\n\tlet newAffectedUserItems = [];\r\n\tnewAffectedUserItems.push(\r\n\t\t...affectedUsers.value.map((affectedUser: AffectedUser) => {\r\n\t\t\treturn { value: affectedUser.id, label: t('pickList.affectedUser.' + affectedUser.id) };\r\n\t\t})\r\n\t);\r\n\treturn newAffectedUserItems;\r\n});\r\n\r\nconst fetchPriorities = async () => {\r\n\ttry {\r\n\t\tpriorities.value = await TicketService.getPriorities();\r\n\t} catch (error) {\r\n\t\ttoast.error(t('error.getPriorities'));\r\n\t}\r\n};\r\n\r\nconst PriorityItems = computed(() => {\r\n\tlet newPriorityItems = [];\r\n\tnewPriorityItems.push(\r\n\t\t...priorities.value.map((priority: Priority) => {\r\n\t\t\treturn { value: priority.id, label: t('pickList.priority.' + priority.id) };\r\n\t\t})\r\n\t);\r\n\treturn newPriorityItems;\r\n});\r\n\r\nonMounted(() => {\r\n\tfetchEnvironments();\r\n\tfetchProducts();\r\n\tfetchAffectedUsers();\r\n\tfetchPriorities();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(ButtonBack, {\n buttonLabel: _ctx.$t('app.cancel'),\n onOnClick: goBack\n }, null, 8, [\"buttonLabel\"]),\n (\r\n\t\t\tproducts.value.length <= 0 ||\r\n\t\t\texternalEnvironments.value.length <= 0 ||\r\n\t\t\taffectedUsers.value.length <= 0 ||\r\n\t\t\tpriorities.value.length <= 0\r\n\t\t)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"form\", {\n key: 1,\n onSubmit: _withModifiers(createNewTicket, [\"prevent\"]),\n class: \"ticket-create-form\"\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(InputText, {\n placeholder: _ctx.$t('tickets.create.inputs.subject'),\n modelValue: newTicket.value.subject,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((newTicket.value.subject) = $event)),\n errorMessage: inputErrors.value.subject ? _ctx.$t(inputErrors.value.subject) : '',\n disabled: isLoading.value,\n onFocusout: _cache[1] || (_cache[1] = ($event: any) => (inputErrors.value.subject = newTicket.value.subject === '' ? 'error.emptyField' : ''))\n }, null, 8, [\"placeholder\", \"modelValue\", \"errorMessage\", \"disabled\"]),\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.create.qualification')\n }, null, 8, [\"text\"]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(PickList, {\n label: _ctx.$t('tickets.create.inputs.product'),\n modelValue: newTicket.value.product__c,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((newTicket.value.product__c) = $event)),\n items: ProductItems.value,\n emptyLabel: _ctx.$t('tickets.create.inputs.productEmptyLabel'),\n errorMessage: inputErrors.value.product ? _ctx.$t(inputErrors.value.product) : '',\n disabled: isLoading.value,\n onChange: _cache[3] || (_cache[3] = ($event: any) => (inputErrors.value.product = newTicket.value.product__c === '' ? 'error.emptyField' : ''))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\", \"disabled\"]),\n _createVNode(PickList, {\n label: _ctx.$t('tickets.create.inputs.environment'),\n modelValue: newTicket.value.orgId,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((newTicket.value.orgId) = $event)),\n items: EnvironmentItems.value,\n emptyLabel: _ctx.$t('tickets.create.inputs.environmentEmptyLabel'),\n errorMessage: inputErrors.value.orgId ? _ctx.$t(inputErrors.value.orgId) : '',\n disabled: isLoading.value,\n onChange: _cache[5] || (_cache[5] = ($event: any) => (inputErrors.value.orgId = newTicket.value.orgId === '' ? 'error.emptyField' : ''))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\", \"disabled\"])\n ]),\n (newTicket.value.orgId === otherOrgIdPickListValue)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(InputText, {\n label: _ctx.$t('tickets.create.inputs.otherOrgId'),\n modelValue: otherOrgId.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((otherOrgId).value = $event)),\n errorMessage: inputErrors.value.otherOrgId ? _ctx.$t(inputErrors.value.otherOrgId) : '',\n maxLength: 18,\n disabled: isLoading.value,\n onFocusout: _cache[7] || (_cache[7] = ($event: any) => (\r\n\t\t\t\t\t\t\tinputErrors.value.otherOrgId =\r\n\t\t\t\t\t\t\t\totherOrgId.value === '' && newTicket.value.orgId === otherOrgIdPickListValue\r\n\t\t\t\t\t\t\t\t\t? 'error.emptyField'\r\n\t\t\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t\t))\n }, null, 8, [\"label\", \"modelValue\", \"errorMessage\", \"disabled\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(PickList, {\n label: _ctx.$t('tickets.create.inputs.priority'),\n modelValue: newTicket.value.priority,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((newTicket.value.priority) = $event)),\n items: PriorityItems.value,\n emptyLabel: _ctx.$t('tickets.create.inputs.priorityEmptyLabel'),\n errorMessage: inputErrors.value.priority ? _ctx.$t(inputErrors.value.priority) : '',\n disabled: isLoading.value,\n onChange: _cache[9] || (_cache[9] = ($event: any) => (inputErrors.value.priority = newTicket.value.priority === '' ? 'error.emptyField' : ''))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\", \"disabled\"]),\n _createVNode(PickList, {\n label: _ctx.$t('tickets.create.inputs.affectedUser'),\n modelValue: newTicket.value.affected_users__c,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((newTicket.value.affected_users__c) = $event)),\n items: AffectedUserItems.value,\n emptyLabel: _ctx.$t('tickets.create.inputs.affectedUserEmptyLabel'),\n errorMessage: inputErrors.value.affectedUser ? _ctx.$t(inputErrors.value.affectedUser) : '',\n disabled: isLoading.value,\n onChange: _cache[11] || (_cache[11] = ($event: any) => (\r\n\t\t\t\t\t\t\tinputErrors.value.affectedUser = newTicket.value.affected_users__c === '' ? 'error.emptyField' : ''\r\n\t\t\t\t\t\t))\n }, null, 8, [\"label\", \"modelValue\", \"items\", \"emptyLabel\", \"errorMessage\", \"disabled\"])\n ])\n ]),\n _createVNode(SectionSeparator, {\n text: _ctx.$t('tickets.create.htmlBody')\n }, null, 8, [\"text\"]),\n _createVNode(InputTextHTML, {\n modelValue: newTicket.value.htmlBody,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((newTicket.value.htmlBody) = $event)),\n errorMessage: inputErrors.value.htmlBody ? _ctx.$t(inputErrors.value.htmlBody) : '',\n placeholder: _ctx.$t('tickets.create.inputs.htmlBodyPlaceholder'),\n minHeight: \"100px\",\n width: \"100%\",\n isRequired: true,\n disabled: isLoading.value,\n onChange: _cache[13] || (_cache[13] = (content) => (inputErrors.value.htmlBody = _unref(htmlToString)(content) == '' ? 'error.emptyField' : ''))\n }, null, 8, [\"modelValue\", \"errorMessage\", \"placeholder\", \"disabled\"]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(FileUploader, {\n extensions: _unref(ALLOWED_EXTENSIONS),\n maxFileSize: _unref(MAX_FILE_SIZE_MB),\n maxFiles: _unref(MAX_FILE_COUNT),\n buttonLabel: _ctx.$t('tickets.create.inputs.fileUploaderButtonLabel'),\n dropLabel: _ctx.$t('tickets.create.inputs.fileUploaderDropLabel'),\n uploadedFiles: newTicketFiles.value,\n disabled: isLoading.value,\n onAddFile: onAddFile,\n onRemoveFile: onRemoveFile\n }, null, 8, [\"extensions\", \"maxFileSize\", \"maxFiles\", \"buttonLabel\", \"dropLabel\", \"uploadedFiles\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(_ctx.$t('tickets.create.inputs.openAccessTitle')), 1),\n _createVNode(Checkbox, {\n modelValue: newTicket.value.accessSupport,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((newTicket.value.accessSupport) = $event)),\n id: \"openAccess\",\n label: _ctx.$t('tickets.create.inputs.openAccess'),\n disabled: isLoading.value\n }, null, 8, [\"modelValue\", \"label\", \"disabled\"]),\n _createElementVNode(\"a\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('tickets.create.inputs.openAccessLink')) + \" \", 1),\n _hoisted_13\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n class: \"gnx-btn _primary\",\n type: \"submit\",\n disabled: isLoading.value\n }, [\n _createTextVNode(_toDisplayString(isLoading.value ? '' : _ctx.$t('tickets.create.submit')) + \" \", 1),\n (isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_15)\n ])\n ], 40, _hoisted_2))\n ], 64))\n}\n}\n\n})","import script from \"./TicketCreateView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TicketCreateView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TicketCreateView.vue?vue&type=style&index=0&id=82becdac&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Front\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-82becdac\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\r\nimport { Vue } from 'vue-class-component';\r\nimport { useAuthStore } from '@/stores/authentication.store';\r\nimport { useToast } from 'vue-toastification';\r\n\r\nimport GonexaAuthenticationService from '@/services/auth-gonexa.service';\r\n\r\nimport EmailSent from '@/components/authentication/EmailSent.vue';\r\nimport RegisterForm from '@/components/authentication/RegisterForm.vue';\r\nimport LoginForm from '@/components/authentication/LoginForm.vue';\r\nimport UpdatePasswordForm from '@/components/authentication/UpdatePasswordForm.vue';\r\nimport LostPasswordForm from '@/components/authentication/LostPasswordForm.vue';\r\nimport LoginAs from '@/components/authentication/LoginAs.vue';\r\nimport ConfirmEmail from '@/components/authentication/ConfirmEmail.vue';\r\n\r\nimport HomeView from '@/components/HomeView.vue';\r\nimport BillingView from '@/components/billing/BillingView.vue';\r\nimport UserView from '@/components/user/UserView.vue';\r\nimport WorkpaceView from '@/components/workspace/WorkspaceView.vue';\r\nimport ConsumptionView from '@/components/consumption/ConsumptionView.vue';\r\nimport CallbackSalesforce from '@/components/salesforce/CallbackSalesforce.vue';\r\nimport DeploymentView from '@/components/deployment/DeploymentView.vue';\r\nimport SignView from '@/components/sign/SignView.vue';\r\nimport ErrorView from '@/components/ErrorView.vue';\r\nimport WorkspaceIndivudual from './components/workspace/WorkspaceIndivudual.vue';\r\nimport BrandingsView from '@/components/branding/BrandingsView.vue';\r\nimport BrandingView from './components/branding/BrandingView.vue';\r\nimport TicketView from '@/components/ticket/TicketView.vue';\r\nimport TicketEditView from '@/components/ticket/TicketEditView.vue';\r\nimport TicketCreateView from './components/ticket/TicketCreateView.vue';\r\n\r\nconst routes: Array<RouteRecordRaw> = [\r\n\t{\r\n\t\tpath: '/home',\r\n\t\tname: 'home',\r\n\t\tcomponent: HomeView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Accueil',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/',\r\n\t\tredirect: { name: 'home' },\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/register',\r\n\t\tname: 'register',\r\n\t\tcomponent: RegisterForm,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Inscription',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/login',\r\n\t\tname: 'login',\r\n\t\tcomponent: LoginForm,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Connexion',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/loginas/:username/:token',\r\n\t\tname: 'loginas',\r\n\t\tcomponent: LoginAs,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Connexion',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/lost-sent',\r\n\t\tname: 'lost-sent',\r\n\t\tcomponent: EmailSent,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Confirmation de réinitialisation',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/email-sent',\r\n\t\tname: 'email-sent',\r\n\t\tcomponent: EmailSent,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Confirmation du mail',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t// Route pour accéder au formulaire de demande de réinitialisation de mot de passe\r\n\t{\r\n\t\tpath: '/lost-password',\r\n\t\tname: 'lost-password',\r\n\t\tcomponent: LostPasswordForm,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Mot de passe oublié',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfDisconnected],\r\n\t},\r\n\t// Route pour accéder à l'initialisation du mot de passe\r\n\t{\r\n\t\tpath: '/initialize-password/:emailToken',\r\n\t\tname: 'initialize-password',\r\n\t\tcomponent: UpdatePasswordForm,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Initialisation du mot de passe',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfDisconnected],\r\n\t},\r\n\t// Route pour accéder à la réinitialisation du mot de passe\r\n\t{\r\n\t\tpath: '/update-password/:emailToken',\r\n\t\tname: 'update-password',\r\n\t\tcomponent: UpdatePasswordForm,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Mise à jour du mot de passe',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfDisconnected],\r\n\t},\r\n\t// Page pour confirmer la mise à jour du mail d'un compte\r\n\t{\r\n\t\tpath: '/confirm-email/:emailToken',\r\n\t\tname: 'confirm-email',\r\n\t\tcomponent: ConfirmEmail,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Confirmation de votre nouvel e-mail',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/consumption',\r\n\t\tname: 'consumption',\r\n\t\tcomponent: ConsumptionView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Consommation',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfOwnerVerified],\r\n\t},\r\n\t{\r\n\t\tpath: '/billing',\r\n\t\tname: 'billing',\r\n\t\tcomponent: BillingView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Factures',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfOwnerVerified],\r\n\t},\r\n\t{\r\n\t\tpath: '/user',\r\n\t\tname: 'user',\r\n\t\tcomponent: UserView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Profil et utilisateurs',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfOwner],\r\n\t},\r\n\t{\r\n\t\tpath: '/brandings',\r\n\t\tname: 'brandings',\r\n\t\tcomponent: BrandingsView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Brandings',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfOwner],\r\n\t},\r\n\t{\r\n\t\tpath: '/branding/:id',\r\n\t\tname: 'branding',\r\n\t\tcomponent: BrandingView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Branding',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t\tbeforeEnter: [checkIfOwner],\r\n\t},\r\n\t{\r\n\t\tpath: '/workspaces',\r\n\t\tname: 'workspaces',\r\n\t\tcomponent: WorkpaceView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Environnements',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/workspaces/:id',\r\n\t\tname: 'workspace',\r\n\t\tcomponent: WorkspaceIndivudual,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Environnement',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/deployment',\r\n\t\tname: 'deployment',\r\n\t\tcomponent: DeploymentView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Déploiement',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/cases',\r\n\t\tname: 'tickets',\r\n\t\tcomponent: TicketView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Tickets',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/cases/new',\r\n\t\tname: 'ticketCreate',\r\n\t\tcomponent: TicketCreateView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Ticket',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/cases/:id',\r\n\t\tname: 'ticketEdit',\r\n\t\tcomponent: TicketEditView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Ticket',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/callback',\r\n\t\tname: 'callback-salesforce',\r\n\t\tcomponent: CallbackSalesforce,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Callback Salesforce',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/webdoc/:token',\r\n\t\tname: 'webdoc',\r\n\t\tcomponent: SignView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Signature éléctronique',\r\n\t\t\trequiresAuth: false,\r\n\t\t},\r\n\t},\r\n\t{\r\n\t\tpath: '/:pathMatch(.*)*',\r\n\t\tname: 'error',\r\n\t\tcomponent: ErrorView,\r\n\t\tmeta: {\r\n\t\t\ttitle: 'Erreur!',\r\n\t\t\trequiresAuth: true,\r\n\t\t},\r\n\t},\r\n];\r\n\r\nconst router = createRouter({\r\n\thistory: createWebHistory(process.env.BASE_URL),\r\n\troutes,\r\n});\r\n\r\nrouter.beforeEach(async (toRoute) => {\r\n\t// Création du titre de la page, affiché sur l'onglet du navigateur\r\n\twindow.document.title =\r\n\t\ttoRoute.meta.title && toRoute.name != 'webdoc' ? \"L'App | \" + (toRoute.meta.title as string) : \"L'App\";\r\n\r\n\tif (toRoute.name != 'loginas') {\r\n\t\tconst isConnected = await GonexaAuthenticationService.getLocalUser();\r\n\r\n\t\t// Si aucun utilisateur n'est connecté et que la page nécessite un utilisateur connecté, on renvoie vers la page de connexion\r\n\t\tif (isConnected == false && toRoute.meta.requiresAuth == true && toRoute.name != 'webdoc') {\r\n\t\t\t// On enregistre la page à laquelle l'utilisateur voulait accéder pour le rediriger après connexion\r\n\t\t\tif (toRoute.name) localStorage.setItem('APP_NEXT_LOGIN', toRoute.name.toString());\r\n\r\n\t\t\treturn { name: 'login' };\r\n\t\t}\r\n\r\n\t\t// Si un utilisateur est connecté mais que la page nécessite un utilisateur déconnecté, on redirige vers la page d'accueil\r\n\t\tif (isConnected == true && toRoute.meta.requiresAuth == false && toRoute.name != 'webdoc') {\r\n\t\t\treturn { name: 'home' };\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction checkIfOwnerVerified() {\r\n\tconst authStore = useAuthStore();\r\n\tconst toast = useToast();\r\n\r\n\tif (authStore.roleName?.toLowerCase() != 'owner' && authStore.companyStatus?.toLowerCase() != 'verified') {\r\n\t\ttoast.info(Vue.prototype.$t('error.router'));\r\n\t\treturn { name: 'home' };\r\n\t}\r\n}\r\n\r\nfunction checkIfOwner() {\r\n\tconst authStore = useAuthStore();\r\n\tconst toast = useToast();\r\n\r\n\tif (authStore.roleName?.toLowerCase() != 'owner') {\r\n\t\ttoast.info(Vue.prototype.$t('error.router'));\r\n\t\treturn { name: 'home' };\r\n\t}\r\n}\r\n\r\nfunction checkIfDisconnected() {\r\n\tconst authStore = useAuthStore();\r\n\tlocalStorage.removeItem('APP_U');\r\n\tlocalStorage.removeItem('APP_LOG_AS');\r\n\tauthStore.emptyStore();\r\n\t// this.authStore.emitDisconnectToast = true;\r\n}\r\n\r\nexport default router;\r\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n';\r\n\r\n/**\r\n * Load locale messages\r\n *\r\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\r\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction loadLocaleMessages(): LocaleMessages<any> {\r\n\tconst locales = require.context('./translations', true, /[A-Za-z0-9-_,\\s]+\\.json$/i);\r\n\tconst messages: LocaleMessages<VueMessageType> = {};\r\n\tlocales.keys().forEach((key) => {\r\n\t\tconst matched = key.match(/([A-Za-z0-9-_]+)\\./i);\r\n\t\tif (matched && matched.length > 1) {\r\n\t\t\tconst locale = matched[1];\r\n\t\t\tmessages[locale] = locales(key).default;\r\n\t\t}\r\n\t});\r\n\treturn messages;\r\n}\r\n\r\nexport default createI18n({\r\n\tallowComposition: true,\r\n\tlegacy: false,\r\n\tglobalInjection: true,\r\n\tlocale: process.env.VUE_APP_I18N_LOCALE || 'en',\r\n\tfallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',\r\n\tmessages: loadLocaleMessages(),\r\n});\r\n","import { defineComponent, PropType, h } from 'vue';\r\n\r\nconst props = {\r\n\ticonName: {\r\n\t\ttype: String as PropType<string>,\r\n\t},\r\n\tcloseToast: {\r\n\t\ttype: Function as PropType<(e?: MouseEvent) => void>,\r\n\t},\r\n};\r\n\r\nexport const ToastButton = defineComponent({\r\n\tprops,\r\n\tsetup(props) {\r\n\t\treturn () =>\r\n\t\t\th(\r\n\t\t\t\t'button',\r\n\t\t\t\t{\r\n\t\t\t\t\tonClick: props.closeToast,\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\t\tmargin: '0',\r\n\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\twidth: '45px',\r\n\t\t\t\t\t\theight: '45px',\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\t[\r\n\t\t\t\t\th('img', {\r\n\t\t\t\t\t\tsrc: require('@/assets/svg/' + props.iconName),\r\n\t\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t\twidth: '45px',\r\n\t\t\t\t\t\t\theight: '45px',\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}),\r\n\t\t\t\t]\r\n\t\t\t);\r\n\t},\r\n});\r\n\r\nexport const ToastIcon = defineComponent({\r\n\tprops,\r\n\tsetup(props) {\r\n\t\treturn () =>\r\n\t\t\th('img', {\r\n\t\t\t\tsrc: require('@/assets/svg/' + props.iconName),\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\twidth: '25px',\r\n\t\t\t\t\theight: '25px',\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t},\r\n});\r\n\r\nexport const ToastButtonSuccess = h(ToastButton, { iconName: 'cross_green.svg' });\r\n\r\nexport const ToastButtonError = h(ToastButton, { iconName: 'cross_red.svg' });\r\n\r\nexport const ToastButtonWarning = h(ToastButton, { iconName: 'cross_yellow.svg' });\r\n\r\nexport const ToastButtonInfo = h(ToastButton, { iconName: 'cross_blue.svg' });\r\n\r\nexport const ToastErrorIcon = h(ToastIcon, { iconName: 'close_circle.svg' });\r\n\r\nexport const ToastSuccessIcon = h(ToastIcon, { iconName: 'check_circle_green_new.svg' });\r\n\r\nexport const ToastInfoIcon = h(ToastIcon, { iconName: 'info_circle.svg' });\r\n\r\nexport const ToastWarningIcon = h(ToastIcon, { iconName: 'warning_circle.svg' });\r\n","import App from './App.vue';\r\nimport { createApp, h } from 'vue';\r\nimport router from './router';\r\nimport { createPinia } from 'pinia';\r\nimport Toast, { TYPE } from 'vue-toastification';\r\nimport i18n from './i18n';\r\nimport {\r\n\tToastButtonError,\r\n\tToastInfoIcon,\r\n\tToastSuccessIcon,\r\n\tToastWarningIcon,\r\n\tToastErrorIcon,\r\n\tToastButtonSuccess,\r\n\tToastButtonInfo,\r\n\tToastButtonWarning,\r\n} from './toast';\r\n// import 'vue-toastification/dist/index.css';\r\n\r\n// CONFIG STORES PINIA\r\nconst pinia = createPinia();\r\n\r\n// CONFIG TOASTS\r\nconst toastOptions = {\r\n\ttransition: 'Vue-Toastification__fade',\r\n\tmaxToasts: 3,\r\n\tnewestOnTop: true,\r\n\tposition: 'bottom-center',\r\n\ttimeout: 5000,\r\n\tcloseOnClick: false,\r\n\tpauseOnFocusLoss: true,\r\n\tpauseOnHover: true,\r\n\tdraggable: false,\r\n\tdraggablePercent: 0.6,\r\n\tshowCloseButtonOnHover: false,\r\n\thideProgressBar: true,\r\n\tcloseButton: ToastButtonSuccess,\r\n\ticon: true,\r\n\trtl: false,\r\n\r\n\tcontainerClassName: 'app-toast',\r\n\r\n\ttoastDefaults: {\r\n\t\t// ToastOptions object for each type of toast\r\n\t\t[TYPE.ERROR]: {\r\n\t\t\tcloseButton: ToastButtonError,\r\n\t\t\ticon: ToastErrorIcon,\r\n\t\t\ttoastClassName: 'toast-error',\r\n\t\t},\r\n\t\t[TYPE.SUCCESS]: {\r\n\t\t\tcloseButton: ToastButtonSuccess,\r\n\t\t\ticon: ToastSuccessIcon,\r\n\t\t\ttoastClassName: 'toast-success',\r\n\t\t},\r\n\t\t[TYPE.INFO]: {\r\n\t\t\tcloseButton: ToastButtonInfo,\r\n\t\t\ticon: ToastInfoIcon,\r\n\t\t\ttoastClassName: 'toast-info',\r\n\t\t},\r\n\t\t[TYPE.WARNING]: {\r\n\t\t\tcloseButton: ToastButtonWarning,\r\n\t\t\ticon: ToastWarningIcon,\r\n\t\t\ttoastClassName: 'toast-warning',\r\n\t\t},\r\n\t},\r\n};\r\n\r\ncreateApp(App)\r\n\t.use(i18n)\r\n\t.use(router)\r\n\t.use(pinia) // Stores\r\n\t.use(Toast, toastOptions) // Toasts de notifications\r\n\t.mount('#app');\r\n","var map = {\n\t\"./certification_icons.png\": 5674,\n\t\"./document-preview.png\": 43,\n\t\"./doki.png\": 7605,\n\t\"./home-preview-conso-1.png\": 3297,\n\t\"./home-preview-conso-2.png\": 647,\n\t\"./home-preview-conso-3.png\": 649,\n\t\"./home-preview-contract.png\": 3378,\n\t\"./home-preview-informations.png\": 9547,\n\t\"./insert_drive_file.png\": 6992,\n\t\"./lines-template-background.png\": 2729,\n\t\"./logo-app.png\": 6913,\n\t\"./logo-gonexa-connect.png\": 3433,\n\t\"./logo-gonexa-doc.png\": 4578,\n\t\"./logo-gonexa-rf.png\": 6971,\n\t\"./logo-gonexa-sign.png\": 9646,\n\t\"./logo-gonexa-webdoc.png\": 4901,\n\t\"./logo-gonexa.png\": 6411,\n\t\"./logo-university-negatif.png\": 9186,\n\t\"./logo-university.png\": 9344,\n\t\"./logo_excel.png\": 3750,\n\t\"./logo_pdf.png\": 9336,\n\t\"./logo_powerpoint.png\": 2747,\n\t\"./logo_word.png\": 2777,\n\t\"./university-background.png\": 5597,\n\t\"./university-mountains-with-margins.png\": 5369,\n\t\"./university-mountains.png\": 2853\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4735;","var map = {\n\t\"./add_circle_darkblue.svg\": 9449,\n\t\"./add_darkblue.svg\": 5027,\n\t\"./alarm_yellow.svg\": 8323,\n\t\"./arrow_bottom.svg\": 8963,\n\t\"./arrow_bottom_circle_darkblue.svg\": 5982,\n\t\"./arrow_bottom_darkblue.svg\": 9905,\n\t\"./arrow_bottom_darkblue_new.svg\": 2973,\n\t\"./arrow_bottom_darkgrey.svg\": 6518,\n\t\"./arrow_bottom_lightblue.svg\": 1534,\n\t\"./arrow_bottom_lightgrey.svg\": 2957,\n\t\"./arrow_bottom_red.svg\": 7823,\n\t\"./arrow_left_blue.svg\": 2226,\n\t\"./arrow_left_darkblue.svg\": 1714,\n\t\"./arrow_left_lightgrey.svg\": 3189,\n\t\"./arrow_left_white.svg\": 9451,\n\t\"./arrow_right_blue.svg\": 2933,\n\t\"./arrow_right_darkblue.svg\": 1848,\n\t\"./arrow_right_darkblue_new.svg\": 308,\n\t\"./arrow_top.svg\": 1254,\n\t\"./arrow_top_lightgrey.svg\": 2660,\n\t\"./award-blue.svg\": 180,\n\t\"./calendar_darkblue.svg\": 9635,\n\t\"./calendar_grey.svg\": 3582,\n\t\"./check_circle_green.svg\": 5786,\n\t\"./check_circle_green_new.svg\": 3162,\n\t\"./check_darkblue_new.svg\": 6630,\n\t\"./check_green.svg\": 4802,\n\t\"./check_green_new.svg\": 300,\n\t\"./check_white.svg\": 9337,\n\t\"./check_white_new.svg\": 4969,\n\t\"./clock_dark_blue.svg\": 3423,\n\t\"./close_circle.svg\": 818,\n\t\"./cloud-university.svg\": 8905,\n\t\"./copy_black.svg\": 4137,\n\t\"./copy_darkblue.svg\": 6684,\n\t\"./cross_blue.svg\": 9450,\n\t\"./cross_darkblue.svg\": 1380,\n\t\"./cross_green.svg\": 1442,\n\t\"./cross_red.svg\": 9292,\n\t\"./cross_white.svg\": 6993,\n\t\"./cross_yellow.svg\": 6539,\n\t\"./currency_darkblue.svg\": 3120,\n\t\"./dashboard_darkblue.svg\": 5584,\n\t\"./delete_black.svg\": 1223,\n\t\"./delete_red.svg\": 4604,\n\t\"./design.svg\": 7339,\n\t\"./door_darkblue.svg\": 7757,\n\t\"./double_arrow_left_darkblue.svg\": 3019,\n\t\"./double_arrow_left_lightgray.svg\": 2032,\n\t\"./double_arrow_right_darkblue.svg\": 5016,\n\t\"./double_arrow_right_lightgray.svg\": 3102,\n\t\"./download_black.svg\": 905,\n\t\"./download_blue.svg\": 6406,\n\t\"./download_outline_darkblue.svg\": 5728,\n\t\"./dropdown-blue.svg\": 8117,\n\t\"./dropdown-grey.svg\": 6702,\n\t\"./dynamic_feed_darkblue.svg\": 5108,\n\t\"./edit_pencil_black.svg\": 4008,\n\t\"./edit_pencil_darkblue.svg\": 8714,\n\t\"./eye-crossed-grey.svg\": 1578,\n\t\"./eye-grey.svg\": 5291,\n\t\"./file_blue.svg\": 1172,\n\t\"./file_darkblue.svg\": 5424,\n\t\"./flag_darkblue.svg\": 4878,\n\t\"./forbidden_red.svg\": 5046,\n\t\"./gear_darkblue.svg\": 6370,\n\t\"./gonexa_sign_logo_new.svg\": 5745,\n\t\"./headphone.svg\": 6501,\n\t\"./headphones-blue.svg\": 2416,\n\t\"./help_darkblue.svg\": 7651,\n\t\"./histogram_darkblue.svg\": 882,\n\t\"./import_export_darkblue.svg\": 1068,\n\t\"./info_circle.svg\": 3204,\n\t\"./key_darkblue.svg\": 2816,\n\t\"./loader.svg\": 7304,\n\t\"./loading_darkblue.svg\": 5510,\n\t\"./loading_white.svg\": 9360,\n\t\"./menu_blue.svg\": 1772,\n\t\"./menu_white.svg\": 2785,\n\t\"./message_orange.svg\": 4744,\n\t\"./minus_blue.svg\": 1949,\n\t\"./more_points_grey.svg\": 8218,\n\t\"./mouse_and_arrow_gray.svg\": 9384,\n\t\"./note_darkblue.svg\": 6627,\n\t\"./paper-clip.svg\": 137,\n\t\"./paper_clip_blue.svg\": 7714,\n\t\"./pen_darkblue.svg\": 4683,\n\t\"./phone_darkblue.svg\": 565,\n\t\"./pipette.svg\": 6641,\n\t\"./plus_blue.svg\": 8480,\n\t\"./question_grey.svg\": 9291,\n\t\"./refresh.svg\": 4582,\n\t\"./report_darkblue.svg\": 3464,\n\t\"./report_white.svg\": 7768,\n\t\"./send_blue.svg\": 5782,\n\t\"./setting_darkblue.svg\": 7405,\n\t\"./settings_blue.svg\": 5244,\n\t\"./sign_darkblue.svg\": 2272,\n\t\"./sign_pen_lightred.svg\": 6270,\n\t\"./ticket.svg\": 9723,\n\t\"./trash_darkblue.svg\": 6662,\n\t\"./user_account_darkblue.svg\": 4030,\n\t\"./user_darkblue.svg\": 5194,\n\t\"./warning_circle.svg\": 7742,\n\t\"./warning_red.svg\": 326,\n\t\"./warning_yellow.svg\": 682,\n\t\"./warning_yellow_duo.svg\": 3076,\n\t\"./workspaces_darkblue.svg\": 2215\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1265;","var map = {\n\t\"./en.json\": 7512,\n\t\"./fr.json\": 5821\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 2740;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfront\"] = self[\"webpackChunkfront\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(6682); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","named","_named","_withScopeId","n","_hoisted_1","key","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_","_hoisted_7","target","href","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_component_LangChoice","_component_NavigationComponent","$route","meta","requiresAuth","requiresApp","name","src","alt","$t","authStore","firstname","lastname","username","useAuthStore","state","email","roleName","accountStatus","companyStatus","createdDate","userToken","emitDisconnectToast","getters","actions","async","user","this","firstName","lastName","updateUserToken","dataToString","emptyStore","_hoisted_22","_component_router_link","id","navbarState","navbar","navbar__header","onClick","$event","manageNavbar","to","closeIfSmallScreen","default","toLowerCase","disconnectUser","AuthGonexaService","static","localUserToken","localStorage","getItem","axios","headers","Authorization","then","data","logUser","catch","error","console","response","toast","info","removeItem","Error","userDetails","encryptedPassword","usertoken","emailToken","isFirstVerification","init","isFirstVerif","setItem","JSON","stringify","url","password","token","NavigationComponent","navbarStateLS","window","addEventListener","toString","$router","push","innerWidth","__exports__","type","args","changeLanguage","currentLang","for","LangChoice","mounted","lang","$i18n","locale","dispatchEvent","Event","components","loggedAs","$nextTick","setTimeout","resendEmail","EmailSent","lsData","parse","sendEmail","success","message","onSubmit","registerNewUser","_error","inputErrors","newUser","onFocusout","onFocusOutEmail","onInput","registerLoading","RegisterForm","match","checkInputErrors","register","userLocalData","validateRegistration","loginUser","gnxUser","seePassword","loginLoading","LoginForm","btoa","login","nextPage","validateLogin","verifiedUsername","createPassword","updatePassword","pwdErrors","pwd","seePasswordCheck","pwdCheck","passwordCheck","disabled","buttonLoading","UpdatePasswordForm","verifiedEmail","params","verifyAccount","checkPasswordValidity","validatePassword","sendForgotPasswordEmail","usernameError","emailError","LostPasswordForm","LoginAs","loginAs","isLoading","useSalesforceStore","orgId","orgInformations","currentContract","invoices","consumptions","docTemplates","companyUsers","usersNb","deleteTemplates","addCompanyUser","deleteCompanyUser","i","findIndex","u","splice","UserService","sfStore","edituser","ConfirmEmail","updateUserEmail","log","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_component_UserInfosCard","_component_ContractInfosCard","_component_ConsumptionCardsGroup","_component_GonexaUniversityComponent","_component_ConfigurationModal","isOwnerFree","isOwnerVerifInProgress","openModal","openSupport","onClose","closeModal","isConfigurationModelOpen","infoLoaded","undefined","organisation","contractual_contact__r","contact_technique__r","billingStreet","billingState","billingPostalCode","billingCity","billingCountry","CalloutAppApiService","method","responseType","firstRequestResponse","status","firstError","newToken","renewUserToken","secondRequest","secondError","expiredToken","resultRequest","onData","onComplete","fetch","body","reader","getReader","decoder","TextDecoder","done","value","buffer","read","decode","stream","replace","test","json","useEnvironmentStore","externalEnvironments","externalUsers","externalEnvironmentIndivudal","externalEnvironmentStatus","defineExternalEnvironments","addExternalEnvironmentIndivudal","externalEnvironment","removeExternalEnvironmentIndivudal","defineExternalUsers","deleteExternalEnvironment","environementIndex","env","securiseExternalEnvironment","setEnvironmentsStatus","EnvironmentsService","environmentStore","calloutAsync","fetchStream","sign","OrgInformationsService","envStore","allEnvironments","getExternalEnvironments","prodOrgId","filter","typeOrg","externalId","slice","firstOrgId","getOrgId","result","records","err","UserInfosCard","getOrgInfos","gnx__Start_date__c","getFormattedDate","gnx__Account__r","contractRenewal__c","payment_Terms__c","sign__c","connect__c","rF__c","webDoc__c","OrgContractService","contractId","ContractInfosCard","getCurrentContract","dateString","includes","dateParts","split","date","Date","day","getDate","padStart","month","getMonth","year","getFullYear","redirectTo","GonexaUniversityComponent","link","open","style","color","contractLoaded","contractValue","formatCompactNumber","contractLimit","backgroundColor","width","Math","round","templatesValue","signLimit","real_signatures__c","min","ConsumptionCardsGroup","signValue","real_generation__c","gnx__Number_of_generations__c","gnx__Number_of_templates__c","authorized_sign__c","number","toFixed","close","loginSalesforce","AuthSalesforceService","toSandbox","instanceUrl","oldOrgId","salesforceState","orgType","specificDomain","domain","salesforceOAuthUrl","location","origin","salesforceCode","requestBody","uri","ConfigurationModal","$emit","action","loginToSalesforce","HomeView","isOwnerVerified","isOwnerBlocked","isUser","colspan","_component_BillingCardsGroup","_component_TicketComponent","isNbSorted","sortTableColumn","isDateSorted","sortTableColumnDate","inv","gnx__Invoice_number__c","date_de_facture_Formule__c","gnx__Amount_with_taxes__c","compareDates","payment_due_date__c","gnx__Stage__c","length","TicketComponent","lastInvoice","globalStatusIcon","globalStatus","BillingCardsGroup","getAllInvoices","defineGlobalStatus","beforeDestroy","removeEventListener","invoicesNb","index","isInPayment","isLate","indexStage","toLocaleLowerCase","indexDate","dueDateStr","dueDateParts","dueDate","setHours","currentDate","BillingView","sort","x","y","localeCompare","newSortedList","reverse","stringToDate","getTime","_component_UserCreateModal","_component_UserDeleteModal","_component_UserEditModal","nbActiveUsers","openCreateModal","isNameSorted","isUsernameSorted","isEmailSorted","userLoaded","usersList","showActions","onMouseleave","hideActions","copyId","openEditModal","openDeleteModal","onAction","addNewUser","isCreateModalopen","deleteUser","modalUser","isDeleteModalopen","originalUser","userToEdit","updateUserList","UserDeleteModal","hidden","__name","props","label","String","required","items","Array","modelValue","emptyLabel","errorMessage","isRequired","Boolean","emits","setup","__props","emit","localSelectedItem","newValue","immediate","item","t","createEmptyUser","createEmptyErrors","rolesItems","createNewUser","inviteNewUser","isValid","PickList","onChange","Object","editedUser","editExistingUser","updateUser","OriginalUsername","Email","LastName","FirstName","Username","RoleName","UserView","isEditModalopen","getCompanyUsers","sortedUsers","userToDelete","originalUsername","forEach","elem","indexOf","moreButton","document","getElementById","actionsGroup","top","display","getUserId","userId","navigator","clipboard","writeText","UserCreateModal","UserEditModal","_component_WarningConnection","_component_WorkspaceModal","redirectToEnvironmentPage","prodEnvironment","isExternalEnvironmentsLoaded","orgName","prodExists","getIssuesNumber","currentPackageVersion","sfLma__Version_Number__c","sandboxNb","externalEnvironnements","environment","externalEnvironmentToDelete","isModalOpen","WorkspaceModal","WarningConnection","WorkpaceView","loadingEnvironmentsToSecurise","envsStatus","envsLoaded","getExternalEnvironmentsStatusStream","SetExtEnvsStatus","OnCompleteEnvsStatus","UpdateExtEnvsStatus","checkIfProdExists","envs","envData","find","e","envId","signStatus","isUserAndRefreshToken","deleteExternalUser","isSuccess","indexEnvironment","environnement","selection","getSelection","path","issues","_component_ConsumptionChart","clientContract","consumption","graphName","initGenerationInfos","autofocus","ConsumptionChart","generationPercentage","generationLimit","authorized_RF__c","getConsumptions","diviser","chartElm","querySelector","firstChild","removeChild","lastYearDate","setFullYear","month__c","product_Type__c","options","chart","height","toolbar","show","enabled","stroke","curve","grid","yaxis","labels","map","colors","series","reduce","accumulator","currentValue","generationNumber__c","fill","ConsumptionView","CallbackSalesforce","isValidation","URLSearchParams","search","get","encodedState","decodeURI","authToSalesforce","getCompanyStatus","newStatus","finally","isRefreshSandbox","_component_PickList","environmentsSourceItems","selectedSource","documentsLoading","environmentsTargetItems","selectedTarget","externalEnvironnementsTarget","deployDocuments","deploymentLoading","selectedDocuments","placeholder","searchText","checked","documents","element","azureId","selectAllDocument","isTemplateSorted","isFileSorted","searchedDocumentList","selectDocument","fileName","getFormatIcon","extension","getFormatText","size","humanFileSize","lastSendDate","toLocaleDateString","DocumentTemplateService","documentTemplates","responseTemplates","documentTemplateRecords","contentVersionIds","documentTemplateRecord","contentVersionId","gnx__Salesforce_content_version_id_sent__c","responseContentVersion","contentIds","contentVersions","contentVersion","version","documentTemplate","gnx__date_of_last_send__c","gnx__Template_ID_on_Azure__c","title","fileExtension","contentSize","gnx__External_ID__c","salesforceInstanceUrl","instanceDestinationUrl","externalIds","targetInstanceUrl","DeploymentView","environmentLoaded","getExternalUsers","some","externalEnvironmentId","isSource","getAllDocumentTemplatesInfo","event","isCheckboxChecked","showCloseButtonOnHover","sourceOrg","targetOrg","deployDocumentTemplates","octets","si","dp","thresh","abs","units","r","format","watch","newVal","selectEnvironment","WebdocService","webdocToken","contentDocumentId","htmlContent","contentDocId","content","branding","Background","Text","Logo","icon","subtitle","onMouseover","hover","unhover","buttonIcon","buttonText","WebdocPopup","whiteImg","setAttribute","is404","errormessage","WebdocError","InteractionFormat","left","mappedAction","isSignatoryAction","interactionIndex","tooltip","isWebdoc","recipients","currentIndex","constructor","getNode","node","isAutofilled","maxLength","trim","isOptional","picklistModel","oldValue","picklistLabels","picklistValues","picklistOptions","isSignatory","htmlSignPreview","parseInt","Number","ref","documentsCallbacks","validator","isArray","every","webdoc","interactions","menuOpen","availableLocales","currentLocale","messages","currentMessages","useScope","lastTouchDistance","docContent","docView","docLoading","consultation","interaction","signature","allowZoom","scalingMobile","screenState","zoom","pageNumber","currentPage","progression","pages","pagesRatios","datepickers","toggleMenu","adjustDocControlls","docControlls","getElementsByClassName","docContainer","scrollPopup","from","docControl","offsetWidth","getBoundingClientRect","adjustDocumentContent","offsetHeight","fixDocumentAlignement","isInNextTick","func","documentContent","parentElement","documentContentRect","documentControllerRect","newWidth","marginLeft","paddingLeft","paddingRight","setProperty","manageScreenSize","loadHtmlDoc","updateFunction","file","documentId","htmlContainer","createElement","containerId","classList","add","replaceAll","innerHTML","appendChild","signIndex","signatory","spans","getElementsByTagName","spansLength","tagsBuffer","spansBuffer","recordBuffer","textContent","bufferedTag","join","isMultipleLineTag","isOneLineTag","found","matches","whiteNode","elemMatches","splittedAction","insertInteractionNode","j","spanTag","newContent","elements","querySelectorAll","htmlElem","marginBottom","boxShadow","observer","IntersectionObserver","entries","entry","pageIndex","intersectionRatio","consultedPage","max","threshold","uuid","c","crypto","getRandomValues","Uint8Array","elementObserver","observe","initWheelZoomControl","initTouchZoomControl","setConsultedOnScroll","emitActions","changeLanguageInteraction","update","handleZoomInput","zoomValue","docController","touches","preventDefault","getDistance","currentTouchDistance","distanceChange","ctrlKey","delta","deltaY","zoomControl","passive","touch1","touch2","dx","clientX","dy","clientY","sqrt","tag","recipientsInteractions","interactionMap","Map","interactionApproval","getSignPreview","instruction","interactionFormat","insertAdjacentHTML","ev","interactionInput","selectedDate","changeDateValue","airpicker","multipleDates","selectedDates","dateFormat","onSelect","formattedDate","datepicker","isAllow","documentViewGlobal","consultedFunction","documentView","hasVerticalScrollbar","scrollHeight","clientHeight","scrollStage","percetenage","scrollTop","screenStateLS","ref_key","transform","webdocBranding","signatureLoaded","consulted","buttonStyles","nameToIcon","majs","count","specialChar","toUpperCase","substring","getRecipients","stakeHolder","logoStyle","sizes","S","M","L","LogoSize","openValidationScreen","Button","ButtonText","owner","destinataire","contentDocuments","doc","route","documentFunctions","webdocLoaded","expired","validation","hasEveryStakeHolderSigned","hasInteraction","stakeholder","recipient","handleActions","webdocActions","handleConsulted","handleScreenState","handleWebdocMode","consult","inter","closeWebdocPopup","setWebdocMode","interact","splittedTag","hasEveryRequiredInteractionBeenFilled","mailToOwner","setDocumentSigned","setWebdocSign","downloadWebdocPDF","getWebdocFile","versionData","fileURL","URL","createObjectURL","download","click","getWebdoc","docData","getBlobFromContentId","getWebdocBranding","DocumentViewer","onConsulted","onActions","onScreenstate","onWebdocMode","onCurrentPage","onPageNumber","SignPane","onOpenValidationScreen","homePage","ErrorView","win","focus","packageId","packages","packagesItems","sortedPackages","a","b","versionA","versionB","numA","numB","indexOfCurrentVersion","p","sfLma__Version_ID__c","indexVersion","is_Installable__c","isDisabled","router","externalEnvironmentLoading","packageModal","isDeleteModalOpen","deletionInProgress","closeDeleteModal","redirectLink","extUsers","fullname","logToSalesforce","loginSalesforceWithOldOrgId","loginSalesforceWithUrl","getExernalEnvironment","ButtonBack","buttonLabel","onOnClick","packageVersions","PackageModal","BrandingsService","brandingId","cancelButtonText","confirmButtonText","isCritical","emitClose","emitConfirm","$slots","sortState","column","direction","searchTerm","formatDateTime","dateObj","Intl","DateTimeFormat","hour","minute","second","hour12","filteredData","searchLower","row","sortedData","valueA","valueB","sortColumn","getSortClass","handleRowClick","isRowClickable","brandings","showConfirmModal","brandingToDelete","showCreateModal","formData","brandingsColumns","deleteAction","callback","confirmDelete","loadBrandings","getBrandings","createBranding","deleteBranding","redirectToBranding","DataTable","columns","onRowClick","noDataMessage","actionButton","FormModal","onConfirm","ConfirmActionModal","onDragover","onDrop","handleFileDrop","localLogo","accept","handleFileUpload","ImageInputComponent","MAX_FILE_SIZE","companyLogo","files","dataTransfer","FileReader","onload","readAsDataURL","startsWith","newLogo","_component_ColorPicker","pureColor","selectedColor","shape","ColorInputComponent","created","ColorPicker","newColor","logo","SignPreviewComponent","logoSize","currentRoute","savedBranding","brandingName","brandingIsDefault","defaultColors","localColors","savedColors","keys","localLogoSize","loadPreferences","getBranding","storedColors","background","text","button","assign","storedLogo","isDefault","getContract","updateColor","updateLogo","preferencesUpdated","saveChanges","updatedBranding","updateBranding","onImageUpdated","onColorUpdated","TicketService","results","ticket","getFirstOrgId","comment","subject","FormData","append","app_IsNew__c","tickets","openTickets","closedTickets","isLoadingTickets","openTicketsColumns","closedTicketsColumns","fetchTickets","getTickets","apiError","displayTickets","statusResult","getStatusIdFromTicket","displayStatus","newTickets","openTicketCreateView","openTicketEditView","SectionSeparator","headerParamsButton","elementName","selected","isResizable","minHeight","FontAttributor","SizeAttributor","AlignAttributor","BackgroundAttributor","ColorAttributor","DirectionAttributor","whitelist","quillEditorRef","onChangeHandler","inputValue","set","val","quill","getQuill","root","dangerouslyPasteHTML","enable","newPlaceholder","dataset","contentType","theme","htmlToString","html","parser","DOMParser","parseFromString","paragraphs","emailMessages","expandedIndex","toggleExpand","isSupport","formatDate","formatTime","orderEmailMessages","dateA","dateB","mail","rotated","fromAddress","fromName","htmlBody","extensionsAccepted","extensions","ext","fileInput","dragOver","triggerFileDialog","onFileSelected","emitAddFile","onDragEnter","onDragOver","onDragLeave","pop","maxFileSize","maxSize","maxFiles","uploadedFiles","removeFile","formatFileSize","kb","ticketNumber","handleCancel","handleSubmit","MAX_FILE_SIZE_MB","MAX_FILE_COUNT","ALLOWED_EXTENSIONS","editTicket","editTicketFiles","newComment","statuses","isLoadingSubmitNewComment","isLoadingCloseTicket","isCloseModalOpen","goBack","onAddFile","onRemoveFile","submitNewComment","createNewComment","uploadTicketFiles","fetchTicketById","ticketFile","uploadTicketFile","openTicketCloseModal","closeTicketCloseModal","closeTicket","closeTicketById","getTicketById","fetchStatuses","getStatuses","isClosedTicket","statusSteps","isPast","isActive","editTicketStatusId","fontColor","caseNumber","StatusSteps","steps","InputTextHTML","FileUploader","dropLabel","EmailMessageList","TicketCloseModal","onCancel","maxlength","computedValue","otherOrgIdPickListValue","products","affectedUsers","priorities","otherOrgId","createEmptyTicket","description","product__c","priority","affected_users__c","accessSupport","closedDate","newTicket","newTicketFiles","product","affectedUser","ticketId","createNewTicket","createTicket","fetchEnvironments","EnvironmentItems","newEnvironmentItems","fetchProducts","getProducts","ProductItems","newProductItems","fetchAffectedUsers","getAffectedUsers","AffectedUserItems","newAffectedUserItems","fetchPriorities","getPriorities","PriorityItems","newPriorityItems","InputText","routes","component","redirect","beforeEnter","checkIfDisconnected","checkIfOwnerVerified","checkIfOwner","BrandingsView","BrandingView","WorkspaceIndivudual","TicketView","TicketCreateView","TicketEditView","SignView","history","beforeEach","toRoute","isConnected","loadLocaleMessages","locales","matched","allowComposition","legacy","globalInjection","fallbackLocale","iconName","closeToast","Function","ToastButton","h","margin","opacity","ToastIcon","ToastButtonSuccess","ToastButtonError","ToastButtonWarning","ToastButtonInfo","ToastErrorIcon","ToastSuccessIcon","ToastInfoIcon","ToastWarningIcon","toastOptions","transition","maxToasts","newestOnTop","position","timeout","closeOnClick","pauseOnFocusLoss","pauseOnHover","draggable","draggablePercent","hideProgressBar","closeButton","rtl","containerClassName","toastDefaults","toastClassName","App","use","i18n","mount","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","d","definition","defineProperty","enumerable","g","globalThis","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}