@wisemen/wise-crm-web 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1037 -0
- package/dist/BusinessDetailSidebarProvider-BQMRbGHQ.js +2083 -0
- package/dist/{BusinessDetailView-DvhFfuGg.js → BusinessDetailView-BxGxWOme.js} +5 -5
- package/dist/{CrmDetailHeaderCard-e5332OkQ.js → CrmDetailHeaderCard-CCNJpMAK.js} +68 -67
- package/dist/{CrmDetailView-C-lsAhtD.js → CrmDetailView-ozCpuaX2.js} +14 -14
- package/dist/{DealCommunicationTabView-e7NkRy9r.js → DealCommunicationTabView-Df5EeolN.js} +2 -2
- package/dist/{DealDetailView-BDCbOBoo.js → DealDetailView-DdWHqaBr.js} +163 -163
- package/dist/{DealExternalAttachment-D1PznE3V.js → DealExternalAttachment-qHdh4yMI.js} +1 -1
- package/dist/{DealSendMailDialog-DVE2iYQC.js → DealSendMailDialog-BaYcWZP-.js} +65 -69
- package/dist/Error-BArv9rNb.js +12650 -0
- package/dist/IndividualDetailSidebarProvider-BXZH951l.js +608 -0
- package/dist/{IndividualDetailView-B7dX3hZ8.js → IndividualDetailView-DfYS31-e.js} +5 -5
- package/dist/LinkBrokenIcon-CTlqmapl.js +17 -0
- package/dist/api/mutations/deal/dealCreate.mutation.d.ts +1 -1
- package/dist/api/mutations/deal/dealUpdate.mutation.d.ts +3 -3
- package/dist/api/mutations/mail-template/mailTemplateUpdate.mutation.d.ts +1 -1
- package/dist/client/apiErrorCode.gen.d.ts +2 -2
- package/dist/client/sdk.gen.d.ts +20 -17
- package/dist/client/types.gen.d.ts +1057 -1376
- package/dist/client/zod.gen.d.ts +15453 -17750
- package/dist/{client-BP13IBbl.js → client-pCaNxE3C.js} +748 -1047
- package/dist/components/app/dialog/AppConfirmDialog.vue.d.ts +2 -2
- package/dist/components/crm-detail/CrmDetailHeaderCard.vue.d.ts +2 -0
- package/dist/components/crm-detail/CrmDetailSidebarAccordionContactPersonInfo.vue.d.ts +2 -2
- package/dist/components/crm-detail/CrmDetailSidebarAccordionGenericContactPersonInfo.vue.d.ts +2 -2
- package/dist/components/notes/NoteList.vue.d.ts +2 -2
- package/dist/deal/components/DealSendMailForm.vue.d.ts +2 -2
- package/dist/deal/components/DealSendMailFormFooter.vue.d.ts +1 -1
- package/dist/deal/components/DealSettingsDialogMailTemplateForm.vue.d.ts +2 -2
- package/dist/deal/components/DealSettingsDialogMailTemplateFormFields.vue.d.ts +2 -2
- package/dist/dialogs/contact-create/ContactCreateDialog.vue.d.ts +1 -1
- package/dist/dialogs/contact-create/components/ContactCreateDialogBusinessContactPersonSearch.vue.d.ts +2 -2
- package/dist/dialogs/contact-create/components/ContactCreateDialogBusinessGeneralInfo.vue.d.ts +2 -2
- package/dist/dialogs/contact-create/components/ContactCreateDialogFooter.vue.d.ts +2 -2
- package/dist/dialogs/contact-create/components/ContactCreateDialogFormSection.vue.d.ts +2 -2
- package/dist/dialogs/note/CrmDetailSidebarNotesView.vue.d.ts +2 -2
- package/dist/icons/LinkBrokenIcon.vue.d.ts +3 -0
- package/dist/icons/icon.d.ts +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +448 -453
- package/dist/models/brand-colors/brandColor.model.d.ts +14 -0
- package/dist/models/brand-colors/brandColor.transformer.d.ts +5 -0
- package/dist/models/conent-locale/contentLocaleEnum.model.d.ts +3 -3
- package/dist/models/deal/create/dealCreateForm.model.d.ts +2 -2
- package/dist/models/deal/detail/dealDetail.model.d.ts +2 -2
- package/dist/models/deal/index/dealIndex.model.d.ts +2 -2
- package/dist/models/deal/update/dealUpdateForm.model.d.ts +2 -2
- package/dist/models/mail-template/detail/mailTemplateDetail.model.d.ts +2 -2
- package/dist/models/mail-template/update/mailTemplateUpdateForm.model.d.ts +3 -3
- package/dist/models/phone-number/phoneNumberForm.model.d.ts +3 -0
- package/dist/models/tenant-config/tenantConfig.model.d.ts +3 -0
- package/dist/plugins/i18n.plugin.d.ts +4 -0
- package/dist/style.css +1 -1
- package/dist/testing/factories/business.factory.d.ts +2 -1
- package/dist/testing.js +23 -2
- package/package.json +2 -1
- package/dist/BusinessDetailSidebarProvider-D11bjWFa.js +0 -2081
- package/dist/BusinessDetailSidebarProvider-DYY-Uzvx.js +0 -2081
- package/dist/BusinessDetailSidebarProvider-ZYGQoNHh.js +0 -2081
- package/dist/BusinessDetailView-BOCy7G-w.js +0 -24
- package/dist/BusinessDetailView-WaATSNQS.js +0 -24
- package/dist/CrmDetailHeaderCard-C-JNdi7s.js +0 -2515
- package/dist/CrmDetailHeaderCard-qkNK-2wR.js +0 -2515
- package/dist/CrmDetailView-C6Xm1Lp6.js +0 -65
- package/dist/CrmDetailView-DQehs8Fb.js +0 -65
- package/dist/DealDetailView-BfkDNvK4.js +0 -1021
- package/dist/DealDetailView-Cs5TDhih.js +0 -1021
- package/dist/DealSendMailDialog-D5Voyhhc.js +0 -1556
- package/dist/DealSendMailDialog-OAn6xjLq.js +0 -1556
- package/dist/Error-5vt6UD4m.js +0 -3708
- package/dist/Error-B4TwHEhb.js +0 -3706
- package/dist/Error-BPxDpKcI.js +0 -3706
- package/dist/IndividualDetailSidebarProvider-CvZQdjzp.js +0 -606
- package/dist/IndividualDetailSidebarProvider-DBITt-9W.js +0 -606
- package/dist/IndividualDetailSidebarProvider-vIu7Hv8O.js +0 -606
- package/dist/IndividualDetailView-B1vbJXGc.js +0 -24
- package/dist/IndividualDetailView-BKEs0XS5.js +0 -24
- /package/dist/{LinkExternalIcon-B9Qg55Oa.js → LinkExternalIcon-LOVtSqBT.js} +0 -0
- /package/dist/{LinkIcon-DCW5zjbQ.js → LinkIcon-DqBbVrvs.js} +0 -0
- /package/dist/{LocationPinIcon-DBc-wt2e.js → LocationPinIcon-Cp-wRgk2.js} +0 -0
- /package/dist/{MailIcon-Do4a7S2W.js → MailIcon-CnTrB1k3.js} +0 -0
- /package/dist/{MobilePhoneIcon-DSXyKwjd.js → MobilePhoneIcon-B747hmpS.js} +0 -0
- /package/dist/{NumberedListIcon-DUaSJSYu.js → NumberedListIcon-amJxDaaD.js} +0 -0
- /package/dist/{PhoneIcon-C8Cv1IiW.js → PhoneIcon-94MYVL85.js} +0 -0
- /package/dist/{RefreshIcon-CKZgHIZU.js → RefreshIcon-DRe3coBc.js} +0 -0
- /package/dist/{SendIcon-B-sQkQ3W.js → SendIcon-MYItp1xI.js} +0 -0
- /package/dist/{SettingsIcon-DzP-IQS5.js → SettingsIcon-C0qTAv0w.js} +0 -0
- /package/dist/{StarOutlineIcon-c0VfXRdQ.js → StarOutlineIcon-CiFLgepk.js} +0 -0
- /package/dist/{StarYellowIcon-CH0CnlSU.js → StarYellowIcon-C0v_XGwI.js} +0 -0
- /package/dist/{ThreeDotsIcon-C6PCFq5J.js → ThreeDotsIcon-lujOTU3G.js} +0 -0
- /package/dist/{TimeLineMarkerIcon-6B6SbwTN.js → TimeLineMarkerIcon-C4LfErbc.js} +0 -0
- /package/dist/{TrashIcon-BTPSVviz.js → TrashIcon-v4L9SEK_.js} +0 -0
- /package/dist/{UploadCloudIcon-1aMW5OJq.js → UploadCloudIcon-j1-1Rvqb.js} +0 -0
- /package/dist/{UserCircleIcon-D-19dc-2.js → UserCircleIcon-BjUt_2C4.js} +0 -0
- /package/dist/{UserIcon-D1H8TGlg.js → UserIcon-Cb2jFKLr.js} +0 -0
- /package/dist/{VerticalDotsIcon-DmPza4Jd.js → VerticalDotsIcon-Y3m6tlQ2.js} +0 -0
- /package/dist/{WalletIcon-BlI3D3v-.js → WalletIcon-pPsKbzmh.js} +0 -0
package/dist/Error-BPxDpKcI.js
DELETED
|
@@ -1,3706 +0,0 @@
|
|
|
1
|
-
import { a as AppGroup_default, n as useDateTimeFormat, o as PlainDateTransformer, r as DateUtil, s as ZonedDateTimeTransformer, u as ze } from "./AppSkeletonLoader-BAhoOmFD.js";
|
|
2
|
-
import { $ as viewIndividualStatisticsV1, A as updateIndividualV1, B as viewBusinessNotesIndexV1, H as viewCustomFieldDefinitionIndexV1, J as viewIndividualBillingInformationDetailV1, K as viewDealNotesIndexV1, M as updateNoteV1, P as upsertIndividualBillingInformationV1, Q as viewIndividualNotesIndexV1, X as viewIndividualDetailV1, Y as viewIndividualContactPersonDetailV1, Z as viewIndividualIndexV1, a as createIndividualV1, at as viewTenantConfigDetailV1, c as createUserIndividualGrantV1, gt as EntityType, ht as EntityColor, k as updateIndividualContactPersonV1, l as deleteNoteV1, p as linkContactPersonToIndividualV1, q as viewIndividualActivityLogIndexV1, s as createNoteV1, st as client, v as makeIndividualContactPersonPrimaryV1, vt as Locale, w as unlinkContactPersonFromIndividualV1 } from "./client-BP13IBbl.js";
|
|
3
|
-
import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BSi1g3Lh.js";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, readonly, ref, renderList, renderSlot, toDisplayString, unref, useId, useModel, useSlots, watch, withCtx, withModifiers } from "vue";
|
|
6
|
-
import { createI18n, useI18n } from "vue-i18n";
|
|
7
|
-
import { PaginationParamsBuilder, VcButton, VcDialog, VcDialogCloseButton, VcDialogDescription, VcDialogTitle, VcDropdownMenu, VcDropdownMenuItem, VcFormField, VcIcon, VcIconButton, VcKeyboardKey, VcKeyboardShortcutProvider, VcPhoneNumberField, VcPopoverAnchor, VcPopoverContent, VcPopoverPortal, VcPopoverRoot, VcPopoverTrigger, VcRouterLinkButton, VcSpinner, VcTabs, VcTabsItem, VcTextField, VcTextarea, VcThemeProvider, useDialog, useToast } from "@wisemen/vue-core-components";
|
|
8
|
-
import { Temporal } from "temporal-polyfill";
|
|
9
|
-
import { onBeforeRouteLeave, useRoute, useRouter } from "vue-router";
|
|
10
|
-
import { useDebounceFn, useElementSize, useInfiniteScroll, useLocalStorage, useStorage } from "@vueuse/core";
|
|
11
|
-
import { useInfiniteQuery } from "@tanstack/vue-query";
|
|
12
|
-
import { useForm } from "formango";
|
|
13
|
-
import { AnimatePresence, Motion } from "motion-v";
|
|
14
|
-
import { AccordionContent, AccordionHeader, AccordionItem, AccordionRoot, AccordionTrigger, ListboxContent, ListboxFilter, ListboxItem, ListboxRoot } from "reka-ui";
|
|
15
|
-
var en_US_default = {
|
|
16
|
-
"module.notification.notification_center.title": "Notifications",
|
|
17
|
-
"module.notification.notification_center.trigger.label": "Open notifications",
|
|
18
|
-
"module.notification.notification_center.unread": "Unread",
|
|
19
|
-
"module.notification.notification_center.all": "All",
|
|
20
|
-
"module.notification.notification_center.empty.text": "🎉 You're all caught up!",
|
|
21
|
-
"module.notification.notification_center.mark_as_read.label": "Mark as read",
|
|
22
|
-
"module.notification.notification_center.mark_all_as_read.label": "Mark all as read",
|
|
23
|
-
"module.notification.notification_center.test_notification.title": "sent a test notification.",
|
|
24
|
-
"component.base_dialog.confirm_dialog.description": "You have unsaved changes. Are you sure you want to close this dialog without saving?",
|
|
25
|
-
"module.settings.settings_are_hidden.label": "{count} setting in \"{viewName}\" is currently hidden. | {count} settings in \"{viewName}\" are currently hidden.",
|
|
26
|
-
"module.settings.settings_are_hidden.show_all.label": "Show all settings",
|
|
27
|
-
"wise_crm.deal.detail_view.communication_tab_label": "Communication",
|
|
28
|
-
"component.base_dialog.confirm_dialog.title": "Close without saving?",
|
|
29
|
-
"component.select.search_input_placeholder": "Search...",
|
|
30
|
-
"component.error.message_prefix": "Error message:",
|
|
31
|
-
"component.api_error.default_title": "Something went wrong",
|
|
32
|
-
"component.api_error.default_message": "Please try again later.",
|
|
33
|
-
"module.notification.notification_center.test_notification.someone": "Someone",
|
|
34
|
-
"component.filters_dropdown_menu.clear_all_filters": "Clear all filters",
|
|
35
|
-
"component.filters_dropdown_menu.filter": "Filter",
|
|
36
|
-
"component.filters_active.no_active_filters": "No active filters",
|
|
37
|
-
"component.command_menu.action.change_language_to_en_us": "Change language to English (US)",
|
|
38
|
-
"component.command_menu.action.change_language_to_nl_be": "Change language to Dutch (Belgium)",
|
|
39
|
-
"component.command_menu.action.change_to_system_preference": "Change to system preference",
|
|
40
|
-
"component.command_menu.action.create_new_contact": "Create new contact",
|
|
41
|
-
"enum.api_error_code.deal_column_transition_not_allowed": "Deal column transition not allowed",
|
|
42
|
-
"wise_crm.info_dialog.sidebar.grant_customer_zone_access": "Grant customer zone access",
|
|
43
|
-
"wise_crm.deal.filters.owner.label": "Deal owner",
|
|
44
|
-
"wise_crm.info_dialog.sidebar.grant_customer_zone_access_success": "Customer zone access granted successfully.",
|
|
45
|
-
"wise_crm.info_dialog.sidebar.overview.delete_contact_person_title": "Delete contact person",
|
|
46
|
-
"wise_crm.info_dialog.sidebar.overview.delete_contact_person_description": "Are you sure you want to delete this contact person? This action cannot be undone.",
|
|
47
|
-
"wise_crm.form.cancel": "Cancel",
|
|
48
|
-
"wise_crm.form.save": "Save",
|
|
49
|
-
"wise_crm.form.send": "Send",
|
|
50
|
-
"component.search_dialog.title": "Global search",
|
|
51
|
-
"component.search_dialog.description": "Search for contacts, deals, and more within the application.",
|
|
52
|
-
"component.command_menu.action.enable_dark_mode": "Enable dark mode",
|
|
53
|
-
"component.command_menu.action.enable_light_mode": "Enable light mode",
|
|
54
|
-
"component.command_menu.action.open_appearance": "Open appearance",
|
|
55
|
-
"component.command_menu.action.open_preferences": "Open preferences",
|
|
56
|
-
"component.command_menu.action.open_contacts": "Go to contacts",
|
|
57
|
-
"component.command_menu.action.open_notifications": "Open notifications",
|
|
58
|
-
"component.command_menu.action.open_settings": "Go to settings",
|
|
59
|
-
"component.command_menu.aria_description": "Search for anything in the app",
|
|
60
|
-
"component.command_menu.aria_title": "Global search dialog",
|
|
61
|
-
"component.command_menu.breadcrumb.language": "Language",
|
|
62
|
-
"component.command_menu.placeholder": "What are you looking for?",
|
|
63
|
-
"component.command_menu.action.disable_keyboard_shortcuts": "Disable keyboard shortcut visual hints",
|
|
64
|
-
"component.command_menu.action.enable_keyboard_shortcuts": "Enable keyboard shortcut visual hints",
|
|
65
|
-
"component.header.search": "Global search",
|
|
66
|
-
"component.keyboard_shortcut.then": "then",
|
|
67
|
-
"enum.api_error_code.absence_overlaps_with_absence": "Absence overlaps with another absence",
|
|
68
|
-
"enum.api_error_code.mail_template_key_not_found": "Mail template key not found",
|
|
69
|
-
"enum.api_error_code.mail_template_key_already_in_use": "Mail template key already in use",
|
|
70
|
-
"enum.api_error_code.mail_template_locale_language_already_provided": "Mail template locale language already provided",
|
|
71
|
-
"enum.api_error_code.mail_template_not_found": "Mail template not found",
|
|
72
|
-
"enum.api_error_code.board_column_not_found": "Board column not found",
|
|
73
|
-
"enum.api_error_code.customer_zone_individual_grant_not_found": "Customer zone individual grant not found",
|
|
74
|
-
"enum.api_error_code.board_columns_already_exist": "Board columns already exist",
|
|
75
|
-
"enum.api_error_code.business_vat_number_already_exists": "Business VAT number already exists",
|
|
76
|
-
"enum.api_error_code.absence_overlaps_with_full_day_absence": "Absence overlaps with full day absence",
|
|
77
|
-
"enum.api_error_code.accepted_transport_order_not_found": "ATO not found",
|
|
78
|
-
"enum.api_error_code.billing_information_not_found": "Billing information not found",
|
|
79
|
-
"enum.api_error_code.business_circular_reference": "Business circular reference",
|
|
80
|
-
"enum.api_error_code.business_contact_person_not_found": "Business contact person not found",
|
|
81
|
-
"enum.api_error_code.business_not_found": "Business not found",
|
|
82
|
-
"enum.api_error_code.care_user_contact_person_not_found": "Care user contact person not found",
|
|
83
|
-
"enum.api_error_code.care_user_has_no_invoice_detail": "Care user has no invoice detail",
|
|
84
|
-
"enum.api_error_code.care_user_not_found": "Care user not found",
|
|
85
|
-
"enum.api_error_code.client_not_found": "Client not found",
|
|
86
|
-
"enum.api_error_code.contact_person_not_found": "Contact person not found",
|
|
87
|
-
"enum.api_error_code.contract_type_not_found": "Contract type not found",
|
|
88
|
-
"enum.api_error_code.customer_zone_email_verification_organization_mismatch": "Email address does not match the selected organization",
|
|
89
|
-
"enum.api_error_code.customer_zone_email_verification_user_not_found": "User not found for email verification",
|
|
90
|
-
"enum.api_error_code.customer_zone_individual_already_linked": "Customer zone individual already linked",
|
|
91
|
-
"enum.api_error_code.customer_zone_individual_user_grant_not_found": "Customer zone individual user grant not found",
|
|
92
|
-
"enum.api_error_code.customer_zone_invalid_email_verification_code": "Invalid email verification code",
|
|
93
|
-
"enum.api_error_code.customer_zone_tenant_domain_not_found": "Tenant domain not found",
|
|
94
|
-
"enum.api_error_code.coordinates_not_provided": "Coordinates not provided",
|
|
95
|
-
"enum.api_error_code.deal_creation_not_allowed": "Deal creation not allowed",
|
|
96
|
-
"enum.api_error_code.deal_contact_person_not_found": "Deal contact person not found",
|
|
97
|
-
"enum.api_error_code.deal_not_found": "Deal not found",
|
|
98
|
-
"enum.api_error_code.department_contact_person_not_found": "Department contact person not found",
|
|
99
|
-
"enum.api_error_code.department_not_found": "Department not found",
|
|
100
|
-
"enum.api_error_code.driver_availability_not_found": "Driver availability not found",
|
|
101
|
-
"enum.api_error_code.vies_service_unavailable": "VIES service is currently unavailable",
|
|
102
|
-
"enum.api_error_code.driver_invalid_availability_period": "Invalid availability period",
|
|
103
|
-
"enum.api_error_code.driver_not_deactivated": "Driver is not deactivated",
|
|
104
|
-
"enum.api_error_code.driver_not_found": "Driver not found",
|
|
105
|
-
"enum.api_error_code.driver_overlapping_availability": "Overlapping availabilities for driver",
|
|
106
|
-
"enum.api_error_code.driver_past_deactivated_at": "Deactivated at is not allowed in the past",
|
|
107
|
-
"enum.api_error_code.driver_unavailability_not_found": "Driver unavailability not found",
|
|
108
|
-
"enum.api_error_code.driver_vehicle_already_assigned": "Driver vehicle already assigned to a different driver",
|
|
109
|
-
"enum.api_error_code.file_not_found": "File not found",
|
|
110
|
-
"enum.api_error_code.full_day_absence_not_found": "Full day absence not found",
|
|
111
|
-
"enum.api_error_code.holiday_not_found": "Holiday not found",
|
|
112
|
-
"enum.api_error_code.holiday_not_in_future": "Holiday start date should be in the future",
|
|
113
|
-
"enum.api_error_code.individual_contact_person_not_found": "Individual contact person not found",
|
|
114
|
-
"enum.api_error_code.individual_not_found": "Individual not found",
|
|
115
|
-
"enum.api_error_code.internal_server_error": "Internal server error",
|
|
116
|
-
"enum.api_error_code.invalid_holiday_end_date": "Invalid holiday end date",
|
|
117
|
-
"enum.api_error_code.invalid_holiday_start_date": "Invalid holiday start date",
|
|
118
|
-
"enum.api_error_code.job_not_found": "Job not found",
|
|
119
|
-
"enum.api_error_code.location_not_found": "Location not found",
|
|
120
|
-
"enum.api_error_code.max_time_in_vehicle_formula_not_found": "Max time in vehicle formula not found",
|
|
121
|
-
"enum.api_error_code.migration_already_performed": "Migration already performed",
|
|
122
|
-
"enum.api_error_code.must_have_individual_or_business": "Must have individual or business",
|
|
123
|
-
"enum.api_error_code.no_board_columns": "No board columns",
|
|
124
|
-
"enum.api_error_code.no_left_adjacent_pricing_parameters_found": "No left adjacent pricing parameters found",
|
|
125
|
-
"enum.api_error_code.no_orders_to_simulate": "No orders to simulate",
|
|
126
|
-
"enum.api_error_code.no_shifts_to_simulate": "No shifts to simulate",
|
|
127
|
-
"enum.api_error_code.note_must_have_entity": "Note must have entity",
|
|
128
|
-
"enum.api_error_code.order_request_invalid_status": "The order intake is not in a valid status to perform this action.",
|
|
129
|
-
"enum.api_error_code.order_request_no_transport_orders": "This order intake contains no transport orders. Add transport orders to continue.",
|
|
130
|
-
"enum.api_error_code.order_request_not_found": "Order request not found",
|
|
131
|
-
"enum.api_error_code.order_request_validation_failed": "The order intake contains incorrect or incomplete information. Check the fields and make the necessary corrections.",
|
|
132
|
-
"enum.api_error_code.organization_contact_person_not_found": "Organization contact person not found",
|
|
133
|
-
"enum.api_error_code.organization_not_found": "Organization not found",
|
|
134
|
-
"enum.api_error_code.overlapping_driver_unavailabilities": "Availabilities are not allowed to overlap",
|
|
135
|
-
"enum.api_error_code.past_deactivated_at": "The deactivation date cannot be in the past.",
|
|
136
|
-
"enum.api_error_code.pricing_parameters_not_found": "Pricing parameters not found",
|
|
137
|
-
"enum.api_error_code.pricing_parameters_not_in_future": "Pricing parameters not in future",
|
|
138
|
-
"enum.api_error_code.primary_contact_of_business_not_unlinkable": "Primary contact of business not unlinkable",
|
|
139
|
-
"enum.api_error_code.primary_contact_of_care_user_not_unlinkable": "Primary contact of care user not unlinkable",
|
|
140
|
-
"enum.api_error_code.primary_contact_of_department_not_unlinkable": "Primary contact of department not unlinkable",
|
|
141
|
-
"enum.api_error_code.primary_contact_of_individual_not_unlinkable": "Primary contact of individual not unlinkable",
|
|
142
|
-
"enum.api_error_code.primary_contact_of_deal_not_unlinkable": "Primary contact of deal not unlinkable",
|
|
143
|
-
"enum.api_error_code.primary_contact_of_organization_not_unlinkable": "Primary contact of organization not unlinkable",
|
|
144
|
-
"enum.api_error_code.requested_transport_order_not_found": "Transport order not found",
|
|
145
|
-
"enum.api_error_code.role_not_found": "Role not found",
|
|
146
|
-
"enum.api_error_code.shift_not_found": "Shift not found",
|
|
147
|
-
"enum.api_error_code.invalid_vat_number": "Invalid VAT number",
|
|
148
|
-
"validation.vat_number.invalid_country_code": "No/Invalid country code",
|
|
149
|
-
"wise_crm.widgets.view_all": "View all",
|
|
150
|
-
"validation.vat_number.numbers_only": "Invalid VAT number",
|
|
151
|
-
"enum.api_error_code.shift_overlaps_with_absence": "Shift overlaps with absence",
|
|
152
|
-
"enum.api_error_code.shift_overlaps_with_existing_shifts": "Shift overlaps with existing shifts",
|
|
153
|
-
"enum.api_error_code.shift_overlaps_with_full_day_absence": "Shift overlaps with full day absence",
|
|
154
|
-
"enum.api_error_code.simulation_cannot_be_deleted": "Simulation cannot be deleted",
|
|
155
|
-
"enum.api_error_code.tenant_not_found": "Tenant not found",
|
|
156
|
-
"enum.api_error_code.user_not_found": "User not found",
|
|
157
|
-
"enum.api_error_code.user_notification_not_found": "User notification not found",
|
|
158
|
-
"enum.api_error_code.invalid_billing_information": "Invalid billing information",
|
|
159
|
-
"enum.api_error_code.user_connected_to_other_tenant": "User connected to other tenant",
|
|
160
|
-
"enum.api_error_code.vehicle_unavailability_not_found": "Vehicle unavailability not found",
|
|
161
|
-
"enum.api_error_code.virtual_segment_not_found": "virtual segment not found",
|
|
162
|
-
"component.password_input.hide_password": "Hide password",
|
|
163
|
-
"component.password_input.show_password": "Show password",
|
|
164
|
-
"component.refresh_prompt.new_version.action": "Refresh",
|
|
165
|
-
"component.refresh_prompt.new_version.description": "New version available! Reload to receive the latest functionality.",
|
|
166
|
-
"component.search_input.clear": "Clear",
|
|
167
|
-
"component.search_input.placeholder": "Search...",
|
|
168
|
-
"component.select.empty_text": "No results found for '{searchTerm}'.",
|
|
169
|
-
"component.select.search_placeholder": "Search...",
|
|
170
|
-
"component.sidebar.close_sidebar": "Close sidebar",
|
|
171
|
-
"component.sidebar.footer.environment": "Environment",
|
|
172
|
-
"enum.system_job_queue_name.system": "System",
|
|
173
|
-
"enum.system_job_status.active": "Active",
|
|
174
|
-
"enum.system_job_status.cancelled": "Cancelled",
|
|
175
|
-
"enum.system_job_status.completed": "Completed",
|
|
176
|
-
"enum.system_job_status.created": "Created",
|
|
177
|
-
"enum.system_job_status.failed": "Failed",
|
|
178
|
-
"enum.system_job_status.retry": "Retry",
|
|
179
|
-
"component.sidebar.footer.sign_out": "Sign out",
|
|
180
|
-
"component.sidebar.footer.user_profile": "User profile",
|
|
181
|
-
"component.sidebar.footer.version": "Version",
|
|
182
|
-
"component.sidebar.open_sidebar": "Open sidebar",
|
|
183
|
-
"component.sidebar.settings": "Go to settings",
|
|
184
|
-
"component.table.clear_filter": "Clear filter|Clear filters",
|
|
185
|
-
"component.table.no_data.description": "There is currently no data available.",
|
|
186
|
-
"component.table.no_data.title": "No data available",
|
|
187
|
-
"component.table.no_results.description": "We couldn't find any results for your search. Please try again with different criteria.",
|
|
188
|
-
"component.table.no_results.title": "We couldn't find any results",
|
|
189
|
-
"component.table.results_may_be_hidden": "Some results may be hidden because of {count} active filter|Some results may be hidden because of {count} active filters",
|
|
190
|
-
"component.unsaved_changes_dialog.cancel": "Keep editing",
|
|
191
|
-
"component.unsaved_changes_dialog.confirm": "Yes, I'm sure",
|
|
192
|
-
"component.unsaved_changes_dialog.description": "All unsaved changes will be lost. Are you sure you want to continue?",
|
|
193
|
-
"component.unsaved_changes_dialog.title": "Unsaved changes",
|
|
194
|
-
"enum.role.admin": "Admin",
|
|
195
|
-
"enum.role.user": "User",
|
|
196
|
-
"enum.wise_crm.board.column.transition.trigger_type.manual": "Manual",
|
|
197
|
-
"enum.wise_crm.board.column.transition.trigger_type.email": "E-mail",
|
|
198
|
-
"enum.search_category_name.contact": "Contacts",
|
|
199
|
-
"enum.search_category_name.preferences": "Preferences",
|
|
200
|
-
"enum.search_category_name.navigation": "Navigation",
|
|
201
|
-
"enum.search_category_name.settings": "Settings",
|
|
202
|
-
"enum.search_category_name.user": "Users",
|
|
203
|
-
"error.bad_request.description": "Something went wrong. Please try again.",
|
|
204
|
-
"error.bad_request.title": "Bad request",
|
|
205
|
-
"error.default_error.description": "Please try again later.",
|
|
206
|
-
"error.default_error.title": "Something went wrong",
|
|
207
|
-
"error.forbidden.description": "You don't have permission to access this resource.",
|
|
208
|
-
"error.forbidden.title": "Forbidden",
|
|
209
|
-
"error.internal_server_error.description": "Please try again later.",
|
|
210
|
-
"error.internal_server_error.title": "Internal server error",
|
|
211
|
-
"error.invalid_form_input.description": "Please check the highlighted fields and try again.",
|
|
212
|
-
"error.invalid_form_input.title": "Invalid form",
|
|
213
|
-
"error.resource_not_found.description": "The requested resource could not be found.",
|
|
214
|
-
"error.resource_not_found.title": "Resource not found",
|
|
215
|
-
"error.unauthorized.description": "You are not authorized to access this resource.",
|
|
216
|
-
"error.unauthorized.title": "Unauthorized",
|
|
217
|
-
"error.validation_error.description": "Please check the form for errors.",
|
|
218
|
-
"error.validation_error.title": "Validation error",
|
|
219
|
-
"error.business_details.description": "An error occurred while loading the business details.",
|
|
220
|
-
"error.business_details.title": "Error",
|
|
221
|
-
"error.deal_details.description": "An error occurred while loading the deal details.",
|
|
222
|
-
"error.deal_details.title": "Error",
|
|
223
|
-
"form.fields.email": "Email",
|
|
224
|
-
"form.fields.password": "Password",
|
|
225
|
-
"form.save_changes": "Save changes",
|
|
226
|
-
"module.user.update.success_toast.message": "The user’s profile has been successfully updated.",
|
|
227
|
-
"module.settings.description": "Here you can manage your personal preferences and application settings.",
|
|
228
|
-
"module.auth.login.description": "Sign in to your account to continue",
|
|
229
|
-
"module.auth.login.error": "Something went wrong while logging in. Please try again.",
|
|
230
|
-
"module.auth.login.sign_in": "Sign in",
|
|
231
|
-
"module.auth.login.title": "Sign in",
|
|
232
|
-
"module.contact.address": "Address",
|
|
233
|
-
"module.contact.birth_date": "Birthdate",
|
|
234
|
-
"module.contact.contact_info": "Contact Information",
|
|
235
|
-
"module.contact.create.create_contact": "Create Contact",
|
|
236
|
-
"module.contact.create.success_toast.description": "Contact has been created successfully.",
|
|
237
|
-
"module.contact.create.title": "New contact",
|
|
238
|
-
"module.contact.create": "Create Contact",
|
|
239
|
-
"module.contact.delete.confirm.description": "Are you sure you want to delete \"{name}\"?",
|
|
240
|
-
"module.contact.delete.confirm.title": "Are you sure?",
|
|
241
|
-
"module.contact.detail.edit_contact": "Edit contact",
|
|
242
|
-
"module.contact.detail.title": "Edit contact",
|
|
243
|
-
"module.contact.email": "Email",
|
|
244
|
-
"module.contact.file": "File",
|
|
245
|
-
"module.contact.first_name": "First name",
|
|
246
|
-
"module.contact.form.section.contact.description": "Contact information.",
|
|
247
|
-
"module.contact.form.section.name.description": "First and last name of the contact.",
|
|
248
|
-
"module.contact.form.section.status.description": "Status of the contact.",
|
|
249
|
-
"module.contact.is_active": "Active",
|
|
250
|
-
"module.contact.label.contact_with_count": "No contacts | {count} contact | {count} contacts",
|
|
251
|
-
"module.contact.label.plural": "Contacts",
|
|
252
|
-
"module.contact.label.singular": "Contact",
|
|
253
|
-
"module.contact.last_name": "Last name",
|
|
254
|
-
"module.contact.name": "Name",
|
|
255
|
-
"module.contact.personal_info": "Personal Information",
|
|
256
|
-
"module.contact.phone": "Phone",
|
|
257
|
-
"module.contact.status.active": "Active",
|
|
258
|
-
"module.contact.status.inactive": "Inactive",
|
|
259
|
-
"module.contact.status": "Status",
|
|
260
|
-
"module.contact.title": "Contacts",
|
|
261
|
-
"module.contact.unknown": "Unknown Contact",
|
|
262
|
-
"module.contact.update.success_toast.message": "Contact has been updated successfully.",
|
|
263
|
-
"module.contact.update.title": "Edit contact",
|
|
264
|
-
"module.settings.appearance": "Appearance",
|
|
265
|
-
"module.settings.application.title": "Application",
|
|
266
|
-
"module.settings.back.label": "Back",
|
|
267
|
-
"module.settings.developer.message": "Message",
|
|
268
|
-
"module.settings.developer.one_signal_push_notification": "OneSignal Push Notification",
|
|
269
|
-
"module.settings.developer.send_notification": "Send notification",
|
|
270
|
-
"module.settings.developer.test_notification": "Test notification",
|
|
271
|
-
"module.settings.developer.title": "Developer",
|
|
272
|
-
"module.settings.disabled": "Disabled",
|
|
273
|
-
"module.settings.enabled": "Enabled",
|
|
274
|
-
"module.settings.event_logs.title": "Event logs",
|
|
275
|
-
"module.settings.font_size.default": "Default",
|
|
276
|
-
"module.settings.font_size.description": "Adjust your font size.",
|
|
277
|
-
"module.settings.font_size.large": "Large",
|
|
278
|
-
"module.settings.font_size.larger": "Larger",
|
|
279
|
-
"module.settings.font_size.small": "Small",
|
|
280
|
-
"module.settings.font_size.smaller": "Smaller",
|
|
281
|
-
"module.settings.font_size.title": "Font size",
|
|
282
|
-
"module.settings.forward.label": "Forward",
|
|
283
|
-
"module.settings.general_settings": "General",
|
|
284
|
-
"module.settings.high_contrast.description": "Enhance readability and visibility by increasing the contrast between UI elements.",
|
|
285
|
-
"module.settings.high_contrast.disabled.description": "High contrast mode is disabled.",
|
|
286
|
-
"module.settings.high_contrast.disabled.label": "Disabled",
|
|
287
|
-
"module.settings.high_contrast.enabled.description": "High contrast mode is enabled.",
|
|
288
|
-
"module.settings.high_contrast.enabled.label": "Enabled",
|
|
289
|
-
"module.settings.high_contrast.title": "High contrast mode",
|
|
290
|
-
"module.settings.interface_theme.dark": "Dark",
|
|
291
|
-
"module.settings.interface_theme.description": "Select or customize your UI theme.",
|
|
292
|
-
"module.settings.interface_theme.light": "Light",
|
|
293
|
-
"module.settings.interface_theme.system_preference": "System preference",
|
|
294
|
-
"module.settings.interface_theme.title": "Interface theme",
|
|
295
|
-
"module.settings.jobs.table.archived": "Archived",
|
|
296
|
-
"module.settings.jobs.table.completed_at": "Completed at",
|
|
297
|
-
"module.settings.jobs.table.created_at": "Created at",
|
|
298
|
-
"module.settings.jobs.table.job_id": "Job id",
|
|
299
|
-
"module.settings.jobs.table.job_name": "Job name",
|
|
300
|
-
"module.settings.jobs.table.queue_name": "Queu name",
|
|
301
|
-
"module.settings.jobs.table.status": "Status",
|
|
302
|
-
"module.settings.jobs.table.view": "View tabel",
|
|
303
|
-
"module.settings.jobs.title": "Jobs",
|
|
304
|
-
"module.settings.keyboard_shortcuts.description": "Keyboard shortcuts are always enabled, but you can choose whether to display a hint.",
|
|
305
|
-
"module.settings.keyboard_shortcuts.disabled.description": "Keyboard shortcut hints are hidden.",
|
|
306
|
-
"module.settings.keyboard_shortcuts.disabled.label": "Disabled",
|
|
307
|
-
"module.settings.keyboard_shortcuts.enabled.description": "Keyboard shortcut hints are visible.",
|
|
308
|
-
"module.settings.keyboard_shortcuts.enabled.label": "Enabled",
|
|
309
|
-
"module.settings.keyboard_shortcuts.example_button": "Example",
|
|
310
|
-
"module.settings.keyboard_shortcuts.title": "Keyboard shortcut hints",
|
|
311
|
-
"module.settings.language.description": "Change your language.",
|
|
312
|
-
"module.settings.language.locales.en_us": "English (United States)",
|
|
313
|
-
"module.settings.language.locales.nl_be": "Nederlands (België)",
|
|
314
|
-
"module.settings.language.title": "Language",
|
|
315
|
-
"module.settings.maximize.label": "Maximize settings view",
|
|
316
|
-
"module.settings.minimize.label": "Minimize settings view",
|
|
317
|
-
"module.settings.notifications.all.description": "You'll receive all notifications from the application.",
|
|
318
|
-
"module.settings.notifications.all.title": "All",
|
|
319
|
-
"module.settings.notifications.channel.app": "App",
|
|
320
|
-
"module.settings.notifications.channel.email": "E-mail",
|
|
321
|
-
"module.settings.notifications.channel.push": "Push",
|
|
322
|
-
"module.settings.notifications.channel.sms": "SMS",
|
|
323
|
-
"module.settings.notifications.custom.description": "Choose your own notifications that you want to receive",
|
|
324
|
-
"module.settings.notifications.custom.title": "Custom",
|
|
325
|
-
"module.settings.notifications.default.description": "The default notification settings will be applied.",
|
|
326
|
-
"module.settings.notifications.default.title": "Default",
|
|
327
|
-
"module.settings.notifications.none.description": "You won't receive any notifications from the application.",
|
|
328
|
-
"module.settings.notifications.none.title": "None",
|
|
329
|
-
"module.settings.notifications.title": "Notifications",
|
|
330
|
-
"module.settings.reduce_motion.description": "Reduce the amount and intensity of animations, hover effects and other moving effects across the application.",
|
|
331
|
-
"module.settings.reduce_motion.disabled.description": "All animations and hover effects are enabled for a full experience.",
|
|
332
|
-
"module.settings.reduce_motion.disabled.label": "Disabled",
|
|
333
|
-
"module.settings.reduce_motion.enabled.description": "You will see fewer animations and hover effects to reduce motion.",
|
|
334
|
-
"module.settings.reduce_motion.enabled.label": "Enabled",
|
|
335
|
-
"module.settings.reduce_motion.title": "Reduce motion",
|
|
336
|
-
"module.settings.roles_and_permissions": "Roles and permissions",
|
|
337
|
-
"module.settings.roles_and_permissions.add_new_role": "Add Role",
|
|
338
|
-
"module.settings.roles_and_permissions.create_role_dialog.description": "Create a new role to manage permissions and access within the application.",
|
|
339
|
-
"module.settings.roles_and_permissions.create_role_dialog.title": "Create role",
|
|
340
|
-
"module.settings.users.update_user_dialog.description": "Manage the roles and permissions for {userName}.",
|
|
341
|
-
"module.settings.users.update_user_dialog.this_user": "this user",
|
|
342
|
-
"module.settings.roles_and_permissions.save_changes_success": "Changes saved successfully",
|
|
343
|
-
"module.settings.roles_and_permissions.save_changes": "Save changes",
|
|
344
|
-
"module.settings.roles_and_permissions.table.delete_role": "Delete role",
|
|
345
|
-
"module.settings.roles_and_permissions.table.permissions": "Permissions",
|
|
346
|
-
"module.settings.roles_and_permissions.title": "Roles and Permissions",
|
|
347
|
-
"module.settings.search.clear.label": "Clear search term",
|
|
348
|
-
"module.settings.search.placeholder": "Quick search",
|
|
349
|
-
"module.settings.section.appearance.description": "Customize the overall look and feel of the app.",
|
|
350
|
-
"module.settings.section.appearance.option.dark_mode": "Dark mode",
|
|
351
|
-
"module.settings.section.appearance.option.light_mode": "Light mode",
|
|
352
|
-
"module.settings.section.appearance.option.system_preference": "System preference",
|
|
353
|
-
"module.settings.section.appearance.title": "Appearance",
|
|
354
|
-
"module.settings.section.font_size.description": "Adjust the text size for better readability or to fit more content on your screen.",
|
|
355
|
-
"module.settings.section.font_size.option.default": "Default",
|
|
356
|
-
"module.settings.section.font_size.option.large": "Large",
|
|
357
|
-
"module.settings.section.font_size.option.larger": "Larger",
|
|
358
|
-
"module.settings.section.font_size.option.small": "Small",
|
|
359
|
-
"module.settings.section.font_size.option.smaller": "Smaller",
|
|
360
|
-
"module.settings.section.font_size.title": "Font size",
|
|
361
|
-
"module.settings.section.high_contrast.description": "Enhance visibility and reduce eye strain with high contrast mode.",
|
|
362
|
-
"module.settings.section.high_contrast.disabled.label": "High contrast mode is disabled",
|
|
363
|
-
"module.settings.section.high_contrast.enabled.label": "High contrast mode is enabled",
|
|
364
|
-
"module.settings.section.high_contrast.title": "High contrast",
|
|
365
|
-
"module.settings.section.keyboard_shortcut_hints.description": "Toggle hints for keyboard shortcuts to help you navigate the app more efficiently.",
|
|
366
|
-
"module.settings.section.keyboard_shortcut_hints.disabled.label": "Keyboard shortcut hints are hidden",
|
|
367
|
-
"module.settings.section.keyboard_shortcut_hints.enabled.label": "Keyboard shortcut hints are visible",
|
|
368
|
-
"module.settings.section.keyboard_shortcut_hints.example": "Example",
|
|
369
|
-
"module.settings.section.keyboard_shortcut_hints.not_available_on_mobile": "Keyboard shortcuts aren't available on mobile or tablet devices. To change this setting, open the app on a desktop.",
|
|
370
|
-
"module.settings.section.keyboard_shortcut_hints.title": "Keyboard shortcut hints",
|
|
371
|
-
"module.settings.subtitle": "Manage your app settings",
|
|
372
|
-
"module.settings.system.title": "System",
|
|
373
|
-
"module.settings.title": "Settings",
|
|
374
|
-
"module.settings.users": "Users",
|
|
375
|
-
"module.settings.section.language.description": "Select your preferred language for the app.",
|
|
376
|
-
"module.settings.section.language.title": "Language",
|
|
377
|
-
"module.settings.users_and_permissions": "Users and permissions",
|
|
378
|
-
"module.user.create.create_user": "Create User",
|
|
379
|
-
"module.user.create.success_toast.message": "User has been created successfully.",
|
|
380
|
-
"module.user.create.title": "New user",
|
|
381
|
-
"module.user.detail.edit_user": "Edit user",
|
|
382
|
-
"module.user.detail.title": "Edit user",
|
|
383
|
-
"module.user.form.section.name.description": "First and last name of the user.",
|
|
384
|
-
"module.user.role": "Role",
|
|
385
|
-
"module.user.title": "Users",
|
|
386
|
-
"module.user.update.success_toast.description": "{user} has been updated successfully.",
|
|
387
|
-
"module.user.update.success_toast.title": "User updated",
|
|
388
|
-
"shared.cancel": "Cancel",
|
|
389
|
-
"shared.previous": "Previous",
|
|
390
|
-
"shared.confirm": "Confirm",
|
|
391
|
-
"shared.next": "Next",
|
|
392
|
-
"shared.add": "Add",
|
|
393
|
-
"shared.close": "Close",
|
|
394
|
-
"shared.copy_to_clipboard": "Copy to clipboard",
|
|
395
|
-
"shared.created_at": "Created at",
|
|
396
|
-
"shared.delete": "Delete",
|
|
397
|
-
"shared.description": "Description",
|
|
398
|
-
"shared.edit": "Edit",
|
|
399
|
-
"shared.empty_dash": "-",
|
|
400
|
-
"shared.global": "Global",
|
|
401
|
-
"shared.id": "Id",
|
|
402
|
-
"shared.info": "Info",
|
|
403
|
-
"shared.loading": "Loading",
|
|
404
|
-
"shared.manage_users": "Manage users",
|
|
405
|
-
"shared.message": "Message",
|
|
406
|
-
"shared.name": "Name",
|
|
407
|
-
"shared.navigate_back": "Navigate back",
|
|
408
|
-
"shared.navigate_forward": "Navigate forward",
|
|
409
|
-
"shared.navigate": "Navigate",
|
|
410
|
-
"shared.results": "No results | {count} result | {count} results",
|
|
411
|
-
"shared.roles": "Roles",
|
|
412
|
-
"shared.save_changes": "Save",
|
|
413
|
-
"shared.save": "Save",
|
|
414
|
-
"shared.select": "Select",
|
|
415
|
-
"shared.time_format.now": "Now",
|
|
416
|
-
"shared.title": "Title",
|
|
417
|
-
"shared.topic": "Topic",
|
|
418
|
-
"shared.type": "Type",
|
|
419
|
-
"shared.user": "User",
|
|
420
|
-
"shared.users": "Users",
|
|
421
|
-
"toast.error.general_title": "Something went wrong",
|
|
422
|
-
"toast.success.general_title": "Success",
|
|
423
|
-
"user.birth_date": "Birthdate",
|
|
424
|
-
"user.email": "Email",
|
|
425
|
-
"user.first_name": "First name",
|
|
426
|
-
"user.label.plural": "Users",
|
|
427
|
-
"user.label.singular": "User",
|
|
428
|
-
"user.label.user_with_count": "No users | {count} user | {count} users",
|
|
429
|
-
"user.last_name": "Last name",
|
|
430
|
-
"user.name": "Name",
|
|
431
|
-
"users.overview.extra_roles_tooltip": "Extra roles",
|
|
432
|
-
"validation.duplicate": "Duplicate value",
|
|
433
|
-
"validation.invalid_date": "Invalid date",
|
|
434
|
-
"validation.invalid_time": "Invalid time",
|
|
435
|
-
"validation.invalid_datetime": "Invalid date and time",
|
|
436
|
-
"validation.invalid_email": "Invalid email address",
|
|
437
|
-
"validation.invalid_regex": "Invalid format",
|
|
438
|
-
"validation.invalid_string": "Invalid input",
|
|
439
|
-
"validation.invalid_union": "Invalid input",
|
|
440
|
-
"validation.invalid_url": "Invalid URL",
|
|
441
|
-
"validation.invalid_uuid": "Invalid UUID",
|
|
442
|
-
"validation.required": "This field is required",
|
|
443
|
-
"validation.too_big_array": "Must contain a most {count} item | Must contain a most {count} items",
|
|
444
|
-
"validation.too_big_date": "Must be before {count}",
|
|
445
|
-
"validation.too_big_number": "Must be less than or equal to {count}",
|
|
446
|
-
"validation.too_big_string": "Must be at most {count} character | Must be at most {count} characters",
|
|
447
|
-
"validation.too_big": "Must be less than or equal to {count}",
|
|
448
|
-
"validation.too_small_array": "Must contain at least {count} item | Must contain at least {count} items",
|
|
449
|
-
"validation.too_small_date": "Must be after {count}",
|
|
450
|
-
"validation.too_small_number": "Must be greater than or equal to {count}",
|
|
451
|
-
"validation.too_small_string": "Must be at least {count} character | Must be at least {count} characters",
|
|
452
|
-
"validation.too_small": "Must be greater than or equal to {count}",
|
|
453
|
-
"validation.unauthorized": "Unauthorized",
|
|
454
|
-
"wise_crm.activity.no_entries_found": "No entries found",
|
|
455
|
-
"wise_crm.widgets.individuals.since_last_month": "{count}% since last month",
|
|
456
|
-
"wise_crm.widgets.individuals.title": "Individuals",
|
|
457
|
-
"wise_crm.widgets.individuals.value_since_last_month": "{count} in the last month",
|
|
458
|
-
"wise_crm.business.form.address": "Address",
|
|
459
|
-
"wise_crm.business.form.business_number": "Business number",
|
|
460
|
-
"wise_crm.business.form.general_information": "General information",
|
|
461
|
-
"wise_crm.contact.create_dialog.description": "Select a contact type",
|
|
462
|
-
"wise_crm.contact.create_dialog.form.back": "Back",
|
|
463
|
-
"wise_crm.contact.create_dialog.form.company_number": "Company number",
|
|
464
|
-
"wise_crm.contact.create_dialog.form.contact_information": "Contact information",
|
|
465
|
-
"wise_crm.contact.create_dialog.form.contact_person": "Contact person",
|
|
466
|
-
"wise_crm.contact.create_dialog.form.description": "Provide the general information",
|
|
467
|
-
"wise_crm.contact.create_dialog.form.contact_person_description": "Select an existing contact person to link to this business",
|
|
468
|
-
"wise_crm.contact.create_dialog.form.errors.at_least_one_contact_info": "Please fill in any of the above contact information",
|
|
469
|
-
"wise_crm.contact.create_dialog.form.fields.address": "Address",
|
|
470
|
-
"wise_crm.contact.create_dialog.form.fields.language": "Language",
|
|
471
|
-
"wise_crm.contact.create_dialog.form.fields.birthdate": "Birth date",
|
|
472
|
-
"wise_crm.contact.create_dialog.form.fields.cbe_search": "Search a company (CBE)",
|
|
473
|
-
"wise_crm.contact.create_dialog.form.fields.contact_person": "Add an existing contact person",
|
|
474
|
-
"wise_crm.contact.create_dialog.form.fields.contact_type": "Contact type",
|
|
475
|
-
"wise_crm.contact.create_dialog.form.fields.create_new_label": "Don't find what you're looking for?",
|
|
476
|
-
"wise_crm.contact.create_dialog.form.create_new_contact_person": "Create a new contact person",
|
|
477
|
-
"wise_crm.contact.create_dialog.form.fields.email": "Email address",
|
|
478
|
-
"wise_crm.contact.create_dialog.form.fields.first_name": "First name",
|
|
479
|
-
"wise_crm.contact.create_dialog.form.fields.last_name": "Last name",
|
|
480
|
-
"wise_crm.contact.create_dialog.form.fields.mobile_phone": "Mobile phonenumber",
|
|
481
|
-
"wise_crm.contact.create_dialog.form.fields.phone": "Phone number",
|
|
482
|
-
"wise_crm.contact.create_dialog.form.fields.position": "Position",
|
|
483
|
-
"wise_crm.contact.create_dialog.form.fields.search": "Search...",
|
|
484
|
-
"wise_crm.contact.create_dialog.form.name": "Name",
|
|
485
|
-
"wise_crm.contact.create_dialog.form.seperator_label": "and/or",
|
|
486
|
-
"wise_crm.contact.create_dialog.form.title": "Create {value}",
|
|
487
|
-
"wise_crm.contact.create_dialog.form.contact_person_title": "Add a contact person",
|
|
488
|
-
"wise_crm.contact.create_dialog.form.vat_number": "VAT-number",
|
|
489
|
-
"wise_crm.contact.create_dialog.title": "Create new contact",
|
|
490
|
-
"wise_crm.form.errors.at_least_one": "At least one contact info must be provided",
|
|
491
|
-
"wise_crm.info_dialog.activity.empty_state.description": "No changes have been registered yet",
|
|
492
|
-
"wise_crm.info_dialog.activity.empty_state.title": "No activity found",
|
|
493
|
-
"wise_crm.info_dialog.add_business_child_dialog.create_a_existing_one": "Create an existing one",
|
|
494
|
-
"wise_crm.info_dialog.add_business_child_dialog.create_a_new_one": "Create a new one",
|
|
495
|
-
"wise_crm.info_dialog.add_business_child_dialog.title": "Add a child business",
|
|
496
|
-
"wise_crm.info_dialog.add_business_child_dialog.description": "Choose to create a new business or link an existing one as a child business.",
|
|
497
|
-
"wise_crm.info_dialog.business.information.billing_information.billing_address": "Invoice address",
|
|
498
|
-
"wise_crm.info_dialog.business.information.billing_information.email": "E-mail",
|
|
499
|
-
"wise_crm.info_dialog.business.information.billing_information.invoice_cc_emails": "Invoice cc-emails",
|
|
500
|
-
"wise_crm.info_dialog.business.information.billing_information.invoice_email": "Digital invoice",
|
|
501
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_note_cc_emails": "Purchase note cc-emails",
|
|
502
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_note_email": "Purchase notes",
|
|
503
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_cc_emails": "Reminder cc-emails",
|
|
504
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_email": "Reminders",
|
|
505
|
-
"wise_crm.info_dialog.business_info_update_dialog.description": "Update business information",
|
|
506
|
-
"wise_crm.info_dialog.business_info_update_dialog.tabs.info": "Information",
|
|
507
|
-
"wise_crm.info_dialog.business_info_update_dialog.title": "Update business info",
|
|
508
|
-
"wise_crm.info_dialog.contact_person_create.description": "Adding a new contact person",
|
|
509
|
-
"wise_crm.info_dialog.contact_person_create.title": "Create a contactperson",
|
|
510
|
-
"wise_crm.info_dialog.contact_person_update.title": "Update contactperson",
|
|
511
|
-
"wise_crm.info_dialog.contact_tooltip": "Contact tooltip",
|
|
512
|
-
"wise_crm.info_dialog.copy_to_clipboard": "Copy to clipboard",
|
|
513
|
-
"wise_crm.info_dialog.customer_info_update_dialog.description": "Update customer info form",
|
|
514
|
-
"wise_crm.info_dialog.customer_info_update_dialog.form.name_label": "Name",
|
|
515
|
-
"wise_crm.info_dialog.customer_info_update_dialog.form.ssn_label": "Social security number (SSN)",
|
|
516
|
-
"wise_crm.info_dialog.customer_info_update_dialog.title": "Update customer info",
|
|
517
|
-
"wise_crm.info_dialog.info.billing_information.card.title": "Billing information",
|
|
518
|
-
"wise_crm.info_dialog.info_business_info.card.title": "Company info",
|
|
519
|
-
"wise_crm.info_dialog.info_individual_info.card.title": "Personal information",
|
|
520
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_address": "Billing address",
|
|
521
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_address_same_as": "Billing address is the same as {item} address",
|
|
522
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_information": "Billing information",
|
|
523
|
-
"wise_crm.info_dialog.invoice_dialog.form.contact_person": "Contact person",
|
|
524
|
-
"wise_crm.info_dialog.invoice_dialog.form.contact_person_placeholder": "Search a contactperson",
|
|
525
|
-
"wise_crm.info_dialog.invoice_dialog.form.invoice_digitally": "Get invoice digitally",
|
|
526
|
-
"wise_crm.info_dialog.invoice_dialog.form.language": "Language",
|
|
527
|
-
"wise_crm.info_dialog.invoice_dialog.form.language_placeholder": "Select a language",
|
|
528
|
-
"wise_crm.info_dialog.invoice_dialog.title": "Add invoice information",
|
|
529
|
-
"wise_crm.info_dialog.invoice_dialog_update.title": "Update invoice information",
|
|
530
|
-
"wise_crm.info_dialog.notes.action_button_label": "Notes action menu button",
|
|
531
|
-
"wise_crm.info_dialog.notes.empty_state.description": "Start typing in the textarea.",
|
|
532
|
-
"wise_crm.info_dialog.notes.empty_state.title": "No notes found",
|
|
533
|
-
"wise_crm.info_dialog.notes.submit_note_label": "Submit note",
|
|
534
|
-
"wise_crm.info_dialog.notes.update_note": "Update note",
|
|
535
|
-
"wise_crm.info_dialog.search_an_existing_one": "Use an existing one",
|
|
536
|
-
"wise_crm.info_dialog.sidebar.business.add_icon": "Add a business",
|
|
537
|
-
"wise_crm.info_dialog.sidebar.overview.birthday_label": "Born on {value}",
|
|
538
|
-
"wise_crm.info_dialog.sidebar.overview.business_info": "Business information",
|
|
539
|
-
"wise_crm.info_dialog.sidebar.overview.contact_person_primary": "Primary contactperson",
|
|
540
|
-
"wise_crm.info_dialog.sidebar.overview.contact_persons_label": "Contact persons",
|
|
541
|
-
"wise_crm.info_dialog.sidebar.overview.created_at_label": "Created at {value}",
|
|
542
|
-
"wise_crm.info_dialog.sidebar.overview.customer_info_label": "Customer info",
|
|
543
|
-
"wise_crm.info_dialog.sidebar.overview.invoice_label": "Invoice info",
|
|
544
|
-
"wise_crm.info_dialog.sidebar.overview.linked_business_label": "Linked {label}",
|
|
545
|
-
"wise_crm.info_dialog.sidebar.overview.ssn_label": "SSN - {value}",
|
|
546
|
-
"wise_crm.info_dialog.sidebar.overview.update_contact_person": "Edit contact person",
|
|
547
|
-
"wise_crm.language.de": "German",
|
|
548
|
-
"wise_crm.language.en": "English",
|
|
549
|
-
"wise_crm.language.fr": "French",
|
|
550
|
-
"wise_crm.language.nl": "Dutch",
|
|
551
|
-
"wise_crm.note.create_placeholder": "Make a note",
|
|
552
|
-
"wise_crm.note.hours_ago": "{count} hours ago",
|
|
553
|
-
"wise_crm.note.just_now": "Just now",
|
|
554
|
-
"wise_crm.note.minutes_ago": "{count} minutes ago",
|
|
555
|
-
"wise_crm.note.update_dialog.title": "Update note",
|
|
556
|
-
"wise_crm.shared.activity": "Activity",
|
|
557
|
-
"wise_crm.shared.add": "Add",
|
|
558
|
-
"wise_crm.shared.back": "Back",
|
|
559
|
-
"wise_crm.shared.skip": "Overslaan",
|
|
560
|
-
"wise_crm.shared.contact_info": "Contact info",
|
|
561
|
-
"wise_crm.shared.create": "Create",
|
|
562
|
-
"wise_crm.shared.delete": "Delete",
|
|
563
|
-
"wise_crm.shared.departments_amount": "{value} departments | {value} department | {value} departments",
|
|
564
|
-
"wise_crm.shared.home_address": "Home Address",
|
|
565
|
-
"wise_crm.shared.loading": "Loading...",
|
|
566
|
-
"wise_crm.shared.next": "Next",
|
|
567
|
-
"wise_crm.shared.notes": "Notes",
|
|
568
|
-
"wise_crm.shared.or": "or",
|
|
569
|
-
"wise_crm.shared.overview": "Overview",
|
|
570
|
-
"wise_crm.shared.save_changes": "Save changes",
|
|
571
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_different_switch": "Reminders on a different email",
|
|
572
|
-
"component.zod_error.copy_details": "Copy details",
|
|
573
|
-
"component.zod_error.copied": "Copied",
|
|
574
|
-
"component.zod_error.title": "Data mismatch",
|
|
575
|
-
"component.zod_error.message": "The data received from the API does not match the expected format.",
|
|
576
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_notes_different_switch": "Purchase notes on a different email",
|
|
577
|
-
"module.crm.info_dialog.individual.tabs.info.label": "Information",
|
|
578
|
-
"wise_crm.deal.form.fields.name": "Name",
|
|
579
|
-
"wise_crm.deal.form.fields.quote": "Quote",
|
|
580
|
-
"wise_crm.deal.overview_title": "Deals",
|
|
581
|
-
"wise_crm.deal.overview.column.card.empty_deal_owner": "No deal owner",
|
|
582
|
-
"wise_crm.deal.overview.create": "Create deal",
|
|
583
|
-
"wise_crm.deal.form.fields.name_placeholder": "Name",
|
|
584
|
-
"wise_crm.deal.form.fields.search_vat_number": "Search a business (VAT number)",
|
|
585
|
-
"wise_crm.deal.form.fields.language": "Language",
|
|
586
|
-
"wise_crm.deal.form.fields.language_placeholder": "Choose a language",
|
|
587
|
-
"wise_crm.deal.form.fields.source": "Source channel",
|
|
588
|
-
"wise_crm.deal.form.fields.source_placeholder": "Choose a source channel",
|
|
589
|
-
"wise_crm.deal.detail.sidebar.accordion.general_info": "General info",
|
|
590
|
-
"wise_crm.enum.language.en": "English",
|
|
591
|
-
"wise_crm.enum.language.fr": "French",
|
|
592
|
-
"wise_crm.enum.language.nl": "Dutch",
|
|
593
|
-
"wise_crm.enum.source.mail": "E-mail",
|
|
594
|
-
"wise_crm.enum.source.website": "Website",
|
|
595
|
-
"wise_crm.enum.source.phone": "Phone",
|
|
596
|
-
"wise_crm.enum.source.tender": "Tender",
|
|
597
|
-
"wise_crm.deal.create.steps.select_business": "Select business",
|
|
598
|
-
"wise_crm.deal.create.steps.extra_info": "Extra information",
|
|
599
|
-
"wise_crm.deal.create.title": "Create deal",
|
|
600
|
-
"wise_crm.deal.create.steps.create_lead": "Create a new lead",
|
|
601
|
-
"wise_crm.deal.create.select_business": "Search by company number",
|
|
602
|
-
"wise_crm.deal.sidebar.created_at": "Deal created on {date}",
|
|
603
|
-
"wise_crm.deal.transition.label": "Transition Deal",
|
|
604
|
-
"wise_crm.deal.transition.placeholder": "Select a column",
|
|
605
|
-
"wise_crm.deal.detail.sidebar.name_field.label": "Deal Name",
|
|
606
|
-
"wise_crm.deal.detail.sidebar.name_field.edit_label": "Edit deal name",
|
|
607
|
-
"wise_crm.deal.settings.mail_template.locale_field.subject_label": "Subject",
|
|
608
|
-
"wise_crm.deal.settings.mail_template.locale_field.subject_placeholder": "Subject",
|
|
609
|
-
"wise_crm.deal.settings.mail_template.locale_field.message_label": "Message",
|
|
610
|
-
"wise_crm.deal.settings.mail_template.locale_field.default_attachments_label": "Default attachments",
|
|
611
|
-
"wise_crm.deal.send_mail.attachment_field.add_attachment": "Add attachment",
|
|
612
|
-
"wise_crm.deal.send_mail.attachment_field.mail_attachments_label": "Mail attachments",
|
|
613
|
-
"rich_text.toolbar.bold": "Bold",
|
|
614
|
-
"rich_text.toolbar.italic": "Italic",
|
|
615
|
-
"rich_text.toolbar.underline": "Underline",
|
|
616
|
-
"rich_text.toolbar.text_color": "Text color",
|
|
617
|
-
"rich_text.toolbar.default_color": "Default",
|
|
618
|
-
"rich_text.toolbar.bullet_list": "Bullet list",
|
|
619
|
-
"rich_text.link_dialog.title": "Add link",
|
|
620
|
-
"rich_text.link_dialog.url": "URL",
|
|
621
|
-
"component.file_upload.empty_state.choose_file": "Choose a file to upload or drag and drop it here.",
|
|
622
|
-
"component.file_upload.empty_state.file_formats": "PNG, JPG, and JPEG formats. Up to 10MB.",
|
|
623
|
-
"component.file_upload.empty_state.upload_button": "Upload File",
|
|
624
|
-
"component.file_upload.dropzone.drop_files": "Drop files to upload",
|
|
625
|
-
"component.file_upload.button.upload_file": "Upload file",
|
|
626
|
-
"component.file_upload.error.single_file_rejected": "The file could not be uploaded",
|
|
627
|
-
"component.file_upload.error.multiple_files_rejected": "One or more files could not be uploaded",
|
|
628
|
-
"wise_crm.deal.communication.mail_list.title": "Communication overview",
|
|
629
|
-
"wise_crm.deal.communication.mail_list.no_communication_sent": "No communication sent yet",
|
|
630
|
-
"wise_crm.deal.communication.mail_list.create_quote_instruction": "Create a quote to be able to send it.",
|
|
631
|
-
"wise_crm.deal.send_mail_form.subject_placeholder": "Enter title",
|
|
632
|
-
"wise_crm.deal.send_mail_form.to_label": "To",
|
|
633
|
-
"wise_crm.deal.send_mail_form.email_placeholder": "Email",
|
|
634
|
-
"wise_crm.deal.send_mail_form.message_label": "Message",
|
|
635
|
-
"wise_crm.search.empty_state.title": "No contacts found",
|
|
636
|
-
"wise_crm.search.empty_state.description": "We couldn't find any contacts matching \"{searchTerm}\".",
|
|
637
|
-
"wise_crm.search.empty_state.create_contact": "Create new contact",
|
|
638
|
-
"wise_crm.search.empty_state.clear_search": "Clear search",
|
|
639
|
-
"wise_crm.search.placeholder": "Search...",
|
|
640
|
-
"wise_crm.search.individual_label": "Individual",
|
|
641
|
-
"wise_crm.search.business_label": "Business",
|
|
642
|
-
"wise_crm.search.searching": "Searching...",
|
|
643
|
-
"wise_crm.deal.send_mail.pdf_generating": "Generating PDF",
|
|
644
|
-
"wise_crm.widgets.recently_created.title": "Recently created",
|
|
645
|
-
"wise_crm.widgets.recently_created.empty_state": "No recently created entities yet.",
|
|
646
|
-
"component.contact_tooltip.aria_label.email": "Send email to {value}",
|
|
647
|
-
"component.contact_tooltip.aria_label.phone": "Call {value}",
|
|
648
|
-
"component.contact_tooltip.aria_label.address": "Open {value} in Google Maps"
|
|
649
|
-
}, nl_BE_default = {
|
|
650
|
-
"enum.api_error_code.absence_overlaps_with_absence": "Afwezigheid overlapt met een andere afwezigheid",
|
|
651
|
-
"enum.api_error_code.absence_overlaps_with_full_day_absence": "Afwezigheid overlapt met volledige dag afwezigheid",
|
|
652
|
-
"enum.api_error_code.accepted_transport_order_not_found": "Geaccepteerd transportorder niet gevonden",
|
|
653
|
-
"enum.api_error_code.billing_information_not_found": "Facturatiegegevens niet gevonden",
|
|
654
|
-
"enum.api_error_code.board_columns_already_exist": "Bordkolommen bestaan al",
|
|
655
|
-
"enum.api_error_code.business_circular_reference": "Circulaire verwijzing van bedrijf",
|
|
656
|
-
"enum.api_error_code.business_contact_person_not_found": "Bedrijfscontactpersoon niet gevonden",
|
|
657
|
-
"enum.api_error_code.business_not_found": "Bedrijf niet gevonden",
|
|
658
|
-
"enum.api_error_code.care_user_contact_person_not_found": "Zorggebruiker niet gevonden",
|
|
659
|
-
"enum.api_error_code.care_user_has_no_invoice_detail": "Zorggebruiker heeft geen facturatiegegevens",
|
|
660
|
-
"enum.api_error_code.care_user_not_found": "Zorggebruiker niet gevonden",
|
|
661
|
-
"enum.api_error_code.client_not_found": "Klant niet gevonden",
|
|
662
|
-
"enum.api_error_code.contact_person_not_found": "Contactpersoon niet gevonden",
|
|
663
|
-
"enum.api_error_code.contract_type_not_found": "Contracttype niet gevonden",
|
|
664
|
-
"enum.api_error_code.customer_zone_email_verification_organization_mismatch": "E-mailadres komt niet overeen met de geselecteerde organisatie",
|
|
665
|
-
"enum.api_error_code.deal_column_transition_not_allowed": "Deal column transition not allowed",
|
|
666
|
-
"enum.api_error_code.customer_zone_email_verification_user_not_found": "Gebruiker voor e-mailverificatie niet gevonden",
|
|
667
|
-
"enum.api_error_code.customer_zone_individual_already_linked": "Klantzone individu al gekoppeld",
|
|
668
|
-
"enum.api_error_code.customer_zone_individual_user_grant_not_found": "Toegangsrechten voor klantzone-individu niet gevonden",
|
|
669
|
-
"enum.api_error_code.customer_zone_invalid_email_verification_code": "Ongeldige code voor e-mailverificatie",
|
|
670
|
-
"enum.api_error_code.customer_zone_tenant_domain_not_found": "Tenantdomein niet gevonden",
|
|
671
|
-
"enum.api_error_code.coordinates_not_provided": "Coördinaten niet opgegeven",
|
|
672
|
-
"component.filters_dropdown_menu.clear_all_filters": "Alle filters verwijderen",
|
|
673
|
-
"wise_crm.deal.form.fields.quote": "Offerte",
|
|
674
|
-
"wise_crm.deal.filters.owner.label": "Deal owner",
|
|
675
|
-
"component.filters_dropdown_menu.filter": "Filter",
|
|
676
|
-
"component.filters_active.no_active_filters": "Geen filters",
|
|
677
|
-
"component.api_error.default_title": "Er ging iets mis",
|
|
678
|
-
"component.api_error.default_message": "Probeer het later opnieuw.",
|
|
679
|
-
"component.error.message_prefix": "Foutmelding:",
|
|
680
|
-
"enum.api_error_code.board_column_not_found": "Bordkolom niet gevonden",
|
|
681
|
-
"enum.api_error_code.deal_creation_not_allowed": "Deal aanmaken niet toegestaan",
|
|
682
|
-
"enum.api_error_code.deal_contact_person_not_found": "Deal contactpersoon niet gevonden",
|
|
683
|
-
"wise_crm.form.cancel": "Annuleren",
|
|
684
|
-
"component.search_dialog.title": "Globale zoekopdracht",
|
|
685
|
-
"component.search_dialog.description": "Zoek naar contacten, deals en meer binnen de applicatie.",
|
|
686
|
-
"wise_crm.form.save": "Opslaan",
|
|
687
|
-
"enum.wise_crm.board.column.transition.trigger_type.manual": "Handmatig",
|
|
688
|
-
"enum.wise_crm.board.column.transition.trigger_type.email": "E-mail",
|
|
689
|
-
"wise_crm.form.send": "Verzenden",
|
|
690
|
-
"enum.api_error_code.mail_template_key_not_found": "Mail template key niet gevonden",
|
|
691
|
-
"enum.api_error_code.deal_not_found": "Deal niet gevonden",
|
|
692
|
-
"enum.api_error_code.mail_template_key_already_in_use": "Mail template key is al in gebruik",
|
|
693
|
-
"enum.api_error_code.mail_template_locale_language_already_provided": "Mail template taal is al voorzien",
|
|
694
|
-
"enum.api_error_code.mail_template_not_found": "Mail template niet gevonden",
|
|
695
|
-
"enum.api_error_code.department_contact_person_not_found": "Afdelingscontactpersoon niet gevonden",
|
|
696
|
-
"enum.api_error_code.customer_zone_individual_grant_not_found": "Klantzone individu toegangsrechten niet gevonden",
|
|
697
|
-
"wise_crm.info_dialog.sidebar.overview.delete_contact_person_title": "Contactpersoon verwijderen",
|
|
698
|
-
"enum.api_error_code.department_not_found": "Afdeling niet gevonden",
|
|
699
|
-
"enum.api_error_code.driver_availability_not_found": "Chauffeur beschikbaarheid niet gevonden",
|
|
700
|
-
"enum.api_error_code.driver_invalid_availability_period": "Ongeldige periode voor de beschikbaarheid",
|
|
701
|
-
"enum.api_error_code.driver_not_deactivated": "Chauffeur is niet gedeactiveerd",
|
|
702
|
-
"wise_crm.info_dialog.sidebar.overview.delete_contact_person_description": "Weet je zeker dat je deze contactpersoon wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
|
|
703
|
-
"enum.api_error_code.driver_not_found": "Chauffeur niet gevonden",
|
|
704
|
-
"enum.api_error_code.driver_overlapping_availability": "Overlappende beschikbaarheden zijn niet toegestaan.",
|
|
705
|
-
"enum.api_error_code.driver_past_deactivated_at": "Deactivatie datum mag niet in het verleden zijn",
|
|
706
|
-
"enum.api_error_code.driver_unavailability_not_found": "Chauffeur beschikbaarheid niet gevonden",
|
|
707
|
-
"enum.api_error_code.driver_vehicle_already_assigned": "Chauffeur voertuig al toegewezen aan een andere chauffeur",
|
|
708
|
-
"enum.api_error_code.file_not_found": "Bestand niet gevonden",
|
|
709
|
-
"enum.api_error_code.full_day_absence_not_found": "Volledige dag afwezigheid niet gevonden",
|
|
710
|
-
"enum.api_error_code.holiday_not_found": "Feestdagen niet gevonden",
|
|
711
|
-
"enum.api_error_code.holiday_not_in_future": "Startdatum van feestdag moet in de toekomst zijn",
|
|
712
|
-
"enum.api_error_code.individual_contact_person_not_found": "Individuele contactpersoon niet gevonden",
|
|
713
|
-
"enum.api_error_code.individual_not_found": "Individu niet gevonden",
|
|
714
|
-
"enum.api_error_code.internal_server_error": "Interne serverfout",
|
|
715
|
-
"enum.api_error_code.invalid_holiday_end_date": "Ongeldige feestdag eind datum",
|
|
716
|
-
"enum.api_error_code.business_vat_number_already_exists": "Het btw-nummer van het bedrijf bestaat al",
|
|
717
|
-
"enum.api_error_code.invalid_holiday_start_date": "Ongeldige feestdag startdag",
|
|
718
|
-
"enum.api_error_code.job_not_found": "Job niet gevonden",
|
|
719
|
-
"enum.api_error_code.location_not_found": "Locatie niet gevonden",
|
|
720
|
-
"enum.api_error_code.max_time_in_vehicle_formula_not_found": "Maximale tijd in voertuig formule niet gevonden",
|
|
721
|
-
"enum.api_error_code.migration_already_performed": "Migratie al uitgevoerd",
|
|
722
|
-
"enum.api_error_code.must_have_individual_or_business": "Moet een individu of bedrijf hebben",
|
|
723
|
-
"enum.api_error_code.no_board_columns": "Geen bordkolommen",
|
|
724
|
-
"enum.api_error_code.no_left_adjacent_pricing_parameters_found": "Geen aangrenzende prijsparameters gevonden",
|
|
725
|
-
"enum.api_error_code.no_orders_to_simulate": "Geen orders om te simuleren",
|
|
726
|
-
"enum.api_error_code.no_shifts_to_simulate": "Geen shiften om te simuleren",
|
|
727
|
-
"enum.api_error_code.note_must_have_entity": "Notitie moet een entiteit hebben",
|
|
728
|
-
"enum.api_error_code.order_request_invalid_status": "De order intake bevindt zich niet in een geldige status om deze actie uit te voeren.",
|
|
729
|
-
"enum.api_error_code.order_request_no_transport_orders": "Deze order intake bevat geen transportorders. Voeg transportorders toe om verder te gaan.",
|
|
730
|
-
"enum.api_error_code.order_request_not_found": "Orderaanvraag niet gevonden",
|
|
731
|
-
"enum.api_error_code.order_request_validation_failed": "De order intake bevat foutieve of onvolledige informatie. Kijk de velden na en voer de nodige correcties uit.",
|
|
732
|
-
"enum.api_error_code.organization_contact_person_not_found": "Organisatiecontactpersoon niet gevonden",
|
|
733
|
-
"enum.api_error_code.organization_not_found": "Organisatie niet gevonden",
|
|
734
|
-
"enum.api_error_code.overlapping_driver_unavailabilities": "Beschikbaarheden mogen niet overlappen",
|
|
735
|
-
"enum.api_error_code.past_deactivated_at": "De deactivatie datum kan niet in het verleden liggen.",
|
|
736
|
-
"enum.api_error_code.pricing_parameters_not_found": "Prijsparameters niet gevonden",
|
|
737
|
-
"enum.api_error_code.pricing_parameters_not_in_future": "Prijsparameters zijn niet in de toekomst",
|
|
738
|
-
"enum.api_error_code.primary_contact_of_business_not_unlinkable": "Primair contact van bedrijf kan niet worden losgekoppeld",
|
|
739
|
-
"enum.api_error_code.primary_contact_of_care_user_not_unlinkable": "Primair contact van zorggebruiker kan niet worden losgekoppeld",
|
|
740
|
-
"enum.api_error_code.primary_contact_of_department_not_unlinkable": "Primair contact van afdeling kan niet worden losgekoppeld",
|
|
741
|
-
"enum.api_error_code.primary_contact_of_individual_not_unlinkable": "Primair contact van individu kan niet worden losgekoppeld",
|
|
742
|
-
"enum.api_error_code.primary_contact_of_deal_not_unlinkable": "Primair contact van deal kan niet worden losgekoppeld",
|
|
743
|
-
"enum.api_error_code.primary_contact_of_organization_not_unlinkable": "Primair contact van organisatie kan niet worden losgekoppeld",
|
|
744
|
-
"enum.api_error_code.requested_transport_order_not_found": "Transport order niet gevonden",
|
|
745
|
-
"enum.api_error_code.role_not_found": "Rol niet gevonden",
|
|
746
|
-
"enum.api_error_code.shift_not_found": "Shift niet gevonden",
|
|
747
|
-
"enum.api_error_code.shift_overlaps_with_absence": "Shift overlapt met afwezigheid",
|
|
748
|
-
"enum.api_error_code.shift_overlaps_with_existing_shifts": "Shift overlapt met bestaande shiften",
|
|
749
|
-
"enum.api_error_code.shift_overlaps_with_full_day_absence": "Shift overlapt met volledige dag afwezigheid",
|
|
750
|
-
"enum.api_error_code.simulation_cannot_be_deleted": "Simulatie kan niet worden verwijderd",
|
|
751
|
-
"enum.api_error_code.tenant_not_found": "Tenant niet gevonden",
|
|
752
|
-
"enum.api_error_code.user_not_found": "Gebruiker niet gevonden",
|
|
753
|
-
"enum.api_error_code.user_notification_not_found": "Gebruikersnotificatie niet gevonden",
|
|
754
|
-
"enum.api_error_code.user_connected_to_other_tenant": "Gebruiker verbonden met andere tenant",
|
|
755
|
-
"enum.api_error_code.invalid_billing_information": "Ongeldige facturatiegegevens",
|
|
756
|
-
"enum.api_error_code.vehicle_unavailability_not_found": "Voertuigd onbeschikbaarheid niet gevonden",
|
|
757
|
-
"enum.api_error_code.virtual_segment_not_found": "Virtueel segment niet gevonden",
|
|
758
|
-
"enum.api_error_code.vies_service_unavailable": "VIES-service niet beschikbaar",
|
|
759
|
-
"module.notification.notification_center.title": "Notifications",
|
|
760
|
-
"module.notification.notification_center.trigger.label": "Notifications",
|
|
761
|
-
"module.notification.notification_center.unread": "Unread",
|
|
762
|
-
"module.notification.notification_center.all": "All",
|
|
763
|
-
"module.notification.notification_center.empty.text": "🎉 You're all caught up!",
|
|
764
|
-
"module.notification.notification_center.mark_as_read.label": "Mark as read",
|
|
765
|
-
"module.notification.notification_center.mark_all_as_read.label": "Mark all as read",
|
|
766
|
-
"module.notification.notification_center.test_notification.title": "sent a test notification.",
|
|
767
|
-
"module.notification.notification_center.test_notification.someone": "Someone",
|
|
768
|
-
"component.command_menu.action.change_language_to_en_us": "Change language to English (US)",
|
|
769
|
-
"component.command_menu.action.change_language_to_nl_be": "Change language to Dutch (Belgium)",
|
|
770
|
-
"component.command_menu.action.change_to_system_preference": "Change to system preference",
|
|
771
|
-
"component.command_menu.action.create_new_contact": "Create new contact",
|
|
772
|
-
"wise_crm.info_dialog.sidebar.grant_customer_zone_access": "Toegang tot klantenportaal geven",
|
|
773
|
-
"wise_crm.info_dialog.sidebar.grant_customer_zone_access_success": "Toegang tot klantenportaal is succesvol verleend.",
|
|
774
|
-
"component.command_menu.action.enable_dark_mode": "Enable dark mode",
|
|
775
|
-
"component.select.search_input_placeholder": "Zoeken...",
|
|
776
|
-
"component.command_menu.action.enable_light_mode": "Enable light mode",
|
|
777
|
-
"component.command_menu.action.open_appearance": "Open appearance",
|
|
778
|
-
"component.command_menu.action.open_contacts": "Go to contacts",
|
|
779
|
-
"component.command_menu.action.open_notifications": "Open notifications",
|
|
780
|
-
"component.command_menu.action.open_settings": "Go to settings",
|
|
781
|
-
"component.command_menu.aria_description": "Search for anything in the app",
|
|
782
|
-
"component.command_menu.aria_title": "Global search dialog",
|
|
783
|
-
"component.command_menu.breadcrumb.language": "Language",
|
|
784
|
-
"component.command_menu.placeholder": "What are you looking for?",
|
|
785
|
-
"component.header.search": "Global search",
|
|
786
|
-
"component.keyboard_shortcut.then": "then",
|
|
787
|
-
"component.password_input.hide_password": "Hide password",
|
|
788
|
-
"component.password_input.show_password": "Show password",
|
|
789
|
-
"component.refresh_prompt.new_version.action": "Refresh",
|
|
790
|
-
"component.refresh_prompt.new_version.description": "New version available! Reload to receive the latest functionality.",
|
|
791
|
-
"component.search_input.clear": "Clear",
|
|
792
|
-
"component.search_input.placeholder": "Zoeken...",
|
|
793
|
-
"component.select.empty_text": "No results found for '{searchTerm}'.",
|
|
794
|
-
"component.select.search_placeholder": "Zoeken...",
|
|
795
|
-
"component.sidebar.close_sidebar": "Close sidebar",
|
|
796
|
-
"component.sidebar.footer.environment": "Environment",
|
|
797
|
-
"component.sidebar.footer.sign_out": "Sign out",
|
|
798
|
-
"component.sidebar.footer.user_profile": "User profile",
|
|
799
|
-
"component.sidebar.footer.version": "Version",
|
|
800
|
-
"component.sidebar.open_sidebar": "Open sidebar",
|
|
801
|
-
"component.sidebar.settings": "Settings",
|
|
802
|
-
"component.table.clear_filter": "Clear filter|Clear filters",
|
|
803
|
-
"component.table.no_data.description": "There is currently no data available.",
|
|
804
|
-
"component.table.no_data.title": "No data available",
|
|
805
|
-
"component.table.no_results.description": "We couldn't find any results for your search. Please try again with different criteria.",
|
|
806
|
-
"component.table.no_results.title": "We couldn't find any results",
|
|
807
|
-
"component.table.results_may_be_hidden": "Some results may be hidden because of {count} active filter|Some results may be hidden because of {count} active filters",
|
|
808
|
-
"component.unsaved_changes_dialog.cancel": "Keep editing",
|
|
809
|
-
"component.unsaved_changes_dialog.confirm": "Yes, I'm sure",
|
|
810
|
-
"component.unsaved_changes_dialog.description": "All unsaved changes will be lost. Are you sure you want to continue?",
|
|
811
|
-
"component.unsaved_changes_dialog.title": "Unsaved changes",
|
|
812
|
-
"enum.role.admin": "Admin",
|
|
813
|
-
"enum.role.user": "User",
|
|
814
|
-
"enum.search_category_name.contact": "Contacts",
|
|
815
|
-
"enum.search_category_name.navigation": "Navigation",
|
|
816
|
-
"enum.search_category_name.settings": "Settings",
|
|
817
|
-
"enum.search_category_name.user": "Users",
|
|
818
|
-
"error.bad_request.description": "Something went wrong. Please try again.",
|
|
819
|
-
"error.bad_request.title": "Bad request",
|
|
820
|
-
"error.default_error.description": "Please try again later.",
|
|
821
|
-
"error.default_error.title": "Something went wrong",
|
|
822
|
-
"error.forbidden.description": "You don't have permission to access this resource.",
|
|
823
|
-
"error.forbidden.title": "Forbidden",
|
|
824
|
-
"error.internal_server_error.description": "Please try again later.",
|
|
825
|
-
"error.internal_server_error.title": "Internal server error",
|
|
826
|
-
"error.invalid_form_input.description": "Please check the highlighted fields and try again.",
|
|
827
|
-
"error.invalid_form_input.title": "Invalid form",
|
|
828
|
-
"error.resource_not_found.description": "The requested resource could not be found.",
|
|
829
|
-
"error.resource_not_found.title": "Resource not found",
|
|
830
|
-
"error.unauthorized.description": "You are not authorized to access this resource.",
|
|
831
|
-
"error.unauthorized.title": "Unauthorized",
|
|
832
|
-
"error.validation_error.description": "Please check the form for errors.",
|
|
833
|
-
"error.validation_error.title": "Validation error",
|
|
834
|
-
"error.business_details.description": "Er is een fout opgetreden bij het laden van de bedrijfsgegevens.",
|
|
835
|
-
"error.business_details.title": "Fout",
|
|
836
|
-
"error.deal_details.description": "Er is een fout opgetreden bij het laden van de deal gegevens.",
|
|
837
|
-
"error.deal_details.title": "Fout",
|
|
838
|
-
"form.fields.email": "Email",
|
|
839
|
-
"form.fields.password": "Password",
|
|
840
|
-
"form.save_changes": "Save changes",
|
|
841
|
-
"module.auth.login.description": "Sign in to your account to continue",
|
|
842
|
-
"module.auth.login.error": "Something went wrong while logging in. Please try again.",
|
|
843
|
-
"module.auth.login.sign_in": "Sign in",
|
|
844
|
-
"module.auth.login.title": "Sign in",
|
|
845
|
-
"module.contact.address": "Address",
|
|
846
|
-
"module.contact.birth_date": "Birthdate",
|
|
847
|
-
"module.contact.contact_info": "Contact Information",
|
|
848
|
-
"wise_crm.contact.create_dialog.form.back": "Terug",
|
|
849
|
-
"module.contact.create.create_contact": "Create Contact",
|
|
850
|
-
"module.contact.create.success_toast.message": "Contact has been created successfully.",
|
|
851
|
-
"module.contact.create.title": "New contact",
|
|
852
|
-
"module.contact.create": "Create Contact",
|
|
853
|
-
"module.contact.delete.confirm.description": "Are you sure you want to delete \"{name}\"?",
|
|
854
|
-
"module.contact.delete.confirm.title": "Are you sure?",
|
|
855
|
-
"module.contact.detail.edit_contact": "Edit contact",
|
|
856
|
-
"module.contact.detail.title": "Edit contact",
|
|
857
|
-
"module.contact.email": "Email",
|
|
858
|
-
"module.contact.file": "File",
|
|
859
|
-
"module.contact.first_name": "First name",
|
|
860
|
-
"module.contact.form.section.contact.description": "Contact information.",
|
|
861
|
-
"module.contact.form.section.name.description": "First and last name of the contact.",
|
|
862
|
-
"module.contact.form.section.status.description": "Status of the contact.",
|
|
863
|
-
"module.contact.is_active": "Active",
|
|
864
|
-
"module.contact.label.contact_with_count": "No contacts | {count} contact | {count} contacts",
|
|
865
|
-
"module.contact.label.plural": "Contacts",
|
|
866
|
-
"module.contact.label.singular": "Contact",
|
|
867
|
-
"module.contact.last_name": "Last name",
|
|
868
|
-
"module.contact.name": "Name",
|
|
869
|
-
"module.contact.personal_info": "Personal Information",
|
|
870
|
-
"module.contact.phone": "Phone",
|
|
871
|
-
"module.contact.status.active": "Active",
|
|
872
|
-
"module.contact.status.inactive": "Inactive",
|
|
873
|
-
"module.contact.status": "Status",
|
|
874
|
-
"module.contact.title": "Contacts",
|
|
875
|
-
"module.contact.unknown": "Unknown Contact",
|
|
876
|
-
"module.contact.update.success_toast.message": "Contact has been updated successfully.",
|
|
877
|
-
"module.contact.update.title": "Edit contact",
|
|
878
|
-
"module.settings.appearance": "Appearance",
|
|
879
|
-
"module.settings.application.title": "Application",
|
|
880
|
-
"module.settings.back.label": "Back",
|
|
881
|
-
"module.settings.developer.message": "Message",
|
|
882
|
-
"module.settings.developer.one_signal_push_notification": "OneSignal Push Notification",
|
|
883
|
-
"module.settings.developer.send_notification": "Send notification",
|
|
884
|
-
"module.settings.developer.test_notification": "Test notification",
|
|
885
|
-
"module.settings.developer.title": "Developer",
|
|
886
|
-
"module.settings.disabled": "Disabled",
|
|
887
|
-
"module.settings.enabled": "Enabled",
|
|
888
|
-
"module.settings.event_logs.title": "Event logs",
|
|
889
|
-
"module.settings.font_size.default": "Default",
|
|
890
|
-
"module.settings.font_size.description": "Adjust your font size.",
|
|
891
|
-
"module.settings.font_size.large": "Large",
|
|
892
|
-
"module.settings.font_size.larger": "Larger",
|
|
893
|
-
"module.settings.font_size.small": "Small",
|
|
894
|
-
"module.settings.font_size.smaller": "Smaller",
|
|
895
|
-
"module.settings.font_size.title": "Font size",
|
|
896
|
-
"module.settings.forward.label": "Forward",
|
|
897
|
-
"module.settings.general_settings": "General",
|
|
898
|
-
"module.settings.high_contrast.description": "Enhance readability and visibility by increasing the contrast between UI elements.",
|
|
899
|
-
"module.settings.high_contrast.disabled.description": "High contrast mode is disabled.",
|
|
900
|
-
"module.settings.high_contrast.disabled.label": "Disabled",
|
|
901
|
-
"module.settings.high_contrast.enabled.description": "High contrast mode is enabled.",
|
|
902
|
-
"module.settings.high_contrast.enabled.label": "Enabled",
|
|
903
|
-
"module.settings.high_contrast.title": "High contrast mode",
|
|
904
|
-
"module.settings.interface_theme.dark": "Dark",
|
|
905
|
-
"module.settings.interface_theme.description": "Select or customize your UI theme.",
|
|
906
|
-
"module.settings.interface_theme.light": "Light",
|
|
907
|
-
"module.settings.interface_theme.system_preference": "System preference",
|
|
908
|
-
"module.settings.interface_theme.title": "Interface theme",
|
|
909
|
-
"module.settings.jobs.table.archived": "Archived",
|
|
910
|
-
"module.settings.jobs.table.completed_at": "Completed at",
|
|
911
|
-
"module.settings.jobs.table.created_at": "Created at",
|
|
912
|
-
"module.settings.jobs.table.job_id": "Job id",
|
|
913
|
-
"module.settings.jobs.table.job_name": "Job name",
|
|
914
|
-
"module.settings.jobs.table.queue_name": "Queu name",
|
|
915
|
-
"module.settings.jobs.table.status": "Status",
|
|
916
|
-
"module.settings.jobs.table.view": "View tabel",
|
|
917
|
-
"module.settings.jobs.title": "Jobs",
|
|
918
|
-
"module.settings.description": "Hier kun je je persoonlijke voorkeuren en applicatie-instellingen beheren.",
|
|
919
|
-
"module.settings.keyboard_shortcuts.description": "Keyboard shortcuts are always enabled, but you can choose whether to display a hint.",
|
|
920
|
-
"module.settings.keyboard_shortcuts.disabled.description": "Keyboard shortcut hints are hidden.",
|
|
921
|
-
"module.settings.keyboard_shortcuts.disabled.label": "Disabled",
|
|
922
|
-
"module.settings.keyboard_shortcuts.enabled.description": "Keyboard shortcut hints are visible.",
|
|
923
|
-
"module.settings.keyboard_shortcuts.enabled.label": "Enabled",
|
|
924
|
-
"module.settings.keyboard_shortcuts.example_button": "Example",
|
|
925
|
-
"module.settings.keyboard_shortcuts.title": "Keyboard shortcut hints",
|
|
926
|
-
"module.settings.language.description": "Change your language.",
|
|
927
|
-
"module.settings.language.locales.en_us": "English (United States)",
|
|
928
|
-
"module.settings.language.locales.nl_be": "Nederlands (België)",
|
|
929
|
-
"module.settings.language.title": "Language",
|
|
930
|
-
"module.settings.maximize.label": "Maximize settings view",
|
|
931
|
-
"module.settings.minimize.label": "Minimize settings view",
|
|
932
|
-
"module.settings.notifications.all.description": "Receive all notifications without filters",
|
|
933
|
-
"module.settings.notifications.all.title": "All",
|
|
934
|
-
"module.settings.notifications.channel.app": "App",
|
|
935
|
-
"module.settings.notifications.channel.email": "E-mail",
|
|
936
|
-
"module.settings.notifications.channel.push": "Push",
|
|
937
|
-
"module.settings.notifications.channel.sms": "SMS",
|
|
938
|
-
"module.settings.notifications.custom.description": "Choose your own notifications that you want to receive",
|
|
939
|
-
"module.settings.notifications.custom.title": "Custom",
|
|
940
|
-
"module.settings.notifications.default.description": "De aanbevolen selectie voor de meeste gebruikers",
|
|
941
|
-
"module.settings.notifications.default.title": "Standaard",
|
|
942
|
-
"module.settings.notifications.none.description": "Ontvang geen meldingen van het platform",
|
|
943
|
-
"module.settings.notifications.none.title": "Geen",
|
|
944
|
-
"module.settings.notifications.title": "Notificaties",
|
|
945
|
-
"module.settings.reduce_motion.description": "Verminder het aantal en intensiteit van animaties, hovereffecten en andere bewegende effecten in de applicatie.",
|
|
946
|
-
"module.settings.reduce_motion.disabled.description": "Alle animaties en hovereffecten zijn ingeschakeld voor een volledige ervaring.",
|
|
947
|
-
"module.settings.reduce_motion.disabled.label": "Uitgeschakeld",
|
|
948
|
-
"module.settings.reduce_motion.enabled.description": "Je zult minder animaties en hovereffecten zien om beweging te verminderen.",
|
|
949
|
-
"module.settings.reduce_motion.enabled.label": "Ingeschakeld",
|
|
950
|
-
"module.settings.reduce_motion.title": "Verminder beweging",
|
|
951
|
-
"module.settings.roles_and_permissions": "Rollen en rechten",
|
|
952
|
-
"module.settings.roles_and_permissions.add_new_role": "Rol aanmaken",
|
|
953
|
-
"module.settings.roles_and_permissions.create_role_dialog.description": "Maak een nieuwe rol aan",
|
|
954
|
-
"module.settings.roles_and_permissions.create_role_dialog.title": "Nieuwe rol",
|
|
955
|
-
"module.settings.roles_and_permissions.save_changes": "Opslaan",
|
|
956
|
-
"module.settings.roles_and_permissions.save_changes_success": "Veranderingen zijn opgeslagen",
|
|
957
|
-
"module.settings.roles_and_permissions.table.delete_role": "Rol verwijderen",
|
|
958
|
-
"module.settings.roles_and_permissions.table.permissions": "Permissies",
|
|
959
|
-
"module.settings.roles_and_permissions.title": "Rollen en rechten",
|
|
960
|
-
"module.settings.search.clear.label": "Clear search term",
|
|
961
|
-
"module.settings.search.placeholder": "Quick search",
|
|
962
|
-
"module.settings.section.appearance.description": "Customize the overall look and feel of the app.",
|
|
963
|
-
"module.settings.section.appearance.option.dark_mode": "Dark mode",
|
|
964
|
-
"module.settings.section.appearance.option.light_mode": "Light mode",
|
|
965
|
-
"module.settings.section.appearance.option.system_preference": "System preference",
|
|
966
|
-
"module.settings.section.appearance.title": "Appearance",
|
|
967
|
-
"module.settings.section.font_size.description": "Adjust the text size for better readability or to fit more content on your screen.",
|
|
968
|
-
"module.settings.section.font_size.option.default": "Default",
|
|
969
|
-
"module.settings.section.font_size.option.large": "Large",
|
|
970
|
-
"module.settings.section.font_size.option.larger": "Larger",
|
|
971
|
-
"module.settings.section.font_size.option.small": "Small",
|
|
972
|
-
"module.settings.section.font_size.option.smaller": "Smaller",
|
|
973
|
-
"module.settings.section.font_size.title": "Font size",
|
|
974
|
-
"module.settings.section.high_contrast.description": "Enhance visibility and reduce eye strain with high contrast mode.",
|
|
975
|
-
"module.settings.section.high_contrast.disabled.label": "High contrast mode is disabled",
|
|
976
|
-
"module.settings.section.high_contrast.enabled.label": "High contrast mode is enabled",
|
|
977
|
-
"module.settings.section.high_contrast.title": "High contrast",
|
|
978
|
-
"module.settings.section.keyboard_shortcut_hints.description": "Toggle hints for keyboard shortcuts to help you navigate the app more efficiently.",
|
|
979
|
-
"module.settings.section.keyboard_shortcut_hints.disabled.label": "Keyboard shortcut hints are hidden",
|
|
980
|
-
"module.settings.section.keyboard_shortcut_hints.enabled.label": "Keyboard shortcut hints are visible",
|
|
981
|
-
"module.settings.section.keyboard_shortcut_hints.example": "Example",
|
|
982
|
-
"module.settings.section.keyboard_shortcut_hints.not_available_on_mobile": "Keyboard shortcuts aren't available on mobile or tablet devices. To change this setting, open the app on a desktop.",
|
|
983
|
-
"module.settings.section.keyboard_shortcut_hints.title": "Keyboard shortcut hints",
|
|
984
|
-
"module.settings.subtitle": "Beheer je app-instellingen",
|
|
985
|
-
"module.settings.system.title": "Systeem",
|
|
986
|
-
"module.settings.title": "Instellingen",
|
|
987
|
-
"module.settings.users": "Gebruikers",
|
|
988
|
-
"module.settings.users_and_permissions": "Gebruikers en permissies",
|
|
989
|
-
"module.settings.section.language.description": "Select your preferred language for the app.",
|
|
990
|
-
"module.settings.section.language.title": "Language",
|
|
991
|
-
"module.user.create.create_user": "Create User",
|
|
992
|
-
"module.user.create.success_toast.message": "User has been created successfully.",
|
|
993
|
-
"module.user.create.title": "New user",
|
|
994
|
-
"module.user.detail.edit_user": "Bewerk gebruiker",
|
|
995
|
-
"module.user.detail.title": "Edit user",
|
|
996
|
-
"module.user.form.section.name.description": "First and last name of the user.",
|
|
997
|
-
"module.user.role": "Role",
|
|
998
|
-
"module.user.title": "Users",
|
|
999
|
-
"module.user.update.success_toast.description": "Gebruiker {user} is succesvol bijgewerkt.",
|
|
1000
|
-
"module.user.update.success_toast.message": "User has been updated successfully.",
|
|
1001
|
-
"module.user.update.success_toast.title": "Gebruiker bijgewerkt",
|
|
1002
|
-
"shared.cancel": "Cancel",
|
|
1003
|
-
"shared.confirm": "Confirm",
|
|
1004
|
-
"shared.previous": "Vorige",
|
|
1005
|
-
"shared.next": "Volgende",
|
|
1006
|
-
"shared.add": "Toevoegen",
|
|
1007
|
-
"shared.close": "Close",
|
|
1008
|
-
"shared.copy_to_clipboard": "Copy to clipboard",
|
|
1009
|
-
"shared.created_at": "Created at",
|
|
1010
|
-
"shared.delete": "Delete",
|
|
1011
|
-
"shared.description": "Description",
|
|
1012
|
-
"shared.edit": "Edit",
|
|
1013
|
-
"shared.empty_dash": "-",
|
|
1014
|
-
"shared.global": "Global",
|
|
1015
|
-
"shared.id": "Id",
|
|
1016
|
-
"shared.info": "Info",
|
|
1017
|
-
"shared.loading": "Loading",
|
|
1018
|
-
"shared.manage_users": "Manage users",
|
|
1019
|
-
"shared.message": "Message",
|
|
1020
|
-
"shared.name": "Name",
|
|
1021
|
-
"shared.navigate_back": "Navigate back",
|
|
1022
|
-
"shared.navigate_forward": "Navigate forward",
|
|
1023
|
-
"shared.navigate": "Navigate",
|
|
1024
|
-
"shared.results": "No results | {count} result | {count} results",
|
|
1025
|
-
"shared.roles": "Roles",
|
|
1026
|
-
"shared.save_changes": "Save",
|
|
1027
|
-
"shared.save": "Opslaan",
|
|
1028
|
-
"shared.select": "Select",
|
|
1029
|
-
"shared.time_format.now": "Now",
|
|
1030
|
-
"shared.title": "Title",
|
|
1031
|
-
"shared.topic": "Topic",
|
|
1032
|
-
"shared.type": "Type",
|
|
1033
|
-
"shared.user": "User",
|
|
1034
|
-
"shared.users": "Users",
|
|
1035
|
-
"toast.error.general_title": "Something went wrong",
|
|
1036
|
-
"toast.success.general_title": "Success",
|
|
1037
|
-
"user.birth_date": "Birthdate",
|
|
1038
|
-
"user.email": "Email",
|
|
1039
|
-
"user.first_name": "First name",
|
|
1040
|
-
"user.label.plural": "Users",
|
|
1041
|
-
"user.label.singular": "User",
|
|
1042
|
-
"user.label.user_with_count": "No users | {count} user | {count} users",
|
|
1043
|
-
"user.last_name": "Last name",
|
|
1044
|
-
"user.name": "Name",
|
|
1045
|
-
"users.overview.extra_roles_tooltip": "Extra rollen",
|
|
1046
|
-
"validation.duplicate": "Duplicate value",
|
|
1047
|
-
"validation.invalid_date": "Invalid date",
|
|
1048
|
-
"validation.invalid_datetime": "Invalid date and time",
|
|
1049
|
-
"validation.invalid_email": "Invalid email address",
|
|
1050
|
-
"validation.invalid_regex": "Invalid format",
|
|
1051
|
-
"validation.invalid_string": "Invalid input",
|
|
1052
|
-
"validation.invalid_union": "Invalid input",
|
|
1053
|
-
"validation.invalid_url": "Invalid URL",
|
|
1054
|
-
"validation.invalid_uuid": "Invalid UUID",
|
|
1055
|
-
"validation.required": "This field is required",
|
|
1056
|
-
"validation.too_big_array": "Must contain a most {count} item | Must contain a most {count} items",
|
|
1057
|
-
"validation.too_big_date": "Must be before {count}",
|
|
1058
|
-
"validation.too_big_number": "Must be less than or equal to {count}",
|
|
1059
|
-
"validation.too_big_string": "Must be at most {count} character | Must be at most {count} characters",
|
|
1060
|
-
"validation.too_big": "Must be less than or equal to {count}",
|
|
1061
|
-
"validation.too_small_array": "Must contain at least {count} item | Must contain at least {count} items",
|
|
1062
|
-
"validation.too_small_date": "Must be after {count}",
|
|
1063
|
-
"validation.too_small_number": "Must be greater than or equal to {count}",
|
|
1064
|
-
"validation.too_small_string": "Must be at least {count} character | Must be at least {count} characters",
|
|
1065
|
-
"validation.too_small": "Must be greater than or equal to {count}",
|
|
1066
|
-
"validation.unauthorized": "Unauthorized",
|
|
1067
|
-
"enum.api_error_code.invalid_vat_number": "Ongeldig btw-nummer",
|
|
1068
|
-
"wise_crm.widgets.view_all": "Bekijk alles",
|
|
1069
|
-
"validation.vat_number.invalid_country_code": "Geen/Ongeldige landcode",
|
|
1070
|
-
"validation.vat_number.numbers_only": "Ongeldig BTW-nummer",
|
|
1071
|
-
"wise_crm.activity.no_entries_found": "Geen updates gevonden",
|
|
1072
|
-
"wise_crm.widgets.individuals.since_last_month": "{count}% sinds vorige maand | {count}% sinds vorige maand",
|
|
1073
|
-
"wise_crm.widgets.individuals.title": "Particulieren",
|
|
1074
|
-
"wise_crm.widgets.individuals.value_since_last_month": "{count} afgelopen 30 dagen | {count} afgelopen 30 dagen",
|
|
1075
|
-
"wise_crm.business.form.address": "Adres",
|
|
1076
|
-
"wise_crm.business.form.business_number": "Ondernemingsnummer",
|
|
1077
|
-
"wise_crm.business.form.general_information": "Algemene informatie",
|
|
1078
|
-
"wise_crm.contact.create_dialog.description": "Selecteer welk type contact u wil aanmaken",
|
|
1079
|
-
"wise_crm.contact.create_dialog.form.company_number": "Ondernemingsnummer",
|
|
1080
|
-
"wise_crm.contact.create_dialog.form.contact_information": "Contact informatie",
|
|
1081
|
-
"wise_crm.contact.create_dialog.form.description": "Vul de algemene gegevens",
|
|
1082
|
-
"wise_crm.contact.create_dialog.form.contact_person_description": "Vul de contactpersoon gegevens in",
|
|
1083
|
-
"wise_crm.contact.create_dialog.form.errors.at_least_one_contact_info": "Gelieven één van bovenstaande contactgegevens in te vullen",
|
|
1084
|
-
"wise_crm.contact.create_dialog.form.contact_person": "Contactpersoon",
|
|
1085
|
-
"wise_crm.contact.create_dialog.form.fields.address": "Adres",
|
|
1086
|
-
"wise_crm.contact.create_dialog.form.fields.language": "Taal",
|
|
1087
|
-
"wise_crm.contact.create_dialog.form.fields.birthdate": "Geboortedatum",
|
|
1088
|
-
"wise_crm.contact.create_dialog.form.fields.cbe_search": "Zoeken in de kruispuntbank van ondernemingen",
|
|
1089
|
-
"wise_crm.contact.create_dialog.form.fields.contact_person": "Voeg een bestaande toe",
|
|
1090
|
-
"wise_crm.contact.create_dialog.form.fields.contact_type": "Contact type",
|
|
1091
|
-
"wise_crm.contact.create_dialog.form.fields.create_new_label": "Vind je niet wat je zoekt?",
|
|
1092
|
-
"wise_crm.contact.create_dialog.form.fields.email": "E-mailadres",
|
|
1093
|
-
"wise_crm.contact.create_dialog.form.fields.first_name": "Voornaam",
|
|
1094
|
-
"wise_crm.contact.create_dialog.form.fields.last_name": "Naam",
|
|
1095
|
-
"wise_crm.contact.create_dialog.form.fields.mobile_phone": "Mobiel telefoonnummer",
|
|
1096
|
-
"wise_crm.contact.create_dialog.form.fields.phone": "Telefoonnummer",
|
|
1097
|
-
"wise_crm.contact.create_dialog.form.fields.position": "Positie",
|
|
1098
|
-
"wise_crm.contact.create_dialog.form.fields.search": "Zoeken...",
|
|
1099
|
-
"wise_crm.contact.create_dialog.form.name": "Naam",
|
|
1100
|
-
"wise_crm.contact.create_dialog.form.seperator_label": "en/of",
|
|
1101
|
-
"wise_crm.contact.create_dialog.form.title": "{value} aanmaken ",
|
|
1102
|
-
"wise_crm.contact.create_dialog.form.contact_person_title": "Contactpersoon toevoegen",
|
|
1103
|
-
"wise_crm.contact.create_dialog.form.vat_number": "BTW nummer",
|
|
1104
|
-
"wise_crm.contact.create_dialog.title": "Nieuw contact aanmaken",
|
|
1105
|
-
"wise_crm.form.errors.at_least_one": "Gelieve een E-mailadres of telefoonnummer toe te voegen",
|
|
1106
|
-
"wise_crm.info_dialog.activity.empty_state.description": "Er zijn nog geen aanpassingen gebeurd",
|
|
1107
|
-
"wise_crm.info_dialog.activity.empty_state.title": "Geen activiteit gevonden",
|
|
1108
|
-
"wise_crm.info_dialog.add_business_child_dialog.create_a_existing_one": "Maak een bestaande aan",
|
|
1109
|
-
"wise_crm.info_dialog.add_business_child_dialog.create_a_new_one": "Maak een nieuwe aan",
|
|
1110
|
-
"wise_crm.info_dialog.add_business_child_dialog.title": "Onderliggend bedrijf toevoegen",
|
|
1111
|
-
"wise_crm.info_dialog.add_business_child_dialog.description": "Kies of je een nieuw bedrijf wil aanmaken of een bestaand bedrijf wil koppelen als onderliggend bedrijf.",
|
|
1112
|
-
"wise_crm.info_dialog.business.information.billing_information.billing_address": "Facturatie adres",
|
|
1113
|
-
"wise_crm.info_dialog.business.information.billing_information.email": "E-mail",
|
|
1114
|
-
"wise_crm.info_dialog.business.information.billing_information.invoice_cc_emails": "Digitale facturatie cc-adressen",
|
|
1115
|
-
"wise_crm.info_dialog.business.information.billing_information.invoice_email": "Digitale facturatie",
|
|
1116
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_note_cc_emails": "Aankoopnots's cc-adressen",
|
|
1117
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_note_email": "Aankoopnota's",
|
|
1118
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_cc_emails": "Rappels cc-adressen",
|
|
1119
|
-
"wise_crm.contact.create_dialog.form.create_new_contact_person": "Maak een nieuwe contactpersoon aan",
|
|
1120
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_email": "Rappels",
|
|
1121
|
-
"wise_crm.info_dialog.business_info_update_dialog.description": "Aanpassen van de bedrijfsinformatoe",
|
|
1122
|
-
"wise_crm.info_dialog.business_info_update_dialog.tabs.info": "Gegevens",
|
|
1123
|
-
"wise_crm.info_dialog.business_info_update_dialog.title": "Bedrijfsgegevens wijzigen",
|
|
1124
|
-
"wise_crm.info_dialog.contact_person_create.description": "Een nieuwe contactpersoon toevoegen",
|
|
1125
|
-
"wise_crm.info_dialog.contact_person_create.title": "Contactpersoon toevoegen",
|
|
1126
|
-
"wise_crm.info_dialog.contact_person_update.title": "Contactpersoon aanpassen",
|
|
1127
|
-
"wise_crm.info_dialog.contact_tooltip": "Contact tooltip",
|
|
1128
|
-
"wise_crm.info_dialog.copy_to_clipboard": "Kopieren",
|
|
1129
|
-
"wise_crm.info_dialog.customer_info_update_dialog.description": "Update klantgegevens formulier",
|
|
1130
|
-
"wise_crm.info_dialog.customer_info_update_dialog.form.name_label": "Naam",
|
|
1131
|
-
"wise_crm.info_dialog.customer_info_update_dialog.form.ssn_label": "Rijksregisternummer (RRN)",
|
|
1132
|
-
"wise_crm.info_dialog.customer_info_update_dialog.title": "Persoonlijke gegevens wijzigen",
|
|
1133
|
-
"wise_crm.info_dialog.info_business_info.card.title": "Bedrijfsgegevens",
|
|
1134
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_address": "Facturatieadres",
|
|
1135
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_address_same_as": "Facturatieadres is hetzelfde als {item} adres",
|
|
1136
|
-
"wise_crm.info_dialog.invoice_dialog.form.billing_information": "Facturatie gegevens",
|
|
1137
|
-
"wise_crm.info_dialog.invoice_dialog.form.contact_person": "Contactpersoon",
|
|
1138
|
-
"wise_crm.info_dialog.invoice_dialog.form.contact_person_placeholder": "Zoek een contactpersoon",
|
|
1139
|
-
"wise_crm.info_dialog.invoice_dialog.form.invoice_digitally": "Factuur digitaal ontvangen",
|
|
1140
|
-
"wise_crm.info_dialog.invoice_dialog.form.language": "Taal",
|
|
1141
|
-
"wise_crm.info_dialog.invoice_dialog.form.language_placeholder": "Kies een taal",
|
|
1142
|
-
"wise_crm.info_dialog.invoice_dialog.title": "Facturatiegegevens toevoegen",
|
|
1143
|
-
"wise_crm.info_dialog.invoice_dialog_update.title": "Facturatiegegevens aanpassen",
|
|
1144
|
-
"wise_crm.info_dialog.notes.action_button_label": "Notities actie menu",
|
|
1145
|
-
"wise_crm.info_dialog.notes.empty_state.description": "Begin met typen in het tekstvak.",
|
|
1146
|
-
"wise_crm.info_dialog.notes.empty_state.title": "Nog niets genoteerd.",
|
|
1147
|
-
"wise_crm.info_dialog.notes.submit_note_label": "Notitie versturen",
|
|
1148
|
-
"wise_crm.info_dialog.notes.update_note": "Notitie aanpassen",
|
|
1149
|
-
"wise_crm.info_dialog.search_an_existing_one": "Zoek een bestaande",
|
|
1150
|
-
"wise_crm.info_dialog.sidebar.business.add_icon": "Voeg een bedrijf toe",
|
|
1151
|
-
"wise_crm.info_dialog.sidebar.overview.birthday_label": "Geboren op {value}",
|
|
1152
|
-
"wise_crm.info_dialog.sidebar.overview.business_info": "Bedrijfsgegevens",
|
|
1153
|
-
"wise_crm.info_dialog.sidebar.overview.contact_person_primary": "Primair contactpersoon",
|
|
1154
|
-
"wise_crm.info_dialog.sidebar.overview.contact_persons_label": "Contactpersonen",
|
|
1155
|
-
"wise_crm.info_dialog.sidebar.overview.created_at_label": "Aangemaakt op {value}",
|
|
1156
|
-
"wise_crm.info_dialog.sidebar.overview.customer_info_label": "Persoonlijke gegevens",
|
|
1157
|
-
"wise_crm.info_dialog.sidebar.overview.invoice_label": "Facturatiegegevens",
|
|
1158
|
-
"wise_crm.info_dialog.sidebar.overview.linked_business_label": "Gelinkte {label}",
|
|
1159
|
-
"wise_crm.info_dialog.sidebar.overview.ssn_label": "RRN - {value}",
|
|
1160
|
-
"wise_crm.info_dialog.sidebar.overview.update_contact_person": "Contactpersoon aanpassen",
|
|
1161
|
-
"wise_crm.language.de": "Duits",
|
|
1162
|
-
"wise_crm.language.en": "Engels",
|
|
1163
|
-
"wise_crm.language.fr": "Frans",
|
|
1164
|
-
"wise_crm.language.nl": "Nederlands",
|
|
1165
|
-
"wise_crm.note.create_placeholder": "Maak een notitie",
|
|
1166
|
-
"wise_crm.note.hours_ago": "{count} uur geleden",
|
|
1167
|
-
"wise_crm.note.just_now": "Zonet",
|
|
1168
|
-
"wise_crm.note.minutes_ago": "{count} minuten geleden",
|
|
1169
|
-
"wise_crm.note.update_dialog.title": "Notitie wijzigen",
|
|
1170
|
-
"wise_crm.shared.activity": "Activiteit",
|
|
1171
|
-
"wise_crm.shared.add": "Toevoegen",
|
|
1172
|
-
"wise_crm.shared.back": "Vorige",
|
|
1173
|
-
"wise_crm.shared.skip": "Overslaan",
|
|
1174
|
-
"wise_crm.deal.detail_view.communication_tab_label": "Communicatie",
|
|
1175
|
-
"wise_crm.shared.contact_info": "Contactgegevens",
|
|
1176
|
-
"wise_crm.shared.create": "Aanmaken",
|
|
1177
|
-
"wise_crm.shared.delete": "Verwijderen",
|
|
1178
|
-
"wise_crm.shared.departments_amount": "{value} departementen | {value} departement | {value} departementen",
|
|
1179
|
-
"wise_crm.shared.home_address": "Thuisadres",
|
|
1180
|
-
"wise_crm.shared.loading": "Ophalen...",
|
|
1181
|
-
"wise_crm.shared.next": "Volgende",
|
|
1182
|
-
"wise_crm.shared.notes": "Notities",
|
|
1183
|
-
"wise_crm.shared.or": "of",
|
|
1184
|
-
"wise_crm.shared.overview": "Overzicht",
|
|
1185
|
-
"wise_crm.shared.save_changes": "Wijzigingen opslaan",
|
|
1186
|
-
"wise_crm.info_dialog.info.billing_information.card.title": "Facturatiegegevens",
|
|
1187
|
-
"wise_crm.info_dialog.info_individual_info.card.title": "Persoonlijke gegevens",
|
|
1188
|
-
"wise_crm.info_dialog.business.information.billing_information.reminder_different_switch": "Rappels op een ander E-mail",
|
|
1189
|
-
"component.zod_error.copy_details": "Details kopiëren",
|
|
1190
|
-
"component.zod_error.copied": "Gekopieerd",
|
|
1191
|
-
"component.zod_error.title": "Gegevens komen niet overeen",
|
|
1192
|
-
"component.zod_error.message": "De gegevens ontvangen van de API komen niet overeen met het verwachte formaat.",
|
|
1193
|
-
"wise_crm.info_dialog.business.information.billing_information.purchase_notes_different_switch": "Aankoop nota's op een ander E-mail",
|
|
1194
|
-
"module.crm.info_dialog.individual.tabs.info.label": "Informatie",
|
|
1195
|
-
"wise_crm.deal.form.fields.name": "Naam",
|
|
1196
|
-
"wise_crm.deal.overview_title": "Deals",
|
|
1197
|
-
"wise_crm.deal.overview.column.card.empty_deal_owner": "Geen deal eigenaar",
|
|
1198
|
-
"wise_crm.deal.overview.create": "Deal aanmaken",
|
|
1199
|
-
"wise_crm.deal.form.fields.search_vat_number": "Zoeken op ondernemingsnummer",
|
|
1200
|
-
"wise_crm.deal.form.fields.name_placeholder": "Naam",
|
|
1201
|
-
"wise_crm.deal.form.fields.language": "Taal",
|
|
1202
|
-
"wise_crm.deal.form.fields.language_placeholder": "Kies een taal",
|
|
1203
|
-
"wise_crm.deal.form.fields.source": "Ingangskanaal",
|
|
1204
|
-
"wise_crm.deal.form.fields.source_placeholder": "Kies een ingangskanaal",
|
|
1205
|
-
"wise_crm.deal.detail.sidebar.accordion.general_info": "Algemene informatie",
|
|
1206
|
-
"wise_crm.enum.language.en": "Engels",
|
|
1207
|
-
"wise_crm.enum.language.fr": "Frans",
|
|
1208
|
-
"wise_crm.enum.language.nl": "Nederlands",
|
|
1209
|
-
"wise_crm.enum.source.mail": "E-mail",
|
|
1210
|
-
"wise_crm.enum.source.website": "Website",
|
|
1211
|
-
"wise_crm.enum.source.phone": "Telefoon",
|
|
1212
|
-
"wise_crm.enum.source.tender": "Aanbesteding",
|
|
1213
|
-
"wise_crm.deal.create.steps.select_business": "Selecteer onderneming",
|
|
1214
|
-
"wise_crm.deal.create.steps.extra_info": "Extra informatie",
|
|
1215
|
-
"wise_crm.deal.create.title": "Deal aanmaken",
|
|
1216
|
-
"wise_crm.deal.create.steps.create_lead": "Nieuwe Lead aanmaken",
|
|
1217
|
-
"wise_crm.deal.create.select_business": "Zoeken op ondernemingsnummer",
|
|
1218
|
-
"wise_crm.deal.sidebar.created_at": "Deal aangemaakt op {date}",
|
|
1219
|
-
"wise_crm.deal.transition.label": "Deal Transitie",
|
|
1220
|
-
"wise_crm.deal.transition.placeholder": "Selecteer een kolom",
|
|
1221
|
-
"wise_crm.deal.detail.sidebar.name_field.label": "Deal Naam",
|
|
1222
|
-
"wise_crm.deal.detail.sidebar.name_field.edit_label": "Deal naam bewerken",
|
|
1223
|
-
"wise_crm.deal.settings.mail_template.locale_field.subject_label": "Onderwerp",
|
|
1224
|
-
"wise_crm.deal.settings.mail_template.locale_field.subject_placeholder": "Onderwerp",
|
|
1225
|
-
"wise_crm.deal.settings.mail_template.locale_field.message_label": "Bericht",
|
|
1226
|
-
"wise_crm.deal.settings.mail_template.locale_field.default_attachments_label": "Standaard bijlages",
|
|
1227
|
-
"wise_crm.deal.send_mail.attachment_field.add_attachment": "Bijlage toevoegen",
|
|
1228
|
-
"wise_crm.deal.send_mail.attachment_field.mail_attachments_label": "Mail bijlagen",
|
|
1229
|
-
"rich_text.toolbar.bold": "Vet",
|
|
1230
|
-
"rich_text.toolbar.italic": "Cursief",
|
|
1231
|
-
"rich_text.toolbar.underline": "Onderstrepen",
|
|
1232
|
-
"rich_text.toolbar.text_color": "Tekstkleur",
|
|
1233
|
-
"rich_text.toolbar.default_color": "Standaard",
|
|
1234
|
-
"rich_text.toolbar.bullet_list": "Opsommingstekens",
|
|
1235
|
-
"rich_text.link_dialog.title": "Link toevoegen",
|
|
1236
|
-
"rich_text.link_dialog.url": "URL",
|
|
1237
|
-
"component.file_upload.empty_state.choose_file": "Kies een bestand om te uploaden of sleep het hier naartoe.",
|
|
1238
|
-
"component.file_upload.empty_state.file_formats": "PNG, JPG en JPEG formaten. Tot 10MB.",
|
|
1239
|
-
"component.file_upload.empty_state.upload_button": "Bestand uploaden",
|
|
1240
|
-
"component.file_upload.dropzone.drop_files": "Sleep bestanden hier om te uploaden",
|
|
1241
|
-
"component.file_upload.button.upload_file": "Bestand uploaden",
|
|
1242
|
-
"component.file_upload.error.single_file_rejected": "Het bestand kon niet worden geüpload",
|
|
1243
|
-
"component.file_upload.error.multiple_files_rejected": "Een of meer bestanden konden niet worden geüpload",
|
|
1244
|
-
"wise_crm.deal.communication.mail_list.title": "Communicatie-overzicht",
|
|
1245
|
-
"wise_crm.deal.communication.mail_list.no_communication_sent": "Nog geen communicatie verstuurd",
|
|
1246
|
-
"wise_crm.deal.communication.mail_list.create_quote_instruction": "Maak een prijsofferte op om deze te kunnen verzenden.",
|
|
1247
|
-
"wise_crm.deal.send_mail_form.subject_placeholder": "Titel invoeren",
|
|
1248
|
-
"wise_crm.deal.send_mail_form.to_label": "Aan",
|
|
1249
|
-
"wise_crm.deal.send_mail_form.email_placeholder": "E-mail",
|
|
1250
|
-
"wise_crm.deal.send_mail_form.message_label": "Bericht",
|
|
1251
|
-
"wise_crm.search.empty_state.title": "Geen contacten gevonden",
|
|
1252
|
-
"wise_crm.search.empty_state.description": "We konden geen contacten vinden die overeenkomen met \"{searchTerm}\".",
|
|
1253
|
-
"wise_crm.search.empty_state.create_contact": "Nieuw contact aanmaken",
|
|
1254
|
-
"wise_crm.search.empty_state.clear_search": "Zoekopdracht wissen",
|
|
1255
|
-
"wise_crm.search.placeholder": "Zoek...",
|
|
1256
|
-
"wise_crm.search.individual_label": "Particulier",
|
|
1257
|
-
"wise_crm.search.business_label": "Bedrijf",
|
|
1258
|
-
"wise_crm.search.searching": "Zoeken...",
|
|
1259
|
-
"wise_crm.deal.send_mail.pdf_generating": "PDF genereren",
|
|
1260
|
-
"wise_crm.widgets.recently_created.title": "Recent aangemaakt",
|
|
1261
|
-
"wise_crm.widgets.recently_created.empty_state": "Er zijn nog geen recent aangemaakte entiteiten.",
|
|
1262
|
-
"component.contact_tooltip.aria_label.email": "Stuur e-mail naar {value}",
|
|
1263
|
-
"component.contact_tooltip.aria_label.phone": "Bel {value}",
|
|
1264
|
-
"component.contact_tooltip.aria_label.address": "Open {value} in Google Maps"
|
|
1265
|
-
};
|
|
1266
|
-
const individualUuidSchema = z.string().uuid().brand("IndividualUuid");
|
|
1267
|
-
var ActivityIndexTransformer = class {
|
|
1268
|
-
static fromDto(c) {
|
|
1269
|
-
return {
|
|
1270
|
-
userUuid: c.userUuid,
|
|
1271
|
-
createdAt: ZonedDateTimeTransformer.fromDto(c.createdAt),
|
|
1272
|
-
changedBy: c.changedBy,
|
|
1273
|
-
changes: c.changes?.map((c) => ActivityChangeTransformer.fromDto(c)) ?? [],
|
|
1274
|
-
content: c.content,
|
|
1275
|
-
message: c.message,
|
|
1276
|
-
type: c.type
|
|
1277
|
-
};
|
|
1278
|
-
}
|
|
1279
|
-
}, ActivityIndexPaginationTransformer = class {
|
|
1280
|
-
static toDto(c) {
|
|
1281
|
-
return c;
|
|
1282
|
-
}
|
|
1283
|
-
}, ActivityChangeTransformer = class {
|
|
1284
|
-
static fromDto(c) {
|
|
1285
|
-
return {
|
|
1286
|
-
key: c.key,
|
|
1287
|
-
oldValue: c.oldValue,
|
|
1288
|
-
value: c.newValue
|
|
1289
|
-
};
|
|
1290
|
-
}
|
|
1291
|
-
}, AddressTransformer = class {
|
|
1292
|
-
static fromDto(c) {
|
|
1293
|
-
return {
|
|
1294
|
-
placeId: c.placeId,
|
|
1295
|
-
bus: c.unit ?? "",
|
|
1296
|
-
city: c.city ?? "",
|
|
1297
|
-
coordinates: {
|
|
1298
|
-
lat: c.coordinates?.latitude ?? 0,
|
|
1299
|
-
lng: c.coordinates?.longitude ?? 0
|
|
1300
|
-
},
|
|
1301
|
-
country: c.country ?? "",
|
|
1302
|
-
postalCode: c.postalCode ?? "",
|
|
1303
|
-
street: c.streetName ?? "",
|
|
1304
|
-
streetNumber: c.streetNumber ?? ""
|
|
1305
|
-
};
|
|
1306
|
-
}
|
|
1307
|
-
static fromNullableDto(c) {
|
|
1308
|
-
return c === null ? null : this.fromDto(c);
|
|
1309
|
-
}
|
|
1310
|
-
static toDto(c) {
|
|
1311
|
-
return {
|
|
1312
|
-
placeId: c.placeId ?? null,
|
|
1313
|
-
city: c.city === "" ? null : c.city,
|
|
1314
|
-
coordinates: {
|
|
1315
|
-
latitude: c.coordinates.lat ?? 0,
|
|
1316
|
-
longitude: c.coordinates.lng ?? 0
|
|
1317
|
-
},
|
|
1318
|
-
country: c.country === "" ? null : c.country,
|
|
1319
|
-
placeName: null,
|
|
1320
|
-
postalCode: c.postalCode === "" ? null : c.postalCode,
|
|
1321
|
-
streetName: c.street === "" ? null : c.street,
|
|
1322
|
-
streetNumber: c.streetNumber === "" ? null : c.streetNumber,
|
|
1323
|
-
unit: c.bus === "" ? null : c.bus
|
|
1324
|
-
};
|
|
1325
|
-
}
|
|
1326
|
-
static toForm(c) {
|
|
1327
|
-
return {
|
|
1328
|
-
placeId: c.placeId,
|
|
1329
|
-
bus: c.bus ?? "",
|
|
1330
|
-
city: c.city ?? "",
|
|
1331
|
-
coordinates: {
|
|
1332
|
-
lat: c.coordinates?.lat ?? 0,
|
|
1333
|
-
lng: c.coordinates?.lng ?? 0
|
|
1334
|
-
},
|
|
1335
|
-
country: c.country ?? "",
|
|
1336
|
-
postalCode: c.postalCode ?? "",
|
|
1337
|
-
street: c.street ?? "",
|
|
1338
|
-
streetNumber: c.streetNumber ?? ""
|
|
1339
|
-
};
|
|
1340
|
-
}
|
|
1341
|
-
static toNullableForm(c) {
|
|
1342
|
-
return c === null ? {
|
|
1343
|
-
placeId: null,
|
|
1344
|
-
bus: "",
|
|
1345
|
-
city: "",
|
|
1346
|
-
coordinates: {
|
|
1347
|
-
lat: 0,
|
|
1348
|
-
lng: 0
|
|
1349
|
-
},
|
|
1350
|
-
country: "",
|
|
1351
|
-
postalCode: "",
|
|
1352
|
-
street: "",
|
|
1353
|
-
streetNumber: ""
|
|
1354
|
-
} : this.toForm(c);
|
|
1355
|
-
}
|
|
1356
|
-
}, StringUtil = class {
|
|
1357
|
-
static isEmpty(c) {
|
|
1358
|
-
return c.trim().length === 0;
|
|
1359
|
-
}
|
|
1360
|
-
static trimOrNull(c) {
|
|
1361
|
-
return c?.trim() === "" ? null : c;
|
|
1362
|
-
}
|
|
1363
|
-
static trimOrUndefined(c) {
|
|
1364
|
-
return c.trim() || void 0;
|
|
1365
|
-
}
|
|
1366
|
-
}, ContactPersonUpdateTransformer = class {
|
|
1367
|
-
static toDto(c) {
|
|
1368
|
-
return {
|
|
1369
|
-
email: StringUtil.trimOrNull(c.email),
|
|
1370
|
-
firstName: c.firstName,
|
|
1371
|
-
lastName: c.lastName,
|
|
1372
|
-
mobilePhone: c.mobilePhone,
|
|
1373
|
-
phone: c.phone,
|
|
1374
|
-
position: c.position
|
|
1375
|
-
};
|
|
1376
|
-
}
|
|
1377
|
-
}, AppGrid_default = /* @__PURE__ */ defineComponent({
|
|
1378
|
-
__name: "AppGrid",
|
|
1379
|
-
props: { cols: {} },
|
|
1380
|
-
setup(c) {
|
|
1381
|
-
let I = c;
|
|
1382
|
-
return (c, L) => (openBlock(), createElementBlock("div", { class: normalizeClass([{
|
|
1383
|
-
"grid-cols-1": I.cols === 1,
|
|
1384
|
-
"grid-cols-2": I.cols === 2,
|
|
1385
|
-
"grid-cols-3": I.cols === 3,
|
|
1386
|
-
"grid-cols-4": I.cols === 4
|
|
1387
|
-
}, "gap-xl grid"]) }, [renderSlot(c.$slots, "default")], 2));
|
|
1388
|
-
}
|
|
1389
|
-
}), _sfc_main$6 = {}, _hoisted_1$21 = {
|
|
1390
|
-
fill: "none",
|
|
1391
|
-
height: "100%",
|
|
1392
|
-
viewBox: "0 0 756 560",
|
|
1393
|
-
width: "100%",
|
|
1394
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
1395
|
-
};
|
|
1396
|
-
function _sfc_render$6(c, I) {
|
|
1397
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$21, [...I[0] ||= [createStaticVNode("<mask id=\"mask0_2103_18170\" height=\"768\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha;\" width=\"768\" x=\"-6\" y=\"-208\"><rect fill=\"url(#paint0_radial_2103_18170)\" height=\"768\" transform=\"translate(-6 -208)\" width=\"768\"></rect></mask><g mask=\"url(#mask0_2103_18170)\"><g clip-path=\"url(#clip0_2103_18170)\"><g clip-path=\"url(#clip1_2103_18170)\"><line stroke=\"currentColor\" x1=\"42.5\" x2=\"42.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"90.5\" x2=\"90.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"138.5\" x2=\"138.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"186.5\" x2=\"186.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"234.5\" x2=\"234.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"282.5\" x2=\"282.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"330.5\" x2=\"330.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"378.5\" x2=\"378.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"426.5\" x2=\"426.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"474.5\" x2=\"474.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"522.5\" x2=\"522.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"570.5\" x2=\"570.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"618.5\" x2=\"618.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"666.5\" x2=\"666.5\" y1=\"-208\" y2=\"560\"></line><line stroke=\"currentColor\" x1=\"714.5\" x2=\"714.5\" y1=\"-208\" y2=\"560\"></line></g><rect height=\"767\" stroke=\"currentColor\" width=\"767\" x=\"-5.5\" y=\"-207.5\"></rect><g clip-path=\"url(#clip2_2103_18170)\"><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"31.5\" y2=\"31.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"79.5\" y2=\"79.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"127.5\" y2=\"127.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"175.5\" y2=\"175.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"223.5\" y2=\"223.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"271.5\" y2=\"271.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"319.5\" y2=\"319.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"367.5\" y2=\"367.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"415.5\" y2=\"415.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"463.5\" y2=\"463.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"511.5\" y2=\"511.5\"></line><line stroke=\"currentColor\" x1=\"-6\" x2=\"762\" y1=\"559.5\" y2=\"559.5\"></line></g><rect height=\"767\" stroke=\"currentColor\" width=\"767\" x=\"-5.5\" y=\"-207.5\"></rect></g></g><defs><radialGradient id=\"paint0_radial_2103_18170\" cx=\"0\" cy=\"0\" gradientTransform=\"translate(384 384) rotate(90) scale(384 384)\" gradientUnits=\"userSpaceOnUse\" r=\"1\"><stop></stop><stop offset=\"1\" stop-opacity=\"0\"></stop></radialGradient><clipPath id=\"clip0_2103_18170\"><rect fill=\"white\" height=\"768\" transform=\"translate(-6 -208)\" width=\"768\"></rect></clipPath><clipPath id=\"clip1_2103_18170\"><rect fill=\"white\" height=\"768\" width=\"768\" x=\"-6\" y=\"-208\"></rect></clipPath><clipPath id=\"clip2_2103_18170\"><rect fill=\"white\" height=\"768\" width=\"768\" x=\"-6\" y=\"-208\"></rect></clipPath></defs>", 3)]]);
|
|
1398
|
-
}
|
|
1399
|
-
var GridDecorativeBackgroundPattern_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$6, [["render", _sfc_render$6]]), _hoisted_1$20 = { class: "relative flex h-full flex-col items-center justify-center text-center" }, _hoisted_2$11 = { class: "gap-lg relative z-1 flex flex-col items-center" }, _hoisted_3$6 = { class: "bg-brand-200 p-md flex size-12 items-center justify-center rounded-full border-3 border-solid border-white shadow-md" }, _hoisted_4$4 = { class: "gap-sm flex flex-col" }, _hoisted_5$4 = { class: "text-md font-semibold" }, _hoisted_6$1 = { class: "text-tertiary text-sm" }, _hoisted_7$1 = { class: "absolute right-0 left-0 scale-140 opacity-10" }, AppEmptyState_default = /* @__PURE__ */ defineComponent({
|
|
1400
|
-
__name: "AppEmptyState",
|
|
1401
|
-
props: {
|
|
1402
|
-
title: {},
|
|
1403
|
-
description: {},
|
|
1404
|
-
icon: {}
|
|
1405
|
-
},
|
|
1406
|
-
setup(c) {
|
|
1407
|
-
let I = c;
|
|
1408
|
-
return (c, L) => (openBlock(), createElementBlock("div", _hoisted_1$20, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$6, [createVNode(unref(VcIcon), {
|
|
1409
|
-
icon: I.icon,
|
|
1410
|
-
class: "text-brand-600 size-full"
|
|
1411
|
-
}, null, 8, ["icon"])]), createElementVNode("div", _hoisted_4$4, [createElementVNode("h3", _hoisted_5$4, toDisplayString(I.title), 1), createElementVNode("p", _hoisted_6$1, toDisplayString(I.description), 1)])]), createElementVNode("div", _hoisted_7$1, [createVNode(GridDecorativeBackgroundPattern_default)])]));
|
|
1412
|
-
}
|
|
1413
|
-
}), AppInfiniteScroll_default = /* @__PURE__ */ defineComponent({
|
|
1414
|
-
__name: "AppInfiniteScroll",
|
|
1415
|
-
props: {
|
|
1416
|
-
distance: { default: 250 },
|
|
1417
|
-
onNext: {}
|
|
1418
|
-
},
|
|
1419
|
-
setup(c) {
|
|
1420
|
-
let I = c, L = ref(null);
|
|
1421
|
-
return useInfiniteScroll(L, async () => {
|
|
1422
|
-
await I.onNext();
|
|
1423
|
-
}, { distance: I.distance }), (c, I) => (openBlock(), createElementBlock("div", {
|
|
1424
|
-
ref_key: "infiniteScrollElementRef",
|
|
1425
|
-
ref: L,
|
|
1426
|
-
class: "thin-scroll overflow-auto"
|
|
1427
|
-
}, [renderSlot(c.$slots, "default")], 512));
|
|
1428
|
-
}
|
|
1429
|
-
}), NoteIndexTransformer = class {
|
|
1430
|
-
static fromDto(c) {
|
|
1431
|
-
return {
|
|
1432
|
-
uuid: c.uuid,
|
|
1433
|
-
lastUpdatedByUserUuid: c.lastUpdatedByUserUuid,
|
|
1434
|
-
updatedAt: ZonedDateTimeTransformer.fromDto(c.updatedAt),
|
|
1435
|
-
content: c.content,
|
|
1436
|
-
lastUpdatedByUser: c.lastUpdatedByUser
|
|
1437
|
-
};
|
|
1438
|
-
}
|
|
1439
|
-
}, NoteCreateTransformer = class {
|
|
1440
|
-
static toDto(c, I, L, R) {
|
|
1441
|
-
return {
|
|
1442
|
-
businessUuid: I ?? null,
|
|
1443
|
-
dealUuid: R ?? null,
|
|
1444
|
-
individualUuid: L ?? null,
|
|
1445
|
-
content: c.note ?? ""
|
|
1446
|
-
};
|
|
1447
|
-
}
|
|
1448
|
-
}, NoteService = class {
|
|
1449
|
-
static async create(c, I) {
|
|
1450
|
-
await createNoteV1({ body: NoteCreateTransformer.toDto(c, I.businessUuid, I.individualUuid, I.dealUuid) });
|
|
1451
|
-
}
|
|
1452
|
-
static async delete(c) {
|
|
1453
|
-
await deleteNoteV1({ path: { uuid: c } });
|
|
1454
|
-
}
|
|
1455
|
-
static async getBusinessNotes(c, I) {
|
|
1456
|
-
let L = await viewBusinessNotesIndexV1({
|
|
1457
|
-
query: c,
|
|
1458
|
-
path: { businessUuid: I }
|
|
1459
|
-
});
|
|
1460
|
-
return {
|
|
1461
|
-
data: L.data.items.map(NoteIndexTransformer.fromDto),
|
|
1462
|
-
meta: { next: L.data.meta.next }
|
|
1463
|
-
};
|
|
1464
|
-
}
|
|
1465
|
-
static async getDealNotes(c, I) {
|
|
1466
|
-
let L = await viewDealNotesIndexV1({
|
|
1467
|
-
query: c,
|
|
1468
|
-
path: { dealUuid: I }
|
|
1469
|
-
});
|
|
1470
|
-
return {
|
|
1471
|
-
data: L.data.items.map(NoteIndexTransformer.fromDto),
|
|
1472
|
-
meta: { next: L.data.meta.next }
|
|
1473
|
-
};
|
|
1474
|
-
}
|
|
1475
|
-
static async getIndividualNotes(c, I) {
|
|
1476
|
-
let L = await viewIndividualNotesIndexV1({
|
|
1477
|
-
query: c,
|
|
1478
|
-
path: { individualUuid: I }
|
|
1479
|
-
});
|
|
1480
|
-
return {
|
|
1481
|
-
data: L.data.items.map(NoteIndexTransformer.fromDto),
|
|
1482
|
-
meta: { next: L.data.meta.next }
|
|
1483
|
-
};
|
|
1484
|
-
}
|
|
1485
|
-
static async update(c, I) {
|
|
1486
|
-
await updateNoteV1({
|
|
1487
|
-
body: { content: I },
|
|
1488
|
-
path: { uuid: c }
|
|
1489
|
-
});
|
|
1490
|
-
}
|
|
1491
|
-
};
|
|
1492
|
-
function useNoteDeleteMutation() {
|
|
1493
|
-
return ze({
|
|
1494
|
-
queryFn: async ({ params: c }) => await NoteService.delete(c.noteUuid),
|
|
1495
|
-
queryKeysToInvalidate: {
|
|
1496
|
-
noteBusinessIndex: {},
|
|
1497
|
-
noteDealIndex: {},
|
|
1498
|
-
noteIndividualIndex: {}
|
|
1499
|
-
}
|
|
1500
|
-
});
|
|
1501
|
-
}
|
|
1502
|
-
var DEFAULT_LIMIT$1 = 20;
|
|
1503
|
-
function useKeysetInfiniteQuery(c) {
|
|
1504
|
-
function I() {
|
|
1505
|
-
let I = Object.entries(c.queryKey)[0];
|
|
1506
|
-
if (!I) throw Error("queryKey must have at least one entry");
|
|
1507
|
-
let [L, R] = I;
|
|
1508
|
-
return [L, R];
|
|
1509
|
-
}
|
|
1510
|
-
let L = useInfiniteQuery({
|
|
1511
|
-
staleTime: c.staleTime ?? void 0,
|
|
1512
|
-
getNextPageParam: (c) => c.meta.next ?? null,
|
|
1513
|
-
initialPageParam: void 0,
|
|
1514
|
-
placeholderData: (c) => c,
|
|
1515
|
-
queryFn: ({ pageParam: I }) => c.queryFn({
|
|
1516
|
-
key: I,
|
|
1517
|
-
limit: c.limit ?? DEFAULT_LIMIT$1
|
|
1518
|
-
}),
|
|
1519
|
-
queryKey: I()
|
|
1520
|
-
}), R = computed(() => {
|
|
1521
|
-
let c = L.data.value?.pages ?? [], I = c.flatMap((c) => c.data), R = c[0]?.meta ?? {
|
|
1522
|
-
next: null,
|
|
1523
|
-
total: I.length
|
|
1524
|
-
};
|
|
1525
|
-
return {
|
|
1526
|
-
data: I,
|
|
1527
|
-
meta: { next: L.hasNextPage.value ? R.next : null }
|
|
1528
|
-
};
|
|
1529
|
-
});
|
|
1530
|
-
function B() {
|
|
1531
|
-
if (!(!L.hasNextPage.value || L.isFetchingNextPage.value)) return L.fetchNextPage();
|
|
1532
|
-
}
|
|
1533
|
-
return {
|
|
1534
|
-
...L,
|
|
1535
|
-
data: R,
|
|
1536
|
-
fetchNextPage: B
|
|
1537
|
-
};
|
|
1538
|
-
}
|
|
1539
|
-
function createI18nKeyMap(c) {
|
|
1540
|
-
return new Map(Object.entries(c));
|
|
1541
|
-
}
|
|
1542
|
-
var ApiErrorUtil = class {
|
|
1543
|
-
static getMessage(c) {
|
|
1544
|
-
return c.errors[0]?.detail ?? null;
|
|
1545
|
-
}
|
|
1546
|
-
static isError(c) {
|
|
1547
|
-
return c?.errors !== void 0;
|
|
1548
|
-
}
|
|
1549
|
-
}, ApiErrorEnumUtil = class {
|
|
1550
|
-
static i18nKeys = createI18nKeyMap({
|
|
1551
|
-
board_column_not_found: "enum.api_error_code.board_column_not_found",
|
|
1552
|
-
board_columns_already_exist: "enum.api_error_code.board_columns_already_exist",
|
|
1553
|
-
business_billing_information_not_found: "enum.api_error_code.billing_information_not_found",
|
|
1554
|
-
business_circular_reference: "enum.api_error_code.business_circular_reference",
|
|
1555
|
-
business_contact_person_not_found: "enum.api_error_code.business_contact_person_not_found",
|
|
1556
|
-
business_not_found: "enum.api_error_code.business_not_found",
|
|
1557
|
-
business_vat_number_already_exists: "enum.api_error_code.business_vat_number_already_exists",
|
|
1558
|
-
client_not_found: "enum.api_error_code.client_not_found",
|
|
1559
|
-
coordinates_not_provided: "enum.api_error_code.coordinates_not_provided",
|
|
1560
|
-
customer_zone_email_verification_organization_mismatch: "enum.api_error_code.customer_zone_email_verification_organization_mismatch",
|
|
1561
|
-
customer_zone_email_verification_user_not_found: "enum.api_error_code.customer_zone_email_verification_user_not_found",
|
|
1562
|
-
customer_zone_individual_already_linked: "enum.api_error_code.customer_zone_individual_already_linked",
|
|
1563
|
-
customer_zone_individual_grant_not_found: "enum.api_error_code.customer_zone_individual_grant_not_found",
|
|
1564
|
-
customer_zone_individual_user_grant_not_found: "enum.api_error_code.customer_zone_individual_user_grant_not_found",
|
|
1565
|
-
customer_zone_invalid_email_verification_code: "enum.api_error_code.customer_zone_invalid_email_verification_code",
|
|
1566
|
-
customer_zone_tenant_domain_not_found: "enum.api_error_code.customer_zone_tenant_domain_not_found",
|
|
1567
|
-
deal_column_transition_not_allowed: "enum.api_error_code.deal_column_transition_not_allowed",
|
|
1568
|
-
deal_contact_person_not_found: "enum.api_error_code.deal_contact_person_not_found",
|
|
1569
|
-
deal_creation_not_allowed: "enum.api_error_code.deal_creation_not_allowed",
|
|
1570
|
-
deal_not_found: "enum.api_error_code.deal_not_found",
|
|
1571
|
-
file_not_found: "enum.api_error_code.file_not_found",
|
|
1572
|
-
individual_billing_information_not_found: "enum.api_error_code.billing_information_not_found",
|
|
1573
|
-
individual_contact_person_not_found: "enum.api_error_code.individual_contact_person_not_found",
|
|
1574
|
-
individual_not_found: "enum.api_error_code.individual_not_found",
|
|
1575
|
-
internal_server_error: "enum.api_error_code.internal_server_error",
|
|
1576
|
-
invalid_billing_information: "enum.api_error_code.invalid_billing_information",
|
|
1577
|
-
invalid_vat_number: "enum.api_error_code.invalid_vat_number",
|
|
1578
|
-
job_not_found: "enum.api_error_code.job_not_found",
|
|
1579
|
-
location_not_found: "enum.api_error_code.location_not_found",
|
|
1580
|
-
mail_template_key_already_in_use: "enum.api_error_code.mail_template_key_already_in_use",
|
|
1581
|
-
mail_template_key_not_found: "enum.api_error_code.mail_template_key_not_found",
|
|
1582
|
-
mail_template_locale_language_already_provided: "enum.api_error_code.mail_template_locale_language_already_provided",
|
|
1583
|
-
mail_template_not_found: "enum.api_error_code.mail_template_not_found",
|
|
1584
|
-
migration_already_performed: "enum.api_error_code.migration_already_performed",
|
|
1585
|
-
no_board_columns: "enum.api_error_code.no_board_columns",
|
|
1586
|
-
note_must_have_entity: "enum.api_error_code.note_must_have_entity",
|
|
1587
|
-
primary_contact_of_business_not_unlinkable: "enum.api_error_code.primary_contact_of_business_not_unlinkable",
|
|
1588
|
-
primary_contact_of_deal_not_unlinkable: "enum.api_error_code.primary_contact_of_deal_not_unlinkable",
|
|
1589
|
-
role_not_found: "enum.api_error_code.role_not_found",
|
|
1590
|
-
tenant_not_found: "enum.api_error_code.tenant_not_found",
|
|
1591
|
-
user_connected_to_other_tenant: "enum.api_error_code.user_connected_to_other_tenant",
|
|
1592
|
-
user_not_found: "enum.api_error_code.user_not_found",
|
|
1593
|
-
user_notification_not_found: "enum.api_error_code.user_notification_not_found",
|
|
1594
|
-
vies_service_unavailable: "enum.api_error_code.vies_service_unavailable"
|
|
1595
|
-
});
|
|
1596
|
-
static getI18nKey(c) {
|
|
1597
|
-
return this.i18nKeys.get(c);
|
|
1598
|
-
}
|
|
1599
|
-
static getI18nKeyForError(c) {
|
|
1600
|
-
if (!ApiErrorUtil.isError(c)) return null;
|
|
1601
|
-
let I = c?.errors[0]?.code ?? null;
|
|
1602
|
-
return I === null ? null : this.i18nKeys.get(I) ?? null;
|
|
1603
|
-
}
|
|
1604
|
-
}, LoggerUtil = class {
|
|
1605
|
-
static debug(c) {
|
|
1606
|
-
console.debug(c);
|
|
1607
|
-
}
|
|
1608
|
-
static error(c) {
|
|
1609
|
-
console.error(c);
|
|
1610
|
-
}
|
|
1611
|
-
static info(c) {
|
|
1612
|
-
console.info(c);
|
|
1613
|
-
}
|
|
1614
|
-
static warn(c) {
|
|
1615
|
-
console.warn(c);
|
|
1616
|
-
}
|
|
1617
|
-
};
|
|
1618
|
-
function useApiErrorToast() {
|
|
1619
|
-
let c = useI18n(), I = useToast();
|
|
1620
|
-
function L(L) {
|
|
1621
|
-
if (LoggerUtil.error(L), ApiErrorUtil.isError(L)) {
|
|
1622
|
-
let R = ApiErrorEnumUtil.getI18nKeyForError(L);
|
|
1623
|
-
I.error({
|
|
1624
|
-
title: c.t("error.default_error.title"),
|
|
1625
|
-
description: R ?? c.t("error.default_error.description")
|
|
1626
|
-
});
|
|
1627
|
-
return;
|
|
1628
|
-
}
|
|
1629
|
-
throw L;
|
|
1630
|
-
}
|
|
1631
|
-
return { show: L };
|
|
1632
|
-
}
|
|
1633
|
-
var isLoading = ref(!1);
|
|
1634
|
-
function usePageLoader() {
|
|
1635
|
-
return {
|
|
1636
|
-
isLoading: computed(() => isLoading.value),
|
|
1637
|
-
setIsLoading
|
|
1638
|
-
};
|
|
1639
|
-
}
|
|
1640
|
-
function setIsLoading(c) {
|
|
1641
|
-
isLoading.value = c;
|
|
1642
|
-
}
|
|
1643
|
-
var AppDialogActionCancel_default = /* @__PURE__ */ defineComponent({
|
|
1644
|
-
__name: "AppDialogActionCancel",
|
|
1645
|
-
props: { isDisabled: {
|
|
1646
|
-
type: Boolean,
|
|
1647
|
-
default: !1
|
|
1648
|
-
} },
|
|
1649
|
-
setup(I) {
|
|
1650
|
-
let L = I, R = useI18n();
|
|
1651
|
-
return (I, B) => (openBlock(), createBlock(unref(VcDialogCloseButton), null, {
|
|
1652
|
-
default: withCtx(() => [createVNode(unref(VcButton), {
|
|
1653
|
-
"is-disabled": L.isDisabled,
|
|
1654
|
-
variant: "tertiary",
|
|
1655
|
-
size: "lg",
|
|
1656
|
-
class: "w-full"
|
|
1657
|
-
}, {
|
|
1658
|
-
default: withCtx(() => [createVNode(AppGroup_default, null, {
|
|
1659
|
-
default: withCtx(() => [createTextVNode(toDisplayString(unref(R).t("shared.cancel")) + " ", 1), createVNode(unref(VcKeyboardKey), {
|
|
1660
|
-
"keyboard-key": "escape",
|
|
1661
|
-
class: "border-tertiary bg-secondary text-tertiary"
|
|
1662
|
-
})]),
|
|
1663
|
-
_: 1
|
|
1664
|
-
})]),
|
|
1665
|
-
_: 1
|
|
1666
|
-
}, 8, ["is-disabled"])]),
|
|
1667
|
-
_: 1
|
|
1668
|
-
}));
|
|
1669
|
-
}
|
|
1670
|
-
}), LOCAL_STORAGE_KEY = "show-keyboard-shortcuts";
|
|
1671
|
-
function useKeyboardShortcutVisibilityValue() {
|
|
1672
|
-
return useLocalStorage(LOCAL_STORAGE_KEY, !0);
|
|
1673
|
-
}
|
|
1674
|
-
var AppDialogActionPrimary_default = /* @__PURE__ */ defineComponent({
|
|
1675
|
-
__name: "AppDialogActionPrimary",
|
|
1676
|
-
props: {
|
|
1677
|
-
isDestructive: {
|
|
1678
|
-
type: Boolean,
|
|
1679
|
-
default: !1
|
|
1680
|
-
},
|
|
1681
|
-
isLoading: {
|
|
1682
|
-
type: Boolean,
|
|
1683
|
-
default: !1
|
|
1684
|
-
},
|
|
1685
|
-
label: {}
|
|
1686
|
-
},
|
|
1687
|
-
emits: ["confirm"],
|
|
1688
|
-
setup(I, { emit: L }) {
|
|
1689
|
-
let R = I, B = L, V = useKeyboardShortcutVisibilityValue();
|
|
1690
|
-
function H() {
|
|
1691
|
-
B("confirm");
|
|
1692
|
-
}
|
|
1693
|
-
let U = ref(null), W = computed(() => U.value instanceof HTMLButtonElement);
|
|
1694
|
-
return onMounted(() => {
|
|
1695
|
-
typeof document < "u" && (U.value = document.activeElement, document.addEventListener("focusin", (c) => {
|
|
1696
|
-
U.value = c.target;
|
|
1697
|
-
}));
|
|
1698
|
-
}), (I, L) => (openBlock(), createBlock(unref(VcKeyboardShortcutProvider), {
|
|
1699
|
-
"keyboard-keys": ["enter"],
|
|
1700
|
-
"is-disabled": !W.value,
|
|
1701
|
-
class: "w-full"
|
|
1702
|
-
}, {
|
|
1703
|
-
default: withCtx(() => [createVNode(unref(VcButton), {
|
|
1704
|
-
"is-loading": R.isLoading,
|
|
1705
|
-
variant: R.isDestructive ? "destructive-primary" : "primary",
|
|
1706
|
-
class: "group w-full",
|
|
1707
|
-
size: "lg",
|
|
1708
|
-
onClick: H
|
|
1709
|
-
}, {
|
|
1710
|
-
default: withCtx(() => [createVNode(AppGroup_default, null, {
|
|
1711
|
-
default: withCtx(() => [createTextVNode(toDisplayString(R.label) + " ", 1), unref(V) ? (openBlock(), createBlock(unref(VcKeyboardKey), {
|
|
1712
|
-
key: 0,
|
|
1713
|
-
"class-config": { key: "text-primary-on-brand border-white/10 bg-white/10 duration-200" },
|
|
1714
|
-
"keyboard-key": "enter"
|
|
1715
|
-
})) : createCommentVNode("", !0)]),
|
|
1716
|
-
_: 1
|
|
1717
|
-
})]),
|
|
1718
|
-
_: 1
|
|
1719
|
-
}, 8, ["is-loading", "variant"])]),
|
|
1720
|
-
_: 1
|
|
1721
|
-
}, 8, ["is-disabled"]));
|
|
1722
|
-
}
|
|
1723
|
-
}), _sfc_main$5 = {}, _hoisted_1$19 = { class: "gap-sm flex items-center justify-end" };
|
|
1724
|
-
function _sfc_render$5(c, I) {
|
|
1725
|
-
return openBlock(), createElementBlock("div", _hoisted_1$19, [renderSlot(c.$slots, "default")]);
|
|
1726
|
-
}
|
|
1727
|
-
var AppDialogActions_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$5, [["render", _sfc_render$5]]), _sfc_main$4 = {}, _hoisted_1$18 = { class: "p-xl" };
|
|
1728
|
-
function _sfc_render$4(c, I) {
|
|
1729
|
-
return openBlock(), createElementBlock("div", _hoisted_1$18, [renderSlot(c.$slots, "default")]);
|
|
1730
|
-
}
|
|
1731
|
-
var AppDialogContainer_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$4, [["render", _sfc_render$4]]), _hoisted_1$17 = { class: "text-primary text-center text-xl font-semibold" }, _hoisted_2$10 = { class: "text-primary text-center text-sm" }, AppConfirmDialog_default = /* @__PURE__ */ defineComponent({
|
|
1732
|
-
__name: "AppConfirmDialog",
|
|
1733
|
-
props: {
|
|
1734
|
-
title: {},
|
|
1735
|
-
isDestructive: {
|
|
1736
|
-
type: Boolean,
|
|
1737
|
-
default: !1
|
|
1738
|
-
},
|
|
1739
|
-
isLoading: {
|
|
1740
|
-
type: Boolean,
|
|
1741
|
-
default: !1
|
|
1742
|
-
},
|
|
1743
|
-
confirmText: {},
|
|
1744
|
-
description: {}
|
|
1745
|
-
},
|
|
1746
|
-
emits: ["closed", "confirm"],
|
|
1747
|
-
setup(c, { emit: I }) {
|
|
1748
|
-
let L = c, R = I;
|
|
1749
|
-
function B() {
|
|
1750
|
-
R("confirm");
|
|
1751
|
-
}
|
|
1752
|
-
function V() {
|
|
1753
|
-
R("closed");
|
|
1754
|
-
}
|
|
1755
|
-
return (c, I) => (openBlock(), createBlock(unref(VcDialog), {
|
|
1756
|
-
"class-config": { content: "w-full max-w-120" },
|
|
1757
|
-
onClose: V
|
|
1758
|
-
}, {
|
|
1759
|
-
default: withCtx(() => [createVNode(AppDialogContainer_default, null, {
|
|
1760
|
-
default: withCtx(() => [createVNode(unref(VcDialogTitle), null, {
|
|
1761
|
-
default: withCtx(() => [createElementVNode("h1", _hoisted_1$17, toDisplayString(L.title), 1)]),
|
|
1762
|
-
_: 1
|
|
1763
|
-
}), createVNode(unref(VcDialogDescription), null, {
|
|
1764
|
-
default: withCtx(() => [createElementVNode("p", _hoisted_2$10, toDisplayString(L.description), 1)]),
|
|
1765
|
-
_: 1
|
|
1766
|
-
})]),
|
|
1767
|
-
_: 1
|
|
1768
|
-
}), createVNode(AppDialogContainer_default, null, {
|
|
1769
|
-
default: withCtx(() => [createVNode(AppDialogActions_default, null, {
|
|
1770
|
-
default: withCtx(() => [createVNode(AppDialogActionCancel_default, { "is-disabled": L.isLoading }, null, 8, ["is-disabled"]), createVNode(AppDialogActionPrimary_default, {
|
|
1771
|
-
label: L.confirmText,
|
|
1772
|
-
"is-destructive": L.isDestructive,
|
|
1773
|
-
"is-loading": L.isLoading,
|
|
1774
|
-
onConfirm: B
|
|
1775
|
-
}, null, 8, [
|
|
1776
|
-
"label",
|
|
1777
|
-
"is-destructive",
|
|
1778
|
-
"is-loading"
|
|
1779
|
-
])]),
|
|
1780
|
-
_: 1
|
|
1781
|
-
})]),
|
|
1782
|
-
_: 1
|
|
1783
|
-
})]),
|
|
1784
|
-
_: 1
|
|
1785
|
-
}));
|
|
1786
|
-
}
|
|
1787
|
-
}), messages = {
|
|
1788
|
-
[Locale.EN_US]: en_US_default,
|
|
1789
|
-
[Locale.NL_BE]: nl_BE_default
|
|
1790
|
-
}, defaultLocale = Locale.NL_BE;
|
|
1791
|
-
const i18nPlugin = createI18n({
|
|
1792
|
-
fallbackLocale: defaultLocale,
|
|
1793
|
-
legacy: !1,
|
|
1794
|
-
locale: (typeof window < "u" ? localStorage.getItem("locale") : null) ?? defaultLocale,
|
|
1795
|
-
messages
|
|
1796
|
-
});
|
|
1797
|
-
var pendingPromise = null;
|
|
1798
|
-
function useUnsavedChanges(c) {
|
|
1799
|
-
let I = useDialog(AppConfirmDialog_default);
|
|
1800
|
-
function L() {
|
|
1801
|
-
let c = i18nPlugin.global;
|
|
1802
|
-
return pendingPromise = new Promise((L, R) => {
|
|
1803
|
-
I.open({
|
|
1804
|
-
title: c.t("component.unsaved_changes_dialog.title"),
|
|
1805
|
-
isDestructive: !0,
|
|
1806
|
-
confirmText: c.t("component.unsaved_changes_dialog.confirm"),
|
|
1807
|
-
description: c.t("component.unsaved_changes_dialog.description"),
|
|
1808
|
-
onClosed: () => {
|
|
1809
|
-
R(/* @__PURE__ */ Error("Action cancelled"));
|
|
1810
|
-
},
|
|
1811
|
-
onConfirm: () => {
|
|
1812
|
-
I.close(), L();
|
|
1813
|
-
}
|
|
1814
|
-
});
|
|
1815
|
-
}), pendingPromise;
|
|
1816
|
-
}
|
|
1817
|
-
return onBeforeRouteLeave(async (I, R) => {
|
|
1818
|
-
if (!c.value) return !0;
|
|
1819
|
-
if (pendingPromise === null) pendingPromise = L();
|
|
1820
|
-
else return !1;
|
|
1821
|
-
try {
|
|
1822
|
-
await pendingPromise, pendingPromise = null;
|
|
1823
|
-
} catch {
|
|
1824
|
-
return pendingPromise = null, !1;
|
|
1825
|
-
}
|
|
1826
|
-
}), onUnmounted(() => {
|
|
1827
|
-
typeof window < "u" && (window.onbeforeunload = null);
|
|
1828
|
-
}), onMounted(() => {
|
|
1829
|
-
typeof window < "u" && (window.onbeforeunload = () => c.value ? i18nPlugin.global.t("component.unsaved_changes_dialog.description") : null);
|
|
1830
|
-
}), { handleUnsavedClose: L };
|
|
1831
|
-
}
|
|
1832
|
-
var _hoisted_1$16 = ["id"], AppForm_default = /* @__PURE__ */ defineComponent({
|
|
1833
|
-
__name: "AppForm",
|
|
1834
|
-
props: {
|
|
1835
|
-
canExitWhenDirty: {
|
|
1836
|
-
type: Boolean,
|
|
1837
|
-
default: !1
|
|
1838
|
-
},
|
|
1839
|
-
form: {}
|
|
1840
|
-
},
|
|
1841
|
-
setup(c) {
|
|
1842
|
-
let I = c, L = useId(), R = usePageLoader();
|
|
1843
|
-
return I.canExitWhenDirty || useUnsavedChanges(computed(() => I.form.isDirty.value && !I.form.isSubmitting.value)), watch(() => I.form.isSubmitting, (c) => {
|
|
1844
|
-
R.setIsLoading(c.value);
|
|
1845
|
-
}), onUnmounted(() => {
|
|
1846
|
-
R.setIsLoading(!1);
|
|
1847
|
-
}), (c, R) => (openBlock(), createElementBlock("form", {
|
|
1848
|
-
id: unref(L),
|
|
1849
|
-
class: "@container/form-layout flex size-full flex-1 flex-col",
|
|
1850
|
-
novalidate: "",
|
|
1851
|
-
onSubmit: R[0] ||= withModifiers((...c) => I.form.submit && I.form.submit(...c), ["prevent"])
|
|
1852
|
-
}, [renderSlot(c.$slots, "default", { formId: unref(L) })], 40, _hoisted_1$16));
|
|
1853
|
-
}
|
|
1854
|
-
});
|
|
1855
|
-
const noteFormSchema = z.object({ note: z.string().trim().min(1) });
|
|
1856
|
-
function toFormField(c) {
|
|
1857
|
-
return {
|
|
1858
|
-
isTouched: c.isTouched.value,
|
|
1859
|
-
errorMessage: c.errors?.value?.[0]?.message ?? null,
|
|
1860
|
-
errors: c.errors?.value.map((c) => c.message) ?? [],
|
|
1861
|
-
modelValue: c.modelValue.value,
|
|
1862
|
-
onBlur: c.onBlur,
|
|
1863
|
-
"onUpdate:modelValue": c["onUpdate:modelValue"]
|
|
1864
|
-
};
|
|
1865
|
-
}
|
|
1866
|
-
var _hoisted_1$15 = { class: "p-md flex justify-end" }, NoteForm_default = /* @__PURE__ */ defineComponent({
|
|
1867
|
-
__name: "NoteForm",
|
|
1868
|
-
props: {
|
|
1869
|
-
content: {},
|
|
1870
|
-
onSubmit: { type: Function }
|
|
1871
|
-
},
|
|
1872
|
-
setup(c) {
|
|
1873
|
-
let I = c, L = useI18n(), R = useForm({
|
|
1874
|
-
initialState: { note: I.content ?? null },
|
|
1875
|
-
schema: noteFormSchema,
|
|
1876
|
-
onSubmit: async (c) => {
|
|
1877
|
-
await I.onSubmit(c), R.reset();
|
|
1878
|
-
}
|
|
1879
|
-
}), B = R.register("note"), V = computed(() => B.modelValue.value === null || B.modelValue.value.trim().length === 0);
|
|
1880
|
-
async function H(c) {
|
|
1881
|
-
!R.isValid.value || R.isSubmitting.value || c.key === "Enter" && !c.shiftKey && (c.preventDefault(), await R.submit(), B.setValue(null));
|
|
1882
|
-
}
|
|
1883
|
-
return (c, I) => (openBlock(), createElementBlock("div", null, [createVNode(AppForm_default, {
|
|
1884
|
-
"can-exit-when-dirty": !0,
|
|
1885
|
-
form: unref(R),
|
|
1886
|
-
class: "w-full"
|
|
1887
|
-
}, {
|
|
1888
|
-
default: withCtx(() => [createVNode(unref(VcTextarea), mergeProps(unref(toFormField)(unref(B)), {
|
|
1889
|
-
errors: [],
|
|
1890
|
-
"error-message": null,
|
|
1891
|
-
placeholder: unref(L).t("wise_crm.note.create_placeholder"),
|
|
1892
|
-
"class-config": { input: "h-20" },
|
|
1893
|
-
onKeydown: H
|
|
1894
|
-
}), {
|
|
1895
|
-
bottom: withCtx(() => [createElementVNode("div", _hoisted_1$15, [createVNode(unref(VcIconButton), {
|
|
1896
|
-
"class-config": { root: "rounded-full shadow-none" },
|
|
1897
|
-
"is-loading": unref(R).isSubmitting.value,
|
|
1898
|
-
"is-disabled": V.value,
|
|
1899
|
-
label: unref(L).t("wise_crm.info_dialog.notes.submit_note_label"),
|
|
1900
|
-
type: "submit",
|
|
1901
|
-
size: "sm",
|
|
1902
|
-
icon: "send"
|
|
1903
|
-
}, null, 8, [
|
|
1904
|
-
"is-loading",
|
|
1905
|
-
"is-disabled",
|
|
1906
|
-
"label"
|
|
1907
|
-
])])]),
|
|
1908
|
-
_: 1
|
|
1909
|
-
}, 16, ["placeholder"])]),
|
|
1910
|
-
_: 1
|
|
1911
|
-
}, 8, ["form"])]));
|
|
1912
|
-
}
|
|
1913
|
-
}), _hoisted_1$14 = { class: "gap-md flex flex-col" }, _hoisted_2$9 = { class: "gap-sm border-primary p-lg relative flex flex-1 flex-col overflow-hidden rounded-lg border" }, _hoisted_3$5 = { class: "max-w-full text-sm text-wrap whitespace-pre-wrap" }, _hoisted_4$3 = { class: "gap-sm text-placeholder flex items-center text-xs" }, _hoisted_5$3 = { class: "absolute top-1 right-1" }, NoteList_default = /* @__PURE__ */ defineComponent({
|
|
1914
|
-
__name: "NoteList",
|
|
1915
|
-
props: { notes: {} },
|
|
1916
|
-
emits: [
|
|
1917
|
-
"delete",
|
|
1918
|
-
"next",
|
|
1919
|
-
"update"
|
|
1920
|
-
],
|
|
1921
|
-
setup(c, { emit: L }) {
|
|
1922
|
-
let B = c, V = L, H = useI18n();
|
|
1923
|
-
function U(c) {
|
|
1924
|
-
let L = c.updatedAt, B = L.toInstant(), V = Temporal.Now.instant(), U = DateUtil.diffInSeconds(B, V), W = DateUtil.diffInMinutes(B, V), G = DateUtil.diffInHours(B, V);
|
|
1925
|
-
return U < 60 ? H.t("wise_crm.note.just_now") : W < 60 ? H.t("wise_crm.note.minutes_ago", { count: Math.round(W) }) : G < 24 ? H.t("wise_crm.note.hours_ago", { count: Math.round(G) }) : useDateTimeFormat().toDateTime(L);
|
|
1926
|
-
}
|
|
1927
|
-
function W() {
|
|
1928
|
-
V("next");
|
|
1929
|
-
}
|
|
1930
|
-
function G(c) {
|
|
1931
|
-
V("delete", c);
|
|
1932
|
-
}
|
|
1933
|
-
function K(c) {
|
|
1934
|
-
V("update", c);
|
|
1935
|
-
}
|
|
1936
|
-
return (c, I) => (openBlock(), createBlock(AppInfiniteScroll_default, { "on-next": W }, {
|
|
1937
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_1$14, [(openBlock(!0), createElementBlock(Fragment, null, renderList(B.notes, (c) => (openBlock(), createElementBlock("div", {
|
|
1938
|
-
key: c.content,
|
|
1939
|
-
class: "gap-sm flex"
|
|
1940
|
-
}, [createElementVNode("div", _hoisted_2$9, [
|
|
1941
|
-
createElementVNode("p", _hoisted_3$5, toDisplayString(c.content), 1),
|
|
1942
|
-
createElementVNode("div", _hoisted_4$3, [
|
|
1943
|
-
createElementVNode("span", null, toDisplayString(U(c)), 1),
|
|
1944
|
-
I[0] ||= createElementVNode("div", { class: "size-1 rounded-full bg-gray-400" }, null, -1),
|
|
1945
|
-
createElementVNode("span", null, toDisplayString(c.lastUpdatedByUser), 1)
|
|
1946
|
-
]),
|
|
1947
|
-
createElementVNode("div", _hoisted_5$3, [createVNode(unref(VcDropdownMenu), {
|
|
1948
|
-
"class-config": { content: "min-w-fit p-sm" },
|
|
1949
|
-
"popover-align": "end"
|
|
1950
|
-
}, {
|
|
1951
|
-
trigger: withCtx(() => [createVNode(unref(VcIconButton), {
|
|
1952
|
-
label: unref(H).t("wise_crm.info_dialog.notes.action_button_label"),
|
|
1953
|
-
variant: "tertiary",
|
|
1954
|
-
size: "sm",
|
|
1955
|
-
icon: "verticalDots"
|
|
1956
|
-
}, null, 8, ["label"])]),
|
|
1957
|
-
content: withCtx(() => [createVNode(unref(VcDropdownMenuItem), {
|
|
1958
|
-
label: unref(H).t("wise_crm.info_dialog.notes.update_note"),
|
|
1959
|
-
icon: "editWithLine",
|
|
1960
|
-
onSelect: (I) => K(c)
|
|
1961
|
-
}, null, 8, ["label", "onSelect"]), createVNode(unref(VcDropdownMenuItem), {
|
|
1962
|
-
"is-destructive": !0,
|
|
1963
|
-
label: unref(H).t("wise_crm.shared.delete"),
|
|
1964
|
-
icon: "trash",
|
|
1965
|
-
onSelect: (I) => G(c.uuid)
|
|
1966
|
-
}, null, 8, ["label", "onSelect"])]),
|
|
1967
|
-
_: 2
|
|
1968
|
-
}, 1024)])
|
|
1969
|
-
])]))), 128))])]),
|
|
1970
|
-
_: 1
|
|
1971
|
-
}));
|
|
1972
|
-
}
|
|
1973
|
-
}), _hoisted_1$13 = { class: "gap-lg flex h-full flex-col justify-between" }, _hoisted_2$8 = {
|
|
1974
|
-
key: 0,
|
|
1975
|
-
class: "gap-md text-quaternary flex h-70 flex-col items-center justify-center"
|
|
1976
|
-
}, _hoisted_3$4 = { class: "text-xs" }, CrmDetailSidebarNotesView_default = /* @__PURE__ */ defineComponent({
|
|
1977
|
-
__name: "CrmDetailSidebarNotesView",
|
|
1978
|
-
props: {
|
|
1979
|
-
hasNextPage: { type: Boolean },
|
|
1980
|
-
isLoading: { type: Boolean },
|
|
1981
|
-
notes: {},
|
|
1982
|
-
onSubmit: { type: Function }
|
|
1983
|
-
},
|
|
1984
|
-
emits: [
|
|
1985
|
-
"delete",
|
|
1986
|
-
"next",
|
|
1987
|
-
"update"
|
|
1988
|
-
],
|
|
1989
|
-
setup(c, { emit: I }) {
|
|
1990
|
-
let L = c, R = I, B = useI18n(), V = useApiErrorToast();
|
|
1991
|
-
async function H(c) {
|
|
1992
|
-
try {
|
|
1993
|
-
await L.onSubmit(c);
|
|
1994
|
-
} catch (c) {
|
|
1995
|
-
V.show(c);
|
|
1996
|
-
}
|
|
1997
|
-
}
|
|
1998
|
-
function U() {
|
|
1999
|
-
R("next");
|
|
2000
|
-
}
|
|
2001
|
-
function W(c) {
|
|
2002
|
-
R("delete", c);
|
|
2003
|
-
}
|
|
2004
|
-
function G(c) {
|
|
2005
|
-
R("update", c);
|
|
2006
|
-
}
|
|
2007
|
-
return (c, I) => (openBlock(), createElementBlock("div", _hoisted_1$13, [L.isLoading ? (openBlock(), createElementBlock("div", _hoisted_2$8, [createVNode(unref(VcSpinner), { class: "size-4" }), createElementVNode("p", _hoisted_3$4, toDisplayString(unref(B).t("wise_crm.shared.loading")), 1)])) : L.notes.length === 0 ? (openBlock(), createBlock(AppEmptyState_default, {
|
|
2008
|
-
key: 1,
|
|
2009
|
-
title: unref(B).t("wise_crm.info_dialog.notes.empty_state.title"),
|
|
2010
|
-
description: unref(B).t("wise_crm.info_dialog.notes.empty_state.description"),
|
|
2011
|
-
icon: "file"
|
|
2012
|
-
}, null, 8, ["title", "description"])) : (openBlock(), createBlock(NoteList_default, {
|
|
2013
|
-
key: 2,
|
|
2014
|
-
notes: L.notes,
|
|
2015
|
-
onDelete: W,
|
|
2016
|
-
onUpdate: G,
|
|
2017
|
-
onNext: U
|
|
2018
|
-
}, null, 8, ["notes"])), createVNode(NoteForm_default, { "on-submit": H })]));
|
|
2019
|
-
}
|
|
2020
|
-
});
|
|
2021
|
-
function useNoteUpdateMutation() {
|
|
2022
|
-
return ze({
|
|
2023
|
-
queryFn: async ({ body: c, params: I }) => await NoteService.update(I.noteUuid, c.note),
|
|
2024
|
-
queryKeysToInvalidate: {
|
|
2025
|
-
noteBusinessIndex: {},
|
|
2026
|
-
noteIndividualIndex: {}
|
|
2027
|
-
}
|
|
2028
|
-
});
|
|
2029
|
-
}
|
|
2030
|
-
var _hoisted_1$12 = { class: "grid grid-cols-[auto_2rem]" }, _hoisted_2$7 = { class: "gap-xl flex items-center" }, _hoisted_3$3 = { class: "bg-brand-200 flex size-10 shrink-0 items-center justify-center rounded-full" }, _hoisted_4$2 = { class: "text-primary text-md font-semibold" }, _hoisted_5$2 = { class: "text-tertiary text-sm" }, AppDialogHeader_default = /* @__PURE__ */ defineComponent({
|
|
2031
|
-
__name: "AppDialogHeader",
|
|
2032
|
-
props: {
|
|
2033
|
-
title: {},
|
|
2034
|
-
description: {},
|
|
2035
|
-
icon: {}
|
|
2036
|
-
},
|
|
2037
|
-
setup(c) {
|
|
2038
|
-
let I = c;
|
|
2039
|
-
return (c, L) => (openBlock(), createElementBlock("header", _hoisted_1$12, [createElementVNode("div", _hoisted_2$7, [createElementVNode("div", _hoisted_3$3, [createVNode(unref(VcIcon), {
|
|
2040
|
-
icon: I.icon,
|
|
2041
|
-
class: "text-brand-600 size-5 shrink-0"
|
|
2042
|
-
}, null, 8, ["icon"])]), createElementVNode("div", null, [createVNode(unref(VcDialogTitle), null, {
|
|
2043
|
-
default: withCtx(() => [createElementVNode("h1", _hoisted_4$2, toDisplayString(I.title), 1)]),
|
|
2044
|
-
_: 1
|
|
2045
|
-
}), createVNode(unref(VcDialogDescription), null, {
|
|
2046
|
-
default: withCtx(() => [createElementVNode("p", _hoisted_5$2, toDisplayString(I.description), 1)]),
|
|
2047
|
-
_: 1
|
|
2048
|
-
})])]), renderSlot(c.$slots, "closse-button")]));
|
|
2049
|
-
}
|
|
2050
|
-
}), _hoisted_1$11 = { class: "px-4xl py-3xl overflow-y-auto" }, NoteUpdateDialog_default = /* @__PURE__ */ defineComponent({
|
|
2051
|
-
__name: "NoteUpdateDialog",
|
|
2052
|
-
props: {
|
|
2053
|
-
businessUuid: {},
|
|
2054
|
-
individualUuid: {},
|
|
2055
|
-
note: {}
|
|
2056
|
-
},
|
|
2057
|
-
emits: ["close"],
|
|
2058
|
-
setup(c, { emit: I }) {
|
|
2059
|
-
let L = c, R = I, B = useI18n(), V = useApiErrorToast(), H = useNoteUpdateMutation();
|
|
2060
|
-
async function U(c) {
|
|
2061
|
-
try {
|
|
2062
|
-
await H.execute({
|
|
2063
|
-
body: { note: c.note ?? "" },
|
|
2064
|
-
params: {
|
|
2065
|
-
businessUuid: L.businessUuid,
|
|
2066
|
-
individualUuid: L.individualUuid,
|
|
2067
|
-
noteUuid: L.note.uuid
|
|
2068
|
-
}
|
|
2069
|
-
}), W();
|
|
2070
|
-
} catch (c) {
|
|
2071
|
-
V.show(c);
|
|
2072
|
-
}
|
|
2073
|
-
}
|
|
2074
|
-
function W() {
|
|
2075
|
-
R("close");
|
|
2076
|
-
}
|
|
2077
|
-
return (c, I) => (openBlock(), createBlock(unref(VcDialog), {
|
|
2078
|
-
"class-config": { content: "w-120 p-xl" },
|
|
2079
|
-
onClose: W
|
|
2080
|
-
}, {
|
|
2081
|
-
default: withCtx(() => [createVNode(AppDialogHeader_default, {
|
|
2082
|
-
title: unref(B).t("wise_crm.note.update_dialog.title"),
|
|
2083
|
-
icon: "file"
|
|
2084
|
-
}, {
|
|
2085
|
-
"closse-button": withCtx(() => [createVNode(unref(VcDialogCloseButton))]),
|
|
2086
|
-
_: 1
|
|
2087
|
-
}, 8, ["title"]), createElementVNode("div", _hoisted_1$11, [createVNode(NoteForm_default, {
|
|
2088
|
-
content: L.note.content,
|
|
2089
|
-
"on-submit": U
|
|
2090
|
-
}, null, 8, ["content"])])]),
|
|
2091
|
-
_: 1
|
|
2092
|
-
}));
|
|
2093
|
-
}
|
|
2094
|
-
}), DEFAULT_LIMIT = 20;
|
|
2095
|
-
function useOffsetInfiniteQuery(c) {
|
|
2096
|
-
function I() {
|
|
2097
|
-
let I = Object.entries(c.queryKey)[0];
|
|
2098
|
-
if (!I) throw Error("queryKey must have at least one entry");
|
|
2099
|
-
let [L, R] = I;
|
|
2100
|
-
return [L, R];
|
|
2101
|
-
}
|
|
2102
|
-
let L = useInfiniteQuery({
|
|
2103
|
-
staleTime: c.staleTime ?? void 0,
|
|
2104
|
-
enabled: computed(() => c.isEnabled?.value ?? !0),
|
|
2105
|
-
getNextPageParam: (c) => {
|
|
2106
|
-
let I = c.meta.offset + c.meta.limit;
|
|
2107
|
-
return I >= c.meta.total ? null : I;
|
|
2108
|
-
},
|
|
2109
|
-
initialPageParam: 0,
|
|
2110
|
-
placeholderData: (c) => c,
|
|
2111
|
-
queryFn: ({ pageParam: I }) => c.queryFn({
|
|
2112
|
-
limit: c.limit ?? DEFAULT_LIMIT,
|
|
2113
|
-
offset: I ?? 0
|
|
2114
|
-
}),
|
|
2115
|
-
queryKey: I()
|
|
2116
|
-
}), R = computed(() => {
|
|
2117
|
-
let c = L.data.value?.pages.flatMap((c) => c.data) ?? [], I = L.data.value?.pages[0]?.meta ?? null;
|
|
2118
|
-
return {
|
|
2119
|
-
data: c,
|
|
2120
|
-
meta: {
|
|
2121
|
-
limit: I?.limit ?? 0,
|
|
2122
|
-
offset: I?.offset ?? 0,
|
|
2123
|
-
total: I?.total ?? c.length
|
|
2124
|
-
}
|
|
2125
|
-
};
|
|
2126
|
-
});
|
|
2127
|
-
function B() {
|
|
2128
|
-
if (!(!L.hasNextPage.value || L.isFetchingNextPage.value)) return L.fetchNextPage();
|
|
2129
|
-
}
|
|
2130
|
-
return {
|
|
2131
|
-
...L,
|
|
2132
|
-
data: R,
|
|
2133
|
-
fetchNextPage: B
|
|
2134
|
-
};
|
|
2135
|
-
}
|
|
2136
|
-
var _sfc_main$3 = {}, _hoisted_1$10 = { class: "text-primary/50 flex items-center" }, _hoisted_2$6 = { class: "mx-lg text-xs" };
|
|
2137
|
-
function _sfc_render$3(c, I) {
|
|
2138
|
-
return openBlock(), createElementBlock("div", _hoisted_1$10, [
|
|
2139
|
-
I[0] ||= createElementVNode("div", { class: "bg-quaternary h-px w-full flex-1" }, null, -1),
|
|
2140
|
-
createElementVNode("span", _hoisted_2$6, [renderSlot(c.$slots, "default")]),
|
|
2141
|
-
I[1] ||= createElementVNode("div", { class: "bg-quaternary h-px w-full flex-1" }, null, -1),
|
|
2142
|
-
I[2] ||= createElementVNode("div", null, null, -1)
|
|
2143
|
-
]);
|
|
2144
|
-
}
|
|
2145
|
-
var AppAndOrSeparator_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$3, [["render", _sfc_render$3]]), _sfc_main$2 = {}, _hoisted_1$9 = { class: "pt-xl gap-md flex w-full justify-end" };
|
|
2146
|
-
function _sfc_render$2(c, I) {
|
|
2147
|
-
return openBlock(), createElementBlock("div", _hoisted_1$9, [renderSlot(c.$slots, "default")]);
|
|
2148
|
-
}
|
|
2149
|
-
var AppSidebarFormFooter_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$2, [["render", _sfc_render$2]]), AppSidebarFormSubmitButton_default = /* @__PURE__ */ defineComponent({
|
|
2150
|
-
__name: "AppSidebarFormSubmitButton",
|
|
2151
|
-
props: {
|
|
2152
|
-
isLoading: { type: Boolean },
|
|
2153
|
-
label: {},
|
|
2154
|
-
type: { default: "submit" }
|
|
2155
|
-
},
|
|
2156
|
-
emits: ["submit"],
|
|
2157
|
-
setup(c, { emit: I }) {
|
|
2158
|
-
let L = c, R = I;
|
|
2159
|
-
function B() {
|
|
2160
|
-
R("submit");
|
|
2161
|
-
}
|
|
2162
|
-
return (c, I) => (openBlock(), createBlock(unref(VcButton), {
|
|
2163
|
-
"is-loading": L.isLoading,
|
|
2164
|
-
type: "submit",
|
|
2165
|
-
size: "lg",
|
|
2166
|
-
"icon-left": "check",
|
|
2167
|
-
onClick: B
|
|
2168
|
-
}, {
|
|
2169
|
-
default: withCtx(() => [createTextVNode(toDisplayString(L.label), 1)]),
|
|
2170
|
-
_: 1
|
|
2171
|
-
}, 8, ["is-loading"]));
|
|
2172
|
-
}
|
|
2173
|
-
});
|
|
2174
|
-
function useRouteQueryState(c) {
|
|
2175
|
-
let I = useRoute(), L = useRouter();
|
|
2176
|
-
function R(I) {
|
|
2177
|
-
if (I === null) return c.initialState;
|
|
2178
|
-
try {
|
|
2179
|
-
return c.serializer.parse(I);
|
|
2180
|
-
} catch {
|
|
2181
|
-
return c.initialState;
|
|
2182
|
-
}
|
|
2183
|
-
}
|
|
2184
|
-
let B = ref(c.initialState);
|
|
2185
|
-
return watch(() => I?.query?.[c.key] ?? null, (c) => {
|
|
2186
|
-
B.value = R(c ?? null);
|
|
2187
|
-
}, { immediate: !0 }), watch(B, (R) => {
|
|
2188
|
-
if (!I?.query) return;
|
|
2189
|
-
let B = {
|
|
2190
|
-
...I.query,
|
|
2191
|
-
[c.key]: c.serializer.serialize(R) || void 0
|
|
2192
|
-
};
|
|
2193
|
-
L.replace({ query: B });
|
|
2194
|
-
}, { deep: !0 }), B;
|
|
2195
|
-
}
|
|
2196
|
-
var DEFAULT_DEBOUNCE_MS = 50, DEFAULT_ROUTE_QUERY_KEY = "search";
|
|
2197
|
-
function useSearch(c) {
|
|
2198
|
-
let I = c?.persistInUrl === !1 ? !1 : c?.persistInUrl ?? DEFAULT_ROUTE_QUERY_KEY, L = I === !0 || typeof I == "string" ? useRouteQueryState({
|
|
2199
|
-
initialState: "",
|
|
2200
|
-
key: typeof I == "string" ? I : DEFAULT_ROUTE_QUERY_KEY,
|
|
2201
|
-
serializer: {
|
|
2202
|
-
parse: (c) => c ?? "",
|
|
2203
|
-
serialize: (c) => c
|
|
2204
|
-
}
|
|
2205
|
-
}) : ref(""), R = ref(L.value), B = ref(!1), V = null;
|
|
2206
|
-
function H() {
|
|
2207
|
-
L.value = "", R.value = "", B.value = !1, V && clearTimeout(V);
|
|
2208
|
-
}
|
|
2209
|
-
watch(L, (I) => {
|
|
2210
|
-
V && clearTimeout(V), B.value = !0, V = setTimeout(() => {
|
|
2211
|
-
R.value = I, B.value = !1;
|
|
2212
|
-
}, c?.debounceMs ?? DEFAULT_DEBOUNCE_MS);
|
|
2213
|
-
}, { immediate: !0 });
|
|
2214
|
-
function U(c) {
|
|
2215
|
-
L.value = c;
|
|
2216
|
-
}
|
|
2217
|
-
return {
|
|
2218
|
-
isDebouncing: B,
|
|
2219
|
-
clearSearch: H,
|
|
2220
|
-
debouncedSearch: R,
|
|
2221
|
-
search: L,
|
|
2222
|
-
updateSearch: U
|
|
2223
|
-
};
|
|
2224
|
-
}
|
|
2225
|
-
const entityColorMap = {
|
|
2226
|
-
[EntityColor.BLUE]: {
|
|
2227
|
-
25: "#F5F8FF",
|
|
2228
|
-
50: "#EFF4FF",
|
|
2229
|
-
100: "#D1E0FF",
|
|
2230
|
-
200: "#B2CCFF",
|
|
2231
|
-
300: "#84ADFF",
|
|
2232
|
-
400: "#528BFF",
|
|
2233
|
-
500: "#2970FF",
|
|
2234
|
-
600: "#155EEF",
|
|
2235
|
-
700: "#004EEB",
|
|
2236
|
-
800: "#0040C1",
|
|
2237
|
-
900: "#00359E",
|
|
2238
|
-
950: "#002266"
|
|
2239
|
-
},
|
|
2240
|
-
[EntityColor.BLUE_DARK]: {
|
|
2241
|
-
25: "#F5F8FF",
|
|
2242
|
-
50: "#EFF4FF",
|
|
2243
|
-
100: "#D1E9FF",
|
|
2244
|
-
200: "#B2DDFF",
|
|
2245
|
-
300: "#84CAFF",
|
|
2246
|
-
400: "#528BFF",
|
|
2247
|
-
500: "#2970FF",
|
|
2248
|
-
600: "#155EEF",
|
|
2249
|
-
700: "#004EEB",
|
|
2250
|
-
800: "#0040C1",
|
|
2251
|
-
900: "#00359E",
|
|
2252
|
-
950: "#002266"
|
|
2253
|
-
},
|
|
2254
|
-
[EntityColor.BLUE_LIGHT]: {
|
|
2255
|
-
25: "#F5FBFF",
|
|
2256
|
-
50: "#F0F9FF",
|
|
2257
|
-
100: "#E0F2FE",
|
|
2258
|
-
200: "#BAE6FD",
|
|
2259
|
-
300: "#7DD3FC",
|
|
2260
|
-
400: "#38BDF8",
|
|
2261
|
-
500: "#0EA5E9",
|
|
2262
|
-
600: "#0284C7",
|
|
2263
|
-
700: "#0369A1",
|
|
2264
|
-
800: "#075985",
|
|
2265
|
-
900: "#0C4A6E",
|
|
2266
|
-
950: "#082F49"
|
|
2267
|
-
},
|
|
2268
|
-
[EntityColor.CYAN]: {
|
|
2269
|
-
25: "#F5FEFF",
|
|
2270
|
-
50: "#ECFDFF",
|
|
2271
|
-
100: "#CFF9FE",
|
|
2272
|
-
200: "#A5F0FC",
|
|
2273
|
-
300: "#67E3F9",
|
|
2274
|
-
400: "#22CCEE",
|
|
2275
|
-
500: "#06AED4",
|
|
2276
|
-
600: "#088AB2",
|
|
2277
|
-
700: "#0E7090",
|
|
2278
|
-
800: "#155B75",
|
|
2279
|
-
900: "#164C63",
|
|
2280
|
-
950: "#0D203A"
|
|
2281
|
-
},
|
|
2282
|
-
[EntityColor.ERROR]: {
|
|
2283
|
-
25: "#FFFBFA",
|
|
2284
|
-
50: "#FEF3F2",
|
|
2285
|
-
100: "#FEE4E2",
|
|
2286
|
-
200: "#FECDCA",
|
|
2287
|
-
300: "#FDA29B",
|
|
2288
|
-
400: "#F97066",
|
|
2289
|
-
500: "#F04438",
|
|
2290
|
-
600: "#D92D20",
|
|
2291
|
-
700: "#B42318",
|
|
2292
|
-
800: "#912018",
|
|
2293
|
-
900: "#7A271A",
|
|
2294
|
-
950: "#55160C"
|
|
2295
|
-
},
|
|
2296
|
-
[EntityColor.FUCHSIA]: {
|
|
2297
|
-
25: "#FEFAFF",
|
|
2298
|
-
50: "#FDF4FF",
|
|
2299
|
-
100: "#FBE8FF",
|
|
2300
|
-
200: "#F6D0FE",
|
|
2301
|
-
300: "#EEAAFD",
|
|
2302
|
-
400: "#E478FA",
|
|
2303
|
-
500: "#D444F1",
|
|
2304
|
-
600: "#BA24D5",
|
|
2305
|
-
700: "#9F1AB1",
|
|
2306
|
-
800: "#821890",
|
|
2307
|
-
900: "#6F1877",
|
|
2308
|
-
950: "#47104F"
|
|
2309
|
-
},
|
|
2310
|
-
[EntityColor.GREEN]: {
|
|
2311
|
-
25: "#F3FFF9",
|
|
2312
|
-
50: "#E3FFCF2",
|
|
2313
|
-
100: "#C9F3DF",
|
|
2314
|
-
200: "#A4F0C4",
|
|
2315
|
-
300: "#73E2A3",
|
|
2316
|
-
400: "#3ECF9F",
|
|
2317
|
-
500: "#1EB364",
|
|
2318
|
-
600: "#099250",
|
|
2319
|
-
700: "#087443",
|
|
2320
|
-
800: "#095C37",
|
|
2321
|
-
900: "#084C2E",
|
|
2322
|
-
950: "#05231C"
|
|
2323
|
-
},
|
|
2324
|
-
[EntityColor.GREEN_LIGHT]: {
|
|
2325
|
-
25: "#F3FFF5",
|
|
2326
|
-
50: "#E3FFE7",
|
|
2327
|
-
100: "#C4FFCC",
|
|
2328
|
-
200: "#CDF4AB",
|
|
2329
|
-
300: "#A4EF57",
|
|
2330
|
-
400: "#85E13A",
|
|
2331
|
-
500: "#66C31C",
|
|
2332
|
-
600: "#4CA3DD",
|
|
2333
|
-
700: "#387C0F",
|
|
2334
|
-
800: "#326212",
|
|
2335
|
-
900: "#2E5314",
|
|
2336
|
-
950: "#1F320A"
|
|
2337
|
-
},
|
|
2338
|
-
[EntityColor.INDIGO]: {
|
|
2339
|
-
25: "#F5F8FF",
|
|
2340
|
-
50: "#EEF4FF",
|
|
2341
|
-
100: "#E0EAFF",
|
|
2342
|
-
200: "#C7D7FE",
|
|
2343
|
-
300: "#A4BCFD",
|
|
2344
|
-
400: "#8098F9",
|
|
2345
|
-
500: "#6172F3",
|
|
2346
|
-
600: "#444CE7",
|
|
2347
|
-
700: "#3538CD",
|
|
2348
|
-
800: "#2D31A6",
|
|
2349
|
-
900: "#2D3282",
|
|
2350
|
-
950: "#1F235B"
|
|
2351
|
-
},
|
|
2352
|
-
[EntityColor.MOSS]: {
|
|
2353
|
-
25: "#FAFDF7",
|
|
2354
|
-
50: "#F5FBEE",
|
|
2355
|
-
100: "#EBF4D7",
|
|
2356
|
-
200: "#CEE4B0",
|
|
2357
|
-
300: "#A3DC79",
|
|
2358
|
-
400: "#86CB3C",
|
|
2359
|
-
500: "#699F2A",
|
|
2360
|
-
600: "#4F7A21",
|
|
2361
|
-
700: "#3F621A",
|
|
2362
|
-
800: "#335015",
|
|
2363
|
-
900: "#2B4212",
|
|
2364
|
-
950: "#1A2808"
|
|
2365
|
-
},
|
|
2366
|
-
[EntityColor.ORANGE]: {
|
|
2367
|
-
25: "#FEFAF5",
|
|
2368
|
-
50: "#FEF6EE",
|
|
2369
|
-
100: "#FDEADD",
|
|
2370
|
-
200: "#F9DBAF",
|
|
2371
|
-
300: "#F7B27A",
|
|
2372
|
-
400: "#EF8744",
|
|
2373
|
-
500: "#EF6820",
|
|
2374
|
-
600: "#E04F16",
|
|
2375
|
-
700: "#B93815",
|
|
2376
|
-
800: "#932F19",
|
|
2377
|
-
900: "#772917",
|
|
2378
|
-
950: "#511C10"
|
|
2379
|
-
},
|
|
2380
|
-
[EntityColor.ORANGE_DARK]: {
|
|
2381
|
-
25: "#FFF9F5",
|
|
2382
|
-
50: "#FFF4ED",
|
|
2383
|
-
100: "#FFEED5",
|
|
2384
|
-
200: "#FFD6AE",
|
|
2385
|
-
300: "#FF9C66",
|
|
2386
|
-
400: "#FF692E",
|
|
2387
|
-
500: "#FF4405",
|
|
2388
|
-
600: "#E62E05",
|
|
2389
|
-
700: "#BC1B06",
|
|
2390
|
-
800: "#97180C",
|
|
2391
|
-
900: "#771A0D",
|
|
2392
|
-
950: "#57130A"
|
|
2393
|
-
},
|
|
2394
|
-
[EntityColor.PINK]: {
|
|
2395
|
-
25: "#FEF6F6",
|
|
2396
|
-
50: "#FDF2FA",
|
|
2397
|
-
100: "#FCE7F6",
|
|
2398
|
-
200: "#FCCEEE",
|
|
2399
|
-
300: "#FAA7E0",
|
|
2400
|
-
400: "#F670C7",
|
|
2401
|
-
500: "#E146BC",
|
|
2402
|
-
600: "#C01574",
|
|
2403
|
-
700: "#A11865",
|
|
2404
|
-
800: "#89165F",
|
|
2405
|
-
900: "#781A5C",
|
|
2406
|
-
950: "#4E0D3A"
|
|
2407
|
-
},
|
|
2408
|
-
[EntityColor.PURPLE]: {
|
|
2409
|
-
25: "#FAFAFF",
|
|
2410
|
-
50: "#F4F3FF",
|
|
2411
|
-
100: "#EBE9FE",
|
|
2412
|
-
200: "#D9D6FE",
|
|
2413
|
-
300: "#BDB4FE",
|
|
2414
|
-
400: "#9B8AFB",
|
|
2415
|
-
500: "#7A5AF8",
|
|
2416
|
-
600: "#6938EF",
|
|
2417
|
-
700: "#5925DC",
|
|
2418
|
-
800: "#4A1FB8",
|
|
2419
|
-
900: "#3E1C96",
|
|
2420
|
-
950: "#27115F"
|
|
2421
|
-
},
|
|
2422
|
-
[EntityColor.ROSE]: {
|
|
2423
|
-
25: "#FFF5F6",
|
|
2424
|
-
50: "#FFF1F3",
|
|
2425
|
-
100: "#FFE4E8",
|
|
2426
|
-
200: "#FECDDC",
|
|
2427
|
-
300: "#FEA3B4",
|
|
2428
|
-
400: "#FD6F8E",
|
|
2429
|
-
500: "#F53868",
|
|
2430
|
-
600: "#E31B54",
|
|
2431
|
-
700: "#C01048",
|
|
2432
|
-
800: "#A11043",
|
|
2433
|
-
900: "#881337",
|
|
2434
|
-
950: "#4C0519"
|
|
2435
|
-
},
|
|
2436
|
-
[EntityColor.SUCCESS]: {
|
|
2437
|
-
25: "#F6FEF9",
|
|
2438
|
-
50: "#ECFDF3",
|
|
2439
|
-
100: "#DCFAE6",
|
|
2440
|
-
200: "#ABEFC6",
|
|
2441
|
-
300: "#75E0A7",
|
|
2442
|
-
400: "#47CD89",
|
|
2443
|
-
500: "#17B26A",
|
|
2444
|
-
600: "#079455",
|
|
2445
|
-
700: "#067647",
|
|
2446
|
-
800: "#085D3A",
|
|
2447
|
-
900: "#074D31",
|
|
2448
|
-
950: "#053321"
|
|
2449
|
-
},
|
|
2450
|
-
[EntityColor.TEAL]: {
|
|
2451
|
-
25: "#F6FEFC",
|
|
2452
|
-
50: "#F0FDF9",
|
|
2453
|
-
100: "#CCFBEF",
|
|
2454
|
-
200: "#99F6E0",
|
|
2455
|
-
300: "#5FE9D0",
|
|
2456
|
-
400: "#2ED3B7",
|
|
2457
|
-
500: "#15B79E",
|
|
2458
|
-
600: "#0E9384",
|
|
2459
|
-
700: "#107569",
|
|
2460
|
-
800: "#125D56",
|
|
2461
|
-
900: "#134E4A",
|
|
2462
|
-
950: "#0A2926"
|
|
2463
|
-
},
|
|
2464
|
-
[EntityColor.VIOLET]: {
|
|
2465
|
-
25: "#FBFAFF",
|
|
2466
|
-
50: "#F5F3FF",
|
|
2467
|
-
100: "#ECE9FE",
|
|
2468
|
-
200: "#DDD6FE",
|
|
2469
|
-
300: "#C3B5FD",
|
|
2470
|
-
400: "#A48AFB",
|
|
2471
|
-
500: "#875BF7",
|
|
2472
|
-
600: "#7839EE",
|
|
2473
|
-
700: "#6927DA",
|
|
2474
|
-
800: "#5720B7",
|
|
2475
|
-
900: "#491C96",
|
|
2476
|
-
950: "#2E125E"
|
|
2477
|
-
},
|
|
2478
|
-
[EntityColor.WARNING]: {
|
|
2479
|
-
25: "#F5F8FF",
|
|
2480
|
-
50: "#EFF4FF",
|
|
2481
|
-
100: "#D1E0FF",
|
|
2482
|
-
200: "#B2CCFF",
|
|
2483
|
-
300: "#84ADFF",
|
|
2484
|
-
400: "#528BFF",
|
|
2485
|
-
500: "#2970FF",
|
|
2486
|
-
600: "#155EEF",
|
|
2487
|
-
700: "#004EEB",
|
|
2488
|
-
800: "#0040C1",
|
|
2489
|
-
900: "#00359E",
|
|
2490
|
-
950: "#002266"
|
|
2491
|
-
},
|
|
2492
|
-
[EntityColor.YELLOW]: {
|
|
2493
|
-
25: "#FDF9F0",
|
|
2494
|
-
50: "#FDF6E7",
|
|
2495
|
-
100: "#FCECCF",
|
|
2496
|
-
200: "#F8D9A0",
|
|
2497
|
-
300: "#F5C670",
|
|
2498
|
-
400: "#F1B440",
|
|
2499
|
-
500: "#F1B340",
|
|
2500
|
-
600: "#BE800E",
|
|
2501
|
-
700: "#8F600A",
|
|
2502
|
-
800: "#5F4007",
|
|
2503
|
-
900: "#302003",
|
|
2504
|
-
950: "#181002"
|
|
2505
|
-
}
|
|
2506
|
-
};
|
|
2507
|
-
var EntityTypeUtil = class {
|
|
2508
|
-
static getBrandColors(c) {
|
|
2509
|
-
let I = entityColorMap[c];
|
|
2510
|
-
return I === void 0 ? "" : Object.entries(I).map(([c, I]) => `${c}: ${I};`).join("\n");
|
|
2511
|
-
}
|
|
2512
|
-
static getIcon(c) {
|
|
2513
|
-
return c === EntityType.BUSINESS ? "building" : (EntityType.INDIVIDUAL, "user");
|
|
2514
|
-
}
|
|
2515
|
-
}, AppColorProvider_default = /* @__PURE__ */ defineComponent({
|
|
2516
|
-
__name: "AppColorProvider",
|
|
2517
|
-
props: { color: {} },
|
|
2518
|
-
setup(c) {
|
|
2519
|
-
let I = c, L = computed(() => I.color ? [
|
|
2520
|
-
`
|
|
2521
|
-
--brand-25:
|
|
2522
|
-
${entityColorMap[I.color][25]};
|
|
2523
|
-
`,
|
|
2524
|
-
`
|
|
2525
|
-
--brand-50:
|
|
2526
|
-
${entityColorMap[I.color][50]};
|
|
2527
|
-
`,
|
|
2528
|
-
`
|
|
2529
|
-
--brand-100:
|
|
2530
|
-
${entityColorMap[I.color][100]};
|
|
2531
|
-
`,
|
|
2532
|
-
`
|
|
2533
|
-
--brand-200:
|
|
2534
|
-
${entityColorMap[I.color][200]};
|
|
2535
|
-
`,
|
|
2536
|
-
`
|
|
2537
|
-
--brand-300:
|
|
2538
|
-
${entityColorMap[I.color][300]};
|
|
2539
|
-
`,
|
|
2540
|
-
`
|
|
2541
|
-
--brand-400:
|
|
2542
|
-
${entityColorMap[I.color][400]};
|
|
2543
|
-
`,
|
|
2544
|
-
`
|
|
2545
|
-
--brand-500:
|
|
2546
|
-
${entityColorMap[I.color][500]};
|
|
2547
|
-
`,
|
|
2548
|
-
`
|
|
2549
|
-
--brand-600:
|
|
2550
|
-
${entityColorMap[I.color][600]};
|
|
2551
|
-
`,
|
|
2552
|
-
`
|
|
2553
|
-
--brand-700:
|
|
2554
|
-
${entityColorMap[I.color][700]};
|
|
2555
|
-
`,
|
|
2556
|
-
`
|
|
2557
|
-
--brand-800:
|
|
2558
|
-
${entityColorMap[I.color][800]};
|
|
2559
|
-
`,
|
|
2560
|
-
`
|
|
2561
|
-
--brand-900:
|
|
2562
|
-
${entityColorMap[I.color][900]};
|
|
2563
|
-
`,
|
|
2564
|
-
`
|
|
2565
|
-
--brand-950:
|
|
2566
|
-
${entityColorMap[I.color][950]};
|
|
2567
|
-
`
|
|
2568
|
-
].join("\n") : "");
|
|
2569
|
-
return (c, I) => (openBlock(), createBlock(unref(VcThemeProvider), {
|
|
2570
|
-
style: normalizeStyle(L.value),
|
|
2571
|
-
class: "h-full"
|
|
2572
|
-
}, {
|
|
2573
|
-
default: withCtx(() => [renderSlot(c.$slots, "default")]),
|
|
2574
|
-
_: 3
|
|
2575
|
-
}, 8, ["style"]));
|
|
2576
|
-
}
|
|
2577
|
-
}), CustomFieldDefinitionIndexTransformer = class {
|
|
2578
|
-
static fromDto(c) {
|
|
2579
|
-
if (c.type === "multiselect") {
|
|
2580
|
-
let I = c.validationRules;
|
|
2581
|
-
return {
|
|
2582
|
-
uuid: c.uuid,
|
|
2583
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2584
|
-
displayName: c.displayName,
|
|
2585
|
-
key: c.key,
|
|
2586
|
-
maxSelections: I.maxSelections,
|
|
2587
|
-
minSelections: I.minSelections,
|
|
2588
|
-
options: I.options.map((c) => ({
|
|
2589
|
-
key: c.key,
|
|
2590
|
-
value: c.value
|
|
2591
|
-
})),
|
|
2592
|
-
order: c.order,
|
|
2593
|
-
type: "multiselect",
|
|
2594
|
-
width: c.width
|
|
2595
|
-
};
|
|
2596
|
-
}
|
|
2597
|
-
if (c.type === "checkbox") {
|
|
2598
|
-
let I = c.validationRules;
|
|
2599
|
-
return {
|
|
2600
|
-
uuid: c.uuid,
|
|
2601
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2602
|
-
defaultValue: I.defaultValue,
|
|
2603
|
-
displayName: c.displayName,
|
|
2604
|
-
key: c.key,
|
|
2605
|
-
order: c.order,
|
|
2606
|
-
type: "checkbox",
|
|
2607
|
-
width: c.width
|
|
2608
|
-
};
|
|
2609
|
-
}
|
|
2610
|
-
if (c.type === "number") {
|
|
2611
|
-
let I = c.validationRules;
|
|
2612
|
-
return {
|
|
2613
|
-
uuid: c.uuid,
|
|
2614
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2615
|
-
displayName: c.displayName,
|
|
2616
|
-
key: c.key,
|
|
2617
|
-
maxValue: I.max,
|
|
2618
|
-
minValue: I.min,
|
|
2619
|
-
order: c.order,
|
|
2620
|
-
type: "number",
|
|
2621
|
-
width: c.width
|
|
2622
|
-
};
|
|
2623
|
-
}
|
|
2624
|
-
if (c.type === "select") {
|
|
2625
|
-
let I = c.validationRules;
|
|
2626
|
-
return {
|
|
2627
|
-
uuid: c.uuid,
|
|
2628
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2629
|
-
displayName: c.displayName,
|
|
2630
|
-
key: c.key,
|
|
2631
|
-
options: I.options.map((c) => ({
|
|
2632
|
-
key: c.key,
|
|
2633
|
-
value: c.value
|
|
2634
|
-
})),
|
|
2635
|
-
order: c.order,
|
|
2636
|
-
type: "select",
|
|
2637
|
-
width: c.width
|
|
2638
|
-
};
|
|
2639
|
-
}
|
|
2640
|
-
if (c.type === "radio") {
|
|
2641
|
-
let I = c.validationRules;
|
|
2642
|
-
return {
|
|
2643
|
-
uuid: c.uuid,
|
|
2644
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2645
|
-
displayName: c.displayName,
|
|
2646
|
-
key: c.key,
|
|
2647
|
-
options: I.options.map((c) => ({
|
|
2648
|
-
key: c.key,
|
|
2649
|
-
value: c.value
|
|
2650
|
-
})),
|
|
2651
|
-
order: c.order,
|
|
2652
|
-
type: "radio",
|
|
2653
|
-
width: c.width
|
|
2654
|
-
};
|
|
2655
|
-
}
|
|
2656
|
-
if (c.type === "date") {
|
|
2657
|
-
let I = c.validationRules;
|
|
2658
|
-
return {
|
|
2659
|
-
uuid: c.uuid,
|
|
2660
|
-
maxDate: I.maxDate ? PlainDateTransformer.fromDto(I.maxDate) : void 0,
|
|
2661
|
-
minDate: I.minDate ? PlainDateTransformer.fromDto(I.minDate) : void 0,
|
|
2662
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2663
|
-
displayName: c.displayName,
|
|
2664
|
-
key: c.key,
|
|
2665
|
-
order: c.order,
|
|
2666
|
-
type: "date",
|
|
2667
|
-
width: c.width
|
|
2668
|
-
};
|
|
2669
|
-
}
|
|
2670
|
-
let I = c.validationRules;
|
|
2671
|
-
return {
|
|
2672
|
-
uuid: c.uuid,
|
|
2673
|
-
isDisplayedOnCreate: c.isDisplayedOnCreate,
|
|
2674
|
-
displayName: c.displayName,
|
|
2675
|
-
key: c.key,
|
|
2676
|
-
maxLength: I.maxLength,
|
|
2677
|
-
minLength: I.minLength,
|
|
2678
|
-
order: c.order,
|
|
2679
|
-
type: "string",
|
|
2680
|
-
width: c.width
|
|
2681
|
-
};
|
|
2682
|
-
}
|
|
2683
|
-
}, CustomFieldDefinitionService = class {
|
|
2684
|
-
static async get(c) {
|
|
2685
|
-
return (await viewCustomFieldDefinitionIndexV1({ query: { filter: {
|
|
2686
|
-
entityType: c,
|
|
2687
|
-
onlyWithIsDisplayedOnCreate: !1
|
|
2688
|
-
} } })).data.sort((c) => c.order).map(CustomFieldDefinitionIndexTransformer.fromDto);
|
|
2689
|
-
}
|
|
2690
|
-
}, TenantConfigTransformer = class {
|
|
2691
|
-
static fromDto(c) {
|
|
2692
|
-
return {
|
|
2693
|
-
billingConfig: c.billingConfig,
|
|
2694
|
-
businessConfig: c.businessConfig,
|
|
2695
|
-
dealConfig: c.dealConfig,
|
|
2696
|
-
entities: c.entities.map((c) => ({
|
|
2697
|
-
name: c.entityName,
|
|
2698
|
-
color: c.entityColor,
|
|
2699
|
-
type: c.entityType
|
|
2700
|
-
}))
|
|
2701
|
-
};
|
|
2702
|
-
}
|
|
2703
|
-
}, TenantConfigService = class {
|
|
2704
|
-
static async getConfig() {
|
|
2705
|
-
let c = await viewTenantConfigDetailV1();
|
|
2706
|
-
return TenantConfigTransformer.fromDto(c.data);
|
|
2707
|
-
}
|
|
2708
|
-
}, googleMapsApiKey = ref(null);
|
|
2709
|
-
function useGoogleMapsApiKey() {
|
|
2710
|
-
function c(c) {
|
|
2711
|
-
googleMapsApiKey.value = c;
|
|
2712
|
-
}
|
|
2713
|
-
function I() {
|
|
2714
|
-
return googleMapsApiKey.value;
|
|
2715
|
-
}
|
|
2716
|
-
return {
|
|
2717
|
-
getGoogleMapsApiKey: I,
|
|
2718
|
-
googleMapsApiKey: readonly(googleMapsApiKey),
|
|
2719
|
-
setGoogleMapsApiKey: c
|
|
2720
|
-
};
|
|
2721
|
-
}
|
|
2722
|
-
var ObjectUtil = class c {
|
|
2723
|
-
static deepClone(c) {
|
|
2724
|
-
return JSON.parse(JSON.stringify(c));
|
|
2725
|
-
}
|
|
2726
|
-
static serialize(I, L = "") {
|
|
2727
|
-
return Object.keys(I).map((R) => {
|
|
2728
|
-
let B = I[R], V = L ? `${L}[${R}]` : R;
|
|
2729
|
-
return typeof B == "object" && B && !Array.isArray(B) ? c.serialize(B, V) : Array.isArray(B) ? B.map((I, L) => typeof I == "object" ? c.serialize(I, `${V}[${L}]`) : `${encodeURIComponent(`${V}[${L}]`)}=${encodeURIComponent(I)}`).join("&") : B == null ? "" : `${encodeURIComponent(V)}=${encodeURIComponent(B)}`;
|
|
2730
|
-
}).filter((c) => c !== "").join("&");
|
|
2731
|
-
}
|
|
2732
|
-
};
|
|
2733
|
-
function setupHttpClient(c, I) {
|
|
2734
|
-
client.setConfig({
|
|
2735
|
-
baseUrl: I,
|
|
2736
|
-
headers: { "Accept-Language": typeof navigator < "u" ? navigator.language : "en-US" },
|
|
2737
|
-
querySerializer: ObjectUtil.serialize
|
|
2738
|
-
}), client.interceptors.request.use(async (I) => {
|
|
2739
|
-
let L = await c();
|
|
2740
|
-
return I.headers.set("Authorization", `Bearer ${L}`), I;
|
|
2741
|
-
}), client.interceptors.response.use((c) => (c?.status === 401 && console.error(c), c));
|
|
2742
|
-
}
|
|
2743
|
-
var individualCustomFieldDefinition = [], businessCustomFieldDefinition = [], isInitialized = ref(!1), crmOptions = ref({ deals: null });
|
|
2744
|
-
function useCrmConfig() {
|
|
2745
|
-
let c = useStorage("wise-crm-config", null, void 0, { serializer: createDataSerializer() }), I = useGoogleMapsApiKey();
|
|
2746
|
-
async function L(L) {
|
|
2747
|
-
let R = useI18n();
|
|
2748
|
-
crmOptions.value = L.options, setupHttpClient(L.getAccessToken, L.apiCrmBaseUrl), I.setGoogleMapsApiKey(L.googleMapsApiKey), client.setConfig({ headers: { "Accept-Language": L.locale } }), c.value === null && (c.value = await fetchConfig()), setBrandColors(c.value.entities), individualCustomFieldDefinition = await fetchCustomFieldDefinition(EntityType.INDIVIDUAL), businessCustomFieldDefinition = await fetchCustomFieldDefinition(EntityType.BUSINESS), isInitialized.value = !0, watch(() => R.locale.value, async (I) => {
|
|
2749
|
-
client.setConfig({ headers: { "Accept-Language": I } }), c.value = await fetchConfig();
|
|
2750
|
-
}, { deep: !0 });
|
|
2751
|
-
}
|
|
2752
|
-
function R() {
|
|
2753
|
-
if (c.value === null) throw Error("CRM Tenant Config not initialized");
|
|
2754
|
-
return c.value;
|
|
2755
|
-
}
|
|
2756
|
-
function B() {
|
|
2757
|
-
return crmOptions.value;
|
|
2758
|
-
}
|
|
2759
|
-
return {
|
|
2760
|
-
isInitialized,
|
|
2761
|
-
getConfig: R,
|
|
2762
|
-
getCustomFieldDefinitionForEntity,
|
|
2763
|
-
getOptions: B,
|
|
2764
|
-
init: L
|
|
2765
|
-
};
|
|
2766
|
-
}
|
|
2767
|
-
function createDataSerializer() {
|
|
2768
|
-
return {
|
|
2769
|
-
read: (c) => {
|
|
2770
|
-
if (c === "null" || c === "") return null;
|
|
2771
|
-
try {
|
|
2772
|
-
return JSON.parse(c);
|
|
2773
|
-
} catch {
|
|
2774
|
-
return null;
|
|
2775
|
-
}
|
|
2776
|
-
},
|
|
2777
|
-
write: (c) => c === null ? "null" : JSON.stringify(c)
|
|
2778
|
-
};
|
|
2779
|
-
}
|
|
2780
|
-
function setBrandColors(c) {
|
|
2781
|
-
if (typeof document > "u") return;
|
|
2782
|
-
let I = document.querySelector(":root");
|
|
2783
|
-
if (I !== null) for (let L of c) for (let c of Object.keys(entityColorMap[L.color])) {
|
|
2784
|
-
let R = entityColorMap[L.color][c];
|
|
2785
|
-
I.style.setProperty(`--wise-crm-${L.type}-${c}`, R ?? null);
|
|
2786
|
-
}
|
|
2787
|
-
}
|
|
2788
|
-
function getCustomFieldDefinitionForEntity(c) {
|
|
2789
|
-
return c === EntityType.INDIVIDUAL ? individualCustomFieldDefinition : c === EntityType.BUSINESS ? businessCustomFieldDefinition : [];
|
|
2790
|
-
}
|
|
2791
|
-
async function fetchConfig() {
|
|
2792
|
-
return await TenantConfigService.getConfig();
|
|
2793
|
-
}
|
|
2794
|
-
async function fetchCustomFieldDefinition(c) {
|
|
2795
|
-
return getCustomFieldDefinitionForEntity(c).length > 0 ? getCustomFieldDefinitionForEntity(c) : await CustomFieldDefinitionService.get(c);
|
|
2796
|
-
}
|
|
2797
|
-
function getEntityRoute(c, I) {
|
|
2798
|
-
return c === EntityType.INDIVIDUAL ? {
|
|
2799
|
-
name: "individual-detail",
|
|
2800
|
-
params: { individualUuid: I }
|
|
2801
|
-
} : {
|
|
2802
|
-
name: "business-detail",
|
|
2803
|
-
params: { businessUuid: I }
|
|
2804
|
-
};
|
|
2805
|
-
}
|
|
2806
|
-
function useEntityDetail() {
|
|
2807
|
-
let c = useRouter();
|
|
2808
|
-
function I(I, L) {
|
|
2809
|
-
c.push(getEntityRoute(I, L));
|
|
2810
|
-
}
|
|
2811
|
-
return { open: I };
|
|
2812
|
-
}
|
|
2813
|
-
function useCrm() {
|
|
2814
|
-
let c = useRouter(), I = useCrmConfig(), L = useEntityDetail(), R = useLocalStorage("crm-return-route", null, { serializer: createReturnRouteSerializer() });
|
|
2815
|
-
function B(c, I = []) {
|
|
2816
|
-
if (c.name === void 0) return;
|
|
2817
|
-
let L = c.name;
|
|
2818
|
-
I.some((c) => typeof c == "string" ? c === L : c.test(L)) || (R.value = {
|
|
2819
|
-
name: c.name,
|
|
2820
|
-
params: c.params,
|
|
2821
|
-
query: c.query
|
|
2822
|
-
});
|
|
2823
|
-
}
|
|
2824
|
-
function V() {
|
|
2825
|
-
if (R.value === null) {
|
|
2826
|
-
c.push({ name: "index" });
|
|
2827
|
-
return;
|
|
2828
|
-
}
|
|
2829
|
-
c.push({
|
|
2830
|
-
name: R.value.name,
|
|
2831
|
-
params: R.value.params,
|
|
2832
|
-
query: R.value.query
|
|
2833
|
-
});
|
|
2834
|
-
}
|
|
2835
|
-
function H(c) {
|
|
2836
|
-
L.open(EntityType.INDIVIDUAL, c);
|
|
2837
|
-
}
|
|
2838
|
-
function U(c) {
|
|
2839
|
-
L.open(EntityType.BUSINESS, c);
|
|
2840
|
-
}
|
|
2841
|
-
function W(c) {
|
|
2842
|
-
return I.getConfig().entities.find((I) => I.type === c) ?? null;
|
|
2843
|
-
}
|
|
2844
|
-
return {
|
|
2845
|
-
getEntityConfig: W,
|
|
2846
|
-
goToReturnRoute: V,
|
|
2847
|
-
openBusinessDetail: U,
|
|
2848
|
-
openIndividualDetail: H,
|
|
2849
|
-
storeReturnRoute: B
|
|
2850
|
-
};
|
|
2851
|
-
}
|
|
2852
|
-
function createReturnRouteSerializer() {
|
|
2853
|
-
return {
|
|
2854
|
-
read: (c) => {
|
|
2855
|
-
if (c === "null" || c === "") return null;
|
|
2856
|
-
try {
|
|
2857
|
-
return JSON.parse(c);
|
|
2858
|
-
} catch {
|
|
2859
|
-
return null;
|
|
2860
|
-
}
|
|
2861
|
-
},
|
|
2862
|
-
write: (c) => c === null ? "null" : JSON.stringify(c)
|
|
2863
|
-
};
|
|
2864
|
-
}
|
|
2865
|
-
var AppHeightTransition_default = /* @__PURE__ */ defineComponent({
|
|
2866
|
-
__name: "AppHeightTransition",
|
|
2867
|
-
setup(c) {
|
|
2868
|
-
let I = ref(null), { height: L } = useElementSize(I);
|
|
2869
|
-
return (c, R) => (openBlock(), createBlock(unref(Motion), {
|
|
2870
|
-
animate: { height: unref(L) },
|
|
2871
|
-
transition: {
|
|
2872
|
-
bounce: 0,
|
|
2873
|
-
duration: .3,
|
|
2874
|
-
type: "spring"
|
|
2875
|
-
},
|
|
2876
|
-
tabindex: "-1",
|
|
2877
|
-
class: "relative overflow-clip"
|
|
2878
|
-
}, {
|
|
2879
|
-
default: withCtx(() => [createElementVNode("div", {
|
|
2880
|
-
ref_key: "el",
|
|
2881
|
-
ref: I
|
|
2882
|
-
}, [renderSlot(c.$slots, "default")], 512)]),
|
|
2883
|
-
_: 3
|
|
2884
|
-
}, 8, ["animate"]));
|
|
2885
|
-
}
|
|
2886
|
-
}), AppSeparator_default = /* @__PURE__ */ defineComponent({
|
|
2887
|
-
__name: "AppSeparator",
|
|
2888
|
-
props: { direction: { default: "horizontal" } },
|
|
2889
|
-
setup(c) {
|
|
2890
|
-
let I = c;
|
|
2891
|
-
return (c, L) => (openBlock(), createElementBlock("div", {
|
|
2892
|
-
class: normalizeClass([{
|
|
2893
|
-
"h-full w-px": I.direction === "vertical",
|
|
2894
|
-
"h-px w-full": I.direction === "horizontal"
|
|
2895
|
-
}, "bg-tertiary"]),
|
|
2896
|
-
role: "presentation"
|
|
2897
|
-
}, null, 2));
|
|
2898
|
-
}
|
|
2899
|
-
}), _hoisted_1$8 = { class: "w-full" }, _hoisted_2$5 = { class: "p-lg flex flex-col overflow-hidden" }, _hoisted_3$2 = { class: "py-lg" }, _hoisted_4$1 = { class: "max-h-80 overflow-y-auto" }, _hoisted_5$1 = { key: 0 }, _hoisted_6 = { class: "py-lg" }, _hoisted_7 = { class: "flex w-full justify-center" }, EntityAutocomplete_default = /* @__PURE__ */ defineComponent({
|
|
2900
|
-
__name: "EntityAutocomplete",
|
|
2901
|
-
props: /* @__PURE__ */ mergeModels({
|
|
2902
|
-
isLoading: { type: Boolean },
|
|
2903
|
-
isRequired: { type: Boolean },
|
|
2904
|
-
isTouched: { type: Boolean },
|
|
2905
|
-
displayFn: { type: Function },
|
|
2906
|
-
errorMessage: {},
|
|
2907
|
-
label: {},
|
|
2908
|
-
options: {},
|
|
2909
|
-
placeholder: {}
|
|
2910
|
-
}, {
|
|
2911
|
-
modelValue: { required: !0 },
|
|
2912
|
-
modelModifiers: {}
|
|
2913
|
-
}),
|
|
2914
|
-
emits: /* @__PURE__ */ mergeModels([
|
|
2915
|
-
"blur",
|
|
2916
|
-
"createNew",
|
|
2917
|
-
"search"
|
|
2918
|
-
], ["update:modelValue"]),
|
|
2919
|
-
setup(c, { emit: I }) {
|
|
2920
|
-
let L = c, R = I, B = useModel(c, "modelValue"), V = useI18n(), H = useSlots(), U = ref(!1), W = ref(null), G = ref(null), K = computed(() => L.isTouched === !0 && L.errorMessage !== null && L.errorMessage !== void 0), q = useDebounceFn((c) => {
|
|
2921
|
-
R("search", c);
|
|
2922
|
-
}, 100);
|
|
2923
|
-
async function J(c) {
|
|
2924
|
-
await q(c);
|
|
2925
|
-
}
|
|
2926
|
-
function Y(c) {
|
|
2927
|
-
G.value = c ?? null;
|
|
2928
|
-
}
|
|
2929
|
-
function X(c) {
|
|
2930
|
-
return c === G.value;
|
|
2931
|
-
}
|
|
2932
|
-
function Z(c) {
|
|
2933
|
-
c !== void 0 && (B.value = {
|
|
2934
|
-
label: L.displayFn(c),
|
|
2935
|
-
value: c
|
|
2936
|
-
}, U.value = !1, W.value = L.displayFn(c));
|
|
2937
|
-
}
|
|
2938
|
-
function Q() {
|
|
2939
|
-
R("createNew"), U.value = !1;
|
|
2940
|
-
}
|
|
2941
|
-
function $(c) {
|
|
2942
|
-
c.key !== "Tab" && (U.value = !0);
|
|
2943
|
-
}
|
|
2944
|
-
return (c, I) => (openBlock(), createElementBlock("div", _hoisted_1$8, [createVNode(unref(VcPopoverRoot), {
|
|
2945
|
-
"is-open": U.value,
|
|
2946
|
-
"onUpdate:isOpen": I[3] ||= (c) => U.value = c,
|
|
2947
|
-
"is-popover-arrow-hidden": !0,
|
|
2948
|
-
"popover-side-offset": -40,
|
|
2949
|
-
"class-config": { content: "border border-primary rounded-md p-lg" },
|
|
2950
|
-
"popover-width": "anchor-width",
|
|
2951
|
-
class: "col-span-2"
|
|
2952
|
-
}, {
|
|
2953
|
-
default: withCtx(() => [createVNode(unref(VcFormField), {
|
|
2954
|
-
label: L.label,
|
|
2955
|
-
"is-required": L.isRequired,
|
|
2956
|
-
for: "autocomplete-trigger"
|
|
2957
|
-
}, {
|
|
2958
|
-
default: withCtx(() => [createVNode(unref(VcPopoverAnchor), null, {
|
|
2959
|
-
default: withCtx(() => [createVNode(unref(VcPopoverTrigger), null, {
|
|
2960
|
-
default: withCtx(() => [createVNode(unref(VcButton), {
|
|
2961
|
-
id: "autocomplete-trigger",
|
|
2962
|
-
"class-config": { root: `bg-transparent! outline-offset-1 ${K.value ? "border-error! outline-error-500!" : "border-secondary!"} rounded-md w-full justify-start scale-100! h-9 px-lg ${B.value === null ? "text-placeholder" : "text-primary"}` },
|
|
2963
|
-
variant: "secondary",
|
|
2964
|
-
"icon-left": "search",
|
|
2965
|
-
onKeydown: $,
|
|
2966
|
-
onBlur: I[0] ||= () => {
|
|
2967
|
-
R("blur");
|
|
2968
|
-
}
|
|
2969
|
-
}, {
|
|
2970
|
-
default: withCtx(() => [createTextVNode(toDisplayString(B.value?.label ?? L.placeholder), 1)]),
|
|
2971
|
-
_: 1
|
|
2972
|
-
}, 8, ["class-config"])]),
|
|
2973
|
-
_: 1
|
|
2974
|
-
})]),
|
|
2975
|
-
_: 1
|
|
2976
|
-
})]),
|
|
2977
|
-
_: 1
|
|
2978
|
-
}, 8, ["label", "is-required"]), createVNode(unref(VcPopoverPortal), null, {
|
|
2979
|
-
default: withCtx(() => [createVNode(unref(VcPopoverContent), null, {
|
|
2980
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_2$5, [createVNode(unref(ListboxRoot), { onHighlight: I[2] ||= (c) => Y(c?.value?.toString()) }, {
|
|
2981
|
-
default: withCtx(() => [
|
|
2982
|
-
createVNode(unref(ListboxFilter), { "as-child": "" }, {
|
|
2983
|
-
default: withCtx(() => [createVNode(unref(VcTextField), {
|
|
2984
|
-
modelValue: W.value,
|
|
2985
|
-
"onUpdate:modelValue": [I[1] ||= (c) => W.value = c, J],
|
|
2986
|
-
"is-loading": L.isLoading,
|
|
2987
|
-
placeholder: unref(V).t("wise_crm.contact.create_dialog.form.fields.search"),
|
|
2988
|
-
"class-config": {
|
|
2989
|
-
input: "text-sm",
|
|
2990
|
-
iconLeft: "ml-0!",
|
|
2991
|
-
root: "border-none h-auto bg-transparent rounded-none shadow-none outline-none"
|
|
2992
|
-
},
|
|
2993
|
-
"icon-left": "search"
|
|
2994
|
-
}, null, 8, [
|
|
2995
|
-
"modelValue",
|
|
2996
|
-
"is-loading",
|
|
2997
|
-
"placeholder"
|
|
2998
|
-
])]),
|
|
2999
|
-
_: 1
|
|
3000
|
-
}),
|
|
3001
|
-
createElementVNode("div", _hoisted_3$2, [createVNode(AppSeparator_default, { direction: "horizontal" })]),
|
|
3002
|
-
createElementVNode("div", _hoisted_4$1, [createVNode(AppHeightTransition_default, null, {
|
|
3003
|
-
default: withCtx(() => [createVNode(unref(ListboxContent), null, {
|
|
3004
|
-
default: withCtx(() => [W.value !== null && W.value !== "" && L.options.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_5$1, [(openBlock(!0), createElementBlock(Fragment, null, renderList(L.options, (I) => (openBlock(), createBlock(unref(ListboxItem), {
|
|
3005
|
-
key: I.uuid,
|
|
3006
|
-
value: I.uuid,
|
|
3007
|
-
as: "button",
|
|
3008
|
-
class: "w-full cursor-pointer text-left",
|
|
3009
|
-
onSelect: () => Z(I.uuid)
|
|
3010
|
-
}, {
|
|
3011
|
-
default: withCtx(() => [unref(H).option === void 0 ? createCommentVNode("", !0) : renderSlot(c.$slots, "option", {
|
|
3012
|
-
key: 0,
|
|
3013
|
-
option: I,
|
|
3014
|
-
isHighlighted: X(I.uuid)
|
|
3015
|
-
})]),
|
|
3016
|
-
_: 2
|
|
3017
|
-
}, 1032, ["value", "onSelect"]))), 128)), createElementVNode("div", _hoisted_6, [createVNode(AppSeparator_default, { direction: "horizontal" })])])) : createCommentVNode("", !0)]),
|
|
3018
|
-
_: 3
|
|
3019
|
-
})]),
|
|
3020
|
-
_: 3
|
|
3021
|
-
})])
|
|
3022
|
-
]),
|
|
3023
|
-
_: 3
|
|
3024
|
-
}), createElementVNode("div", _hoisted_7, [createVNode(unref(VcButton), {
|
|
3025
|
-
"class-config": { root: "shadow-none text-brand-500 border-none h-auto py-xxs font-semibold hover:underline rounded-none w-full bg-transparent!" },
|
|
3026
|
-
variant: "tertiary",
|
|
3027
|
-
onClick: Q
|
|
3028
|
-
}, {
|
|
3029
|
-
default: withCtx(() => [createTextVNode(toDisplayString(unref(V).t("wise_crm.contact.create_dialog.form.fields.create_new_label")), 1)]),
|
|
3030
|
-
_: 1
|
|
3031
|
-
})])])]),
|
|
3032
|
-
_: 3
|
|
3033
|
-
})]),
|
|
3034
|
-
_: 3
|
|
3035
|
-
})]),
|
|
3036
|
-
_: 3
|
|
3037
|
-
}, 8, ["is-open"])]));
|
|
3038
|
-
}
|
|
3039
|
-
}), _hoisted_1$7 = {
|
|
3040
|
-
key: 0,
|
|
3041
|
-
class: "gap-md bg-error-50 p-lg col-span-2 flex items-center justify-center rounded-xl"
|
|
3042
|
-
}, _hoisted_2$4 = { class: "text-error-primary col-span-full text-sm" }, AppGlobalFormError_default = /* @__PURE__ */ defineComponent({
|
|
3043
|
-
__name: "AppGlobalFormError",
|
|
3044
|
-
props: { form: {} },
|
|
3045
|
-
setup(c) {
|
|
3046
|
-
let I = c, L = computed(() => I.form.errors.value.find((c) => c.path === "")?.message ?? null);
|
|
3047
|
-
return (c, I) => L.value === null ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_1$7, [createVNode(unref(VcIcon), {
|
|
3048
|
-
icon: "alertCircle",
|
|
3049
|
-
class: "text-error-primary size-4"
|
|
3050
|
-
}), createElementVNode("p", _hoisted_2$4, toDisplayString(L.value), 1)]));
|
|
3051
|
-
}
|
|
3052
|
-
}), IndividualBillingInformationTransformer = class {
|
|
3053
|
-
static fromDto(c) {
|
|
3054
|
-
return {
|
|
3055
|
-
uuid: c.uuid,
|
|
3056
|
-
billingLocation: c.billingLocation ? {
|
|
3057
|
-
uuid: c.billingLocation.uuid,
|
|
3058
|
-
createdAt: ZonedDateTimeTransformer.fromDto(c.billingLocation.createdAt),
|
|
3059
|
-
updatedAt: ZonedDateTimeTransformer.fromDto(c.billingLocation.updatedAt),
|
|
3060
|
-
address: AddressTransformer.fromDto(c.billingLocation.address)
|
|
3061
|
-
} : null,
|
|
3062
|
-
invoiceCcEmails: c.invoiceCcEmails,
|
|
3063
|
-
invoiceEmail: c.invoiceEmail
|
|
3064
|
-
};
|
|
3065
|
-
}
|
|
3066
|
-
}, IndividualBillingInformationFormTransformer = class {
|
|
3067
|
-
static toDto(c) {
|
|
3068
|
-
return {
|
|
3069
|
-
billingAddress: c.billingAddress ? AddressTransformer.toDto(c.billingAddress) : null,
|
|
3070
|
-
invoiceCcEmails: c.invoiceCcEmails ?? [],
|
|
3071
|
-
invoiceEmail: c.invoiceEmail
|
|
3072
|
-
};
|
|
3073
|
-
}
|
|
3074
|
-
}, IndividualContactPersonTransformer = class {
|
|
3075
|
-
static fromDto(c) {
|
|
3076
|
-
return {
|
|
3077
|
-
contactPersonUuid: c.contactPersonUuid,
|
|
3078
|
-
individualUuid: c.individualUuid,
|
|
3079
|
-
isPrimary: c.isPrimary,
|
|
3080
|
-
email: c.email,
|
|
3081
|
-
firstName: c.firstName,
|
|
3082
|
-
lastName: c.lastName,
|
|
3083
|
-
mobilePhone: c.mobilePhone,
|
|
3084
|
-
phone: c.phone,
|
|
3085
|
-
position: c.position
|
|
3086
|
-
};
|
|
3087
|
-
}
|
|
3088
|
-
}, IndividualCreateTransformer = class {
|
|
3089
|
-
static toDto(c) {
|
|
3090
|
-
return {
|
|
3091
|
-
address: c.address ? AddressTransformer.toDto(c.address) : null,
|
|
3092
|
-
customFields: c.customFields,
|
|
3093
|
-
email: c.email,
|
|
3094
|
-
firstName: c.firstName,
|
|
3095
|
-
lastName: c.lastName,
|
|
3096
|
-
mobilePhone: c.mobilePhone,
|
|
3097
|
-
phone: c.phone
|
|
3098
|
-
};
|
|
3099
|
-
}
|
|
3100
|
-
}, IndividualDetailTransformer = class {
|
|
3101
|
-
static fromDto(c) {
|
|
3102
|
-
return {
|
|
3103
|
-
uuid: c.uuid,
|
|
3104
|
-
createdAt: ZonedDateTimeTransformer.fromDto(c.createdAt),
|
|
3105
|
-
updatedAt: ZonedDateTimeTransformer.fromDto(c.updatedAt),
|
|
3106
|
-
address: AddressTransformer.fromNullableDto(c.location?.address ?? null),
|
|
3107
|
-
billingInformationDetail: c.billingInformation === null ? null : {
|
|
3108
|
-
uuid: c.billingInformation.uuid,
|
|
3109
|
-
invoiceCcEmails: c.billingInformation.invoiceCcEmails ?? [],
|
|
3110
|
-
invoiceEmail: c.billingInformation.invoiceEmail ?? "",
|
|
3111
|
-
location: c.billingInformation?.location ? {
|
|
3112
|
-
uuid: c.billingInformation?.location.uuid,
|
|
3113
|
-
createdAt: ZonedDateTimeTransformer.fromDto(c.billingInformation.location.createdAt),
|
|
3114
|
-
updatedAt: ZonedDateTimeTransformer.fromDto(c.billingInformation.location.updatedAt),
|
|
3115
|
-
address: AddressTransformer.fromDto(c.billingInformation.location.address)
|
|
3116
|
-
} : null
|
|
3117
|
-
},
|
|
3118
|
-
contactPersons: c.contactPersons.map((c) => ({
|
|
3119
|
-
uuid: c.uuid,
|
|
3120
|
-
isPrimary: c.isPrimary,
|
|
3121
|
-
email: c.email,
|
|
3122
|
-
firstName: c.firstName,
|
|
3123
|
-
lastName: c.lastName,
|
|
3124
|
-
mobilePhone: c.mobilePhone,
|
|
3125
|
-
phone: c.phone,
|
|
3126
|
-
position: c.position
|
|
3127
|
-
})),
|
|
3128
|
-
customFields: c.customFields,
|
|
3129
|
-
email: c.email,
|
|
3130
|
-
firstName: c.firstName,
|
|
3131
|
-
language: c.language,
|
|
3132
|
-
lastName: c.lastName,
|
|
3133
|
-
linkedBusinesses: c.linkedBusinesses.map((c) => ({
|
|
3134
|
-
uuid: c.uuid,
|
|
3135
|
-
name: c.name,
|
|
3136
|
-
email: c.email,
|
|
3137
|
-
mobilePhone: c.mobilePhone,
|
|
3138
|
-
phone: c.phone,
|
|
3139
|
-
position: c.position
|
|
3140
|
-
})),
|
|
3141
|
-
mobilePhone: c.mobilePhone,
|
|
3142
|
-
phone: c.phone
|
|
3143
|
-
};
|
|
3144
|
-
}
|
|
3145
|
-
}, IndividualIndexTransformer = class {
|
|
3146
|
-
static fromDto(c) {
|
|
3147
|
-
return {
|
|
3148
|
-
uuid: c.uuid,
|
|
3149
|
-
name: c.name,
|
|
3150
|
-
email: c.email,
|
|
3151
|
-
mobilePhone: c.mobilePhone,
|
|
3152
|
-
phone: c.phone
|
|
3153
|
-
};
|
|
3154
|
-
}
|
|
3155
|
-
}, IndividualIndexQueryParamsTransformer = class {
|
|
3156
|
-
static toDto(c) {
|
|
3157
|
-
return {
|
|
3158
|
-
pagination: c.pagination,
|
|
3159
|
-
search: c.search?.trim() || void 0
|
|
3160
|
-
};
|
|
3161
|
-
}
|
|
3162
|
-
}, IndividualStatisticsTransformer = class {
|
|
3163
|
-
static fromDto(c) {
|
|
3164
|
-
return {
|
|
3165
|
-
monthlyAdded: c.monthlyAdded,
|
|
3166
|
-
monthlyPercentageGrowth: c.monthlyPercentageGrowth,
|
|
3167
|
-
total: c.total
|
|
3168
|
-
};
|
|
3169
|
-
}
|
|
3170
|
-
}, IndividualUpdateTransformer = class {
|
|
3171
|
-
static toDto(c) {
|
|
3172
|
-
return {
|
|
3173
|
-
address: AddressTransformer.toDto(c.address),
|
|
3174
|
-
customFields: c.customFields,
|
|
3175
|
-
email: c.email,
|
|
3176
|
-
firstName: c.firstName,
|
|
3177
|
-
language: c.language,
|
|
3178
|
-
lastName: c.lastName,
|
|
3179
|
-
mobilePhone: c.mobilePhone,
|
|
3180
|
-
phone: c.phone
|
|
3181
|
-
};
|
|
3182
|
-
}
|
|
3183
|
-
static toForm(c) {
|
|
3184
|
-
return {
|
|
3185
|
-
address: AddressTransformer.toNullableForm(c.address),
|
|
3186
|
-
customFields: c.customFields ?? null,
|
|
3187
|
-
email: c.email,
|
|
3188
|
-
firstName: c.firstName,
|
|
3189
|
-
language: c.language,
|
|
3190
|
-
lastName: c.lastName,
|
|
3191
|
-
mobilePhone: c.mobilePhone,
|
|
3192
|
-
phone: c.phone
|
|
3193
|
-
};
|
|
3194
|
-
}
|
|
3195
|
-
}, IndividualService = class {
|
|
3196
|
-
static async create(c) {
|
|
3197
|
-
return (await createIndividualV1({
|
|
3198
|
-
body: IndividualCreateTransformer.toDto(c),
|
|
3199
|
-
responseValidator: void 0
|
|
3200
|
-
})).data.uuid;
|
|
3201
|
-
}
|
|
3202
|
-
static async getActivity(c, I) {
|
|
3203
|
-
let L = await viewIndividualActivityLogIndexV1({
|
|
3204
|
-
query: new PaginationParamsBuilder(I).buildKeyset(ActivityIndexPaginationTransformer.toDto),
|
|
3205
|
-
responseValidator: void 0,
|
|
3206
|
-
path: { individualUuid: c }
|
|
3207
|
-
});
|
|
3208
|
-
return {
|
|
3209
|
-
data: L.data.items.map(ActivityIndexTransformer.fromDto),
|
|
3210
|
-
meta: {
|
|
3211
|
-
next: L.data.meta.next,
|
|
3212
|
-
total: L.data.items.length
|
|
3213
|
-
}
|
|
3214
|
-
};
|
|
3215
|
-
}
|
|
3216
|
-
static async getAll(c) {
|
|
3217
|
-
let I = await viewIndividualIndexV1({ query: IndividualIndexQueryParamsTransformer.toDto(c) });
|
|
3218
|
-
return {
|
|
3219
|
-
data: I.data.items.map(IndividualIndexTransformer.fromDto),
|
|
3220
|
-
meta: I.data.meta
|
|
3221
|
-
};
|
|
3222
|
-
}
|
|
3223
|
-
static async getBillingInformation(c) {
|
|
3224
|
-
let I = await viewIndividualBillingInformationDetailV1({ path: { individualUuid: c } });
|
|
3225
|
-
return IndividualBillingInformationTransformer.fromDto(I.data);
|
|
3226
|
-
}
|
|
3227
|
-
static async getBySearchTerm(c) {
|
|
3228
|
-
let I = await viewIndividualIndexV1({ query: new PaginationParamsBuilder().withLimit(5).withSearch(c).build() });
|
|
3229
|
-
return {
|
|
3230
|
-
data: I.data.items.map(IndividualIndexTransformer.fromDto),
|
|
3231
|
-
meta: I.data.meta
|
|
3232
|
-
};
|
|
3233
|
-
}
|
|
3234
|
-
static async getByUuid(c) {
|
|
3235
|
-
let I = await viewIndividualDetailV1({
|
|
3236
|
-
responseValidator: void 0,
|
|
3237
|
-
path: { individualUuid: c }
|
|
3238
|
-
});
|
|
3239
|
-
return IndividualDetailTransformer.fromDto(I.data);
|
|
3240
|
-
}
|
|
3241
|
-
static async getContactPerson(c, I) {
|
|
3242
|
-
let L = await viewIndividualContactPersonDetailV1({ path: {
|
|
3243
|
-
contactPersonUuid: I,
|
|
3244
|
-
individualUuid: c
|
|
3245
|
-
} });
|
|
3246
|
-
return IndividualContactPersonTransformer.fromDto(L.data);
|
|
3247
|
-
}
|
|
3248
|
-
static async getStatistics() {
|
|
3249
|
-
let c = await viewIndividualStatisticsV1();
|
|
3250
|
-
return IndividualStatisticsTransformer.fromDto(c.data);
|
|
3251
|
-
}
|
|
3252
|
-
static async grantUser(c, I) {
|
|
3253
|
-
await createUserIndividualGrantV1({
|
|
3254
|
-
body: I,
|
|
3255
|
-
responseValidator: void 0,
|
|
3256
|
-
path: { individualUuid: c }
|
|
3257
|
-
});
|
|
3258
|
-
}
|
|
3259
|
-
static async linkContactPerson(c, I, L, R) {
|
|
3260
|
-
await linkContactPersonToIndividualV1({
|
|
3261
|
-
body: {
|
|
3262
|
-
contactPersonUuid: I,
|
|
3263
|
-
email: StringUtil.trimOrNull(R.email),
|
|
3264
|
-
mobilePhone: R.mobilePhone,
|
|
3265
|
-
phone: R.phone,
|
|
3266
|
-
position: L
|
|
3267
|
-
},
|
|
3268
|
-
responseValidator: void 0,
|
|
3269
|
-
path: { individualUuid: c }
|
|
3270
|
-
});
|
|
3271
|
-
}
|
|
3272
|
-
static async setPrimaryContactPerson(c, I) {
|
|
3273
|
-
await makeIndividualContactPersonPrimaryV1({ path: {
|
|
3274
|
-
contactPersonUuid: I,
|
|
3275
|
-
individualUuid: c
|
|
3276
|
-
} });
|
|
3277
|
-
}
|
|
3278
|
-
static async unlinkContactPerson(c, I) {
|
|
3279
|
-
await unlinkContactPersonFromIndividualV1({
|
|
3280
|
-
body: { contactPersonUuid: I },
|
|
3281
|
-
responseValidator: void 0,
|
|
3282
|
-
path: { individualUuid: c }
|
|
3283
|
-
});
|
|
3284
|
-
}
|
|
3285
|
-
static async update(c, I) {
|
|
3286
|
-
await updateIndividualV1({
|
|
3287
|
-
body: IndividualUpdateTransformer.toDto(I),
|
|
3288
|
-
responseValidator: void 0,
|
|
3289
|
-
path: { individualUuid: c }
|
|
3290
|
-
});
|
|
3291
|
-
}
|
|
3292
|
-
static async updateContactPerson(c, I, L) {
|
|
3293
|
-
await updateIndividualContactPersonV1({
|
|
3294
|
-
body: ContactPersonUpdateTransformer.toDto(L),
|
|
3295
|
-
path: {
|
|
3296
|
-
contactPersonUuid: I,
|
|
3297
|
-
individualUuid: c
|
|
3298
|
-
}
|
|
3299
|
-
});
|
|
3300
|
-
}
|
|
3301
|
-
static async upsertBillingInformation(c, I) {
|
|
3302
|
-
await upsertIndividualBillingInformationV1({
|
|
3303
|
-
body: IndividualBillingInformationFormTransformer.toDto(I),
|
|
3304
|
-
path: { individualUuid: c }
|
|
3305
|
-
});
|
|
3306
|
-
}
|
|
3307
|
-
};
|
|
3308
|
-
function useIndividualIndexQuery(c) {
|
|
3309
|
-
return useOffsetInfiniteQuery({
|
|
3310
|
-
queryFn: (I) => IndividualService.getAll({
|
|
3311
|
-
pagination: I,
|
|
3312
|
-
search: c?.params?.search?.value
|
|
3313
|
-
}),
|
|
3314
|
-
queryKey: { individualIndex: { queryParams: c?.params } }
|
|
3315
|
-
});
|
|
3316
|
-
}
|
|
3317
|
-
var _hoisted_1$6 = { class: "text-sm" }, _hoisted_2$3 = {
|
|
3318
|
-
key: 0,
|
|
3319
|
-
class: "text-brand-500 text-xs"
|
|
3320
|
-
}, IndividualAutocomplete_default = /* @__PURE__ */ defineComponent({
|
|
3321
|
-
__name: "IndividualAutocomplete",
|
|
3322
|
-
props: /* @__PURE__ */ mergeModels({
|
|
3323
|
-
isTouched: { type: Boolean },
|
|
3324
|
-
errorMessage: {},
|
|
3325
|
-
label: {}
|
|
3326
|
-
}, {
|
|
3327
|
-
modelValue: { required: !0 },
|
|
3328
|
-
modelModifiers: {}
|
|
3329
|
-
}),
|
|
3330
|
-
emits: /* @__PURE__ */ mergeModels(["blur", "createNew"], ["update:modelValue"]),
|
|
3331
|
-
setup(c, { emit: I }) {
|
|
3332
|
-
let L = c, R = I, B = useI18n(), V = useModel(c, "modelValue"), H = ref(!1), U = useSearch({ persistInUrl: !1 }), W = useIndividualIndexQuery({ params: { search: U.debouncedSearch } }), G = computed(() => W.data.value?.data ?? []);
|
|
3333
|
-
function K(c) {
|
|
3334
|
-
c !== null && U.updateSearch(c);
|
|
3335
|
-
}
|
|
3336
|
-
function q() {
|
|
3337
|
-
R("createNew"), H.value = !1;
|
|
3338
|
-
}
|
|
3339
|
-
function J(c) {
|
|
3340
|
-
return G.value.find((I) => I.uuid === c)?.name ?? "-";
|
|
3341
|
-
}
|
|
3342
|
-
function Y() {
|
|
3343
|
-
R("blur");
|
|
3344
|
-
}
|
|
3345
|
-
return (c, I) => (openBlock(), createBlock(EntityAutocomplete_default, {
|
|
3346
|
-
modelValue: V.value,
|
|
3347
|
-
"onUpdate:modelValue": I[0] ||= (c) => V.value = c,
|
|
3348
|
-
label: L.label,
|
|
3349
|
-
"display-fn": J,
|
|
3350
|
-
placeholder: unref(B).t("component.select.search_placeholder"),
|
|
3351
|
-
"is-touched": L.isTouched,
|
|
3352
|
-
options: G.value,
|
|
3353
|
-
"is-loading": unref(W).isFetching.value,
|
|
3354
|
-
"error-message": L.errorMessage,
|
|
3355
|
-
onCreateNew: q,
|
|
3356
|
-
onSearch: K,
|
|
3357
|
-
onBlur: Y
|
|
3358
|
-
}, {
|
|
3359
|
-
option: withCtx(({ option: c, isHighlighted: I }) => [createElementVNode("div", { class: normalizeClass([{ "bg-brand-50": I }, "p-md px-lg rounded-md"]) }, [createElementVNode("p", _hoisted_1$6, toDisplayString(c.name), 1), c.email ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(c.email), 1)) : createCommentVNode("", !0)], 2)]),
|
|
3360
|
-
_: 1
|
|
3361
|
-
}, 8, [
|
|
3362
|
-
"modelValue",
|
|
3363
|
-
"label",
|
|
3364
|
-
"placeholder",
|
|
3365
|
-
"is-touched",
|
|
3366
|
-
"options",
|
|
3367
|
-
"is-loading",
|
|
3368
|
-
"error-message"
|
|
3369
|
-
]));
|
|
3370
|
-
}
|
|
3371
|
-
});
|
|
3372
|
-
function useContactPersonCreateMutation() {
|
|
3373
|
-
return ze({
|
|
3374
|
-
queryFn: async ({ body: c }) => await IndividualService.create({
|
|
3375
|
-
address: null,
|
|
3376
|
-
customFields: null,
|
|
3377
|
-
email: c.email,
|
|
3378
|
-
firstName: c.firstName,
|
|
3379
|
-
lastName: c.lastName,
|
|
3380
|
-
mobilePhone: c.mobilePhone,
|
|
3381
|
-
phone: c.phone
|
|
3382
|
-
}),
|
|
3383
|
-
queryKeysToInvalidate: {}
|
|
3384
|
-
});
|
|
3385
|
-
}
|
|
3386
|
-
var AppDialog_default = /* @__PURE__ */ defineComponent({
|
|
3387
|
-
__name: "AppDialog",
|
|
3388
|
-
props: {
|
|
3389
|
-
title: {},
|
|
3390
|
-
description: {}
|
|
3391
|
-
},
|
|
3392
|
-
emits: ["close"],
|
|
3393
|
-
setup(c, { emit: I }) {
|
|
3394
|
-
let L = c, R = I;
|
|
3395
|
-
function B() {
|
|
3396
|
-
R("close");
|
|
3397
|
-
}
|
|
3398
|
-
return (c, I) => (openBlock(), createBlock(unref(VcDialog), {
|
|
3399
|
-
"class-config": { content: "max-w-xl w-full" },
|
|
3400
|
-
onClose: B
|
|
3401
|
-
}, {
|
|
3402
|
-
default: withCtx(() => [createVNode(AppDialogContainer_default, { class: "gap-xl flex flex-1 flex-col" }, {
|
|
3403
|
-
default: withCtx(() => [createVNode(AppDialogHeader_default, {
|
|
3404
|
-
title: L.title,
|
|
3405
|
-
description: L.description,
|
|
3406
|
-
icon: "user"
|
|
3407
|
-
}, {
|
|
3408
|
-
"closse-button": withCtx(() => [createVNode(unref(VcDialogCloseButton))]),
|
|
3409
|
-
_: 1
|
|
3410
|
-
}, 8, ["title", "description"]), renderSlot(c.$slots, "default")]),
|
|
3411
|
-
_: 3
|
|
3412
|
-
})]),
|
|
3413
|
-
_: 3
|
|
3414
|
-
}));
|
|
3415
|
-
}
|
|
3416
|
-
}), _hoisted_1$5 = ["disabled", "type"], AppUnstyledButton_default = /* @__PURE__ */ defineComponent({
|
|
3417
|
-
__name: "AppUnstyledButton",
|
|
3418
|
-
props: {
|
|
3419
|
-
disabled: {
|
|
3420
|
-
type: Boolean,
|
|
3421
|
-
default: !1
|
|
3422
|
-
},
|
|
3423
|
-
type: { default: "button" }
|
|
3424
|
-
},
|
|
3425
|
-
emits: ["click"],
|
|
3426
|
-
setup(c) {
|
|
3427
|
-
return (I, L) => (openBlock(), createElementBlock("button", {
|
|
3428
|
-
disabled: c.disabled,
|
|
3429
|
-
type: c.type,
|
|
3430
|
-
class: "ring-ring cursor-pointer focus-visible:outline-fg-brand-primary-alt disabled:cursor-not-allowed disabled:opacity-50",
|
|
3431
|
-
onClick: L[0] ||= (c) => I.$emit("click", c)
|
|
3432
|
-
}, [renderSlot(I.$slots, "default")], 8, _hoisted_1$5));
|
|
3433
|
-
}
|
|
3434
|
-
}), ContactPersonFormContactField_default = /* @__PURE__ */ defineComponent({
|
|
3435
|
-
__name: "ContactPersonFormContactField",
|
|
3436
|
-
props: {
|
|
3437
|
-
email: {},
|
|
3438
|
-
mobilePhone: {},
|
|
3439
|
-
phone: {}
|
|
3440
|
-
},
|
|
3441
|
-
setup(c) {
|
|
3442
|
-
let I = c, L = useI18n();
|
|
3443
|
-
return (c, R) => (openBlock(), createElementBlock(Fragment, null, [
|
|
3444
|
-
createVNode(unref(VcTextField), mergeProps(unref(toFormField)(I.email), {
|
|
3445
|
-
label: unref(L).t("wise_crm.contact.create_dialog.form.fields.email"),
|
|
3446
|
-
placeholder: unref(L).t("wise_crm.contact.create_dialog.form.fields.email"),
|
|
3447
|
-
class: "col-span-2"
|
|
3448
|
-
}), null, 16, ["label", "placeholder"]),
|
|
3449
|
-
createVNode(AppAndOrSeparator_default, { class: "col-span-2" }, {
|
|
3450
|
-
default: withCtx(() => [createTextVNode(toDisplayString(unref(L).t("wise_crm.contact.create_dialog.form.seperator_label")), 1)]),
|
|
3451
|
-
_: 1
|
|
3452
|
-
}),
|
|
3453
|
-
createVNode(unref(VcPhoneNumberField), mergeProps(unref(toFormField)(I.mobilePhone), {
|
|
3454
|
-
label: unref(L).t("wise_crm.contact.create_dialog.form.fields.mobile_phone"),
|
|
3455
|
-
placeholder: unref(L).t("wise_crm.contact.create_dialog.form.fields.mobile_phone"),
|
|
3456
|
-
class: "col-span-2"
|
|
3457
|
-
}), null, 16, ["label", "placeholder"]),
|
|
3458
|
-
createVNode(AppAndOrSeparator_default, { class: "col-span-2" }, {
|
|
3459
|
-
default: withCtx(() => [createTextVNode(toDisplayString(unref(L).t("wise_crm.contact.create_dialog.form.seperator_label")), 1)]),
|
|
3460
|
-
_: 1
|
|
3461
|
-
}),
|
|
3462
|
-
createVNode(unref(VcPhoneNumberField), mergeProps(unref(toFormField)(I.phone), {
|
|
3463
|
-
label: unref(L).t("wise_crm.contact.create_dialog.form.fields.phone"),
|
|
3464
|
-
placeholder: unref(L).t("wise_crm.contact.create_dialog.form.fields.phone"),
|
|
3465
|
-
class: "col-span-2"
|
|
3466
|
-
}), null, 16, ["label", "placeholder"])
|
|
3467
|
-
], 64));
|
|
3468
|
-
}
|
|
3469
|
-
}), ContactPersonFormNameField_default = /* @__PURE__ */ defineComponent({
|
|
3470
|
-
__name: "ContactPersonFormNameField",
|
|
3471
|
-
props: {
|
|
3472
|
-
firstName: {},
|
|
3473
|
-
lastName: {}
|
|
3474
|
-
},
|
|
3475
|
-
setup(c) {
|
|
3476
|
-
let I = c, L = useI18n();
|
|
3477
|
-
return (c, R) => (openBlock(), createElementBlock(Fragment, null, [createVNode(unref(VcTextField), mergeProps(unref(toFormField)(I.firstName), {
|
|
3478
|
-
label: unref(L).t("wise_crm.contact.create_dialog.form.fields.first_name"),
|
|
3479
|
-
placeholder: unref(L).t("wise_crm.contact.create_dialog.form.fields.first_name")
|
|
3480
|
-
}), null, 16, ["label", "placeholder"]), createVNode(unref(VcTextField), mergeProps(unref(toFormField)(I.lastName), {
|
|
3481
|
-
label: unref(L).t("wise_crm.contact.create_dialog.form.fields.last_name"),
|
|
3482
|
-
placeholder: unref(L).t("wise_crm.contact.create_dialog.form.fields.last_name")
|
|
3483
|
-
}), null, 16, ["label", "placeholder"])], 64));
|
|
3484
|
-
}
|
|
3485
|
-
});
|
|
3486
|
-
const individualItemSchema = z.object({
|
|
3487
|
-
label: z.string(),
|
|
3488
|
-
value: individualUuidSchema
|
|
3489
|
-
});
|
|
3490
|
-
var AppIconLabelPair_default = /* @__PURE__ */ defineComponent({
|
|
3491
|
-
__name: "AppIconLabelPair",
|
|
3492
|
-
props: {
|
|
3493
|
-
icon: {},
|
|
3494
|
-
label: {},
|
|
3495
|
-
placeholder: {},
|
|
3496
|
-
textColor: {}
|
|
3497
|
-
},
|
|
3498
|
-
setup(c) {
|
|
3499
|
-
let I = c;
|
|
3500
|
-
return (c, L) => (openBlock(), createElementBlock("div", { class: normalizeClass([{
|
|
3501
|
-
"text-placeholder/50": I.label === null,
|
|
3502
|
-
"text-secondary": I.label !== null && !I.textColor,
|
|
3503
|
-
[I.textColor]: I.label !== null && !!I.textColor
|
|
3504
|
-
}, "gap-md flex items-center"]) }, [createVNode(unref(VcIcon), {
|
|
3505
|
-
icon: I.icon,
|
|
3506
|
-
class: "size-4 shrink-0"
|
|
3507
|
-
}, null, 8, ["icon"]), createElementVNode("p", null, toDisplayString(I.label === null ? I.placeholder : I.label), 1)], 2));
|
|
3508
|
-
}
|
|
3509
|
-
}), CrmDetailAccordionRoot_default = /* @__PURE__ */ defineComponent({
|
|
3510
|
-
__name: "CrmDetailAccordionRoot",
|
|
3511
|
-
props: {
|
|
3512
|
-
defaultValues: {},
|
|
3513
|
-
type: { default: "multiple" }
|
|
3514
|
-
},
|
|
3515
|
-
setup(c) {
|
|
3516
|
-
let I = c;
|
|
3517
|
-
return (c, L) => (openBlock(), createBlock(unref(AccordionRoot), {
|
|
3518
|
-
collapsible: !0,
|
|
3519
|
-
"default-value": I.defaultValues,
|
|
3520
|
-
type: I.type,
|
|
3521
|
-
class: "gap-md flex flex-col"
|
|
3522
|
-
}, {
|
|
3523
|
-
default: withCtx(() => [renderSlot(c.$slots, "default")]),
|
|
3524
|
-
_: 3
|
|
3525
|
-
}, 8, ["default-value", "type"]));
|
|
3526
|
-
}
|
|
3527
|
-
}), _hoisted_1$4 = { class: "group/item group/accordion-header gap-sm bg-tertiary pr-sm pl-lg outline-brand-600 relative isolate flex h-12 w-full items-center justify-between rounded-xl focus:outline-2" }, _hoisted_2$2 = { class: "sr-only" }, _hoisted_3$1 = { class: "gap-sm flex items-center" }, _hoisted_4 = { class: "gap-xs flex items-center justify-between" }, _hoisted_5 = {
|
|
3528
|
-
key: 0,
|
|
3529
|
-
class: "gap-sm px-md pointer-events-none flex items-center"
|
|
3530
|
-
}, CrmDetailSidebarAccordionItem_default = /* @__PURE__ */ defineComponent({
|
|
3531
|
-
__name: "CrmDetailSidebarAccordionItem",
|
|
3532
|
-
props: {
|
|
3533
|
-
isEmpty: {
|
|
3534
|
-
type: Boolean,
|
|
3535
|
-
default: !1
|
|
3536
|
-
},
|
|
3537
|
-
icon: {},
|
|
3538
|
-
label: {},
|
|
3539
|
-
value: {}
|
|
3540
|
-
},
|
|
3541
|
-
setup(c) {
|
|
3542
|
-
let I = c;
|
|
3543
|
-
return (L, R) => (openBlock(), createBlock(unref(AccordionItem), {
|
|
3544
|
-
value: I.value,
|
|
3545
|
-
disabled: I.isEmpty
|
|
3546
|
-
}, {
|
|
3547
|
-
default: withCtx(({ open: R }) => [createVNode(unref(AccordionHeader), null, {
|
|
3548
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_1$4, [
|
|
3549
|
-
createVNode(unref(AccordionTrigger), { class: "ring-brand-500 absolute inset-0 rounded-xl ring-offset-1 duration-200 outline-none focus-visible:ring-2" }, {
|
|
3550
|
-
default: withCtx(() => [createElementVNode("span", _hoisted_2$2, toDisplayString(c.label), 1)]),
|
|
3551
|
-
_: 1
|
|
3552
|
-
}),
|
|
3553
|
-
createElementVNode("span", _hoisted_3$1, [createVNode(unref(VcIcon), {
|
|
3554
|
-
icon: I.icon,
|
|
3555
|
-
class: "text-secondary size-4"
|
|
3556
|
-
}, null, 8, ["icon"]), createElementVNode("span", { class: normalizeClass([{
|
|
3557
|
-
"text-primary": R && !I.isEmpty,
|
|
3558
|
-
"text-secondary": !R
|
|
3559
|
-
}, "text-primary text-sm font-semibold"]) }, toDisplayString(c.label), 3)]),
|
|
3560
|
-
createElementVNode("div", _hoisted_4, [renderSlot(L.$slots, "actions"), I.isEmpty ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_5, [createVNode(unref(VcIcon), {
|
|
3561
|
-
class: normalizeClass([{ "-rotate-180": R }, "text-secondary size-4 duration-300"]),
|
|
3562
|
-
icon: "chevronDown"
|
|
3563
|
-
}, null, 8, ["class"])]))])
|
|
3564
|
-
])]),
|
|
3565
|
-
_: 2
|
|
3566
|
-
}, 1024), createVNode(unref(AnimatePresence), { initial: !1 }, {
|
|
3567
|
-
default: withCtx(() => [R ? (openBlock(), createBlock(unref(AccordionContent), {
|
|
3568
|
-
key: 0,
|
|
3569
|
-
class: "overflow-clip"
|
|
3570
|
-
}, {
|
|
3571
|
-
default: withCtx(() => [createVNode(unref(Motion), {
|
|
3572
|
-
initial: {
|
|
3573
|
-
opacity: 0,
|
|
3574
|
-
height: 0,
|
|
3575
|
-
y: -10
|
|
3576
|
-
},
|
|
3577
|
-
animate: {
|
|
3578
|
-
opacity: 1,
|
|
3579
|
-
height: "auto",
|
|
3580
|
-
filter: "blur(0px)",
|
|
3581
|
-
y: 0
|
|
3582
|
-
},
|
|
3583
|
-
exit: {
|
|
3584
|
-
opacity: 0,
|
|
3585
|
-
height: 0,
|
|
3586
|
-
filter: "blur(5px)",
|
|
3587
|
-
y: -10
|
|
3588
|
-
},
|
|
3589
|
-
transition: {
|
|
3590
|
-
bounce: 0,
|
|
3591
|
-
duration: .4,
|
|
3592
|
-
type: "spring"
|
|
3593
|
-
}
|
|
3594
|
-
}, {
|
|
3595
|
-
default: withCtx(() => [createElementVNode("div", { class: normalizeClass([{
|
|
3596
|
-
"py-md": !I.isEmpty,
|
|
3597
|
-
"py-0": I.isEmpty
|
|
3598
|
-
}, "gap-md flex flex-col"]) }, [renderSlot(L.$slots, "default")], 2)]),
|
|
3599
|
-
_: 3
|
|
3600
|
-
})]),
|
|
3601
|
-
_: 3
|
|
3602
|
-
})) : createCommentVNode("", !0)]),
|
|
3603
|
-
_: 2
|
|
3604
|
-
}, 1024)]),
|
|
3605
|
-
_: 3
|
|
3606
|
-
}, 8, ["value", "disabled"]));
|
|
3607
|
-
}
|
|
3608
|
-
}), _sfc_main$1 = {}, _hoisted_1$3 = { class: "border-secondary bg-primary p-lg rounded-xl border text-sm" };
|
|
3609
|
-
function _sfc_render$1(c, I) {
|
|
3610
|
-
return openBlock(), createElementBlock("div", _hoisted_1$3, [renderSlot(c.$slots, "default")]);
|
|
3611
|
-
}
|
|
3612
|
-
var CrmDetailSidebarCard_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main$1, [["render", _sfc_render$1]]), AppOpenEntityButton_default = /* @__PURE__ */ defineComponent({
|
|
3613
|
-
__name: "AppOpenEntityButton",
|
|
3614
|
-
props: {
|
|
3615
|
-
uuid: {},
|
|
3616
|
-
entityType: {}
|
|
3617
|
-
},
|
|
3618
|
-
setup(c) {
|
|
3619
|
-
let I = c, L = computed(() => getEntityRoute(I.entityType, I.uuid));
|
|
3620
|
-
return (c, I) => (openBlock(), createBlock(unref(VcRouterLinkButton), { to: L.value }, {
|
|
3621
|
-
default: withCtx(() => [renderSlot(c.$slots, "default")]),
|
|
3622
|
-
_: 3
|
|
3623
|
-
}, 8, ["to"]));
|
|
3624
|
-
}
|
|
3625
|
-
}), CrmDetailSidebarAccordionHeaderIconButton_default = /* @__PURE__ */ defineComponent({
|
|
3626
|
-
__name: "CrmDetailSidebarAccordionHeaderIconButton",
|
|
3627
|
-
props: {
|
|
3628
|
-
icon: {},
|
|
3629
|
-
label: {}
|
|
3630
|
-
},
|
|
3631
|
-
emits: ["click"],
|
|
3632
|
-
setup(c, { emit: I }) {
|
|
3633
|
-
let L = c, R = I;
|
|
3634
|
-
function B() {
|
|
3635
|
-
R("click");
|
|
3636
|
-
}
|
|
3637
|
-
return (c, I) => (openBlock(), createBlock(unref(VcIconButton), {
|
|
3638
|
-
icon: L.icon,
|
|
3639
|
-
label: L.label,
|
|
3640
|
-
variant: "tertiary",
|
|
3641
|
-
size: "sm",
|
|
3642
|
-
onClick: B
|
|
3643
|
-
}, null, 8, ["icon", "label"]));
|
|
3644
|
-
}
|
|
3645
|
-
}), _hoisted_1$2 = { class: "mt-lg flex h-full flex-1 flex-col overflow-hidden" }, _hoisted_2$1 = { class: "px-lg py-lg h-full overflow-y-auto" }, CrmDetailSidebarTabs_default = /* @__PURE__ */ defineComponent({
|
|
3646
|
-
__name: "CrmDetailSidebarTabs",
|
|
3647
|
-
props: /* @__PURE__ */ mergeModels({ tabs: {} }, {
|
|
3648
|
-
modelValue: { required: !0 },
|
|
3649
|
-
modelModifiers: {}
|
|
3650
|
-
}),
|
|
3651
|
-
emits: ["update:modelValue"],
|
|
3652
|
-
setup(c) {
|
|
3653
|
-
let I = c, L = useModel(c, "modelValue");
|
|
3654
|
-
return (c, R) => (openBlock(), createElementBlock("div", _hoisted_1$2, [createVNode(unref(VcTabs), {
|
|
3655
|
-
modelValue: L.value,
|
|
3656
|
-
"onUpdate:modelValue": R[0] ||= (c) => L.value = c,
|
|
3657
|
-
"class-config": {
|
|
3658
|
-
indicator: "group-data-[orientation=horizontal]:h-[0.2rem] group-data-[orientation=vertical]:h-[0.2rem]",
|
|
3659
|
-
base: "px-lg py-xxs"
|
|
3660
|
-
},
|
|
3661
|
-
class: "flex h-full flex-1 flex-col"
|
|
3662
|
-
}, {
|
|
3663
|
-
items: withCtx(() => [(openBlock(!0), createElementBlock(Fragment, null, renderList(I.tabs, (c) => (openBlock(), createBlock(unref(VcTabsItem), {
|
|
3664
|
-
key: c.value,
|
|
3665
|
-
value: c.value,
|
|
3666
|
-
class: "gap-sm flex items-center"
|
|
3667
|
-
}, {
|
|
3668
|
-
default: withCtx(() => [createVNode(unref(VcIcon), {
|
|
3669
|
-
icon: c.icon,
|
|
3670
|
-
class: "size-4"
|
|
3671
|
-
}, null, 8, ["icon"]), createElementVNode("span", null, toDisplayString(c.label), 1)]),
|
|
3672
|
-
_: 2
|
|
3673
|
-
}, 1032, ["value"]))), 128))]),
|
|
3674
|
-
content: withCtx(() => [createElementVNode("div", _hoisted_2$1, [renderSlot(c.$slots, "default")])]),
|
|
3675
|
-
_: 3
|
|
3676
|
-
}, 8, ["modelValue"])]));
|
|
3677
|
-
}
|
|
3678
|
-
}), _sfc_main = {}, _hoisted_1$1 = { class: "border-secondary bg-primary py-md px-md flex h-full w-100 flex-col overflow-hidden border-r" };
|
|
3679
|
-
function _sfc_render(c, I) {
|
|
3680
|
-
return openBlock(), createElementBlock("div", _hoisted_1$1, [renderSlot(c.$slots, "default")]);
|
|
3681
|
-
}
|
|
3682
|
-
var CrmDetailContainer_default = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]), _hoisted_1 = { class: "duration-500 starting:opacity-0 starting:blur-md" }, _hoisted_2 = { class: "text-secondary block text-center text-xl font-bold" }, _hoisted_3 = { class: "mt-md text-secondary mx-auto max-w-sm text-center text-sm" }, Error_default = /* @__PURE__ */ defineComponent({
|
|
3683
|
-
__name: "Error",
|
|
3684
|
-
props: {
|
|
3685
|
-
title: {},
|
|
3686
|
-
action: { default: null },
|
|
3687
|
-
message: {}
|
|
3688
|
-
},
|
|
3689
|
-
setup(c) {
|
|
3690
|
-
let I = c, L = useI18n();
|
|
3691
|
-
return (c, R) => (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
3692
|
-
createElementVNode("span", _hoisted_2, toDisplayString(I.title), 1),
|
|
3693
|
-
createElementVNode("p", _hoisted_3, toDisplayString(unref(L).t("component.error.message_prefix")) + " — " + toDisplayString(I.message), 1),
|
|
3694
|
-
I.action === null ? createCommentVNode("", !0) : (openBlock(), createBlock(unref(VcButton), {
|
|
3695
|
-
key: 0,
|
|
3696
|
-
class: "mt-2xl mx-auto",
|
|
3697
|
-
variant: "secondary",
|
|
3698
|
-
onClick: I.action.onClick
|
|
3699
|
-
}, {
|
|
3700
|
-
default: withCtx(() => [createTextVNode(toDisplayString(I.action.label), 1)]),
|
|
3701
|
-
_: 1
|
|
3702
|
-
}, 8, ["onClick"]))
|
|
3703
|
-
]));
|
|
3704
|
-
}
|
|
3705
|
-
});
|
|
3706
|
-
export { AppInfiniteScroll_default as $, useSearch as A, AppForm_default as B, AppHeightTransition_default as C, useGoogleMapsApiKey as D, useCrmConfig as E, useOffsetInfiniteQuery as F, AppDialogActionPrimary_default as G, AppConfirmDialog_default as H, NoteUpdateDialog_default as I, LoggerUtil as J, AppDialogActionCancel_default as K, AppDialogHeader_default as L, AppSidebarFormSubmitButton_default as M, AppSidebarFormFooter_default as N, AppColorProvider_default as O, AppAndOrSeparator_default as P, NoteService as Q, CrmDetailSidebarNotesView_default as R, AppSeparator_default as S, useEntityDetail as T, AppDialogContainer_default as U, i18nPlugin as V, AppDialogActions_default as W, useKeysetInfiniteQuery as X, createI18nKeyMap as Y, useNoteDeleteMutation as Z, useIndividualIndexQuery as _, AppOpenEntityButton_default as a, ActivityIndexPaginationTransformer as at, AppGlobalFormError_default as b, CrmDetailAccordionRoot_default as c, nl_BE_default as ct, ContactPersonFormNameField_default as d, AppEmptyState_default as et, ContactPersonFormContactField_default as f, IndividualAutocomplete_default as g, useContactPersonCreateMutation as h, CrmDetailSidebarAccordionHeaderIconButton_default as i, AddressTransformer as it, useRouteQueryState as j, EntityTypeUtil as k, AppIconLabelPair_default as l, en_US_default as lt, AppDialog_default as m, CrmDetailContainer_default as n, ContactPersonUpdateTransformer as nt, CrmDetailSidebarCard_default as o, ActivityIndexTransformer as ot, AppUnstyledButton_default as p, useApiErrorToast as q, CrmDetailSidebarTabs_default as r, StringUtil as rt, CrmDetailSidebarAccordionItem_default as s, individualUuidSchema as st, Error_default as t, AppGrid_default as tt, individualItemSchema as u, IndividualService as v, useCrm as w, EntityAutocomplete_default as x, IndividualUpdateTransformer as y, toFormField as z };
|