@aglyn/plugins-crm 1.0.0-beta.220 → 1.0.0-beta.222
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-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/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 +92 -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 +15 -1
- 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-recipes.d.ts +40 -0
- package/src/lib/model/crm-recipes.js +244 -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/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/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 +75 -33
- 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 +162 -0
- package/src/lib/server/assign-contact-owner.js +340 -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 +139 -0
- package/src/lib/server/automation-steps.js +472 -0
- package/src/lib/server/automation-steps.js.map +1 -0
- package/src/lib/server/capture-contact.js +69 -22
- 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-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/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 +22 -4
- package/src/lib/server/merge-contacts.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 +15 -7
- 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 +15 -2
- 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-routes.js +30 -16
- 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
|
@@ -17,23 +17,26 @@
|
|
|
17
17
|
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
19
|
import * as Aglyn from "@aglyn/aglyn";
|
|
20
|
-
import { CONTACT_LIFECYCLE_STAGE_LABELS, CONTACT_LIFECYCLE_STAGES, crmTelHref, normalizePhone } from "@aglyn/aglyn";
|
|
20
|
+
import { composeContactName, CONTACT_BIRTHDATE_REFUSAL, CONTACT_EXTRA_PHONE_FIELDS, CONTACT_LIFECYCLE_STAGE_LABELS, CONTACT_LIFECYCLE_STAGES, CONTACT_NAME_PART_MAX, CONTACT_PHONE_FIELD_LABELS, CRM_SALUTATION_PICKLIST, crmTelHref, normalizeContactBirthdate, normalizePhone } from "@aglyn/aglyn";
|
|
21
21
|
import { mdiPhoneOutline } from "@aglyn/shared-data-mdi";
|
|
22
22
|
import { CardDisplay, MdiIcon } from "@aglyn/shared-ui-jsx";
|
|
23
23
|
import { useSnackbar } from "@aglyn/shared-ui-snackstack";
|
|
24
24
|
import { useUser, writeGuardedBySeed } from "@aglyn/tenant-feature-instance";
|
|
25
|
-
import { Button, Grid, IconButton, InputAdornment, MenuItem, Stack, TextField, Tooltip, Typography } from "@mui/material";
|
|
25
|
+
import { Button, Checkbox, FormControlLabel, FormHelperText, Grid, IconButton, InputAdornment, MenuItem, Stack, TextField, Tooltip, Typography } from "@mui/material";
|
|
26
26
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
27
27
|
import { useContactFieldDefinitions } from "../hooks/use-contact-field-definitions.js";
|
|
28
28
|
import { useContactUpdate } from "../hooks/use-contact-update.js";
|
|
29
29
|
import { useCrmActivityLogger } from "../hooks/use-crm-activity-logger.js";
|
|
30
|
+
import { useCrmPicklist } from "../hooks/use-crm-picklist.js";
|
|
30
31
|
import { useLeadSourcePicklist } from "../hooks/use-lead-source-picklist.js";
|
|
31
32
|
import { parseContactTags } from "../model/contact-record.js";
|
|
32
33
|
import { setContactStage } from "../model/crm-api.js";
|
|
33
34
|
import { crmCustomDraftChanges, crmCustomDraftMissingRequired, crmCustomDraftValue } from "../model/crm-custom-draft.js";
|
|
34
35
|
import { CompanyPicker, useCompanyOptions, useCreateCompany } from "./company-picker.js";
|
|
35
36
|
import { addressDraftFrom, ContactAddressFields } from "./contact-address-fields.js";
|
|
37
|
+
import { ContactReportsToField } from "./contact-reports-to-field.js";
|
|
36
38
|
import { CrmCustomFieldControl } from "./crm-custom-field-control.js";
|
|
39
|
+
import { CrmPicklistSelect } from "./picklist-select.js";
|
|
37
40
|
import { crmSuiteLockedReason } from "./crm-suite-lock.js";
|
|
38
41
|
import { LeadSourceSelect } from "./lead-source-select.js";
|
|
39
42
|
/**
|
|
@@ -93,6 +96,17 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
93
96
|
* and the helper says what a blank falls back to, so nobody clears the
|
|
94
97
|
* field expecting the record to go nameless.
|
|
95
98
|
*
|
|
99
|
+
* ## Salesforce's sections (AGL-3515)
|
|
100
|
+
*
|
|
101
|
+
* The fields are grouped the way Salesforce's contact Details groups them —
|
|
102
|
+
* Contact information, Phones, Addresses, Additional information — and every
|
|
103
|
+
* one is still one draft and one Save. While the holder keeps a first or
|
|
104
|
+
* last name the Name field shows their composition and is read-only; the
|
|
105
|
+
* save sends the parts, and the route composes the name from them. The
|
|
106
|
+
* salutation and the reports-to are sent only when they change, for the
|
|
107
|
+
* lead source's reason: the route judges a sent one. Do not call is a hint
|
|
108
|
+
* on every phone's call link, never a block.
|
|
109
|
+
*
|
|
96
110
|
* ## Company is a record, with its name kept beside it
|
|
97
111
|
*
|
|
98
112
|
* The Company field is the picker (AGL-2613): the link is `companyId` in
|
|
@@ -104,7 +118,50 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
104
118
|
* not the id; a record that carries a name with no link — an import, a save
|
|
105
119
|
* from before the picker — keeps it as the label, and the picker offers it
|
|
106
120
|
* as the company to link or create.
|
|
107
|
-
*/
|
|
121
|
+
*/ /** The phone fields the card edits, in the order the Phones section lists them. */ const PHONE_FIELDS = [
|
|
122
|
+
'phone',
|
|
123
|
+
...CONTACT_EXTRA_PHONE_FIELDS
|
|
124
|
+
];
|
|
125
|
+
const phoneDraftsFrom = (record)=>Object.fromEntries(PHONE_FIELDS.map((field)=>{
|
|
126
|
+
var _record_field;
|
|
127
|
+
return [
|
|
128
|
+
field,
|
|
129
|
+
String((_record_field = record[field]) != null ? _record_field : '')
|
|
130
|
+
];
|
|
131
|
+
}));
|
|
132
|
+
/** The phones as the route stores them, or the fields that cannot be read as numbers. */ function readPhones(drafts) {
|
|
133
|
+
const phones = {};
|
|
134
|
+
const errors = {};
|
|
135
|
+
for (const field of PHONE_FIELDS){
|
|
136
|
+
const typed = drafts[field].trim();
|
|
137
|
+
const normalized = typed ? normalizePhone(typed) : '';
|
|
138
|
+
if (normalized === null) errors[field] = PHONE_HELP_ERROR;
|
|
139
|
+
else phones[field] = normalized;
|
|
140
|
+
}
|
|
141
|
+
return Object.keys(errors).length ? {
|
|
142
|
+
ok: false,
|
|
143
|
+
errors
|
|
144
|
+
} : {
|
|
145
|
+
ok: true,
|
|
146
|
+
phones
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const PHONE_HELP = 'With the country code, like +1 512 555 0107';
|
|
150
|
+
const PHONE_HELP_ERROR = 'Enter it with its country code, like +1 512 555 0107.';
|
|
151
|
+
/** A section heading inside the card — Salesforce's Details groups its fields the same way. */ function SectionHeading(props) {
|
|
152
|
+
return /*#__PURE__*/ _jsx(Grid, {
|
|
153
|
+
size: {
|
|
154
|
+
xs: 12
|
|
155
|
+
},
|
|
156
|
+
children: /*#__PURE__*/ _jsx(Typography, {
|
|
157
|
+
variant: "subtitle2",
|
|
158
|
+
color: "text.secondary",
|
|
159
|
+
children: props.children
|
|
160
|
+
})
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
export function ContactPropertiesCard(props) {
|
|
164
|
+
var _record_salutation, _record_firstName, _record_lastName, _record_department, _record_birthdate, _record_assistantName, _record_reportsToContactId, _record_salutation1;
|
|
108
165
|
const { hostId, org, record, orgId = null, consentGroup, seed, members, suiteLocked = false } = props;
|
|
109
166
|
const { data: user } = useUser();
|
|
110
167
|
const { enqueueSnackbar } = useSnackbar();
|
|
@@ -127,8 +184,17 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
127
184
|
org
|
|
128
185
|
});
|
|
129
186
|
const [nameOverride, setNameOverride] = useState(record.nameOverride);
|
|
130
|
-
const [
|
|
187
|
+
const [salutation, setSalutation] = useState((_record_salutation = record.salutation) != null ? _record_salutation : '');
|
|
188
|
+
const salutations = useCrmPicklist(CRM_SALUTATION_PICKLIST, orgId);
|
|
189
|
+
const [firstName, setFirstName] = useState((_record_firstName = record.firstName) != null ? _record_firstName : '');
|
|
190
|
+
const [lastName, setLastName] = useState((_record_lastName = record.lastName) != null ? _record_lastName : '');
|
|
191
|
+
const [phones, setPhones] = useState(()=>phoneDraftsFrom(record));
|
|
192
|
+
const [doNotCall, setDoNotCall] = useState(record.doNotCall === true);
|
|
131
193
|
const [jobTitle, setJobTitle] = useState(record.jobTitle);
|
|
194
|
+
const [department, setDepartment] = useState((_record_department = record.department) != null ? _record_department : '');
|
|
195
|
+
const [birthdate, setBirthdate] = useState((_record_birthdate = record.birthdate) != null ? _record_birthdate : '');
|
|
196
|
+
const [assistantName, setAssistantName] = useState((_record_assistantName = record.assistantName) != null ? _record_assistantName : '');
|
|
197
|
+
const [reportsTo, setReportsTo] = useState((_record_reportsToContactId = record.reportsToContactId) != null ? _record_reportsToContactId : '');
|
|
132
198
|
// Salesforce's Lead Source (AGL-3298), carried from the lead on conversion.
|
|
133
199
|
const [leadSource, setLeadSource] = useState(record.leadSource);
|
|
134
200
|
const leadSources = useLeadSourcePicklist(orgId);
|
|
@@ -139,7 +205,9 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
139
205
|
const [tags, setTags] = useState(record.tags.join(', '));
|
|
140
206
|
const [notes, setNotes] = useState(record.notes);
|
|
141
207
|
const [address, setAddress] = useState(addressDraftFrom(record.address));
|
|
142
|
-
const [
|
|
208
|
+
const [otherAddress, setOtherAddress] = useState(addressDraftFrom(record.otherAddress));
|
|
209
|
+
const [phoneErrors, setPhoneErrors] = useState({});
|
|
210
|
+
const [birthdateError, setBirthdateError] = useState('');
|
|
143
211
|
const [saving, setSaving] = useState(false);
|
|
144
212
|
/** The custom values the reader touched; every other key reads from the record. */ const [custom, setCustom] = useState({});
|
|
145
213
|
/** Something was edited since the card was seeded or last saved. */ const [edited, setEdited] = useState(false);
|
|
@@ -157,14 +225,28 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
157
225
|
custom
|
|
158
226
|
]);
|
|
159
227
|
const clearingRequired = crmCustomDraftMissingRequired(customFields, storedCustom, custom, 'edit').length > 0;
|
|
228
|
+
/*
|
|
229
|
+
* The name the first and last names make (AGL-3515). While there is one,
|
|
230
|
+
* it IS the name — the Name field shows it, read-only, and the save sends
|
|
231
|
+
* the parts rather than a name the route would have to reconcile.
|
|
232
|
+
*/ const composedName = composeContactName(firstName, lastName);
|
|
160
233
|
/** One field's edit: the value, and the card now has something to save. */ const change = useCallback((set, value)=>{
|
|
161
234
|
set(value);
|
|
162
235
|
setEdited(true);
|
|
163
236
|
}, []);
|
|
164
237
|
/** Every draft back to what the record holds — the seed, and Discard. */ const reseed = ()=>{
|
|
238
|
+
var _record_salutation, _record_firstName, _record_lastName, _record_department, _record_birthdate, _record_assistantName, _record_reportsToContactId;
|
|
165
239
|
setNameOverride(record.nameOverride);
|
|
166
|
-
|
|
240
|
+
setSalutation((_record_salutation = record.salutation) != null ? _record_salutation : '');
|
|
241
|
+
setFirstName((_record_firstName = record.firstName) != null ? _record_firstName : '');
|
|
242
|
+
setLastName((_record_lastName = record.lastName) != null ? _record_lastName : '');
|
|
243
|
+
setPhones(phoneDraftsFrom(record));
|
|
244
|
+
setDoNotCall(record.doNotCall === true);
|
|
167
245
|
setJobTitle(record.jobTitle);
|
|
246
|
+
setDepartment((_record_department = record.department) != null ? _record_department : '');
|
|
247
|
+
setBirthdate((_record_birthdate = record.birthdate) != null ? _record_birthdate : '');
|
|
248
|
+
setAssistantName((_record_assistantName = record.assistantName) != null ? _record_assistantName : '');
|
|
249
|
+
setReportsTo((_record_reportsToContactId = record.reportsToContactId) != null ? _record_reportsToContactId : '');
|
|
168
250
|
setLeadSource(record.leadSource);
|
|
169
251
|
setCompanyName(record.companyName);
|
|
170
252
|
setCompanyId(record.companyId || null);
|
|
@@ -173,7 +255,9 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
173
255
|
setTags(record.tags.join(', '));
|
|
174
256
|
setNotes(record.notes);
|
|
175
257
|
setAddress(addressDraftFrom(record.address));
|
|
176
|
-
|
|
258
|
+
setOtherAddress(addressDraftFrom(record.otherAddress));
|
|
259
|
+
setPhoneErrors({});
|
|
260
|
+
setBirthdateError('');
|
|
177
261
|
setCustom({});
|
|
178
262
|
setEdited(false);
|
|
179
263
|
};
|
|
@@ -190,25 +274,37 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
190
274
|
recordId
|
|
191
275
|
]);
|
|
192
276
|
const handleSave = useCallback(async ()=>{
|
|
277
|
+
var _record_salutation, _record_reportsToContactId;
|
|
193
278
|
if (clearingRequired) return;
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
setPhoneError('');
|
|
279
|
+
const readPhonesResult = readPhones(phones);
|
|
280
|
+
const storedBirthdate = normalizeContactBirthdate(birthdate);
|
|
281
|
+
setPhoneErrors('errors' in readPhonesResult ? readPhonesResult.errors : {});
|
|
282
|
+
setBirthdateError(storedBirthdate === null ? CONTACT_BIRTHDATE_REFUSAL : '');
|
|
283
|
+
if ('errors' in readPhonesResult || storedBirthdate === null) return;
|
|
201
284
|
// A stage that differs from the record's is the stage route's to write —
|
|
202
285
|
// see the note above.
|
|
203
286
|
const stageChanged = !suiteLocked && lifecycleStage !== record.lifecycleStage;
|
|
204
|
-
const set = _extends({
|
|
205
|
-
name: nameOverride.trim().slice(0, 120)
|
|
206
|
-
|
|
207
|
-
|
|
287
|
+
const set = _extends({}, composedName ? {} : {
|
|
288
|
+
name: nameOverride.trim().slice(0, 120)
|
|
289
|
+
}, {
|
|
290
|
+
firstName: firstName.trim(),
|
|
291
|
+
lastName: lastName.trim()
|
|
292
|
+
}, readPhonesResult.phones, doNotCall !== (record.doNotCall === true) ? {
|
|
293
|
+
doNotCall
|
|
294
|
+
} : {}, {
|
|
295
|
+
jobTitle: jobTitle.trim().slice(0, 120),
|
|
296
|
+
department: department.trim().slice(0, 120),
|
|
297
|
+
birthdate: storedBirthdate,
|
|
298
|
+
assistantName: assistantName.trim().slice(0, 120)
|
|
208
299
|
}, leadSource !== record.leadSource ? {
|
|
209
300
|
leadSource
|
|
301
|
+
} : {}, salutation !== ((_record_salutation = record.salutation) != null ? _record_salutation : '') ? {
|
|
302
|
+
salutation
|
|
303
|
+
} : {}, reportsTo !== ((_record_reportsToContactId = record.reportsToContactId) != null ? _record_reportsToContactId : '') ? {
|
|
304
|
+
reportsToContactId: reportsTo || null
|
|
210
305
|
} : {}, {
|
|
211
306
|
address,
|
|
307
|
+
otherAddress,
|
|
212
308
|
tags: parseContactTags(tags),
|
|
213
309
|
notes: notes.slice(0, 2000)
|
|
214
310
|
}, suiteLocked ? {} : {
|
|
@@ -266,26 +362,39 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
266
362
|
}
|
|
267
363
|
}, [
|
|
268
364
|
address,
|
|
365
|
+
assistantName,
|
|
366
|
+
birthdate,
|
|
269
367
|
clearingRequired,
|
|
270
368
|
companyId,
|
|
271
369
|
companyName,
|
|
370
|
+
composedName,
|
|
272
371
|
contactUpdate,
|
|
273
372
|
customChanges,
|
|
373
|
+
department,
|
|
374
|
+
doNotCall,
|
|
274
375
|
enqueueSnackbar,
|
|
376
|
+
firstName,
|
|
275
377
|
siteHostId,
|
|
276
378
|
jobTitle,
|
|
379
|
+
lastName,
|
|
277
380
|
leadSource,
|
|
278
381
|
lifecycleStage,
|
|
279
382
|
logActivity,
|
|
280
383
|
nameOverride,
|
|
281
384
|
notes,
|
|
385
|
+
otherAddress,
|
|
282
386
|
ownerUid,
|
|
283
|
-
|
|
387
|
+
phones,
|
|
284
388
|
record.$id,
|
|
389
|
+
record.doNotCall,
|
|
285
390
|
record.email,
|
|
286
391
|
record.leadSource,
|
|
287
392
|
record.lifecycleStage,
|
|
288
393
|
record.name,
|
|
394
|
+
record.reportsToContactId,
|
|
395
|
+
record.salutation,
|
|
396
|
+
reportsTo,
|
|
397
|
+
salutation,
|
|
289
398
|
seed.fromCache,
|
|
290
399
|
seed.status,
|
|
291
400
|
suiteLocked,
|
|
@@ -298,7 +407,55 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
298
407
|
* never handed a value it has no option for and the reader can see who it
|
|
299
408
|
* was before reassigning.
|
|
300
409
|
*/ const ownerKnown = members.options.some((option)=>option.uid === ownerUid);
|
|
301
|
-
/**
|
|
410
|
+
/** One phone field, with click-to-call off what is IN the box (AGL-2661). */ const phoneField = (field)=>{
|
|
411
|
+
const value = phones[field];
|
|
412
|
+
const telHref = crmTelHref(value);
|
|
413
|
+
const callLabel = doNotCall ? `Call ${value.trim()} — marked do not call` : `Call ${value.trim()}`;
|
|
414
|
+
return /*#__PURE__*/ _jsx(Grid, {
|
|
415
|
+
size: {
|
|
416
|
+
xs: 12,
|
|
417
|
+
sm: 6
|
|
418
|
+
},
|
|
419
|
+
children: /*#__PURE__*/ _jsx(TextField, {
|
|
420
|
+
size: "small",
|
|
421
|
+
label: CONTACT_PHONE_FIELD_LABELS[field],
|
|
422
|
+
value: value,
|
|
423
|
+
onChange: (event)=>change(setPhones, _extends({}, phones, {
|
|
424
|
+
[field]: event.target.value
|
|
425
|
+
})),
|
|
426
|
+
error: Boolean(phoneErrors[field]),
|
|
427
|
+
helperText: phoneErrors[field] || (field === 'phone' ? PHONE_HELP : undefined),
|
|
428
|
+
fullWidth: true,
|
|
429
|
+
slotProps: {
|
|
430
|
+
input: {
|
|
431
|
+
/*
|
|
432
|
+
* The number on screen is the one a reader means to ring, and
|
|
433
|
+
* `crmTelHref` withholds the link from anything half-typed. A
|
|
434
|
+
* do-not-call person keeps the link — the rep decides — with
|
|
435
|
+
* the request said in the tooltip and the icon's color.
|
|
436
|
+
*/ endAdornment: telHref && field !== 'fax' ? /*#__PURE__*/ _jsx(InputAdornment, {
|
|
437
|
+
position: "end",
|
|
438
|
+
children: /*#__PURE__*/ _jsx(Tooltip, {
|
|
439
|
+
title: callLabel,
|
|
440
|
+
children: /*#__PURE__*/ _jsx(IconButton, {
|
|
441
|
+
component: "a",
|
|
442
|
+
href: telHref,
|
|
443
|
+
size: "small",
|
|
444
|
+
edge: "end",
|
|
445
|
+
color: doNotCall ? 'warning' : 'default',
|
|
446
|
+
"aria-label": callLabel,
|
|
447
|
+
children: /*#__PURE__*/ _jsx(MdiIcon, {
|
|
448
|
+
path: mdiPhoneOutline.path,
|
|
449
|
+
size: 0.8
|
|
450
|
+
})
|
|
451
|
+
})
|
|
452
|
+
})
|
|
453
|
+
}) : null
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
})
|
|
457
|
+
}, field);
|
|
458
|
+
};
|
|
302
459
|
return /*#__PURE__*/ _jsx(CardDisplay, {
|
|
303
460
|
header: 'Properties',
|
|
304
461
|
help: Aglyn.pluginDocsHelp('contactRecord', {
|
|
@@ -332,6 +489,9 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
332
489
|
container: true,
|
|
333
490
|
spacing: 2,
|
|
334
491
|
children: [
|
|
492
|
+
/*#__PURE__*/ _jsx(SectionHeading, {
|
|
493
|
+
children: 'Contact information'
|
|
494
|
+
}),
|
|
335
495
|
/*#__PURE__*/ _jsx(Grid, {
|
|
336
496
|
size: {
|
|
337
497
|
xs: 12,
|
|
@@ -350,6 +510,19 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
350
510
|
fullWidth: true
|
|
351
511
|
})
|
|
352
512
|
}),
|
|
513
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
514
|
+
size: {
|
|
515
|
+
xs: 12,
|
|
516
|
+
sm: 6
|
|
517
|
+
},
|
|
518
|
+
children: /*#__PURE__*/ _jsx(CrmPicklistSelect, {
|
|
519
|
+
picklistId: CRM_SALUTATION_PICKLIST,
|
|
520
|
+
picklist: salutations.picklist,
|
|
521
|
+
value: salutation,
|
|
522
|
+
stored: (_record_salutation1 = record.salutation) != null ? _record_salutation1 : '',
|
|
523
|
+
onChange: (value)=>change(setSalutation, value)
|
|
524
|
+
})
|
|
525
|
+
}),
|
|
353
526
|
/*#__PURE__*/ _jsx(Grid, {
|
|
354
527
|
size: {
|
|
355
528
|
xs: 12,
|
|
@@ -357,15 +530,14 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
357
530
|
},
|
|
358
531
|
children: /*#__PURE__*/ _jsx(TextField, {
|
|
359
532
|
size: "small",
|
|
360
|
-
label: "
|
|
361
|
-
value:
|
|
362
|
-
onChange: (event)=>change(
|
|
533
|
+
label: "First name",
|
|
534
|
+
value: firstName,
|
|
535
|
+
onChange: (event)=>change(setFirstName, event.target.value),
|
|
363
536
|
slotProps: {
|
|
364
537
|
htmlInput: {
|
|
365
|
-
maxLength:
|
|
538
|
+
maxLength: CONTACT_NAME_PART_MAX
|
|
366
539
|
}
|
|
367
540
|
},
|
|
368
|
-
helperText: record.canonicalName ? `Your own name for this person. Blank shows the name they gave: ${record.canonicalName}.` : 'Your own name for this person.',
|
|
369
541
|
fullWidth: true
|
|
370
542
|
})
|
|
371
543
|
}),
|
|
@@ -376,38 +548,37 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
376
548
|
},
|
|
377
549
|
children: /*#__PURE__*/ _jsx(TextField, {
|
|
378
550
|
size: "small",
|
|
379
|
-
label: "
|
|
380
|
-
value:
|
|
381
|
-
onChange: (event)=>change(
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
551
|
+
label: "Last name",
|
|
552
|
+
value: lastName,
|
|
553
|
+
onChange: (event)=>change(setLastName, event.target.value),
|
|
554
|
+
slotProps: {
|
|
555
|
+
htmlInput: {
|
|
556
|
+
maxLength: CONTACT_NAME_PART_MAX
|
|
557
|
+
}
|
|
558
|
+
},
|
|
559
|
+
fullWidth: true
|
|
560
|
+
})
|
|
561
|
+
}),
|
|
562
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
563
|
+
size: {
|
|
564
|
+
xs: 12,
|
|
565
|
+
sm: 6
|
|
566
|
+
},
|
|
567
|
+
children: /*#__PURE__*/ _jsx(TextField, {
|
|
568
|
+
size: "small",
|
|
569
|
+
label: "Name",
|
|
570
|
+
value: composedName || nameOverride,
|
|
571
|
+
onChange: (event)=>change(setNameOverride, event.target.value),
|
|
385
572
|
slotProps: {
|
|
573
|
+
htmlInput: {
|
|
574
|
+
maxLength: 120
|
|
575
|
+
},
|
|
386
576
|
input: {
|
|
387
|
-
|
|
388
|
-
* Click-to-call (AGL-2661), off what is IN the box rather
|
|
389
|
-
* than off the saved value: the number on screen is the one
|
|
390
|
-
* a reader means to ring, and `crmTelHref` withholds the
|
|
391
|
-
* link from anything half-typed.
|
|
392
|
-
*/ endAdornment: telHref ? /*#__PURE__*/ _jsx(InputAdornment, {
|
|
393
|
-
position: "end",
|
|
394
|
-
children: /*#__PURE__*/ _jsx(Tooltip, {
|
|
395
|
-
title: `Call ${phone.trim()}`,
|
|
396
|
-
children: /*#__PURE__*/ _jsx(IconButton, {
|
|
397
|
-
component: "a",
|
|
398
|
-
href: telHref,
|
|
399
|
-
size: "small",
|
|
400
|
-
edge: "end",
|
|
401
|
-
"aria-label": `Call ${phone.trim()}`,
|
|
402
|
-
children: /*#__PURE__*/ _jsx(MdiIcon, {
|
|
403
|
-
path: mdiPhoneOutline.path,
|
|
404
|
-
size: 0.8
|
|
405
|
-
})
|
|
406
|
-
})
|
|
407
|
-
})
|
|
408
|
-
}) : null
|
|
577
|
+
readOnly: Boolean(composedName)
|
|
409
578
|
}
|
|
410
|
-
}
|
|
579
|
+
},
|
|
580
|
+
helperText: composedName ? 'Made of the first and last name.' : record.canonicalName ? `Your own name for this person. Blank shows the name they gave: ${record.canonicalName}.` : 'Your own name for this person.',
|
|
581
|
+
fullWidth: true
|
|
411
582
|
})
|
|
412
583
|
}),
|
|
413
584
|
/*#__PURE__*/ _jsx(Grid, {
|
|
@@ -433,11 +604,17 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
433
604
|
xs: 12,
|
|
434
605
|
sm: 6
|
|
435
606
|
},
|
|
436
|
-
children: /*#__PURE__*/ _jsx(
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
onChange: (
|
|
607
|
+
children: /*#__PURE__*/ _jsx(TextField, {
|
|
608
|
+
size: "small",
|
|
609
|
+
label: "Department",
|
|
610
|
+
value: department,
|
|
611
|
+
onChange: (event)=>change(setDepartment, event.target.value),
|
|
612
|
+
slotProps: {
|
|
613
|
+
htmlInput: {
|
|
614
|
+
maxLength: 120
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
fullWidth: true
|
|
441
618
|
})
|
|
442
619
|
}),
|
|
443
620
|
/*#__PURE__*/ _jsx(Grid, {
|
|
@@ -464,6 +641,18 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
464
641
|
helperText: suiteLocked ? crmSuiteLockedReason() : undefined
|
|
465
642
|
})
|
|
466
643
|
}),
|
|
644
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
645
|
+
size: {
|
|
646
|
+
xs: 12,
|
|
647
|
+
sm: 6
|
|
648
|
+
},
|
|
649
|
+
children: /*#__PURE__*/ _jsx(LeadSourceSelect, {
|
|
650
|
+
picklist: leadSources.picklist,
|
|
651
|
+
value: leadSource,
|
|
652
|
+
stored: record.leadSource,
|
|
653
|
+
onChange: (value)=>change(setLeadSource, value)
|
|
654
|
+
})
|
|
655
|
+
}),
|
|
467
656
|
/*#__PURE__*/ _jsx(Grid, {
|
|
468
657
|
size: {
|
|
469
658
|
xs: 12,
|
|
@@ -535,6 +724,31 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
535
724
|
fullWidth: true
|
|
536
725
|
})
|
|
537
726
|
}),
|
|
727
|
+
/*#__PURE__*/ _jsx(SectionHeading, {
|
|
728
|
+
children: 'Phones'
|
|
729
|
+
}),
|
|
730
|
+
PHONE_FIELDS.filter((field)=>field !== 'assistantPhone').map(phoneField),
|
|
731
|
+
/*#__PURE__*/ _jsxs(Grid, {
|
|
732
|
+
size: {
|
|
733
|
+
xs: 12,
|
|
734
|
+
sm: 6
|
|
735
|
+
},
|
|
736
|
+
children: [
|
|
737
|
+
/*#__PURE__*/ _jsx(FormControlLabel, {
|
|
738
|
+
control: /*#__PURE__*/ _jsx(Checkbox, {
|
|
739
|
+
checked: doNotCall,
|
|
740
|
+
onChange: (event)=>change(setDoNotCall, event.target.checked)
|
|
741
|
+
}),
|
|
742
|
+
label: "Do not call"
|
|
743
|
+
}),
|
|
744
|
+
/*#__PURE__*/ _jsx(FormHelperText, {
|
|
745
|
+
children: 'They asked not to be phoned. Every number still dials; the Call button says so.'
|
|
746
|
+
})
|
|
747
|
+
]
|
|
748
|
+
}),
|
|
749
|
+
/*#__PURE__*/ _jsx(SectionHeading, {
|
|
750
|
+
children: 'Addresses'
|
|
751
|
+
}),
|
|
538
752
|
/*#__PURE__*/ _jsx(Grid, {
|
|
539
753
|
size: {
|
|
540
754
|
xs: 12
|
|
@@ -544,7 +758,7 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
544
758
|
children: [
|
|
545
759
|
/*#__PURE__*/ _jsx(Typography, {
|
|
546
760
|
variant: "subtitle2",
|
|
547
|
-
children: '
|
|
761
|
+
children: 'Mailing address'
|
|
548
762
|
}),
|
|
549
763
|
/*#__PURE__*/ _jsx(ContactAddressFields, {
|
|
550
764
|
value: address,
|
|
@@ -553,6 +767,82 @@ import { LeadSourceSelect } from "./lead-source-select.js";
|
|
|
553
767
|
]
|
|
554
768
|
})
|
|
555
769
|
}),
|
|
770
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
771
|
+
size: {
|
|
772
|
+
xs: 12
|
|
773
|
+
},
|
|
774
|
+
children: /*#__PURE__*/ _jsxs(Stack, {
|
|
775
|
+
spacing: 1,
|
|
776
|
+
children: [
|
|
777
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
778
|
+
variant: "subtitle2",
|
|
779
|
+
children: 'Other address'
|
|
780
|
+
}),
|
|
781
|
+
/*#__PURE__*/ _jsx(ContactAddressFields, {
|
|
782
|
+
value: otherAddress,
|
|
783
|
+
onChange: (value)=>change(setOtherAddress, value)
|
|
784
|
+
})
|
|
785
|
+
]
|
|
786
|
+
})
|
|
787
|
+
}),
|
|
788
|
+
/*#__PURE__*/ _jsx(SectionHeading, {
|
|
789
|
+
children: 'Additional information'
|
|
790
|
+
}),
|
|
791
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
792
|
+
size: {
|
|
793
|
+
xs: 12,
|
|
794
|
+
sm: 6
|
|
795
|
+
},
|
|
796
|
+
children: /*#__PURE__*/ _jsx(TextField, {
|
|
797
|
+
size: "small",
|
|
798
|
+
type: "date",
|
|
799
|
+
label: "Birthdate",
|
|
800
|
+
value: birthdate,
|
|
801
|
+
onChange: (event)=>change(setBirthdate, event.target.value),
|
|
802
|
+
error: Boolean(birthdateError),
|
|
803
|
+
helperText: birthdateError || undefined,
|
|
804
|
+
slotProps: {
|
|
805
|
+
inputLabel: {
|
|
806
|
+
shrink: true
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
fullWidth: true
|
|
810
|
+
})
|
|
811
|
+
}),
|
|
812
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
813
|
+
size: {
|
|
814
|
+
xs: 12,
|
|
815
|
+
sm: 6
|
|
816
|
+
},
|
|
817
|
+
children: /*#__PURE__*/ _jsx(ContactReportsToField, {
|
|
818
|
+
hostId: hostId,
|
|
819
|
+
org: org,
|
|
820
|
+
contactId: record.$id,
|
|
821
|
+
groupId: consentGroup.groupId,
|
|
822
|
+
value: reportsTo,
|
|
823
|
+
onChange: (value)=>change(setReportsTo, value),
|
|
824
|
+
disabled: saving
|
|
825
|
+
})
|
|
826
|
+
}),
|
|
827
|
+
/*#__PURE__*/ _jsx(Grid, {
|
|
828
|
+
size: {
|
|
829
|
+
xs: 12,
|
|
830
|
+
sm: 6
|
|
831
|
+
},
|
|
832
|
+
children: /*#__PURE__*/ _jsx(TextField, {
|
|
833
|
+
size: "small",
|
|
834
|
+
label: "Assistant",
|
|
835
|
+
value: assistantName,
|
|
836
|
+
onChange: (event)=>change(setAssistantName, event.target.value),
|
|
837
|
+
slotProps: {
|
|
838
|
+
htmlInput: {
|
|
839
|
+
maxLength: 120
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
fullWidth: true
|
|
843
|
+
})
|
|
844
|
+
}),
|
|
845
|
+
phoneField('assistantPhone'),
|
|
556
846
|
/*#__PURE__*/ _jsx(Grid, {
|
|
557
847
|
size: {
|
|
558
848
|
xs: 12
|