@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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
1
2
|
/**
|
|
2
3
|
* @license
|
|
3
4
|
* Copyright 2026 Aglyn LLC
|
|
@@ -13,39 +14,46 @@
|
|
|
13
14
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
15
|
* See the License for the specific language governing permissions and
|
|
15
16
|
* limitations under the License.
|
|
16
|
-
*/ import { CONTACT_LIFECYCLE_STAGE_LABELS, CONTACT_SOURCE_LABELS, CRM_ACTIVITY_KIND_LABELS, CRM_EMAIL_DELIVERY_STATE_LABELS,
|
|
17
|
-
import {
|
|
18
|
-
import { CONTACT_IMPORT_FIELD_LABELS, CONTACT_IMPORT_FIELDS } from "./crm-import.js";
|
|
19
|
-
import { DEAL_IMPORT_FIELD_LABELS, DEAL_IMPORT_FIELDS } from "./crm-deal-import.js";
|
|
20
|
-
import { LEAD_IMPORT_FIELD_LABELS, LEAD_IMPORT_FIELDS } from "./crm-lead-import.js";
|
|
17
|
+
*/ import { CONTACT_ALTERNATE_EMAILS_FIELD, CONTACT_LIFECYCLE_STAGE_LABELS, CONTACT_SOURCE_LABELS, CRM_ACTIVITY_KIND_LABELS, CRM_EMAIL_DELIVERY_STATE_LABELS, CRM_TASK_KIND_LABELS, contactDisplayName, crmLeadStatusLabel, CRM_FORECAST_CATEGORY_LABELS, crmActivityDirection, customImportTarget, DEAL_NEXT_STEP_MAX, dealContactRolesOf, dealForecastCategory, dealProbability, dealStageById, dealStageForecastCategory, fieldDefinitionObject, interactionsForGroup, isContactLifecycleStage, isCrmEmailDeliveryState, readContactFacet, readMarketingBasis } from "@aglyn/aglyn/server";
|
|
18
|
+
import { COMPANY_TRANSFER_FIELDS, CONTACT_TRANSFER_FIELDS, DEAL_TRANSFER_FIELDS, LEAD_TRANSFER_FIELDS } from "../transfer/fields.js";
|
|
21
19
|
/**
|
|
22
20
|
* WHAT THE CRM TELLS ANOTHER PLUGIN ABOUT ONE OF ITS RECORDS (AGL-2917).
|
|
23
21
|
*
|
|
24
22
|
* The facts a reader on the core's record-facts seam reports: one contact,
|
|
25
23
|
* company, deal or lead as a person on the team sees it, and the fields a
|
|
26
24
|
* spreadsheet import may fill. The server half reads the documents and
|
|
27
|
-
* applies who may see them (`server/record-facts.ts`); this half
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* deciding on one — can pass on.
|
|
25
|
+
* applies who may see them (`server/record-facts.ts`); this half shapes
|
|
26
|
+
* them, so the list below is the whole of what a caller — an assistant
|
|
27
|
+
* summarizing a record, an automation deciding on one — can pass on.
|
|
31
28
|
*
|
|
32
|
-
* ##
|
|
29
|
+
* ## The whole record (AGL-3520)
|
|
33
30
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
31
|
+
* These builders answer only for an organization with
|
|
32
|
+
* `release_crm_assist_whole_record` on; with it off, the readers answer
|
|
33
|
+
* `record-facts-disclosed.ts`, the fields the published pages promise.
|
|
34
|
+
* A record is reported as the CRM shows it: every standard field —
|
|
35
|
+
* Salesforce's included — with its email addresses, phone numbers, postal
|
|
36
|
+
* addresses, birthdate, assistant and reports-to; the labels of its
|
|
37
|
+
* picklists as the record holds them; its custom field values under their
|
|
38
|
+
* labels; its marketing consent; its notes, newest timeline entries and
|
|
39
|
+
* open tasks and deals. Text a person wrote is reported as written.
|
|
40
40
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
41
|
+
* ## What still never leaves
|
|
42
|
+
*
|
|
43
|
+
* No authentication token, no account identifier and no internal record
|
|
44
|
+
* id. A related record — the company a person works for, the contact a deal
|
|
45
|
+
* is with, the person someone reports to, a parent company, a campaign — is
|
|
46
|
+
* named by its name; a team member by their display name. The one id a
|
|
47
|
+
* caller is handed is a pipeline stage's, which a stage proposal must name.
|
|
48
|
+
* An import catalog carries field keys, labels and types, never a row of
|
|
49
|
+
* the file.
|
|
50
|
+
*
|
|
51
|
+
* ## Bounded
|
|
52
|
+
*
|
|
53
|
+
* Every list and every long text is cut — notes to
|
|
54
|
+
* {@link CRM_FACTS_NOTES_MAX}, a timeline entry to {@link CRM_FACTS_TEXT_MAX},
|
|
55
|
+
* at most {@link CRM_FACTS_CUSTOM_FIELDS_MAX} custom fields — so a record
|
|
56
|
+
* holding everything still fits the request a caller builds from it.
|
|
49
57
|
*
|
|
50
58
|
* ## Stable bytes
|
|
51
59
|
*
|
|
@@ -73,10 +81,13 @@ export function isCrmImportFactsCollection(value) {
|
|
|
73
81
|
/** Open tasks reported for a record. */ export const CRM_FACTS_TASKS_MAX = 8;
|
|
74
82
|
/** Deals reported for a contact or a company. */ export const CRM_FACTS_DEALS_MAX = 5;
|
|
75
83
|
/** Tags reported for a record. */ export const CRM_FACTS_TAGS_MAX = 10;
|
|
76
|
-
/** How much of a logged activity's text,
|
|
84
|
+
/** How much of a logged activity's text, a capture's summary, a task's notes or a custom value is reported. */ export const CRM_FACTS_TEXT_MAX = 280;
|
|
77
85
|
/** How much of a record's notes is reported. */ export const CRM_FACTS_NOTES_MAX = 600;
|
|
78
86
|
/** How long a name, a title or a subject may run. */ export const CRM_FACTS_LABEL_MAX = 120;
|
|
79
|
-
/** Custom fields an import catalog reports. */ export const CRM_FACTS_CUSTOM_FIELDS_MAX = 40;
|
|
87
|
+
/** Custom fields an import catalog, or a record, reports. */ export const CRM_FACTS_CUSTOM_FIELDS_MAX = 40;
|
|
88
|
+
/** Products a deal's facts list. */ export const CRM_FACTS_PRODUCTS_MAX = 20;
|
|
89
|
+
/** Email addresses and campaigns a record's facts list. */ export const CRM_FACTS_LIST_MAX = 10;
|
|
90
|
+
/** The contacts a deal's facts name — the committee, not the whole list. */ export const CRM_FACTS_CONTACT_ROLES_MAX = 10;
|
|
80
91
|
const DAY_MS = 86400000;
|
|
81
92
|
/** A value as trimmed, single-spaced text of at most `max` characters. */ export function crmFactText(value, max) {
|
|
82
93
|
if (typeof value !== 'string') return '';
|
|
@@ -102,26 +113,80 @@ const DAY_MS = 86400000;
|
|
|
102
113
|
const code = (typeof currency === 'string' && /^[a-z]{3}$/i.test(currency) ? currency : 'usd').toUpperCase();
|
|
103
114
|
return `${code} ${(cents / 100).toFixed(2)}`;
|
|
104
115
|
}
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
/** A postal address on one line, its parts in the order an envelope writes them; `''` for none. */ export function crmFactAddress(address) {
|
|
117
|
+
if (!address || typeof address !== 'object') return '';
|
|
118
|
+
const part = (value)=>crmFactText(value, CRM_FACTS_LABEL_MAX);
|
|
119
|
+
const cityLine = [
|
|
120
|
+
part(address.city),
|
|
121
|
+
[
|
|
122
|
+
part(address.state),
|
|
123
|
+
part(address.postalCode)
|
|
124
|
+
].filter(Boolean).join(' ')
|
|
125
|
+
].filter(Boolean).join(', ');
|
|
126
|
+
return [
|
|
127
|
+
part(address.line1),
|
|
128
|
+
part(address.line2),
|
|
129
|
+
cityLine,
|
|
130
|
+
part(address.country)
|
|
131
|
+
].filter(Boolean).join(', ');
|
|
132
|
+
}
|
|
133
|
+
/** A marketing basis as a sentence's worth: opted in (and since when), declined, or nothing recorded. */ export function crmFactConsent(record, group) {
|
|
134
|
+
if (!group) return '';
|
|
135
|
+
const consent = readMarketingBasis(record, group);
|
|
136
|
+
if (consent.basis === 'granted') {
|
|
137
|
+
const since = crmFactDay(consent.basisAtMs);
|
|
138
|
+
return since ? `opted in on ${since}` : 'opted in';
|
|
139
|
+
}
|
|
140
|
+
return consent.basis === 'declined' ? 'declined' : 'none recorded';
|
|
141
|
+
}
|
|
142
|
+
/** A custom value as text: a day for a date, yes or no for a checkbox. */ function customValueText(value, type) {
|
|
143
|
+
var _crmFactDay;
|
|
144
|
+
if (value === null || value === undefined || value === '') return '';
|
|
145
|
+
if (typeof value === 'boolean') return value ? 'yes' : 'no';
|
|
146
|
+
if (type === 'date') return (_crmFactDay = crmFactDay(typeof value === 'string' ? Date.parse(value) : value)) != null ? _crmFactDay : crmFactText(String(value), CRM_FACTS_TEXT_MAX);
|
|
147
|
+
if (typeof value === 'number') return Number.isFinite(value) ? String(value) : '';
|
|
148
|
+
return crmFactText(String(value), CRM_FACTS_TEXT_MAX);
|
|
149
|
+
}
|
|
110
150
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
151
|
+
* A record's custom values under their fields' labels, in the fields'
|
|
152
|
+
* order — the active fields of `object` first, then a value whose field was
|
|
153
|
+
* retired or never defined, under its key.
|
|
154
|
+
*/ export function crmCustomFacts(custom, object, definitions = []) {
|
|
155
|
+
if (!custom || typeof custom !== 'object' || Array.isArray(custom)) return [];
|
|
156
|
+
const values = custom;
|
|
157
|
+
const own = definitions.filter((field)=>field.key && fieldDefinitionObject(field) === object).sort((a, b)=>{
|
|
158
|
+
var _a_order, _b_order;
|
|
159
|
+
return Number(Boolean(a.retiredAt)) - Number(Boolean(b.retiredAt)) || Number((_a_order = a.order) != null ? _a_order : 0) - Number((_b_order = b.order) != null ? _b_order : 0) || String(a.key).localeCompare(String(b.key));
|
|
160
|
+
});
|
|
161
|
+
const facts = [];
|
|
162
|
+
const seen = new Set();
|
|
163
|
+
for (const field of own){
|
|
164
|
+
const key = String(field.key);
|
|
165
|
+
seen.add(key);
|
|
166
|
+
const value = customValueText(values[key], field.type);
|
|
167
|
+
if (value) facts.push({
|
|
168
|
+
label: crmFactText(field.label, CRM_FACTS_LABEL_MAX) || key,
|
|
169
|
+
value
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
for (const key of Object.keys(values).sort()){
|
|
173
|
+
if (seen.has(key)) continue;
|
|
174
|
+
const value = customValueText(values[key], undefined);
|
|
175
|
+
if (value) facts.push({
|
|
176
|
+
label: key,
|
|
177
|
+
value
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
return facts.slice(0, CRM_FACTS_CUSTOM_FIELDS_MAX);
|
|
121
181
|
}
|
|
122
182
|
function tagsOf(value) {
|
|
123
|
-
return Array.isArray(value) ? value.map((tag)=>
|
|
183
|
+
return Array.isArray(value) ? value.map((tag)=>crmFactText(tag, 40)).filter(Boolean).slice(0, CRM_FACTS_TAGS_MAX) : [];
|
|
124
184
|
}
|
|
185
|
+
const memberName = (names, uid)=>{
|
|
186
|
+
var _ref;
|
|
187
|
+
var _names_member;
|
|
188
|
+
return typeof uid === 'string' && uid ? crmFactText((_ref = names == null ? void 0 : (_names_member = names.member) == null ? void 0 : _names_member.call(names, uid)) != null ? _ref : '', CRM_FACTS_LABEL_MAX) : '';
|
|
189
|
+
};
|
|
125
190
|
/** A logged activity as a timeline entry. */ export function crmActivityFact(activity) {
|
|
126
191
|
var _activity_subject;
|
|
127
192
|
const on = crmFactDay(activity.atMs);
|
|
@@ -131,14 +196,17 @@ function tagsOf(value) {
|
|
|
131
196
|
on,
|
|
132
197
|
kind: CRM_ACTIVITY_KIND_LABELS[kind]
|
|
133
198
|
};
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
199
|
+
const direction = crmActivityDirection(kind, activity.direction);
|
|
200
|
+
if (direction) fact.direction = direction;
|
|
201
|
+
const from = crmFactText(activity.from, CRM_FACTS_LABEL_MAX);
|
|
202
|
+
if (from) fact.from = from;
|
|
203
|
+
const to = crmFactText(activity.to, CRM_FACTS_LABEL_MAX);
|
|
204
|
+
if (to) fact.to = to;
|
|
205
|
+
const subject = crmFactText((_activity_subject = activity.subject) != null ? _activity_subject : activity.threadSubject, CRM_FACTS_LABEL_MAX);
|
|
138
206
|
if (subject) fact.subject = subject;
|
|
139
|
-
const text =
|
|
207
|
+
const text = crmFactText(activity.body, CRM_FACTS_TEXT_MAX);
|
|
140
208
|
if (text) fact.text = text;
|
|
141
|
-
const outcome =
|
|
209
|
+
const outcome = crmFactText(activity.outcome, CRM_FACTS_LABEL_MAX);
|
|
142
210
|
if (outcome) fact.outcome = outcome;
|
|
143
211
|
if (kind === 'email' && isCrmEmailDeliveryState(activity.deliveryState)) {
|
|
144
212
|
fact.delivery = CRM_EMAIL_DELIVERY_STATE_LABELS[activity.deliveryState];
|
|
@@ -149,7 +217,7 @@ function tagsOf(value) {
|
|
|
149
217
|
const on = crmFactDay(interaction.atMs);
|
|
150
218
|
if (!on) return null;
|
|
151
219
|
const kind = interaction.type && CONTACT_SOURCE_LABELS[interaction.type] ? CONTACT_SOURCE_LABELS[interaction.type] : 'Capture';
|
|
152
|
-
const text =
|
|
220
|
+
const text = crmFactText(interaction.summary, CRM_FACTS_TEXT_MAX);
|
|
153
221
|
return text ? {
|
|
154
222
|
on,
|
|
155
223
|
kind,
|
|
@@ -173,7 +241,7 @@ function tagsOf(value) {
|
|
|
173
241
|
};
|
|
174
242
|
}).filter((entry)=>entry.fact !== null).sort((a, b)=>b.at - a.at || a.index - b.index).slice(0, CRM_FACTS_TIMELINE_MAX).map((entry)=>entry.fact);
|
|
175
243
|
}
|
|
176
|
-
/** The open tasks among `tasks`, soonest due first, undated last. */ export function crmOpenTaskFacts(tasks, nowMs) {
|
|
244
|
+
/** The open tasks among `tasks`, soonest due first, undated last. */ export function crmOpenTaskFacts(tasks, nowMs, names) {
|
|
177
245
|
return tasks.filter((task)=>task.status !== 'done' && crmFactText(task.title, CRM_FACTS_LABEL_MAX)).map((task, index)=>({
|
|
178
246
|
task,
|
|
179
247
|
index,
|
|
@@ -181,20 +249,31 @@ function tagsOf(value) {
|
|
|
181
249
|
})).sort((a, b)=>{
|
|
182
250
|
var _a_due, _b_due;
|
|
183
251
|
return ((_a_due = a.due) != null ? _a_due : Number.POSITIVE_INFINITY) - ((_b_due = b.due) != null ? _b_due : Number.POSITIVE_INFINITY) || a.index - b.index;
|
|
184
|
-
}).slice(0, CRM_FACTS_TASKS_MAX).map(({ task, due })=>
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
252
|
+
}).slice(0, CRM_FACTS_TASKS_MAX).map(({ task, due })=>{
|
|
253
|
+
const assignee = memberName(names, task.assigneeUid);
|
|
254
|
+
const notes = crmFactText(task.notes, CRM_FACTS_TEXT_MAX);
|
|
255
|
+
return _extends({
|
|
256
|
+
title: crmFactText(task.title, CRM_FACTS_LABEL_MAX),
|
|
257
|
+
kind: crmFactText(task.typeLabel, CRM_FACTS_LABEL_MAX) || (task.kind && CRM_TASK_KIND_LABELS[task.kind] ? CRM_TASK_KIND_LABELS[task.kind] : 'To-do'),
|
|
258
|
+
priority: task.priority === 'high' || task.priority === 'low' ? task.priority : 'normal'
|
|
259
|
+
}, crmFactText(task.statusLabel, CRM_FACTS_LABEL_MAX) ? {
|
|
260
|
+
status: crmFactText(task.statusLabel, CRM_FACTS_LABEL_MAX)
|
|
261
|
+
} : {}, {
|
|
188
262
|
due: due === null ? null : crmFactDay(due),
|
|
189
263
|
// Overdue by the UTC day: a task due today is not overdue until tomorrow.
|
|
190
264
|
overdue: due !== null && Math.floor(due / DAY_MS) < Math.floor(nowMs / DAY_MS)
|
|
191
|
-
}
|
|
265
|
+
}, assignee ? {
|
|
266
|
+
assignee
|
|
267
|
+
} : {}, notes ? {
|
|
268
|
+
notes
|
|
269
|
+
} : {});
|
|
270
|
+
});
|
|
192
271
|
}
|
|
193
272
|
/** One deal, with its stage named by the pipeline it is in. */ export function crmDealFact(deal, pipeline) {
|
|
194
273
|
var _deal_stageId;
|
|
195
274
|
const stage = dealStageById(pipeline != null ? pipeline : undefined, String((_deal_stageId = deal.stageId) != null ? _deal_stageId : ''));
|
|
196
275
|
return {
|
|
197
|
-
title:
|
|
276
|
+
title: crmFactText(deal.title, CRM_FACTS_LABEL_MAX),
|
|
198
277
|
stage: crmFactText(stage == null ? void 0 : stage.name, CRM_FACTS_LABEL_MAX),
|
|
199
278
|
status: deal.status === 'won' || deal.status === 'lost' ? deal.status : 'open',
|
|
200
279
|
amount: crmFactMoney(deal.amountCents, deal.currency),
|
|
@@ -214,21 +293,49 @@ function tagsOf(value) {
|
|
|
214
293
|
return crmDealFact(deal, pipelines.get(String((_deal_pipelineId = deal.pipelineId) != null ? _deal_pipelineId : '')));
|
|
215
294
|
});
|
|
216
295
|
}
|
|
296
|
+
const label = (value)=>crmFactText(value, CRM_FACTS_LABEL_MAX);
|
|
217
297
|
export function contactFacts(input) {
|
|
218
|
-
var _facet_sources;
|
|
219
|
-
const { row, group } = input;
|
|
298
|
+
var _facet_sources, _facet_phone;
|
|
299
|
+
const { row, group, names } = input;
|
|
220
300
|
const facet = readContactFacet(row, group.groupId);
|
|
221
301
|
const sources = Object.entries((_facet_sources = facet.sources) != null ? _facet_sources : {}).filter(([, on])=>on === true).map(([source])=>{
|
|
222
302
|
var _CONTACT_SOURCE_LABELS_source;
|
|
223
303
|
return (_CONTACT_SOURCE_LABELS_source = CONTACT_SOURCE_LABELS[source]) != null ? _CONTACT_SOURCE_LABELS_source : '';
|
|
224
304
|
}).filter(Boolean);
|
|
225
305
|
const interactions = interactionsForGroup(facet.interactions, group.hostIds);
|
|
306
|
+
const alternates = Array.isArray(row[CONTACT_ALTERNATE_EMAILS_FIELD]) ? row[CONTACT_ALTERNATE_EMAILS_FIELD] : [];
|
|
307
|
+
const emails = [
|
|
308
|
+
...new Set([
|
|
309
|
+
row['email'],
|
|
310
|
+
...alternates
|
|
311
|
+
].map(label).filter(Boolean))
|
|
312
|
+
].slice(0, CRM_FACTS_LIST_MAX);
|
|
226
313
|
return {
|
|
227
314
|
record: 'contact',
|
|
228
|
-
name:
|
|
229
|
-
|
|
230
|
-
|
|
315
|
+
name: label(contactDisplayName(row, group.groupId)),
|
|
316
|
+
salutation: label(facet.salutation),
|
|
317
|
+
firstName: label(facet.firstName),
|
|
318
|
+
lastName: label(facet.lastName),
|
|
319
|
+
emails,
|
|
320
|
+
phone: label((_facet_phone = facet.phone) != null ? _facet_phone : row['phone']),
|
|
321
|
+
mobilePhone: label(facet.mobilePhone),
|
|
322
|
+
homePhone: label(facet.homePhone),
|
|
323
|
+
otherPhone: label(facet.otherPhone),
|
|
324
|
+
fax: label(facet.fax),
|
|
325
|
+
jobTitle: label(facet.jobTitle),
|
|
326
|
+
department: label(facet.department),
|
|
327
|
+
birthdate: label(facet.birthdate),
|
|
328
|
+
assistant: label(facet.assistantName),
|
|
329
|
+
assistantPhone: label(facet.assistantPhone),
|
|
330
|
+
reportsTo: label(input.reportsToName),
|
|
331
|
+
mailingAddress: crmFactAddress(facet.address),
|
|
332
|
+
otherAddress: crmFactAddress(facet.otherAddress),
|
|
333
|
+
doNotCall: facet.doNotCall === true,
|
|
334
|
+
company: label(facet.companyName),
|
|
231
335
|
lifecycleStage: isContactLifecycleStage(facet.lifecycleStage) ? CONTACT_LIFECYCLE_STAGE_LABELS[facet.lifecycleStage] : '',
|
|
336
|
+
leadSource: label(facet.leadSource),
|
|
337
|
+
owner: memberName(names, facet.ownerUid),
|
|
338
|
+
marketingConsent: crmFactConsent(row, group),
|
|
232
339
|
tags: tagsOf(facet.tags),
|
|
233
340
|
sources: [
|
|
234
341
|
...new Set(sources)
|
|
@@ -237,7 +344,8 @@ export function contactFacts(input) {
|
|
|
237
344
|
lastPurchase: crmFactDay(facet.lastPurchaseAtMs),
|
|
238
345
|
since: crmFactDay(row['createdAt']),
|
|
239
346
|
lastEmailEngagement: crmFactDay(facet.lastEmailEngagementAtMs),
|
|
240
|
-
|
|
347
|
+
custom: crmCustomFacts(facet.custom, 'contact', names == null ? void 0 : names.customFields),
|
|
348
|
+
notes: crmFactText(facet.notes, CRM_FACTS_NOTES_MAX),
|
|
241
349
|
timeline: crmTimelineFacts([
|
|
242
350
|
...input.activities.map((activity)=>({
|
|
243
351
|
atMs: activity.atMs,
|
|
@@ -248,32 +356,50 @@ export function contactFacts(input) {
|
|
|
248
356
|
fact: crmInteractionFact(interaction)
|
|
249
357
|
}))
|
|
250
358
|
]),
|
|
251
|
-
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs),
|
|
359
|
+
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs, names),
|
|
252
360
|
deals: crmDealFacts(input.deals, input.pipelines)
|
|
253
361
|
};
|
|
254
362
|
}
|
|
255
363
|
export function companyFacts(input) {
|
|
256
|
-
const { company } = input;
|
|
364
|
+
const { company, names } = input;
|
|
257
365
|
return {
|
|
258
366
|
record: 'company',
|
|
259
|
-
name:
|
|
260
|
-
domain:
|
|
261
|
-
|
|
367
|
+
name: label(company.name),
|
|
368
|
+
domain: label(company.domain),
|
|
369
|
+
website: label(company.website),
|
|
370
|
+
phone: label(company.phone),
|
|
371
|
+
fax: label(company.fax),
|
|
372
|
+
industry: label(company.industry),
|
|
373
|
+
type: label(company.type),
|
|
374
|
+
rating: label(company.rating),
|
|
375
|
+
ownership: label(company.ownership),
|
|
376
|
+
accountSource: label(company.accountSource),
|
|
377
|
+
employees: typeof company.numberOfEmployees === 'number' && company.numberOfEmployees >= 0 ? Math.floor(company.numberOfEmployees) : null,
|
|
378
|
+
annualRevenue: crmFactMoney(company.annualRevenueCents, company.currency),
|
|
379
|
+
accountNumber: label(company.accountNumber),
|
|
380
|
+
site: label(company.site),
|
|
381
|
+
tickerSymbol: label(company.tickerSymbol),
|
|
382
|
+
sicCode: label(company.sicCode),
|
|
383
|
+
billingAddress: crmFactAddress(company.address),
|
|
384
|
+
shippingAddress: crmFactAddress(company.shippingAddress),
|
|
385
|
+
parentCompany: label(input.parentCompanyName),
|
|
386
|
+
owner: memberName(names, company.ownerUid),
|
|
262
387
|
tags: tagsOf(company.tags),
|
|
263
388
|
people: typeof company.contactsCount === 'number' && company.contactsCount > 0 ? Math.floor(company.contactsCount) : 0,
|
|
264
389
|
since: crmFactDay(company.createdAt),
|
|
265
|
-
|
|
390
|
+
custom: crmCustomFacts(company.custom, 'company', names == null ? void 0 : names.customFields),
|
|
391
|
+
notes: crmFactText(company.notes, CRM_FACTS_NOTES_MAX),
|
|
266
392
|
timeline: crmTimelineFacts(input.activities.map((activity)=>({
|
|
267
393
|
atMs: activity.atMs,
|
|
268
394
|
fact: crmActivityFact(activity)
|
|
269
395
|
}))),
|
|
270
|
-
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs),
|
|
396
|
+
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs, names),
|
|
271
397
|
deals: crmDealFacts(input.deals, input.pipelines)
|
|
272
398
|
};
|
|
273
399
|
}
|
|
274
400
|
export function dealFacts(input) {
|
|
275
|
-
var _ref, _deal_stageId;
|
|
276
|
-
const { deal, pipeline } = input;
|
|
401
|
+
var _ref, _deal_stageId, _deal_stageId1;
|
|
402
|
+
const { deal, pipeline, names } = input;
|
|
277
403
|
const summary = crmDealFact(deal, pipeline);
|
|
278
404
|
const stages = [
|
|
279
405
|
...(_ref = pipeline == null ? void 0 : pipeline.stages) != null ? _ref : []
|
|
@@ -283,33 +409,64 @@ export function dealFacts(input) {
|
|
|
283
409
|
}).map((stage)=>({
|
|
284
410
|
id: String(stage.id),
|
|
285
411
|
name: crmFactText(stage.name, CRM_FACTS_LABEL_MAX),
|
|
286
|
-
kind: stage.kind === 'won' || stage.kind === 'lost' ? stage.kind : 'open'
|
|
412
|
+
kind: stage.kind === 'won' || stage.kind === 'lost' ? stage.kind : 'open',
|
|
413
|
+
probability: Math.min(100, Math.max(0, Number(stage.probability) || 0)),
|
|
414
|
+
forecastCategory: CRM_FORECAST_CATEGORY_LABELS[dealStageForecastCategory(stage)]
|
|
287
415
|
}));
|
|
416
|
+
const stage = dealStageById(pipeline != null ? pipeline : undefined, String((_deal_stageId = deal.stageId) != null ? _deal_stageId : ''));
|
|
417
|
+
const products = (Array.isArray(deal.lineItems) ? deal.lineItems : []).slice(0, CRM_FACTS_PRODUCTS_MAX).map((item)=>{
|
|
418
|
+
var _ref;
|
|
419
|
+
return {
|
|
420
|
+
name: label(item == null ? void 0 : item.name),
|
|
421
|
+
quantity: Number(item == null ? void 0 : item.quantity) || 0,
|
|
422
|
+
unitAmount: crmFactMoney(item == null ? void 0 : item.unitAmountCents, (_ref = item == null ? void 0 : item.currency) != null ? _ref : deal.currency)
|
|
423
|
+
};
|
|
424
|
+
});
|
|
288
425
|
return {
|
|
289
426
|
record: 'deal',
|
|
290
427
|
title: summary.title,
|
|
291
428
|
pipeline: crmFactText(pipeline == null ? void 0 : pipeline.name, CRM_FACTS_LABEL_MAX),
|
|
292
429
|
stages,
|
|
293
|
-
stageId: String((
|
|
430
|
+
stageId: String((_deal_stageId1 = deal.stageId) != null ? _deal_stageId1 : ''),
|
|
294
431
|
stage: summary.stage,
|
|
295
432
|
status: summary.status,
|
|
296
433
|
amount: summary.amount,
|
|
297
434
|
expectedClose: summary.expectedClose,
|
|
298
435
|
inStageSince: crmFactDay(deal.stageChangedAtMs),
|
|
299
|
-
lostReason:
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
436
|
+
lostReason: label(deal.lostReason),
|
|
437
|
+
type: label(deal.type),
|
|
438
|
+
leadSource: label(deal.leadSource),
|
|
439
|
+
nextStep: crmFactText(deal.nextStep, DEAL_NEXT_STEP_MAX),
|
|
440
|
+
probability: dealProbability(deal, stage),
|
|
441
|
+
forecastCategory: CRM_FORECAST_CATEGORY_LABELS[dealForecastCategory(deal, stage)],
|
|
442
|
+
campaign: label(input.campaignName),
|
|
443
|
+
contact: label(deal.contactName),
|
|
444
|
+
contactRoles: dealContactRoleFacts(deal, input.contactNames),
|
|
445
|
+
company: label(deal.companyName),
|
|
446
|
+
owner: memberName(names, deal.ownerUid),
|
|
447
|
+
products,
|
|
303
448
|
since: crmFactDay(deal.createdAt),
|
|
304
|
-
|
|
449
|
+
custom: crmCustomFacts(deal.custom, 'deal', names == null ? void 0 : names.customFields),
|
|
450
|
+
notes: crmFactText(deal.notes, CRM_FACTS_NOTES_MAX),
|
|
305
451
|
timeline: crmTimelineFacts(input.activities.map((activity)=>({
|
|
306
452
|
atMs: activity.atMs,
|
|
307
453
|
fact: crmActivityFact(activity)
|
|
308
454
|
}))),
|
|
309
|
-
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs)
|
|
455
|
+
openTasks: crmOpenTaskFacts(input.tasks, input.nowMs, names)
|
|
310
456
|
};
|
|
311
457
|
}
|
|
312
|
-
/**
|
|
458
|
+
/**
|
|
459
|
+
* A deal's contact roles as facts (AGL-3521): the Primary first, each by the
|
|
460
|
+
* name the reader resolved — a contact the reader may not see, or could
|
|
461
|
+
* not read, is left out rather than named by id.
|
|
462
|
+
*/ export function dealContactRoleFacts(deal, names = new Map()) {
|
|
463
|
+
return dealContactRolesOf(deal).sort((a, b)=>Number(b.primary) - Number(a.primary)).filter((row)=>names.has(row.contactId)).slice(0, CRM_FACTS_CONTACT_ROLES_MAX).map((row)=>({
|
|
464
|
+
name: label(names.get(row.contactId)),
|
|
465
|
+
role: crmFactText(row.role, CRM_FACTS_LABEL_MAX),
|
|
466
|
+
primary: row.primary
|
|
467
|
+
}));
|
|
468
|
+
}
|
|
469
|
+
/** What a lead's capture surfaces are called, the lead history card's words. */ export function leadSourceFact(source) {
|
|
313
470
|
if (source === 'signup') return 'Sign-up';
|
|
314
471
|
if (source === 'booking') return 'Booking';
|
|
315
472
|
if (source === 'import') return CONTACT_SOURCE_LABELS.import;
|
|
@@ -317,15 +474,37 @@ export function dealFacts(input) {
|
|
|
317
474
|
return 'Other';
|
|
318
475
|
}
|
|
319
476
|
export function leadFacts(input) {
|
|
320
|
-
|
|
477
|
+
var _input_campaignNames, _input_tasks, _input_nowMs;
|
|
478
|
+
const { lead, leadStatuses, names } = input;
|
|
321
479
|
const rawSources = Array.isArray(lead['sources']) ? lead['sources'] : typeof lead['source'] === 'string' ? [
|
|
322
480
|
lead['source']
|
|
323
481
|
] : [];
|
|
324
482
|
const captures = Number(lead['submissionCount']);
|
|
325
483
|
return {
|
|
326
484
|
record: 'lead',
|
|
327
|
-
name:
|
|
328
|
-
|
|
485
|
+
name: label(lead['name']),
|
|
486
|
+
salutation: label(lead['salutation']),
|
|
487
|
+
firstName: label(lead['firstName']),
|
|
488
|
+
lastName: label(lead['lastName']),
|
|
489
|
+
email: label(lead['email']),
|
|
490
|
+
phone: label(lead['phone']),
|
|
491
|
+
mobilePhone: label(lead['mobilePhone']),
|
|
492
|
+
fax: label(lead['fax']),
|
|
493
|
+
website: label(lead['website']),
|
|
494
|
+
address: crmFactAddress(lead['address']),
|
|
495
|
+
company: label(lead['company']),
|
|
496
|
+
jobTitle: label(lead['jobTitle']),
|
|
497
|
+
leadSource: label(lead['leadSource']),
|
|
498
|
+
industry: label(lead['industry']),
|
|
499
|
+
rating: label(lead['rating']),
|
|
500
|
+
employees: typeof lead['numberOfEmployees'] === 'number' && lead['numberOfEmployees'] >= 0 ? Math.floor(lead['numberOfEmployees']) : null,
|
|
501
|
+
annualRevenue: crmFactMoney(lead['annualRevenueCents'], lead['currency']),
|
|
502
|
+
doNotCall: lead['doNotCall'] === true,
|
|
503
|
+
status: crmLeadStatusLabel(lead, leadStatuses),
|
|
504
|
+
owner: memberName(names, lead['ownerUid']),
|
|
505
|
+
campaigns: ((_input_campaignNames = input.campaignNames) != null ? _input_campaignNames : []).map(label).filter(Boolean).slice(0, CRM_FACTS_LIST_MAX),
|
|
506
|
+
marketingConsent: crmFactConsent(lead, input.group),
|
|
507
|
+
tags: tagsOf(lead['tags']),
|
|
329
508
|
sources: [
|
|
330
509
|
...new Set(rawSources.map((source)=>leadSourceFact(String(source))))
|
|
331
510
|
].sort(),
|
|
@@ -334,59 +513,59 @@ export function leadFacts(input) {
|
|
|
334
513
|
lastSeen: crmFactDay(lead['lastSeenAtMs']),
|
|
335
514
|
assigned: typeof lead['ownerUid'] === 'string' && lead['ownerUid'] !== '',
|
|
336
515
|
converted: typeof lead['convertedContactId'] === 'string' && lead['convertedContactId'] !== '',
|
|
337
|
-
unqualifiedReason:
|
|
338
|
-
|
|
516
|
+
unqualifiedReason: label(lead['unqualifiedReason']),
|
|
517
|
+
custom: crmCustomFacts(lead['custom'], 'lead', names == null ? void 0 : names.customFields),
|
|
518
|
+
notes: crmFactText(lead['notes'], CRM_FACTS_NOTES_MAX),
|
|
339
519
|
timeline: crmTimelineFacts(input.activities.map((activity)=>({
|
|
340
520
|
atMs: activity.atMs,
|
|
341
521
|
fact: crmActivityFact(activity)
|
|
342
|
-
})))
|
|
522
|
+
}))),
|
|
523
|
+
openTasks: crmOpenTaskFacts((_input_tasks = input.tasks) != null ? _input_tasks : [], (_input_nowMs = input.nowMs) != null ? _input_nowMs : Date.now(), names)
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
/** A column's kind, as the matcher is told it, for each transfer field type. */ const TRANSFER_TYPES = {
|
|
527
|
+
email: 'email',
|
|
528
|
+
phone: 'phone',
|
|
529
|
+
url: 'url',
|
|
530
|
+
number: 'number',
|
|
531
|
+
integer: 'number',
|
|
532
|
+
currency: 'number',
|
|
533
|
+
percent: 'number',
|
|
534
|
+
date: 'date',
|
|
535
|
+
datetime: 'date',
|
|
536
|
+
boolean: 'yes-no'
|
|
537
|
+
};
|
|
538
|
+
/** The fields a transfer catalog lets a file write, as the import facts list them. */ function transferImportFields(fields) {
|
|
539
|
+
var _ref;
|
|
540
|
+
var _writable_find;
|
|
541
|
+
const writable = fields.filter((field)=>!field.readOnly && !field.derived && !field.system);
|
|
542
|
+
return {
|
|
543
|
+
keys: writable.map((field)=>field.id),
|
|
544
|
+
labels: Object.fromEntries(writable.map((field)=>[
|
|
545
|
+
field.id,
|
|
546
|
+
field.label
|
|
547
|
+
])),
|
|
548
|
+
required: (_ref = (_writable_find = writable.find((field)=>field.required)) == null ? void 0 : _writable_find.id) != null ? _ref : '',
|
|
549
|
+
types: Object.fromEntries(writable.flatMap((field)=>TRANSFER_TYPES[field.type] ? [
|
|
550
|
+
[
|
|
551
|
+
field.id,
|
|
552
|
+
TRANSFER_TYPES[field.type]
|
|
553
|
+
]
|
|
554
|
+
] : []))
|
|
343
555
|
};
|
|
344
556
|
}
|
|
345
557
|
/** The standard fields of each import, with the type a column must hold for each. */ const STANDARD_IMPORT_FIELDS = {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
email: 'email',
|
|
352
|
-
phone: 'phone',
|
|
353
|
-
ownerEmail: 'email',
|
|
354
|
-
marketingConsent: 'yes-no'
|
|
355
|
-
}
|
|
356
|
-
},
|
|
357
|
-
companies: {
|
|
358
|
-
keys: COMPANY_IMPORT_FIELDS,
|
|
359
|
-
labels: COMPANY_IMPORT_FIELD_LABELS,
|
|
360
|
-
required: 'name',
|
|
361
|
-
types: {
|
|
362
|
-
phone: 'phone',
|
|
363
|
-
ownerEmail: 'email',
|
|
364
|
-
website: 'url'
|
|
365
|
-
}
|
|
366
|
-
},
|
|
367
|
-
deals: {
|
|
368
|
-
keys: DEAL_IMPORT_FIELDS,
|
|
369
|
-
labels: DEAL_IMPORT_FIELD_LABELS,
|
|
370
|
-
required: 'title',
|
|
371
|
-
types: {
|
|
372
|
-
amount: 'number',
|
|
373
|
-
ownerEmail: 'email',
|
|
374
|
-
expectedClose: 'date'
|
|
375
|
-
}
|
|
376
|
-
},
|
|
377
|
-
leads: {
|
|
378
|
-
keys: LEAD_IMPORT_FIELDS,
|
|
379
|
-
labels: LEAD_IMPORT_FIELD_LABELS,
|
|
380
|
-
required: 'email',
|
|
381
|
-
types: {
|
|
382
|
-
email: 'email',
|
|
383
|
-
ownerEmail: 'email'
|
|
384
|
-
}
|
|
385
|
-
}
|
|
558
|
+
// The transfer catalogs' own ids (AGL-3527): what the import wizard maps to.
|
|
559
|
+
contacts: transferImportFields(CONTACT_TRANSFER_FIELDS),
|
|
560
|
+
companies: transferImportFields(COMPANY_TRANSFER_FIELDS),
|
|
561
|
+
deals: transferImportFields(DEAL_TRANSFER_FIELDS),
|
|
562
|
+
leads: transferImportFields(LEAD_TRANSFER_FIELDS)
|
|
386
563
|
};
|
|
387
|
-
/** The object a collection's custom fields describe
|
|
564
|
+
/** The object a collection's custom fields describe. */ const CUSTOM_FIELD_OBJECT = {
|
|
388
565
|
contacts: 'contact',
|
|
389
|
-
companies: 'company'
|
|
566
|
+
companies: 'company',
|
|
567
|
+
deals: 'deal',
|
|
568
|
+
leads: 'lead'
|
|
390
569
|
};
|
|
391
570
|
const CUSTOM_FIELD_TYPES = {
|
|
392
571
|
number: 'number',
|