@aglyn/plugins-crm 1.0.0-beta.221 → 1.0.0-beta.223
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/package.json +13 -13
- package/src/lib/components/activity-list.js +12 -5
- package/src/lib/components/activity-list.js.map +1 -1
- package/src/lib/components/companies-bulk-bar.d.ts +1 -4
- package/src/lib/components/companies-bulk-bar.js +7 -20
- package/src/lib/components/companies-bulk-bar.js.map +1 -1
- package/src/lib/components/companies-section.d.ts +3 -3
- package/src/lib/components/companies-section.js +149 -46
- package/src/lib/components/companies-section.js.map +1 -1
- package/src/lib/components/company-edit-drawer.js +281 -20
- package/src/lib/components/company-edit-drawer.js.map +1 -1
- package/src/lib/components/company-properties-card.js +99 -8
- package/src/lib/components/company-properties-card.js.map +1 -1
- package/src/lib/components/contact-detail-page.js +3 -1
- package/src/lib/components/contact-detail-page.js.map +1 -1
- package/src/lib/components/contact-merge-dialog.js +33 -10
- package/src/lib/components/contact-merge-dialog.js.map +1 -1
- package/src/lib/components/contact-properties-card.d.ts +0 -69
- package/src/lib/components/contact-properties-card.js +350 -60
- package/src/lib/components/contact-properties-card.js.map +1 -1
- package/src/lib/components/contact-reports-to-field.d.ts +46 -0
- package/src/lib/components/contact-reports-to-field.js +67 -0
- package/src/lib/components/contact-reports-to-field.js.map +1 -0
- package/src/lib/components/contacts-bulk-bar.d.ts +1 -8
- package/src/lib/components/contacts-bulk-bar.js +7 -19
- package/src/lib/components/contacts-bulk-bar.js.map +1 -1
- package/src/lib/components/contacts-section.js +46 -33
- package/src/lib/components/contacts-section.js.map +1 -1
- package/src/lib/components/crm-call-actions.d.ts +10 -0
- package/src/lib/components/crm-call-actions.js +26 -9
- package/src/lib/components/crm-call-actions.js.map +1 -1
- package/src/lib/components/crm-next-activity-column.js +1 -1
- package/src/lib/components/crm-next-activity-column.js.map +1 -1
- package/src/lib/components/crm-record-picker.d.ts +15 -0
- package/src/lib/components/crm-record-picker.js +16 -10
- package/src/lib/components/crm-record-picker.js.map +1 -1
- package/src/lib/components/crm-transfer-buttons.d.ts +54 -0
- package/src/lib/components/crm-transfer-buttons.js +167 -0
- package/src/lib/components/crm-transfer-buttons.js.map +1 -0
- package/src/lib/components/deal-contact-roles-card.d.ts +46 -0
- package/src/lib/components/deal-contact-roles-card.js +368 -0
- package/src/lib/components/deal-contact-roles-card.js.map +1 -0
- package/src/lib/components/deal-detail-page.d.ts +3 -2
- package/src/lib/components/deal-detail-page.js +25 -6
- package/src/lib/components/deal-detail-page.js.map +1 -1
- package/src/lib/components/deal-edit-drawer.d.ts +10 -0
- package/src/lib/components/deal-edit-drawer.js +219 -10
- package/src/lib/components/deal-edit-drawer.js.map +1 -1
- package/src/lib/components/deal-properties-card.d.ts +7 -0
- package/src/lib/components/deal-properties-card.js +34 -3
- package/src/lib/components/deal-properties-card.js.map +1 -1
- package/src/lib/components/deal-stage-card.d.ts +4 -0
- package/src/lib/components/deal-stage-card.js +10 -2
- package/src/lib/components/deal-stage-card.js.map +1 -1
- package/src/lib/components/deals-bulk-bar.d.ts +0 -3
- package/src/lib/components/deals-bulk-bar.js +7 -20
- package/src/lib/components/deals-bulk-bar.js.map +1 -1
- package/src/lib/components/deals-section.d.ts +3 -3
- package/src/lib/components/deals-section.js +123 -63
- package/src/lib/components/deals-section.js.map +1 -1
- package/src/lib/components/fields-section.js +31 -17
- package/src/lib/components/fields-section.js.map +1 -1
- package/src/lib/components/lead-convert-dialog.d.ts +4 -0
- package/src/lib/components/lead-convert-dialog.js +23 -1
- package/src/lib/components/lead-convert-dialog.js.map +1 -1
- package/src/lib/components/lead-detail-page.js +8 -2
- package/src/lib/components/lead-detail-page.js.map +1 -1
- package/src/lib/components/lead-profile-fields.d.ts +71 -0
- package/src/lib/components/lead-profile-fields.js +386 -0
- package/src/lib/components/lead-profile-fields.js.map +1 -0
- package/src/lib/components/lead-properties-card.d.ts +2 -1
- package/src/lib/components/lead-properties-card.js +85 -176
- package/src/lib/components/lead-properties-card.js.map +1 -1
- package/src/lib/components/lead-source-select.d.ts +4 -23
- package/src/lib/components/lead-source-select.js +9 -73
- package/src/lib/components/lead-source-select.js.map +1 -1
- package/src/lib/components/lead-status-chip.d.ts +9 -3
- package/src/lib/components/lead-status-chip.js +8 -4
- package/src/lib/components/lead-status-chip.js.map +1 -1
- package/src/lib/components/lead-status-options.d.ts +20 -0
- package/src/lib/components/lead-status-options.js +51 -0
- package/src/lib/components/lead-status-options.js.map +1 -0
- package/src/lib/components/lead-unqualify-dialog.d.ts +5 -0
- package/src/lib/components/lead-unqualify-dialog.js +50 -18
- package/src/lib/components/lead-unqualify-dialog.js.map +1 -1
- package/src/lib/components/leads-bulk-bar.d.ts +0 -3
- package/src/lib/components/leads-bulk-bar.js +29 -29
- package/src/lib/components/leads-bulk-bar.js.map +1 -1
- package/src/lib/components/leads-section.js +120 -68
- package/src/lib/components/leads-section.js.map +1 -1
- package/src/lib/components/linked-deals-card.d.ts +4 -0
- package/src/lib/components/linked-deals-card.js +47 -3
- package/src/lib/components/linked-deals-card.js.map +1 -1
- package/src/lib/components/log-activity-dialog.js +43 -3
- package/src/lib/components/log-activity-dialog.js.map +1 -1
- package/src/lib/components/new-contact-drawer.d.ts +8 -0
- package/src/lib/components/new-contact-drawer.js +108 -6
- package/src/lib/components/new-contact-drawer.js.map +1 -1
- package/src/lib/components/new-lead-drawer.d.ts +9 -2
- package/src/lib/components/new-lead-drawer.js +88 -121
- package/src/lib/components/new-lead-drawer.js.map +1 -1
- package/src/lib/components/picklist-select.d.ts +36 -0
- package/src/lib/components/picklist-select.js +114 -0
- package/src/lib/components/picklist-select.js.map +1 -0
- package/src/lib/components/picklist-values-card.d.ts +34 -0
- package/src/lib/components/{lead-source-values-card.js → picklist-values-card.js} +241 -58
- package/src/lib/components/picklist-values-card.js.map +1 -0
- package/src/lib/components/pipeline-stages-dialog.d.ts +7 -0
- package/src/lib/components/pipeline-stages-dialog.js +26 -4
- package/src/lib/components/pipeline-stages-dialog.js.map +1 -1
- package/src/lib/components/pipelines-dialog.js +15 -6
- package/src/lib/components/pipelines-dialog.js.map +1 -1
- package/src/lib/components/recent-activity-feed.js +20 -5
- package/src/lib/components/recent-activity-feed.js.map +1 -1
- package/src/lib/components/recipes-card.js +4 -2
- package/src/lib/components/recipes-card.js.map +1 -1
- package/src/lib/components/record-tasks-card.js +15 -8
- package/src/lib/components/record-tasks-card.js.map +1 -1
- package/src/lib/components/reports/forecast-card.d.ts +6 -0
- package/src/lib/components/reports/forecast-card.js +101 -3
- package/src/lib/components/reports/forecast-card.js.map +1 -1
- package/src/lib/components/reports/lead-funnel-card.d.ts +12 -0
- package/src/lib/components/reports/lead-funnel-card.js +9 -5
- package/src/lib/components/reports/lead-funnel-card.js.map +1 -1
- package/src/lib/components/reports/lead-source-card.d.ts +23 -0
- package/src/lib/components/reports/lead-source-card.js +318 -0
- package/src/lib/components/reports/lead-source-card.js.map +1 -0
- package/src/lib/components/reports/pipeline-card.js +2 -1
- package/src/lib/components/reports/pipeline-card.js.map +1 -1
- package/src/lib/components/reports/report-export.js +1 -1
- package/src/lib/components/reports/report-export.js.map +1 -1
- package/src/lib/components/reports-section.js +8 -0
- package/src/lib/components/reports-section.js.map +1 -1
- package/src/lib/components/sharing-rule-drawer.d.ts +5 -0
- package/src/lib/components/sharing-rule-drawer.js +108 -19
- package/src/lib/components/sharing-rule-drawer.js.map +1 -1
- package/src/lib/components/sharing-rules-card.js +11 -3
- package/src/lib/components/sharing-rules-card.js.map +1 -1
- package/src/lib/components/task-cells.d.ts +9 -1
- package/src/lib/components/task-cells.js +9 -4
- package/src/lib/components/task-cells.js.map +1 -1
- package/src/lib/components/task-edit-drawer.js +111 -43
- package/src/lib/components/task-edit-drawer.js.map +1 -1
- package/src/lib/components/tasks-bulk-bar.d.ts +0 -3
- package/src/lib/components/tasks-bulk-bar.js +7 -20
- package/src/lib/components/tasks-bulk-bar.js.map +1 -1
- package/src/lib/components/tasks-calendar.d.ts +3 -0
- package/src/lib/components/tasks-calendar.js +8 -1
- package/src/lib/components/tasks-calendar.js.map +1 -1
- package/src/lib/components/tasks-section.d.ts +3 -3
- package/src/lib/components/tasks-section.js +58 -43
- package/src/lib/components/tasks-section.js.map +1 -1
- package/src/lib/constants/api-routes.d.ts +2 -9
- package/src/lib/constants/api-routes.js +1 -7
- package/src/lib/constants/api-routes.js.map +1 -1
- package/src/lib/constants/bundle-common.d.ts +6 -0
- package/src/lib/constants/bundle-common.js +11 -0
- package/src/lib/constants/bundle-common.js.map +1 -1
- package/src/lib/constants/company-filters.d.ts +14 -0
- package/src/lib/constants/company-filters.js +51 -1
- package/src/lib/constants/company-filters.js.map +1 -1
- package/src/lib/constants/contact-filters.d.ts +2 -0
- package/src/lib/constants/contact-filters.js +18 -1
- package/src/lib/constants/contact-filters.js.map +1 -1
- package/src/lib/constants/deal-filters.d.ts +22 -1
- package/src/lib/constants/deal-filters.js +67 -4
- package/src/lib/constants/deal-filters.js.map +1 -1
- package/src/lib/declarations.console-server.d.ts +3 -0
- package/src/lib/declarations.console-server.js +35 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/declarations.d.ts +26 -0
- package/src/lib/declarations.js +35 -0
- package/src/lib/declarations.js.map +1 -0
- package/src/lib/declarations.server.d.ts +11 -0
- package/src/lib/declarations.server.js +97 -1
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/hooks/use-company-picklists.d.ts +15 -0
- package/src/lib/hooks/use-company-picklists.js +55 -0
- package/src/lib/hooks/use-company-picklists.js.map +1 -0
- package/src/lib/hooks/use-crm-picklist.d.ts +25 -0
- package/src/lib/hooks/use-crm-picklist.js +53 -0
- package/src/lib/hooks/use-crm-picklist.js.map +1 -0
- package/src/lib/hooks/use-crm-record-names.d.ts +16 -0
- package/src/lib/hooks/use-crm-record-names.js +45 -19
- package/src/lib/hooks/use-crm-record-names.js.map +1 -1
- package/src/lib/hooks/use-crm-task-picklists.d.ts +11 -0
- package/src/lib/hooks/use-crm-task-picklists.js +45 -0
- package/src/lib/hooks/use-crm-task-picklists.js.map +1 -0
- package/src/lib/hooks/use-deals.d.ts +14 -0
- package/src/lib/hooks/use-deals.js +29 -0
- package/src/lib/hooks/use-deals.js.map +1 -1
- package/src/lib/hooks/use-lead-picklists.d.ts +14 -0
- package/src/lib/hooks/use-lead-picklists.js +46 -0
- package/src/lib/hooks/use-lead-picklists.js.map +1 -0
- package/src/lib/hooks/use-lead-source-picklist.d.ts +5 -19
- package/src/lib/hooks/use-lead-source-picklist.js +12 -22
- package/src/lib/hooks/use-lead-source-picklist.js.map +1 -1
- package/src/lib/hooks/use-lead-status-picklist.d.ts +9 -0
- package/src/lib/hooks/use-lead-status-picklist.js +40 -0
- package/src/lib/hooks/use-lead-status-picklist.js.map +1 -0
- package/src/lib/model/companies.d.ts +32 -3
- package/src/lib/model/companies.js +133 -16
- package/src/lib/model/companies.js.map +1 -1
- package/src/lib/model/contact-merge.d.ts +27 -3
- package/src/lib/model/contact-merge.js +81 -7
- package/src/lib/model/contact-merge.js.map +1 -1
- package/src/lib/model/contact-record.d.ts +17 -0
- package/src/lib/model/contact-record.js +17 -2
- package/src/lib/model/contact-record.js.map +1 -1
- package/src/lib/model/contact-update.d.ts +31 -2
- package/src/lib/model/contact-update.js +14 -0
- package/src/lib/model/contact-update.js.map +1 -1
- package/src/lib/model/crm-list-query.d.ts +5 -0
- package/src/lib/model/crm-list-query.js +8 -0
- package/src/lib/model/crm-list-query.js.map +1 -1
- package/src/lib/model/crm-next-activity.d.ts +107 -0
- package/src/lib/model/crm-next-activity.js +140 -0
- package/src/lib/model/crm-next-activity.js.map +1 -0
- package/src/lib/model/crm-recipes.d.ts +40 -0
- package/src/lib/model/crm-recipes.js +259 -0
- package/src/lib/model/crm-recipes.js.map +1 -0
- package/src/lib/model/crm-record-counts.d.ts +36 -0
- package/src/lib/model/crm-record-counts.js +54 -0
- package/src/lib/model/crm-record-counts.js.map +1 -0
- package/src/lib/model/crm-record-lists.d.ts +23 -0
- package/src/lib/model/crm-record-lists.js +161 -0
- package/src/lib/model/crm-record-lists.js.map +1 -0
- package/src/lib/model/crm-reports.d.ts +73 -3
- package/src/lib/model/crm-reports.js +120 -1
- package/src/lib/model/crm-reports.js.map +1 -1
- package/src/lib/model/crm-sharing.d.ts +21 -3
- package/src/lib/model/crm-sharing.js +27 -6
- package/src/lib/model/crm-sharing.js.map +1 -1
- package/src/lib/model/crm-task-reminders.d.ts +152 -0
- package/src/lib/model/crm-task-reminders.js +161 -0
- package/src/lib/model/crm-task-reminders.js.map +1 -0
- package/src/lib/model/deal-board-model.d.ts +8 -2
- package/src/lib/model/deal-board-model.js +15 -2
- package/src/lib/model/deal-board-model.js.map +1 -1
- package/src/lib/model/deal-contact-roles.d.ts +45 -0
- package/src/lib/model/deal-contact-roles.js +73 -0
- package/src/lib/model/deal-contact-roles.js.map +1 -0
- package/src/lib/model/deal-form-model.d.ts +56 -0
- package/src/lib/model/deal-form-model.js +79 -7
- package/src/lib/model/deal-form-model.js.map +1 -1
- package/src/lib/model/download-text-file.d.ts +23 -0
- package/src/lib/model/download-text-file.js +34 -0
- package/src/lib/model/download-text-file.js.map +1 -0
- package/src/lib/model/lead-filters.d.ts +36 -2
- package/src/lib/model/lead-filters.js +123 -2
- package/src/lib/model/lead-filters.js.map +1 -1
- package/src/lib/model/lead-source-direction.d.ts +38 -0
- package/src/lib/model/lead-source-direction.js +52 -0
- package/src/lib/model/lead-source-direction.js.map +1 -0
- package/src/lib/model/next-activity.d.ts +1 -1
- package/src/lib/model/next-activity.js.map +1 -1
- package/src/lib/model/picklist-values.d.ts +119 -0
- package/src/lib/model/picklist-values.js +256 -0
- package/src/lib/model/picklist-values.js.map +1 -0
- package/src/lib/model/record-facts-disclosed.d.ts +81 -0
- package/src/lib/model/record-facts-disclosed.js +281 -0
- package/src/lib/model/record-facts-disclosed.js.map +1 -0
- package/src/lib/model/record-facts.d.ts +215 -34
- package/src/lib/model/record-facts.js +307 -128
- package/src/lib/model/record-facts.js.map +1 -1
- package/src/lib/model/task-picklists.d.ts +52 -0
- package/src/lib/model/task-picklists.js +83 -0
- package/src/lib/model/task-picklists.js.map +1 -0
- package/src/lib/model/task-routes.d.ts +13 -0
- package/src/lib/model/task-routes.js +23 -4
- package/src/lib/model/task-routes.js.map +1 -1
- package/src/lib/plan-entitlements.js +6 -4
- package/src/lib/plan-entitlements.js.map +1 -1
- package/src/lib/plugin.js +17 -0
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/server/api-v1/contacts.js +220 -14
- package/src/lib/server/api-v1/contacts.js.map +1 -1
- package/src/lib/server/api-v1/crm-activities.js +14 -1
- package/src/lib/server/api-v1/crm-activities.js.map +1 -1
- package/src/lib/server/api-v1/crm-companies.js +123 -14
- package/src/lib/server/api-v1/crm-companies.js.map +1 -1
- package/src/lib/server/api-v1/crm-deals.js +291 -26
- package/src/lib/server/api-v1/crm-deals.js.map +1 -1
- package/src/lib/server/api-v1/crm-leads.js +144 -38
- package/src/lib/server/api-v1/crm-leads.js.map +1 -1
- package/src/lib/server/api-v1/crm-pipelines.d.ts +6 -0
- package/src/lib/server/api-v1/crm-pipelines.js +8 -2
- package/src/lib/server/api-v1/crm-pipelines.js.map +1 -1
- package/src/lib/server/api-v1/crm-tasks.js +78 -34
- package/src/lib/server/api-v1/crm-tasks.js.map +1 -1
- package/src/lib/server/api-v1/openapi.d.ts +0 -11
- package/src/lib/server/api-v1/openapi.js +171 -16
- package/src/lib/server/api-v1/openapi.js.map +1 -1
- package/src/lib/server/assign-contact-owner.d.ts +188 -0
- package/src/lib/server/assign-contact-owner.js +446 -0
- package/src/lib/server/assign-contact-owner.js.map +1 -0
- package/src/lib/server/associate-company-by-domain.d.ts +70 -0
- package/src/lib/server/associate-company-by-domain.js +153 -0
- package/src/lib/server/associate-company-by-domain.js.map +1 -0
- package/src/lib/server/automation-steps.d.ts +140 -0
- package/src/lib/server/automation-steps.js +669 -0
- package/src/lib/server/automation-steps.js.map +1 -0
- package/src/lib/server/capture-contact.d.ts +17 -0
- package/src/lib/server/capture-contact.js +95 -26
- package/src/lib/server/capture-contact.js.map +1 -1
- package/src/lib/server/capture-host-contact.d.ts +104 -0
- package/src/lib/server/capture-host-contact.js +151 -0
- package/src/lib/server/capture-host-contact.js.map +1 -0
- package/src/lib/server/company-children.d.ts +25 -0
- package/src/lib/server/company-children.js +42 -0
- package/src/lib/server/company-children.js.map +1 -0
- package/src/lib/server/company-delete.d.ts +18 -0
- package/src/lib/server/company-delete.js +44 -21
- package/src/lib/server/company-delete.js.map +1 -1
- package/src/lib/server/contact-email-history.js +21 -19
- package/src/lib/server/contact-email-history.js.map +1 -1
- package/src/lib/server/contact-remove.js +27 -2
- package/src/lib/server/contact-remove.js.map +1 -1
- package/src/lib/server/contact-reports-to.d.ts +61 -0
- package/src/lib/server/contact-reports-to.js +114 -0
- package/src/lib/server/contact-reports-to.js.map +1 -0
- package/src/lib/server/contact-update.d.ts +42 -1
- package/src/lib/server/contact-update.js +204 -23
- package/src/lib/server/contact-update.js.map +1 -1
- package/src/lib/server/convert-host-lead.d.ts +46 -1
- package/src/lib/server/convert-host-lead.js +173 -15
- package/src/lib/server/convert-host-lead.js.map +1 -1
- package/src/lib/server/convert-open-lead.js +12 -5
- package/src/lib/server/convert-open-lead.js.map +1 -1
- package/src/lib/server/crm-email-activity.d.ts +118 -0
- package/src/lib/server/crm-email-activity.js +148 -0
- package/src/lib/server/crm-email-activity.js.map +1 -0
- package/src/lib/server/crm-inbound-email.js +1 -1
- package/src/lib/server/crm-inbound-email.js.map +1 -1
- package/src/lib/server/crm-next-activity.d.ts +74 -0
- package/src/lib/server/crm-next-activity.js +194 -0
- package/src/lib/server/crm-next-activity.js.map +1 -0
- package/src/lib/server/crm-record-indexes.d.ts +45 -0
- package/src/lib/server/crm-record-indexes.js +78 -0
- package/src/lib/server/crm-record-indexes.js.map +1 -0
- package/src/lib/server/crm-sharing.d.ts +9 -1
- package/src/lib/server/crm-sharing.js +23 -3
- package/src/lib/server/crm-sharing.js.map +1 -1
- package/src/lib/server/deal-contact-roles.d.ts +27 -0
- package/src/lib/server/deal-contact-roles.js +89 -0
- package/src/lib/server/deal-contact-roles.js.map +1 -0
- package/src/lib/server/email-send.js +2 -1
- package/src/lib/server/email-send.js.map +1 -1
- package/src/lib/server/lead-convert.d.ts +5 -0
- package/src/lib/server/lead-convert.js +19 -3
- package/src/lib/server/lead-convert.js.map +1 -1
- package/src/lib/server/lead-create.d.ts +17 -2
- package/src/lib/server/lead-create.js +46 -14
- package/src/lib/server/lead-create.js.map +1 -1
- package/src/lib/server/lead-nurturing.d.ts +6 -0
- package/src/lib/server/lead-nurturing.js +57 -20
- package/src/lib/server/lead-nurturing.js.map +1 -1
- package/src/lib/server/lead-picklists.d.ts +35 -0
- package/src/lib/server/lead-picklists.js +52 -0
- package/src/lib/server/lead-picklists.js.map +1 -0
- package/src/lib/server/lead-source-picklist.d.ts +1 -13
- package/src/lib/server/lead-source-picklist.js +6 -33
- package/src/lib/server/lead-source-picklist.js.map +1 -1
- package/src/lib/server/merge-contacts.js +23 -5
- package/src/lib/server/merge-contacts.js.map +1 -1
- package/src/lib/server/next-activity-routes.js +2 -1
- package/src/lib/server/next-activity-routes.js.map +1 -1
- package/src/lib/server/person-eraser.d.ts +53 -0
- package/src/lib/server/person-eraser.js +149 -0
- package/src/lib/server/person-eraser.js.map +1 -0
- package/src/lib/server/person-records.d.ts +69 -0
- package/src/lib/server/person-records.js +317 -0
- package/src/lib/server/person-records.js.map +1 -0
- package/src/lib/server/person-refund.d.ts +97 -0
- package/src/lib/server/person-refund.js +221 -0
- package/src/lib/server/person-refund.js.map +1 -0
- package/src/lib/server/picklist-values.d.ts +21 -0
- package/src/lib/server/picklist-values.js +308 -0
- package/src/lib/server/picklist-values.js.map +1 -0
- package/src/lib/server/read-picklist.d.ts +44 -0
- package/src/lib/server/read-picklist.js +65 -0
- package/src/lib/server/read-picklist.js.map +1 -0
- package/src/lib/server/recipe-routes.js +22 -8
- package/src/lib/server/recipe-routes.js.map +1 -1
- package/src/lib/server/record-email-state.js +7 -1
- package/src/lib/server/record-email-state.js.map +1 -1
- package/src/lib/server/record-facts.d.ts +3 -0
- package/src/lib/server/record-facts.js +233 -31
- package/src/lib/server/record-facts.js.map +1 -1
- package/src/lib/server/record-origin.d.ts +27 -0
- package/src/lib/server/record-origin.js +104 -0
- package/src/lib/server/record-origin.js.map +1 -0
- package/src/lib/server/record-timeline.js +40 -3
- package/src/lib/server/record-timeline.js.map +1 -1
- package/src/lib/server/suite-gate.js +4 -3
- package/src/lib/server/suite-gate.js.map +1 -1
- package/src/lib/server/task-reminders-route.js +2 -1
- package/src/lib/server/task-reminders-route.js.map +1 -1
- package/src/lib/server/task-routes.js +33 -17
- package/src/lib/server/task-routes.js.map +1 -1
- package/src/lib/server-deal-stage.d.ts +5 -1
- package/src/lib/server-deal-stage.js +10 -5
- package/src/lib/server-deal-stage.js.map +1 -1
- package/src/lib/server.d.ts +8 -3
- package/src/lib/server.js +47 -43
- package/src/lib/server.js.map +1 -1
- package/src/lib/testing/memory-firestore.d.ts +55 -0
- package/src/lib/testing/memory-firestore.js +335 -0
- package/src/lib/testing/memory-firestore.js.map +1 -0
- package/src/lib/testing/stand-in-email-send-index.d.ts +25 -0
- package/src/lib/testing/stand-in-email-send-index.js +49 -0
- package/src/lib/testing/stand-in-email-send-index.js.map +1 -0
- package/src/lib/transfer/activities.d.ts +30 -0
- package/src/lib/transfer/activities.js +132 -0
- package/src/lib/transfer/activities.js.map +1 -0
- package/src/lib/transfer/aliases.d.ts +22 -0
- package/src/lib/transfer/aliases.js +1342 -0
- package/src/lib/transfer/aliases.js.map +1 -0
- package/src/lib/transfer/common.d.ts +222 -0
- package/src/lib/transfer/common.js +832 -0
- package/src/lib/transfer/common.js.map +1 -0
- package/src/lib/transfer/companies.d.ts +43 -0
- package/src/lib/transfer/companies.js +549 -0
- package/src/lib/transfer/companies.js.map +1 -0
- package/src/lib/transfer/contacts.d.ts +31 -0
- package/src/lib/transfer/contacts.js +727 -0
- package/src/lib/transfer/contacts.js.map +1 -0
- package/src/lib/transfer/deals.d.ts +66 -0
- package/src/lib/transfer/deals.js +698 -0
- package/src/lib/transfer/deals.js.map +1 -0
- package/src/lib/transfer/email-templates-package.d.ts +40 -0
- package/src/lib/transfer/email-templates-package.js +76 -0
- package/src/lib/transfer/email-templates-package.js.map +1 -0
- package/src/lib/transfer/email-templates-package.server.d.ts +32 -0
- package/src/lib/transfer/email-templates-package.server.js +176 -0
- package/src/lib/transfer/email-templates-package.server.js.map +1 -0
- package/src/lib/transfer/fields.d.ts +102 -0
- package/src/lib/transfer/fields.js +1755 -0
- package/src/lib/transfer/fields.js.map +1 -0
- package/src/lib/transfer/leads.d.ts +30 -0
- package/src/lib/transfer/leads.js +582 -0
- package/src/lib/transfer/leads.js.map +1 -0
- package/src/lib/transfer/pipelines.d.ts +21 -0
- package/src/lib/transfer/pipelines.js +172 -0
- package/src/lib/transfer/pipelines.js.map +1 -0
- package/src/lib/transfer/register.d.ts +47 -0
- package/src/lib/transfer/register.js +277 -0
- package/src/lib/transfer/register.js.map +1 -0
- package/src/lib/transfer/tasks.d.ts +30 -0
- package/src/lib/transfer/tasks.js +418 -0
- package/src/lib/transfer/tasks.js.map +1 -0
- package/src/lib/transfer/ui.d.ts +20 -0
- package/src/lib/transfer/ui.js +42 -0
- package/src/lib/transfer/ui.js.map +1 -0
- package/src/lib/components/company-import-drawer.d.ts +0 -42
- package/src/lib/components/company-import-drawer.js +0 -99
- package/src/lib/components/company-import-drawer.js.map +0 -1
- package/src/lib/components/contact-import-drawer.d.ts +0 -46
- package/src/lib/components/contact-import-drawer.js +0 -149
- package/src/lib/components/contact-import-drawer.js.map +0 -1
- package/src/lib/components/crm-export-all-button.d.ts +0 -39
- package/src/lib/components/crm-export-all-button.js +0 -98
- package/src/lib/components/crm-export-all-button.js.map +0 -1
- package/src/lib/components/csv-import-drawer.d.ts +0 -139
- package/src/lib/components/csv-import-drawer.js +0 -757
- package/src/lib/components/csv-import-drawer.js.map +0 -1
- package/src/lib/components/deal-import-drawer.d.ts +0 -24
- package/src/lib/components/deal-import-drawer.js +0 -83
- package/src/lib/components/deal-import-drawer.js.map +0 -1
- package/src/lib/components/lead-import-drawer.d.ts +0 -27
- package/src/lib/components/lead-import-drawer.js +0 -118
- package/src/lib/components/lead-import-drawer.js.map +0 -1
- package/src/lib/components/lead-source-values-card.d.ts +0 -27
- package/src/lib/components/lead-source-values-card.js.map +0 -1
- package/src/lib/components/task-import-drawer.d.ts +0 -24
- package/src/lib/components/task-import-drawer.js +0 -82
- package/src/lib/components/task-import-drawer.js.map +0 -1
- package/src/lib/model/companies-csv.d.ts +0 -36
- package/src/lib/model/companies-csv.js +0 -38
- package/src/lib/model/companies-csv.js.map +0 -1
- package/src/lib/model/contacts-csv.d.ts +0 -54
- package/src/lib/model/contacts-csv.js +0 -67
- package/src/lib/model/contacts-csv.js.map +0 -1
- package/src/lib/model/crm-company-import.d.ts +0 -154
- package/src/lib/model/crm-company-import.js +0 -331
- package/src/lib/model/crm-company-import.js.map +0 -1
- package/src/lib/model/crm-csv.d.ts +0 -239
- package/src/lib/model/crm-csv.js +0 -467
- package/src/lib/model/crm-csv.js.map +0 -1
- package/src/lib/model/crm-deal-import.d.ts +0 -112
- package/src/lib/model/crm-deal-import.js +0 -263
- package/src/lib/model/crm-deal-import.js.map +0 -1
- package/src/lib/model/crm-import.d.ts +0 -250
- package/src/lib/model/crm-import.js +0 -467
- package/src/lib/model/crm-import.js.map +0 -1
- package/src/lib/model/crm-lead-import.d.ts +0 -138
- package/src/lib/model/crm-lead-import.js +0 -446
- package/src/lib/model/crm-lead-import.js.map +0 -1
- package/src/lib/model/crm-task-import.d.ts +0 -94
- package/src/lib/model/crm-task-import.js +0 -275
- package/src/lib/model/crm-task-import.js.map +0 -1
- package/src/lib/model/deals-csv.d.ts +0 -32
- package/src/lib/model/deals-csv.js +0 -36
- package/src/lib/model/deals-csv.js.map +0 -1
- package/src/lib/model/import-column-shapes.d.ts +0 -36
- package/src/lib/model/import-column-shapes.js +0 -76
- package/src/lib/model/import-column-shapes.js.map +0 -1
- package/src/lib/model/lead-source-values.d.ts +0 -82
- package/src/lib/model/lead-source-values.js +0 -149
- package/src/lib/model/lead-source-values.js.map +0 -1
- package/src/lib/model/leads-csv.d.ts +0 -40
- package/src/lib/model/leads-csv.js +0 -40
- package/src/lib/model/leads-csv.js.map +0 -1
- package/src/lib/model/tasks-csv.d.ts +0 -28
- package/src/lib/model/tasks-csv.js +0 -28
- package/src/lib/model/tasks-csv.js.map +0 -1
- package/src/lib/server/companies-import.d.ts +0 -57
- package/src/lib/server/companies-import.js +0 -242
- package/src/lib/server/companies-import.js.map +0 -1
- package/src/lib/server/contacts-import.d.ts +0 -109
- package/src/lib/server/contacts-import.js +0 -393
- package/src/lib/server/contacts-import.js.map +0 -1
- package/src/lib/server/deals-import.d.ts +0 -76
- package/src/lib/server/deals-import.js +0 -248
- package/src/lib/server/deals-import.js.map +0 -1
- package/src/lib/server/export-route.d.ts +0 -60
- package/src/lib/server/export-route.js +0 -447
- package/src/lib/server/export-route.js.map +0 -1
- package/src/lib/server/import-context.d.ts +0 -87
- package/src/lib/server/import-context.js +0 -182
- package/src/lib/server/import-context.js.map +0 -1
- package/src/lib/server/lead-source-values.d.ts +0 -50
- package/src/lib/server/lead-source-values.js +0 -191
- package/src/lib/server/lead-source-values.js.map +0 -1
- package/src/lib/server/leads-import.d.ts +0 -84
- package/src/lib/server/leads-import.js +0 -367
- package/src/lib/server/leads-import.js.map +0 -1
- package/src/lib/server/tasks-import.d.ts +0 -54
- package/src/lib/server/tasks-import.js +0 -160
- package/src/lib/server/tasks-import.js.map +0 -1
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ 'use client';
|
|
17
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
18
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
+
import { composeContactName, CONTACT_NAME_PART_MAX, CRM_LEAD_TEXT_MAX, effectiveCrmPicklist } from "@aglyn/aglyn";
|
|
20
|
+
import { Checkbox, FormControlLabel, MenuItem, Stack, TextField, Typography } from "@mui/material";
|
|
21
|
+
import { addressDraftFrom, ContactAddressFields, EMPTY_ADDRESS } from "./contact-address-fields.js";
|
|
22
|
+
import { LeadSourceSelect } from "./lead-source-select.js";
|
|
23
|
+
import { CrmPicklistSelect } from "./picklist-select.js";
|
|
24
|
+
import { amountInputValue, DEAL_CURRENCIES, DEFAULT_DEAL_CURRENCY, parseAmountInput } from "../model/deal-board-model.js";
|
|
25
|
+
export const EMPTY_LEAD_PROFILE_DRAFT = {
|
|
26
|
+
salutation: '',
|
|
27
|
+
firstName: '',
|
|
28
|
+
lastName: '',
|
|
29
|
+
company: '',
|
|
30
|
+
jobTitle: '',
|
|
31
|
+
phone: '',
|
|
32
|
+
mobilePhone: '',
|
|
33
|
+
fax: '',
|
|
34
|
+
doNotCall: false,
|
|
35
|
+
website: '',
|
|
36
|
+
leadSource: '',
|
|
37
|
+
industry: '',
|
|
38
|
+
rating: '',
|
|
39
|
+
tags: '',
|
|
40
|
+
numberOfEmployees: '',
|
|
41
|
+
annualRevenue: '',
|
|
42
|
+
currency: DEFAULT_DEAL_CURRENCY,
|
|
43
|
+
address: EMPTY_ADDRESS
|
|
44
|
+
};
|
|
45
|
+
/** The stored profile as a draft the fields can edit. */ export function leadProfileDraftFrom(lead) {
|
|
46
|
+
var _lead_tags, _lead_address;
|
|
47
|
+
const text = (value)=>typeof value === 'string' ? value : '';
|
|
48
|
+
return {
|
|
49
|
+
salutation: text(lead.salutation),
|
|
50
|
+
firstName: text(lead.firstName),
|
|
51
|
+
lastName: text(lead.lastName),
|
|
52
|
+
company: text(lead.company),
|
|
53
|
+
jobTitle: text(lead.jobTitle),
|
|
54
|
+
phone: text(lead.phone),
|
|
55
|
+
mobilePhone: text(lead.mobilePhone),
|
|
56
|
+
fax: text(lead.fax),
|
|
57
|
+
doNotCall: lead.doNotCall === true,
|
|
58
|
+
website: text(lead.website),
|
|
59
|
+
leadSource: text(lead.leadSource),
|
|
60
|
+
industry: text(lead.industry),
|
|
61
|
+
rating: text(lead.rating),
|
|
62
|
+
tags: ((_lead_tags = lead.tags) != null ? _lead_tags : []).join(', '),
|
|
63
|
+
numberOfEmployees: typeof lead.numberOfEmployees === 'number' ? String(lead.numberOfEmployees) : '',
|
|
64
|
+
annualRevenue: amountInputValue(lead.annualRevenueCents),
|
|
65
|
+
currency: text(lead.currency).toLowerCase() || DEFAULT_DEAL_CURRENCY,
|
|
66
|
+
address: addressDraftFrom((_lead_address = lead.address) != null ? _lead_address : null)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** The fields of a draft that change what the lead's name reads as. */ export function leadDraftComposedName(draft) {
|
|
70
|
+
return composeContactName(draft.firstName, draft.lastName);
|
|
71
|
+
}
|
|
72
|
+
/** The sentence a revenue that is not an amount is refused with, under the field. */ export const LEAD_REVENUE_REFUSAL = 'Enter an amount, like 1250000.00';
|
|
73
|
+
/**
|
|
74
|
+
* The draft as the body `normalizeCrmLeadProfile` reads: the revenue
|
|
75
|
+
* typed in the currency's major unit becomes its minor unit, with the
|
|
76
|
+
* currency beside it only while there is a revenue for it to describe.
|
|
77
|
+
* `revenueError` is set for a revenue that is not an amount.
|
|
78
|
+
*/ export function leadProfileDraftBody(draft) {
|
|
79
|
+
const revenueText = draft.annualRevenue.trim();
|
|
80
|
+
const revenue = revenueText ? parseAmountInput(revenueText) : null;
|
|
81
|
+
return _extends({
|
|
82
|
+
body: {
|
|
83
|
+
salutation: draft.salutation,
|
|
84
|
+
firstName: draft.firstName,
|
|
85
|
+
lastName: draft.lastName,
|
|
86
|
+
company: draft.company,
|
|
87
|
+
jobTitle: draft.jobTitle,
|
|
88
|
+
phone: draft.phone,
|
|
89
|
+
mobilePhone: draft.mobilePhone,
|
|
90
|
+
fax: draft.fax,
|
|
91
|
+
doNotCall: draft.doNotCall,
|
|
92
|
+
website: draft.website,
|
|
93
|
+
leadSource: draft.leadSource,
|
|
94
|
+
industry: draft.industry,
|
|
95
|
+
rating: draft.rating,
|
|
96
|
+
tags: draft.tags,
|
|
97
|
+
numberOfEmployees: draft.numberOfEmployees,
|
|
98
|
+
annualRevenueCents: revenue,
|
|
99
|
+
currency: revenue === null ? null : draft.currency,
|
|
100
|
+
address: draft.address
|
|
101
|
+
}
|
|
102
|
+
}, revenueText && revenue === null ? {
|
|
103
|
+
revenueError: LEAD_REVENUE_REFUSAL
|
|
104
|
+
} : {});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The profile's fields in Salesforce's lead layout (AGL-3513): the name,
|
|
108
|
+
* then Lead Information — the company, title, industry, rating, source,
|
|
109
|
+
* size and revenue — then how to reach the person, then the address.
|
|
110
|
+
*/ export function LeadProfileFields(props) {
|
|
111
|
+
const { draft, onChange, errors = {}, disabled, leadSources, lists, stored, helperTexts = {} } = props;
|
|
112
|
+
const storedText = (key)=>{
|
|
113
|
+
var _stored_key;
|
|
114
|
+
return stored ? String((_stored_key = stored[key]) != null ? _stored_key : '') : undefined;
|
|
115
|
+
};
|
|
116
|
+
const composed = leadDraftComposedName(draft);
|
|
117
|
+
// A list not read yet is its standard values.
|
|
118
|
+
const picklist = (id)=>{
|
|
119
|
+
var _lists_id;
|
|
120
|
+
return (_lists_id = lists[id]) != null ? _lists_id : effectiveCrmPicklist(id, undefined);
|
|
121
|
+
};
|
|
122
|
+
const text = (key, label)=>/*#__PURE__*/ _jsx(TextField, {
|
|
123
|
+
size: "small",
|
|
124
|
+
label: label,
|
|
125
|
+
value: draft[key],
|
|
126
|
+
onChange: (event)=>onChange(key, event.target.value),
|
|
127
|
+
disabled: disabled,
|
|
128
|
+
helperText: key === 'company' ? helperTexts.company : undefined,
|
|
129
|
+
slotProps: {
|
|
130
|
+
htmlInput: {
|
|
131
|
+
maxLength: CRM_LEAD_TEXT_MAX
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
fullWidth: true
|
|
135
|
+
});
|
|
136
|
+
const phone = (key, label, hint)=>/*#__PURE__*/ _jsx(TextField, {
|
|
137
|
+
size: "small",
|
|
138
|
+
label: label,
|
|
139
|
+
value: draft[key],
|
|
140
|
+
onChange: (event)=>onChange(key, event.target.value),
|
|
141
|
+
disabled: disabled,
|
|
142
|
+
error: Boolean(errors[key]),
|
|
143
|
+
helperText: errors[key] || hint,
|
|
144
|
+
fullWidth: true
|
|
145
|
+
});
|
|
146
|
+
return /*#__PURE__*/ _jsxs(Stack, {
|
|
147
|
+
spacing: 2,
|
|
148
|
+
children: [
|
|
149
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
150
|
+
direction: {
|
|
151
|
+
xs: 'column',
|
|
152
|
+
md: 'row'
|
|
153
|
+
},
|
|
154
|
+
spacing: 2,
|
|
155
|
+
children: [
|
|
156
|
+
/*#__PURE__*/ _jsx(CrmPicklistSelect, {
|
|
157
|
+
picklistId: "salutation",
|
|
158
|
+
picklist: picklist('salutation'),
|
|
159
|
+
value: draft.salutation,
|
|
160
|
+
stored: storedText('salutation'),
|
|
161
|
+
onChange: (label)=>onChange('salutation', label),
|
|
162
|
+
disabled: disabled,
|
|
163
|
+
error: Boolean(errors['salutation']),
|
|
164
|
+
helperText: errors['salutation']
|
|
165
|
+
}),
|
|
166
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
167
|
+
size: "small",
|
|
168
|
+
label: "First name",
|
|
169
|
+
value: draft.firstName,
|
|
170
|
+
onChange: (event)=>onChange('firstName', event.target.value),
|
|
171
|
+
disabled: disabled,
|
|
172
|
+
slotProps: {
|
|
173
|
+
htmlInput: {
|
|
174
|
+
maxLength: CONTACT_NAME_PART_MAX
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
fullWidth: true
|
|
178
|
+
}),
|
|
179
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
180
|
+
size: "small",
|
|
181
|
+
label: "Last name",
|
|
182
|
+
value: draft.lastName,
|
|
183
|
+
onChange: (event)=>onChange('lastName', event.target.value),
|
|
184
|
+
disabled: disabled,
|
|
185
|
+
helperText: composed ? `The lead's name reads "${composed}".` : undefined,
|
|
186
|
+
slotProps: {
|
|
187
|
+
htmlInput: {
|
|
188
|
+
maxLength: CONTACT_NAME_PART_MAX
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
fullWidth: true
|
|
192
|
+
})
|
|
193
|
+
]
|
|
194
|
+
}),
|
|
195
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
196
|
+
variant: "subtitle2",
|
|
197
|
+
children: 'Lead information'
|
|
198
|
+
}),
|
|
199
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
200
|
+
direction: {
|
|
201
|
+
xs: 'column',
|
|
202
|
+
md: 'row'
|
|
203
|
+
},
|
|
204
|
+
spacing: 2,
|
|
205
|
+
children: [
|
|
206
|
+
text('company', 'Company'),
|
|
207
|
+
text('jobTitle', 'Job title')
|
|
208
|
+
]
|
|
209
|
+
}),
|
|
210
|
+
/*#__PURE__*/ _jsx(Stack, {
|
|
211
|
+
direction: {
|
|
212
|
+
xs: 'column',
|
|
213
|
+
md: 'row'
|
|
214
|
+
},
|
|
215
|
+
spacing: 2,
|
|
216
|
+
children: [
|
|
217
|
+
'industry',
|
|
218
|
+
'rating'
|
|
219
|
+
].map((key)=>/*#__PURE__*/ _jsx(CrmPicklistSelect, {
|
|
220
|
+
picklistId: key,
|
|
221
|
+
picklist: picklist(key),
|
|
222
|
+
value: draft[key],
|
|
223
|
+
stored: storedText(key),
|
|
224
|
+
onChange: (label)=>onChange(key, label),
|
|
225
|
+
disabled: disabled,
|
|
226
|
+
error: Boolean(errors[key]),
|
|
227
|
+
helperText: errors[key]
|
|
228
|
+
}, key))
|
|
229
|
+
}),
|
|
230
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
231
|
+
direction: {
|
|
232
|
+
xs: 'column',
|
|
233
|
+
md: 'row'
|
|
234
|
+
},
|
|
235
|
+
spacing: 2,
|
|
236
|
+
children: [
|
|
237
|
+
/*#__PURE__*/ _jsx(LeadSourceSelect, {
|
|
238
|
+
picklist: leadSources,
|
|
239
|
+
value: draft.leadSource,
|
|
240
|
+
stored: storedText('leadSource'),
|
|
241
|
+
onChange: (label)=>onChange('leadSource', label),
|
|
242
|
+
disabled: disabled,
|
|
243
|
+
error: Boolean(errors['leadSource']),
|
|
244
|
+
helperText: errors['leadSource'] || helperTexts.leadSource
|
|
245
|
+
}),
|
|
246
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
247
|
+
size: "small",
|
|
248
|
+
label: "Tags",
|
|
249
|
+
value: draft.tags,
|
|
250
|
+
onChange: (event)=>onChange('tags', event.target.value),
|
|
251
|
+
disabled: disabled,
|
|
252
|
+
helperText: "Comma-separated",
|
|
253
|
+
fullWidth: true
|
|
254
|
+
})
|
|
255
|
+
]
|
|
256
|
+
}),
|
|
257
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
258
|
+
direction: {
|
|
259
|
+
xs: 'column',
|
|
260
|
+
md: 'row'
|
|
261
|
+
},
|
|
262
|
+
spacing: 2,
|
|
263
|
+
children: [
|
|
264
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
265
|
+
size: "small",
|
|
266
|
+
label: "Employees",
|
|
267
|
+
value: draft.numberOfEmployees,
|
|
268
|
+
onChange: (event)=>onChange('numberOfEmployees', event.target.value),
|
|
269
|
+
disabled: disabled,
|
|
270
|
+
error: Boolean(errors['numberOfEmployees']),
|
|
271
|
+
helperText: errors['numberOfEmployees'],
|
|
272
|
+
slotProps: {
|
|
273
|
+
htmlInput: {
|
|
274
|
+
inputMode: 'numeric'
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
fullWidth: true
|
|
278
|
+
}),
|
|
279
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
280
|
+
direction: "row",
|
|
281
|
+
spacing: 1,
|
|
282
|
+
sx: {
|
|
283
|
+
width: '100%'
|
|
284
|
+
},
|
|
285
|
+
children: [
|
|
286
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
287
|
+
size: "small",
|
|
288
|
+
label: "Annual revenue",
|
|
289
|
+
placeholder: "0.00",
|
|
290
|
+
value: draft.annualRevenue,
|
|
291
|
+
onChange: (event)=>onChange('annualRevenue', event.target.value),
|
|
292
|
+
disabled: disabled,
|
|
293
|
+
error: Boolean(errors['annualRevenueCents']),
|
|
294
|
+
helperText: errors['annualRevenueCents'],
|
|
295
|
+
slotProps: {
|
|
296
|
+
htmlInput: {
|
|
297
|
+
inputMode: 'decimal'
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
sx: {
|
|
301
|
+
flex: 1
|
|
302
|
+
}
|
|
303
|
+
}),
|
|
304
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
305
|
+
select: true,
|
|
306
|
+
size: "small",
|
|
307
|
+
label: "Currency",
|
|
308
|
+
value: draft.currency,
|
|
309
|
+
onChange: (event)=>onChange('currency', event.target.value),
|
|
310
|
+
disabled: disabled,
|
|
311
|
+
sx: {
|
|
312
|
+
width: 120
|
|
313
|
+
},
|
|
314
|
+
children: [
|
|
315
|
+
...new Set([
|
|
316
|
+
...DEAL_CURRENCIES,
|
|
317
|
+
draft.currency
|
|
318
|
+
])
|
|
319
|
+
].map((code)=>/*#__PURE__*/ _jsx(MenuItem, {
|
|
320
|
+
value: code,
|
|
321
|
+
children: code.toUpperCase()
|
|
322
|
+
}, code))
|
|
323
|
+
})
|
|
324
|
+
]
|
|
325
|
+
})
|
|
326
|
+
]
|
|
327
|
+
}),
|
|
328
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
329
|
+
variant: "subtitle2",
|
|
330
|
+
children: 'Contact information'
|
|
331
|
+
}),
|
|
332
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
333
|
+
direction: {
|
|
334
|
+
xs: 'column',
|
|
335
|
+
md: 'row'
|
|
336
|
+
},
|
|
337
|
+
spacing: 2,
|
|
338
|
+
children: [
|
|
339
|
+
phone('phone', 'Phone', 'With the country code, like +1 512 555 0107'),
|
|
340
|
+
phone('mobilePhone', 'Mobile phone')
|
|
341
|
+
]
|
|
342
|
+
}),
|
|
343
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
344
|
+
direction: {
|
|
345
|
+
xs: 'column',
|
|
346
|
+
md: 'row'
|
|
347
|
+
},
|
|
348
|
+
spacing: 2,
|
|
349
|
+
children: [
|
|
350
|
+
phone('fax', 'Fax'),
|
|
351
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
352
|
+
size: "small",
|
|
353
|
+
label: "Website",
|
|
354
|
+
value: draft.website,
|
|
355
|
+
onChange: (event)=>onChange('website', event.target.value),
|
|
356
|
+
disabled: disabled,
|
|
357
|
+
error: Boolean(errors['website']),
|
|
358
|
+
helperText: errors['website'] || 'Like acme.com',
|
|
359
|
+
fullWidth: true
|
|
360
|
+
})
|
|
361
|
+
]
|
|
362
|
+
}),
|
|
363
|
+
/*#__PURE__*/ _jsx(FormControlLabel, {
|
|
364
|
+
control: /*#__PURE__*/ _jsx(Checkbox, {
|
|
365
|
+
checked: draft.doNotCall,
|
|
366
|
+
onChange: (event)=>onChange('doNotCall', event.target.checked),
|
|
367
|
+
disabled: disabled
|
|
368
|
+
}),
|
|
369
|
+
label: "Do not call"
|
|
370
|
+
}),
|
|
371
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
372
|
+
variant: "subtitle2",
|
|
373
|
+
children: 'Address'
|
|
374
|
+
}),
|
|
375
|
+
/*#__PURE__*/ _jsx(ContactAddressFields, {
|
|
376
|
+
value: draft.address,
|
|
377
|
+
onChange: (next)=>onChange('address', next),
|
|
378
|
+
disabled: disabled
|
|
379
|
+
})
|
|
380
|
+
]
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
LeadProfileFields.displayName = 'LeadProfileFields';
|
|
384
|
+
export default LeadProfileFields;
|
|
385
|
+
|
|
386
|
+
//# sourceMappingURL=lead-profile-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/components/lead-profile-fields.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport {\n composeContactName,\n CONTACT_NAME_PART_MAX,\n CRM_LEAD_TEXT_MAX,\n type CrmLeadFields,\n type CrmPicklist,\n type CrmPicklistId,\n effectiveCrmPicklist,\n} from '@aglyn/aglyn'\nimport { Checkbox, FormControlLabel, MenuItem, Stack, TextField, Typography } from '@mui/material'\nimport { addressDraftFrom, ContactAddressFields, EMPTY_ADDRESS, type AddressDraft } from './contact-address-fields'\nimport { LeadSourceSelect } from './lead-source-select'\nimport { CrmPicklistSelect } from './picklist-select'\nimport {\n amountInputValue,\n DEAL_CURRENCIES,\n DEFAULT_DEAL_CURRENCY,\n parseAmountInput,\n} from '../model/deal-board-model'\n\n/**\n * A LEAD'S OWN PROFILE AS A FORM HOLDS IT (AGL-3231, AGL-3513) — every\n * field a string, the address a draft, Do not call a flag — shared by the\n * New lead drawer and the lead's Details card, so the two read and refuse\n * a value the same way.\n */\nexport interface LeadProfileDraft {\n salutation: string\n firstName: string\n lastName: string\n company: string\n jobTitle: string\n phone: string\n mobilePhone: string\n fax: string\n doNotCall: boolean\n website: string\n leadSource: string\n industry: string\n rating: string\n tags: string\n numberOfEmployees: string\n /** As typed, in the currency's major unit. */\n annualRevenue: string\n currency: string\n address: AddressDraft\n}\n\nexport const EMPTY_LEAD_PROFILE_DRAFT: LeadProfileDraft = {\n salutation: '',\n firstName: '',\n lastName: '',\n company: '',\n jobTitle: '',\n phone: '',\n mobilePhone: '',\n fax: '',\n doNotCall: false,\n website: '',\n leadSource: '',\n industry: '',\n rating: '',\n tags: '',\n numberOfEmployees: '',\n annualRevenue: '',\n currency: DEFAULT_DEAL_CURRENCY,\n address: EMPTY_ADDRESS,\n}\n\n/** The stored profile as a draft the fields can edit. */\nexport function leadProfileDraftFrom(lead: Record<string, unknown> & CrmLeadFields): LeadProfileDraft {\n const text = (value: unknown) => (typeof value === 'string' ? value : '')\n return {\n salutation: text(lead.salutation),\n firstName: text(lead.firstName),\n lastName: text(lead.lastName),\n company: text(lead.company),\n jobTitle: text(lead.jobTitle),\n phone: text(lead.phone),\n mobilePhone: text(lead.mobilePhone),\n fax: text(lead.fax),\n doNotCall: lead.doNotCall === true,\n website: text(lead.website),\n leadSource: text(lead.leadSource),\n industry: text(lead.industry),\n rating: text(lead.rating),\n tags: (lead.tags ?? []).join(', '),\n numberOfEmployees: typeof lead.numberOfEmployees === 'number' ? String(lead.numberOfEmployees) : '',\n annualRevenue: amountInputValue(lead.annualRevenueCents),\n currency: text(lead.currency).toLowerCase() || DEFAULT_DEAL_CURRENCY,\n address: addressDraftFrom(lead.address ?? null),\n }\n}\n\n/** The fields of a draft that change what the lead's name reads as. */\nexport function leadDraftComposedName(draft: Pick<LeadProfileDraft, 'firstName' | 'lastName'>): string {\n return composeContactName(draft.firstName, draft.lastName)\n}\n\n/** The sentence a revenue that is not an amount is refused with, under the field. */\nexport const LEAD_REVENUE_REFUSAL = 'Enter an amount, like 1250000.00'\n\n/**\n * The draft as the body `normalizeCrmLeadProfile` reads: the revenue\n * typed in the currency's major unit becomes its minor unit, with the\n * currency beside it only while there is a revenue for it to describe.\n * `revenueError` is set for a revenue that is not an amount.\n */\nexport function leadProfileDraftBody(draft: LeadProfileDraft): {\n body: Record<string, unknown>\n revenueError?: string\n} {\n const revenueText = draft.annualRevenue.trim()\n const revenue = revenueText ? parseAmountInput(revenueText) : null\n return {\n body: {\n salutation: draft.salutation,\n firstName: draft.firstName,\n lastName: draft.lastName,\n company: draft.company,\n jobTitle: draft.jobTitle,\n phone: draft.phone,\n mobilePhone: draft.mobilePhone,\n fax: draft.fax,\n doNotCall: draft.doNotCall,\n website: draft.website,\n leadSource: draft.leadSource,\n industry: draft.industry,\n rating: draft.rating,\n tags: draft.tags,\n numberOfEmployees: draft.numberOfEmployees,\n annualRevenueCents: revenue,\n currency: revenue === null ? null : draft.currency,\n address: draft.address,\n },\n ...(revenueText && revenue === null ? { revenueError: LEAD_REVENUE_REFUSAL } : {}),\n }\n}\n\nexport interface LeadProfileFieldsProps {\n draft: LeadProfileDraft\n onChange: <K extends keyof LeadProfileDraft>(key: K, value: LeadProfileDraft[K]) => void\n /** Each field's refusal, under it, by the profile key. */\n errors?: Readonly<Record<string, string | undefined>>\n disabled?: boolean\n /** The org's lead source list. */\n leadSources: CrmPicklist\n /** The org's Salutation, Industry and Rating lists. */\n lists: Readonly<Partial<Record<CrmPicklistId, CrmPicklist>>>\n /** The lead as stored, so a value its list no longer offers stays shown. */\n stored?: Readonly<Record<string, unknown>> | null\n /** The drawer's hints under the company and the lead source. */\n helperTexts?: Partial<Record<'company' | 'leadSource', string>>\n}\n\n/**\n * The profile's fields in Salesforce's lead layout (AGL-3513): the name,\n * then Lead Information — the company, title, industry, rating, source,\n * size and revenue — then how to reach the person, then the address.\n */\nexport function LeadProfileFields(props: LeadProfileFieldsProps) {\n const { draft, onChange, errors = {}, disabled, leadSources, lists, stored, helperTexts = {} } = props\n const storedText = (key: string) => (stored ? String(stored[key] ?? '') : undefined)\n const composed = leadDraftComposedName(draft)\n // A list not read yet is its standard values.\n const picklist = (id: CrmPicklistId): CrmPicklist => lists[id] ?? effectiveCrmPicklist(id, undefined)\n const text = (key: 'company' | 'jobTitle', label: string) => (\n <TextField\n size=\"small\"\n label={label}\n value={draft[key]}\n onChange={(event) => onChange(key, event.target.value)}\n disabled={disabled}\n helperText={key === 'company' ? helperTexts.company : undefined}\n slotProps={{ htmlInput: { maxLength: CRM_LEAD_TEXT_MAX } }}\n fullWidth\n />\n )\n const phone = (key: 'phone' | 'mobilePhone' | 'fax', label: string, hint?: string) => (\n <TextField\n size=\"small\"\n label={label}\n value={draft[key]}\n onChange={(event) => onChange(key, event.target.value)}\n disabled={disabled}\n error={Boolean(errors[key])}\n helperText={errors[key] || hint}\n fullWidth\n />\n )\n return (\n <Stack spacing={2}>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n <CrmPicklistSelect\n picklistId=\"salutation\"\n picklist={picklist('salutation')}\n value={draft.salutation}\n stored={storedText('salutation')}\n onChange={(label) => onChange('salutation', label)}\n disabled={disabled}\n error={Boolean(errors['salutation'])}\n helperText={errors['salutation']}\n />\n <TextField\n size=\"small\"\n label=\"First name\"\n value={draft.firstName}\n onChange={(event) => onChange('firstName', event.target.value)}\n disabled={disabled}\n slotProps={{ htmlInput: { maxLength: CONTACT_NAME_PART_MAX } }}\n fullWidth\n />\n <TextField\n size=\"small\"\n label=\"Last name\"\n value={draft.lastName}\n onChange={(event) => onChange('lastName', event.target.value)}\n disabled={disabled}\n helperText={composed ? `The lead's name reads \"${composed}\".` : undefined}\n slotProps={{ htmlInput: { maxLength: CONTACT_NAME_PART_MAX } }}\n fullWidth\n />\n </Stack>\n <Typography variant=\"subtitle2\">{'Lead information'}</Typography>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n {text('company', 'Company')}\n {text('jobTitle', 'Job title')}\n </Stack>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n {(['industry', 'rating'] as const).map((key) => (\n <CrmPicklistSelect\n key={key}\n picklistId={key}\n picklist={picklist(key)}\n value={draft[key]}\n stored={storedText(key)}\n onChange={(label) => onChange(key, label)}\n disabled={disabled}\n error={Boolean(errors[key])}\n helperText={errors[key]}\n />\n ))}\n </Stack>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n {/* The org's own values (AGL-3298); the stored one stays shown when the list no longer offers it. */}\n <LeadSourceSelect\n picklist={leadSources}\n value={draft.leadSource}\n stored={storedText('leadSource')}\n onChange={(label) => onChange('leadSource', label)}\n disabled={disabled}\n error={Boolean(errors['leadSource'])}\n helperText={errors['leadSource'] || helperTexts.leadSource}\n />\n <TextField\n size=\"small\"\n label=\"Tags\"\n value={draft.tags}\n onChange={(event) => onChange('tags', event.target.value)}\n disabled={disabled}\n helperText=\"Comma-separated\"\n fullWidth\n />\n </Stack>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n <TextField\n size=\"small\"\n label=\"Employees\"\n value={draft.numberOfEmployees}\n onChange={(event) => onChange('numberOfEmployees', event.target.value)}\n disabled={disabled}\n error={Boolean(errors['numberOfEmployees'])}\n helperText={errors['numberOfEmployees']}\n slotProps={{ htmlInput: { inputMode: 'numeric' } }}\n fullWidth\n />\n <Stack direction=\"row\" spacing={1} sx={{ width: '100%' }}>\n <TextField\n size=\"small\"\n label=\"Annual revenue\"\n placeholder=\"0.00\"\n value={draft.annualRevenue}\n onChange={(event) => onChange('annualRevenue', event.target.value)}\n disabled={disabled}\n error={Boolean(errors['annualRevenueCents'])}\n helperText={errors['annualRevenueCents']}\n slotProps={{ htmlInput: { inputMode: 'decimal' } }}\n sx={{ flex: 1 }}\n />\n <TextField\n select\n size=\"small\"\n label=\"Currency\"\n value={draft.currency}\n onChange={(event) => onChange('currency', event.target.value)}\n disabled={disabled}\n sx={{ width: 120 }}\n >\n {/* A stored code outside the short list stays selectable as itself. */}\n {[...new Set<string>([...DEAL_CURRENCIES, draft.currency])].map((code) => (\n <MenuItem key={code} value={code}>\n {code.toUpperCase()}\n </MenuItem>\n ))}\n </TextField>\n </Stack>\n </Stack>\n <Typography variant=\"subtitle2\">{'Contact information'}</Typography>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n {phone('phone', 'Phone', 'With the country code, like +1 512 555 0107')}\n {phone('mobilePhone', 'Mobile phone')}\n </Stack>\n <Stack direction={{ xs: 'column', md: 'row' }} spacing={2}>\n {phone('fax', 'Fax')}\n <TextField\n size=\"small\"\n label=\"Website\"\n value={draft.website}\n onChange={(event) => onChange('website', event.target.value)}\n disabled={disabled}\n error={Boolean(errors['website'])}\n helperText={errors['website'] || 'Like acme.com'}\n fullWidth\n />\n </Stack>\n {/* A hint on every dial control, never a block (the contact's rule). */}\n <FormControlLabel\n control={\n <Checkbox\n checked={draft.doNotCall}\n onChange={(event) => onChange('doNotCall', event.target.checked)}\n disabled={disabled}\n />\n }\n label=\"Do not call\"\n />\n <Typography variant=\"subtitle2\">{'Address'}</Typography>\n <ContactAddressFields\n value={draft.address}\n onChange={(next) => onChange('address', next)}\n disabled={disabled}\n />\n </Stack>\n )\n}\nLeadProfileFields.displayName = 'LeadProfileFields'\n\nexport default LeadProfileFields\n"],"names":["composeContactName","CONTACT_NAME_PART_MAX","CRM_LEAD_TEXT_MAX","effectiveCrmPicklist","Checkbox","FormControlLabel","MenuItem","Stack","TextField","Typography","addressDraftFrom","ContactAddressFields","EMPTY_ADDRESS","LeadSourceSelect","CrmPicklistSelect","amountInputValue","DEAL_CURRENCIES","DEFAULT_DEAL_CURRENCY","parseAmountInput","EMPTY_LEAD_PROFILE_DRAFT","salutation","firstName","lastName","company","jobTitle","phone","mobilePhone","fax","doNotCall","website","leadSource","industry","rating","tags","numberOfEmployees","annualRevenue","currency","address","leadProfileDraftFrom","lead","text","value","join","String","annualRevenueCents","toLowerCase","leadDraftComposedName","draft","LEAD_REVENUE_REFUSAL","leadProfileDraftBody","revenueText","trim","revenue","body","revenueError","LeadProfileFields","props","onChange","errors","disabled","leadSources","lists","stored","helperTexts","storedText","key","undefined","composed","picklist","id","label","size","event","target","helperText","slotProps","htmlInput","maxLength","fullWidth","hint","error","Boolean","spacing","direction","xs","md","picklistId","variant","map","inputMode","sx","width","placeholder","flex","select","Set","code","toUpperCase","control","checked","next","displayName"],"mappings":"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"}
|
|
@@ -37,7 +37,8 @@ export interface LeadPropertiesCardProps {
|
|
|
37
37
|
basePath: string;
|
|
38
38
|
roster: OrgMemberOptions;
|
|
39
39
|
onConvert: () => void;
|
|
40
|
-
|
|
40
|
+
/** Opens the Unqualify dialog — with the Unqualified value picked, when the status select named one. */
|
|
41
|
+
onUnqualify: (statusLabel?: string) => void;
|
|
41
42
|
/**
|
|
42
43
|
* Items the page adds to the overflow beside Unqualify — the privacy
|
|
43
44
|
* erasure (AGL-2623) lives on the page, because it needs the workspace
|