@aglyn/plugins-crm 1.0.0-beta.221 → 1.0.0-beta.223
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/package.json +13 -13
- package/src/lib/components/activity-list.js +12 -5
- package/src/lib/components/activity-list.js.map +1 -1
- package/src/lib/components/companies-bulk-bar.d.ts +1 -4
- package/src/lib/components/companies-bulk-bar.js +7 -20
- package/src/lib/components/companies-bulk-bar.js.map +1 -1
- package/src/lib/components/companies-section.d.ts +3 -3
- package/src/lib/components/companies-section.js +149 -46
- package/src/lib/components/companies-section.js.map +1 -1
- package/src/lib/components/company-edit-drawer.js +281 -20
- package/src/lib/components/company-edit-drawer.js.map +1 -1
- package/src/lib/components/company-properties-card.js +99 -8
- package/src/lib/components/company-properties-card.js.map +1 -1
- package/src/lib/components/contact-detail-page.js +3 -1
- package/src/lib/components/contact-detail-page.js.map +1 -1
- package/src/lib/components/contact-merge-dialog.js +33 -10
- package/src/lib/components/contact-merge-dialog.js.map +1 -1
- package/src/lib/components/contact-properties-card.d.ts +0 -69
- package/src/lib/components/contact-properties-card.js +350 -60
- package/src/lib/components/contact-properties-card.js.map +1 -1
- package/src/lib/components/contact-reports-to-field.d.ts +46 -0
- package/src/lib/components/contact-reports-to-field.js +67 -0
- package/src/lib/components/contact-reports-to-field.js.map +1 -0
- package/src/lib/components/contacts-bulk-bar.d.ts +1 -8
- package/src/lib/components/contacts-bulk-bar.js +7 -19
- package/src/lib/components/contacts-bulk-bar.js.map +1 -1
- package/src/lib/components/contacts-section.js +46 -33
- package/src/lib/components/contacts-section.js.map +1 -1
- package/src/lib/components/crm-call-actions.d.ts +10 -0
- package/src/lib/components/crm-call-actions.js +26 -9
- package/src/lib/components/crm-call-actions.js.map +1 -1
- package/src/lib/components/crm-next-activity-column.js +1 -1
- package/src/lib/components/crm-next-activity-column.js.map +1 -1
- package/src/lib/components/crm-record-picker.d.ts +15 -0
- package/src/lib/components/crm-record-picker.js +16 -10
- package/src/lib/components/crm-record-picker.js.map +1 -1
- package/src/lib/components/crm-transfer-buttons.d.ts +54 -0
- package/src/lib/components/crm-transfer-buttons.js +167 -0
- package/src/lib/components/crm-transfer-buttons.js.map +1 -0
- package/src/lib/components/deal-contact-roles-card.d.ts +46 -0
- package/src/lib/components/deal-contact-roles-card.js +368 -0
- package/src/lib/components/deal-contact-roles-card.js.map +1 -0
- package/src/lib/components/deal-detail-page.d.ts +3 -2
- package/src/lib/components/deal-detail-page.js +25 -6
- package/src/lib/components/deal-detail-page.js.map +1 -1
- package/src/lib/components/deal-edit-drawer.d.ts +10 -0
- package/src/lib/components/deal-edit-drawer.js +219 -10
- package/src/lib/components/deal-edit-drawer.js.map +1 -1
- package/src/lib/components/deal-properties-card.d.ts +7 -0
- package/src/lib/components/deal-properties-card.js +34 -3
- package/src/lib/components/deal-properties-card.js.map +1 -1
- package/src/lib/components/deal-stage-card.d.ts +4 -0
- package/src/lib/components/deal-stage-card.js +10 -2
- package/src/lib/components/deal-stage-card.js.map +1 -1
- package/src/lib/components/deals-bulk-bar.d.ts +0 -3
- package/src/lib/components/deals-bulk-bar.js +7 -20
- package/src/lib/components/deals-bulk-bar.js.map +1 -1
- package/src/lib/components/deals-section.d.ts +3 -3
- package/src/lib/components/deals-section.js +123 -63
- package/src/lib/components/deals-section.js.map +1 -1
- package/src/lib/components/fields-section.js +31 -17
- package/src/lib/components/fields-section.js.map +1 -1
- package/src/lib/components/lead-convert-dialog.d.ts +4 -0
- package/src/lib/components/lead-convert-dialog.js +23 -1
- package/src/lib/components/lead-convert-dialog.js.map +1 -1
- package/src/lib/components/lead-detail-page.js +8 -2
- package/src/lib/components/lead-detail-page.js.map +1 -1
- package/src/lib/components/lead-profile-fields.d.ts +71 -0
- package/src/lib/components/lead-profile-fields.js +386 -0
- package/src/lib/components/lead-profile-fields.js.map +1 -0
- package/src/lib/components/lead-properties-card.d.ts +2 -1
- package/src/lib/components/lead-properties-card.js +85 -176
- package/src/lib/components/lead-properties-card.js.map +1 -1
- package/src/lib/components/lead-source-select.d.ts +4 -23
- package/src/lib/components/lead-source-select.js +9 -73
- package/src/lib/components/lead-source-select.js.map +1 -1
- package/src/lib/components/lead-status-chip.d.ts +9 -3
- package/src/lib/components/lead-status-chip.js +8 -4
- package/src/lib/components/lead-status-chip.js.map +1 -1
- package/src/lib/components/lead-status-options.d.ts +20 -0
- package/src/lib/components/lead-status-options.js +51 -0
- package/src/lib/components/lead-status-options.js.map +1 -0
- package/src/lib/components/lead-unqualify-dialog.d.ts +5 -0
- package/src/lib/components/lead-unqualify-dialog.js +50 -18
- package/src/lib/components/lead-unqualify-dialog.js.map +1 -1
- package/src/lib/components/leads-bulk-bar.d.ts +0 -3
- package/src/lib/components/leads-bulk-bar.js +29 -29
- package/src/lib/components/leads-bulk-bar.js.map +1 -1
- package/src/lib/components/leads-section.js +120 -68
- package/src/lib/components/leads-section.js.map +1 -1
- package/src/lib/components/linked-deals-card.d.ts +4 -0
- package/src/lib/components/linked-deals-card.js +47 -3
- package/src/lib/components/linked-deals-card.js.map +1 -1
- package/src/lib/components/log-activity-dialog.js +43 -3
- package/src/lib/components/log-activity-dialog.js.map +1 -1
- package/src/lib/components/new-contact-drawer.d.ts +8 -0
- package/src/lib/components/new-contact-drawer.js +108 -6
- package/src/lib/components/new-contact-drawer.js.map +1 -1
- package/src/lib/components/new-lead-drawer.d.ts +9 -2
- package/src/lib/components/new-lead-drawer.js +88 -121
- package/src/lib/components/new-lead-drawer.js.map +1 -1
- package/src/lib/components/picklist-select.d.ts +36 -0
- package/src/lib/components/picklist-select.js +114 -0
- package/src/lib/components/picklist-select.js.map +1 -0
- package/src/lib/components/picklist-values-card.d.ts +34 -0
- package/src/lib/components/{lead-source-values-card.js → picklist-values-card.js} +241 -58
- package/src/lib/components/picklist-values-card.js.map +1 -0
- package/src/lib/components/pipeline-stages-dialog.d.ts +7 -0
- package/src/lib/components/pipeline-stages-dialog.js +26 -4
- package/src/lib/components/pipeline-stages-dialog.js.map +1 -1
- package/src/lib/components/pipelines-dialog.js +15 -6
- package/src/lib/components/pipelines-dialog.js.map +1 -1
- package/src/lib/components/recent-activity-feed.js +20 -5
- package/src/lib/components/recent-activity-feed.js.map +1 -1
- package/src/lib/components/recipes-card.js +4 -2
- package/src/lib/components/recipes-card.js.map +1 -1
- package/src/lib/components/record-tasks-card.js +15 -8
- package/src/lib/components/record-tasks-card.js.map +1 -1
- package/src/lib/components/reports/forecast-card.d.ts +6 -0
- package/src/lib/components/reports/forecast-card.js +101 -3
- package/src/lib/components/reports/forecast-card.js.map +1 -1
- package/src/lib/components/reports/lead-funnel-card.d.ts +12 -0
- package/src/lib/components/reports/lead-funnel-card.js +9 -5
- package/src/lib/components/reports/lead-funnel-card.js.map +1 -1
- package/src/lib/components/reports/lead-source-card.d.ts +23 -0
- package/src/lib/components/reports/lead-source-card.js +318 -0
- package/src/lib/components/reports/lead-source-card.js.map +1 -0
- package/src/lib/components/reports/pipeline-card.js +2 -1
- package/src/lib/components/reports/pipeline-card.js.map +1 -1
- package/src/lib/components/reports/report-export.js +1 -1
- package/src/lib/components/reports/report-export.js.map +1 -1
- package/src/lib/components/reports-section.js +8 -0
- package/src/lib/components/reports-section.js.map +1 -1
- package/src/lib/components/sharing-rule-drawer.d.ts +5 -0
- package/src/lib/components/sharing-rule-drawer.js +108 -19
- package/src/lib/components/sharing-rule-drawer.js.map +1 -1
- package/src/lib/components/sharing-rules-card.js +11 -3
- package/src/lib/components/sharing-rules-card.js.map +1 -1
- package/src/lib/components/task-cells.d.ts +9 -1
- package/src/lib/components/task-cells.js +9 -4
- package/src/lib/components/task-cells.js.map +1 -1
- package/src/lib/components/task-edit-drawer.js +111 -43
- package/src/lib/components/task-edit-drawer.js.map +1 -1
- package/src/lib/components/tasks-bulk-bar.d.ts +0 -3
- package/src/lib/components/tasks-bulk-bar.js +7 -20
- package/src/lib/components/tasks-bulk-bar.js.map +1 -1
- package/src/lib/components/tasks-calendar.d.ts +3 -0
- package/src/lib/components/tasks-calendar.js +8 -1
- package/src/lib/components/tasks-calendar.js.map +1 -1
- package/src/lib/components/tasks-section.d.ts +3 -3
- package/src/lib/components/tasks-section.js +58 -43
- package/src/lib/components/tasks-section.js.map +1 -1
- package/src/lib/constants/api-routes.d.ts +2 -9
- package/src/lib/constants/api-routes.js +1 -7
- package/src/lib/constants/api-routes.js.map +1 -1
- package/src/lib/constants/bundle-common.d.ts +6 -0
- package/src/lib/constants/bundle-common.js +11 -0
- package/src/lib/constants/bundle-common.js.map +1 -1
- package/src/lib/constants/company-filters.d.ts +14 -0
- package/src/lib/constants/company-filters.js +51 -1
- package/src/lib/constants/company-filters.js.map +1 -1
- package/src/lib/constants/contact-filters.d.ts +2 -0
- package/src/lib/constants/contact-filters.js +18 -1
- package/src/lib/constants/contact-filters.js.map +1 -1
- package/src/lib/constants/deal-filters.d.ts +22 -1
- package/src/lib/constants/deal-filters.js +67 -4
- package/src/lib/constants/deal-filters.js.map +1 -1
- package/src/lib/declarations.console-server.d.ts +3 -0
- package/src/lib/declarations.console-server.js +35 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/declarations.d.ts +26 -0
- package/src/lib/declarations.js +35 -0
- package/src/lib/declarations.js.map +1 -0
- package/src/lib/declarations.server.d.ts +11 -0
- package/src/lib/declarations.server.js +97 -1
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/hooks/use-company-picklists.d.ts +15 -0
- package/src/lib/hooks/use-company-picklists.js +55 -0
- package/src/lib/hooks/use-company-picklists.js.map +1 -0
- package/src/lib/hooks/use-crm-picklist.d.ts +25 -0
- package/src/lib/hooks/use-crm-picklist.js +53 -0
- package/src/lib/hooks/use-crm-picklist.js.map +1 -0
- package/src/lib/hooks/use-crm-record-names.d.ts +16 -0
- package/src/lib/hooks/use-crm-record-names.js +45 -19
- package/src/lib/hooks/use-crm-record-names.js.map +1 -1
- package/src/lib/hooks/use-crm-task-picklists.d.ts +11 -0
- package/src/lib/hooks/use-crm-task-picklists.js +45 -0
- package/src/lib/hooks/use-crm-task-picklists.js.map +1 -0
- package/src/lib/hooks/use-deals.d.ts +14 -0
- package/src/lib/hooks/use-deals.js +29 -0
- package/src/lib/hooks/use-deals.js.map +1 -1
- package/src/lib/hooks/use-lead-picklists.d.ts +14 -0
- package/src/lib/hooks/use-lead-picklists.js +46 -0
- package/src/lib/hooks/use-lead-picklists.js.map +1 -0
- package/src/lib/hooks/use-lead-source-picklist.d.ts +5 -19
- package/src/lib/hooks/use-lead-source-picklist.js +12 -22
- package/src/lib/hooks/use-lead-source-picklist.js.map +1 -1
- package/src/lib/hooks/use-lead-status-picklist.d.ts +9 -0
- package/src/lib/hooks/use-lead-status-picklist.js +40 -0
- package/src/lib/hooks/use-lead-status-picklist.js.map +1 -0
- package/src/lib/model/companies.d.ts +32 -3
- package/src/lib/model/companies.js +133 -16
- package/src/lib/model/companies.js.map +1 -1
- package/src/lib/model/contact-merge.d.ts +27 -3
- package/src/lib/model/contact-merge.js +81 -7
- package/src/lib/model/contact-merge.js.map +1 -1
- package/src/lib/model/contact-record.d.ts +17 -0
- package/src/lib/model/contact-record.js +17 -2
- package/src/lib/model/contact-record.js.map +1 -1
- package/src/lib/model/contact-update.d.ts +31 -2
- package/src/lib/model/contact-update.js +14 -0
- package/src/lib/model/contact-update.js.map +1 -1
- package/src/lib/model/crm-list-query.d.ts +5 -0
- package/src/lib/model/crm-list-query.js +8 -0
- package/src/lib/model/crm-list-query.js.map +1 -1
- package/src/lib/model/crm-next-activity.d.ts +107 -0
- package/src/lib/model/crm-next-activity.js +140 -0
- package/src/lib/model/crm-next-activity.js.map +1 -0
- package/src/lib/model/crm-recipes.d.ts +40 -0
- package/src/lib/model/crm-recipes.js +259 -0
- package/src/lib/model/crm-recipes.js.map +1 -0
- package/src/lib/model/crm-record-counts.d.ts +36 -0
- package/src/lib/model/crm-record-counts.js +54 -0
- package/src/lib/model/crm-record-counts.js.map +1 -0
- package/src/lib/model/crm-record-lists.d.ts +23 -0
- package/src/lib/model/crm-record-lists.js +161 -0
- package/src/lib/model/crm-record-lists.js.map +1 -0
- package/src/lib/model/crm-reports.d.ts +73 -3
- package/src/lib/model/crm-reports.js +120 -1
- package/src/lib/model/crm-reports.js.map +1 -1
- package/src/lib/model/crm-sharing.d.ts +21 -3
- package/src/lib/model/crm-sharing.js +27 -6
- package/src/lib/model/crm-sharing.js.map +1 -1
- package/src/lib/model/crm-task-reminders.d.ts +152 -0
- package/src/lib/model/crm-task-reminders.js +161 -0
- package/src/lib/model/crm-task-reminders.js.map +1 -0
- package/src/lib/model/deal-board-model.d.ts +8 -2
- package/src/lib/model/deal-board-model.js +15 -2
- package/src/lib/model/deal-board-model.js.map +1 -1
- package/src/lib/model/deal-contact-roles.d.ts +45 -0
- package/src/lib/model/deal-contact-roles.js +73 -0
- package/src/lib/model/deal-contact-roles.js.map +1 -0
- package/src/lib/model/deal-form-model.d.ts +56 -0
- package/src/lib/model/deal-form-model.js +79 -7
- package/src/lib/model/deal-form-model.js.map +1 -1
- package/src/lib/model/download-text-file.d.ts +23 -0
- package/src/lib/model/download-text-file.js +34 -0
- package/src/lib/model/download-text-file.js.map +1 -0
- package/src/lib/model/lead-filters.d.ts +36 -2
- package/src/lib/model/lead-filters.js +123 -2
- package/src/lib/model/lead-filters.js.map +1 -1
- package/src/lib/model/lead-source-direction.d.ts +38 -0
- package/src/lib/model/lead-source-direction.js +52 -0
- package/src/lib/model/lead-source-direction.js.map +1 -0
- package/src/lib/model/next-activity.d.ts +1 -1
- package/src/lib/model/next-activity.js.map +1 -1
- package/src/lib/model/picklist-values.d.ts +119 -0
- package/src/lib/model/picklist-values.js +256 -0
- package/src/lib/model/picklist-values.js.map +1 -0
- package/src/lib/model/record-facts-disclosed.d.ts +81 -0
- package/src/lib/model/record-facts-disclosed.js +281 -0
- package/src/lib/model/record-facts-disclosed.js.map +1 -0
- package/src/lib/model/record-facts.d.ts +215 -34
- package/src/lib/model/record-facts.js +307 -128
- package/src/lib/model/record-facts.js.map +1 -1
- package/src/lib/model/task-picklists.d.ts +52 -0
- package/src/lib/model/task-picklists.js +83 -0
- package/src/lib/model/task-picklists.js.map +1 -0
- package/src/lib/model/task-routes.d.ts +13 -0
- package/src/lib/model/task-routes.js +23 -4
- package/src/lib/model/task-routes.js.map +1 -1
- package/src/lib/plan-entitlements.js +6 -4
- package/src/lib/plan-entitlements.js.map +1 -1
- package/src/lib/plugin.js +17 -0
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/server/api-v1/contacts.js +220 -14
- package/src/lib/server/api-v1/contacts.js.map +1 -1
- package/src/lib/server/api-v1/crm-activities.js +14 -1
- package/src/lib/server/api-v1/crm-activities.js.map +1 -1
- package/src/lib/server/api-v1/crm-companies.js +123 -14
- package/src/lib/server/api-v1/crm-companies.js.map +1 -1
- package/src/lib/server/api-v1/crm-deals.js +291 -26
- package/src/lib/server/api-v1/crm-deals.js.map +1 -1
- package/src/lib/server/api-v1/crm-leads.js +144 -38
- package/src/lib/server/api-v1/crm-leads.js.map +1 -1
- package/src/lib/server/api-v1/crm-pipelines.d.ts +6 -0
- package/src/lib/server/api-v1/crm-pipelines.js +8 -2
- package/src/lib/server/api-v1/crm-pipelines.js.map +1 -1
- package/src/lib/server/api-v1/crm-tasks.js +78 -34
- package/src/lib/server/api-v1/crm-tasks.js.map +1 -1
- package/src/lib/server/api-v1/openapi.d.ts +0 -11
- package/src/lib/server/api-v1/openapi.js +171 -16
- package/src/lib/server/api-v1/openapi.js.map +1 -1
- package/src/lib/server/assign-contact-owner.d.ts +188 -0
- package/src/lib/server/assign-contact-owner.js +446 -0
- package/src/lib/server/assign-contact-owner.js.map +1 -0
- package/src/lib/server/associate-company-by-domain.d.ts +70 -0
- package/src/lib/server/associate-company-by-domain.js +153 -0
- package/src/lib/server/associate-company-by-domain.js.map +1 -0
- package/src/lib/server/automation-steps.d.ts +140 -0
- package/src/lib/server/automation-steps.js +669 -0
- package/src/lib/server/automation-steps.js.map +1 -0
- package/src/lib/server/capture-contact.d.ts +17 -0
- package/src/lib/server/capture-contact.js +95 -26
- package/src/lib/server/capture-contact.js.map +1 -1
- package/src/lib/server/capture-host-contact.d.ts +104 -0
- package/src/lib/server/capture-host-contact.js +151 -0
- package/src/lib/server/capture-host-contact.js.map +1 -0
- package/src/lib/server/company-children.d.ts +25 -0
- package/src/lib/server/company-children.js +42 -0
- package/src/lib/server/company-children.js.map +1 -0
- package/src/lib/server/company-delete.d.ts +18 -0
- package/src/lib/server/company-delete.js +44 -21
- package/src/lib/server/company-delete.js.map +1 -1
- package/src/lib/server/contact-email-history.js +21 -19
- package/src/lib/server/contact-email-history.js.map +1 -1
- package/src/lib/server/contact-remove.js +27 -2
- package/src/lib/server/contact-remove.js.map +1 -1
- package/src/lib/server/contact-reports-to.d.ts +61 -0
- package/src/lib/server/contact-reports-to.js +114 -0
- package/src/lib/server/contact-reports-to.js.map +1 -0
- package/src/lib/server/contact-update.d.ts +42 -1
- package/src/lib/server/contact-update.js +204 -23
- package/src/lib/server/contact-update.js.map +1 -1
- package/src/lib/server/convert-host-lead.d.ts +46 -1
- package/src/lib/server/convert-host-lead.js +173 -15
- package/src/lib/server/convert-host-lead.js.map +1 -1
- package/src/lib/server/convert-open-lead.js +12 -5
- package/src/lib/server/convert-open-lead.js.map +1 -1
- package/src/lib/server/crm-email-activity.d.ts +118 -0
- package/src/lib/server/crm-email-activity.js +148 -0
- package/src/lib/server/crm-email-activity.js.map +1 -0
- package/src/lib/server/crm-inbound-email.js +1 -1
- package/src/lib/server/crm-inbound-email.js.map +1 -1
- package/src/lib/server/crm-next-activity.d.ts +74 -0
- package/src/lib/server/crm-next-activity.js +194 -0
- package/src/lib/server/crm-next-activity.js.map +1 -0
- package/src/lib/server/crm-record-indexes.d.ts +45 -0
- package/src/lib/server/crm-record-indexes.js +78 -0
- package/src/lib/server/crm-record-indexes.js.map +1 -0
- package/src/lib/server/crm-sharing.d.ts +9 -1
- package/src/lib/server/crm-sharing.js +23 -3
- package/src/lib/server/crm-sharing.js.map +1 -1
- package/src/lib/server/deal-contact-roles.d.ts +27 -0
- package/src/lib/server/deal-contact-roles.js +89 -0
- package/src/lib/server/deal-contact-roles.js.map +1 -0
- package/src/lib/server/email-send.js +2 -1
- package/src/lib/server/email-send.js.map +1 -1
- package/src/lib/server/lead-convert.d.ts +5 -0
- package/src/lib/server/lead-convert.js +19 -3
- package/src/lib/server/lead-convert.js.map +1 -1
- package/src/lib/server/lead-create.d.ts +17 -2
- package/src/lib/server/lead-create.js +46 -14
- package/src/lib/server/lead-create.js.map +1 -1
- package/src/lib/server/lead-nurturing.d.ts +6 -0
- package/src/lib/server/lead-nurturing.js +57 -20
- package/src/lib/server/lead-nurturing.js.map +1 -1
- package/src/lib/server/lead-picklists.d.ts +35 -0
- package/src/lib/server/lead-picklists.js +52 -0
- package/src/lib/server/lead-picklists.js.map +1 -0
- package/src/lib/server/lead-source-picklist.d.ts +1 -13
- package/src/lib/server/lead-source-picklist.js +6 -33
- package/src/lib/server/lead-source-picklist.js.map +1 -1
- package/src/lib/server/merge-contacts.js +23 -5
- package/src/lib/server/merge-contacts.js.map +1 -1
- package/src/lib/server/next-activity-routes.js +2 -1
- package/src/lib/server/next-activity-routes.js.map +1 -1
- package/src/lib/server/person-eraser.d.ts +53 -0
- package/src/lib/server/person-eraser.js +149 -0
- package/src/lib/server/person-eraser.js.map +1 -0
- package/src/lib/server/person-records.d.ts +69 -0
- package/src/lib/server/person-records.js +317 -0
- package/src/lib/server/person-records.js.map +1 -0
- package/src/lib/server/person-refund.d.ts +97 -0
- package/src/lib/server/person-refund.js +221 -0
- package/src/lib/server/person-refund.js.map +1 -0
- package/src/lib/server/picklist-values.d.ts +21 -0
- package/src/lib/server/picklist-values.js +308 -0
- package/src/lib/server/picklist-values.js.map +1 -0
- package/src/lib/server/read-picklist.d.ts +44 -0
- package/src/lib/server/read-picklist.js +65 -0
- package/src/lib/server/read-picklist.js.map +1 -0
- package/src/lib/server/recipe-routes.js +22 -8
- package/src/lib/server/recipe-routes.js.map +1 -1
- package/src/lib/server/record-email-state.js +7 -1
- package/src/lib/server/record-email-state.js.map +1 -1
- package/src/lib/server/record-facts.d.ts +3 -0
- package/src/lib/server/record-facts.js +233 -31
- package/src/lib/server/record-facts.js.map +1 -1
- package/src/lib/server/record-origin.d.ts +27 -0
- package/src/lib/server/record-origin.js +104 -0
- package/src/lib/server/record-origin.js.map +1 -0
- package/src/lib/server/record-timeline.js +40 -3
- package/src/lib/server/record-timeline.js.map +1 -1
- package/src/lib/server/suite-gate.js +4 -3
- package/src/lib/server/suite-gate.js.map +1 -1
- package/src/lib/server/task-reminders-route.js +2 -1
- package/src/lib/server/task-reminders-route.js.map +1 -1
- package/src/lib/server/task-routes.js +33 -17
- package/src/lib/server/task-routes.js.map +1 -1
- package/src/lib/server-deal-stage.d.ts +5 -1
- package/src/lib/server-deal-stage.js +10 -5
- package/src/lib/server-deal-stage.js.map +1 -1
- package/src/lib/server.d.ts +8 -3
- package/src/lib/server.js +47 -43
- package/src/lib/server.js.map +1 -1
- package/src/lib/testing/memory-firestore.d.ts +55 -0
- package/src/lib/testing/memory-firestore.js +335 -0
- package/src/lib/testing/memory-firestore.js.map +1 -0
- package/src/lib/testing/stand-in-email-send-index.d.ts +25 -0
- package/src/lib/testing/stand-in-email-send-index.js +49 -0
- package/src/lib/testing/stand-in-email-send-index.js.map +1 -0
- package/src/lib/transfer/activities.d.ts +30 -0
- package/src/lib/transfer/activities.js +132 -0
- package/src/lib/transfer/activities.js.map +1 -0
- package/src/lib/transfer/aliases.d.ts +22 -0
- package/src/lib/transfer/aliases.js +1342 -0
- package/src/lib/transfer/aliases.js.map +1 -0
- package/src/lib/transfer/common.d.ts +222 -0
- package/src/lib/transfer/common.js +832 -0
- package/src/lib/transfer/common.js.map +1 -0
- package/src/lib/transfer/companies.d.ts +43 -0
- package/src/lib/transfer/companies.js +549 -0
- package/src/lib/transfer/companies.js.map +1 -0
- package/src/lib/transfer/contacts.d.ts +31 -0
- package/src/lib/transfer/contacts.js +727 -0
- package/src/lib/transfer/contacts.js.map +1 -0
- package/src/lib/transfer/deals.d.ts +66 -0
- package/src/lib/transfer/deals.js +698 -0
- package/src/lib/transfer/deals.js.map +1 -0
- package/src/lib/transfer/email-templates-package.d.ts +40 -0
- package/src/lib/transfer/email-templates-package.js +76 -0
- package/src/lib/transfer/email-templates-package.js.map +1 -0
- package/src/lib/transfer/email-templates-package.server.d.ts +32 -0
- package/src/lib/transfer/email-templates-package.server.js +176 -0
- package/src/lib/transfer/email-templates-package.server.js.map +1 -0
- package/src/lib/transfer/fields.d.ts +102 -0
- package/src/lib/transfer/fields.js +1755 -0
- package/src/lib/transfer/fields.js.map +1 -0
- package/src/lib/transfer/leads.d.ts +30 -0
- package/src/lib/transfer/leads.js +582 -0
- package/src/lib/transfer/leads.js.map +1 -0
- package/src/lib/transfer/pipelines.d.ts +21 -0
- package/src/lib/transfer/pipelines.js +172 -0
- package/src/lib/transfer/pipelines.js.map +1 -0
- package/src/lib/transfer/register.d.ts +47 -0
- package/src/lib/transfer/register.js +277 -0
- package/src/lib/transfer/register.js.map +1 -0
- package/src/lib/transfer/tasks.d.ts +30 -0
- package/src/lib/transfer/tasks.js +418 -0
- package/src/lib/transfer/tasks.js.map +1 -0
- package/src/lib/transfer/ui.d.ts +20 -0
- package/src/lib/transfer/ui.js +42 -0
- package/src/lib/transfer/ui.js.map +1 -0
- package/src/lib/components/company-import-drawer.d.ts +0 -42
- package/src/lib/components/company-import-drawer.js +0 -99
- package/src/lib/components/company-import-drawer.js.map +0 -1
- package/src/lib/components/contact-import-drawer.d.ts +0 -46
- package/src/lib/components/contact-import-drawer.js +0 -149
- package/src/lib/components/contact-import-drawer.js.map +0 -1
- package/src/lib/components/crm-export-all-button.d.ts +0 -39
- package/src/lib/components/crm-export-all-button.js +0 -98
- package/src/lib/components/crm-export-all-button.js.map +0 -1
- package/src/lib/components/csv-import-drawer.d.ts +0 -139
- package/src/lib/components/csv-import-drawer.js +0 -757
- package/src/lib/components/csv-import-drawer.js.map +0 -1
- package/src/lib/components/deal-import-drawer.d.ts +0 -24
- package/src/lib/components/deal-import-drawer.js +0 -83
- package/src/lib/components/deal-import-drawer.js.map +0 -1
- package/src/lib/components/lead-import-drawer.d.ts +0 -27
- package/src/lib/components/lead-import-drawer.js +0 -118
- package/src/lib/components/lead-import-drawer.js.map +0 -1
- package/src/lib/components/lead-source-values-card.d.ts +0 -27
- package/src/lib/components/lead-source-values-card.js.map +0 -1
- package/src/lib/components/task-import-drawer.d.ts +0 -24
- package/src/lib/components/task-import-drawer.js +0 -82
- package/src/lib/components/task-import-drawer.js.map +0 -1
- package/src/lib/model/companies-csv.d.ts +0 -36
- package/src/lib/model/companies-csv.js +0 -38
- package/src/lib/model/companies-csv.js.map +0 -1
- package/src/lib/model/contacts-csv.d.ts +0 -54
- package/src/lib/model/contacts-csv.js +0 -67
- package/src/lib/model/contacts-csv.js.map +0 -1
- package/src/lib/model/crm-company-import.d.ts +0 -154
- package/src/lib/model/crm-company-import.js +0 -331
- package/src/lib/model/crm-company-import.js.map +0 -1
- package/src/lib/model/crm-csv.d.ts +0 -239
- package/src/lib/model/crm-csv.js +0 -467
- package/src/lib/model/crm-csv.js.map +0 -1
- package/src/lib/model/crm-deal-import.d.ts +0 -112
- package/src/lib/model/crm-deal-import.js +0 -263
- package/src/lib/model/crm-deal-import.js.map +0 -1
- package/src/lib/model/crm-import.d.ts +0 -250
- package/src/lib/model/crm-import.js +0 -467
- package/src/lib/model/crm-import.js.map +0 -1
- package/src/lib/model/crm-lead-import.d.ts +0 -138
- package/src/lib/model/crm-lead-import.js +0 -446
- package/src/lib/model/crm-lead-import.js.map +0 -1
- package/src/lib/model/crm-task-import.d.ts +0 -94
- package/src/lib/model/crm-task-import.js +0 -275
- package/src/lib/model/crm-task-import.js.map +0 -1
- package/src/lib/model/deals-csv.d.ts +0 -32
- package/src/lib/model/deals-csv.js +0 -36
- package/src/lib/model/deals-csv.js.map +0 -1
- package/src/lib/model/import-column-shapes.d.ts +0 -36
- package/src/lib/model/import-column-shapes.js +0 -76
- package/src/lib/model/import-column-shapes.js.map +0 -1
- package/src/lib/model/lead-source-values.d.ts +0 -82
- package/src/lib/model/lead-source-values.js +0 -149
- package/src/lib/model/lead-source-values.js.map +0 -1
- package/src/lib/model/leads-csv.d.ts +0 -40
- package/src/lib/model/leads-csv.js +0 -40
- package/src/lib/model/leads-csv.js.map +0 -1
- package/src/lib/model/tasks-csv.d.ts +0 -28
- package/src/lib/model/tasks-csv.js +0 -28
- package/src/lib/model/tasks-csv.js.map +0 -1
- package/src/lib/server/companies-import.d.ts +0 -57
- package/src/lib/server/companies-import.js +0 -242
- package/src/lib/server/companies-import.js.map +0 -1
- package/src/lib/server/contacts-import.d.ts +0 -109
- package/src/lib/server/contacts-import.js +0 -393
- package/src/lib/server/contacts-import.js.map +0 -1
- package/src/lib/server/deals-import.d.ts +0 -76
- package/src/lib/server/deals-import.js +0 -248
- package/src/lib/server/deals-import.js.map +0 -1
- package/src/lib/server/export-route.d.ts +0 -60
- package/src/lib/server/export-route.js +0 -447
- package/src/lib/server/export-route.js.map +0 -1
- package/src/lib/server/import-context.d.ts +0 -87
- package/src/lib/server/import-context.js +0 -182
- package/src/lib/server/import-context.js.map +0 -1
- package/src/lib/server/lead-source-values.d.ts +0 -50
- package/src/lib/server/lead-source-values.js +0 -191
- package/src/lib/server/lead-source-values.js.map +0 -1
- package/src/lib/server/leads-import.d.ts +0 -84
- package/src/lib/server/leads-import.js +0 -367
- package/src/lib/server/leads-import.js.map +0 -1
- package/src/lib/server/tasks-import.d.ts +0 -54
- package/src/lib/server/tasks-import.js +0 -160
- package/src/lib/server/tasks-import.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/components/picklist-select.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport {\n type CrmPicklist,\n type CrmPicklistId,\n crmPicklistDefinition,\n crmPicklistOptions,\n groupPicklistOptions,\n type PicklistOption,\n} from '@aglyn/aglyn'\nimport { ListItemText, ListSubheader, MenuItem, TextField } from '@mui/material'\nimport { type ReactNode, useMemo } from 'react'\n\nexport interface CrmPicklistSelectProps {\n /** Which of the CRM's standard picklists the field is. */\n picklistId: CrmPicklistId\n picklist: CrmPicklist\n /** The label the record holds, or `''` for none. */\n value: string\n onChange: (label: string) => void\n /**\n * What the record held when the form opened. Kept in the menu while the\n * list no longer offers it — deactivated, or written before the list\n * held it — so the select shows what is stored until somebody changes it.\n */\n stored?: string\n disabled?: boolean\n helperText?: string\n error?: boolean\n /** The field's label, when a record names it otherwise than the list does. */\n label?: string\n}\n\n/** How a kept value that the list does not offer reads in the menu and the field. */\nfunction optionText(option: PicklistOption): string {\n if (option.inactive) return `${option.label} (inactive)`\n if (option.unlisted) return `${option.label} (not in the list)`\n return option.label\n}\n\n/**\n * A standard picklist's select (AGL-3298, AGL-3510): the org's active\n * values in the order the Fields page keeps them, a \"None\" to clear, and\n * the record's own value when the list would not otherwise show it —\n * marked, and selectable only as what it already is. A definition with\n * groups lists its values under a heading per group, in the definition's\n * order, with ungrouped values last.\n *\n * MUI's select `TextField`, the control every CRM form in this plugin uses\n * for a fixed choice, so it sizes, labels and disables like its neighbors.\n */\nexport function CrmPicklistSelect(props: CrmPicklistSelectProps) {\n const { picklistId, picklist, value, onChange, stored, disabled, helperText, error, label } = props\n const definition = crmPicklistDefinition(picklistId)\n const options = useMemo(\n () => crmPicklistOptions(picklist, stored || value),\n [picklist, stored, value],\n )\n const selected = options.find((option) => option.label === value)\n\n const item = (option: PicklistOption) => (\n <MenuItem\n key={option.label}\n value={option.label}\n // A kept value is shown so the record reads true, not offered as a\n // choice for a record that does not hold it already.\n disabled={(option.inactive || option.unlisted) && option.label !== (stored || value)}\n >\n <ListItemText\n primary={optionText(option)}\n slotProps={\n option.inactive || option.unlisted ? { primary: { color: 'text.secondary' } } : undefined\n }\n />\n </MenuItem>\n )\n // The menu's children flat — a Select reads its options from its direct\n // children, so the headings sit between them rather than around them.\n const groups = definition?.groups ?? []\n const items: ReactNode[] = groups.length\n ? groupPicklistOptions(options, groups).flatMap((section) => [\n <ListSubheader key={`group:${section.group?.id ?? ''}`}>\n {section.group?.label ?? 'No group'}\n </ListSubheader>,\n ...section.options.map(item),\n ])\n : options.map(item)\n\n return (\n <TextField\n select\n size=\"small\"\n label={label ?? definition?.label ?? 'Value'}\n value={selected ? value : ''}\n onChange={(event) => onChange(String(event.target.value))}\n disabled={disabled}\n helperText={helperText}\n error={error}\n fullWidth\n slotProps={{\n select: {\n displayEmpty: true,\n renderValue: (current) => {\n const option = options.find((entry) => entry.label === current)\n return option ? optionText(option) : 'None'\n },\n },\n inputLabel: { shrink: true },\n }}\n >\n <MenuItem value=\"\">\n <ListItemText primary=\"None\" slotProps={{ primary: { color: 'text.secondary' } }} />\n </MenuItem>\n {items}\n </TextField>\n )\n}\nCrmPicklistSelect.displayName = 'CrmPicklistSelect'\n\nexport default CrmPicklistSelect\n"],"names":["crmPicklistDefinition","crmPicklistOptions","groupPicklistOptions","ListItemText","ListSubheader","MenuItem","TextField","useMemo","optionText","option","inactive","label","unlisted","CrmPicklistSelect","props","picklistId","picklist","value","onChange","stored","disabled","helperText","error","definition","options","selected","find","item","primary","slotProps","color","undefined","groups","items","length","flatMap","section","group","id","map","select","size","event","String","target","fullWidth","displayEmpty","renderValue","current","entry","inputLabel","shrink","displayName"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD;;AAEA,SAGEA,qBAAqB,EACrBC,kBAAkB,EAClBC,oBAAoB,QAEf,eAAc;AACrB,SAASC,YAAY,EAAEC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,gBAAe;AAChF,SAAyBC,OAAO,QAAQ,QAAO;AAsB/C,mFAAmF,GACnF,SAASC,WAAWC,MAAsB;IACxC,IAAIA,OAAOC,QAAQ,EAAE,OAAO,GAAGD,OAAOE,KAAK,CAAC,WAAW,CAAC;IACxD,IAAIF,OAAOG,QAAQ,EAAE,OAAO,GAAGH,OAAOE,KAAK,CAAC,kBAAkB,CAAC;IAC/D,OAAOF,OAAOE,KAAK;AACrB;AAEA;;;;;;;;;;CAUC,GACD,OAAO,SAASE,kBAAkBC,KAA6B;cAyClDH;IAxCX,MAAM,EAAEI,UAAU,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,EAAEX,KAAK,EAAE,GAAGG;IAC9F,MAAMS,aAAavB,sBAAsBe;IACzC,MAAMS,UAAUjB,QACd,IAAMN,mBAAmBe,UAAUG,UAAUF,QAC7C;QAACD;QAAUG;QAAQF;KAAM;IAE3B,MAAMQ,WAAWD,QAAQE,IAAI,CAAC,CAACjB,SAAWA,OAAOE,KAAK,KAAKM;IAE3D,MAAMU,OAAO,CAAClB,uBACZ,KAACJ;YAECY,OAAOR,OAAOE,KAAK;YACnB,mEAAmE;YACnE,qDAAqD;YACrDS,UAAU,AAACX,CAAAA,OAAOC,QAAQ,IAAID,OAAOG,QAAQ,AAAD,KAAMH,OAAOE,KAAK,KAAMQ,CAAAA,UAAUF,KAAI;sBAElF,cAAA,KAACd;gBACCyB,SAASpB,WAAWC;gBACpBoB,WACEpB,OAAOC,QAAQ,IAAID,OAAOG,QAAQ,GAAG;oBAAEgB,SAAS;wBAAEE,OAAO;oBAAiB;gBAAE,IAAIC;;WAT/EtB,OAAOE,KAAK;IAcrB,wEAAwE;IACxE,sEAAsE;IACtE,MAAMqB,iBAAST,8BAAAA,WAAYS,MAAM,mBAAI,EAAE;IACvC,MAAMC,QAAqBD,OAAOE,MAAM,GACpChC,qBAAqBsB,SAASQ,QAAQG,OAAO,CAAC,CAACC;;YAE1CA,gBAD0BA;eAD4B;0BACzD,KAAChC;mCACEgC,iBAAAA,QAAQC,KAAK,qBAAbD,eAAezB,KAAK,mBAAI;eADP,CAAC,MAAM,YAAEyB,kBAAAA,QAAQC,KAAK,qBAAbD,gBAAeE,EAAE,oBAAI,IAAI;eAGnDF,QAAQZ,OAAO,CAACe,GAAG,CAACZ;SACxB;SACDH,QAAQe,GAAG,CAACZ;IAEhB,qBACE,MAACrB;QACCkC,MAAM;QACNC,MAAK;QACL9B,KAAK,GAAEA,QAAAA,gBAAAA,QAASY,8BAAAA,WAAYZ,KAAK,YAA1BA,QAA8B;QACrCM,OAAOQ,WAAWR,QAAQ;QAC1BC,UAAU,CAACwB,QAAUxB,SAASyB,OAAOD,MAAME,MAAM,CAAC3B,KAAK;QACvDG,UAAUA;QACVC,YAAYA;QACZC,OAAOA;QACPuB,SAAS;QACThB,WAAW;YACTW,QAAQ;gBACNM,cAAc;gBACdC,aAAa,CAACC;oBACZ,MAAMvC,SAASe,QAAQE,IAAI,CAAC,CAACuB,QAAUA,MAAMtC,KAAK,KAAKqC;oBACvD,OAAOvC,SAASD,WAAWC,UAAU;gBACvC;YACF;YACAyC,YAAY;gBAAEC,QAAQ;YAAK;QAC7B;;0BAEA,KAAC9C;gBAASY,OAAM;0BACd,cAAA,KAACd;oBAAayB,SAAQ;oBAAOC,WAAW;wBAAED,SAAS;4BAAEE,OAAO;wBAAiB;oBAAE;;;YAEhFG;;;AAGP;AACApB,kBAAkBuC,WAAW,GAAG;AAEhC,eAAevC,kBAAiB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type CrmPicklistId } from '@aglyn/aglyn';
|
|
2
|
+
export interface PicklistValuesCardProps {
|
|
3
|
+
/** Which of the CRM's standard picklists this card manages. */
|
|
4
|
+
picklistId: CrmPicklistId;
|
|
5
|
+
/** The mounted site, or `null` at the organization level. */
|
|
6
|
+
hostId: string | null;
|
|
7
|
+
/** The org whose list this is; `null` while it settles. */
|
|
8
|
+
orgId: string | null;
|
|
9
|
+
/** The site a newly written list records as its definer — the Fields page's own. */
|
|
10
|
+
createHostId: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* ONE STANDARD PICKLIST'S VALUES (AGL-3298, AGL-3510) — Salesforce's
|
|
14
|
+
* picklist value set for a standard field, managed on the Fields tab of the
|
|
15
|
+
* object the field belongs to.
|
|
16
|
+
*
|
|
17
|
+
* Standard values are marked, and cannot be deleted — every org has them —
|
|
18
|
+
* but rename, reorder, regroup, deactivate and default are theirs as much
|
|
19
|
+
* as an added value's. Every move that touches only the LIST — add,
|
|
20
|
+
* reorder by drag or arrows, sort A–Z, activate, deactivate, group,
|
|
21
|
+
* default — is one client write of the whole document, guarded against a
|
|
22
|
+
* cached read like every seeded save on the Fields page. The two that
|
|
23
|
+
* change RECORDS — rename, and delete with a replacement — go to
|
|
24
|
+
* `crm/picklist-values`, which rewrites the list and every record the
|
|
25
|
+
* definition's targets name together; see that route.
|
|
26
|
+
*
|
|
27
|
+
* An org that has never edited the list reads the standard values, and the
|
|
28
|
+
* first move here writes them down as the org's own.
|
|
29
|
+
*/
|
|
30
|
+
export declare function PicklistValuesCard(props: PicklistValuesCardProps): import("react").JSX.Element;
|
|
31
|
+
export declare namespace PicklistValuesCard {
|
|
32
|
+
var displayName: string;
|
|
33
|
+
}
|
|
34
|
+
export default PicklistValuesCard;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/ 'use client';
|
|
17
17
|
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
-
import { CRM_COLLECTIONS,
|
|
19
|
+
import { CRM_COLLECTIONS, CRM_LEAD_TEXT_MAX, isStandardPicklistValueId, newResourceScopeFields, ORG_SCOPE_TOKEN } from "@aglyn/aglyn";
|
|
20
20
|
import { mdiArrowDown, mdiArrowUp, mdiDeleteOutline, mdiDragVertical, mdiEyeOffOutline, mdiEyeOutline, mdiPencilOutline, mdiStarOutline } from "@aglyn/shared-data-mdi";
|
|
21
21
|
import { MdiIcon, SrOnly } from "@aglyn/shared-ui-jsx";
|
|
22
22
|
import RowActionsMenu from "@aglyn/shared-ui-jsx/components/row-actions-menu.component";
|
|
@@ -27,44 +27,92 @@ import { useFirestore, useUser, writeGuardedBySeed } from "@aglyn/tenant-feature
|
|
|
27
27
|
import { Button, Chip, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, IconButton, MenuItem, Stack, TableBody, TableCell, TableHead, TableRow, TextField, Typography } from "@mui/material";
|
|
28
28
|
import { doc, serverTimestamp, setDoc } from "firebase/firestore";
|
|
29
29
|
import { useCallback, useState } from "react";
|
|
30
|
-
import {
|
|
31
|
-
import { addPicklistValue,
|
|
30
|
+
import { useCrmPicklist } from "../hooks/use-crm-picklist.js";
|
|
31
|
+
import { addPicklistValue, crmPicklistValuesRouteUrl, movePicklistValue, picklistAddableMeanings, picklistMeaningLabel, picklistReplacements, setPicklistDefault, setPicklistValueActive, setPicklistValueGroup, sortPicklistValues } from "../model/picklist-values.js";
|
|
32
32
|
import { crmTaskCallScope } from "../model/task-routes.js";
|
|
33
|
+
/** Each object's noun, singular and plural, for the card's sentences. */ const OBJECT_NOUNS = {
|
|
34
|
+
contact: [
|
|
35
|
+
'contact',
|
|
36
|
+
'contacts'
|
|
37
|
+
],
|
|
38
|
+
company: [
|
|
39
|
+
'company',
|
|
40
|
+
'companies'
|
|
41
|
+
],
|
|
42
|
+
deal: [
|
|
43
|
+
'deal',
|
|
44
|
+
'deals'
|
|
45
|
+
],
|
|
46
|
+
lead: [
|
|
47
|
+
'lead',
|
|
48
|
+
'leads'
|
|
49
|
+
],
|
|
50
|
+
task: [
|
|
51
|
+
'task',
|
|
52
|
+
'tasks'
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
/** "a", "a and b", "a, b and c". */ function sentenceList(words) {
|
|
56
|
+
var _words_;
|
|
57
|
+
return words.length < 2 ? (_words_ = words[0]) != null ? _words_ : '' : `${words.slice(0, -1).join(', ')} and ${words[words.length - 1]}`;
|
|
58
|
+
}
|
|
59
|
+
/** The objects whose records hold the field's label, in the definition's order. */ function targetObjects(definition) {
|
|
60
|
+
return [
|
|
61
|
+
...new Set(definition.targets.map((target)=>target.object))
|
|
62
|
+
];
|
|
63
|
+
}
|
|
33
64
|
/**
|
|
34
|
-
*
|
|
35
|
-
* managed
|
|
65
|
+
* ONE STANDARD PICKLIST'S VALUES (AGL-3298, AGL-3510) — Salesforce's
|
|
66
|
+
* picklist value set for a standard field, managed on the Fields tab of the
|
|
67
|
+
* object the field belongs to.
|
|
36
68
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* every
|
|
69
|
+
* Standard values are marked, and cannot be deleted — every org has them —
|
|
70
|
+
* but rename, reorder, regroup, deactivate and default are theirs as much
|
|
71
|
+
* as an added value's. Every move that touches only the LIST — add,
|
|
72
|
+
* reorder by drag or arrows, sort A–Z, activate, deactivate, group,
|
|
73
|
+
* default — is one client write of the whole document, guarded against a
|
|
74
|
+
* cached read like every seeded save on the Fields page. The two that
|
|
75
|
+
* change RECORDS — rename, and delete with a replacement — go to
|
|
76
|
+
* `crm/picklist-values`, which rewrites the list and every record the
|
|
77
|
+
* definition's targets name together; see that route.
|
|
43
78
|
*
|
|
44
|
-
* An org that has never edited
|
|
45
|
-
* first move here writes
|
|
46
|
-
*/ export function
|
|
47
|
-
var _ref;
|
|
48
|
-
const { hostId, orgId, createHostId } = props;
|
|
79
|
+
* An org that has never edited the list reads the standard values, and the
|
|
80
|
+
* first move here writes them down as the org's own.
|
|
81
|
+
*/ export function PicklistValuesCard(props) {
|
|
82
|
+
var _definition_groups, _definition_meanings, _ref;
|
|
83
|
+
const { picklistId, hostId, orgId, createHostId } = props;
|
|
49
84
|
const firestore = useFirestore();
|
|
50
85
|
const { data: user } = useUser();
|
|
51
86
|
const { enqueueSnackbar } = useSnackbar();
|
|
52
|
-
const { picklist, stored, ready, fromCache } =
|
|
87
|
+
const { definition, picklist, stored, ready, fromCache } = useCrmPicklist(picklistId, orgId);
|
|
53
88
|
const [busy, setBusy] = useState(false);
|
|
54
89
|
const [nameDialog, setNameDialog] = useState(null);
|
|
55
90
|
const [draftName, setDraftName] = useState('');
|
|
91
|
+
const [draftGroup, setDraftGroup] = useState('');
|
|
92
|
+
const [draftMeaning, setDraftMeaning] = useState('');
|
|
56
93
|
const [nameError, setNameError] = useState('');
|
|
57
94
|
const [deleting, setDeleting] = useState(null);
|
|
58
95
|
const [replaceWith, setReplaceWith] = useState('');
|
|
59
96
|
const [dragFrom, setDragFrom] = useState(null);
|
|
97
|
+
const groups = (_definition_groups = definition.groups) != null ? _definition_groups : [];
|
|
98
|
+
const meanings = (_definition_meanings = definition.meanings) != null ? _definition_meanings : [];
|
|
99
|
+
// An added value may not take a meaning only the platform sets (AGL-3512).
|
|
100
|
+
const addableMeanings = picklistAddableMeanings(definition);
|
|
101
|
+
const [noun, nouns] = OBJECT_NOUNS[definition.object];
|
|
102
|
+
const holders = targetObjects(definition).map((object)=>OBJECT_NOUNS[object]);
|
|
103
|
+
// A list of suggestions only — a task's subjects (AGL-3517) — that no record holds.
|
|
104
|
+
const suggestions = holders.length === 0;
|
|
105
|
+
const field = definition.label.toLowerCase();
|
|
106
|
+
const failed = `The ${definition.plural} could not be saved.`;
|
|
107
|
+
const isStandard = (value)=>isStandardPicklistValueId(definition, value.id);
|
|
60
108
|
/** Write the whole list — the list-only moves above. */ const save = useCallback(async (next, done)=>{
|
|
61
109
|
if (!orgId || busy) return;
|
|
62
110
|
setBusy(true);
|
|
63
111
|
try {
|
|
64
112
|
const verdict = await writeGuardedBySeed({
|
|
65
|
-
subject:
|
|
113
|
+
subject: `${field} list`,
|
|
66
114
|
fromCache
|
|
67
|
-
}, ()=>setDoc(doc(firestore, 'orgs', orgId, CRM_COLLECTIONS.picklists,
|
|
115
|
+
}, ()=>setDoc(doc(firestore, 'orgs', orgId, CRM_COLLECTIONS.picklists, picklistId), _extends({
|
|
68
116
|
values: next.values,
|
|
69
117
|
defaultValueId: next.defaultValueId,
|
|
70
118
|
updatedAt: serverTimestamp()
|
|
@@ -89,7 +137,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
89
137
|
});
|
|
90
138
|
} catch (error) {
|
|
91
139
|
console.error(error);
|
|
92
|
-
enqueueSnackbar(
|
|
140
|
+
enqueueSnackbar(failed, {
|
|
93
141
|
variant: 'error',
|
|
94
142
|
allowDuplicate: true
|
|
95
143
|
});
|
|
@@ -99,27 +147,32 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
99
147
|
}, [
|
|
100
148
|
orgId,
|
|
101
149
|
busy,
|
|
150
|
+
field,
|
|
102
151
|
fromCache,
|
|
103
152
|
firestore,
|
|
153
|
+
picklistId,
|
|
104
154
|
stored,
|
|
105
155
|
createHostId,
|
|
106
|
-
enqueueSnackbar
|
|
156
|
+
enqueueSnackbar,
|
|
157
|
+
failed
|
|
107
158
|
]);
|
|
108
159
|
/** A rename or a delete — the moves that change records too. */ const post = useCallback(async (request)=>{
|
|
109
160
|
const scope = crmTaskCallScope(hostId, orgId);
|
|
110
161
|
if (!scope || busy) return null;
|
|
111
162
|
setBusy(true);
|
|
112
163
|
try {
|
|
113
|
-
const response = await authorizedFetch(user,
|
|
164
|
+
const response = await authorizedFetch(user, crmPicklistValuesRouteUrl(), {
|
|
114
165
|
method: 'POST',
|
|
115
166
|
headers: {
|
|
116
167
|
'Content-Type': 'application/json'
|
|
117
168
|
},
|
|
118
|
-
body: JSON.stringify(_extends({}, request,
|
|
169
|
+
body: JSON.stringify(_extends({}, request, {
|
|
170
|
+
picklistId
|
|
171
|
+
}, scope))
|
|
119
172
|
});
|
|
120
173
|
const payload = await response.json().catch(()=>({}));
|
|
121
174
|
if (!response.ok) {
|
|
122
|
-
enqueueSnackbar(payload.error ||
|
|
175
|
+
enqueueSnackbar(payload.error || failed, {
|
|
123
176
|
variant: 'warning',
|
|
124
177
|
persist: false
|
|
125
178
|
});
|
|
@@ -128,7 +181,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
128
181
|
return payload;
|
|
129
182
|
} catch (error) {
|
|
130
183
|
console.error(error);
|
|
131
|
-
enqueueSnackbar(
|
|
184
|
+
enqueueSnackbar(failed, {
|
|
132
185
|
variant: 'error',
|
|
133
186
|
allowDuplicate: true
|
|
134
187
|
});
|
|
@@ -141,14 +194,27 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
141
194
|
orgId,
|
|
142
195
|
busy,
|
|
143
196
|
user,
|
|
144
|
-
|
|
197
|
+
picklistId,
|
|
198
|
+
enqueueSnackbar,
|
|
199
|
+
failed
|
|
145
200
|
]);
|
|
146
|
-
const moved = (result)=>{
|
|
147
|
-
const
|
|
148
|
-
|
|
201
|
+
/** " — 2 leads and 1 contact updated", or nothing when no record held the value. */ const moved = (result)=>{
|
|
202
|
+
const counts = targetObjects(definition).map((object)=>{
|
|
203
|
+
var _ref;
|
|
204
|
+
var _result_updated;
|
|
205
|
+
const count = (_ref = (_result_updated = result.updated) == null ? void 0 : _result_updated[object]) != null ? _ref : 0;
|
|
206
|
+
const [one, many] = OBJECT_NOUNS[object];
|
|
207
|
+
return {
|
|
208
|
+
count,
|
|
209
|
+
text: `${count.toLocaleString()} ${count === 1 ? one : many}`
|
|
210
|
+
};
|
|
211
|
+
});
|
|
212
|
+
return counts.some((entry)=>entry.count) ? ` — ${sentenceList(counts.map((entry)=>entry.text))} updated` : '';
|
|
149
213
|
};
|
|
150
214
|
const openAdd = ()=>{
|
|
151
215
|
setDraftName('');
|
|
216
|
+
setDraftGroup('');
|
|
217
|
+
setDraftMeaning('');
|
|
152
218
|
setNameError('');
|
|
153
219
|
setNameDialog({
|
|
154
220
|
mode: 'add'
|
|
@@ -165,7 +231,10 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
165
231
|
const submitName = async ()=>{
|
|
166
232
|
if (!nameDialog) return;
|
|
167
233
|
if (nameDialog.mode === 'add') {
|
|
168
|
-
const move = addPicklistValue(picklist, draftName
|
|
234
|
+
const move = addPicklistValue(definition, picklist, draftName, {
|
|
235
|
+
group: draftGroup || null,
|
|
236
|
+
meaning: draftMeaning || null
|
|
237
|
+
});
|
|
169
238
|
if (move.ok === false) return void setNameError(move.error);
|
|
170
239
|
setNameDialog(null);
|
|
171
240
|
await save(move.picklist, `“${draftName.trim()}” added`);
|
|
@@ -204,7 +273,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
204
273
|
const move = (from, to)=>void save(movePicklistValue(picklist, from, to), 'Order saved');
|
|
205
274
|
const rowActions = (value)=>{
|
|
206
275
|
const isDefault = picklist.defaultValueId === value.id;
|
|
207
|
-
|
|
276
|
+
const items = [
|
|
208
277
|
{
|
|
209
278
|
key: 'rename',
|
|
210
279
|
label: 'Rename',
|
|
@@ -224,7 +293,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
224
293
|
}),
|
|
225
294
|
disabled: busy || !isDefault && !value.active,
|
|
226
295
|
disabledReason: !value.active ? 'An inactive value cannot be the default' : undefined,
|
|
227
|
-
onClick: ()=>void save(setPicklistDefault(picklist, isDefault ? null : value.id), isDefault ? 'Default cleared' : `New
|
|
296
|
+
onClick: ()=>void save(setPicklistDefault(picklist, isDefault ? null : value.id), isDefault ? 'Default cleared' : `New ${nouns} start as “${value.label}”`)
|
|
228
297
|
},
|
|
229
298
|
{
|
|
230
299
|
key: 'active',
|
|
@@ -235,8 +304,11 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
235
304
|
}),
|
|
236
305
|
disabled: busy,
|
|
237
306
|
onClick: ()=>void save(setPicklistValueActive(picklist, value.id, !value.active), value.active ? `“${value.label}” deactivated` : `“${value.label}” activated`)
|
|
238
|
-
}
|
|
239
|
-
|
|
307
|
+
}
|
|
308
|
+
];
|
|
309
|
+
// A standard value is every organization's: it is deactivated, never deleted.
|
|
310
|
+
if (!isStandard(value)) {
|
|
311
|
+
items.push({
|
|
240
312
|
key: 'delete',
|
|
241
313
|
label: 'Delete…',
|
|
242
314
|
icon: /*#__PURE__*/ _jsx(MdiIcon, {
|
|
@@ -246,10 +318,13 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
246
318
|
destructive: true,
|
|
247
319
|
disabled: busy,
|
|
248
320
|
onClick: ()=>openDelete(value)
|
|
249
|
-
}
|
|
250
|
-
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
return items;
|
|
251
324
|
};
|
|
252
|
-
const replacements =
|
|
325
|
+
const replacements = deleting ? picklistReplacements(definition, picklist, deleting.id) : [];
|
|
326
|
+
const columns = 4 + (groups.length ? 1 : 0) + (meanings.length ? 1 : 0);
|
|
327
|
+
const heldBy = sentenceList(holders.map(([, many])=>many)).replace(/^./, (letter)=>letter.toUpperCase());
|
|
253
328
|
return /*#__PURE__*/ _jsxs(Stack, {
|
|
254
329
|
spacing: 1.5,
|
|
255
330
|
children: [
|
|
@@ -271,12 +346,12 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
271
346
|
children: [
|
|
272
347
|
/*#__PURE__*/ _jsx(Typography, {
|
|
273
348
|
variant: "subtitle1",
|
|
274
|
-
children:
|
|
349
|
+
children: `${definition.label} values`
|
|
275
350
|
}),
|
|
276
351
|
/*#__PURE__*/ _jsx(Typography, {
|
|
277
352
|
variant: "body2",
|
|
278
353
|
color: "text.secondary",
|
|
279
|
-
children: 'The choices in every
|
|
354
|
+
children: (suggestions ? `The suggestions every ${noun}’s ${definition.label} offers, in this order. ` + 'Any text may still be typed, and renaming or deleting a suggestion ' + `changes no ${noun}. ` : `The choices in every ${noun}’s ${definition.label} select, in this order. ` + (definition.restricted ? 'An import or an API write naming anything else is refused. ' : '') + 'A deactivated value stays on the records that hold it. ') + 'Standard values come with every organization and cannot be deleted; ' + 'add your own beside them.'
|
|
280
355
|
})
|
|
281
356
|
]
|
|
282
357
|
}),
|
|
@@ -306,7 +381,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
306
381
|
}),
|
|
307
382
|
!ready ? null : /*#__PURE__*/ _jsxs(ScrollTable, {
|
|
308
383
|
size: "small",
|
|
309
|
-
"aria-label":
|
|
384
|
+
"aria-label": `${definition.label} values`,
|
|
310
385
|
children: [
|
|
311
386
|
/*#__PURE__*/ _jsx(TableHead, {
|
|
312
387
|
children: /*#__PURE__*/ _jsxs(TableRow, {
|
|
@@ -320,6 +395,12 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
320
395
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
321
396
|
children: 'Value'
|
|
322
397
|
}),
|
|
398
|
+
groups.length ? /*#__PURE__*/ _jsx(TableCell, {
|
|
399
|
+
children: 'Group'
|
|
400
|
+
}) : null,
|
|
401
|
+
meanings.length ? /*#__PURE__*/ _jsx(TableCell, {
|
|
402
|
+
children: 'Means'
|
|
403
|
+
}) : null,
|
|
323
404
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
324
405
|
children: 'Status'
|
|
325
406
|
}),
|
|
@@ -333,15 +414,17 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
333
414
|
children: [
|
|
334
415
|
picklist.values.length === 0 ? /*#__PURE__*/ _jsx(TableRow, {
|
|
335
416
|
children: /*#__PURE__*/ _jsx(TableCell, {
|
|
336
|
-
colSpan:
|
|
417
|
+
colSpan: columns,
|
|
337
418
|
children: /*#__PURE__*/ _jsx(Typography, {
|
|
338
419
|
variant: "body2",
|
|
339
420
|
color: "text.secondary",
|
|
340
|
-
children:
|
|
421
|
+
children: `No values yet. Add one, and every ${noun} can be given it.`
|
|
341
422
|
})
|
|
342
423
|
})
|
|
343
424
|
}) : null,
|
|
344
|
-
picklist.values.map((value, index)
|
|
425
|
+
picklist.values.map((value, index)=>{
|
|
426
|
+
var _value_group;
|
|
427
|
+
return /*#__PURE__*/ _jsxs(TableRow, {
|
|
345
428
|
hover: true,
|
|
346
429
|
// Native drag and drop for a pointer; the arrows beside the
|
|
347
430
|
// handle are the same move for a keyboard or a touch screen.
|
|
@@ -415,12 +498,70 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
415
498
|
]
|
|
416
499
|
})
|
|
417
500
|
}),
|
|
501
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
502
|
+
children: /*#__PURE__*/ _jsxs(Stack, {
|
|
503
|
+
direction: "row",
|
|
504
|
+
spacing: 1,
|
|
505
|
+
sx: {
|
|
506
|
+
alignItems: 'center'
|
|
507
|
+
},
|
|
508
|
+
children: [
|
|
509
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
510
|
+
variant: "body2",
|
|
511
|
+
children: value.label
|
|
512
|
+
}),
|
|
513
|
+
isStandard(value) ? /*#__PURE__*/ _jsx(Chip, {
|
|
514
|
+
size: "small",
|
|
515
|
+
variant: "outlined",
|
|
516
|
+
label: "Standard"
|
|
517
|
+
}) : null
|
|
518
|
+
]
|
|
519
|
+
})
|
|
520
|
+
}),
|
|
521
|
+
groups.length ? /*#__PURE__*/ _jsx(TableCell, {
|
|
522
|
+
sx: {
|
|
523
|
+
minWidth: 150
|
|
524
|
+
},
|
|
525
|
+
children: /*#__PURE__*/ _jsxs(TextField, {
|
|
526
|
+
select: true,
|
|
527
|
+
size: "small",
|
|
528
|
+
variant: "standard",
|
|
529
|
+
value: (_value_group = value.group) != null ? _value_group : '',
|
|
530
|
+
disabled: busy || !orgId,
|
|
531
|
+
onChange: (event)=>{
|
|
532
|
+
var _groups_find;
|
|
533
|
+
const group = String(event.target.value) || null;
|
|
534
|
+
const name = (_groups_find = groups.find((entry)=>entry.id === group)) == null ? void 0 : _groups_find.label;
|
|
535
|
+
void save(setPicklistValueGroup(definition, picklist, value.id, group), name ? `“${value.label}” is ${name}` : `“${value.label}” has no group`);
|
|
536
|
+
},
|
|
537
|
+
fullWidth: true,
|
|
538
|
+
slotProps: {
|
|
539
|
+
select: {
|
|
540
|
+
displayEmpty: true,
|
|
541
|
+
'aria-label': `Group of ${value.label}`
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
children: [
|
|
545
|
+
/*#__PURE__*/ _jsx(MenuItem, {
|
|
546
|
+
value: "",
|
|
547
|
+
children: 'None'
|
|
548
|
+
}),
|
|
549
|
+
groups.map((group)=>/*#__PURE__*/ _jsx(MenuItem, {
|
|
550
|
+
value: group.id,
|
|
551
|
+
children: group.label
|
|
552
|
+
}, group.id))
|
|
553
|
+
]
|
|
554
|
+
})
|
|
555
|
+
}) : null,
|
|
556
|
+
meanings.length ? // What the value means to the CRM: fixed for a standard value, and
|
|
557
|
+
// chosen when an added one is made.
|
|
418
558
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
419
559
|
children: /*#__PURE__*/ _jsx(Typography, {
|
|
420
560
|
variant: "body2",
|
|
421
|
-
|
|
561
|
+
color: value.meaning ? 'text.primary' : 'text.secondary',
|
|
562
|
+
children: value.meaning ? picklistMeaningLabel(definition, value.meaning) : '—'
|
|
422
563
|
})
|
|
423
|
-
}),
|
|
564
|
+
}) : null,
|
|
424
565
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
425
566
|
children: /*#__PURE__*/ _jsxs(Stack, {
|
|
426
567
|
direction: "row",
|
|
@@ -461,7 +602,8 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
461
602
|
})
|
|
462
603
|
})
|
|
463
604
|
]
|
|
464
|
-
}, value.id)
|
|
605
|
+
}, value.id);
|
|
606
|
+
})
|
|
465
607
|
]
|
|
466
608
|
})
|
|
467
609
|
]
|
|
@@ -469,7 +611,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
469
611
|
ready && !stored ? /*#__PURE__*/ _jsx(Typography, {
|
|
470
612
|
variant: "caption",
|
|
471
613
|
color: "text.secondary",
|
|
472
|
-
children: '
|
|
614
|
+
children: 'These are the standard values. Your first change here makes the list your ' + 'organization’s own.'
|
|
473
615
|
}) : null,
|
|
474
616
|
/*#__PURE__*/ _jsxs(Dialog, {
|
|
475
617
|
open: nameDialog !== null,
|
|
@@ -478,7 +620,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
478
620
|
maxWidth: "xs",
|
|
479
621
|
children: [
|
|
480
622
|
/*#__PURE__*/ _jsx(DialogTitle, {
|
|
481
|
-
children: (nameDialog == null ? void 0 : nameDialog.mode) === 'rename' ? `Rename “${nameDialog.value.label}”` :
|
|
623
|
+
children: (nameDialog == null ? void 0 : nameDialog.mode) === 'rename' ? `Rename “${nameDialog.value.label}”` : `Add a ${field}`
|
|
482
624
|
}),
|
|
483
625
|
/*#__PURE__*/ _jsx(DialogContent, {
|
|
484
626
|
children: /*#__PURE__*/ _jsxs(Stack, {
|
|
@@ -487,9 +629,9 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
487
629
|
pt: 1
|
|
488
630
|
},
|
|
489
631
|
children: [
|
|
490
|
-
(nameDialog == null ? void 0 : nameDialog.mode) === 'rename' ? /*#__PURE__*/ _jsx(DialogContentText, {
|
|
632
|
+
(nameDialog == null ? void 0 : nameDialog.mode) === 'rename' && !suggestions ? /*#__PURE__*/ _jsx(DialogContentText, {
|
|
491
633
|
variant: "body2",
|
|
492
|
-
children:
|
|
634
|
+
children: `Every ${sentenceList(holders.map(([one])=>one))} holding this value ` + 'is updated to the new name.'
|
|
493
635
|
}) : null,
|
|
494
636
|
/*#__PURE__*/ _jsx(TextField, {
|
|
495
637
|
size: "small",
|
|
@@ -511,7 +653,48 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
511
653
|
},
|
|
512
654
|
autoFocus: true,
|
|
513
655
|
fullWidth: true
|
|
514
|
-
})
|
|
656
|
+
}),
|
|
657
|
+
(nameDialog == null ? void 0 : nameDialog.mode) === 'add' && groups.length ? /*#__PURE__*/ _jsxs(TextField, {
|
|
658
|
+
select: true,
|
|
659
|
+
size: "small",
|
|
660
|
+
label: "Group",
|
|
661
|
+
value: draftGroup,
|
|
662
|
+
onChange: (event)=>setDraftGroup(String(event.target.value)),
|
|
663
|
+
fullWidth: true,
|
|
664
|
+
slotProps: {
|
|
665
|
+
select: {
|
|
666
|
+
displayEmpty: true
|
|
667
|
+
},
|
|
668
|
+
inputLabel: {
|
|
669
|
+
shrink: true
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
children: [
|
|
673
|
+
/*#__PURE__*/ _jsx(MenuItem, {
|
|
674
|
+
value: "",
|
|
675
|
+
children: 'None'
|
|
676
|
+
}),
|
|
677
|
+
groups.map((group)=>/*#__PURE__*/ _jsx(MenuItem, {
|
|
678
|
+
value: group.id,
|
|
679
|
+
children: group.label
|
|
680
|
+
}, group.id))
|
|
681
|
+
]
|
|
682
|
+
}) : null,
|
|
683
|
+
(nameDialog == null ? void 0 : nameDialog.mode) === 'add' && meanings.length ? /*#__PURE__*/ _jsx(TextField, {
|
|
684
|
+
select: true,
|
|
685
|
+
size: "small",
|
|
686
|
+
label: "Means",
|
|
687
|
+
value: draftMeaning,
|
|
688
|
+
onChange: (event)=>{
|
|
689
|
+
setDraftMeaning(String(event.target.value));
|
|
690
|
+
setNameError('');
|
|
691
|
+
},
|
|
692
|
+
fullWidth: true,
|
|
693
|
+
children: addableMeanings.map((meaning)=>/*#__PURE__*/ _jsx(MenuItem, {
|
|
694
|
+
value: meaning,
|
|
695
|
+
children: picklistMeaningLabel(definition, meaning)
|
|
696
|
+
}, meaning))
|
|
697
|
+
}) : null
|
|
515
698
|
]
|
|
516
699
|
})
|
|
517
700
|
}),
|
|
@@ -549,9 +732,9 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
549
732
|
children: [
|
|
550
733
|
/*#__PURE__*/ _jsx(DialogContentText, {
|
|
551
734
|
variant: "body2",
|
|
552
|
-
children:
|
|
735
|
+
children: suggestions ? `The suggestion leaves the list for good. No ${noun} changes.` : `The value leaves the list for good. ${heldBy} that hold it ` + (meanings.length ? 'are moved to the value you pick here, which means the same. ' : 'are moved to the value you pick here, or cleared. ') + 'To keep it on those records instead, deactivate it.'
|
|
553
736
|
}),
|
|
554
|
-
/*#__PURE__*/ _jsxs(TextField, {
|
|
737
|
+
suggestions ? null : /*#__PURE__*/ _jsxs(TextField, {
|
|
555
738
|
select: true,
|
|
556
739
|
size: "small",
|
|
557
740
|
label: "Replace it on existing records with",
|
|
@@ -567,7 +750,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
567
750
|
}
|
|
568
751
|
},
|
|
569
752
|
children: [
|
|
570
|
-
/*#__PURE__*/ _jsx(MenuItem, {
|
|
753
|
+
meanings.length ? null : /*#__PURE__*/ _jsx(MenuItem, {
|
|
571
754
|
value: "",
|
|
572
755
|
children: 'None — clear it'
|
|
573
756
|
}),
|
|
@@ -589,7 +772,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
589
772
|
/*#__PURE__*/ _jsx(Button, {
|
|
590
773
|
variant: "contained",
|
|
591
774
|
color: "error",
|
|
592
|
-
disabled: busy,
|
|
775
|
+
disabled: busy || meanings.length > 0 && !replaceWith,
|
|
593
776
|
onClick: ()=>void submitDelete(),
|
|
594
777
|
children: 'Delete value'
|
|
595
778
|
})
|
|
@@ -600,7 +783,7 @@ import { crmTaskCallScope } from "../model/task-routes.js";
|
|
|
600
783
|
]
|
|
601
784
|
});
|
|
602
785
|
}
|
|
603
|
-
|
|
604
|
-
export default
|
|
786
|
+
PicklistValuesCard.displayName = 'PicklistValuesCard';
|
|
787
|
+
export default PicklistValuesCard;
|
|
605
788
|
|
|
606
|
-
//# sourceMappingURL=
|
|
789
|
+
//# sourceMappingURL=picklist-values-card.js.map
|