Merge pull request #1151 from frappe/main-hotfix
This commit is contained in:
commit
de14eb3ffb
@ -26,8 +26,9 @@ def create_default_manager_dashboard(force=False):
|
|||||||
doc.title = "Manager Dashboard"
|
doc.title = "Manager Dashboard"
|
||||||
doc.layout = default_manager_dashboard_layout()
|
doc.layout = default_manager_dashboard_layout()
|
||||||
doc.insert(ignore_permissions=True)
|
doc.insert(ignore_permissions=True)
|
||||||
elif force:
|
else:
|
||||||
doc = frappe.get_doc("CRM Dashboard", "Manager Dashboard")
|
doc = frappe.get_doc("CRM Dashboard", "Manager Dashboard")
|
||||||
doc.layout = default_manager_dashboard_layout()
|
if force:
|
||||||
doc.save(ignore_permissions=True)
|
doc.layout = default_manager_dashboard_layout()
|
||||||
|
doc.save(ignore_permissions=True)
|
||||||
return doc.layout
|
return doc.layout
|
||||||
|
|||||||
@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
||||||
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
||||||
"PO-Revision-Date: 2025-08-04 08:34\n"
|
"PO-Revision-Date: 2025-08-09 10:05\n"
|
||||||
"Last-Translator: shariq@frappe.io\n"
|
"Last-Translator: shariq@frappe.io\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -621,16 +621,16 @@ msgstr "Zwischen"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/General/BrandSettings.vue:40
|
#: frontend/src/components/Settings/General/BrandSettings.vue:40
|
||||||
msgid "Brand name"
|
msgid "Brand name"
|
||||||
msgstr ""
|
msgstr "Markenname"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/General/BrandSettings.vue:9
|
#: frontend/src/components/Settings/General/BrandSettings.vue:9
|
||||||
msgid "Brand settings"
|
msgid "Brand settings"
|
||||||
msgstr ""
|
msgstr "Markeneinstellungen"
|
||||||
|
|
||||||
#. Label of the branding_tab (Tab Break) field in DocType 'FCRM Settings'
|
#. Label of the branding_tab (Tab Break) field in DocType 'FCRM Settings'
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
msgid "Branding"
|
msgid "Branding"
|
||||||
msgstr ""
|
msgstr "Firmenlogo"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/EditValueModal.vue:2
|
#: frontend/src/components/Modals/EditValueModal.vue:2
|
||||||
msgid "Bulk Edit"
|
msgid "Bulk Edit"
|
||||||
@ -1295,7 +1295,7 @@ msgstr "Interessent erstellen"
|
|||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:344
|
#: frontend/src/components/Layouts/AppSidebar.vue:344
|
||||||
msgid "Create your first lead"
|
msgid "Create your first lead"
|
||||||
msgstr ""
|
msgstr "Erstellen Sie Ihren ersten Interessenten"
|
||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:414
|
#: frontend/src/components/Layouts/AppSidebar.vue:414
|
||||||
msgid "Create your first note"
|
msgid "Create your first note"
|
||||||
@ -1303,7 +1303,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:394
|
#: frontend/src/components/Layouts/AppSidebar.vue:394
|
||||||
msgid "Create your first task"
|
msgid "Create your first task"
|
||||||
msgstr ""
|
msgstr "Erstellen Sie Ihre erste Aufgabe"
|
||||||
|
|
||||||
#. Label of the currency (Link) field in DocType 'CRM Deal'
|
#. Label of the currency (Link) field in DocType 'CRM Deal'
|
||||||
#. Label of the currency (Link) field in DocType 'CRM Organization'
|
#. Label of the currency (Link) field in DocType 'CRM Organization'
|
||||||
@ -1334,7 +1334,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:536
|
#: frontend/src/components/Layouts/AppSidebar.vue:536
|
||||||
msgid "Custom branding"
|
msgid "Custom branding"
|
||||||
msgstr ""
|
msgstr "Benutzerdefiniertes Branding"
|
||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:585
|
#: frontend/src/components/Layouts/AppSidebar.vue:585
|
||||||
msgid "Custom fields"
|
msgid "Custom fields"
|
||||||
@ -1568,7 +1568,7 @@ msgstr "Ansicht löschen"
|
|||||||
|
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:65
|
#: frontend/src/components/DeleteLinkedDocModal.vue:65
|
||||||
msgid "Delete all"
|
msgid "Delete all"
|
||||||
msgstr ""
|
msgstr "Alles löschen"
|
||||||
|
|
||||||
#: frontend/src/components/Activities/AttachmentArea.vue:62
|
#: frontend/src/components/Activities/AttachmentArea.vue:62
|
||||||
#: frontend/src/components/Activities/AttachmentArea.vue:138
|
#: frontend/src/components/Activities/AttachmentArea.vue:138
|
||||||
@ -1581,15 +1581,15 @@ msgstr "Kontakt löschen"
|
|||||||
|
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:229
|
#: frontend/src/components/DeleteLinkedDocModal.vue:229
|
||||||
msgid "Delete linked item"
|
msgid "Delete linked item"
|
||||||
msgstr ""
|
msgstr "Verknüpftes Element löschen"
|
||||||
|
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:11
|
#: frontend/src/components/DeleteLinkedDocModal.vue:11
|
||||||
msgid "Delete or unlink linked documents"
|
msgid "Delete or unlink linked documents"
|
||||||
msgstr ""
|
msgstr "Verknüpfte Dokumente löschen oder ihre Verknüpfung aufheben"
|
||||||
|
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:23
|
#: frontend/src/components/DeleteLinkedDocModal.vue:23
|
||||||
msgid "Delete or unlink these linked documents before deleting this document"
|
msgid "Delete or unlink these linked documents before deleting this document"
|
||||||
msgstr ""
|
msgstr "Verknüpfte Dokumente löschen oder ihre Verknüpfung aufheben bevor dieses Dokument gelöscht wird"
|
||||||
|
|
||||||
#: frontend/src/pages/MobileOrganization.vue:263
|
#: frontend/src/pages/MobileOrganization.vue:263
|
||||||
msgid "Delete organization"
|
msgid "Delete organization"
|
||||||
@ -1597,11 +1597,11 @@ msgstr "Organisation löschen"
|
|||||||
|
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:66
|
#: frontend/src/components/DeleteLinkedDocModal.vue:66
|
||||||
msgid "Delete {0} item(s)"
|
msgid "Delete {0} item(s)"
|
||||||
msgstr ""
|
msgstr "{0} Element(e) löschen"
|
||||||
|
|
||||||
#: frontend/src/components/BulkDeleteLinkedDocModal.vue:28
|
#: frontend/src/components/BulkDeleteLinkedDocModal.vue:28
|
||||||
msgid "Delete {0} items"
|
msgid "Delete {0} items"
|
||||||
msgstr ""
|
msgstr "{0} Element(e) löschen"
|
||||||
|
|
||||||
#. Label of the description (Text Editor) field in DocType 'CRM Holiday'
|
#. Label of the description (Text Editor) field in DocType 'CRM Holiday'
|
||||||
#. Label of the description (Text Editor) field in DocType 'CRM Lost Reason'
|
#. Label of the description (Text Editor) field in DocType 'CRM Lost Reason'
|
||||||
@ -1676,7 +1676,7 @@ msgstr "Dokumententyp"
|
|||||||
|
|
||||||
#: frontend/src/data/document.js:28
|
#: frontend/src/data/document.js:28
|
||||||
msgid "Document does not exist"
|
msgid "Document does not exist"
|
||||||
msgstr ""
|
msgstr "Dokument existiert nicht"
|
||||||
|
|
||||||
#: crm/api/activities.py:19
|
#: crm/api/activities.py:19
|
||||||
msgid "Document not found"
|
msgid "Document not found"
|
||||||
@ -1684,7 +1684,7 @@ msgstr "Dokument nicht gefunden"
|
|||||||
|
|
||||||
#: frontend/src/data/document.js:42
|
#: frontend/src/data/document.js:42
|
||||||
msgid "Document updated successfully"
|
msgid "Document updated successfully"
|
||||||
msgstr ""
|
msgstr "Dokument erfolgreich aktualisiert"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/AboutModal.vue:62
|
#: frontend/src/components/Modals/AboutModal.vue:62
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
@ -1698,7 +1698,7 @@ msgstr "Erledigt"
|
|||||||
#: frontend/src/components/Dashboard/AddChartModal.vue:33
|
#: frontend/src/components/Dashboard/AddChartModal.vue:33
|
||||||
#: frontend/src/components/Dashboard/AddChartModal.vue:71
|
#: frontend/src/components/Dashboard/AddChartModal.vue:71
|
||||||
msgid "Donut chart"
|
msgid "Donut chart"
|
||||||
msgstr ""
|
msgstr "Donut-Diagramm"
|
||||||
|
|
||||||
#: frontend/src/components/Activities/AudioPlayer.vue:166
|
#: frontend/src/components/Activities/AudioPlayer.vue:166
|
||||||
#: frontend/src/components/ViewControls.vue:254
|
#: frontend/src/components/ViewControls.vue:254
|
||||||
@ -1737,7 +1737,7 @@ msgstr "Ansicht duplizieren"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/EmailTemplate/NewEmailTemplate.vue:10
|
#: frontend/src/components/Settings/EmailTemplate/NewEmailTemplate.vue:10
|
||||||
msgid "Duplicate template"
|
msgid "Duplicate template"
|
||||||
msgstr ""
|
msgstr "Vorlage duplizieren"
|
||||||
|
|
||||||
#. Label of the duration (Duration) field in DocType 'CRM Call Log'
|
#. Label of the duration (Duration) field in DocType 'CRM Call Log'
|
||||||
#. Label of the duration (Duration) field in DocType 'CRM Status Change Log'
|
#. Label of the duration (Duration) field in DocType 'CRM Status Change Log'
|
||||||
@ -1778,11 +1778,11 @@ msgstr "ERPNext ist nicht mit dem CRM integriert"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/ERPNextSettings.vue:4
|
#: frontend/src/components/Settings/ERPNextSettings.vue:4
|
||||||
msgid "ERPNext settings"
|
msgid "ERPNext settings"
|
||||||
msgstr ""
|
msgstr "ERPNext-Einstellungen"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/ERPNextSettings.vue:5
|
#: frontend/src/components/Settings/ERPNextSettings.vue:5
|
||||||
msgid "ERPNext settings updated"
|
msgid "ERPNext settings updated"
|
||||||
msgstr ""
|
msgstr "ERPNext-Einstellungen aktualisiert"
|
||||||
|
|
||||||
#: frontend/src/components/FieldLayout/Field.vue:91
|
#: frontend/src/components/FieldLayout/Field.vue:91
|
||||||
#: frontend/src/components/FieldLayoutEditor.vue:319
|
#: frontend/src/components/FieldLayoutEditor.vue:319
|
||||||
@ -1803,7 +1803,7 @@ msgstr "Layout der Datenfelder bearbeiten"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/EmailEdit.vue:6
|
#: frontend/src/components/Settings/EmailEdit.vue:6
|
||||||
msgid "Edit Email"
|
msgid "Edit Email"
|
||||||
msgstr ""
|
msgstr "E-Mail bearbeiten"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/SidePanelModal.vue:7
|
#: frontend/src/components/Modals/SidePanelModal.vue:7
|
||||||
msgid "Edit Field Layout"
|
msgid "Edit Field Layout"
|
||||||
@ -1861,11 +1861,11 @@ msgstr "E-Mail"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/Settings.vue:107
|
#: frontend/src/components/Settings/Settings.vue:107
|
||||||
msgid "Email Accounts"
|
msgid "Email Accounts"
|
||||||
msgstr ""
|
msgstr "E-Mail Konten"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:168
|
#: frontend/src/components/Settings/emailConfig.js:168
|
||||||
msgid "Email ID is required"
|
msgid "Email ID is required"
|
||||||
msgstr ""
|
msgstr "E-Mail ID ist erforderlich"
|
||||||
|
|
||||||
#. Label of the email_sent_at (Datetime) field in DocType 'CRM Invitation'
|
#. Label of the email_sent_at (Datetime) field in DocType 'CRM Invitation'
|
||||||
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
||||||
@ -1879,19 +1879,19 @@ msgstr "E-Mail-Vorlagen"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/EmailAdd.vue:141
|
#: frontend/src/components/Settings/EmailAdd.vue:141
|
||||||
msgid "Email account created successfully"
|
msgid "Email account created successfully"
|
||||||
msgstr ""
|
msgstr "E-Mail-Konto erfolgreich erstellt"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/EmailEdit.vue:208
|
#: frontend/src/components/Settings/EmailEdit.vue:208
|
||||||
msgid "Email account updated successfully"
|
msgid "Email account updated successfully"
|
||||||
msgstr ""
|
msgstr "E-Mail-Konto erfolgreich aktualisiert"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/EmailAccountList.vue:7
|
#: frontend/src/components/Settings/EmailAccountList.vue:7
|
||||||
msgid "Email accounts"
|
msgid "Email accounts"
|
||||||
msgstr ""
|
msgstr "E-Mail-Konten"
|
||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:573
|
#: frontend/src/components/Layouts/AppSidebar.vue:573
|
||||||
msgid "Email communication"
|
msgid "Email communication"
|
||||||
msgstr ""
|
msgstr "E-Mail-Kommunikation"
|
||||||
|
|
||||||
#: frontend/src/components/EmailEditor.vue:206
|
#: frontend/src/components/EmailEditor.vue:206
|
||||||
msgid "Email from Lead"
|
msgid "Email from Lead"
|
||||||
@ -1899,11 +1899,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:552
|
#: frontend/src/components/Layouts/AppSidebar.vue:552
|
||||||
msgid "Email template"
|
msgid "Email template"
|
||||||
msgstr ""
|
msgstr "E-Mail-Vorlage"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/EmailTemplate/EmailTemplates.vue:7
|
#: frontend/src/components/Settings/EmailTemplate/EmailTemplates.vue:7
|
||||||
msgid "Email templates"
|
msgid "Email templates"
|
||||||
msgstr ""
|
msgstr "E-Mail-Vorlagen"
|
||||||
|
|
||||||
#: frontend/src/pages/Deal.vue:545 frontend/src/pages/Lead.vue:411
|
#: frontend/src/pages/Deal.vue:545 frontend/src/pages/Lead.vue:411
|
||||||
#: frontend/src/pages/MobileDeal.vue:437 frontend/src/pages/MobileLead.vue:344
|
#: frontend/src/pages/MobileDeal.vue:437 frontend/src/pages/MobileLead.vue:344
|
||||||
@ -1929,7 +1929,7 @@ msgstr "ermöglichen"
|
|||||||
#. Label of the enable_forecasting (Check) field in DocType 'FCRM Settings'
|
#. Label of the enable_forecasting (Check) field in DocType 'FCRM Settings'
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
msgid "Enable Forecasting"
|
msgid "Enable Forecasting"
|
||||||
msgstr ""
|
msgstr "Vorhersage aktivieren"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:28
|
#: frontend/src/components/Settings/emailConfig.js:28
|
||||||
msgid "Enable Incoming"
|
msgid "Enable Incoming"
|
||||||
@ -1941,7 +1941,7 @@ msgstr "Ausgehend aktivieren"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/General/GeneralSettings.vue:19
|
#: frontend/src/components/Settings/General/GeneralSettings.vue:19
|
||||||
msgid "Enable forecasting"
|
msgid "Enable forecasting"
|
||||||
msgstr ""
|
msgstr "Vorhersage aktivieren"
|
||||||
|
|
||||||
#. Label of the enabled (Check) field in DocType 'CRM Exotel Settings'
|
#. Label of the enabled (Check) field in DocType 'CRM Exotel Settings'
|
||||||
#. Label of the enabled (Check) field in DocType 'CRM Form Script'
|
#. Label of the enabled (Check) field in DocType 'CRM Form Script'
|
||||||
@ -2185,7 +2185,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
#: frontend/src/components/Settings/General/BrandSettings.vue:81
|
#: frontend/src/components/Settings/General/BrandSettings.vue:81
|
||||||
msgid "Favicon"
|
msgid "Favicon"
|
||||||
msgstr ""
|
msgstr "Favicon"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/EditValueModal.vue:5
|
#: frontend/src/components/Modals/EditValueModal.vue:5
|
||||||
msgid "Field"
|
msgid "Field"
|
||||||
@ -2485,7 +2485,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:47
|
#: frontend/src/components/Settings/emailConfig.js:47
|
||||||
msgid "If enabled, all replies to your company (eg: replies@yourcomany.com) will come to this account. Note: Only one account can be default incoming."
|
msgid "If enabled, all replies to your company (eg: replies@yourcomany.com) will come to this account. Note: Only one account can be default incoming."
|
||||||
msgstr ""
|
msgstr "Falls aktiviert, werden alle Antworten an Ihr Unternehmen (z.B. replies@yourcomany.com) an dieses Konto gesendet. Hinweis: Es kann nur ein Konto als Standard-Eingang festgelegt werden."
|
||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:39
|
#: frontend/src/components/Settings/emailConfig.js:39
|
||||||
msgid "If enabled, outgoing emails can be sent from this account."
|
msgid "If enabled, outgoing emails can be sent from this account."
|
||||||
@ -3299,7 +3299,7 @@ msgstr "Nächste Woche"
|
|||||||
|
|
||||||
#: frontend/src/components/Filter.vue:672
|
#: frontend/src/components/Filter.vue:672
|
||||||
msgid "Next Year"
|
msgid "Next Year"
|
||||||
msgstr ""
|
msgstr "Nächstes Jahr"
|
||||||
|
|
||||||
#: frontend/src/components/Controls/Grid.vue:27
|
#: frontend/src/components/Controls/Grid.vue:27
|
||||||
msgid "No"
|
msgid "No"
|
||||||
|
|||||||
@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
||||||
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
||||||
"PO-Revision-Date: 2025-08-04 08:34\n"
|
"PO-Revision-Date: 2025-08-12 11:22\n"
|
||||||
"Last-Translator: shariq@frappe.io\n"
|
"Last-Translator: shariq@frappe.io\n"
|
||||||
"Language-Team: Persian\n"
|
"Language-Team: Persian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -166,7 +166,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/crm_invitation/crm_invitation.js:7
|
#: crm/fcrm/doctype/crm_invitation/crm_invitation.js:7
|
||||||
msgid "Accept Invitation"
|
msgid "Accept Invitation"
|
||||||
msgstr ""
|
msgstr "پذیرش دعوت نامه"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'CRM Invitation'
|
#. Option for the 'Status' (Select) field in DocType 'CRM Invitation'
|
||||||
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
||||||
@ -176,7 +176,7 @@ msgstr "پذیرفته شده"
|
|||||||
#. Label of the accepted_at (Datetime) field in DocType 'CRM Invitation'
|
#. Label of the accepted_at (Datetime) field in DocType 'CRM Invitation'
|
||||||
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
#: crm/fcrm/doctype/crm_invitation/crm_invitation.json
|
||||||
msgid "Accepted At"
|
msgid "Accepted At"
|
||||||
msgstr ""
|
msgstr "پذیرفته شده در"
|
||||||
|
|
||||||
#. Label of the access_key (Data) field in DocType 'FCRM Settings'
|
#. Label of the access_key (Data) field in DocType 'FCRM Settings'
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
@ -189,7 +189,7 @@ msgstr "کلید دسترسی برای ارائهدهنده خدمات لاز
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/General/CurrencySettings.vue:97
|
#: frontend/src/components/Settings/General/CurrencySettings.vue:97
|
||||||
msgid "Access key"
|
msgid "Access key"
|
||||||
msgstr ""
|
msgstr "کلید دسترسی"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/General/CurrencySettings.vue:101
|
#: frontend/src/components/Settings/General/CurrencySettings.vue:101
|
||||||
msgid "Access key for Exchangerate Host. Required for fetching exchange rates."
|
msgid "Access key for Exchangerate Host. Required for fetching exchange rates."
|
||||||
@ -245,7 +245,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Kanban/KanbanSettings.vue:84
|
#: frontend/src/components/Kanban/KanbanSettings.vue:84
|
||||||
#: frontend/src/components/SidePanelLayoutEditor.vue:98
|
#: frontend/src/components/SidePanelLayoutEditor.vue:98
|
||||||
msgid "Add Field"
|
msgid "Add Field"
|
||||||
msgstr ""
|
msgstr "افزودن فیلد"
|
||||||
|
|
||||||
#: frontend/src/components/Filter.vue:138
|
#: frontend/src/components/Filter.vue:138
|
||||||
msgid "Add Filter"
|
msgid "Add Filter"
|
||||||
@ -258,15 +258,15 @@ msgstr "افزودن ردیف"
|
|||||||
#: frontend/src/components/FieldLayoutEditor.vue:200
|
#: frontend/src/components/FieldLayoutEditor.vue:200
|
||||||
#: frontend/src/components/SidePanelLayoutEditor.vue:130
|
#: frontend/src/components/SidePanelLayoutEditor.vue:130
|
||||||
msgid "Add Section"
|
msgid "Add Section"
|
||||||
msgstr ""
|
msgstr "افزودن بخش"
|
||||||
|
|
||||||
#: frontend/src/components/SortBy.vue:148
|
#: frontend/src/components/SortBy.vue:148
|
||||||
msgid "Add Sort"
|
msgid "Add Sort"
|
||||||
msgstr ""
|
msgstr "افزودن مرتبسازی"
|
||||||
|
|
||||||
#: frontend/src/components/FieldLayoutEditor.vue:62
|
#: frontend/src/components/FieldLayoutEditor.vue:62
|
||||||
msgid "Add Tab"
|
msgid "Add Tab"
|
||||||
msgstr ""
|
msgstr "افزودن تب"
|
||||||
|
|
||||||
#. Label of the add_weekly_holidays_section (Section Break) field in DocType
|
#. Label of the add_weekly_holidays_section (Section Break) field in DocType
|
||||||
#. 'CRM Holiday List'
|
#. 'CRM Holiday List'
|
||||||
@ -405,7 +405,7 @@ msgstr "درآمد سالانه"
|
|||||||
#: frontend/src/components/Modals/DealModal.vue:201
|
#: frontend/src/components/Modals/DealModal.vue:201
|
||||||
#: frontend/src/components/Modals/LeadModal.vue:142
|
#: frontend/src/components/Modals/LeadModal.vue:142
|
||||||
msgid "Annual Revenue should be a number"
|
msgid "Annual Revenue should be a number"
|
||||||
msgstr ""
|
msgstr "درآمد سالانه باید یک عدد باشد"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/General/BrandSettings.vue:69
|
#: frontend/src/components/Settings/General/BrandSettings.vue:69
|
||||||
msgid "Appears in the left sidebar. Recommended size is 32x32 px in PNG or SVG"
|
msgid "Appears in the left sidebar. Recommended size is 32x32 px in PNG or SVG"
|
||||||
@ -1033,12 +1033,12 @@ msgstr "ستون ها"
|
|||||||
#: frontend/src/components/CommunicationArea.vue:19
|
#: frontend/src/components/CommunicationArea.vue:19
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:574
|
#: frontend/src/components/Layouts/AppSidebar.vue:574
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "اظهار نظر"
|
msgstr "دیدگاه"
|
||||||
|
|
||||||
#: frontend/src/pages/Deal.vue:550 frontend/src/pages/Lead.vue:416
|
#: frontend/src/pages/Deal.vue:550 frontend/src/pages/Lead.vue:416
|
||||||
#: frontend/src/pages/MobileDeal.vue:442 frontend/src/pages/MobileLead.vue:349
|
#: frontend/src/pages/MobileDeal.vue:442 frontend/src/pages/MobileLead.vue:349
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "نظرات"
|
msgstr "دیدگاهها"
|
||||||
|
|
||||||
#: crm/api/dashboard.py:884
|
#: crm/api/dashboard.py:884
|
||||||
msgid "Common reasons for losing deals"
|
msgid "Common reasons for losing deals"
|
||||||
@ -1142,7 +1142,7 @@ msgstr "مخاطب قبلاً اضافه شده است"
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.py:211
|
#: crm/fcrm/doctype/crm_lead/crm_lead.py:211
|
||||||
msgid "Contact already exists with {0}"
|
msgid "Contact already exists with {0}"
|
||||||
msgstr ""
|
msgstr "مخاطب از قبل با {0} وجود دارد"
|
||||||
|
|
||||||
#: frontend/src/pages/Contact.vue:282 frontend/src/pages/MobileContact.vue:255
|
#: frontend/src/pages/Contact.vue:282 frontend/src/pages/MobileContact.vue:255
|
||||||
msgid "Contact image updated"
|
msgid "Contact image updated"
|
||||||
@ -2565,7 +2565,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:593
|
#: frontend/src/components/Layouts/AppSidebar.vue:593
|
||||||
msgid "Integration"
|
msgid "Integration"
|
||||||
msgstr ""
|
msgstr "یکپارچه سازی"
|
||||||
|
|
||||||
#: crm/integrations/exotel/handler.py:73
|
#: crm/integrations/exotel/handler.py:73
|
||||||
msgid "Integration Not Enabled"
|
msgid "Integration Not Enabled"
|
||||||
@ -4194,7 +4194,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
||||||
msgid "SLA Status"
|
msgid "SLA Status"
|
||||||
msgstr ""
|
msgstr "وضعیت SLA"
|
||||||
|
|
||||||
#: frontend/src/components/EmailEditor.vue:82
|
#: frontend/src/components/EmailEditor.vue:82
|
||||||
msgid "SUBJECT"
|
msgid "SUBJECT"
|
||||||
@ -4498,7 +4498,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/FieldLayoutEditor.vue:355
|
#: frontend/src/components/FieldLayoutEditor.vue:355
|
||||||
msgid "Show label"
|
msgid "Show label"
|
||||||
msgstr ""
|
msgstr "نمایش برچسب"
|
||||||
|
|
||||||
#: frontend/src/components/Controls/GridRowFieldsModal.vue:20
|
#: frontend/src/components/Controls/GridRowFieldsModal.vue:20
|
||||||
#: frontend/src/components/Modals/DataFieldsModal.vue:20
|
#: frontend/src/components/Modals/DataFieldsModal.vue:20
|
||||||
@ -4648,7 +4648,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/FilesUploader/FilesUploader.vue:49
|
#: frontend/src/components/FilesUploader/FilesUploader.vue:49
|
||||||
msgid "Switch camera"
|
msgid "Switch camera"
|
||||||
msgstr ""
|
msgstr "تغییر دوربین"
|
||||||
|
|
||||||
#: frontend/src/pages/Welcome.vue:32
|
#: frontend/src/pages/Welcome.vue:32
|
||||||
msgid "Sync your contacts,email and calenders"
|
msgid "Sync your contacts,email and calenders"
|
||||||
@ -4678,7 +4678,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Telephony/ExotelCallUI.vue:151
|
#: frontend/src/components/Telephony/ExotelCallUI.vue:151
|
||||||
msgid "Take a note..."
|
msgid "Take a note..."
|
||||||
msgstr ""
|
msgstr "یادداشت کنید..."
|
||||||
|
|
||||||
#. Option for the 'Type' (Select) field in DocType 'CRM Notification'
|
#. Option for the 'Type' (Select) field in DocType 'CRM Notification'
|
||||||
#: crm/fcrm/doctype/crm_notification/crm_notification.json
|
#: crm/fcrm/doctype/crm_notification/crm_notification.json
|
||||||
@ -4762,7 +4762,7 @@ msgstr "نام منطقه"
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/crm_service_level_agreement/crm_service_level_agreement.py:46
|
#: crm/fcrm/doctype/crm_service_level_agreement/crm_service_level_agreement.py:46
|
||||||
msgid "The Condition '{0}' is invalid: {1}"
|
msgid "The Condition '{0}' is invalid: {1}"
|
||||||
msgstr ""
|
msgstr "شرط '{0}' نامعتبر است: {1}"
|
||||||
|
|
||||||
#. Description of the 'Exchange Rate' (Float) field in DocType 'CRM Deal'
|
#. Description of the 'Exchange Rate' (Float) field in DocType 'CRM Deal'
|
||||||
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
||||||
@ -4939,7 +4939,7 @@ msgstr "سهشنبه"
|
|||||||
#. Label of the twiml_sid (Data) field in DocType 'CRM Twilio Settings'
|
#. Label of the twiml_sid (Data) field in DocType 'CRM Twilio Settings'
|
||||||
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.json
|
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.json
|
||||||
msgid "TwiML SID"
|
msgid "TwiML SID"
|
||||||
msgstr ""
|
msgstr "TwiML SID"
|
||||||
|
|
||||||
#. Option for the 'Telephony Medium' (Select) field in DocType 'CRM Call Log'
|
#. Option for the 'Telephony Medium' (Select) field in DocType 'CRM Call Log'
|
||||||
#. Label of the twilio (Check) field in DocType 'CRM Telephony Agent'
|
#. Label of the twilio (Check) field in DocType 'CRM Telephony Agent'
|
||||||
@ -4951,7 +4951,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Settings/TelephonySettings.vue:40
|
#: frontend/src/components/Settings/TelephonySettings.vue:40
|
||||||
#: frontend/src/components/Settings/TelephonySettings.vue:50
|
#: frontend/src/components/Settings/TelephonySettings.vue:50
|
||||||
msgid "Twilio"
|
msgid "Twilio"
|
||||||
msgstr ""
|
msgstr "Twilio"
|
||||||
|
|
||||||
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.py:59
|
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.py:59
|
||||||
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.py:60
|
#: crm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.py:60
|
||||||
@ -4965,7 +4965,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/TelephonySettings.vue:289
|
#: frontend/src/components/Settings/TelephonySettings.vue:289
|
||||||
msgid "Twilio is not enabled"
|
msgid "Twilio is not enabled"
|
||||||
msgstr ""
|
msgstr "Twilio فعال نیست"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/TelephonySettings.vue:125
|
#: frontend/src/components/Settings/TelephonySettings.vue:125
|
||||||
msgid "Twilio settings updated successfully"
|
msgid "Twilio settings updated successfully"
|
||||||
@ -5377,7 +5377,7 @@ msgstr "group_by"
|
|||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:16
|
#: frontend/src/components/Activities/CallArea.vue:16
|
||||||
msgid "has made a call"
|
msgid "has made a call"
|
||||||
msgstr ""
|
msgstr "تماس گرفته است"
|
||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:15
|
#: frontend/src/components/Activities/CallArea.vue:15
|
||||||
msgid "has reached out"
|
msgid "has reached out"
|
||||||
|
|||||||
@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
||||||
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
||||||
"PO-Revision-Date: 2025-08-08 10:07\n"
|
"PO-Revision-Date: 2025-08-11 10:38\n"
|
||||||
"Last-Translator: shariq@frappe.io\n"
|
"Last-Translator: shariq@frappe.io\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -208,7 +208,7 @@ msgstr "SID dell'Account"
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:165
|
#: frontend/src/components/Settings/emailConfig.js:165
|
||||||
msgid "Account name is required"
|
msgid "Account name is required"
|
||||||
msgstr "Il nome dell'account è obbligatorio"
|
msgstr "Il nome dell'Account è obbligatorio"
|
||||||
|
|
||||||
#: frontend/src/components/CustomActions.vue:73
|
#: frontend/src/components/CustomActions.vue:73
|
||||||
#: frontend/src/components/ViewControls.vue:683
|
#: frontend/src/components/ViewControls.vue:683
|
||||||
@ -377,7 +377,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/data/document.js:63
|
#: frontend/src/data/document.js:63
|
||||||
msgid "An error occurred while updating the document"
|
msgid "An error occurred while updating the document"
|
||||||
msgstr ""
|
msgstr "Si è verificato un errore durante l'aggiornamento del documento"
|
||||||
|
|
||||||
#. Description of the 'Favicon' (Attach) field in DocType 'FCRM Settings'
|
#. Description of the 'Favicon' (Attach) field in DocType 'FCRM Settings'
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
@ -472,7 +472,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.py:193
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.py:193
|
||||||
msgid "Ask your manager to set up the Exchange Rate Provider, as default provider does not support currency conversion for {0} to {1}."
|
msgid "Ask your manager to set up the Exchange Rate Provider, as default provider does not support currency conversion for {0} to {1}."
|
||||||
msgstr ""
|
msgstr "Chiedi al tuo manager di configurare un fornitore di tassi di cambio, poiché quello predefinito non supporta la conversione da {0} a {1}."
|
||||||
|
|
||||||
#: frontend/src/components/ListBulkActions.vue:184
|
#: frontend/src/components/ListBulkActions.vue:184
|
||||||
#: frontend/src/components/Modals/AssignmentModal.vue:5
|
#: frontend/src/components/Modals/AssignmentModal.vue:5
|
||||||
@ -726,7 +726,7 @@ msgstr ""
|
|||||||
#. Name of a DocType
|
#. Name of a DocType
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
||||||
msgid "CRM Lead"
|
msgid "CRM Lead"
|
||||||
msgstr ""
|
msgstr "Offerta CRM"
|
||||||
|
|
||||||
#. Name of a DocType
|
#. Name of a DocType
|
||||||
#: crm/fcrm/doctype/crm_lead_source/crm_lead_source.json
|
#: crm/fcrm/doctype/crm_lead_source/crm_lead_source.json
|
||||||
@ -791,7 +791,7 @@ msgstr ""
|
|||||||
#. Name of a DocType
|
#. Name of a DocType
|
||||||
#: crm/fcrm/doctype/crm_task/crm_task.json
|
#: crm/fcrm/doctype/crm_task/crm_task.json
|
||||||
msgid "CRM Task"
|
msgid "CRM Task"
|
||||||
msgstr ""
|
msgstr "Attività CRM"
|
||||||
|
|
||||||
#. Name of a DocType
|
#. Name of a DocType
|
||||||
#: crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json
|
#: crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json
|
||||||
@ -824,7 +824,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/ViewControls.vue:272
|
#: frontend/src/components/ViewControls.vue:272
|
||||||
msgid "CSV"
|
msgid "CSV"
|
||||||
msgstr ""
|
msgstr "CSV"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/CallLogDetailModal.vue:8
|
#: frontend/src/components/Modals/CallLogDetailModal.vue:8
|
||||||
msgid "Call Details"
|
msgid "Call Details"
|
||||||
@ -966,7 +966,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Controls/Link.vue:62
|
#: frontend/src/components/Controls/Link.vue:62
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr "Pulisci"
|
||||||
|
|
||||||
#: frontend/src/components/ListBulkActions.vue:134
|
#: frontend/src/components/ListBulkActions.vue:134
|
||||||
#: frontend/src/components/ListBulkActions.vue:142
|
#: frontend/src/components/ListBulkActions.vue:142
|
||||||
@ -1086,7 +1086,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/General/CurrencySettings.vue:70
|
#: frontend/src/components/Settings/General/CurrencySettings.vue:70
|
||||||
msgid "Configure the exchange rate provider for your CRM"
|
msgid "Configure the exchange rate provider for your CRM"
|
||||||
msgstr ""
|
msgstr "Configura un exchange rate provider per il tuo CRM"
|
||||||
|
|
||||||
#: frontend/src/composables/frappecloud.js:29
|
#: frontend/src/composables/frappecloud.js:29
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
@ -1099,7 +1099,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Modals/ChangePasswordModal.vue:18
|
#: frontend/src/components/Modals/ChangePasswordModal.vue:18
|
||||||
msgid "Confirm Password"
|
msgid "Confirm Password"
|
||||||
msgstr "Conferma Password"
|
msgstr "Ripeti Password"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/Users.vue:225
|
#: frontend/src/components/Settings/Users.vue:225
|
||||||
#: frontend/src/components/Settings/Users.vue:228
|
#: frontend/src/components/Settings/Users.vue:228
|
||||||
@ -1118,7 +1118,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/ConvertToDealModal.vue:65
|
#: frontend/src/components/Modals/ConvertToDealModal.vue:65
|
||||||
#: frontend/src/pages/MobileLead.vue:147
|
#: frontend/src/pages/MobileLead.vue:147
|
||||||
msgid "Contact"
|
msgid "Contact"
|
||||||
msgstr ""
|
msgstr "Contatto"
|
||||||
|
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.py:212
|
#: crm/fcrm/doctype/crm_lead/crm_lead.py:212
|
||||||
msgid "Contact Already Exists"
|
msgid "Contact Already Exists"
|
||||||
@ -1228,7 +1228,7 @@ msgstr "Copiato negli appunti"
|
|||||||
#: crm/api/dashboard.py:607 crm/api/dashboard.py:736 crm/api/dashboard.py:794
|
#: crm/api/dashboard.py:607 crm/api/dashboard.py:736 crm/api/dashboard.py:794
|
||||||
#: crm/api/dashboard.py:891
|
#: crm/api/dashboard.py:891
|
||||||
msgid "Count"
|
msgid "Count"
|
||||||
msgstr ""
|
msgstr "Q.tà"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/AddressModal.vue:99
|
#: frontend/src/components/Modals/AddressModal.vue:99
|
||||||
#: frontend/src/components/Modals/CallLogModal.vue:102
|
#: frontend/src/components/Modals/CallLogModal.vue:102
|
||||||
@ -1667,7 +1667,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
||||||
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
||||||
msgid "DocType"
|
msgid "DocType"
|
||||||
msgstr "Tipo di documento"
|
msgstr "Tipo Documento"
|
||||||
|
|
||||||
#. Label of the dt (Link) field in DocType 'CRM Fields Layout'
|
#. Label of the dt (Link) field in DocType 'CRM Fields Layout'
|
||||||
#: crm/fcrm/doctype/crm_fields_layout/crm_fields_layout.json
|
#: crm/fcrm/doctype/crm_fields_layout/crm_fields_layout.json
|
||||||
@ -1676,7 +1676,7 @@ msgstr "Tipo Documento"
|
|||||||
|
|
||||||
#: frontend/src/data/document.js:28
|
#: frontend/src/data/document.js:28
|
||||||
msgid "Document does not exist"
|
msgid "Document does not exist"
|
||||||
msgstr ""
|
msgstr "Il Documento non esiste"
|
||||||
|
|
||||||
#: crm/api/activities.py:19
|
#: crm/api/activities.py:19
|
||||||
msgid "Document not found"
|
msgid "Document not found"
|
||||||
@ -1749,7 +1749,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Layouts/AppSidebar.vue:599
|
#: frontend/src/components/Layouts/AppSidebar.vue:599
|
||||||
#: frontend/src/components/Settings/Settings.vue:135
|
#: frontend/src/components/Settings/Settings.vue:135
|
||||||
msgid "ERPNext"
|
msgid "ERPNext"
|
||||||
msgstr ""
|
msgstr "ERPNext"
|
||||||
|
|
||||||
#. Name of a DocType
|
#. Name of a DocType
|
||||||
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.json
|
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.json
|
||||||
@ -1791,7 +1791,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/ViewControls.vue:1131
|
#: frontend/src/components/ViewControls.vue:1131
|
||||||
#: frontend/src/pages/Dashboard.vue:19
|
#: frontend/src/pages/Dashboard.vue:19
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr "Modifica"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/CallLogModal.vue:98
|
#: frontend/src/components/Modals/CallLogModal.vue:98
|
||||||
msgid "Edit Call Log"
|
msgid "Edit Call Log"
|
||||||
@ -1973,7 +1973,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/General/CurrencySettings.vue:122
|
#: frontend/src/components/Settings/General/CurrencySettings.vue:122
|
||||||
msgid "Enter access key"
|
msgid "Enter access key"
|
||||||
msgstr ""
|
msgstr "Inserisci la chiave di accesso"
|
||||||
|
|
||||||
#: frontend/src/components/FieldLayout/Field.vue:334
|
#: frontend/src/components/FieldLayout/Field.vue:334
|
||||||
msgid "Enter {0}"
|
msgid "Enter {0}"
|
||||||
@ -1996,7 +1996,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/Deal.vue:739 frontend/src/pages/Lead.vue:486
|
#: frontend/src/pages/Deal.vue:739 frontend/src/pages/Lead.vue:486
|
||||||
#: frontend/src/pages/MobileDeal.vue:614 frontend/src/pages/MobileLead.vue:415
|
#: frontend/src/pages/MobileDeal.vue:614 frontend/src/pages/MobileLead.vue:415
|
||||||
msgid "Error updating field"
|
msgid "Error updating field"
|
||||||
msgstr ""
|
msgstr "Aggiornamento campo non riuscito"
|
||||||
|
|
||||||
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:261
|
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:261
|
||||||
msgid "Error while creating customer in ERPNext, check error log for more details"
|
msgid "Error while creating customer in ERPNext, check error log for more details"
|
||||||
@ -2080,7 +2080,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/crm_deal/crm_deal.py:161
|
#: crm/fcrm/doctype/crm_deal/crm_deal.py:161
|
||||||
msgid "Expected Closure Date is required."
|
msgid "Expected Closure Date is required."
|
||||||
msgstr ""
|
msgstr "Data Chiusura Prevista obbligatoria."
|
||||||
|
|
||||||
#. Label of the expected_deal_value (Currency) field in DocType 'CRM Deal'
|
#. Label of the expected_deal_value (Currency) field in DocType 'CRM Deal'
|
||||||
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
||||||
@ -2099,7 +2099,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/ViewControls.vue:203
|
#: frontend/src/components/ViewControls.vue:203
|
||||||
#: frontend/src/components/ViewControls.vue:251
|
#: frontend/src/components/ViewControls.vue:251
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Esportare"
|
msgstr "Esporta"
|
||||||
|
|
||||||
#: frontend/src/components/ViewControls.vue:282
|
#: frontend/src/components/ViewControls.vue:282
|
||||||
msgid "Export All {0} Record(s)"
|
msgid "Export All {0} Record(s)"
|
||||||
@ -2150,7 +2150,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.py:205
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.py:205
|
||||||
msgid "Failed to fetch exchange rate from {0} to {1} on {2}. Please check your internet connection or try again later."
|
msgid "Failed to fetch exchange rate from {0} to {1} on {2}. Please check your internet connection or try again later."
|
||||||
msgstr ""
|
msgstr "Impossibile recuperare il tasso di cambio da {0} a {1} in data {2}. Controlla la tua connessione internet o riprova più tardi."
|
||||||
|
|
||||||
#: frontend/src/data/script.js:106
|
#: frontend/src/data/script.js:106
|
||||||
msgid "Failed to load form controller: {0}"
|
msgid "Failed to load form controller: {0}"
|
||||||
@ -2227,7 +2227,7 @@ msgstr "Filtri"
|
|||||||
#: frontend/src/components/SortBy.vue:6 frontend/src/components/SortBy.vue:106
|
#: frontend/src/components/SortBy.vue:6 frontend/src/components/SortBy.vue:106
|
||||||
#: frontend/src/components/SortBy.vue:140
|
#: frontend/src/components/SortBy.vue:140
|
||||||
msgid "First Name"
|
msgid "First Name"
|
||||||
msgstr "Nome di battesimo"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/LeadModal.vue:135
|
#: frontend/src/components/Modals/LeadModal.vue:135
|
||||||
msgid "First Name is mandatory"
|
msgid "First Name is mandatory"
|
||||||
@ -2296,7 +2296,7 @@ msgstr ""
|
|||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: crm/fcrm/workspace/frappe_crm/frappe_crm.json
|
#: crm/fcrm/workspace/frappe_crm/frappe_crm.json
|
||||||
msgid "Frappe CRM"
|
msgid "Frappe CRM"
|
||||||
msgstr ""
|
msgstr "CRM Frappe"
|
||||||
|
|
||||||
#: frontend/src/components/Layouts/AppSidebar.vue:603
|
#: frontend/src/components/Layouts/AppSidebar.vue:603
|
||||||
msgid "Frappe CRM mobile"
|
msgid "Frappe CRM mobile"
|
||||||
@ -2359,7 +2359,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
#: crm/fcrm/doctype/crm_deal/crm_deal.json
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
||||||
msgid "Gender"
|
msgid "Gender"
|
||||||
msgstr ""
|
msgstr "Genere"
|
||||||
|
|
||||||
#: frontend/src/components/Settings/General/GeneralSettings.vue:5
|
#: frontend/src/components/Settings/General/GeneralSettings.vue:5
|
||||||
#: frontend/src/components/Settings/Settings.vue:89
|
#: frontend/src/components/Settings/Settings.vue:89
|
||||||
@ -2414,7 +2414,7 @@ msgstr "Nascosto"
|
|||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:230
|
#: frontend/src/components/Activities/Activities.vue:230
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr "Nascosto"
|
||||||
|
|
||||||
#: frontend/src/components/Controls/Password.vue:19
|
#: frontend/src/components/Controls/Password.vue:19
|
||||||
msgid "Hide Password"
|
msgid "Hide Password"
|
||||||
@ -2652,7 +2652,7 @@ msgstr ""
|
|||||||
#. Label of the is_default (Check) field in DocType 'CRM View Settings'
|
#. Label of the is_default (Check) field in DocType 'CRM View Settings'
|
||||||
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
||||||
msgid "Is Default"
|
msgid "Is Default"
|
||||||
msgstr "È predefinito"
|
msgstr "È Predefinito"
|
||||||
|
|
||||||
#. Label of the is_erpnext_in_different_site (Check) field in DocType 'ERPNext
|
#. Label of the is_erpnext_in_different_site (Check) field in DocType 'ERPNext
|
||||||
#. CRM Settings'
|
#. CRM Settings'
|
||||||
@ -2690,7 +2690,7 @@ msgstr ""
|
|||||||
#. Label of the json (JSON) field in DocType 'CRM Global Settings'
|
#. Label of the json (JSON) field in DocType 'CRM Global Settings'
|
||||||
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
||||||
msgid "JSON"
|
msgid "JSON"
|
||||||
msgstr ""
|
msgstr "JSON"
|
||||||
|
|
||||||
#. Label of the job_title (Data) field in DocType 'CRM Deal'
|
#. Label of the job_title (Data) field in DocType 'CRM Deal'
|
||||||
#. Label of the job_title (Data) field in DocType 'CRM Lead'
|
#. Label of the job_title (Data) field in DocType 'CRM Lead'
|
||||||
@ -2711,7 +2711,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/ViewControls.vue:384
|
#: frontend/src/components/ViewControls.vue:384
|
||||||
#: frontend/src/components/ViewControls.vue:600 frontend/src/utils/view.js:20
|
#: frontend/src/components/ViewControls.vue:600 frontend/src/utils/view.js:20
|
||||||
msgid "Kanban"
|
msgid "Kanban"
|
||||||
msgstr ""
|
msgstr "Kanban"
|
||||||
|
|
||||||
#. Label of the kanban_columns (Code) field in DocType 'CRM View Settings'
|
#. Label of the kanban_columns (Code) field in DocType 'CRM View Settings'
|
||||||
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
#: crm/fcrm/doctype/crm_view_settings/crm_view_settings.json
|
||||||
@ -2859,7 +2859,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/FilesUploader/FilesUploaderArea.vue:43
|
#: frontend/src/components/FilesUploader/FilesUploaderArea.vue:43
|
||||||
msgid "Library"
|
msgid "Library"
|
||||||
msgstr ""
|
msgstr "Libreria"
|
||||||
|
|
||||||
#: frontend/src/components/Filter.vue:274
|
#: frontend/src/components/Filter.vue:274
|
||||||
#: frontend/src/components/Filter.vue:285
|
#: frontend/src/components/Filter.vue:285
|
||||||
@ -2974,7 +2974,7 @@ msgstr ""
|
|||||||
#. Option for the 'Priority' (Select) field in DocType 'CRM Task'
|
#. Option for the 'Priority' (Select) field in DocType 'CRM Task'
|
||||||
#: crm/fcrm/doctype/crm_task/crm_task.json
|
#: crm/fcrm/doctype/crm_task/crm_task.json
|
||||||
msgid "Low"
|
msgid "Low"
|
||||||
msgstr ""
|
msgstr "Bassa"
|
||||||
|
|
||||||
#: frontend/src/pages/Contact.vue:94 frontend/src/pages/MobileContact.vue:73
|
#: frontend/src/pages/Contact.vue:94 frontend/src/pages/MobileContact.vue:73
|
||||||
msgid "Make Call"
|
msgid "Make Call"
|
||||||
@ -3091,7 +3091,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/crm_contacts/crm_contacts.json
|
#: crm/fcrm/doctype/crm_contacts/crm_contacts.json
|
||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
||||||
msgid "Mobile No"
|
msgid "Mobile No"
|
||||||
msgstr ""
|
msgstr "Cellulare"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/DealModal.vue:209
|
#: frontend/src/components/Modals/DealModal.vue:209
|
||||||
#: frontend/src/components/Modals/LeadModal.vue:150
|
#: frontend/src/components/Modals/LeadModal.vue:150
|
||||||
@ -3119,7 +3119,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/MobileOrganization.vue:470
|
#: frontend/src/pages/MobileOrganization.vue:470
|
||||||
#: frontend/src/pages/Organization.vue:479
|
#: frontend/src/pages/Organization.vue:479
|
||||||
msgid "Mobile no"
|
msgid "Mobile no"
|
||||||
msgstr ""
|
msgstr "Cellulare"
|
||||||
|
|
||||||
#. Option for the 'Weekly Off' (Select) field in DocType 'CRM Holiday List'
|
#. Option for the 'Weekly Off' (Select) field in DocType 'CRM Holiday List'
|
||||||
#. Option for the 'Workday' (Select) field in DocType 'CRM Service Day'
|
#. Option for the 'Workday' (Select) field in DocType 'CRM Service Day'
|
||||||
@ -3218,7 +3218,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Activities/ActivityHeader.vue:17
|
#: frontend/src/components/Activities/ActivityHeader.vue:17
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:127
|
#: frontend/src/components/Activities/ActivityHeader.vue:127
|
||||||
msgid "New Email"
|
msgid "New Email"
|
||||||
msgstr ""
|
msgstr "Nuova E-mail"
|
||||||
|
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:73
|
#: frontend/src/components/Activities/ActivityHeader.vue:73
|
||||||
msgid "New Message"
|
msgid "New Message"
|
||||||
@ -3236,7 +3236,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Modals/ChangePasswordModal.vue:6
|
#: frontend/src/components/Modals/ChangePasswordModal.vue:6
|
||||||
msgid "New Password"
|
msgid "New Password"
|
||||||
msgstr ""
|
msgstr "Nuova Password"
|
||||||
|
|
||||||
#: frontend/src/components/FieldLayoutEditor.vue:203
|
#: frontend/src/components/FieldLayoutEditor.vue:203
|
||||||
#: frontend/src/components/SidePanelLayoutEditor.vue:133
|
#: frontend/src/components/SidePanelLayoutEditor.vue:133
|
||||||
@ -3675,7 +3675,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Settings/emailConfig.js:64
|
#: frontend/src/components/Settings/emailConfig.js:64
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr "Password"
|
||||||
|
|
||||||
#: crm/api/demo.py:21 crm/api/demo.py:29
|
#: crm/api/demo.py:21 crm/api/demo.py:29
|
||||||
msgid "Password cannot be reset by Demo User {}"
|
msgid "Password cannot be reset by Demo User {}"
|
||||||
@ -3729,7 +3729,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/MobileOrganization.vue:498
|
#: frontend/src/pages/MobileOrganization.vue:498
|
||||||
#: frontend/src/pages/Organization.vue:507
|
#: frontend/src/pages/Organization.vue:507
|
||||||
msgid "Phone"
|
msgid "Phone"
|
||||||
msgstr ""
|
msgstr "Telefono"
|
||||||
|
|
||||||
#. Label of the phone_nos (Table) field in DocType 'CRM Telephony Agent'
|
#. Label of the phone_nos (Table) field in DocType 'CRM Telephony Agent'
|
||||||
#: crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json
|
#: crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json
|
||||||
@ -4002,7 +4002,7 @@ msgstr "Nome di Riferimento"
|
|||||||
#: frontend/src/components/ViewControls.vue:160
|
#: frontend/src/components/ViewControls.vue:160
|
||||||
#: frontend/src/pages/Dashboard.vue:10
|
#: frontend/src/pages/Dashboard.vue:10
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
msgstr ""
|
msgstr "Ricarica"
|
||||||
|
|
||||||
#: frontend/src/components/Telephony/TwilioCallUI.vue:104
|
#: frontend/src/components/Telephony/TwilioCallUI.vue:104
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
@ -4228,7 +4228,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/fcrm_note/fcrm_note.json
|
#: crm/fcrm/doctype/fcrm_note/fcrm_note.json
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
msgid "Sales Manager"
|
msgid "Sales Manager"
|
||||||
msgstr ""
|
msgstr "Responsabile Vendite"
|
||||||
|
|
||||||
#. Name of a role
|
#. Name of a role
|
||||||
#. Option for the 'Role' (Select) field in DocType 'CRM Invitation'
|
#. Option for the 'Role' (Select) field in DocType 'CRM Invitation'
|
||||||
@ -4302,7 +4302,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/ViewControls.vue:123
|
#: frontend/src/components/ViewControls.vue:123
|
||||||
#: frontend/src/pages/Dashboard.vue:45
|
#: frontend/src/pages/Dashboard.vue:45
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr "Salva"
|
||||||
|
|
||||||
#: frontend/src/components/Modals/ViewModal.vue:13
|
#: frontend/src/components/Modals/ViewModal.vue:13
|
||||||
#: frontend/src/components/ViewControls.vue:57
|
#: frontend/src/components/ViewControls.vue:57
|
||||||
@ -4486,7 +4486,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:230
|
#: frontend/src/components/Activities/Activities.vue:230
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr ""
|
msgstr "Mostra"
|
||||||
|
|
||||||
#: frontend/src/components/Controls/Password.vue:19
|
#: frontend/src/components/Controls/Password.vue:19
|
||||||
msgid "Show Password"
|
msgid "Show Password"
|
||||||
@ -4515,7 +4515,7 @@ msgstr ""
|
|||||||
#. Option for the 'Type' (Select) field in DocType 'CRM Global Settings'
|
#. Option for the 'Type' (Select) field in DocType 'CRM Global Settings'
|
||||||
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
#: crm/fcrm/doctype/crm_global_settings/crm_global_settings.json
|
||||||
msgid "Sidebar Items"
|
msgid "Sidebar Items"
|
||||||
msgstr ""
|
msgstr "Elementi della Barra Laterale"
|
||||||
|
|
||||||
#. Description of the 'Condition' (Code) field in DocType 'CRM Service Level
|
#. Description of the 'Condition' (Code) field in DocType 'CRM Service Level
|
||||||
#. Agreement'
|
#. Agreement'
|
||||||
@ -4534,7 +4534,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
#: crm/fcrm/doctype/crm_lead/crm_lead.json
|
||||||
#: frontend/src/components/Modals/EditValueModal.vue:10
|
#: frontend/src/components/Modals/EditValueModal.vue:10
|
||||||
msgid "Source"
|
msgid "Source"
|
||||||
msgstr ""
|
msgstr "Sorgente"
|
||||||
|
|
||||||
#. Label of the source_name (Data) field in DocType 'CRM Lead Source'
|
#. Label of the source_name (Data) field in DocType 'CRM Lead Source'
|
||||||
#: crm/fcrm/doctype/crm_lead_source/crm_lead_source.json
|
#: crm/fcrm/doctype/crm_lead_source/crm_lead_source.json
|
||||||
@ -4670,7 +4670,7 @@ msgstr ""
|
|||||||
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.json
|
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.json
|
||||||
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
#: crm/fcrm/doctype/fcrm_settings/fcrm_settings.json
|
||||||
msgid "System Manager"
|
msgid "System Manager"
|
||||||
msgstr ""
|
msgstr "Amministratore di Sistema"
|
||||||
|
|
||||||
#: frontend/src/components/EmailEditor.vue:22
|
#: frontend/src/components/EmailEditor.vue:22
|
||||||
msgid "TO"
|
msgid "TO"
|
||||||
@ -5564,7 +5564,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/utils/index.js:130
|
#: frontend/src/utils/index.js:130
|
||||||
msgid "{0} M"
|
msgid "{0} M"
|
||||||
msgstr ""
|
msgstr "{0} mesi"
|
||||||
|
|
||||||
#: crm/api/todo.py:50
|
#: crm/api/todo.py:50
|
||||||
msgid "{0} assigned a {1} {2} to you"
|
msgid "{0} assigned a {1} {2} to you"
|
||||||
@ -5572,7 +5572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/utils/index.js:126
|
#: frontend/src/utils/index.js:126
|
||||||
msgid "{0} d"
|
msgid "{0} d"
|
||||||
msgstr ""
|
msgstr "{0} giorni"
|
||||||
|
|
||||||
#: frontend/src/utils/index.js:181
|
#: frontend/src/utils/index.js:181
|
||||||
msgid "{0} days ago"
|
msgid "{0} days ago"
|
||||||
@ -5616,7 +5616,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/utils/index.js:128
|
#: frontend/src/utils/index.js:128
|
||||||
msgid "{0} w"
|
msgid "{0} w"
|
||||||
msgstr ""
|
msgstr "{0} settimane"
|
||||||
|
|
||||||
#: frontend/src/utils/index.js:185
|
#: frontend/src/utils/index.js:185
|
||||||
msgid "{0} weeks ago"
|
msgid "{0} weeks ago"
|
||||||
@ -5624,7 +5624,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/utils/index.js:132
|
#: frontend/src/utils/index.js:132
|
||||||
msgid "{0} y"
|
msgid "{0} y"
|
||||||
msgstr ""
|
msgstr "{0} anni"
|
||||||
|
|
||||||
#: frontend/src/utils/index.js:193
|
#: frontend/src/utils/index.js:193
|
||||||
msgid "{0} years ago"
|
msgid "{0} years ago"
|
||||||
|
|||||||
@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Frappe CRM VERSION\n"
|
"Project-Id-Version: Frappe CRM VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
"Report-Msgid-Bugs-To: shariq@frappe.io\n"
|
||||||
"POT-Creation-Date: 2025-08-03 09:38+0000\n"
|
"POT-Creation-Date: 2025-08-17 09:36+0000\n"
|
||||||
"PO-Revision-Date: 2025-08-03 09:38+0000\n"
|
"PO-Revision-Date: 2025-08-17 09:36+0000\n"
|
||||||
"Last-Translator: shariq@frappe.io\n"
|
"Last-Translator: shariq@frappe.io\n"
|
||||||
"Language-Team: shariq@frappe.io\n"
|
"Language-Team: shariq@frappe.io\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -473,14 +473,19 @@ msgid "Ask your manager to set up the Exchange Rate Provider, as default provide
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/ListBulkActions.vue:184
|
#: frontend/src/components/ListBulkActions.vue:184
|
||||||
#: frontend/src/components/Modals/AssignmentModal.vue:5
|
#: frontend/src/components/Modals/AssignmentModal.vue:4
|
||||||
msgid "Assign To"
|
msgid "Assign To"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/AssignTo.vue:9
|
#: frontend/src/components/AssignTo.vue:11
|
||||||
|
#: frontend/src/components/AssignToBody.vue:5
|
||||||
msgid "Assign to"
|
msgid "Assign to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/AssignToBody.vue:65
|
||||||
|
msgid "Assign to me"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the assigned_to (Link) field in DocType 'CRM Task'
|
#. Label of the assigned_to (Link) field in DocType 'CRM Task'
|
||||||
#: crm/fcrm/doctype/crm_task/crm_task.json
|
#: crm/fcrm/doctype/crm_task/crm_task.json
|
||||||
msgid "Assigned To"
|
msgid "Assigned To"
|
||||||
@ -878,7 +883,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/ColumnSettings.vue:132
|
#: frontend/src/components/ColumnSettings.vue:132
|
||||||
#: frontend/src/components/Dashboard/AddChartModal.vue:40
|
#: frontend/src/components/Dashboard/AddChartModal.vue:40
|
||||||
#: frontend/src/components/DeleteLinkedDocModal.vue:114
|
#: frontend/src/components/DeleteLinkedDocModal.vue:114
|
||||||
#: frontend/src/components/Modals/AssignmentModal.vue:9
|
#: frontend/src/components/Modals/AssignmentModal.vue:69
|
||||||
#: frontend/src/components/Modals/LostReasonModal.vue:43
|
#: frontend/src/components/Modals/LostReasonModal.vue:43
|
||||||
#: frontend/src/components/Telephony/TwilioCallUI.vue:77
|
#: frontend/src/components/Telephony/TwilioCallUI.vue:77
|
||||||
#: frontend/src/components/ViewControls.vue:56
|
#: frontend/src/components/ViewControls.vue:56
|
||||||
@ -1266,12 +1271,12 @@ msgstr ""
|
|||||||
msgid "Create New"
|
msgid "Create New"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:384
|
#: frontend/src/components/Activities/Activities.vue:388
|
||||||
#: frontend/src/components/Modals/NoteModal.vue:15
|
#: frontend/src/components/Modals/NoteModal.vue:15
|
||||||
msgid "Create Note"
|
msgid "Create Note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:399
|
#: frontend/src/components/Activities/Activities.vue:403
|
||||||
#: frontend/src/components/Modals/TaskModal.vue:18
|
#: frontend/src/components/Modals/TaskModal.vue:18
|
||||||
msgid "Create Task"
|
msgid "Create Task"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1996,11 +2001,11 @@ msgstr ""
|
|||||||
msgid "Error updating field"
|
msgid "Error updating field"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:261
|
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:282
|
||||||
msgid "Error while creating customer in ERPNext, check error log for more details"
|
msgid "Error while creating customer in ERPNext, check error log for more details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:173
|
#: crm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.py:194
|
||||||
msgid "Error while creating prospect in ERPNext, check error log for more details"
|
msgid "Error while creating prospect in ERPNext, check error log for more details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2410,7 +2415,7 @@ msgstr ""
|
|||||||
msgid "Hidden"
|
msgid "Hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:230
|
#: frontend/src/components/Activities/Activities.vue:234
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2418,7 +2423,7 @@ msgstr ""
|
|||||||
msgid "Hide Password"
|
msgid "Hide Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:74
|
#: frontend/src/components/Activities/CallArea.vue:75
|
||||||
msgid "Hide Recording"
|
msgid "Hide Recording"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2519,7 +2524,7 @@ msgstr ""
|
|||||||
msgid "In less than a minute"
|
msgid "In less than a minute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:35
|
#: frontend/src/components/Activities/CallArea.vue:36
|
||||||
msgid "Inbound Call"
|
msgid "Inbound Call"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2697,8 +2702,9 @@ msgstr ""
|
|||||||
msgid "Job Title"
|
msgid "Job Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/AssignToBody.vue:11
|
||||||
#: frontend/src/components/Filter.vue:75 frontend/src/components/Filter.vue:108
|
#: frontend/src/components/Filter.vue:75 frontend/src/components/Filter.vue:108
|
||||||
#: frontend/src/components/Modals/AssignmentModal.vue:35
|
#: frontend/src/components/Modals/AssignmentModal.vue:13
|
||||||
#: frontend/src/components/Modals/TaskModal.vue:76
|
#: frontend/src/components/Modals/TaskModal.vue:76
|
||||||
#: frontend/src/components/Telephony/TaskPanel.vue:47
|
#: frontend/src/components/Telephony/TaskPanel.vue:47
|
||||||
msgid "John Doe"
|
msgid "John Doe"
|
||||||
@ -2885,7 +2891,7 @@ msgstr ""
|
|||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:74
|
#: frontend/src/components/Activities/CallArea.vue:75
|
||||||
msgid "Listen"
|
msgid "Listen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2914,7 +2920,7 @@ msgstr ""
|
|||||||
msgid "Log"
|
msgid "Log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:803
|
#: frontend/src/components/Activities/Activities.vue:808
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:137
|
#: frontend/src/components/Activities/ActivityHeader.vue:137
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:180
|
#: frontend/src/components/Activities/ActivityHeader.vue:180
|
||||||
msgid "Log a Call"
|
msgid "Log a Call"
|
||||||
@ -2986,7 +2992,7 @@ msgstr ""
|
|||||||
msgid "Make Public"
|
msgid "Make Public"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:807
|
#: frontend/src/components/Activities/Activities.vue:812
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:142
|
#: frontend/src/components/Activities/ActivityHeader.vue:142
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:185
|
#: frontend/src/components/Activities/ActivityHeader.vue:185
|
||||||
#: frontend/src/pages/Deals.vue:504 frontend/src/pages/Leads.vue:531
|
#: frontend/src/pages/Deals.vue:504 frontend/src/pages/Leads.vue:531
|
||||||
@ -3202,7 +3208,7 @@ msgstr ""
|
|||||||
msgid "New Call Log"
|
msgid "New Call Log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:394
|
#: frontend/src/components/Activities/Activities.vue:398
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:27
|
#: frontend/src/components/Activities/ActivityHeader.vue:27
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:132
|
#: frontend/src/components/Activities/ActivityHeader.vue:132
|
||||||
msgid "New Comment"
|
msgid "New Comment"
|
||||||
@ -3212,7 +3218,7 @@ msgstr ""
|
|||||||
msgid "New Contact"
|
msgid "New Contact"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:389
|
#: frontend/src/components/Activities/Activities.vue:393
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:17
|
#: frontend/src/components/Activities/ActivityHeader.vue:17
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:127
|
#: frontend/src/components/Activities/ActivityHeader.vue:127
|
||||||
msgid "New Email"
|
msgid "New Email"
|
||||||
@ -3652,7 +3658,7 @@ msgstr ""
|
|||||||
msgid "Others"
|
msgid "Others"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/CallArea.vue:36
|
#: frontend/src/components/Activities/CallArea.vue:37
|
||||||
msgid "Outbound Call"
|
msgid "Outbound Call"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4488,7 +4494,7 @@ msgstr ""
|
|||||||
msgid "Setup your password"
|
msgid "Setup your password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:230
|
#: frontend/src/components/Activities/Activities.vue:234
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4527,6 +4533,14 @@ msgstr ""
|
|||||||
msgid "Simple Python Expression, Example: doc.status == 'Open' and doc.lead_source == 'Ads'"
|
msgid "Simple Python Expression, Example: doc.status == 'Open' and doc.lead_source == 'Ads'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/AssignTo.vue:84
|
||||||
|
msgid "Since you removed {0} from the assignee, the {0} has also been removed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/AssignTo.vue:77
|
||||||
|
msgid "Since you removed {0} from the assignee, the {0} has been changed to the next available assignee {1}."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/SortBy.vue:10 frontend/src/components/SortBy.vue:22
|
#: frontend/src/components/SortBy.vue:10 frontend/src/components/SortBy.vue:22
|
||||||
#: frontend/src/components/SortBy.vue:240
|
#: frontend/src/components/SortBy.vue:240
|
||||||
msgid "Sort"
|
msgid "Sort"
|
||||||
@ -5056,7 +5070,7 @@ msgid "Untitled"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/ColumnSettings.vue:138
|
#: frontend/src/components/ColumnSettings.vue:138
|
||||||
#: frontend/src/components/Modals/AssignmentModal.vue:17
|
#: frontend/src/components/Modals/AssignmentModal.vue:79
|
||||||
#: frontend/src/components/Modals/ChangePasswordModal.vue:45
|
#: frontend/src/components/Modals/ChangePasswordModal.vue:45
|
||||||
#: frontend/src/components/Modals/NoteModal.vue:6
|
#: frontend/src/components/Modals/NoteModal.vue:6
|
||||||
#: frontend/src/components/Modals/TaskModal.vue:8
|
#: frontend/src/components/Modals/TaskModal.vue:8
|
||||||
@ -5084,7 +5098,7 @@ msgstr ""
|
|||||||
msgid "Upload"
|
msgid "Upload"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:404
|
#: frontend/src/components/Activities/Activities.vue:408
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:62
|
#: frontend/src/components/Activities/ActivityHeader.vue:62
|
||||||
#: frontend/src/components/Activities/ActivityHeader.vue:158
|
#: frontend/src/components/Activities/ActivityHeader.vue:158
|
||||||
msgid "Upload Attachment"
|
msgid "Upload Attachment"
|
||||||
@ -5288,11 +5302,11 @@ msgstr ""
|
|||||||
msgid "You need to be in developer mode to edit a Standard Form Script"
|
msgid "You need to be in developer mode to edit a Standard Form Script"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/api/todo.py:111
|
#: crm/api/todo.py:100
|
||||||
msgid "Your assignment on task {0} has been removed by {1}"
|
msgid "Your assignment on task {0} has been removed by {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/api/todo.py:46 crm/api/todo.py:89
|
#: crm/api/todo.py:37 crm/api/todo.py:78
|
||||||
msgid "Your assignment on {0} {1} has been removed by {2}"
|
msgid "Your assignment on {0} {1} has been removed by {2}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -5307,11 +5321,11 @@ msgstr ""
|
|||||||
msgid "amber"
|
msgid "amber"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/api/todo.py:120
|
#: crm/api/todo.py:109
|
||||||
msgid "assigned a new task {0} to you"
|
msgid "assigned a new task {0} to you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/api/todo.py:100
|
#: crm/api/todo.py:89
|
||||||
msgid "assigned a {0} {1} to you"
|
msgid "assigned a {0} {1} to you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -5329,7 +5343,7 @@ msgstr ""
|
|||||||
msgid "blue"
|
msgid "blue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:232
|
#: frontend/src/components/Activities/Activities.vue:236
|
||||||
msgid "changes from"
|
msgid "changes from"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -5539,8 +5553,8 @@ msgstr ""
|
|||||||
msgid "teal"
|
msgid "teal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Activities/Activities.vue:274
|
#: frontend/src/components/Activities/Activities.vue:278
|
||||||
#: frontend/src/components/Activities/Activities.vue:337
|
#: frontend/src/components/Activities/Activities.vue:341
|
||||||
msgid "to"
|
msgid "to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -5570,7 +5584,7 @@ msgstr ""
|
|||||||
msgid "{0} M"
|
msgid "{0} M"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crm/api/todo.py:50
|
#: crm/api/todo.py:41
|
||||||
msgid "{0} assigned a {1} {2} to you"
|
msgid "{0} assigned a {1} {2} to you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
4
frontend/components.d.ts
vendored
4
frontend/components.d.ts
vendored
@ -171,9 +171,6 @@ declare module 'vue' {
|
|||||||
LostReasonModal: typeof import('./src/components/Modals/LostReasonModal.vue')['default']
|
LostReasonModal: typeof import('./src/components/Modals/LostReasonModal.vue')['default']
|
||||||
LucideCalendar: typeof import('~icons/lucide/calendar')['default']
|
LucideCalendar: typeof import('~icons/lucide/calendar')['default']
|
||||||
LucideChevronRight: typeof import('~icons/lucide/chevron-right')['default']
|
LucideChevronRight: typeof import('~icons/lucide/chevron-right')['default']
|
||||||
LucidePenLine: typeof import('~icons/lucide/pen-line')['default']
|
|
||||||
LucideRefreshCcw: typeof import('~icons/lucide/refresh-ccw')['default']
|
|
||||||
LucideX: typeof import('~icons/lucide/x')['default']
|
|
||||||
MarkAsDoneIcon: typeof import('./src/components/Icons/MarkAsDoneIcon.vue')['default']
|
MarkAsDoneIcon: typeof import('./src/components/Icons/MarkAsDoneIcon.vue')['default']
|
||||||
MaximizeIcon: typeof import('./src/components/Icons/MaximizeIcon.vue')['default']
|
MaximizeIcon: typeof import('./src/components/Icons/MaximizeIcon.vue')['default']
|
||||||
MenuIcon: typeof import('./src/components/Icons/MenuIcon.vue')['default']
|
MenuIcon: typeof import('./src/components/Icons/MenuIcon.vue')['default']
|
||||||
@ -188,7 +185,6 @@ declare module 'vue' {
|
|||||||
MultiSelectEmailInput: typeof import('./src/components/Controls/MultiSelectEmailInput.vue')['default']
|
MultiSelectEmailInput: typeof import('./src/components/Controls/MultiSelectEmailInput.vue')['default']
|
||||||
MultiSelectUserInput: typeof import('./src/components/Controls/MultiSelectUserInput.vue')['default']
|
MultiSelectUserInput: typeof import('./src/components/Controls/MultiSelectUserInput.vue')['default']
|
||||||
MuteIcon: typeof import('./src/components/Icons/MuteIcon.vue')['default']
|
MuteIcon: typeof import('./src/components/Icons/MuteIcon.vue')['default']
|
||||||
NestedPopover: typeof import('./src/components/NestedPopover.vue')['default']
|
|
||||||
NewEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/NewEmailTemplate.vue')['default']
|
NewEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/NewEmailTemplate.vue')['default']
|
||||||
NoteArea: typeof import('./src/components/Activities/NoteArea.vue')['default']
|
NoteArea: typeof import('./src/components/Activities/NoteArea.vue')['default']
|
||||||
NoteIcon: typeof import('./src/components/Icons/NoteIcon.vue')['default']
|
NoteIcon: typeof import('./src/components/Icons/NoteIcon.vue')['default']
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
"@tiptap/extension-paragraph": "^2.12.0",
|
"@tiptap/extension-paragraph": "^2.12.0",
|
||||||
"@twilio/voice-sdk": "^2.10.2",
|
"@twilio/voice-sdk": "^2.10.2",
|
||||||
"@vueuse/integrations": "^10.3.0",
|
"@vueuse/integrations": "^10.3.0",
|
||||||
"frappe-ui": "^0.1.171",
|
"frappe-ui": "^0.1.189",
|
||||||
"gemoji": "^8.1.0",
|
"gemoji": "^8.1.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mime": "^4.0.1",
|
"mime": "^4.0.1",
|
||||||
|
|||||||
@ -238,12 +238,9 @@
|
|||||||
<Button
|
<Button
|
||||||
class="!size-4"
|
class="!size-4"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:icon="SelectIcon"
|
||||||
@click="activity.show_others = !activity.show_others"
|
@click="activity.show_others = !activity.show_others"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<SelectIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
|
|||||||
@ -9,23 +9,17 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="title == 'Emails'"
|
v-if="title == 'Emails'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
:label="__('New Email')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="emailBox.show = true"
|
@click="emailBox.show = true"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<span>{{ __('New Email') }}</span>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-else-if="title == 'Comments'"
|
v-else-if="title == 'Comments'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
:label="__('New Comment')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="emailBox.showComment = true"
|
@click="emailBox.showComment = true"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<span>{{ __('New Comment') }}</span>
|
|
||||||
</Button>
|
|
||||||
<MultiActionButton
|
<MultiActionButton
|
||||||
v-else-if="title == 'Calls'"
|
v-else-if="title == 'Calls'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
@ -34,59 +28,45 @@
|
|||||||
<Button
|
<Button
|
||||||
v-else-if="title == 'Notes'"
|
v-else-if="title == 'Notes'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
:label="__('New Note')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="modalRef.showNote()"
|
@click="modalRef.showNote()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<span>{{ __('New Note') }}</span>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-else-if="title == 'Tasks'"
|
v-else-if="title == 'Tasks'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
:label="__('New Task')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="modalRef.showTask()"
|
@click="modalRef.showTask()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<span>{{ __('New Task') }}</span>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-else-if="title == 'Attachments'"
|
v-else-if="title == 'Attachments'"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
|
:label="__('Upload Attachment')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="showFilesUploader = true"
|
@click="showFilesUploader = true"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<span>{{ __('Upload Attachment') }}</span>
|
|
||||||
</Button>
|
|
||||||
<div class="flex gap-2 shrink-0" v-else-if="title == 'WhatsApp'">
|
<div class="flex gap-2 shrink-0" v-else-if="title == 'WhatsApp'">
|
||||||
<Button
|
<Button
|
||||||
:label="__('Send Template')"
|
:label="__('Send Template')"
|
||||||
@click="showWhatsappTemplates = true"
|
@click="showWhatsappTemplates = true"
|
||||||
/>
|
/>
|
||||||
<Button variant="solid" @click="whatsappBox.show()">
|
<Button
|
||||||
<template #prefix>
|
variant="solid"
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
:label="__('New Message')"
|
||||||
</template>
|
iconLeft="plus"
|
||||||
<span>{{ __('New Message') }}</span>
|
@click="whatsappBox.show()"
|
||||||
</Button>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Dropdown v-else :options="defaultActions" @click.stop>
|
<Dropdown v-else :options="defaultActions" @click.stop>
|
||||||
<template v-slot="{ open }">
|
<template v-slot="{ open }">
|
||||||
<Button variant="solid" class="flex items-center gap-1">
|
<Button
|
||||||
<template #prefix>
|
variant="solid"
|
||||||
<FeatherIcon name="plus" class="h-4 w-4" />
|
class="flex items-center gap-1"
|
||||||
</template>
|
:label="__('New')"
|
||||||
<span>{{ __('New') }}</span>
|
iconLeft="plus"
|
||||||
<template #suffix>
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
<FeatherIcon
|
/>
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4 w-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -38,42 +38,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div class="flex gap-1">
|
<div class="flex gap-1">
|
||||||
<Tooltip
|
<Button
|
||||||
:text="
|
:tooltip="
|
||||||
attachment.is_private ? __('Make public') : __('Make private')
|
attachment.is_private ? __('Make public') : __('Make private')
|
||||||
"
|
"
|
||||||
|
class="!size-5"
|
||||||
|
@click.stop="
|
||||||
|
togglePrivate(attachment.name, attachment.is_private)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<div>
|
<template #icon>
|
||||||
<Button
|
<FeatherIcon
|
||||||
class="!size-5"
|
:name="attachment.is_private ? 'lock' : 'unlock'"
|
||||||
@click.stop="
|
class="size-3 text-ink-gray-7"
|
||||||
togglePrivate(attachment.name, attachment.is_private)
|
/>
|
||||||
"
|
</template>
|
||||||
>
|
</Button>
|
||||||
<template #icon>
|
<Button
|
||||||
<FeatherIcon
|
:tooltip="__('Delete attachment')"
|
||||||
:name="attachment.is_private ? 'lock' : 'unlock'"
|
class="!size-5"
|
||||||
class="size-3 text-ink-gray-7"
|
@click.stop="() => deleteAttachment(attachment.name)"
|
||||||
/>
|
>
|
||||||
</template>
|
<template #icon>
|
||||||
</Button>
|
<FeatherIcon name="trash-2" class="size-3 text-ink-gray-7" />
|
||||||
</div>
|
</template>
|
||||||
</Tooltip>
|
</Button>
|
||||||
<Tooltip :text="__('Delete attachment')">
|
|
||||||
<div>
|
|
||||||
<Button
|
|
||||||
class="!size-5"
|
|
||||||
@click.stop="() => deleteAttachment(attachment.name)"
|
|
||||||
>
|
|
||||||
<template #icon>
|
|
||||||
<FeatherIcon
|
|
||||||
name="trash-2"
|
|
||||||
class="size-3 text-ink-gray-7"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="w-full text-sm text-ink-gray-5">
|
<div class="w-full text-sm text-ink-gray-5">
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<Button variant="ghost" @click="playPause">
|
<Button
|
||||||
<template #icon>
|
variant="ghost"
|
||||||
<PlayIcon v-if="isPaused" class="size-4 text-ink-gray-5" />
|
class="text-ink-gray-5"
|
||||||
<PauseIcon v-else class="size-4 text-ink-gray-5" />
|
:icon="isPaused ? PlayIcon : PauseIcon"
|
||||||
</template>
|
@click="playPause"
|
||||||
</Button>
|
/>
|
||||||
<div class="flex gap-2 items-center justify-between flex-1">
|
<div class="flex gap-2 items-center justify-between flex-1">
|
||||||
<input
|
<input
|
||||||
class="w-full slider !h-[0.5] bg-surface-gray-3 [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb:hover]:outline [&::-webkit-slider-thumb:hover]:outline-[0.5px]"
|
class="w-full slider !h-[0.5] bg-surface-gray-3 [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb:hover]:outline [&::-webkit-slider-thumb:hover]:outline-[0.5px]"
|
||||||
@ -61,11 +61,11 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<Dropdown :options="options">
|
<Dropdown :options="options">
|
||||||
<Button variant="ghost" @click="showPlaybackSpeed = false">
|
<Button
|
||||||
<template #icon>
|
icon="more-horizontal"
|
||||||
<FeatherIcon class="size-4" name="more-horizontal" />
|
variant="ghost"
|
||||||
</template>
|
@click="showPlaybackSpeed = false"
|
||||||
</Button>
|
/>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -14,12 +14,10 @@
|
|||||||
<div class="flex gap-1">
|
<div class="flex gap-1">
|
||||||
<Button
|
<Button
|
||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="showDataFieldsModal = true"
|
@click="showDataFieldsModal = true"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<EditIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
label="Save"
|
label="Save"
|
||||||
:disabled="!document.isDirty"
|
:disabled="!document.isDirty"
|
||||||
|
|||||||
@ -2,7 +2,9 @@
|
|||||||
<div
|
<div
|
||||||
class="cursor-pointer flex flex-col rounded-md shadow bg-surface-cards px-3 py-1.5 text-base transition-all duration-300 ease-in-out"
|
class="cursor-pointer flex flex-col rounded-md shadow bg-surface-cards px-3 py-1.5 text-base transition-all duration-300 ease-in-out"
|
||||||
>
|
>
|
||||||
<div class="-mb-0.5 flex items-center justify-between gap-2 truncate text-ink-gray-9">
|
<div
|
||||||
|
class="-mb-0.5 flex items-center justify-between gap-2 truncate text-ink-gray-9"
|
||||||
|
>
|
||||||
<div class="flex items-center gap-2 truncate">
|
<div class="flex items-center gap-2 truncate">
|
||||||
<span>{{ activity.data.sender_full_name }}</span>
|
<span>{{ activity.data.sender_full_name }}</span>
|
||||||
<span class="sm:flex hidden text-sm text-ink-gray-5">
|
<span class="sm:flex hidden text-sm text-ink-gray-5">
|
||||||
@ -28,32 +30,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div class="flex gap-0.5">
|
<div class="flex gap-0.5">
|
||||||
<Tooltip :text="__('Reply')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Reply')"
|
||||||
<Button
|
variant="ghost"
|
||||||
variant="ghost"
|
class="text-ink-gray-7"
|
||||||
class="text-ink-gray-7"
|
:icon="ReplyIcon"
|
||||||
@click="reply(activity.data)"
|
@click="reply(activity.data)"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<ReplyIcon />
|
:tooltip="__('Reply All')"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
:icon="ReplyAllIcon"
|
||||||
</div>
|
class="text-ink-gray-7"
|
||||||
</Tooltip>
|
@click="reply(activity.data, true)"
|
||||||
<Tooltip :text="__('Reply All')">
|
/>
|
||||||
<div>
|
|
||||||
<Button
|
|
||||||
variant="ghost"
|
|
||||||
class="text-ink-gray-7"
|
|
||||||
@click="reply(activity.data, true)"
|
|
||||||
>
|
|
||||||
<template #icon>
|
|
||||||
<ReplyAllIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -41,13 +41,13 @@
|
|||||||
:options="taskStatusOptions(modalRef.updateTaskStatus, task)"
|
:options="taskStatusOptions(modalRef.updateTaskStatus, task)"
|
||||||
@click.stop
|
@click.stop
|
||||||
>
|
>
|
||||||
<Tooltip :text="__('Change Status')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Change status')"
|
||||||
<Button variant="ghosted" class="hover:bg-surface-gray-4">
|
variant="ghosted"
|
||||||
<TaskStatusIcon :status="task.status" />
|
class="hover:bg-surface-gray-4"
|
||||||
</Button>
|
>
|
||||||
</div>
|
<TaskStatusIcon :status="task.status" />
|
||||||
</Tooltip>
|
</Button>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:options="[
|
:options="[
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<NestedPopover>
|
<Popover placement="bottom-end">
|
||||||
<template #target>
|
<template #target="{ togglePopover }">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center" @click="togglePopover">
|
||||||
<component
|
<component
|
||||||
v-if="assignees?.length"
|
v-if="assignees?.length"
|
||||||
:is="assignees?.length == 1 ? 'Button' : 'div'"
|
:is="assignees?.length == 1 ? 'Button' : 'div'"
|
||||||
@ -11,24 +11,23 @@
|
|||||||
<Button v-else :label="__('Assign to')" />
|
<Button v-else :label="__('Assign to')" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ open }">
|
<template #body="{ isOpen }">
|
||||||
<AssignToBody
|
<AssignToBody
|
||||||
v-show="open"
|
v-show="isOpen"
|
||||||
v-model="assignees"
|
v-model="assignees"
|
||||||
:docname="docname"
|
:docname="docname"
|
||||||
:doctype="doctype"
|
:doctype="doctype"
|
||||||
:open="open"
|
:open="isOpen"
|
||||||
:onUpdate="ownerField && saveAssignees"
|
:onUpdate="ownerField && saveAssignees"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import MultipleAvatar from '@/components/MultipleAvatar.vue'
|
import MultipleAvatar from '@/components/MultipleAvatar.vue'
|
||||||
import AssignToBody from '@/components/AssignToBody.vue'
|
import AssignToBody from '@/components/AssignToBody.vue'
|
||||||
import { useDocument } from '@/data/document'
|
import { useDocument } from '@/data/document'
|
||||||
import { toast } from 'frappe-ui'
|
import { toast, Popover } from 'frappe-ui'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -25,23 +25,21 @@
|
|||||||
:key="assignee.name"
|
:key="assignee.name"
|
||||||
@click.stop
|
@click.stop
|
||||||
>
|
>
|
||||||
<div>
|
<div
|
||||||
<div
|
class="flex items-center text-sm p-0.5 text-ink-gray-6 border border-outline-gray-1 bg-surface-modal rounded-full cursor-pointer"
|
||||||
class="flex items-center text-sm p-0.5 text-ink-gray-6 border border-outline-gray-1 bg-surface-modal rounded-full cursor-pointer"
|
@click.stop
|
||||||
@click.stop
|
>
|
||||||
|
<UserAvatar :user="assignee.name" size="sm" />
|
||||||
|
<div class="ml-1">{{ getUser(assignee.name).full_name }}</div>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
class="rounded-full !size-4 m-1"
|
||||||
|
@click.stop="removeValue(assignee.name)"
|
||||||
>
|
>
|
||||||
<UserAvatar :user="assignee.name" size="sm" />
|
<template #icon>
|
||||||
<div class="ml-1">{{ getUser(assignee.name).full_name }}</div>
|
<FeatherIcon name="x" class="h-3 w-3 text-ink-gray-6" />
|
||||||
<Button
|
</template>
|
||||||
variant="ghost"
|
</Button>
|
||||||
class="rounded-full !size-4 m-1"
|
|
||||||
@click.stop="removeValue(assignee.name)"
|
|
||||||
>
|
|
||||||
<template #icon>
|
|
||||||
<FeatherIcon name="x" class="h-3 w-3 text-ink-gray-6" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
@ -74,7 +72,7 @@ import UserAvatar from '@/components/UserAvatar.vue'
|
|||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import { usersStore } from '@/stores/users'
|
import { usersStore } from '@/stores/users'
|
||||||
import { capture } from '@/telemetry'
|
import { capture } from '@/telemetry'
|
||||||
import { Tooltip, Switch, toast, createResource } from 'frappe-ui'
|
import { Tooltip, Switch, createResource } from 'frappe-ui'
|
||||||
import { ref, watch } from 'vue'
|
import { ref, watch } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -5,11 +5,9 @@
|
|||||||
:label="label"
|
:label="label"
|
||||||
theme="gray"
|
theme="gray"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
|
:iconLeft="getIcon()"
|
||||||
@click="toggleDialog()"
|
@click="toggleDialog()"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
|
||||||
<component :is="getIcon()" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<slot name="suffix" />
|
<slot name="suffix" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<NestedPopover>
|
<Popover placement="bottom-end">
|
||||||
<template #target>
|
<template #target="{ togglePopover }">
|
||||||
<Button :label="__('Columns')">
|
<Button :label="__('Columns')" @click="togglePopover">
|
||||||
<template v-if="hideLabel">
|
<template v-if="hideLabel">
|
||||||
<ColumnsIcon class="h-4" />
|
<ColumnsIcon class="h-4" />
|
||||||
</template>
|
</template>
|
||||||
@ -65,37 +65,28 @@
|
|||||||
<Button
|
<Button
|
||||||
class="w-full !justify-start !text-ink-gray-5"
|
class="w-full !justify-start !text-ink-gray-5"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Column')"
|
:label="__('Add Column')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
<Button
|
<Button
|
||||||
v-if="columnsUpdated"
|
v-if="columnsUpdated"
|
||||||
class="w-full !justify-start !text-ink-gray-5"
|
class="w-full !justify-start !text-ink-gray-5"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@click="reset(close)"
|
|
||||||
:label="__('Reset Changes')"
|
:label="__('Reset Changes')"
|
||||||
>
|
:iconLeft="ReloadIcon"
|
||||||
<template #prefix>
|
@click="reset(close)"
|
||||||
<ReloadIcon class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="!is_default"
|
v-if="!is_default"
|
||||||
class="w-full !justify-start !text-ink-gray-5"
|
class="w-full !justify-start !text-ink-gray-5"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@click="resetToDefault(close)"
|
|
||||||
:label="__('Reset to Default')"
|
:label="__('Reset to Default')"
|
||||||
>
|
:iconLeft="ReloadIcon"
|
||||||
<template #prefix>
|
@click="resetToDefault(close)"
|
||||||
<ReloadIcon class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
@ -144,7 +135,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -152,9 +143,8 @@ import ColumnsIcon from '@/components/Icons/ColumnsIcon.vue'
|
|||||||
import EditIcon from '@/components/Icons/EditIcon.vue'
|
import EditIcon from '@/components/Icons/EditIcon.vue'
|
||||||
import DragIcon from '@/components/Icons/DragIcon.vue'
|
import DragIcon from '@/components/Icons/DragIcon.vue'
|
||||||
import ReloadIcon from '@/components/Icons/ReloadIcon.vue'
|
import ReloadIcon from '@/components/Icons/ReloadIcon.vue'
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
|
||||||
import { isTouchScreenDevice } from '@/utils'
|
import { isTouchScreenDevice } from '@/utils'
|
||||||
|
import { Autocomplete, Popover } from 'frappe-ui'
|
||||||
import Draggable from 'vuedraggable'
|
import Draggable from 'vuedraggable'
|
||||||
import { computed, ref } from 'vue'
|
import { computed, ref } from 'vue'
|
||||||
import { watchOnce } from '@vueuse/core'
|
import { watchOnce } from '@vueuse/core'
|
||||||
|
|||||||
@ -45,11 +45,12 @@
|
|||||||
v-slot="{ togglePopover }"
|
v-slot="{ togglePopover }"
|
||||||
@update:modelValue="() => appendEmoji()"
|
@update:modelValue="() => appendEmoji()"
|
||||||
>
|
>
|
||||||
<Button variant="ghost" @click="togglePopover()">
|
<Button
|
||||||
<template #icon>
|
:tooltip="__('Insert Emoji')"
|
||||||
<SmileIcon class="h-4" />
|
:icon="SmileIcon"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
@click="togglePopover()"
|
||||||
|
/>
|
||||||
</IconPicker>
|
</IconPicker>
|
||||||
<FileUploader
|
<FileUploader
|
||||||
:upload-args="{
|
:upload-args="{
|
||||||
@ -61,14 +62,11 @@
|
|||||||
>
|
>
|
||||||
<template #default="{ openFileSelector }">
|
<template #default="{ openFileSelector }">
|
||||||
<Button
|
<Button
|
||||||
theme="gray"
|
:tooltip="__('Attach a file')"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:icon="AttachmentIcon"
|
||||||
@click="openFileSelector()"
|
@click="openFileSelector()"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<AttachmentIcon class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</FileUploader>
|
</FileUploader>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -8,24 +8,18 @@
|
|||||||
showEmailBox ? '!bg-surface-gray-4 hover:!bg-surface-gray-3' : '',
|
showEmailBox ? '!bg-surface-gray-4 hover:!bg-surface-gray-3' : '',
|
||||||
]"
|
]"
|
||||||
:label="__('Reply')"
|
:label="__('Reply')"
|
||||||
|
:iconLeft="Email2Icon"
|
||||||
@click="toggleEmailBox()"
|
@click="toggleEmailBox()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<Email2Icon class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
:label="__('Comment')"
|
:label="__('Comment')"
|
||||||
:class="[
|
:class="[
|
||||||
showCommentBox ? '!bg-surface-gray-4 hover:!bg-surface-gray-3' : '',
|
showCommentBox ? '!bg-surface-gray-4 hover:!bg-surface-gray-3' : '',
|
||||||
]"
|
]"
|
||||||
|
:iconLeft="CommentIcon"
|
||||||
@click="toggleCommentBox()"
|
@click="toggleCommentBox()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<CommentIcon class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@ -54,14 +54,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="w-12">
|
<div class="w-12">
|
||||||
<Button
|
<Button
|
||||||
class="flex w-full items-center justify-center rounded !bg-surface-gray-2 border-0"
|
:tooltip="__('Edit grid fields')"
|
||||||
|
class="flex w-full items-center justify-center rounded !bg-surface-gray-2 border-0 !text-ink-gray-5"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
|
icon="settings"
|
||||||
@click="showGridFieldsEditorModal = true"
|
@click="showGridFieldsEditorModal = true"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<FeatherIcon name="settings" class="size-4 text-ink-gray-7" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Rows -->
|
<!-- Rows -->
|
||||||
@ -279,14 +277,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="edit-row w-12">
|
<div class="edit-row w-12">
|
||||||
<Button
|
<Button
|
||||||
class="flex w-full items-center justify-center rounded border-0"
|
:tooltip="__('Edit row')"
|
||||||
|
class="flex w-full items-center justify-center rounded border-0 !text-ink-gray-7"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="showRowList[index] = true"
|
@click="showRowList[index] = true"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<EditIcon class="text-ink-gray-7" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<GridRowModal
|
<GridRowModal
|
||||||
v-if="showRowList[index]"
|
v-if="showRowList[index]"
|
||||||
|
|||||||
@ -54,13 +54,10 @@
|
|||||||
<template #target="{ togglePopover }">
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
class="w-full mt-2"
|
class="w-full mt-2"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Field')"
|
:label="__('Add Field')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
<template #item-label="{ option }">
|
<template #item-label="{ option }">
|
||||||
<div class="flex flex-col gap-1 text-ink-gray-9">
|
<div class="flex flex-col gap-1 text-ink-gray-9">
|
||||||
|
|||||||
@ -11,19 +11,18 @@
|
|||||||
<div class="flex items-center gap-1">
|
<div class="flex items-center gap-1">
|
||||||
<Button
|
<Button
|
||||||
v-if="isManager()"
|
v-if="isManager()"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openGridRowFieldsModal"
|
@click="openGridRowFieldsModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
icon="x"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
class="w-7"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
@click="show = false"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -48,24 +48,18 @@
|
|||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-full !justify-start"
|
class="w-full !justify-start"
|
||||||
:label="__('Create New')"
|
:label="__('Create New')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="() => attrs.onCreate(value, close)"
|
@click="() => attrs.onCreate(value, close)"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-full !justify-start"
|
class="w-full !justify-start"
|
||||||
:label="__('Clear')"
|
:label="__('Clear')"
|
||||||
|
iconLeft="x"
|
||||||
@click="() => clearValue(close)"
|
@click="() => clearValue(close)"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="x" class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
|
|||||||
@ -18,14 +18,10 @@
|
|||||||
:key="g.label"
|
:key="g.label"
|
||||||
>
|
>
|
||||||
<Dropdown :options="g.action" v-slot="{ open }">
|
<Dropdown :options="g.action" v-slot="{ open }">
|
||||||
<Button :label="g.label">
|
<Button
|
||||||
<template #suffix>
|
:label="g.label"
|
||||||
<FeatherIcon
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
/>
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -19,53 +19,36 @@
|
|||||||
v-if="editMode"
|
v-if="editMode"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
:label="__('Save')"
|
:label="__('Save')"
|
||||||
size="sm"
|
|
||||||
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
||||||
@click="saveOption"
|
@click="saveOption"
|
||||||
/>
|
/>
|
||||||
<Tooltip text="Set As Primary" v-if="!isNew && !option.selected">
|
<Button
|
||||||
<div>
|
v-if="!isNew && !option.selected"
|
||||||
<Button
|
:tooltip="__('Set As Primary')"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
:icon="SuccessIcon"
|
||||||
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
||||||
@click="option.onClick"
|
@click="option.onClick"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<SuccessIcon />
|
v-if="!editMode"
|
||||||
</template>
|
:tooltip="__('Edit')"
|
||||||
</Button>
|
variant="ghost"
|
||||||
</div>
|
:icon="EditIcon"
|
||||||
</Tooltip>
|
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
||||||
<Tooltip v-if="!editMode" text="Edit">
|
@click="toggleEditMode"
|
||||||
<div>
|
/>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
:tooltip="__('Delete')"
|
||||||
size="sm"
|
variant="ghost"
|
||||||
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
icon="x"
|
||||||
@click="toggleEditMode"
|
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
||||||
>
|
@click="() => option.onDelete(option, isNew)"
|
||||||
<template #icon>
|
/>
|
||||||
<EditIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
<Tooltip text="Delete">
|
|
||||||
<div>
|
|
||||||
<Button
|
|
||||||
variant="ghost"
|
|
||||||
icon="x"
|
|
||||||
size="sm"
|
|
||||||
class="opacity-0 hover:bg-surface-gray-4 group-hover:opacity-100"
|
|
||||||
@click="() => option.onDelete(option, isNew)"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="option.selected">
|
<div v-if="option.selected">
|
||||||
<FeatherIcon name="check" class="text-ink-gray-5 h-4 w-6" size="sm" />
|
<FeatherIcon name="check" class="text-ink-gray-5 h-4 w-6" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -123,11 +123,12 @@
|
|||||||
v-slot="{ togglePopover }"
|
v-slot="{ togglePopover }"
|
||||||
@update:modelValue="() => appendEmoji()"
|
@update:modelValue="() => appendEmoji()"
|
||||||
>
|
>
|
||||||
<Button variant="ghost" @click="togglePopover()">
|
<Button
|
||||||
<template #icon>
|
:tooltip="__('Insert Emoji')"
|
||||||
<SmileIcon class="h-4" />
|
:icon="SmileIcon"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
@click="togglePopover()"
|
||||||
|
/>
|
||||||
</IconPicker>
|
</IconPicker>
|
||||||
<FileUploader
|
<FileUploader
|
||||||
:upload-args="{
|
:upload-args="{
|
||||||
@ -138,21 +139,20 @@
|
|||||||
@success="(f) => attachments.push(f)"
|
@success="(f) => attachments.push(f)"
|
||||||
>
|
>
|
||||||
<template #default="{ openFileSelector }">
|
<template #default="{ openFileSelector }">
|
||||||
<Button variant="ghost" @click="openFileSelector()">
|
<Button
|
||||||
<template #icon>
|
:tooltip="__('Attach a file')"
|
||||||
<AttachmentIcon class="h-4" />
|
:icon="AttachmentIcon"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
@click="openFileSelector()"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</FileUploader>
|
</FileUploader>
|
||||||
<Button
|
<Button
|
||||||
|
:tooltip="__('Insert Email Template')"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:icon="EmailTemplateIcon"
|
||||||
@click="showEmailTemplateSelectorModal = true"
|
@click="showEmailTemplateSelectorModal = true"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<EmailTemplateIcon class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-2 flex items-center justify-end space-x-2 sm:mt-0">
|
<div class="mt-2 flex items-center justify-end space-x-2 sm:mt-0">
|
||||||
<Button v-bind="discardButtonProps || {}" :label="__('Discard')" />
|
<Button v-bind="discardButtonProps || {}" :label="__('Discard')" />
|
||||||
|
|||||||
@ -89,12 +89,9 @@
|
|||||||
v-if="data[field.fieldname] && field.edit"
|
v-if="data[field.fieldname] && field.edit"
|
||||||
class="shrink-0"
|
class="shrink-0"
|
||||||
:label="__('Edit')"
|
:label="__('Edit')"
|
||||||
|
:iconLeft="EditIcon"
|
||||||
@click="field.edit(data[field.fieldname])"
|
@click="field.edit(data[field.fieldname])"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<EditIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<TableMultiselectInput
|
<TableMultiselectInput
|
||||||
|
|||||||
@ -169,13 +169,10 @@
|
|||||||
<Button
|
<Button
|
||||||
class="w-full !h-8 !bg-surface-modal"
|
class="w-full !h-8 !bg-surface-modal"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Field')"
|
:label="__('Add Field')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #item-label="{ option }">
|
<template #item-label="{ option }">
|
||||||
@ -198,6 +195,7 @@
|
|||||||
class="w-full h-8"
|
class="w-full h-8"
|
||||||
variant="subtle"
|
variant="subtle"
|
||||||
:label="__('Add Section')"
|
:label="__('Add Section')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="
|
@click="
|
||||||
tabs[tabIndex].sections.push({
|
tabs[tabIndex].sections.push({
|
||||||
label: __('New Section'),
|
label: __('New Section'),
|
||||||
@ -206,11 +204,7 @@
|
|||||||
columns: [{ name: 'column_' + getRandom(), fields: [] }],
|
columns: [{ name: 'column_' + getRandom(), fields: [] }],
|
||||||
})
|
})
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
filesUploaderArea?.showWebLink || filesUploaderArea?.showCamera
|
filesUploaderArea?.showWebLink || filesUploaderArea?.showCamera
|
||||||
"
|
"
|
||||||
:label="isMobileView ? __('Back') : __('Back to file upload')"
|
:label="isMobileView ? __('Back') : __('Back to file upload')"
|
||||||
|
iconLeft="arrow-left"
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
filesUploaderArea.showWebLink = false
|
filesUploaderArea.showWebLink = false
|
||||||
@ -37,11 +38,7 @@
|
|||||||
filesUploaderArea.cameraImage = null
|
filesUploaderArea.cameraImage = null
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="arrow-left" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="
|
v-if="
|
||||||
filesUploaderArea?.showCamera && !filesUploaderArea?.cameraImage
|
filesUploaderArea?.showCamera && !filesUploaderArea?.cameraImage
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<NestedPopover>
|
<Popover placement="bottom-end">
|
||||||
<template #target>
|
<template #target="{ togglePopover, close }">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<Button
|
<Button
|
||||||
:label="__('Filter')"
|
:label="__('Filter')"
|
||||||
:class="filters?.size ? 'rounded-r-none' : ''"
|
:class="filters?.size ? 'rounded-r-none' : ''"
|
||||||
|
:iconLeft="FilterIcon"
|
||||||
|
@click="togglePopover"
|
||||||
>
|
>
|
||||||
<template #prefix><FilterIcon class="h-4" /></template>
|
|
||||||
<template v-if="filters?.size" #suffix>
|
<template v-if="filters?.size" #suffix>
|
||||||
<div
|
<div
|
||||||
class="flex h-5 w-5 items-center justify-center rounded-[5px] bg-surface-white pt-px text-xs font-medium text-ink-gray-8 shadow-sm"
|
class="flex h-5 w-5 items-center justify-center rounded-[5px] bg-surface-white pt-px text-xs font-medium text-ink-gray-8 shadow-sm"
|
||||||
@ -15,15 +16,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
<Tooltip v-if="filters?.size" :text="__('Clear all Filter')">
|
<Button
|
||||||
<div>
|
v-if="filters?.size"
|
||||||
<Button
|
:tooltip="__('Clear all Filter')"
|
||||||
class="rounded-l-none border-l"
|
class="rounded-l-none border-l"
|
||||||
icon="x"
|
icon="x"
|
||||||
@click.stop="clearfilter(false)"
|
@click.stop="clearfilter(close)"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ close }">
|
<template #body="{ close }">
|
||||||
@ -134,13 +133,10 @@
|
|||||||
<Button
|
<Button
|
||||||
class="!text-ink-gray-5"
|
class="!text-ink-gray-5"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Filter')"
|
:label="__('Add Filter')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
<Button
|
<Button
|
||||||
@ -154,17 +150,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import FilterIcon from '@/components/Icons/FilterIcon.vue'
|
import FilterIcon from '@/components/Icons/FilterIcon.vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
||||||
import {
|
import {
|
||||||
FormControl,
|
FormControl,
|
||||||
createResource,
|
createResource,
|
||||||
Tooltip,
|
Popover,
|
||||||
DatePicker,
|
DatePicker,
|
||||||
DateTimePicker,
|
DateTimePicker,
|
||||||
DateRangePicker,
|
DateRangePicker,
|
||||||
@ -485,7 +480,7 @@ function removeFilter(index) {
|
|||||||
function clearfilter(close) {
|
function clearfilter(close) {
|
||||||
filters.value.clear()
|
filters.value.clear()
|
||||||
apply()
|
apply()
|
||||||
close && close()
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateValue(value, filter) {
|
function updateValue(value, filter) {
|
||||||
|
|||||||
@ -7,18 +7,10 @@
|
|||||||
? groupByValue?.label
|
? groupByValue?.label
|
||||||
: __('Group By: ') + groupByValue?.label
|
: __('Group By: ') + groupByValue?.label
|
||||||
"
|
"
|
||||||
|
:iconLeft="DetailsIcon"
|
||||||
|
:iconRight="isOpen ? 'chevron-up' : 'chevron-down'"
|
||||||
@click="togglePopover()"
|
@click="togglePopover()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<DetailsIcon />
|
|
||||||
</template>
|
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="isOpen ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -69,7 +69,7 @@
|
|||||||
</Popover>
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import Popover from '@/components/frappe-ui/Popover.vue'
|
import { Popover } from 'frappe-ui'
|
||||||
import { gemoji } from 'gemoji'
|
import { gemoji } from 'gemoji'
|
||||||
import { ref, computed } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
|
|
||||||
|
|||||||
@ -3,11 +3,8 @@
|
|||||||
:label="__('Kanban Settings')"
|
:label="__('Kanban Settings')"
|
||||||
@click="showDialog = true"
|
@click="showDialog = true"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
>
|
:iconLeft="KanbanIcon"
|
||||||
<template #prefix>
|
/>
|
||||||
<KanbanIcon class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Dialog v-model="showDialog" :options="{ title: __('Kanban Settings') }">
|
<Dialog v-model="showDialog" :options="{ title: __('Kanban Settings') }">
|
||||||
<template #body-content>
|
<template #body-content>
|
||||||
<div>
|
<div>
|
||||||
@ -23,8 +20,8 @@
|
|||||||
<template #target="{ togglePopover }">
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
class="w-full !justify-start"
|
class="w-full !justify-start"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="columnField.label"
|
:label="columnField.label"
|
||||||
|
@click="togglePopover()"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
@ -80,13 +77,10 @@
|
|||||||
<template #target="{ togglePopover }">
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
class="w-full mt-2"
|
class="w-full mt-2"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Field')"
|
:label="__('Add Field')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
<template #item-label="{ option }">
|
<template #item-label="{ option }">
|
||||||
<div class="flex flex-col gap-1 text-ink-gray-9">
|
<div class="flex flex-col gap-1 text-ink-gray-9">
|
||||||
|
|||||||
@ -15,17 +15,18 @@
|
|||||||
>
|
>
|
||||||
<div class="flex gap-2 items-center group justify-between">
|
<div class="flex gap-2 items-center group justify-between">
|
||||||
<div class="flex items-center text-base">
|
<div class="flex items-center text-base">
|
||||||
<NestedPopover>
|
<Popover>
|
||||||
<template #target>
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
class="hover:!bg-surface-gray-2"
|
class="hover:!bg-surface-gray-2"
|
||||||
|
@click="togglePopover"
|
||||||
>
|
>
|
||||||
<IndicatorIcon :class="parseColor(column.column.color)" />
|
<IndicatorIcon :class="parseColor(column.column.color)" />
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ close }">
|
<template #body>
|
||||||
<div
|
<div
|
||||||
class="flex flex-col gap-3 px-3 py-2.5 min-w-40 rounded-lg bg-surface-modal shadow-2xl ring-1 ring-black ring-opacity-5 focus:outline-none"
|
class="flex flex-col gap-3 px-3 py-2.5 min-w-40 rounded-lg bg-surface-modal shadow-2xl ring-1 ring-black ring-opacity-5 focus:outline-none"
|
||||||
>
|
>
|
||||||
@ -48,7 +49,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
<div class="text-ink-gray-9">{{ column.column.name }}</div>
|
<div class="text-ink-gray-9">{{ column.column.name }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
@ -153,13 +154,10 @@
|
|||||||
<template #target="{ togglePopover }">
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
class="w-full mt-2.5 mb-1 mr-5"
|
class="w-full mt-2.5 mb-1 mr-5"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Column')"
|
:label="__('Add Column')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
</div>
|
</div>
|
||||||
@ -167,11 +165,10 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import IndicatorIcon from '@/components/Icons/IndicatorIcon.vue'
|
import IndicatorIcon from '@/components/Icons/IndicatorIcon.vue'
|
||||||
import { isTouchScreenDevice, colors, parseColor } from '@/utils'
|
import { isTouchScreenDevice, colors, parseColor } from '@/utils'
|
||||||
import Draggable from 'vuedraggable'
|
import Draggable from 'vuedraggable'
|
||||||
import { Dropdown } from 'frappe-ui'
|
import { Dropdown, Popover } from 'frappe-ui'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
class="relative flex h-full flex-col justify-between transition-all duration-300 ease-in-out"
|
class="relative flex h-full flex-col justify-between transition-all duration-300 ease-in-out"
|
||||||
:class="isSidebarCollapsed ? 'w-12' : 'w-[220px]'"
|
:class="isSidebarCollapsed ? 'w-12' : 'w-[220px]'"
|
||||||
>
|
>
|
||||||
<div>
|
<div class="p-2">
|
||||||
<UserDropdown class="p-2" :isCollapsed="isSidebarCollapsed" />
|
<UserDropdown :isCollapsed="isSidebarCollapsed" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 overflow-y-auto">
|
<div class="flex-1 overflow-y-auto">
|
||||||
<div class="mb-3 flex flex-col">
|
<div class="mb-3 flex flex-col">
|
||||||
@ -197,51 +197,50 @@ const isSidebarCollapsed = useStorage('isSidebarCollapsed', false)
|
|||||||
const isFCSite = ref(window.is_fc_site)
|
const isFCSite = ref(window.is_fc_site)
|
||||||
const isDemoSite = ref(window.is_demo_site)
|
const isDemoSite = ref(window.is_demo_site)
|
||||||
|
|
||||||
const allViews = computed(() => {
|
const links = [
|
||||||
const links = [
|
{
|
||||||
{
|
label: 'Dashboard',
|
||||||
label: 'Dashboard',
|
icon: LucideLayoutDashboard,
|
||||||
icon: LucideLayoutDashboard,
|
to: 'Dashboard',
|
||||||
to: 'Dashboard',
|
},
|
||||||
condition: () => isManager(),
|
{
|
||||||
},
|
label: 'Leads',
|
||||||
{
|
icon: LeadsIcon,
|
||||||
label: 'Leads',
|
to: 'Leads',
|
||||||
icon: LeadsIcon,
|
},
|
||||||
to: 'Leads',
|
{
|
||||||
},
|
label: 'Deals',
|
||||||
{
|
icon: DealsIcon,
|
||||||
label: 'Deals',
|
to: 'Deals',
|
||||||
icon: DealsIcon,
|
},
|
||||||
to: 'Deals',
|
{
|
||||||
},
|
label: 'Contacts',
|
||||||
{
|
icon: ContactsIcon,
|
||||||
label: 'Contacts',
|
to: 'Contacts',
|
||||||
icon: ContactsIcon,
|
},
|
||||||
to: 'Contacts',
|
{
|
||||||
},
|
label: 'Organizations',
|
||||||
{
|
icon: OrganizationsIcon,
|
||||||
label: 'Organizations',
|
to: 'Organizations',
|
||||||
icon: OrganizationsIcon,
|
},
|
||||||
to: 'Organizations',
|
{
|
||||||
},
|
label: 'Notes',
|
||||||
{
|
icon: NoteIcon,
|
||||||
label: 'Notes',
|
to: 'Notes',
|
||||||
icon: NoteIcon,
|
},
|
||||||
to: 'Notes',
|
{
|
||||||
},
|
label: 'Tasks',
|
||||||
{
|
icon: TaskIcon,
|
||||||
label: 'Tasks',
|
to: 'Tasks',
|
||||||
icon: TaskIcon,
|
},
|
||||||
to: 'Tasks',
|
{
|
||||||
},
|
label: 'Call Logs',
|
||||||
{
|
icon: PhoneIcon,
|
||||||
label: 'Call Logs',
|
to: 'Call Logs',
|
||||||
icon: PhoneIcon,
|
},
|
||||||
to: 'Call Logs',
|
]
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
|
const allViews = computed(() => {
|
||||||
let _views = [
|
let _views = [
|
||||||
{
|
{
|
||||||
name: 'All Views',
|
name: 'All Views',
|
||||||
|
|||||||
@ -11,19 +11,18 @@
|
|||||||
<div class="flex items-center gap-1">
|
<div class="flex items-center gap-1">
|
||||||
<Button
|
<Button
|
||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:icon="EditIcon"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
icon="x"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
class="w-7"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
@click="show = false"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="tabs.data && _address.doc">
|
<div v-if="tabs.data && _address.doc">
|
||||||
|
|||||||
@ -36,18 +36,17 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="!isMobileView"
|
v-if="!isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:tooltip="__('Edit call log')"
|
||||||
|
:icon="EditIcon"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
@click="openCallLogModal"
|
@click="openCallLogModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
icon="x"
|
||||||
</template>
|
variant="ghost"
|
||||||
</Button>
|
class="w-7"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
@click="show = false"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col gap-3.5">
|
<div class="flex flex-col gap-3.5">
|
||||||
|
|||||||
@ -13,18 +13,17 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
@click="show = false"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
icon="x"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="tabs.data">
|
<div v-if="tabs.data">
|
||||||
|
|||||||
@ -13,17 +13,16 @@
|
|||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
@click="show = false"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
icon="x"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FieldLayout
|
<FieldLayout
|
||||||
@ -90,12 +89,16 @@ const { document: _contact, triggerOnBeforeCreate } = useDocument('Contact')
|
|||||||
|
|
||||||
async function createContact() {
|
async function createContact() {
|
||||||
if (_contact.doc.email_id) {
|
if (_contact.doc.email_id) {
|
||||||
_contact.doc.email_ids = [{ email_id: _contact.doc.email_id, is_primary: 1 }]
|
_contact.doc.email_ids = [
|
||||||
|
{ email_id: _contact.doc.email_id, is_primary: 1 },
|
||||||
|
]
|
||||||
delete _contact.doc.email_id
|
delete _contact.doc.email_id
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_contact.doc.mobile_no) {
|
if (_contact.doc.mobile_no) {
|
||||||
_contact.doc.phone_nos = [{ phone: _contact.doc.mobile_no, is_primary_mobile_no: 1 }]
|
_contact.doc.phone_nos = [
|
||||||
|
{ phone: _contact.doc.mobile_no, is_primary_mobile_no: 1 },
|
||||||
|
]
|
||||||
delete _contact.doc.mobile_no
|
delete _contact.doc.mobile_no
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,12 +23,10 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:tooltip="__('Edit deal\'s mandatory fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<EditIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button icon="x" variant="ghost" @click="show = false" />
|
<Button icon="x" variant="ghost" @click="show = false" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -13,17 +13,16 @@
|
|||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
icon="x"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
@click="show = false"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="tabs.data">
|
<div v-if="tabs.data">
|
||||||
|
|||||||
@ -13,17 +13,16 @@
|
|||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
icon="x"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
@click="show = false"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -13,17 +13,16 @@
|
|||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
@click="show = false"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
icon="x"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -1,41 +1,59 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog v-model="show" :options="{
|
<Dialog
|
||||||
size: 'xl',
|
v-model="show"
|
||||||
actions: [
|
:options="{
|
||||||
{
|
size: 'xl',
|
||||||
label: editMode ? __('Update') : __('Create'),
|
actions: [
|
||||||
variant: 'solid',
|
{
|
||||||
onClick: () => updateNote(),
|
label: editMode ? __('Update') : __('Create'),
|
||||||
},
|
variant: 'solid',
|
||||||
],
|
onClick: () => updateNote(),
|
||||||
}">
|
},
|
||||||
|
],
|
||||||
|
}"
|
||||||
|
>
|
||||||
<template #body-title>
|
<template #body-title>
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<h3 class="text-2xl font-semibold leading-6 text-ink-gray-9">
|
<h3 class="text-2xl font-semibold leading-6 text-ink-gray-9">
|
||||||
{{ editMode ? __('Edit Note') : __('Create Note') }}
|
{{ editMode ? __('Edit Note') : __('Create Note') }}
|
||||||
</h3>
|
</h3>
|
||||||
<Button v-if="_note?.reference_docname" size="sm" :label="_note.reference_doctype == 'CRM Deal'
|
<Button
|
||||||
? __('Open Deal')
|
v-if="_note?.reference_docname"
|
||||||
: __('Open Lead')
|
size="sm"
|
||||||
" @click="redirect()">
|
:label="
|
||||||
<template #suffix>
|
_note.reference_doctype == 'CRM Deal'
|
||||||
<ArrowUpRightIcon class="w-4 h-4" />
|
? __('Open Deal')
|
||||||
</template>
|
: __('Open Lead')
|
||||||
</Button>
|
"
|
||||||
|
:iconRight="ArrowUpRightIcon"
|
||||||
|
@click="redirect()"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #body-content>
|
<template #body-content>
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<div>
|
<div>
|
||||||
<FormControl ref="title" :label="__('Title')" v-model="_note.title" :placeholder="__('Call with John Doe')"
|
<FormControl
|
||||||
required />
|
ref="title"
|
||||||
|
:label="__('Title')"
|
||||||
|
v-model="_note.title"
|
||||||
|
:placeholder="__('Call with John Doe')"
|
||||||
|
required
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="mb-1.5 text-xs text-ink-gray-5">{{ __('Content') }}</div>
|
<div class="mb-1.5 text-xs text-ink-gray-5">{{ __('Content') }}</div>
|
||||||
<TextEditor variant="outline" ref="content"
|
<TextEditor
|
||||||
|
variant="outline"
|
||||||
|
ref="content"
|
||||||
editor-class="!prose-sm overflow-auto min-h-[180px] max-h-80 py-1.5 px-2 rounded border border-[--surface-gray-2] bg-surface-gray-2 placeholder-ink-gray-4 hover:border-outline-gray-modals hover:bg-surface-gray-3 hover:shadow-sm focus:bg-surface-white focus:border-outline-gray-4 focus:shadow-sm focus:ring-0 focus-visible:ring-2 focus-visible:ring-outline-gray-3 text-ink-gray-8 transition-colors"
|
editor-class="!prose-sm overflow-auto min-h-[180px] max-h-80 py-1.5 px-2 rounded border border-[--surface-gray-2] bg-surface-gray-2 placeholder-ink-gray-4 hover:border-outline-gray-modals hover:bg-surface-gray-3 hover:shadow-sm focus:bg-surface-white focus:border-outline-gray-4 focus:shadow-sm focus:ring-0 focus-visible:ring-2 focus-visible:ring-outline-gray-3 text-ink-gray-8 transition-colors"
|
||||||
:bubbleMenu="true" :content="_note.content" @change="(val) => (_note.content = val)" :placeholder="__('Took a call with John Doe and discussed the new project.')
|
:bubbleMenu="true"
|
||||||
" />
|
:content="_note.content"
|
||||||
|
@change="(val) => (_note.content = val)"
|
||||||
|
:placeholder="
|
||||||
|
__('Took a call with John Doe and discussed the new project.')
|
||||||
|
"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<ErrorMessage class="mt-4" v-if="error" :message="__(error)" />
|
<ErrorMessage class="mt-4" v-if="error" :message="__(error)" />
|
||||||
</div>
|
</div>
|
||||||
@ -92,21 +110,25 @@ async function updateNote() {
|
|||||||
emit('after', d)
|
emit('after', d)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let d = await call('frappe.client.insert', {
|
let d = await call(
|
||||||
doc: {
|
'frappe.client.insert',
|
||||||
doctype: 'FCRM Note',
|
{
|
||||||
title: _note.value.title,
|
doc: {
|
||||||
content: _note.value.content,
|
doctype: 'FCRM Note',
|
||||||
reference_doctype: props.doctype,
|
title: _note.value.title,
|
||||||
reference_docname: props.doc || '',
|
content: _note.value.content,
|
||||||
|
reference_doctype: props.doctype,
|
||||||
|
reference_docname: props.doc || '',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}, {
|
{
|
||||||
onError: (err) => {
|
onError: (err) => {
|
||||||
if (err.error.exc_type == 'MandatoryError') {
|
if (err.error.exc_type == 'MandatoryError') {
|
||||||
error.value = "Title is mandatory"
|
error.value = 'Title is mandatory'
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
})
|
},
|
||||||
|
)
|
||||||
if (d.name) {
|
if (d.name) {
|
||||||
updateOnboardingStep('create_first_note')
|
updateOnboardingStep('create_first_note')
|
||||||
capture('note_created')
|
capture('note_created')
|
||||||
|
|||||||
@ -13,17 +13,16 @@
|
|||||||
v-if="isManager() && !isMobileView"
|
v-if="isManager() && !isMobileView"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7"
|
class="w-7"
|
||||||
|
:tooltip="__('Edit fields layout')"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="openQuickEntryModal"
|
@click="openQuickEntryModal"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<EditIcon />
|
variant="ghost"
|
||||||
</template>
|
class="w-7"
|
||||||
</Button>
|
@click="show = false"
|
||||||
<Button variant="ghost" class="w-7" @click="show = false">
|
icon="x"
|
||||||
<template #icon>
|
/>
|
||||||
<FeatherIcon name="x" class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FieldLayout
|
<FieldLayout
|
||||||
|
|||||||
@ -25,12 +25,9 @@
|
|||||||
? __('Open Deal')
|
? __('Open Deal')
|
||||||
: __('Open Lead')
|
: __('Open Lead')
|
||||||
"
|
"
|
||||||
|
:iconRight="ArrowUpRightIcon"
|
||||||
@click="redirect()"
|
@click="redirect()"
|
||||||
>
|
/>
|
||||||
<template #suffix>
|
|
||||||
<ArrowUpRightIcon class="w-4 h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #body-content>
|
<template #body-content>
|
||||||
|
|||||||
@ -7,17 +7,6 @@
|
|||||||
: duplicateMode
|
: duplicateMode
|
||||||
? __('Duplicate View')
|
? __('Duplicate View')
|
||||||
: __('Create View'),
|
: __('Create View'),
|
||||||
actions: [
|
|
||||||
{
|
|
||||||
label: editMode
|
|
||||||
? __('Save Changes')
|
|
||||||
: duplicateMode
|
|
||||||
? __('Duplicate')
|
|
||||||
: __('Create'),
|
|
||||||
variant: 'solid',
|
|
||||||
onClick: () => (editMode ? update() : create()),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<template #body-content>
|
<template #body-content>
|
||||||
@ -42,6 +31,21 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template #actions>
|
||||||
|
<div class="flex justify-end">
|
||||||
|
<Button
|
||||||
|
variant="solid"
|
||||||
|
:label="
|
||||||
|
editMode
|
||||||
|
? __('Save Changes')
|
||||||
|
: duplicateMode
|
||||||
|
? __('Duplicate')
|
||||||
|
: __('Create')
|
||||||
|
"
|
||||||
|
@click="() => (editMode ? update() : create())"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -9,21 +9,9 @@
|
|||||||
$attrs.class,
|
$attrs.class,
|
||||||
showDropdown ? 'rounded-br-none rounded-tr-none' : '',
|
showDropdown ? 'rounded-br-none rounded-tr-none' : '',
|
||||||
]"
|
]"
|
||||||
|
:iconLeft="activeButton.icon"
|
||||||
@click="() => activeButton.onClick()"
|
@click="() => activeButton.onClick()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon
|
|
||||||
v-if="activeButton.icon && typeof activeButton.icon === 'string'"
|
|
||||||
:name="activeButton.icon"
|
|
||||||
class="h-4 w-4"
|
|
||||||
/>
|
|
||||||
<component
|
|
||||||
v-else-if="activeButton.icon"
|
|
||||||
:is="activeButton.icon"
|
|
||||||
class="h-4 w-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-if="showDropdown"
|
v-if="showDropdown"
|
||||||
:options="parsedOptions"
|
:options="parsedOptions"
|
||||||
|
|||||||
@ -1,60 +0,0 @@
|
|||||||
<template>
|
|
||||||
<Popover v-slot="{ open }">
|
|
||||||
<PopoverButton
|
|
||||||
as="div"
|
|
||||||
ref="reference"
|
|
||||||
@click="updatePosition"
|
|
||||||
@focusin="updatePosition"
|
|
||||||
@keydown="updatePosition"
|
|
||||||
v-slot="{ open }"
|
|
||||||
>
|
|
||||||
<slot name="target" v-bind="{ open }" />
|
|
||||||
</PopoverButton>
|
|
||||||
<div v-show="open">
|
|
||||||
<PopoverPanel
|
|
||||||
v-slot="{ open, close }"
|
|
||||||
ref="popover"
|
|
||||||
static
|
|
||||||
class="z-[100]"
|
|
||||||
>
|
|
||||||
<slot name="body" v-bind="{ open, close }" />
|
|
||||||
</PopoverPanel>
|
|
||||||
</div>
|
|
||||||
</Popover>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'
|
|
||||||
import { createPopper } from '@popperjs/core'
|
|
||||||
import { nextTick, ref, onBeforeUnmount } from 'vue'
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
placement: {
|
|
||||||
type: String,
|
|
||||||
default: 'bottom-start',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const reference = ref(null)
|
|
||||||
const popover = ref(null)
|
|
||||||
|
|
||||||
let popper = ref(null)
|
|
||||||
|
|
||||||
function setupPopper() {
|
|
||||||
if (!popper.value) {
|
|
||||||
popper.value = createPopper(reference.value.el, popover.value.el, {
|
|
||||||
placement: props.placement,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
popper.value.update()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function updatePosition() {
|
|
||||||
nextTick(() => setupPopper())
|
|
||||||
}
|
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
|
||||||
popper.value?.destroy()
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
@ -16,24 +16,18 @@
|
|||||||
>
|
>
|
||||||
<div class="text-base font-medium">{{ __('Notifications') }}</div>
|
<div class="text-base font-medium">{{ __('Notifications') }}</div>
|
||||||
<div class="flex gap-1">
|
<div class="flex gap-1">
|
||||||
<Tooltip :text="__('Mark all as read')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Mark all as read')"
|
||||||
<Button variant="ghost" @click="() => markAllAsRead()">
|
:icon="MarkAsDoneIcon"
|
||||||
<template #icon>
|
variant="ghost"
|
||||||
<MarkAsDoneIcon class="h-4 w-4" />
|
@click="markAllAsRead"
|
||||||
</template>
|
/>
|
||||||
</Button>
|
<Button
|
||||||
</div>
|
:tooltip="__('Close')"
|
||||||
</Tooltip>
|
icon="x"
|
||||||
<Tooltip :text="__('Close')">
|
variant="ghost"
|
||||||
<div>
|
@click="() => toggle()"
|
||||||
<Button variant="ghost" @click="() => toggle()">
|
/>
|
||||||
<template #icon>
|
|
||||||
<FeatherIcon name="x" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@ -100,7 +94,6 @@ import { globalStore } from '@/stores/global'
|
|||||||
import { timeAgo } from '@/utils'
|
import { timeAgo } from '@/utils'
|
||||||
import { onClickOutside } from '@vueuse/core'
|
import { onClickOutside } from '@vueuse/core'
|
||||||
import { capture } from '@/telemetry'
|
import { capture } from '@/telemetry'
|
||||||
import { Tooltip } from 'frappe-ui'
|
|
||||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||||
|
|
||||||
const { $socket } = globalStore()
|
const { $socket } = globalStore()
|
||||||
|
|||||||
@ -27,14 +27,10 @@
|
|||||||
:options="s.options"
|
:options="s.options"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button :label="s.value">
|
<Button
|
||||||
<template #suffix>
|
:label="s.value"
|
||||||
<FeatherIcon
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
/>
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -131,7 +131,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ErrorMessage } from 'frappe-ui'
|
import { ErrorMessage, toast } from 'frappe-ui'
|
||||||
import { getSettings } from '@/stores/settings'
|
import { getSettings } from '@/stores/settings'
|
||||||
import { globalStore } from '@/stores/global'
|
import { globalStore } from '@/stores/global'
|
||||||
import { showSettings } from '@/composables/settings'
|
import { showSettings } from '@/composables/settings'
|
||||||
|
|||||||
@ -80,19 +80,16 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Tooltip text="Delete Invitation">
|
<Button
|
||||||
<div>
|
:tooltip="__('Delete invitation')"
|
||||||
<Button
|
icon="x"
|
||||||
icon="x"
|
variant="ghost"
|
||||||
variant="ghost"
|
:loading="
|
||||||
:loading="
|
pendingInvitations.delete.loading &&
|
||||||
pendingInvitations.delete.loading &&
|
pendingInvitations.delete.params.name === user.name
|
||||||
pendingInvitations.delete.params.name === user.name
|
"
|
||||||
"
|
@click="pendingInvitations.delete.submit(user.name)"
|
||||||
@click="pendingInvitations.delete.submit(user.name)"
|
/>
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@ -20,12 +20,9 @@
|
|||||||
v-if="section.showEditButton"
|
v-if="section.showEditButton"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-7 mr-2"
|
class="w-7 mr-2"
|
||||||
|
:icon="EditIcon"
|
||||||
@click="showSidePanelModal = true"
|
@click="showSidePanelModal = true"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<EditIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</slot>
|
</slot>
|
||||||
</template>
|
</template>
|
||||||
<slot v-bind="{ section }">
|
<slot v-bind="{ section }">
|
||||||
@ -83,11 +80,12 @@
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="field.fieldtype === 'Dropdown'">
|
<div v-else-if="field.fieldtype === 'Dropdown'">
|
||||||
<NestedPopover>
|
<Popover>
|
||||||
<template #target="{ open }">
|
<template #target="{ isOpen, togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
:label="doc[field.fieldname]"
|
:label="doc[field.fieldname]"
|
||||||
class="dropdown-button flex w-full items-center justify-between rounded border border-gray-100 bg-surface-gray-2 px-2 py-1.5 text-base text-ink-gray-8 placeholder-ink-gray-4 transition-colors hover:border-outline-gray-modals hover:bg-surface-gray-3 focus:border-outline-gray-4 focus:bg-surface-white focus:shadow-sm focus:outline-none focus:ring-0 focus-visible:ring-2 focus-visible:ring-outline-gray-3"
|
class="dropdown-button flex w-full items-center justify-between rounded border border-gray-100 bg-surface-gray-2 px-2 py-1.5 text-base text-ink-gray-8 placeholder-ink-gray-4 transition-colors hover:border-outline-gray-modals hover:bg-surface-gray-3 focus:border-outline-gray-4 focus:bg-surface-white focus:shadow-sm focus:outline-none focus:ring-0 focus-visible:ring-2 focus-visible:ring-outline-gray-3"
|
||||||
|
@click="togglePopover"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="doc[field.fieldname]"
|
v-if="doc[field.fieldname]"
|
||||||
@ -103,7 +101,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<FeatherIcon
|
<FeatherIcon
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
:name="
|
||||||
|
isOpen ? 'chevron-up' : 'chevron-down'
|
||||||
|
"
|
||||||
class="h-4 text-ink-gray-5"
|
class="h-4 text-ink-gray-5"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
@ -135,16 +135,13 @@
|
|||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-full !justify-start"
|
class="w-full !justify-start"
|
||||||
:label="__('Create New')"
|
:label="__('Create New')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="field.create()"
|
@click="field.create()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
</div>
|
</div>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-else-if="field.fieldtype == 'Check'"
|
v-else-if="field.fieldtype == 'Check'"
|
||||||
@ -369,7 +366,6 @@
|
|||||||
import Password from '@/components/Controls/Password.vue'
|
import Password from '@/components/Controls/Password.vue'
|
||||||
import FormattedInput from '@/components/Controls/FormattedInput.vue'
|
import FormattedInput from '@/components/Controls/FormattedInput.vue'
|
||||||
import Section from '@/components/Section.vue'
|
import Section from '@/components/Section.vue'
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import DropdownItem from '@/components/DropdownItem.vue'
|
import DropdownItem from '@/components/DropdownItem.vue'
|
||||||
import FadedScrollableDiv from '@/components/FadedScrollableDiv.vue'
|
import FadedScrollableDiv from '@/components/FadedScrollableDiv.vue'
|
||||||
import ArrowUpRightIcon from '@/components/Icons/ArrowUpRightIcon.vue'
|
import ArrowUpRightIcon from '@/components/Icons/ArrowUpRightIcon.vue'
|
||||||
@ -382,7 +378,7 @@ import { usersStore } from '@/stores/users'
|
|||||||
import { isMobileView } from '@/composables/settings'
|
import { isMobileView } from '@/composables/settings'
|
||||||
import { getFormat, evaluateDependsOnValue } from '@/utils'
|
import { getFormat, evaluateDependsOnValue } from '@/utils'
|
||||||
import { flt } from '@/utils/numberFormat.js'
|
import { flt } from '@/utils/numberFormat.js'
|
||||||
import { Tooltip, DateTimePicker, DatePicker } from 'frappe-ui'
|
import { Tooltip, DateTimePicker, DatePicker, Popover } from 'frappe-ui'
|
||||||
import { useDocument } from '@/data/document'
|
import { useDocument } from '@/data/document'
|
||||||
import { ref, computed, getCurrentInstance } from 'vue'
|
import { ref, computed, getCurrentInstance } from 'vue'
|
||||||
|
|
||||||
|
|||||||
@ -94,13 +94,10 @@
|
|||||||
<Button
|
<Button
|
||||||
class="w-full h-8 mt-1.5 !bg-surface-gray-1"
|
class="w-full h-8 mt-1.5 !bg-surface-gray-1"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Field')"
|
:label="__('Add Field')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
<template #item-label="{ option }">
|
<template #item-label="{ option }">
|
||||||
<div class="flex flex-col gap-1 text-ink-gray-9">
|
<div class="flex flex-col gap-1 text-ink-gray-9">
|
||||||
@ -128,6 +125,7 @@
|
|||||||
class="w-full h-8"
|
class="w-full h-8"
|
||||||
variant="subtle"
|
variant="subtle"
|
||||||
:label="__('Add Section')"
|
:label="__('Add Section')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="
|
@click="
|
||||||
sections.push({
|
sections.push({
|
||||||
label: __('New Section'),
|
label: __('New Section'),
|
||||||
@ -136,11 +134,7 @@
|
|||||||
columns: [{ name: 'column_' + getRandom(), fields: [] }],
|
columns: [{ name: 'column_' + getRandom(), fields: [] }],
|
||||||
})
|
})
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -17,13 +17,15 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
<NestedPopover v-else>
|
<Popover placement="bottom-end" v-else>
|
||||||
<template #target="{ open }">
|
<template #target="{ isOpen, togglePopover }">
|
||||||
<Button v-if="sortValues.size > 1" :label="__('Sort')">
|
<Button
|
||||||
<template v-if="hideLabel">
|
v-if="sortValues.size > 1"
|
||||||
<SortIcon class="h-4" />
|
:label="__('Sort')"
|
||||||
</template>
|
:icon="hideLabel && SortIcon"
|
||||||
<template v-if="!hideLabel" #prefix><SortIcon class="h-4" /></template>
|
:iconLeft="!hideLabel && SortIcon"
|
||||||
|
@click="togglePopover"
|
||||||
|
>
|
||||||
<template v-if="sortValues?.size" #suffix>
|
<template v-if="sortValues?.size" #suffix>
|
||||||
<div
|
<div
|
||||||
class="flex h-5 w-5 items-center justify-center rounded-[5px] bg-surface-white pt-px text-xs font-medium text-ink-gray-8 shadow-sm"
|
class="flex h-5 w-5 items-center justify-center rounded-[5px] bg-surface-white pt-px text-xs font-medium text-ink-gray-8 shadow-sm"
|
||||||
@ -36,6 +38,11 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="sortValues.size"
|
v-if="sortValues.size"
|
||||||
class="rounded-r-none border-r"
|
class="rounded-r-none border-r"
|
||||||
|
:icon="
|
||||||
|
Array.from(sortValues)[0].direction == 'asc'
|
||||||
|
? AscendingIcon
|
||||||
|
: DesendingIcon
|
||||||
|
"
|
||||||
@click.stop="
|
@click.stop="
|
||||||
() => {
|
() => {
|
||||||
Array.from(sortValues)[0].direction =
|
Array.from(sortValues)[0].direction =
|
||||||
@ -43,28 +50,17 @@
|
|||||||
apply()
|
apply()
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<AscendingIcon
|
|
||||||
v-if="Array.from(sortValues)[0].direction == 'asc'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
<DesendingIcon v-else class="h-4" />
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
:label="getSortLabel()"
|
:label="getSortLabel()"
|
||||||
class="shrink-0"
|
class="shrink-0 [&_svg]:text-ink-gray-5"
|
||||||
|
:iconLeft="!hideLabel && !sortValues?.size && SortIcon"
|
||||||
|
:iconRight="
|
||||||
|
sortValues?.size && (isOpen ? 'chevron-up' : 'chevron-down')
|
||||||
|
"
|
||||||
:class="sortValues.size ? 'rounded-l-none' : ''"
|
:class="sortValues.size ? 'rounded-l-none' : ''"
|
||||||
>
|
@click.stop="togglePopover"
|
||||||
<template v-if="!hideLabel && !sortValues?.size" #prefix>
|
/>
|
||||||
<SortIcon class="h-4" />
|
|
||||||
</template>
|
|
||||||
<template v-if="sortValues?.size" #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4 text-ink-gray-5"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ close }">
|
<template #body="{ close }">
|
||||||
@ -85,42 +81,42 @@
|
|||||||
<div class="handle flex h-7 w-7 items-center justify-center">
|
<div class="handle flex h-7 w-7 items-center justify-center">
|
||||||
<DragIcon class="h-4 w-4 cursor-grab text-ink-gray-5" />
|
<DragIcon class="h-4 w-4 cursor-grab text-ink-gray-5" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-1 [&>_div]:w-full">
|
<div class="flex flex-1">
|
||||||
<Button
|
<Button
|
||||||
size="md"
|
size="md"
|
||||||
class="rounded-r-none border-r"
|
class="rounded-r-none border-r"
|
||||||
|
:icon="
|
||||||
|
sort.direction == 'asc' ? AscendingIcon : DesendingIcon
|
||||||
|
"
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
sort.direction = sort.direction == 'asc' ? 'desc' : 'asc'
|
sort.direction = sort.direction == 'asc' ? 'desc' : 'asc'
|
||||||
apply()
|
apply()
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<AscendingIcon v-if="sort.direction == 'asc'" class="h-4" />
|
|
||||||
<DesendingIcon v-else class="h-4" />
|
|
||||||
</Button>
|
|
||||||
<Autocomplete
|
<Autocomplete
|
||||||
|
class="[&>_div]:w-full"
|
||||||
:value="sort.fieldname"
|
:value="sort.fieldname"
|
||||||
:options="sortOptions.data"
|
:options="sortOptions.data"
|
||||||
@change="(e) => updateSort(e, i)"
|
@change="(e) => updateSort(e, i)"
|
||||||
:placeholder="__('First Name')"
|
:placeholder="__('First Name')"
|
||||||
>
|
>
|
||||||
<template
|
<template
|
||||||
#target="{ togglePopover, selectedValue, displayValue }"
|
#target="{
|
||||||
|
open,
|
||||||
|
togglePopover,
|
||||||
|
selectedValue,
|
||||||
|
displayValue,
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
class="flex w-full items-center justify-between rounded-l-none !text-ink-gray-5"
|
class="flex w-full items-center justify-between rounded-l-none !text-ink-gray-5"
|
||||||
size="md"
|
size="md"
|
||||||
|
:label="displayValue(selectedValue)"
|
||||||
|
:iconRight="open ? 'chevron-down' : 'chevron-up'"
|
||||||
@click="togglePopover()"
|
@click="togglePopover()"
|
||||||
>
|
/>
|
||||||
{{ displayValue(selectedValue) }}
|
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
name="chevron-down"
|
|
||||||
class="h-4 text-ink-gray-5"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
</div>
|
</div>
|
||||||
@ -143,14 +139,11 @@
|
|||||||
<template #target="{ togglePopover }">
|
<template #target="{ togglePopover }">
|
||||||
<Button
|
<Button
|
||||||
class="!text-ink-gray-5"
|
class="!text-ink-gray-5"
|
||||||
variant="ghost"
|
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add Sort')"
|
:label="__('Add Sort')"
|
||||||
>
|
variant="ghost"
|
||||||
<template #prefix>
|
iconLeft="plus"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
@click="togglePopover()"
|
||||||
</template>
|
/>
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
<Button
|
<Button
|
||||||
@ -164,18 +157,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</NestedPopover>
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import AscendingIcon from '@/components/Icons/AscendingIcon.vue'
|
import AscendingIcon from '@/components/Icons/AscendingIcon.vue'
|
||||||
import DesendingIcon from '@/components/Icons/DesendingIcon.vue'
|
import DesendingIcon from '@/components/Icons/DesendingIcon.vue'
|
||||||
import NestedPopover from '@/components/NestedPopover.vue'
|
|
||||||
import SortIcon from '@/components/Icons/SortIcon.vue'
|
import SortIcon from '@/components/Icons/SortIcon.vue'
|
||||||
import DragIcon from '@/components/Icons/DragIcon.vue'
|
import DragIcon from '@/components/Icons/DragIcon.vue'
|
||||||
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
import Autocomplete from '@/components/frappe-ui/Autocomplete.vue'
|
||||||
import { useSortable } from '@vueuse/integrations/useSortable'
|
import { useSortable } from '@vueuse/integrations/useSortable'
|
||||||
import { createResource } from 'frappe-ui'
|
import { createResource, Popover } from 'frappe-ui'
|
||||||
import { computed, nextTick, onMounted } from 'vue'
|
import { computed, nextTick, onMounted } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -123,13 +123,11 @@
|
|||||||
<div class="flex">
|
<div class="flex">
|
||||||
<Button
|
<Button
|
||||||
@click="toggleCallPopup"
|
@click="toggleCallPopup"
|
||||||
class="bg-surface-gray-7 text-ink-white hover:bg-surface-gray-6 shrink-0"
|
class="bg-surface-gray-7 text-ink-white hover:bg-surface-gray-6 shrink-0 cursor-pointer"
|
||||||
|
:tooltip="__('Minimize')"
|
||||||
|
:icon="MinimizeIcon"
|
||||||
size="md"
|
size="md"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<MinimizeIcon class="h-4 w-4 cursor-pointer" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="callStatus == 'Call ended' || callStatus == 'No answer'"
|
v-if="callStatus == 'Call ended' || callStatus == 'No answer'"
|
||||||
@click="closeCallPopup"
|
@click="closeCallPopup"
|
||||||
@ -182,33 +180,26 @@
|
|||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
<Button
|
<Button
|
||||||
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
||||||
|
:tooltip="__('Add a note')"
|
||||||
size="md"
|
size="md"
|
||||||
|
:icon="NoteIcon"
|
||||||
@click="showNoteWindow"
|
@click="showNoteWindow"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<NoteIcon class="w-4 h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
||||||
size="md"
|
size="md"
|
||||||
|
:tooltip="__('Add a task')"
|
||||||
|
:icon="TaskIcon"
|
||||||
@click="showTaskWindow"
|
@click="showTaskWindow"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<TaskIcon class="w-4 h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="contact.deal || contact.lead"
|
v-if="contact.deal || contact.lead"
|
||||||
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
class="bg-surface-gray-6 text-ink-white hover:bg-surface-gray-5"
|
||||||
size="md"
|
size="md"
|
||||||
|
:iconRight="ArrowUpRightIcon"
|
||||||
:label="contact.deal ? __('Deal') : __('Lead')"
|
:label="contact.deal ? __('Deal') : __('Lead')"
|
||||||
@click="openDealOrLead"
|
@click="openDealOrLead"
|
||||||
>
|
/>
|
||||||
<template #suffix>
|
|
||||||
<ArrowUpRightIcon class="w-4 h-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -52,22 +52,18 @@
|
|||||||
<DialpadIcon class="cursor-pointer rounded-full" />
|
<DialpadIcon class="cursor-pointer rounded-full" />
|
||||||
</template>
|
</template>
|
||||||
</Button> -->
|
</Button> -->
|
||||||
<Button class="rounded-full">
|
<Button
|
||||||
<template #icon>
|
class="cursor-pointer rounded-full"
|
||||||
<NoteIcon
|
:tooltip="__('Add a note')"
|
||||||
class="h-4 w-4 cursor-pointer rounded-full text-ink-gray-9"
|
:icon="NoteIcon"
|
||||||
@click="showNoteModal = true"
|
@click="showNoteModal = true"
|
||||||
/>
|
/>
|
||||||
</template>
|
<Button
|
||||||
</Button>
|
class="rounded-full bg-surface-red-5 hover:bg-surface-red-6 rotate-[135deg] text-ink-white"
|
||||||
<Button class="rounded-full bg-surface-red-5 hover:bg-surface-red-6">
|
:tooltip="__('Hang up')"
|
||||||
<template #icon>
|
:icon="PhoneIcon"
|
||||||
<PhoneIcon
|
@click="hangUpCall"
|
||||||
class="h-4 w-4 rotate-[135deg] fill-white text-ink-white"
|
/>
|
||||||
@click="hangUpCall"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="calling || callStatus == 'initiating'">
|
<div v-else-if="calling || callStatus == 'initiating'">
|
||||||
<Button
|
<Button
|
||||||
@ -76,13 +72,10 @@
|
|||||||
theme="red"
|
theme="red"
|
||||||
:label="__('Cancel')"
|
:label="__('Cancel')"
|
||||||
@click="cancelCall"
|
@click="cancelCall"
|
||||||
class="rounded-lg"
|
class="rounded-lg rotate-[135deg] text-ink-white"
|
||||||
:disabled="callStatus == 'initiating'"
|
:disabled="callStatus == 'initiating'"
|
||||||
>
|
:iconLeft="PhoneIcon"
|
||||||
<template #prefix>
|
/>
|
||||||
<PhoneIcon class="h-4 w-4 rotate-[135deg] fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="flex gap-2">
|
<div v-else class="flex gap-2">
|
||||||
<Button
|
<Button
|
||||||
@ -90,25 +83,19 @@
|
|||||||
variant="solid"
|
variant="solid"
|
||||||
theme="green"
|
theme="green"
|
||||||
:label="__('Accept')"
|
:label="__('Accept')"
|
||||||
class="rounded-lg"
|
class="rounded-lg text-ink-white"
|
||||||
|
:iconLeft="PhoneIcon"
|
||||||
@click="acceptIncomingCall"
|
@click="acceptIncomingCall"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<PhoneIcon class="h-4 w-4 fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
size="md"
|
size="md"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
theme="red"
|
theme="red"
|
||||||
:label="__('Reject')"
|
:label="__('Reject')"
|
||||||
class="rounded-lg"
|
class="rounded-lg rotate-[135deg] text-ink-white"
|
||||||
|
:iconLeft="PhoneIcon"
|
||||||
@click="rejectIncomingCall"
|
@click="rejectIncomingCall"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<PhoneIcon class="h-4 w-4 rotate-[135deg] fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -134,14 +121,13 @@
|
|||||||
<div class="my-1 min-w-[40px] text-center">
|
<div class="my-1 min-w-[40px] text-center">
|
||||||
{{ counterUp?.updatedTime }}
|
{{ counterUp?.updatedTime }}
|
||||||
</div>
|
</div>
|
||||||
<Button variant="solid" theme="red" class="!h-6 !w-6 rounded-full">
|
<Button
|
||||||
<template #icon>
|
variant="solid"
|
||||||
<PhoneIcon
|
theme="red"
|
||||||
class="h-4 w-4 rotate-[135deg] fill-white"
|
class="!h-6 !w-6 rounded-full rotate-[135deg] text-ink-white"
|
||||||
@click.stop="hangUpCall"
|
:icon="PhoneIcon"
|
||||||
/>
|
@click.stop="hangUpCall"
|
||||||
</template>
|
/>
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="calling" class="flex items-center gap-3">
|
<div v-else-if="calling" class="flex items-center gap-3">
|
||||||
<div class="my-1">
|
<div class="my-1">
|
||||||
@ -150,35 +136,28 @@
|
|||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
theme="red"
|
theme="red"
|
||||||
class="!h-6 !w-6 rounded-full"
|
class="!h-6 !w-6 rounded-full rotate-[135deg] text-ink-white"
|
||||||
|
:icon="PhoneIcon"
|
||||||
@click.stop="cancelCall"
|
@click.stop="cancelCall"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<PhoneIcon class="h-4 w-4 rotate-[135deg] fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="flex items-center gap-2">
|
<div v-else class="flex items-center gap-2">
|
||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
theme="green"
|
theme="green"
|
||||||
class="pulse relative !h-6 !w-6 rounded-full"
|
class="pulse relative !h-6 !w-6 rounded-full animate-pulse text-ink-white"
|
||||||
|
:tooltip="__('Accept call')"
|
||||||
|
:icon="PhoneIcon"
|
||||||
@click.stop="acceptIncomingCall"
|
@click.stop="acceptIncomingCall"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<PhoneIcon class="h-4 w-4 animate-pulse fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
theme="red"
|
theme="red"
|
||||||
class="!h-6 !w-6 rounded-full"
|
class="!h-6 !w-6 rounded-full rotate-[135deg] text-ink-white"
|
||||||
|
:tooltip="__('Reject call')"
|
||||||
|
:icon="PhoneIcon"
|
||||||
@click.stop="rejectIncomingCall"
|
@click.stop="rejectIncomingCall"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
|
||||||
<PhoneIcon class="h-4 w-4 rotate-[135deg] fill-white" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<NoteModal
|
<NoteModal
|
||||||
|
|||||||
@ -18,28 +18,25 @@
|
|||||||
>
|
>
|
||||||
/
|
/
|
||||||
</span>
|
</span>
|
||||||
<Dropdown v-if="viewControls" :options="viewControls.viewsDropdownOptions">
|
<Dropdown
|
||||||
|
v-if="viewControls"
|
||||||
|
:options="viewControls.viewsDropdownOptions"
|
||||||
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="text-lg font-medium text-nowrap"
|
class="text-lg font-medium text-nowrap"
|
||||||
:label="__(viewControls.currentView.label)"
|
:label="__(viewControls.currentView.label)"
|
||||||
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<Icon :icon="viewControls.currentView.icon" class="h-4" />
|
<Icon :icon="viewControls.currentView.icon" class="h-4" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4 text-ink-gray-8"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
<template #item="{ item, active }">
|
<template #item="{ item, close }">
|
||||||
<button
|
<button
|
||||||
class="group flex text-ink-gray-6 gap-4 h-7 w-full justify-between items-center rounded px-2 text-base"
|
class="group flex text-ink-gray-6 gap-4 h-7 w-full justify-between items-center rounded px-2 text-base hover:bg-surface-gray-3"
|
||||||
:class="{ 'bg-surface-gray-3': active }"
|
|
||||||
@click="item.onClick"
|
@click="item.onClick"
|
||||||
>
|
>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
@ -63,16 +60,15 @@
|
|||||||
class="flex flex-row-reverse gap-2 items-center min-w-11"
|
class="flex flex-row-reverse gap-2 items-center min-w-11"
|
||||||
>
|
>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:class="active ? 'block' : 'hidden'"
|
|
||||||
placement="right-start"
|
placement="right-start"
|
||||||
:options="viewControls.viewActions(item)"
|
:options="viewControls.viewActions(item, close)"
|
||||||
>
|
>
|
||||||
<template #default="{ togglePopover }">
|
<template #default>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="!size-5"
|
class="!size-5 hidden group-hover:block"
|
||||||
icon="more-horizontal"
|
icon="more-horizontal"
|
||||||
@click.stop="togglePopover()"
|
@click.stop
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
@ -89,7 +85,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import Icon from '@/components/Icon.vue'
|
import Icon from '@/components/Icon.vue'
|
||||||
import Dropdown from '@/components/frappe-ui/Dropdown.vue'
|
import { Dropdown } from 'frappe-ui'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
routeName: {
|
routeName: {
|
||||||
|
|||||||
@ -22,11 +22,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
<Button :label="__('Refresh')" @click="reload()" :loading="isLoading">
|
<Button
|
||||||
<template #icon>
|
:tooltip="__('Refresh')"
|
||||||
<RefreshIcon class="h-4 w-4" />
|
:icon="RefreshIcon"
|
||||||
</template>
|
:loading="isLoading"
|
||||||
</Button>
|
@click="reload()"
|
||||||
|
/>
|
||||||
<SortBy
|
<SortBy
|
||||||
v-if="route.params.viewType !== 'kanban'"
|
v-if="route.params.viewType !== 'kanban'"
|
||||||
v-model="list"
|
v-model="list"
|
||||||
@ -100,13 +101,10 @@
|
|||||||
<Button
|
<Button
|
||||||
class="whitespace-nowrap mr-2"
|
class="whitespace-nowrap mr-2"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@click="togglePopover()"
|
|
||||||
:label="__('Add filter')"
|
:label="__('Add filter')"
|
||||||
>
|
iconLeft="plus"
|
||||||
<template #prefix>
|
@click="togglePopover()"
|
||||||
<FeatherIcon name="plus" class="h-4" />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
<template #item-label="{ option }">
|
<template #item-label="{ option }">
|
||||||
<Tooltip :text="option.value" :hover-delay="1">
|
<Tooltip :text="option.value" :hover-delay="1">
|
||||||
@ -124,11 +122,7 @@
|
|||||||
:loading="updateQuickFilters.loading"
|
:loading="updateQuickFilters.loading"
|
||||||
@click="saveQuickFilters"
|
@click="saveQuickFilters"
|
||||||
/>
|
/>
|
||||||
<Button @click="customizeQuickFilter = false">
|
<Button icon="x" @click="customizeQuickFilter = false" />
|
||||||
<template #icon>
|
|
||||||
<FeatherIcon name="x" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="flex items-center justify-between gap-2 px-5 py-4">
|
<div v-else class="flex items-center justify-between gap-2 px-5 py-4">
|
||||||
@ -157,11 +151,12 @@
|
|||||||
<Button :label="__('Save Changes')" @click="saveView" />
|
<Button :label="__('Save Changes')" @click="saveView" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<Button :label="__('Refresh')" @click="reload()" :loading="isLoading">
|
<Button
|
||||||
<template #icon>
|
:tooltip="__('Refresh')"
|
||||||
<RefreshIcon class="h-4 w-4" />
|
:icon="RefreshIcon"
|
||||||
</template>
|
:loading="isLoading"
|
||||||
</Button>
|
@click="reload()"
|
||||||
|
/>
|
||||||
<GroupBy
|
<GroupBy
|
||||||
v-if="route.params.viewType === 'group_by'"
|
v-if="route.params.viewType === 'group_by'"
|
||||||
v-model="list"
|
v-model="list"
|
||||||
@ -194,6 +189,7 @@
|
|||||||
/>
|
/>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-if="route.params.viewType !== 'kanban' || isManager()"
|
v-if="route.params.viewType !== 'kanban' || isManager()"
|
||||||
|
placement="right"
|
||||||
:options="[
|
:options="[
|
||||||
{
|
{
|
||||||
group: __('Options'),
|
group: __('Options'),
|
||||||
@ -218,7 +214,7 @@
|
|||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<template #default>
|
<template #default>
|
||||||
<Button icon="more-horizontal" />
|
<Button :tooltip="__('More Options')" icon="more-horizontal" />
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
@ -1088,7 +1084,7 @@ function updatePageLength(value, loadMore = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// View Actions
|
// View Actions
|
||||||
const viewActions = (view) => {
|
const viewActions = (view, close) => {
|
||||||
let isStandard = typeof view.name === 'string'
|
let isStandard = typeof view.name === 'string'
|
||||||
let _view = getView(view.name)
|
let _view = getView(view.name)
|
||||||
|
|
||||||
@ -1112,7 +1108,7 @@ const viewActions = (view) => {
|
|||||||
{
|
{
|
||||||
label: __('Duplicate'),
|
label: __('Duplicate'),
|
||||||
icon: () => h(DuplicateIcon, { class: 'h-4 w-4' }),
|
icon: () => h(DuplicateIcon, { class: 'h-4 w-4' }),
|
||||||
onClick: () => duplicateView(_view),
|
onClick: () => duplicateView(_view, close),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -1130,7 +1126,7 @@ const viewActions = (view) => {
|
|||||||
actions[0].items.push({
|
actions[0].items.push({
|
||||||
label: __('Edit'),
|
label: __('Edit'),
|
||||||
icon: () => h(EditIcon, { class: 'h-4 w-4' }),
|
icon: () => h(EditIcon, { class: 'h-4 w-4' }),
|
||||||
onClick: () => editView(_view),
|
onClick: () => editView(_view, close),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!_view.public) {
|
if (!_view.public) {
|
||||||
@ -1213,17 +1209,19 @@ function setAsDefault(v) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function duplicateView(v) {
|
function duplicateView(v, close) {
|
||||||
v.label = v.label + __(' (New)')
|
v.label = v.label + __(' (New)')
|
||||||
viewModalObj.value = v
|
viewModalObj.value = v
|
||||||
viewModalObj.value.mode = 'duplicate'
|
viewModalObj.value.mode = 'duplicate'
|
||||||
showViewModal.value = true
|
showViewModal.value = true
|
||||||
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
function editView(v) {
|
function editView(v, close) {
|
||||||
viewModalObj.value = v
|
viewModalObj.value = v
|
||||||
viewModalObj.value.mode = 'edit'
|
viewModalObj.value.mode = 'edit'
|
||||||
showViewModal.value = true
|
showViewModal.value = true
|
||||||
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
function publicView(v) {
|
function publicView(v) {
|
||||||
|
|||||||
@ -8,9 +8,12 @@
|
|||||||
v-if="callLogsListView?.customListActions"
|
v-if="callLogsListView?.customListActions"
|
||||||
:actions="callLogsListView.customListActions"
|
:actions="callLogsListView.customListActions"
|
||||||
/>
|
/>
|
||||||
<Button variant="solid" :label="__('Create')" @click="createCallLog">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
variant="solid"
|
||||||
</Button>
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
|
@click="createCallLog"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
|
|||||||
@ -93,17 +93,14 @@
|
|||||||
v-if="callEnabled && contact.doc.mobile_no"
|
v-if="callEnabled && contact.doc.mobile_no"
|
||||||
:label="__('Make Call')"
|
:label="__('Make Call')"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
:iconLeft="PhoneIcon"
|
||||||
@click="callEnabled && makeCall(contact.doc.mobile_no)"
|
@click="callEnabled && makeCall(contact.doc.mobile_no)"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<PhoneIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
:label="__('Delete')"
|
:label="__('Delete')"
|
||||||
theme="red"
|
theme="red"
|
||||||
size="sm"
|
size="sm"
|
||||||
icon-left="trash-2"
|
iconLeft="trash-2"
|
||||||
@click="deleteContact()"
|
@click="deleteContact()"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -11,10 +11,9 @@
|
|||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
:label="__('Create')"
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="showContactModal = true"
|
@click="showContactModal = true"
|
||||||
>
|
/>
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -57,9 +56,11 @@
|
|||||||
>
|
>
|
||||||
<ContactsIcon class="h-10 w-10" />
|
<ContactsIcon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Contacts')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Contacts')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="showContactModal = true">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
:label="__('Create')"
|
||||||
</Button>
|
iconLeft="plus"
|
||||||
|
@click="showContactModal = true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ContactModal
|
<ContactModal
|
||||||
|
|||||||
@ -8,36 +8,27 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="!editing"
|
v-if="!editing"
|
||||||
:label="__('Refresh')"
|
:label="__('Refresh')"
|
||||||
|
:iconLeft="LucideRefreshCcw"
|
||||||
@click="dashboardItems.reload"
|
@click="dashboardItems.reload"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<LucideRefreshCcw class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="!editing && isAdmin()"
|
v-if="!editing && isAdmin()"
|
||||||
:label="__('Edit')"
|
:label="__('Edit')"
|
||||||
|
:iconLeft="LucidePenLine"
|
||||||
@click="enableEditing"
|
@click="enableEditing"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<LucidePenLine class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
v-if="editing"
|
v-if="editing"
|
||||||
:label="__('Chart')"
|
:label="__('Chart')"
|
||||||
icon-left="plus"
|
iconLeft="plus"
|
||||||
@click="showAddChartModal = true"
|
@click="showAddChartModal = true"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
v-if="editing && isAdmin()"
|
v-if="editing && isAdmin()"
|
||||||
:label="__('Reset to default')"
|
:label="__('Reset to default')"
|
||||||
|
:iconLeft="LucideUndo2"
|
||||||
@click="resetToDefault"
|
@click="resetToDefault"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<LucideUndo2 class="size-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button v-if="editing" :label="__('Cancel')" @click="cancel" />
|
<Button v-if="editing" :label="__('Cancel')" @click="cancel" />
|
||||||
<Button
|
<Button
|
||||||
v-if="editing"
|
v-if="editing"
|
||||||
@ -65,11 +56,7 @@
|
|||||||
iconRight: 'chevron-down',
|
iconRight: 'chevron-down',
|
||||||
iconLeft: 'calendar',
|
iconLeft: 'calendar',
|
||||||
}"
|
}"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<LucideCalendar class="size-4 text-ink-gray-5 mr-2" />
|
|
||||||
</template>
|
|
||||||
</Dropdown>
|
|
||||||
<DateRangePicker
|
<DateRangePicker
|
||||||
v-else
|
v-else
|
||||||
class="!w-48"
|
class="!w-48"
|
||||||
|
|||||||
@ -18,26 +18,19 @@
|
|||||||
/>
|
/>
|
||||||
<AssignTo v-model="assignees.data" doctype="CRM Deal" :docname="dealId" />
|
<AssignTo v-model="assignees.data" doctype="CRM Deal" :docname="dealId" />
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-if="doc"
|
v-if="doc && document.statuses"
|
||||||
:options="
|
:options="statuses"
|
||||||
statusOptions(
|
placement="right"
|
||||||
'deal',
|
|
||||||
document.statuses?.length ? document.statuses : document._statuses,
|
|
||||||
triggerStatusChange,
|
|
||||||
)
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button v-if="doc.status" :label="doc.status">
|
<Button
|
||||||
|
v-if="doc.status"
|
||||||
|
:label="doc.status"
|
||||||
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<IndicatorIcon :class="getDealStatus(doc.status).color" />
|
<IndicatorIcon :class="getDealStatus(doc.status).color" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
@ -83,54 +76,44 @@
|
|||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div class="flex gap-1.5">
|
<div class="flex gap-1.5">
|
||||||
<Tooltip v-if="callEnabled" :text="__('Make a call')">
|
<Button
|
||||||
<div>
|
v-if="callEnabled"
|
||||||
<Button @click="triggerCall">
|
:tooltip="__('Make a call')"
|
||||||
<template #icon><PhoneIcon /></template>
|
:icon="PhoneIcon"
|
||||||
</Button>
|
@click="triggerCall"
|
||||||
</div>
|
/>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip :text="__('Send an email')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Send an email')"
|
||||||
<Button
|
:icon="Email2Icon"
|
||||||
@click="
|
@click="
|
||||||
doc.email ? openEmailBox() : toast.error(__('No email set'))
|
doc.email ? openEmailBox() : toast.error(__('No email set'))
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #icon><Email2Icon /></template>
|
|
||||||
</Button>
|
<Button
|
||||||
</div>
|
:tooltip="__('Go to website')"
|
||||||
</Tooltip>
|
:icon="LinkIcon"
|
||||||
<Tooltip :text="__('Go to website')">
|
@click="
|
||||||
<div>
|
doc.website
|
||||||
<Button
|
? openWebsite(doc.website)
|
||||||
@click="
|
: toast.error(__('No website set'))
|
||||||
doc.website
|
"
|
||||||
? openWebsite(doc.website)
|
/>
|
||||||
: toast.error(__('No website set'))
|
|
||||||
"
|
<Button
|
||||||
>
|
:tooltip="__('Attach a file')"
|
||||||
<template #icon><LinkIcon /></template>
|
:icon="AttachmentIcon"
|
||||||
</Button>
|
@click="showFilesUploader = true"
|
||||||
</div>
|
/>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip :text="__('Attach a file')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Delete')"
|
||||||
<Button @click="showFilesUploader = true">
|
variant="subtle"
|
||||||
<template #icon><AttachmentIcon /></template>
|
icon="trash-2"
|
||||||
</Button>
|
theme="red"
|
||||||
</div>
|
@click="deleteDeal"
|
||||||
</Tooltip>
|
/>
|
||||||
<Tooltip :text="__('Delete')">
|
|
||||||
<div>
|
|
||||||
<Button
|
|
||||||
@click="deleteDeal"
|
|
||||||
variant="subtle"
|
|
||||||
icon="trash-2"
|
|
||||||
theme="red"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -233,26 +216,22 @@
|
|||||||
</Dropdown>
|
</Dropdown>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
:tooltip="__('View contact')"
|
||||||
|
:icon="ArrowUpRightIcon"
|
||||||
@click="
|
@click="
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Contact',
|
name: 'Contact',
|
||||||
params: { contactId: contact.name },
|
params: { contactId: contact.name },
|
||||||
})
|
})
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #icon>
|
<Button
|
||||||
<ArrowUpRightIcon class="h-4 w-4" />
|
variant="ghost"
|
||||||
</template>
|
class="transition-all duration-300 ease-in-out"
|
||||||
</Button>
|
:class="{ 'rotate-90': opened }"
|
||||||
<Button variant="ghost" @click="toggle()">
|
icon="chevron-right"
|
||||||
<template #icon>
|
@click="toggle()"
|
||||||
<FeatherIcon
|
/>
|
||||||
name="chevron-right"
|
|
||||||
class="h-4 w-4 text-ink-gray-9 transition-all duration-300 ease-in-out"
|
|
||||||
:class="{ 'rotate-90': opened }"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -526,6 +505,13 @@ const title = computed(() => {
|
|||||||
return doc.value?.[t] || props.dealId
|
return doc.value?.[t] || props.dealId
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const statuses = computed(() => {
|
||||||
|
let customStatuses = document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: document._statuses || []
|
||||||
|
return statusOptions('deal', customStatuses, triggerStatusChange)
|
||||||
|
})
|
||||||
|
|
||||||
usePageMeta(() => {
|
usePageMeta(() => {
|
||||||
return {
|
return {
|
||||||
title: title.value,
|
title: title.value,
|
||||||
|
|||||||
@ -11,10 +11,9 @@
|
|||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
:label="__('Create')"
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="showDealModal = true"
|
@click="showDealModal = true"
|
||||||
>
|
/>
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -233,9 +232,11 @@
|
|||||||
>
|
>
|
||||||
<DealsIcon class="h-10 w-10" />
|
<DealsIcon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Deals')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Deals')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="showDealModal = true">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
:label="__('Create')"
|
||||||
</Button>
|
iconLeft="plus"
|
||||||
|
@click="showDealModal = true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<DealModal
|
<DealModal
|
||||||
|
|||||||
@ -3,11 +3,12 @@
|
|||||||
class="grid h-full place-items-center px-4 py-20 text-center text-lg text-ink-gray-5"
|
class="grid h-full place-items-center px-4 py-20 text-center text-lg text-ink-gray-5"
|
||||||
>
|
>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<div>Invalid page or not permitted to access</div>
|
<div>{{ __('Invalid page or not permitted to access') }}</div>
|
||||||
<Button :route="{ name: 'Leads' }">
|
<Button
|
||||||
<template #prefix><LeadsIcon class="w-4" /></template>
|
:route="{ name: 'Leads' }"
|
||||||
Leads
|
:label="__('Leads')"
|
||||||
</Button>
|
:iconLeft="LeadsIcon"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -18,26 +18,19 @@
|
|||||||
/>
|
/>
|
||||||
<AssignTo v-model="assignees.data" doctype="CRM Lead" :docname="leadId" />
|
<AssignTo v-model="assignees.data" doctype="CRM Lead" :docname="leadId" />
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-if="doc"
|
v-if="doc && document.statuses"
|
||||||
:options="
|
:options="statuses"
|
||||||
statusOptions(
|
placement="right"
|
||||||
'lead',
|
|
||||||
document.statuses?.length ? document.statuses : document._statuses,
|
|
||||||
triggerStatusChange,
|
|
||||||
)
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button v-if="doc.status" :label="doc.status">
|
<Button
|
||||||
|
v-if="doc.status"
|
||||||
|
:label="doc.status"
|
||||||
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<IndicatorIcon :class="getLeadStatus(doc.status).color" />
|
<IndicatorIcon :class="getLeadStatus(doc.status).color" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
@ -125,71 +118,48 @@
|
|||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div class="flex gap-1.5">
|
<div class="flex gap-1.5">
|
||||||
<Tooltip v-if="callEnabled" :text="__('Make a call')">
|
<Button
|
||||||
<div>
|
v-if="callEnabled"
|
||||||
<Button
|
:tooltip="__('Make a call')"
|
||||||
@click="
|
:icon="PhoneIcon"
|
||||||
() =>
|
@click="
|
||||||
doc.mobile_no
|
() =>
|
||||||
? makeCall(doc.mobile_no)
|
doc.mobile_no
|
||||||
: toast.error(__('No phone number set'))
|
? makeCall(doc.mobile_no)
|
||||||
"
|
: toast.error(__('No phone number set'))
|
||||||
>
|
"
|
||||||
<template #icon>
|
/>
|
||||||
<PhoneIcon />
|
|
||||||
</template>
|
<Button
|
||||||
</Button>
|
:tooltip="__('Send an email')"
|
||||||
</div>
|
:icon="Email2Icon"
|
||||||
</Tooltip>
|
@click="
|
||||||
<Tooltip :text="__('Send an email')">
|
doc.email ? openEmailBox() : toast.error(__('No email set'))
|
||||||
<div>
|
"
|
||||||
<Button
|
/>
|
||||||
@click="
|
<Button
|
||||||
doc.email
|
:tooltip="__('Go to website')"
|
||||||
? openEmailBox()
|
:icon="LinkIcon"
|
||||||
: toast.error(__('No email set'))
|
@click="
|
||||||
"
|
doc.website
|
||||||
>
|
? openWebsite(doc.website)
|
||||||
<template #icon>
|
: toast.error(__('No website set'))
|
||||||
<Email2Icon />
|
"
|
||||||
</template>
|
/>
|
||||||
</Button>
|
|
||||||
</div>
|
<Button
|
||||||
</Tooltip>
|
:tooltip="__('Attach a file')"
|
||||||
<Tooltip :text="__('Go to website')">
|
:icon="AttachmentIcon"
|
||||||
<div>
|
@click="showFilesUploader = true"
|
||||||
<Button
|
/>
|
||||||
@click="
|
|
||||||
doc.website
|
<Button
|
||||||
? openWebsite(doc.website)
|
:tooltip="__('Delete')"
|
||||||
: toast.error(__('No website set'))
|
variant="subtle"
|
||||||
"
|
theme="red"
|
||||||
>
|
icon="trash-2"
|
||||||
<template #icon>
|
@click="deleteLead"
|
||||||
<LinkIcon />
|
/>
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
<Tooltip :text="__('Attach a file')">
|
|
||||||
<div>
|
|
||||||
<Button @click="showFilesUploader = true">
|
|
||||||
<template #icon>
|
|
||||||
<AttachmentIcon />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
<Tooltip :text="__('Delete')">
|
|
||||||
<div>
|
|
||||||
<Button
|
|
||||||
@click="deleteLead"
|
|
||||||
variant="subtle"
|
|
||||||
theme="red"
|
|
||||||
icon="trash-2"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
<ErrorMessage :message="__(error)" />
|
<ErrorMessage :message="__(error)" />
|
||||||
</div>
|
</div>
|
||||||
@ -395,6 +365,13 @@ const title = computed(() => {
|
|||||||
return doc?.[t] || props.leadId
|
return doc?.[t] || props.leadId
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const statuses = computed(() => {
|
||||||
|
let customStatuses = document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: document._statuses || []
|
||||||
|
return statusOptions('lead', customStatuses, triggerStatusChange)
|
||||||
|
})
|
||||||
|
|
||||||
usePageMeta(() => {
|
usePageMeta(() => {
|
||||||
return { title: title.value, icon: brand.favicon }
|
return { title: title.value, icon: brand.favicon }
|
||||||
})
|
})
|
||||||
|
|||||||
@ -11,10 +11,9 @@
|
|||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
:label="__('Create')"
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="showLeadModal = true"
|
@click="showLeadModal = true"
|
||||||
>
|
/>
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -259,9 +258,11 @@
|
|||||||
>
|
>
|
||||||
<LeadsIcon class="h-10 w-10" />
|
<LeadsIcon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Leads')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Leads')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="showLeadModal = true">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
:label="__('Create')"
|
||||||
</Button>
|
iconLeft="plus"
|
||||||
|
@click="showLeadModal = true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<LeadModal
|
<LeadModal
|
||||||
|
|||||||
@ -72,12 +72,9 @@
|
|||||||
v-if="callEnabled && contact.doc.mobile_no"
|
v-if="callEnabled && contact.doc.mobile_no"
|
||||||
:label="__('Make Call')"
|
:label="__('Make Call')"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
:iconLeft="PhoneIcon"
|
||||||
@click="callEnabled && makeCall(contact.doc.mobile_no)"
|
@click="callEnabled && makeCall(contact.doc.mobile_no)"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<PhoneIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
<Button
|
<Button
|
||||||
:label="__('Delete')"
|
:label="__('Delete')"
|
||||||
theme="red"
|
theme="red"
|
||||||
|
|||||||
@ -22,16 +22,14 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button v-if="doc.status" :label="doc.status">
|
<Button
|
||||||
|
v-if="doc.status"
|
||||||
|
:label="doc.status"
|
||||||
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<IndicatorIcon :class="getDealStatus(doc.status).color" />
|
<IndicatorIcon :class="getDealStatus(doc.status).color" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
|
|||||||
@ -22,16 +22,14 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button v-if="doc.status" :label="doc.status">
|
<Button
|
||||||
|
v-if="doc.status"
|
||||||
|
:label="doc.status"
|
||||||
|
:iconRight="open ? 'chevron-up' : 'chevron-down'"
|
||||||
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<IndicatorIcon :class="getLeadStatus(doc.status).color" />
|
<IndicatorIcon :class="getLeadStatus(doc.status).color" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix>
|
|
||||||
<FeatherIcon
|
|
||||||
:name="open ? 'chevron-up' : 'chevron-down'"
|
|
||||||
class="h-4"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
|
|||||||
@ -8,18 +8,12 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #right-header>
|
<template #right-header>
|
||||||
<Tooltip :text="__('Mark all as read')">
|
<Button
|
||||||
<div>
|
:tooltip="__('Mark all as read')"
|
||||||
<Button
|
:label="__('Mark all as read')"
|
||||||
:label="__('Mark all as read')"
|
:iconLeft="MarkAsDoneIcon"
|
||||||
@click="() => mark_as_read.reload()"
|
@click="() => mark_as_read.reload()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<MarkAsDoneIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<div class="flex flex-col overflow-hidden text-ink-gray-9">
|
<div class="flex flex-col overflow-hidden text-ink-gray-9">
|
||||||
|
|||||||
@ -72,12 +72,9 @@
|
|||||||
:label="__('Delete')"
|
:label="__('Delete')"
|
||||||
theme="red"
|
theme="red"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
iconLeft="trash-2"
|
||||||
@click="deleteOrganization"
|
@click="deleteOrganization"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
|
||||||
<FeatherIcon name="trash-2" class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<ErrorMessage :message="__(error)" />
|
<ErrorMessage :message="__(error)" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -4,9 +4,12 @@
|
|||||||
<ViewBreadcrumbs v-model="viewControls" routeName="Notes" />
|
<ViewBreadcrumbs v-model="viewControls" routeName="Notes" />
|
||||||
</template>
|
</template>
|
||||||
<template #right-header>
|
<template #right-header>
|
||||||
<Button variant="solid" :label="__('Create')" @click="createNote">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
variant="solid"
|
||||||
</Button>
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
|
@click="createNote"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -90,9 +93,7 @@
|
|||||||
>
|
>
|
||||||
<NoteIcon class="h-10 w-10" />
|
<NoteIcon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Notes')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Notes')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="createNote">
|
<Button :label="__('Create')" iconLeft="plus" @click="createNote" />
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<NoteModal
|
<NoteModal
|
||||||
|
|||||||
@ -83,19 +83,14 @@
|
|||||||
:label="__('Delete')"
|
:label="__('Delete')"
|
||||||
theme="red"
|
theme="red"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
iconLeft="trash-2"
|
||||||
@click="deleteOrganization()"
|
@click="deleteOrganization()"
|
||||||
>
|
/>
|
||||||
<template #prefix>
|
<Button
|
||||||
<FeatherIcon name="trash-2" class="h-4 w-4" />
|
:tooltip="__('Open website')"
|
||||||
</template>
|
icon="link"
|
||||||
</Button>
|
@click="openWebsite"
|
||||||
<Tooltip :text="__('Open website')">
|
/>
|
||||||
<div>
|
|
||||||
<Button @click="openWebsite">
|
|
||||||
<FeatherIcon name="link" class="h-4 w-4" />
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -11,10 +11,9 @@
|
|||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
:label="__('Create')"
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
@click="showOrganizationModal = true"
|
@click="showOrganizationModal = true"
|
||||||
>
|
/>
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
|
||||||
</Button>
|
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -57,9 +56,11 @@
|
|||||||
>
|
>
|
||||||
<OrganizationsIcon class="h-10 w-10" />
|
<OrganizationsIcon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Organizations')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Organizations')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="showOrganizationModal = true">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
:label="__('Create')"
|
||||||
</Button>
|
iconLeft="plus"
|
||||||
|
@click="showOrganizationModal = true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<OrganizationModal
|
<OrganizationModal
|
||||||
|
|||||||
@ -8,9 +8,12 @@
|
|||||||
v-if="tasksListView?.customListActions"
|
v-if="tasksListView?.customListActions"
|
||||||
:actions="tasksListView.customListActions"
|
:actions="tasksListView.customListActions"
|
||||||
/>
|
/>
|
||||||
<Button variant="solid" :label="__('Create')" @click="createTask">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
variant="solid"
|
||||||
</Button>
|
:label="__('Create')"
|
||||||
|
iconLeft="plus"
|
||||||
|
@click="createTask"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</LayoutHeader>
|
</LayoutHeader>
|
||||||
<ViewControls
|
<ViewControls
|
||||||
@ -120,8 +123,8 @@
|
|||||||
<div class="flex gap-2 items-center justify-between">
|
<div class="flex gap-2 items-center justify-between">
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
class="-ml-2"
|
|
||||||
v-if="getRow(itemName, 'reference_docname').label"
|
v-if="getRow(itemName, 'reference_docname').label"
|
||||||
|
class="-ml-2"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
:label="
|
:label="
|
||||||
@ -129,17 +132,14 @@
|
|||||||
? __('Deal')
|
? __('Deal')
|
||||||
: __('Lead')
|
: __('Lead')
|
||||||
"
|
"
|
||||||
|
:iconRight="ArrowUpRightIcon"
|
||||||
@click.stop="
|
@click.stop="
|
||||||
redirect(
|
redirect(
|
||||||
getRow(itemName, 'reference_doctype').label,
|
getRow(itemName, 'reference_doctype').label,
|
||||||
getRow(itemName, 'reference_docname').label,
|
getRow(itemName, 'reference_docname').label,
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
/>
|
||||||
<template #suffix>
|
|
||||||
<ArrowUpRightIcon class="h-4 w-4" />
|
|
||||||
</template>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
class="flex items-center gap-2"
|
class="flex items-center gap-2"
|
||||||
@ -182,9 +182,11 @@
|
|||||||
>
|
>
|
||||||
<Email2Icon class="h-10 w-10" />
|
<Email2Icon class="h-10 w-10" />
|
||||||
<span>{{ __('No {0} Found', [__('Tasks')]) }}</span>
|
<span>{{ __('No {0} Found', [__('Tasks')]) }}</span>
|
||||||
<Button :label="__('Create')" @click="showTaskModal = true">
|
<Button
|
||||||
<template #prefix><FeatherIcon name="plus" class="h-4" /></template>
|
:label="__('Create')"
|
||||||
</Button>
|
iconLeft="plus"
|
||||||
|
@click="showTaskModal = true"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<TaskModal
|
<TaskModal
|
||||||
|
|||||||
639
yarn.lock
639
yarn.lock
@ -1089,6 +1089,14 @@
|
|||||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||||
"@jridgewell/trace-mapping" "^0.3.24"
|
"@jridgewell/trace-mapping" "^0.3.24"
|
||||||
|
|
||||||
|
"@jridgewell/remapping@^2.3.5":
|
||||||
|
version "2.3.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
|
||||||
|
integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
|
||||||
|
dependencies:
|
||||||
|
"@jridgewell/gen-mapping" "^0.3.5"
|
||||||
|
"@jridgewell/trace-mapping" "^0.3.24"
|
||||||
|
|
||||||
"@jridgewell/resolve-uri@^3.1.0":
|
"@jridgewell/resolve-uri@^3.1.0":
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
|
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
|
||||||
@ -1261,213 +1269,208 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@tanstack/virtual-core" "3.13.4"
|
"@tanstack/virtual-core" "3.13.4"
|
||||||
|
|
||||||
"@tiptap/core@^2.10.3":
|
"@tiptap/core@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.10.3.tgz#7744abd4a954f35265af351f1be9b545e819c66d"
|
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.26.1.tgz#8f97c223629972221d4175e4779f6ee955c41a37"
|
||||||
integrity sha512-wAG/0/UsLeZLmshWb6rtWNXKJftcmnned91/HLccHVQAuQZ1UWH+wXeQKu/mtodxEO7JcU2mVPR9mLGQkK0McQ==
|
integrity sha512-fymyd/XZvYiHjBoLt1gxs024xP/LY26d43R1vluYq7AHBL/7DE3ywzy+1GEsGyAv5Je2L0KBhNIR/izbq3Kaqg==
|
||||||
|
|
||||||
"@tiptap/core@^2.11.7":
|
"@tiptap/extension-blockquote@^2.26.1":
|
||||||
version "2.12.0"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.12.0.tgz#e0bc9255865db53682e83d843c8fef19596a8899"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.26.1.tgz#8ad2b3c119ff22430432ef46c852c135c156d63b"
|
||||||
integrity sha512-3qX8oGVKFFZzQ0vit+ZolR6AJIATBzmEmjAA0llFhWk4vf3v64p1YcXcJsOBsr5scizJu5L6RYWEFatFwqckRg==
|
integrity sha512-viQ6AHRhjCYYipKK6ZepBzwZpkuMvO9yhRHeUZDvlSOAh8rvsUTSre0y74nu8QRYUt4a44lJJ6BpphJK7bEgYA==
|
||||||
|
|
||||||
"@tiptap/extension-blockquote@^2.10.3":
|
"@tiptap/extension-bold@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.10.3.tgz#ee29925930ac9a5b129d3ad262bb45afcc23b318"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.26.1.tgz#1218b847d360d69b6fc9e30596991bc53bc8fb98"
|
||||||
integrity sha512-u9Mq4r8KzoeGVT8ms6FQDIMN95dTh3TYcT7fZpwcVM96mIl2Oyt+Bk66mL8z4zuFptfRI57Cu9QdnHEeILd//w==
|
integrity sha512-zCce9PRuTNhadFir71luLo99HERDpGJ0EEflGm7RN8I1SnNi9gD5ooK42BOIQtejGCJqg3hTPZiYDJC2hXvckQ==
|
||||||
|
|
||||||
"@tiptap/extension-bold@^2.10.3":
|
"@tiptap/extension-bubble-menu@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.10.3.tgz#6ffdeed5d1b2c7bd2a248b327083f3db89c02f87"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.26.1.tgz#7d78abb95bfc96468b40819ec00e2770ddcf63ad"
|
||||||
integrity sha512-xnF1tS2BsORenr11qyybW120gHaeHKiKq+ZOP14cGA0MsriKvWDnaCSocXP/xMEYHy7+2uUhJ0MsKkHVj4bPzQ==
|
integrity sha512-oHevUcZbTMFOTpdCEo4YEDe044MB4P1ZrWyML8CGe5tnnKdlI9BN03AXpI1mEEa5CA3H1/eEckXx8EiCgYwQ3Q==
|
||||||
|
|
||||||
"@tiptap/extension-bubble-menu@^2.10.3":
|
|
||||||
version "2.10.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.10.3.tgz#e7f2fdddd6ef4310f9a18bc8df79f910ab26c688"
|
|
||||||
integrity sha512-e9a4yMjQezuKy0rtyyzxbV2IAE1bm1PY3yoZEFrcaY0o47g1CMUn2Hwe+9As2HdntEjQpWR7NO1mZeKxHlBPYA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
tippy.js "^6.3.7"
|
tippy.js "^6.3.7"
|
||||||
|
|
||||||
"@tiptap/extension-bullet-list@^2.10.3":
|
"@tiptap/extension-bullet-list@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.10.3.tgz#0a17343aaf64679327de87785918bcdb04744edf"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.26.1.tgz#b92170ca5d0b3404599799277fd73a124e81d093"
|
||||||
integrity sha512-PTkwJOVlHi4RR4Wrs044tKMceweXwNmWA6EoQ93hPUVtQcwQL990Es5Izp+i88twTPLuGD9dH+o9QDyH9SkWdA==
|
integrity sha512-HHakuV4ckYCDOnBbne088FvCEP4YICw+wgPBz/V2dfpiFYQ4WzT0LPK9s7OFMCN+ROraoug+1ryN1Z1KdIgujQ==
|
||||||
|
|
||||||
"@tiptap/extension-code-block-lowlight@^2.11.5":
|
"@tiptap/extension-code-block-lowlight@^2.26.1":
|
||||||
version "2.11.5"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.11.5.tgz#62c05a70ec1f0b47e257a9345253031650ab014b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.26.1.tgz#42033f833906de3cf66263598dc4cad70fe3651d"
|
||||||
integrity sha512-EIE+mAGsp8C69dI0Yyg+VH1x36rgyPJc93SfA7h4xFF6Oth18z4YhJtiLaZcwCMyOOVs2efApZ0R3/Fnz2VlqA==
|
integrity sha512-yptuTPYAzVMKHUTwNKYveuu0rYHYyFknPz3O2++PWeeBGxkNB+T6LhwZ/JhXceHcZxzlGyka9r2mXR7pslhugw==
|
||||||
|
|
||||||
"@tiptap/extension-code-block@^2.10.3":
|
"@tiptap/extension-code-block@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.10.3.tgz#5ff1b1e563c4eda44677df444c523de1e5258fa4"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.26.1.tgz#dd6f9ec59440844f8e0ab0b33a75ff8ab6b6669f"
|
||||||
integrity sha512-yiDVNg22fYkzsFk5kBlDSHcjwVJgajvO/M5fDXA+Hfxwo2oNcG6aJyyHXFe+UaXTVjdkPej0J6kcMKrTMCiFug==
|
integrity sha512-/TDDOwONl0qEUc4+B6V9NnWtSjz95eg7/8uCb8Y8iRbGvI9vT4/znRKofFxstvKmW4URu/H74/g0ywV57h0B+A==
|
||||||
|
|
||||||
"@tiptap/extension-code-block@^2.11.9":
|
"@tiptap/extension-code@^2.26.1":
|
||||||
version "2.12.0"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.12.0.tgz#73bceaa90ba54de65ade42db5a28cc299c16158b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.26.1.tgz#ed289955423da20faa6ef4c81472835ac5fe1574"
|
||||||
integrity sha512-1D7cYAjgxEFHdfC/35Ooi4GqWKB5sszbW8iI7N16XILNln26xb0d5KflXqYrwr9CN/ZnZoCl2o6YsP7xEObcZA==
|
integrity sha512-GU9deB1A/Tr4FMPu71CvlcjGKwRhGYz60wQ8m4aM+ELZcVIcZRa1ebR8bExRIEWnvRztQuyRiCQzw2N0xQJ1QQ==
|
||||||
|
|
||||||
"@tiptap/extension-code@^2.10.3":
|
"@tiptap/extension-color@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.10.3.tgz#b9fb04be2d51760f011ec7a060d4e2e3eefe392c"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-color/-/extension-color-2.26.1.tgz#075386150a4457d03c85371a88205c838fc2bfae"
|
||||||
integrity sha512-JyLbfyY3cPctq9sVdpcRWTcoUOoq3/MnGE1eP6eBNyMTHyBPcM9TPhOkgj+xkD1zW/884jfelB+wa70RT/AMxQ==
|
integrity sha512-lsPw3qpQNes1rHpxBtsV9XniN1dEjYd2nVTpQHGE4XLNwfE5+ejm6ySs8qVLM7+EXWcjANLLh4UA3zqkX6t6HA==
|
||||||
|
|
||||||
"@tiptap/extension-color@^2.0.3":
|
"@tiptap/extension-document@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-color/-/extension-color-2.10.3.tgz#97e77235dc20adc96c1034b48cfe7ce20040864d"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.26.1.tgz#3e65e4833fee138e5afaed4be586d75db10cb8b6"
|
||||||
integrity sha512-FC2hPMSQ4w9UmO9kJCAdoU7gHpDbJ6MeJAmikB9EPp16dbGwFLrZm9TZ/4pv74fGfVm0lv720316ALOEgPEDjQ==
|
integrity sha512-2P2IZp1NRAE+21mRuFBiP3X2WKfZ6kUC23NJKpn8bcOamY3obYqCt0ltGPhE4eR8n8QAl2fI/3jIgjR07dC8ow==
|
||||||
|
|
||||||
"@tiptap/extension-document@^2.10.3":
|
"@tiptap/extension-dropcursor@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.10.3.tgz#2ba039932af67c85475870697495b099d9983a1d"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.26.1.tgz#2eff232f3ab50816ba7182275f84f475a88b4443"
|
||||||
integrity sha512-6i8+xbS2zB6t8iFzli1O/QB01MmwyI5Hqiiv4m5lOxqavmJwLss2sRhoMC2hB3CyFg5UmeODy/f/RnI6q5Vixg==
|
integrity sha512-JkDQU2ZYFOuT5mNYb8OiWGwD1HcjbtmX8tLNugQbToECmz9WvVPqJmn7V/q8VGpP81iEECz/IsyRmuf2kSD4uA==
|
||||||
|
|
||||||
"@tiptap/extension-dropcursor@^2.10.3":
|
"@tiptap/extension-floating-menu@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.10.3.tgz#c5484e16df98f3c43c9f585c5686b38808c4615b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.26.1.tgz#4be572fa98f356d44b1817cff5cd0db819f45c01"
|
||||||
integrity sha512-wzWf82ixWzZQr0hxcf/A0ul8NNxgy1N63O+c56st6OomoLuKUJWOXF+cs9O7V+/5rZKWdbdYYoRB5QLvnDBAlQ==
|
integrity sha512-OJF+H6qhQogVTMedAGSWuoL1RPe3LZYXONuFCVyzHnvvMpK+BP1vm180E2zDNFnn/DVA+FOrzNGpZW7YjoFH1w==
|
||||||
|
|
||||||
"@tiptap/extension-floating-menu@^2.10.3":
|
|
||||||
version "2.10.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.10.3.tgz#5ce1613d79d80182b9b92f77ef7c429a8dc6b88a"
|
|
||||||
integrity sha512-Prg8rYLxeyzHxfzVu1mDkkUWMnD9ZN3y370O/1qy55e+XKVw9jFkTSuz0y0+OhMJG6bulYpDUMtb+N3+2xOWlQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
tippy.js "^6.3.7"
|
tippy.js "^6.3.7"
|
||||||
|
|
||||||
"@tiptap/extension-gapcursor@^2.10.3":
|
"@tiptap/extension-gapcursor@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.10.3.tgz#6a68027d41fb77707104551b2886146253a9461b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.26.1.tgz#7a5ebd84d4495aa8403ececd1ace51d3ba9ab139"
|
||||||
integrity sha512-FskZi2DqDSTH1WkgLF2OLy0xU7qj3AgHsKhVsryeAtld4jAK5EsonneWgaipbz0e/MxuIvc1oyacfZKABpLaNg==
|
integrity sha512-KOiMZc3PwJS3hR0nSq5d0TJi2jkNZkLZElcT6pCEnhRHzPH6dRMu9GM5Jj798ZRUy0T9UFcKJalFZaDxnmRnpg==
|
||||||
|
|
||||||
"@tiptap/extension-hard-break@^2.10.3":
|
"@tiptap/extension-hard-break@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.10.3.tgz#1fd1ea91e57c018747e54516eaca963e578af6a4"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.26.1.tgz#70226e2b63e2252a74f6e59b5c001a4c02e0c1e5"
|
||||||
integrity sha512-2rFlimUKAgKDwT6nqAMtPBjkrknQY8S7oBNyIcDOUGyFkvbDUl3Jd0PiC929S5F3XStJRppnMqhpNDAlWmvBLA==
|
integrity sha512-d6uStdNKi8kjPlHAyO59M6KGWATNwhLCD7dng0NXfwGndc22fthzIk/6j9F6ltQx30huy5qQram6j3JXwNACoA==
|
||||||
|
|
||||||
"@tiptap/extension-heading@^2.10.3":
|
"@tiptap/extension-heading@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.10.3.tgz#bf8efb3a580c75b86dce505a63f1ca7450a9aaea"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.26.1.tgz#49d1e8f2d10eb1c06bf348d7cb9d131097d65f78"
|
||||||
integrity sha512-AlxXXPCWIvw8hQUDFRskasj32iMNB8Sb19VgyFWqwvntGs2/UffNu8VdsVqxD2HpZ0g5rLYCYtSW4wigs9R3og==
|
integrity sha512-KSzL8WZV3pjJG9ke4RaU70+B5UlYR2S6olNt5UCAawM+fi11mobVztiBoC19xtpSVqIXC1AmXOqUgnuSvmE4ZA==
|
||||||
|
|
||||||
"@tiptap/extension-heading@^2.12.0":
|
"@tiptap/extension-highlight@^2.26.1":
|
||||||
version "2.14.0"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.14.0.tgz#c5a9dc761712e9c87073ba8446548cbe4d403360"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.26.1.tgz#9c5aca076d146332930882c0fad7cbe47026c681"
|
||||||
integrity sha512-vM//6G3Ox3mxPv9eilhrDqylELCc8kEP1aQ4xUuOw7vCidjNtGggOa1ERnnpV2dCa2A9E8y4FHtN4Xh29stXQg==
|
integrity sha512-9eW2UqDqeAKSDIiL6SqcPSDCQAdU5qQmRMsJlShOM7Fu1aU71b1ewhUP9YioUCanciR99tqNsk/n3LAe0w5XdA==
|
||||||
|
|
||||||
"@tiptap/extension-highlight@^2.0.3":
|
"@tiptap/extension-history@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.10.3.tgz#d94667d435d9dc556b06e7b764449dc2a6c18743"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.26.1.tgz#de8e8a5ebf08cbbccb6dec11291128843a2d24e6"
|
||||||
integrity sha512-srMOdpUTcp1yPGmUqgKOkbmTpCYOF6Q/8CnquDkhrvK7Gyphj+n8TocrKiloaRYZKcoQWtmb+kcVPaHhHMzsWQ==
|
integrity sha512-m6YR1gkkauIDo3PRl0gP+7Oc4n5OqDzcjVh6LvWREmZP8nmi94hfseYbqOXUb6RPHIc0JKF02eiRifT4MSd2nw==
|
||||||
|
|
||||||
"@tiptap/extension-history@^2.10.3":
|
"@tiptap/extension-horizontal-rule@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.10.3.tgz#86ddbdaaa1573d4461c3a925185c4ebd9aec8079"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.26.1.tgz#5c0c635d4444f38cb70e721d06fbe2d47a79982c"
|
||||||
integrity sha512-HaSiMdx9Im9Pb9qGlVud7W8bweRDRMez33Uzs5a2x0n1RWkelfH7TwYs41Y3wus8Ujs7kw6qh7jyhvPpQBKaSA==
|
integrity sha512-mT6baqOhs/NakgrAeDeed194E/ZJFGL692H0C7f1N7WDRaWxUu2oR0LrnRqSH5OyPjELkzu6nQnNy0+0tFGHHg==
|
||||||
|
|
||||||
"@tiptap/extension-horizontal-rule@^2.10.3":
|
"@tiptap/extension-image@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.10.3.tgz#b2b6e47896ad12ef6747816bc11b388a53480614"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.26.1.tgz#1b71633f31a7c53c4570f94e1068ceb46fe93224"
|
||||||
integrity sha512-1a2IWhD00tgUNg/91RLnBvfENL7DLCui5L245+smcaLu+OXOOEpoBHawx59/M4hEpsjqvRRM79TzO9YXfopsPw==
|
integrity sha512-96+MaYBJebQlR/ik5W72GLUfXdEoxFs+6jsoERxbM5qEdhb7TEnodBFtWZOwgDO27kFd6rSNZuW9r5KJNtljEg==
|
||||||
|
|
||||||
"@tiptap/extension-image@^2.0.3":
|
"@tiptap/extension-italic@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.10.3.tgz#88f18344bcb8878cd47504e3eb592ced5da1e32f"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.26.1.tgz#cd798d5e410d112f70aaea2c7eb30716f4a483c6"
|
||||||
integrity sha512-YIjAF5CwDkMe28OQ5pvnmdRgbJ9JcGMIHY1kyqNunSf2iwphK+6SWz9UEIkDFiT7AsRZySqxFSq93iK1XyTifw==
|
integrity sha512-pOs6oU4LyGO89IrYE4jbE8ZYsPwMMIiKkYfXcfeD9NtpGNBnjeVXXF5I9ndY2ANrCAgC8k58C3/powDRf0T2yA==
|
||||||
|
|
||||||
"@tiptap/extension-italic@^2.10.3":
|
"@tiptap/extension-link@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.10.3.tgz#0efb940c572e47bd03e7e50a7ce745b60040771d"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.26.1.tgz#8e479556b08aa42e2ac9369d45c30c281051a45a"
|
||||||
integrity sha512-wAiO6ZxoHx2H90phnKttLWGPjPZXrfKxhOCsqYrK8BpRByhr48godOFRuGwYnKaiwoVjpxc63t+kDJDWvqmgMw==
|
integrity sha512-7yfum5Jymkue/uOSTQPt2SmkZIdZx7t3QhZLqBU7R9ettkdSCBgEGok6N+scJM1R1Zes+maSckLm0JZw5BKYNA==
|
||||||
|
|
||||||
"@tiptap/extension-link@^2.0.3":
|
|
||||||
version "2.10.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.10.3.tgz#ddf8c99cc2ce664c3b53d11184cbbde70120ee78"
|
|
||||||
integrity sha512-8esKlkZBzEiNcpt7I8Cd6l1mWmCc/66pPbUq9LfnIniDXE3U+ahBf4m3TJltYFBGbiiTR/xqMtJyVHOpuLDtAw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
linkifyjs "^4.1.0"
|
linkifyjs "^4.2.0"
|
||||||
|
|
||||||
"@tiptap/extension-list-item@^2.10.3":
|
"@tiptap/extension-list-item@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.10.3.tgz#a35c10a579acff63bb46a2fa9491b5f4edf00188"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.26.1.tgz#932e041245d3a696c943e9d4a32cdf59cb386e88"
|
||||||
integrity sha512-9sok81gvZfSta2K1Dwrq5/HSz1jk4zHBpFqCx0oydzodGslx6X1bNxdca+eXJpXZmQIWALK7zEr4X8kg3WZsgw==
|
integrity sha512-quOXckC73Luc3x+Dcm88YAEBW+Crh3x5uvtQOQtn2GEG91AshrvbnhGRiYnfvEN7UhWIS+FYI5liHFcRKSUKrQ==
|
||||||
|
|
||||||
"@tiptap/extension-mention@^2.0.3":
|
"@tiptap/extension-mention@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.10.3.tgz#544d257f8e5fd79ac32ca6d1b29c4447a1330d9a"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.26.1.tgz#f61a77f8b3dd99b12b9aac0a9ee8041f098b3986"
|
||||||
integrity sha512-h0+BrTS2HdjMfsuy6zkFIqmVGYL8w3jIG0gYaDHjWwwe/Lf2BDgOu3bZWcSr/3bKiJIwwzpOJrXssqta4TZ0yQ==
|
integrity sha512-sBrlJ9nWjFx7oWCtt0hV192FgCBXva1zwImWbgXTCGPAjv0d5EoPymIfRgoeanAmuQjOHoKzzZnJ6bELTZhkGw==
|
||||||
|
|
||||||
"@tiptap/extension-ordered-list@^2.10.3":
|
"@tiptap/extension-ordered-list@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.10.3.tgz#5ee0feb2f06a59c50e413160840f244215cc4026"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.26.1.tgz#81e60f4b679533b736ef0fbad4263a11e1c8465e"
|
||||||
integrity sha512-/SFuEDnbJxy3jvi72LeyiPHWkV+uFc0LUHTUHSh20vwyy+tLrzncJfXohGbTIv5YxYhzExQYZDRD4VbSghKdlw==
|
integrity sha512-UHKNRxq6TBnXMGFSq91knD6QaHsyyOwLOsXMzupmKM5Su0s+CRXEjfav3qKlbb9e4m7D7S/a0aPm8nC9KIXNhQ==
|
||||||
|
|
||||||
"@tiptap/extension-paragraph@^2.10.3":
|
|
||||||
version "2.10.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.10.3.tgz#128c8fcd46d2e854d214c7f566e6212f2ebff6f1"
|
|
||||||
integrity sha512-sNkTX/iN+YoleDiTJsrWSBw9D7c4vsYwnW5y/G5ydfuJMIRQMF78pWSIWZFDRNOMkgK5UHkhu9anrbCFYgBfaA==
|
|
||||||
|
|
||||||
"@tiptap/extension-paragraph@^2.12.0":
|
"@tiptap/extension-paragraph@^2.12.0":
|
||||||
version "2.12.0"
|
version "2.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.12.0.tgz#35987cfa842f254e67ecec403441578a1b2189a1"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.12.0.tgz#35987cfa842f254e67ecec403441578a1b2189a1"
|
||||||
integrity sha512-QNK5cgewCunWFxpLlbvvoO1rrLgEtNKxiY79fctP9toV+e59R+1i1Q9lXC1O5mOfDgVxCb6uFDMsqmKhFjpPog==
|
integrity sha512-QNK5cgewCunWFxpLlbvvoO1rrLgEtNKxiY79fctP9toV+e59R+1i1Q9lXC1O5mOfDgVxCb6uFDMsqmKhFjpPog==
|
||||||
|
|
||||||
"@tiptap/extension-placeholder@^2.0.3":
|
"@tiptap/extension-paragraph@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.10.3.tgz#eeb2b2f1916619e334af7d2a9d6885f77bb4ab78"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.26.1.tgz#2e25f9e72fd5b4b34ca8e9e3c355303d86eae055"
|
||||||
integrity sha512-0OkwnDLguZgoiJM85cfnOySuMmPUF7qqw7DHQ+c3zwTAYnvzpvqrvpupc+2Zi9GfC1sDgr+Ajrp8imBHa6PHfA==
|
integrity sha512-UezvM9VDRAVJlX1tykgHWSD1g3MKfVMWWZ+Tg+PE4+kizOwoYkRWznVPgCAxjmyHajxpCKRXgqTZkOxjJ9Kjzg==
|
||||||
|
|
||||||
"@tiptap/extension-strike@^2.10.3":
|
"@tiptap/extension-placeholder@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.10.3.tgz#99e39c8156cad7a9dc88504ac43aa839c54ef7af"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.26.1.tgz#a44280063978dfa86aad71dee6cad36c3a7862a0"
|
||||||
integrity sha512-jYoPy6F6njYp3txF3u23bgdRy/S5ATcWDO9LPZLHSeikwQfJ47nqb+EUNo5M8jIOgFBTn4MEbhuZ6OGyhnxopA==
|
integrity sha512-MBlqbkd+63btY7Qu+SqrXvWjPwooGZDsLTtl7jp52BczBl61cq9yygglt9XpM11TFMBdySgdLHBrLtQ0B7fBlw==
|
||||||
|
|
||||||
"@tiptap/extension-table-cell@^2.0.3":
|
"@tiptap/extension-strike@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.10.3.tgz#3d090c7b758428abc484e0c229318bce8bd08b5b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.26.1.tgz#d703acfa78455021082ccbac72b41ee9ab3f8c9b"
|
||||||
integrity sha512-EYzBrnq7KUAcRhshIoTmC4ED8YoF4Ei5m8ZMPOctKX+QMAagKdcrw2UxuOf4tP2xgBYx+qDsKCautepZXQiL2g==
|
integrity sha512-CkoRH+pAi6MgdCh7K0cVZl4N2uR4pZdabXAnFSoLZRSg6imLvEUmWHfSi1dl3Z7JOvd3a4yZ4NxerQn5MWbJ7g==
|
||||||
|
|
||||||
"@tiptap/extension-table-header@^2.0.3":
|
"@tiptap/extension-table-cell@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.10.3.tgz#76f0f1b3eb1d8c01b0355fa704ad75a74cd2102b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.26.1.tgz#c204e9eef60f77063fc432faba4dd2ef2fe79ba3"
|
||||||
integrity sha512-zJqzivz+VITYIFXNH09leBbkwAPuvp504rCAFL2PMa1uaME6+oiiRqZvXQrOiRkjNpOWEXH4dqvVLwkSMZoWaw==
|
integrity sha512-0P5zY+WGFnULggJkX6+CevmFoBmVv1aUiBBXfcFuLG2mnUsS3QALQTowFtz/0/VbtbjzcOSStaGDHRJxPbk9XQ==
|
||||||
|
|
||||||
"@tiptap/extension-table-row@^2.0.3":
|
"@tiptap/extension-table-header@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.10.3.tgz#66302d52a02b675b7cb674d1a586e3c2c5ff119a"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.26.1.tgz#1d9f2d609777201725ccd5850445d5e277a427fc"
|
||||||
integrity sha512-l6P6BAE4SuIFdPmsRd+zGP2Ks9AhLAua7nfDlHFMWDnfOeaJu7g/t4oG++9xTojDcVDHhcIe8TJYUXfhOt2anw==
|
integrity sha512-SAwTW9H+sjVYjoeU5z8pVDMHn3r3FCi+zp2KAxsEsmujcd7qrQdY0cAjQtWjckCq6H3sQkbICa+xlCCd7C8ZAQ==
|
||||||
|
|
||||||
"@tiptap/extension-table@^2.0.3":
|
"@tiptap/extension-table-row@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.10.3.tgz#6aaecabd7f2b58baef5082e17f1907cf45998bb7"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.26.1.tgz#40c85b430b18b89363cb59459f1992ecdac93fcd"
|
||||||
integrity sha512-XAvq0ptpHfuN7lQhTeew4Sqo8aKYHTqroa7cHL8I+gWJqYqKJSTGb4FAqdGIFEzHvnSsMCFbTL//kAHXvTdsHg==
|
integrity sha512-c4oLrUfj1EVVDpbfKX36v7nnaeI4NxML2KRTQXocvcY65VCe0bPQh8ujpPgPcnKEzdWYdIuAX9RbEAkiYWe8Ww==
|
||||||
|
|
||||||
"@tiptap/extension-text-align@^2.0.3":
|
"@tiptap/extension-table@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.10.3.tgz#f1144210e96219bd0d8c49c78f76c3a3ab543e9b"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.26.1.tgz#26d45cd3f68def655c51c8ccbc6a3af507bdf49c"
|
||||||
integrity sha512-g75sNl73gtgjP3XIcl06kvv1qw3c0rGEUD848rUU1bvlBpU3IxjkcQLgYvHmv3vpuUp9cKUkA2wa7Sv6R3fjvw==
|
integrity sha512-LQ63CK53qx2ZsbLTB4mUX0YCoGC0GbYQ82jS3kD+K7M/mb9MCkefvDk6rA8rXF8TjfGnv6o/Fseoot8uhH3qfg==
|
||||||
|
|
||||||
"@tiptap/extension-text-style@^2.0.3", "@tiptap/extension-text-style@^2.10.3":
|
"@tiptap/extension-task-item@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text-style/-/extension-text-style-2.10.3.tgz#fcc93de8d0479b893c2a000ad7e3dc20b944f3dd"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.26.1.tgz#060535e2c0f910fca1eb7bb0aa764ca2bd4d6584"
|
||||||
integrity sha512-TalYIdlF7vBA4afFhmido7AORdBbu3sV+HCByda0FiNbM6cjng3Nr9oxHOCVJy+ChqrcgF4m54zDfLmamdyu5Q==
|
integrity sha512-b7JNeOsBqEd1p2oQ5N6Msz9fr2o73WR1WsYDC0WhECg07Goud2gQEkwWkQaLsvfcwuS746eMJK/nrT2pVEngYA==
|
||||||
|
|
||||||
"@tiptap/extension-text@^2.10.3":
|
"@tiptap/extension-task-list@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.10.3.tgz#f985ebd37a2c86d621068927bceca0f05e842865"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.26.1.tgz#5cb01a50368a2d38aa7b1ecc90b75b74b6fd3be4"
|
||||||
integrity sha512-7p9XiRprsRZm8y9jvF/sS929FCELJ5N9FQnbzikOiyGNUx5mdI+exVZlfvBr9xOD5s7fBLg6jj9Vs0fXPNRkPg==
|
integrity sha512-xR4LMpMPZ6bpkZNmFvIojmNGtdGKNlKFbpvyIOgs4qhlWskbFQQVevglHjV1R8xJLic5c+byJQaAmQdQudqGng==
|
||||||
|
|
||||||
"@tiptap/extension-typography@^2.0.3":
|
"@tiptap/extension-text-align@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-typography/-/extension-typography-2.10.3.tgz#7f896a4fa16a14c6a1bd54b555f7e74235939254"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.26.1.tgz#79add5084d2b9ff1c347686834f924613d6c98cb"
|
||||||
integrity sha512-lLUm6PSufACffAFQaK3bwoM3nFlQ/RdG21a3rKOoLWh+abYvIZ8UilYgebH9r2+DBET6UrG7I/0mBtm+L/Lheg==
|
integrity sha512-x6mpNGELy2QtSPBoQqNgiXO9PjZoB+O2EAfXA9YRiBDSIRNOrw+7vOVpi+IgzswFmhMNgIYUVfQRud4FHUCNew==
|
||||||
|
|
||||||
"@tiptap/pm@^2.0.3", "@tiptap/pm@^2.10.3":
|
"@tiptap/extension-text-style@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.10.3.tgz#c6925bafd23868800bc71e06cdfe12add7bf4943"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-text-style/-/extension-text-style-2.26.1.tgz#a6be329ff881df9da37d9a8c353b2b2e7b8508b3"
|
||||||
integrity sha512-771p53aU0KFvujvKpngvq2uAxThlEsjYaXcVVmwrhf0vxSSg+psKQEvqvWvHv/3BwkPVCGwmEKNVJZjaXFKu4g==
|
integrity sha512-t9Nc/UkrbCfnSHEUi1gvUQ2ZPzvfdYFT5TExoV2DTiUCkhG6+mecT5bTVFGW3QkPmbToL+nFhGn4ZRMDD0SP3Q==
|
||||||
|
|
||||||
|
"@tiptap/extension-text@^2.26.1":
|
||||||
|
version "2.26.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.26.1.tgz#a51a11aa446d32b136851ce5173c89ad5ff0f57a"
|
||||||
|
integrity sha512-p2n8WVMd/2vckdJlol24acaTDIZAhI7qle5cM75bn01sOEZoFlSw6SwINOULrUCzNJsYb43qrLEibZb4j2LeQw==
|
||||||
|
|
||||||
|
"@tiptap/extension-typography@^2.26.1":
|
||||||
|
version "2.26.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-typography/-/extension-typography-2.26.1.tgz#06ce74c0f3a5cf0a4b5ed3f8e1c00098a6d8dca1"
|
||||||
|
integrity sha512-1zwKWfy7Tjutert1Vn/unN+98E0JFr5C2jx1xuesAEf4X405cQMb/zNMI44ON3xBG+aXZoTRlJuXNoYodeVSAg==
|
||||||
|
|
||||||
|
"@tiptap/pm@^2.26.1":
|
||||||
|
version "2.26.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.26.1.tgz#5e4bd79e60fe698fa12770b2845e5133b3333d06"
|
||||||
|
integrity sha512-8aF+mY/vSHbGFqyG663ds84b+vca5Lge3tHdTMTKazxCnhXR9dn2oQJMnZ78YZvdRbkPkMJJHti9h3K7u2UQvw==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-changeset "^2.2.1"
|
prosemirror-changeset "^2.3.0"
|
||||||
prosemirror-collab "^1.3.1"
|
prosemirror-collab "^1.3.1"
|
||||||
prosemirror-commands "^1.6.2"
|
prosemirror-commands "^1.6.2"
|
||||||
prosemirror-dropcursor "^1.8.1"
|
prosemirror-dropcursor "^1.8.1"
|
||||||
@ -1481,50 +1484,50 @@
|
|||||||
prosemirror-schema-basic "^1.2.3"
|
prosemirror-schema-basic "^1.2.3"
|
||||||
prosemirror-schema-list "^1.4.1"
|
prosemirror-schema-list "^1.4.1"
|
||||||
prosemirror-state "^1.4.3"
|
prosemirror-state "^1.4.3"
|
||||||
prosemirror-tables "^1.6.1"
|
prosemirror-tables "^1.6.4"
|
||||||
prosemirror-trailing-node "^3.0.0"
|
prosemirror-trailing-node "^3.0.0"
|
||||||
prosemirror-transform "^1.10.2"
|
prosemirror-transform "^1.10.2"
|
||||||
prosemirror-view "^1.37.0"
|
prosemirror-view "^1.37.0"
|
||||||
|
|
||||||
"@tiptap/starter-kit@^2.0.3":
|
"@tiptap/starter-kit@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.10.3.tgz#2b6c3be565219eacd897f1c2d271b516d9ff6f87"
|
resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.26.1.tgz#00a19c05491a51423aabe511f624567942bd2baa"
|
||||||
integrity sha512-oq8xdVIMqohSs91ofHSr7i5dCp2F56Lb9aYIAI25lZmwNwQJL2geGOYjMSfL0IC4cQHPylIuSKYCg7vRFdZmAA==
|
integrity sha512-oziMGCds8SVQ3s5dRpBxVdEKZAmO/O//BjZ69mhA3q4vJdR0rnfLb5fTxSeQvHiqB878HBNn76kNaJrHrV35GA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tiptap/core" "^2.10.3"
|
"@tiptap/core" "^2.26.1"
|
||||||
"@tiptap/extension-blockquote" "^2.10.3"
|
"@tiptap/extension-blockquote" "^2.26.1"
|
||||||
"@tiptap/extension-bold" "^2.10.3"
|
"@tiptap/extension-bold" "^2.26.1"
|
||||||
"@tiptap/extension-bullet-list" "^2.10.3"
|
"@tiptap/extension-bullet-list" "^2.26.1"
|
||||||
"@tiptap/extension-code" "^2.10.3"
|
"@tiptap/extension-code" "^2.26.1"
|
||||||
"@tiptap/extension-code-block" "^2.10.3"
|
"@tiptap/extension-code-block" "^2.26.1"
|
||||||
"@tiptap/extension-document" "^2.10.3"
|
"@tiptap/extension-document" "^2.26.1"
|
||||||
"@tiptap/extension-dropcursor" "^2.10.3"
|
"@tiptap/extension-dropcursor" "^2.26.1"
|
||||||
"@tiptap/extension-gapcursor" "^2.10.3"
|
"@tiptap/extension-gapcursor" "^2.26.1"
|
||||||
"@tiptap/extension-hard-break" "^2.10.3"
|
"@tiptap/extension-hard-break" "^2.26.1"
|
||||||
"@tiptap/extension-heading" "^2.10.3"
|
"@tiptap/extension-heading" "^2.26.1"
|
||||||
"@tiptap/extension-history" "^2.10.3"
|
"@tiptap/extension-history" "^2.26.1"
|
||||||
"@tiptap/extension-horizontal-rule" "^2.10.3"
|
"@tiptap/extension-horizontal-rule" "^2.26.1"
|
||||||
"@tiptap/extension-italic" "^2.10.3"
|
"@tiptap/extension-italic" "^2.26.1"
|
||||||
"@tiptap/extension-list-item" "^2.10.3"
|
"@tiptap/extension-list-item" "^2.26.1"
|
||||||
"@tiptap/extension-ordered-list" "^2.10.3"
|
"@tiptap/extension-ordered-list" "^2.26.1"
|
||||||
"@tiptap/extension-paragraph" "^2.10.3"
|
"@tiptap/extension-paragraph" "^2.26.1"
|
||||||
"@tiptap/extension-strike" "^2.10.3"
|
"@tiptap/extension-strike" "^2.26.1"
|
||||||
"@tiptap/extension-text" "^2.10.3"
|
"@tiptap/extension-text" "^2.26.1"
|
||||||
"@tiptap/extension-text-style" "^2.10.3"
|
"@tiptap/extension-text-style" "^2.26.1"
|
||||||
"@tiptap/pm" "^2.10.3"
|
"@tiptap/pm" "^2.26.1"
|
||||||
|
|
||||||
"@tiptap/suggestion@^2.0.3":
|
"@tiptap/suggestion@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.10.3.tgz#b8ad4516a6d074bda6e1aeeed0d8eb5df3262773"
|
resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.26.1.tgz#64b567443668ff9afb5533737f877e3604ab53ae"
|
||||||
integrity sha512-ReEwiPQoDTXn3RuWnj9D7Aod9dbNQz0QAoLRftWUTdbj3O2ohbvTNX6tlcfS+7x48Q+fAALiJGpp5BtctODlsA==
|
integrity sha512-iNWJdQN7h01keNoVwyCsdI7ZX11YkrexZjCnutWK17Dd72s3NYVTmQXu7saftwddT4nDdlczNxAFosrt0zMhcg==
|
||||||
|
|
||||||
"@tiptap/vue-3@^2.0.3":
|
"@tiptap/vue-3@^2.26.1":
|
||||||
version "2.10.3"
|
version "2.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.10.3.tgz#1b9bff45e815e42ef93bf805fd37c2d1581eeb73"
|
resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.26.1.tgz#6afb7aa4abfdad7432ead271c3448d23f233296e"
|
||||||
integrity sha512-eJLUpuKq3Yei3+XHba25eFvjAH6q275r+Dkz/ulStOWGwchlN8OSbcn0kBWfhr14RG8yoNvL4rZncxXvqXzvhQ==
|
integrity sha512-GC0UP+v3KEb0nhgjIHYmWIn5ziTaRqSy8TESXOjG5aljJ8BdP+A0pbcpumB3u0QU+BLUANZqUV2r3l+V18AKYg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tiptap/extension-bubble-menu" "^2.10.3"
|
"@tiptap/extension-bubble-menu" "^2.26.1"
|
||||||
"@tiptap/extension-floating-menu" "^2.10.3"
|
"@tiptap/extension-floating-menu" "^2.26.1"
|
||||||
|
|
||||||
"@twilio/voice-errors@1.7.0":
|
"@twilio/voice-errors@1.7.0":
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
@ -1548,6 +1551,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
||||||
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
|
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
|
||||||
|
|
||||||
|
"@types/estree@^1.0.0":
|
||||||
|
version "1.0.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
|
||||||
|
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
|
||||||
|
|
||||||
"@types/hast@^3.0.0":
|
"@types/hast@^3.0.0":
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa"
|
resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa"
|
||||||
@ -1815,6 +1823,11 @@ acorn@^8.14.0:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
|
||||||
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
|
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
|
||||||
|
|
||||||
|
acorn@^8.14.1, acorn@^8.15.0:
|
||||||
|
version "8.15.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
|
||||||
|
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
|
||||||
|
|
||||||
acorn@^8.8.2:
|
acorn@^8.8.2:
|
||||||
version "8.14.0"
|
version "8.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
||||||
@ -2158,6 +2171,11 @@ confbox@^0.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b"
|
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b"
|
||||||
integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==
|
integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==
|
||||||
|
|
||||||
|
confbox@^0.2.2:
|
||||||
|
version "0.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110"
|
||||||
|
integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==
|
||||||
|
|
||||||
convert-source-map@^2.0.0:
|
convert-source-map@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
|
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
|
||||||
@ -2511,6 +2529,11 @@ escape-string-regexp@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
||||||
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
||||||
|
|
||||||
|
escape-string-regexp@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
||||||
|
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||||
|
|
||||||
estree-walker@^1.0.1:
|
estree-walker@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
|
||||||
@ -2521,6 +2544,13 @@ estree-walker@^2.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||||
|
|
||||||
|
estree-walker@^3.0.3:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
|
||||||
|
integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
|
||||||
|
dependencies:
|
||||||
|
"@types/estree" "^1.0.0"
|
||||||
|
|
||||||
esutils@^2.0.2:
|
esutils@^2.0.2:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
||||||
@ -2536,6 +2566,11 @@ exsolve@^1.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39"
|
resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39"
|
||||||
integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==
|
integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==
|
||||||
|
|
||||||
|
exsolve@^1.0.7:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.7.tgz#3b74e4c7ca5c5f9a19c3626ca857309fa99f9e9e"
|
||||||
|
integrity sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==
|
||||||
|
|
||||||
fast-deep-equal@^3.1.3:
|
fast-deep-equal@^3.1.3:
|
||||||
version "3.1.3"
|
version "3.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||||
@ -2616,37 +2651,39 @@ fraction.js@^4.3.7:
|
|||||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
|
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
|
||||||
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
|
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
|
||||||
|
|
||||||
frappe-ui@^0.1.171:
|
frappe-ui@^0.1.189:
|
||||||
version "0.1.171"
|
version "0.1.189"
|
||||||
resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.171.tgz#10c582ea62292461ff37bb0b3ac2269409a373e9"
|
resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.189.tgz#64e34475aa9cb33e43145b32a9c5e19d31607a17"
|
||||||
integrity sha512-hIwban7j7qa+n/F6bZ+B78jYyGGj1gnibR/k0Kdx1SYPCfMdYr2TfZA8ySpbIvqWpeYxCus6nS4MD+wf0DpUOw==
|
integrity sha512-VaZPJ5vlbaoOozy/aetD7Qa/max/LHZdlfxaWKxya4p8ZzOwMKPe+2YfPhtiyuMtWBejM7jctcNId6hyDmmKCw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@floating-ui/vue" "^1.1.6"
|
"@floating-ui/vue" "^1.1.6"
|
||||||
"@headlessui/vue" "^1.7.14"
|
"@headlessui/vue" "^1.7.14"
|
||||||
"@popperjs/core" "^2.11.2"
|
"@popperjs/core" "^2.11.2"
|
||||||
"@tailwindcss/forms" "^0.5.3"
|
"@tailwindcss/forms" "^0.5.3"
|
||||||
"@tailwindcss/typography" "^0.5.16"
|
"@tailwindcss/typography" "^0.5.16"
|
||||||
"@tiptap/core" "^2.11.7"
|
"@tiptap/core" "^2.26.1"
|
||||||
"@tiptap/extension-code-block" "^2.11.9"
|
"@tiptap/extension-code-block" "^2.26.1"
|
||||||
"@tiptap/extension-code-block-lowlight" "^2.11.5"
|
"@tiptap/extension-code-block-lowlight" "^2.26.1"
|
||||||
"@tiptap/extension-color" "^2.0.3"
|
"@tiptap/extension-color" "^2.26.1"
|
||||||
"@tiptap/extension-heading" "^2.12.0"
|
"@tiptap/extension-heading" "^2.26.1"
|
||||||
"@tiptap/extension-highlight" "^2.0.3"
|
"@tiptap/extension-highlight" "^2.26.1"
|
||||||
"@tiptap/extension-image" "^2.0.3"
|
"@tiptap/extension-image" "^2.26.1"
|
||||||
"@tiptap/extension-link" "^2.0.3"
|
"@tiptap/extension-link" "^2.26.1"
|
||||||
"@tiptap/extension-mention" "^2.0.3"
|
"@tiptap/extension-mention" "^2.26.1"
|
||||||
"@tiptap/extension-placeholder" "^2.0.3"
|
"@tiptap/extension-placeholder" "^2.26.1"
|
||||||
"@tiptap/extension-table" "^2.0.3"
|
"@tiptap/extension-table" "^2.26.1"
|
||||||
"@tiptap/extension-table-cell" "^2.0.3"
|
"@tiptap/extension-table-cell" "^2.26.1"
|
||||||
"@tiptap/extension-table-header" "^2.0.3"
|
"@tiptap/extension-table-header" "^2.26.1"
|
||||||
"@tiptap/extension-table-row" "^2.0.3"
|
"@tiptap/extension-table-row" "^2.26.1"
|
||||||
"@tiptap/extension-text-align" "^2.0.3"
|
"@tiptap/extension-task-item" "^2.26.1"
|
||||||
"@tiptap/extension-text-style" "^2.0.3"
|
"@tiptap/extension-task-list" "^2.26.1"
|
||||||
"@tiptap/extension-typography" "^2.0.3"
|
"@tiptap/extension-text-align" "^2.26.1"
|
||||||
"@tiptap/pm" "^2.0.3"
|
"@tiptap/extension-text-style" "^2.26.1"
|
||||||
"@tiptap/starter-kit" "^2.0.3"
|
"@tiptap/extension-typography" "^2.26.1"
|
||||||
"@tiptap/suggestion" "^2.0.3"
|
"@tiptap/pm" "^2.26.1"
|
||||||
"@tiptap/vue-3" "^2.0.3"
|
"@tiptap/starter-kit" "^2.26.1"
|
||||||
|
"@tiptap/suggestion" "^2.26.1"
|
||||||
|
"@tiptap/vue-3" "^2.26.1"
|
||||||
"@vueuse/core" "^10.4.1"
|
"@vueuse/core" "^10.4.1"
|
||||||
dayjs "^1.11.13"
|
dayjs "^1.11.13"
|
||||||
dompurify "^3.2.6"
|
dompurify "^3.2.6"
|
||||||
@ -2656,18 +2693,16 @@ frappe-ui@^0.1.171:
|
|||||||
highlight.js "^11.11.1"
|
highlight.js "^11.11.1"
|
||||||
idb-keyval "^6.2.0"
|
idb-keyval "^6.2.0"
|
||||||
lowlight "^3.3.0"
|
lowlight "^3.3.0"
|
||||||
lucide-static "^0.479.0"
|
lucide-static "^0.535.0"
|
||||||
marked "^15.0.12"
|
marked "^15.0.12"
|
||||||
ora "5.4.1"
|
ora "5.4.1"
|
||||||
prettier "^3.3.2"
|
prettier "^3.3.2"
|
||||||
prosemirror-model "^1.25.1"
|
|
||||||
prosemirror-state "^1.4.3"
|
|
||||||
prosemirror-view "^1.39.2"
|
|
||||||
radix-vue "^1.5.3"
|
radix-vue "^1.5.3"
|
||||||
reka-ui "^2.0.2"
|
reka-ui "^2.0.2"
|
||||||
socket.io-client "^4.5.1"
|
socket.io-client "^4.5.1"
|
||||||
tippy.js "^6.3.7"
|
tippy.js "^6.3.7"
|
||||||
typescript "^5.0.2"
|
typescript "^5.0.2"
|
||||||
|
unplugin-auto-import "^19.3.0"
|
||||||
unplugin-icons "^22.1.0"
|
unplugin-icons "^22.1.0"
|
||||||
unplugin-vue-components "^28.4.1"
|
unplugin-vue-components "^28.4.1"
|
||||||
|
|
||||||
@ -3194,6 +3229,11 @@ js-tokens@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||||
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
||||||
|
|
||||||
|
js-tokens@^9.0.1:
|
||||||
|
version "9.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4"
|
||||||
|
integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==
|
||||||
|
|
||||||
jsesc@^3.0.2:
|
jsesc@^3.0.2:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
|
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
|
||||||
@ -3260,12 +3300,12 @@ linkify-it@^5.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
uc.micro "^2.0.0"
|
uc.micro "^2.0.0"
|
||||||
|
|
||||||
linkifyjs@^4.1.0:
|
linkifyjs@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.2.0.tgz#9dd30222b9cbabec9c950e725ec00031c7fa3f08"
|
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.3.2.tgz#d97eb45419aabf97ceb4b05a7adeb7b8c8ade2b1"
|
||||||
integrity sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==
|
integrity sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==
|
||||||
|
|
||||||
local-pkg@^1.0.0:
|
local-pkg@^1.0.0, local-pkg@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd"
|
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd"
|
||||||
integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
|
integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
|
||||||
@ -3338,10 +3378,10 @@ lru-cache@^5.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist "^3.0.2"
|
yallist "^3.0.2"
|
||||||
|
|
||||||
lucide-static@^0.479.0:
|
lucide-static@^0.535.0:
|
||||||
version "0.479.0"
|
version "0.535.0"
|
||||||
resolved "https://registry.yarnpkg.com/lucide-static/-/lucide-static-0.479.0.tgz#820318a03ab207a6242520aaf2156ff3384fd3e2"
|
resolved "https://registry.yarnpkg.com/lucide-static/-/lucide-static-0.535.0.tgz#3d8ad25360d166a4f584d97f2c08fd9b24be30d7"
|
||||||
integrity sha512-E+w3/8lKFpey3lZNKZfzHQGX+t/CH/afpPDdQxjBgStZ2bXY+CxI5KFX9TW818gYndLjV43fZJ7FqAO9kTCK4A==
|
integrity sha512-wlYTSPpeyMjLjQ5jgSAENQwVfURVf2XHV5TDp8YPCJBEyWz+FJGuGB5LYBgOFvWIDOMW+AIoiA8sNd8My/nxlw==
|
||||||
|
|
||||||
magic-string@^0.25.0, magic-string@^0.25.7:
|
magic-string@^0.25.0, magic-string@^0.25.7:
|
||||||
version "0.25.9"
|
version "0.25.9"
|
||||||
@ -3627,6 +3667,11 @@ picomatch@^4.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
|
||||||
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
|
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
|
||||||
|
|
||||||
|
picomatch@^4.0.3:
|
||||||
|
version "4.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
|
||||||
|
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
|
||||||
|
|
||||||
pify@^2.3.0:
|
pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
@ -3663,6 +3708,15 @@ pkg-types@^2.0.1:
|
|||||||
exsolve "^1.0.1"
|
exsolve "^1.0.1"
|
||||||
pathe "^2.0.3"
|
pathe "^2.0.3"
|
||||||
|
|
||||||
|
pkg-types@^2.1.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.2.0.tgz#049bf404f82a66c465200149457acf0c5fb0fb2d"
|
||||||
|
integrity sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==
|
||||||
|
dependencies:
|
||||||
|
confbox "^0.2.2"
|
||||||
|
exsolve "^1.0.7"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
|
||||||
possible-typed-array-names@^1.0.0:
|
possible-typed-array-names@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
|
resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
|
||||||
@ -3744,10 +3798,10 @@ pretty-bytes@^6.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b"
|
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b"
|
||||||
integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==
|
integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==
|
||||||
|
|
||||||
prosemirror-changeset@^2.2.1:
|
prosemirror-changeset@^2.3.0:
|
||||||
version "2.2.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383"
|
resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz#eee3299cfabc7a027694e9abdc4e85505e9dd5e7"
|
||||||
integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==
|
integrity sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-transform "^1.0.0"
|
prosemirror-transform "^1.0.0"
|
||||||
|
|
||||||
@ -3804,7 +3858,7 @@ prosemirror-inputrules@^1.4.0:
|
|||||||
prosemirror-state "^1.0.0"
|
prosemirror-state "^1.0.0"
|
||||||
prosemirror-transform "^1.0.0"
|
prosemirror-transform "^1.0.0"
|
||||||
|
|
||||||
prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2:
|
prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e"
|
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e"
|
||||||
integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==
|
integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==
|
||||||
@ -3831,17 +3885,17 @@ prosemirror-menu@^1.2.4:
|
|||||||
prosemirror-history "^1.0.0"
|
prosemirror-history "^1.0.0"
|
||||||
prosemirror-state "^1.0.0"
|
prosemirror-state "^1.0.0"
|
||||||
|
|
||||||
prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.23.0, prosemirror-model@^1.8.1:
|
prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.23.0:
|
||||||
version "1.24.1"
|
version "1.24.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.24.1.tgz#b445e4f9b9cfc8c1a699215057b506842ebff1a9"
|
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.24.1.tgz#b445e4f9b9cfc8c1a699215057b506842ebff1a9"
|
||||||
integrity sha512-YM053N+vTThzlWJ/AtPtF1j0ebO36nvbmDy4U7qA2XQB8JVaQp1FmB9Jhrps8s+z+uxhhVTny4m20ptUvhk0Mg==
|
integrity sha512-YM053N+vTThzlWJ/AtPtF1j0ebO36nvbmDy4U7qA2XQB8JVaQp1FmB9Jhrps8s+z+uxhhVTny4m20ptUvhk0Mg==
|
||||||
dependencies:
|
dependencies:
|
||||||
orderedmap "^2.0.0"
|
orderedmap "^2.0.0"
|
||||||
|
|
||||||
prosemirror-model@^1.25.1:
|
prosemirror-model@^1.25.0:
|
||||||
version "1.25.1"
|
version "1.25.3"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.25.1.tgz#aeae9f1ec79fcaa76f6fc619800d91fbcf726870"
|
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.25.3.tgz#c657c60a361cb1e9c9f683d19118c0af50a6f7a9"
|
||||||
integrity sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==
|
integrity sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==
|
||||||
dependencies:
|
dependencies:
|
||||||
orderedmap "^2.0.0"
|
orderedmap "^2.0.0"
|
||||||
|
|
||||||
@ -3861,7 +3915,7 @@ prosemirror-schema-list@^1.4.1:
|
|||||||
prosemirror-state "^1.0.0"
|
prosemirror-state "^1.0.0"
|
||||||
prosemirror-transform "^1.7.3"
|
prosemirror-transform "^1.7.3"
|
||||||
|
|
||||||
prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.3:
|
prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.4.3:
|
||||||
version "1.4.3"
|
version "1.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080"
|
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080"
|
||||||
integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==
|
integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==
|
||||||
@ -3870,16 +3924,16 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, pr
|
|||||||
prosemirror-transform "^1.0.0"
|
prosemirror-transform "^1.0.0"
|
||||||
prosemirror-view "^1.27.0"
|
prosemirror-view "^1.27.0"
|
||||||
|
|
||||||
prosemirror-tables@^1.6.1:
|
prosemirror-tables@^1.6.4:
|
||||||
version "1.6.1"
|
version "1.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.6.1.tgz#8df27facbf7632a574afb32a665aaadf7f2ed69a"
|
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz#df2507f285c6c7563097b4904cb7c4b9e0cd724b"
|
||||||
integrity sha512-p8WRJNA96jaNQjhJolmbxTzd6M4huRE5xQ8OxjvMhQUP0Nzpo4zz6TztEiwk6aoqGBhz9lxRWR1yRZLlpQN98w==
|
integrity sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-keymap "^1.1.2"
|
prosemirror-keymap "^1.2.2"
|
||||||
prosemirror-model "^1.8.1"
|
prosemirror-model "^1.25.0"
|
||||||
prosemirror-state "^1.3.1"
|
prosemirror-state "^1.4.3"
|
||||||
prosemirror-transform "^1.2.1"
|
prosemirror-transform "^1.10.3"
|
||||||
prosemirror-view "^1.13.3"
|
prosemirror-view "^1.39.1"
|
||||||
|
|
||||||
prosemirror-trailing-node@^3.0.0:
|
prosemirror-trailing-node@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
@ -3889,14 +3943,21 @@ prosemirror-trailing-node@^3.0.0:
|
|||||||
"@remirror/core-constants" "3.0.0"
|
"@remirror/core-constants" "3.0.0"
|
||||||
escape-string-regexp "^4.0.0"
|
escape-string-regexp "^4.0.0"
|
||||||
|
|
||||||
prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.10.2, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3:
|
prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.10.2, prosemirror-transform@^1.7.3:
|
||||||
version "1.10.2"
|
version "1.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.10.2.tgz#8ebac4e305b586cd96595aa028118c9191bbf052"
|
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.10.2.tgz#8ebac4e305b586cd96595aa028118c9191bbf052"
|
||||||
integrity sha512-2iUq0wv2iRoJO/zj5mv8uDUriOHWzXRnOTVgCzSXnktS/2iQRa3UUQwVlkBlYZFtygw6Nh1+X4mGqoYBINn5KQ==
|
integrity sha512-2iUq0wv2iRoJO/zj5mv8uDUriOHWzXRnOTVgCzSXnktS/2iQRa3UUQwVlkBlYZFtygw6Nh1+X4mGqoYBINn5KQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^1.21.0"
|
prosemirror-model "^1.21.0"
|
||||||
|
|
||||||
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.37.0:
|
prosemirror-transform@^1.10.3:
|
||||||
|
version "1.10.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz#56419eac14f9f56612c806ae46f9238648f3f02e"
|
||||||
|
integrity sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==
|
||||||
|
dependencies:
|
||||||
|
prosemirror-model "^1.21.0"
|
||||||
|
|
||||||
|
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.37.0:
|
||||||
version "1.37.1"
|
version "1.37.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.37.1.tgz#3ccd67cd3d831eb37a2505dd34151932462172fb"
|
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.37.1.tgz#3ccd67cd3d831eb37a2505dd34151932462172fb"
|
||||||
integrity sha512-MEAnjOdXU1InxEmhjgmEzQAikaS6lF3hD64MveTPpjOGNTl87iRLA1HupC/DEV6YuK7m4Q9DHFNTjwIVtqz5NA==
|
integrity sha512-MEAnjOdXU1InxEmhjgmEzQAikaS6lF3hD64MveTPpjOGNTl87iRLA1HupC/DEV6YuK7m4Q9DHFNTjwIVtqz5NA==
|
||||||
@ -3905,10 +3966,10 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, pros
|
|||||||
prosemirror-state "^1.0.0"
|
prosemirror-state "^1.0.0"
|
||||||
prosemirror-transform "^1.1.0"
|
prosemirror-transform "^1.1.0"
|
||||||
|
|
||||||
prosemirror-view@^1.39.2:
|
prosemirror-view@^1.39.1:
|
||||||
version "1.39.3"
|
version "1.40.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.39.3.tgz#54fa4b8ab4fd75ad0075dc6dc0be1745429d5a5c"
|
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.40.1.tgz#4a12711b45a707b240a1789d45b99df6f13e7c16"
|
||||||
integrity sha512-bY/7kg0LzRE7ytR0zRdSMWX3sknEjw68l836ffLPMh0OG3OYnNuBDUSF3v0vjvnzgYjgY9ZH/RypbARURlcMFA==
|
integrity sha512-pbwUjt3G7TlsQQHDiYSupWBhJswpLVB09xXm1YiJPdkjkh9Pe7Y51XdLh5VWIZmROLY8UpUpG03lkdhm9lzIBA==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^1.20.0"
|
prosemirror-model "^1.20.0"
|
||||||
prosemirror-state "^1.0.0"
|
prosemirror-state "^1.0.0"
|
||||||
@ -4164,6 +4225,11 @@ safe-regex-test@^1.1.0:
|
|||||||
es-errors "^1.3.0"
|
es-errors "^1.3.0"
|
||||||
is-regex "^1.2.1"
|
is-regex "^1.2.1"
|
||||||
|
|
||||||
|
scule@^1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3"
|
||||||
|
integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==
|
||||||
|
|
||||||
sdp@^2.6.0:
|
sdp@^2.6.0:
|
||||||
version "2.12.0"
|
version "2.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22"
|
resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22"
|
||||||
@ -4442,6 +4508,13 @@ strip-comments@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
|
resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
|
||||||
integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
|
integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
|
||||||
|
|
||||||
|
strip-literal@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.0.0.tgz#ce9c452a91a0af2876ed1ae4e583539a353df3fc"
|
||||||
|
integrity sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==
|
||||||
|
dependencies:
|
||||||
|
js-tokens "^9.0.1"
|
||||||
|
|
||||||
sucrase@^3.35.0:
|
sucrase@^3.35.0:
|
||||||
version "3.35.0"
|
version "3.35.0"
|
||||||
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
|
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
|
||||||
@ -4691,6 +4764,26 @@ unicode-property-aliases-ecmascript@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
|
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
|
||||||
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
|
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
|
||||||
|
|
||||||
|
unimport@^4.2.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unimport/-/unimport-4.2.0.tgz#c25211d206d3430e9160cc7d458e9fa9ba828ac0"
|
||||||
|
integrity sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.1"
|
||||||
|
escape-string-regexp "^5.0.0"
|
||||||
|
estree-walker "^3.0.3"
|
||||||
|
local-pkg "^1.1.1"
|
||||||
|
magic-string "^0.30.17"
|
||||||
|
mlly "^1.7.4"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
pkg-types "^2.1.0"
|
||||||
|
scule "^1.3.0"
|
||||||
|
strip-literal "^3.0.0"
|
||||||
|
tinyglobby "^0.2.12"
|
||||||
|
unplugin "^2.2.2"
|
||||||
|
unplugin-utils "^0.2.4"
|
||||||
|
|
||||||
unique-string@^2.0.0:
|
unique-string@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
|
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
|
||||||
@ -4703,6 +4796,18 @@ universalify@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
|
||||||
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
|
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
|
||||||
|
|
||||||
|
unplugin-auto-import@^19.3.0:
|
||||||
|
version "19.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-19.3.0.tgz#4fbfef17c87919889f5ba2167afac50f50a015f4"
|
||||||
|
integrity sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==
|
||||||
|
dependencies:
|
||||||
|
local-pkg "^1.1.1"
|
||||||
|
magic-string "^0.30.17"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
unimport "^4.2.0"
|
||||||
|
unplugin "^2.3.4"
|
||||||
|
unplugin-utils "^0.2.4"
|
||||||
|
|
||||||
unplugin-icons@^22.1.0:
|
unplugin-icons@^22.1.0:
|
||||||
version "22.1.0"
|
version "22.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/unplugin-icons/-/unplugin-icons-22.1.0.tgz#5a6fe3d751e50f1c937e289857b0418e6855d92a"
|
resolved "https://registry.yarnpkg.com/unplugin-icons/-/unplugin-icons-22.1.0.tgz#5a6fe3d751e50f1c937e289857b0418e6855d92a"
|
||||||
@ -4744,6 +4849,16 @@ unplugin@^2.2.0:
|
|||||||
acorn "^8.14.0"
|
acorn "^8.14.0"
|
||||||
webpack-virtual-modules "^0.6.2"
|
webpack-virtual-modules "^0.6.2"
|
||||||
|
|
||||||
|
unplugin@^2.2.2, unplugin@^2.3.4:
|
||||||
|
version "2.3.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-2.3.6.tgz#938da8ac9fa3cf418441e45f110faabcc50926f5"
|
||||||
|
integrity sha512-+/MdXl8bLTXI2lJF22gUBeCFqZruEpL/oM9f8wxCuKh9+Mw9qeul3gTqgbKpMeOFlusCzc0s7x2Kax2xKW+FQg==
|
||||||
|
dependencies:
|
||||||
|
"@jridgewell/remapping" "^2.3.5"
|
||||||
|
acorn "^8.15.0"
|
||||||
|
picomatch "^4.0.3"
|
||||||
|
webpack-virtual-modules "^0.6.2"
|
||||||
|
|
||||||
upath@^1.2.0:
|
upath@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
|
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user