@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.
Files changed (541) hide show
  1. package/README.md +2 -1
  2. package/package.json +13 -13
  3. package/src/lib/components/activity-list.js +12 -5
  4. package/src/lib/components/activity-list.js.map +1 -1
  5. package/src/lib/components/companies-bulk-bar.d.ts +1 -4
  6. package/src/lib/components/companies-bulk-bar.js +7 -20
  7. package/src/lib/components/companies-bulk-bar.js.map +1 -1
  8. package/src/lib/components/companies-section.d.ts +3 -3
  9. package/src/lib/components/companies-section.js +149 -46
  10. package/src/lib/components/companies-section.js.map +1 -1
  11. package/src/lib/components/company-edit-drawer.js +281 -20
  12. package/src/lib/components/company-edit-drawer.js.map +1 -1
  13. package/src/lib/components/company-properties-card.js +99 -8
  14. package/src/lib/components/company-properties-card.js.map +1 -1
  15. package/src/lib/components/contact-detail-page.js +3 -1
  16. package/src/lib/components/contact-detail-page.js.map +1 -1
  17. package/src/lib/components/contact-merge-dialog.js +33 -10
  18. package/src/lib/components/contact-merge-dialog.js.map +1 -1
  19. package/src/lib/components/contact-properties-card.d.ts +0 -69
  20. package/src/lib/components/contact-properties-card.js +350 -60
  21. package/src/lib/components/contact-properties-card.js.map +1 -1
  22. package/src/lib/components/contact-reports-to-field.d.ts +46 -0
  23. package/src/lib/components/contact-reports-to-field.js +67 -0
  24. package/src/lib/components/contact-reports-to-field.js.map +1 -0
  25. package/src/lib/components/contacts-bulk-bar.d.ts +1 -8
  26. package/src/lib/components/contacts-bulk-bar.js +7 -19
  27. package/src/lib/components/contacts-bulk-bar.js.map +1 -1
  28. package/src/lib/components/contacts-section.js +46 -33
  29. package/src/lib/components/contacts-section.js.map +1 -1
  30. package/src/lib/components/crm-call-actions.d.ts +10 -0
  31. package/src/lib/components/crm-call-actions.js +26 -9
  32. package/src/lib/components/crm-call-actions.js.map +1 -1
  33. package/src/lib/components/crm-next-activity-column.js +1 -1
  34. package/src/lib/components/crm-next-activity-column.js.map +1 -1
  35. package/src/lib/components/crm-record-picker.d.ts +15 -0
  36. package/src/lib/components/crm-record-picker.js +16 -10
  37. package/src/lib/components/crm-record-picker.js.map +1 -1
  38. package/src/lib/components/crm-transfer-buttons.d.ts +54 -0
  39. package/src/lib/components/crm-transfer-buttons.js +167 -0
  40. package/src/lib/components/crm-transfer-buttons.js.map +1 -0
  41. package/src/lib/components/deal-contact-roles-card.d.ts +46 -0
  42. package/src/lib/components/deal-contact-roles-card.js +368 -0
  43. package/src/lib/components/deal-contact-roles-card.js.map +1 -0
  44. package/src/lib/components/deal-detail-page.d.ts +3 -2
  45. package/src/lib/components/deal-detail-page.js +25 -6
  46. package/src/lib/components/deal-detail-page.js.map +1 -1
  47. package/src/lib/components/deal-edit-drawer.d.ts +10 -0
  48. package/src/lib/components/deal-edit-drawer.js +219 -10
  49. package/src/lib/components/deal-edit-drawer.js.map +1 -1
  50. package/src/lib/components/deal-properties-card.d.ts +7 -0
  51. package/src/lib/components/deal-properties-card.js +34 -3
  52. package/src/lib/components/deal-properties-card.js.map +1 -1
  53. package/src/lib/components/deal-stage-card.d.ts +4 -0
  54. package/src/lib/components/deal-stage-card.js +10 -2
  55. package/src/lib/components/deal-stage-card.js.map +1 -1
  56. package/src/lib/components/deals-bulk-bar.d.ts +0 -3
  57. package/src/lib/components/deals-bulk-bar.js +7 -20
  58. package/src/lib/components/deals-bulk-bar.js.map +1 -1
  59. package/src/lib/components/deals-section.d.ts +3 -3
  60. package/src/lib/components/deals-section.js +123 -63
  61. package/src/lib/components/deals-section.js.map +1 -1
  62. package/src/lib/components/fields-section.js +31 -17
  63. package/src/lib/components/fields-section.js.map +1 -1
  64. package/src/lib/components/lead-convert-dialog.d.ts +4 -0
  65. package/src/lib/components/lead-convert-dialog.js +23 -1
  66. package/src/lib/components/lead-convert-dialog.js.map +1 -1
  67. package/src/lib/components/lead-detail-page.js +8 -2
  68. package/src/lib/components/lead-detail-page.js.map +1 -1
  69. package/src/lib/components/lead-profile-fields.d.ts +71 -0
  70. package/src/lib/components/lead-profile-fields.js +386 -0
  71. package/src/lib/components/lead-profile-fields.js.map +1 -0
  72. package/src/lib/components/lead-properties-card.d.ts +2 -1
  73. package/src/lib/components/lead-properties-card.js +85 -176
  74. package/src/lib/components/lead-properties-card.js.map +1 -1
  75. package/src/lib/components/lead-source-select.d.ts +4 -23
  76. package/src/lib/components/lead-source-select.js +9 -73
  77. package/src/lib/components/lead-source-select.js.map +1 -1
  78. package/src/lib/components/lead-status-chip.d.ts +9 -3
  79. package/src/lib/components/lead-status-chip.js +8 -4
  80. package/src/lib/components/lead-status-chip.js.map +1 -1
  81. package/src/lib/components/lead-status-options.d.ts +20 -0
  82. package/src/lib/components/lead-status-options.js +51 -0
  83. package/src/lib/components/lead-status-options.js.map +1 -0
  84. package/src/lib/components/lead-unqualify-dialog.d.ts +5 -0
  85. package/src/lib/components/lead-unqualify-dialog.js +50 -18
  86. package/src/lib/components/lead-unqualify-dialog.js.map +1 -1
  87. package/src/lib/components/leads-bulk-bar.d.ts +0 -3
  88. package/src/lib/components/leads-bulk-bar.js +29 -29
  89. package/src/lib/components/leads-bulk-bar.js.map +1 -1
  90. package/src/lib/components/leads-section.js +120 -68
  91. package/src/lib/components/leads-section.js.map +1 -1
  92. package/src/lib/components/linked-deals-card.d.ts +4 -0
  93. package/src/lib/components/linked-deals-card.js +47 -3
  94. package/src/lib/components/linked-deals-card.js.map +1 -1
  95. package/src/lib/components/log-activity-dialog.js +43 -3
  96. package/src/lib/components/log-activity-dialog.js.map +1 -1
  97. package/src/lib/components/new-contact-drawer.d.ts +8 -0
  98. package/src/lib/components/new-contact-drawer.js +108 -6
  99. package/src/lib/components/new-contact-drawer.js.map +1 -1
  100. package/src/lib/components/new-lead-drawer.d.ts +9 -2
  101. package/src/lib/components/new-lead-drawer.js +88 -121
  102. package/src/lib/components/new-lead-drawer.js.map +1 -1
  103. package/src/lib/components/picklist-select.d.ts +36 -0
  104. package/src/lib/components/picklist-select.js +114 -0
  105. package/src/lib/components/picklist-select.js.map +1 -0
  106. package/src/lib/components/picklist-values-card.d.ts +34 -0
  107. package/src/lib/components/{lead-source-values-card.js → picklist-values-card.js} +241 -58
  108. package/src/lib/components/picklist-values-card.js.map +1 -0
  109. package/src/lib/components/pipeline-stages-dialog.d.ts +7 -0
  110. package/src/lib/components/pipeline-stages-dialog.js +26 -4
  111. package/src/lib/components/pipeline-stages-dialog.js.map +1 -1
  112. package/src/lib/components/pipelines-dialog.js +15 -6
  113. package/src/lib/components/pipelines-dialog.js.map +1 -1
  114. package/src/lib/components/recent-activity-feed.js +20 -5
  115. package/src/lib/components/recent-activity-feed.js.map +1 -1
  116. package/src/lib/components/recipes-card.js +4 -2
  117. package/src/lib/components/recipes-card.js.map +1 -1
  118. package/src/lib/components/record-tasks-card.js +15 -8
  119. package/src/lib/components/record-tasks-card.js.map +1 -1
  120. package/src/lib/components/reports/forecast-card.d.ts +6 -0
  121. package/src/lib/components/reports/forecast-card.js +101 -3
  122. package/src/lib/components/reports/forecast-card.js.map +1 -1
  123. package/src/lib/components/reports/lead-funnel-card.d.ts +12 -0
  124. package/src/lib/components/reports/lead-funnel-card.js +9 -5
  125. package/src/lib/components/reports/lead-funnel-card.js.map +1 -1
  126. package/src/lib/components/reports/lead-source-card.d.ts +23 -0
  127. package/src/lib/components/reports/lead-source-card.js +318 -0
  128. package/src/lib/components/reports/lead-source-card.js.map +1 -0
  129. package/src/lib/components/reports/pipeline-card.js +2 -1
  130. package/src/lib/components/reports/pipeline-card.js.map +1 -1
  131. package/src/lib/components/reports/report-export.js +1 -1
  132. package/src/lib/components/reports/report-export.js.map +1 -1
  133. package/src/lib/components/reports-section.js +8 -0
  134. package/src/lib/components/reports-section.js.map +1 -1
  135. package/src/lib/components/sharing-rule-drawer.d.ts +5 -0
  136. package/src/lib/components/sharing-rule-drawer.js +108 -19
  137. package/src/lib/components/sharing-rule-drawer.js.map +1 -1
  138. package/src/lib/components/sharing-rules-card.js +11 -3
  139. package/src/lib/components/sharing-rules-card.js.map +1 -1
  140. package/src/lib/components/task-cells.d.ts +9 -1
  141. package/src/lib/components/task-cells.js +9 -4
  142. package/src/lib/components/task-cells.js.map +1 -1
  143. package/src/lib/components/task-edit-drawer.js +111 -43
  144. package/src/lib/components/task-edit-drawer.js.map +1 -1
  145. package/src/lib/components/tasks-bulk-bar.d.ts +0 -3
  146. package/src/lib/components/tasks-bulk-bar.js +7 -20
  147. package/src/lib/components/tasks-bulk-bar.js.map +1 -1
  148. package/src/lib/components/tasks-calendar.d.ts +3 -0
  149. package/src/lib/components/tasks-calendar.js +8 -1
  150. package/src/lib/components/tasks-calendar.js.map +1 -1
  151. package/src/lib/components/tasks-section.d.ts +3 -3
  152. package/src/lib/components/tasks-section.js +58 -43
  153. package/src/lib/components/tasks-section.js.map +1 -1
  154. package/src/lib/constants/api-routes.d.ts +2 -9
  155. package/src/lib/constants/api-routes.js +1 -7
  156. package/src/lib/constants/api-routes.js.map +1 -1
  157. package/src/lib/constants/bundle-common.d.ts +6 -0
  158. package/src/lib/constants/bundle-common.js +11 -0
  159. package/src/lib/constants/bundle-common.js.map +1 -1
  160. package/src/lib/constants/company-filters.d.ts +14 -0
  161. package/src/lib/constants/company-filters.js +51 -1
  162. package/src/lib/constants/company-filters.js.map +1 -1
  163. package/src/lib/constants/contact-filters.d.ts +2 -0
  164. package/src/lib/constants/contact-filters.js +18 -1
  165. package/src/lib/constants/contact-filters.js.map +1 -1
  166. package/src/lib/constants/deal-filters.d.ts +22 -1
  167. package/src/lib/constants/deal-filters.js +67 -4
  168. package/src/lib/constants/deal-filters.js.map +1 -1
  169. package/src/lib/declarations.console-server.d.ts +3 -0
  170. package/src/lib/declarations.console-server.js +35 -0
  171. package/src/lib/declarations.console-server.js.map +1 -1
  172. package/src/lib/declarations.d.ts +26 -0
  173. package/src/lib/declarations.js +35 -0
  174. package/src/lib/declarations.js.map +1 -0
  175. package/src/lib/declarations.server.d.ts +11 -0
  176. package/src/lib/declarations.server.js +97 -1
  177. package/src/lib/declarations.server.js.map +1 -1
  178. package/src/lib/hooks/use-company-picklists.d.ts +15 -0
  179. package/src/lib/hooks/use-company-picklists.js +55 -0
  180. package/src/lib/hooks/use-company-picklists.js.map +1 -0
  181. package/src/lib/hooks/use-crm-picklist.d.ts +25 -0
  182. package/src/lib/hooks/use-crm-picklist.js +53 -0
  183. package/src/lib/hooks/use-crm-picklist.js.map +1 -0
  184. package/src/lib/hooks/use-crm-record-names.d.ts +16 -0
  185. package/src/lib/hooks/use-crm-record-names.js +45 -19
  186. package/src/lib/hooks/use-crm-record-names.js.map +1 -1
  187. package/src/lib/hooks/use-crm-task-picklists.d.ts +11 -0
  188. package/src/lib/hooks/use-crm-task-picklists.js +45 -0
  189. package/src/lib/hooks/use-crm-task-picklists.js.map +1 -0
  190. package/src/lib/hooks/use-deals.d.ts +14 -0
  191. package/src/lib/hooks/use-deals.js +29 -0
  192. package/src/lib/hooks/use-deals.js.map +1 -1
  193. package/src/lib/hooks/use-lead-picklists.d.ts +14 -0
  194. package/src/lib/hooks/use-lead-picklists.js +46 -0
  195. package/src/lib/hooks/use-lead-picklists.js.map +1 -0
  196. package/src/lib/hooks/use-lead-source-picklist.d.ts +5 -19
  197. package/src/lib/hooks/use-lead-source-picklist.js +12 -22
  198. package/src/lib/hooks/use-lead-source-picklist.js.map +1 -1
  199. package/src/lib/hooks/use-lead-status-picklist.d.ts +9 -0
  200. package/src/lib/hooks/use-lead-status-picklist.js +40 -0
  201. package/src/lib/hooks/use-lead-status-picklist.js.map +1 -0
  202. package/src/lib/model/companies.d.ts +32 -3
  203. package/src/lib/model/companies.js +133 -16
  204. package/src/lib/model/companies.js.map +1 -1
  205. package/src/lib/model/contact-merge.d.ts +27 -3
  206. package/src/lib/model/contact-merge.js +81 -7
  207. package/src/lib/model/contact-merge.js.map +1 -1
  208. package/src/lib/model/contact-record.d.ts +17 -0
  209. package/src/lib/model/contact-record.js +17 -2
  210. package/src/lib/model/contact-record.js.map +1 -1
  211. package/src/lib/model/contact-update.d.ts +31 -2
  212. package/src/lib/model/contact-update.js +14 -0
  213. package/src/lib/model/contact-update.js.map +1 -1
  214. package/src/lib/model/crm-list-query.d.ts +5 -0
  215. package/src/lib/model/crm-list-query.js +8 -0
  216. package/src/lib/model/crm-list-query.js.map +1 -1
  217. package/src/lib/model/crm-next-activity.d.ts +107 -0
  218. package/src/lib/model/crm-next-activity.js +140 -0
  219. package/src/lib/model/crm-next-activity.js.map +1 -0
  220. package/src/lib/model/crm-recipes.d.ts +40 -0
  221. package/src/lib/model/crm-recipes.js +259 -0
  222. package/src/lib/model/crm-recipes.js.map +1 -0
  223. package/src/lib/model/crm-record-counts.d.ts +36 -0
  224. package/src/lib/model/crm-record-counts.js +54 -0
  225. package/src/lib/model/crm-record-counts.js.map +1 -0
  226. package/src/lib/model/crm-record-lists.d.ts +23 -0
  227. package/src/lib/model/crm-record-lists.js +161 -0
  228. package/src/lib/model/crm-record-lists.js.map +1 -0
  229. package/src/lib/model/crm-reports.d.ts +73 -3
  230. package/src/lib/model/crm-reports.js +120 -1
  231. package/src/lib/model/crm-reports.js.map +1 -1
  232. package/src/lib/model/crm-sharing.d.ts +21 -3
  233. package/src/lib/model/crm-sharing.js +27 -6
  234. package/src/lib/model/crm-sharing.js.map +1 -1
  235. package/src/lib/model/crm-task-reminders.d.ts +152 -0
  236. package/src/lib/model/crm-task-reminders.js +161 -0
  237. package/src/lib/model/crm-task-reminders.js.map +1 -0
  238. package/src/lib/model/deal-board-model.d.ts +8 -2
  239. package/src/lib/model/deal-board-model.js +15 -2
  240. package/src/lib/model/deal-board-model.js.map +1 -1
  241. package/src/lib/model/deal-contact-roles.d.ts +45 -0
  242. package/src/lib/model/deal-contact-roles.js +73 -0
  243. package/src/lib/model/deal-contact-roles.js.map +1 -0
  244. package/src/lib/model/deal-form-model.d.ts +56 -0
  245. package/src/lib/model/deal-form-model.js +79 -7
  246. package/src/lib/model/deal-form-model.js.map +1 -1
  247. package/src/lib/model/download-text-file.d.ts +23 -0
  248. package/src/lib/model/download-text-file.js +34 -0
  249. package/src/lib/model/download-text-file.js.map +1 -0
  250. package/src/lib/model/lead-filters.d.ts +36 -2
  251. package/src/lib/model/lead-filters.js +123 -2
  252. package/src/lib/model/lead-filters.js.map +1 -1
  253. package/src/lib/model/lead-source-direction.d.ts +38 -0
  254. package/src/lib/model/lead-source-direction.js +52 -0
  255. package/src/lib/model/lead-source-direction.js.map +1 -0
  256. package/src/lib/model/next-activity.d.ts +1 -1
  257. package/src/lib/model/next-activity.js.map +1 -1
  258. package/src/lib/model/picklist-values.d.ts +119 -0
  259. package/src/lib/model/picklist-values.js +256 -0
  260. package/src/lib/model/picklist-values.js.map +1 -0
  261. package/src/lib/model/record-facts-disclosed.d.ts +81 -0
  262. package/src/lib/model/record-facts-disclosed.js +281 -0
  263. package/src/lib/model/record-facts-disclosed.js.map +1 -0
  264. package/src/lib/model/record-facts.d.ts +215 -34
  265. package/src/lib/model/record-facts.js +307 -128
  266. package/src/lib/model/record-facts.js.map +1 -1
  267. package/src/lib/model/task-picklists.d.ts +52 -0
  268. package/src/lib/model/task-picklists.js +83 -0
  269. package/src/lib/model/task-picklists.js.map +1 -0
  270. package/src/lib/model/task-routes.d.ts +13 -0
  271. package/src/lib/model/task-routes.js +23 -4
  272. package/src/lib/model/task-routes.js.map +1 -1
  273. package/src/lib/plan-entitlements.js +6 -4
  274. package/src/lib/plan-entitlements.js.map +1 -1
  275. package/src/lib/plugin.js +17 -0
  276. package/src/lib/plugin.js.map +1 -1
  277. package/src/lib/server/api-v1/contacts.js +220 -14
  278. package/src/lib/server/api-v1/contacts.js.map +1 -1
  279. package/src/lib/server/api-v1/crm-activities.js +14 -1
  280. package/src/lib/server/api-v1/crm-activities.js.map +1 -1
  281. package/src/lib/server/api-v1/crm-companies.js +123 -14
  282. package/src/lib/server/api-v1/crm-companies.js.map +1 -1
  283. package/src/lib/server/api-v1/crm-deals.js +291 -26
  284. package/src/lib/server/api-v1/crm-deals.js.map +1 -1
  285. package/src/lib/server/api-v1/crm-leads.js +144 -38
  286. package/src/lib/server/api-v1/crm-leads.js.map +1 -1
  287. package/src/lib/server/api-v1/crm-pipelines.d.ts +6 -0
  288. package/src/lib/server/api-v1/crm-pipelines.js +8 -2
  289. package/src/lib/server/api-v1/crm-pipelines.js.map +1 -1
  290. package/src/lib/server/api-v1/crm-tasks.js +78 -34
  291. package/src/lib/server/api-v1/crm-tasks.js.map +1 -1
  292. package/src/lib/server/api-v1/openapi.d.ts +0 -11
  293. package/src/lib/server/api-v1/openapi.js +171 -16
  294. package/src/lib/server/api-v1/openapi.js.map +1 -1
  295. package/src/lib/server/assign-contact-owner.d.ts +188 -0
  296. package/src/lib/server/assign-contact-owner.js +446 -0
  297. package/src/lib/server/assign-contact-owner.js.map +1 -0
  298. package/src/lib/server/associate-company-by-domain.d.ts +70 -0
  299. package/src/lib/server/associate-company-by-domain.js +153 -0
  300. package/src/lib/server/associate-company-by-domain.js.map +1 -0
  301. package/src/lib/server/automation-steps.d.ts +140 -0
  302. package/src/lib/server/automation-steps.js +669 -0
  303. package/src/lib/server/automation-steps.js.map +1 -0
  304. package/src/lib/server/capture-contact.d.ts +17 -0
  305. package/src/lib/server/capture-contact.js +95 -26
  306. package/src/lib/server/capture-contact.js.map +1 -1
  307. package/src/lib/server/capture-host-contact.d.ts +104 -0
  308. package/src/lib/server/capture-host-contact.js +151 -0
  309. package/src/lib/server/capture-host-contact.js.map +1 -0
  310. package/src/lib/server/company-children.d.ts +25 -0
  311. package/src/lib/server/company-children.js +42 -0
  312. package/src/lib/server/company-children.js.map +1 -0
  313. package/src/lib/server/company-delete.d.ts +18 -0
  314. package/src/lib/server/company-delete.js +44 -21
  315. package/src/lib/server/company-delete.js.map +1 -1
  316. package/src/lib/server/contact-email-history.js +21 -19
  317. package/src/lib/server/contact-email-history.js.map +1 -1
  318. package/src/lib/server/contact-remove.js +27 -2
  319. package/src/lib/server/contact-remove.js.map +1 -1
  320. package/src/lib/server/contact-reports-to.d.ts +61 -0
  321. package/src/lib/server/contact-reports-to.js +114 -0
  322. package/src/lib/server/contact-reports-to.js.map +1 -0
  323. package/src/lib/server/contact-update.d.ts +42 -1
  324. package/src/lib/server/contact-update.js +204 -23
  325. package/src/lib/server/contact-update.js.map +1 -1
  326. package/src/lib/server/convert-host-lead.d.ts +46 -1
  327. package/src/lib/server/convert-host-lead.js +173 -15
  328. package/src/lib/server/convert-host-lead.js.map +1 -1
  329. package/src/lib/server/convert-open-lead.js +12 -5
  330. package/src/lib/server/convert-open-lead.js.map +1 -1
  331. package/src/lib/server/crm-email-activity.d.ts +118 -0
  332. package/src/lib/server/crm-email-activity.js +148 -0
  333. package/src/lib/server/crm-email-activity.js.map +1 -0
  334. package/src/lib/server/crm-inbound-email.js +1 -1
  335. package/src/lib/server/crm-inbound-email.js.map +1 -1
  336. package/src/lib/server/crm-next-activity.d.ts +74 -0
  337. package/src/lib/server/crm-next-activity.js +194 -0
  338. package/src/lib/server/crm-next-activity.js.map +1 -0
  339. package/src/lib/server/crm-record-indexes.d.ts +45 -0
  340. package/src/lib/server/crm-record-indexes.js +78 -0
  341. package/src/lib/server/crm-record-indexes.js.map +1 -0
  342. package/src/lib/server/crm-sharing.d.ts +9 -1
  343. package/src/lib/server/crm-sharing.js +23 -3
  344. package/src/lib/server/crm-sharing.js.map +1 -1
  345. package/src/lib/server/deal-contact-roles.d.ts +27 -0
  346. package/src/lib/server/deal-contact-roles.js +89 -0
  347. package/src/lib/server/deal-contact-roles.js.map +1 -0
  348. package/src/lib/server/email-send.js +2 -1
  349. package/src/lib/server/email-send.js.map +1 -1
  350. package/src/lib/server/lead-convert.d.ts +5 -0
  351. package/src/lib/server/lead-convert.js +19 -3
  352. package/src/lib/server/lead-convert.js.map +1 -1
  353. package/src/lib/server/lead-create.d.ts +17 -2
  354. package/src/lib/server/lead-create.js +46 -14
  355. package/src/lib/server/lead-create.js.map +1 -1
  356. package/src/lib/server/lead-nurturing.d.ts +6 -0
  357. package/src/lib/server/lead-nurturing.js +57 -20
  358. package/src/lib/server/lead-nurturing.js.map +1 -1
  359. package/src/lib/server/lead-picklists.d.ts +35 -0
  360. package/src/lib/server/lead-picklists.js +52 -0
  361. package/src/lib/server/lead-picklists.js.map +1 -0
  362. package/src/lib/server/lead-source-picklist.d.ts +1 -13
  363. package/src/lib/server/lead-source-picklist.js +6 -33
  364. package/src/lib/server/lead-source-picklist.js.map +1 -1
  365. package/src/lib/server/merge-contacts.js +23 -5
  366. package/src/lib/server/merge-contacts.js.map +1 -1
  367. package/src/lib/server/next-activity-routes.js +2 -1
  368. package/src/lib/server/next-activity-routes.js.map +1 -1
  369. package/src/lib/server/person-eraser.d.ts +53 -0
  370. package/src/lib/server/person-eraser.js +149 -0
  371. package/src/lib/server/person-eraser.js.map +1 -0
  372. package/src/lib/server/person-records.d.ts +69 -0
  373. package/src/lib/server/person-records.js +317 -0
  374. package/src/lib/server/person-records.js.map +1 -0
  375. package/src/lib/server/person-refund.d.ts +97 -0
  376. package/src/lib/server/person-refund.js +221 -0
  377. package/src/lib/server/person-refund.js.map +1 -0
  378. package/src/lib/server/picklist-values.d.ts +21 -0
  379. package/src/lib/server/picklist-values.js +308 -0
  380. package/src/lib/server/picklist-values.js.map +1 -0
  381. package/src/lib/server/read-picklist.d.ts +44 -0
  382. package/src/lib/server/read-picklist.js +65 -0
  383. package/src/lib/server/read-picklist.js.map +1 -0
  384. package/src/lib/server/recipe-routes.js +22 -8
  385. package/src/lib/server/recipe-routes.js.map +1 -1
  386. package/src/lib/server/record-email-state.js +7 -1
  387. package/src/lib/server/record-email-state.js.map +1 -1
  388. package/src/lib/server/record-facts.d.ts +3 -0
  389. package/src/lib/server/record-facts.js +233 -31
  390. package/src/lib/server/record-facts.js.map +1 -1
  391. package/src/lib/server/record-origin.d.ts +27 -0
  392. package/src/lib/server/record-origin.js +104 -0
  393. package/src/lib/server/record-origin.js.map +1 -0
  394. package/src/lib/server/record-timeline.js +40 -3
  395. package/src/lib/server/record-timeline.js.map +1 -1
  396. package/src/lib/server/suite-gate.js +4 -3
  397. package/src/lib/server/suite-gate.js.map +1 -1
  398. package/src/lib/server/task-reminders-route.js +2 -1
  399. package/src/lib/server/task-reminders-route.js.map +1 -1
  400. package/src/lib/server/task-routes.js +33 -17
  401. package/src/lib/server/task-routes.js.map +1 -1
  402. package/src/lib/server-deal-stage.d.ts +5 -1
  403. package/src/lib/server-deal-stage.js +10 -5
  404. package/src/lib/server-deal-stage.js.map +1 -1
  405. package/src/lib/server.d.ts +8 -3
  406. package/src/lib/server.js +47 -43
  407. package/src/lib/server.js.map +1 -1
  408. package/src/lib/testing/memory-firestore.d.ts +55 -0
  409. package/src/lib/testing/memory-firestore.js +335 -0
  410. package/src/lib/testing/memory-firestore.js.map +1 -0
  411. package/src/lib/testing/stand-in-email-send-index.d.ts +25 -0
  412. package/src/lib/testing/stand-in-email-send-index.js +49 -0
  413. package/src/lib/testing/stand-in-email-send-index.js.map +1 -0
  414. package/src/lib/transfer/activities.d.ts +30 -0
  415. package/src/lib/transfer/activities.js +132 -0
  416. package/src/lib/transfer/activities.js.map +1 -0
  417. package/src/lib/transfer/aliases.d.ts +22 -0
  418. package/src/lib/transfer/aliases.js +1342 -0
  419. package/src/lib/transfer/aliases.js.map +1 -0
  420. package/src/lib/transfer/common.d.ts +222 -0
  421. package/src/lib/transfer/common.js +832 -0
  422. package/src/lib/transfer/common.js.map +1 -0
  423. package/src/lib/transfer/companies.d.ts +43 -0
  424. package/src/lib/transfer/companies.js +549 -0
  425. package/src/lib/transfer/companies.js.map +1 -0
  426. package/src/lib/transfer/contacts.d.ts +31 -0
  427. package/src/lib/transfer/contacts.js +727 -0
  428. package/src/lib/transfer/contacts.js.map +1 -0
  429. package/src/lib/transfer/deals.d.ts +66 -0
  430. package/src/lib/transfer/deals.js +698 -0
  431. package/src/lib/transfer/deals.js.map +1 -0
  432. package/src/lib/transfer/email-templates-package.d.ts +40 -0
  433. package/src/lib/transfer/email-templates-package.js +76 -0
  434. package/src/lib/transfer/email-templates-package.js.map +1 -0
  435. package/src/lib/transfer/email-templates-package.server.d.ts +32 -0
  436. package/src/lib/transfer/email-templates-package.server.js +176 -0
  437. package/src/lib/transfer/email-templates-package.server.js.map +1 -0
  438. package/src/lib/transfer/fields.d.ts +102 -0
  439. package/src/lib/transfer/fields.js +1755 -0
  440. package/src/lib/transfer/fields.js.map +1 -0
  441. package/src/lib/transfer/leads.d.ts +30 -0
  442. package/src/lib/transfer/leads.js +582 -0
  443. package/src/lib/transfer/leads.js.map +1 -0
  444. package/src/lib/transfer/pipelines.d.ts +21 -0
  445. package/src/lib/transfer/pipelines.js +172 -0
  446. package/src/lib/transfer/pipelines.js.map +1 -0
  447. package/src/lib/transfer/register.d.ts +47 -0
  448. package/src/lib/transfer/register.js +277 -0
  449. package/src/lib/transfer/register.js.map +1 -0
  450. package/src/lib/transfer/tasks.d.ts +30 -0
  451. package/src/lib/transfer/tasks.js +418 -0
  452. package/src/lib/transfer/tasks.js.map +1 -0
  453. package/src/lib/transfer/ui.d.ts +20 -0
  454. package/src/lib/transfer/ui.js +42 -0
  455. package/src/lib/transfer/ui.js.map +1 -0
  456. package/src/lib/components/company-import-drawer.d.ts +0 -42
  457. package/src/lib/components/company-import-drawer.js +0 -99
  458. package/src/lib/components/company-import-drawer.js.map +0 -1
  459. package/src/lib/components/contact-import-drawer.d.ts +0 -46
  460. package/src/lib/components/contact-import-drawer.js +0 -149
  461. package/src/lib/components/contact-import-drawer.js.map +0 -1
  462. package/src/lib/components/crm-export-all-button.d.ts +0 -39
  463. package/src/lib/components/crm-export-all-button.js +0 -98
  464. package/src/lib/components/crm-export-all-button.js.map +0 -1
  465. package/src/lib/components/csv-import-drawer.d.ts +0 -139
  466. package/src/lib/components/csv-import-drawer.js +0 -757
  467. package/src/lib/components/csv-import-drawer.js.map +0 -1
  468. package/src/lib/components/deal-import-drawer.d.ts +0 -24
  469. package/src/lib/components/deal-import-drawer.js +0 -83
  470. package/src/lib/components/deal-import-drawer.js.map +0 -1
  471. package/src/lib/components/lead-import-drawer.d.ts +0 -27
  472. package/src/lib/components/lead-import-drawer.js +0 -118
  473. package/src/lib/components/lead-import-drawer.js.map +0 -1
  474. package/src/lib/components/lead-source-values-card.d.ts +0 -27
  475. package/src/lib/components/lead-source-values-card.js.map +0 -1
  476. package/src/lib/components/task-import-drawer.d.ts +0 -24
  477. package/src/lib/components/task-import-drawer.js +0 -82
  478. package/src/lib/components/task-import-drawer.js.map +0 -1
  479. package/src/lib/model/companies-csv.d.ts +0 -36
  480. package/src/lib/model/companies-csv.js +0 -38
  481. package/src/lib/model/companies-csv.js.map +0 -1
  482. package/src/lib/model/contacts-csv.d.ts +0 -54
  483. package/src/lib/model/contacts-csv.js +0 -67
  484. package/src/lib/model/contacts-csv.js.map +0 -1
  485. package/src/lib/model/crm-company-import.d.ts +0 -154
  486. package/src/lib/model/crm-company-import.js +0 -331
  487. package/src/lib/model/crm-company-import.js.map +0 -1
  488. package/src/lib/model/crm-csv.d.ts +0 -239
  489. package/src/lib/model/crm-csv.js +0 -467
  490. package/src/lib/model/crm-csv.js.map +0 -1
  491. package/src/lib/model/crm-deal-import.d.ts +0 -112
  492. package/src/lib/model/crm-deal-import.js +0 -263
  493. package/src/lib/model/crm-deal-import.js.map +0 -1
  494. package/src/lib/model/crm-import.d.ts +0 -250
  495. package/src/lib/model/crm-import.js +0 -467
  496. package/src/lib/model/crm-import.js.map +0 -1
  497. package/src/lib/model/crm-lead-import.d.ts +0 -138
  498. package/src/lib/model/crm-lead-import.js +0 -446
  499. package/src/lib/model/crm-lead-import.js.map +0 -1
  500. package/src/lib/model/crm-task-import.d.ts +0 -94
  501. package/src/lib/model/crm-task-import.js +0 -275
  502. package/src/lib/model/crm-task-import.js.map +0 -1
  503. package/src/lib/model/deals-csv.d.ts +0 -32
  504. package/src/lib/model/deals-csv.js +0 -36
  505. package/src/lib/model/deals-csv.js.map +0 -1
  506. package/src/lib/model/import-column-shapes.d.ts +0 -36
  507. package/src/lib/model/import-column-shapes.js +0 -76
  508. package/src/lib/model/import-column-shapes.js.map +0 -1
  509. package/src/lib/model/lead-source-values.d.ts +0 -82
  510. package/src/lib/model/lead-source-values.js +0 -149
  511. package/src/lib/model/lead-source-values.js.map +0 -1
  512. package/src/lib/model/leads-csv.d.ts +0 -40
  513. package/src/lib/model/leads-csv.js +0 -40
  514. package/src/lib/model/leads-csv.js.map +0 -1
  515. package/src/lib/model/tasks-csv.d.ts +0 -28
  516. package/src/lib/model/tasks-csv.js +0 -28
  517. package/src/lib/model/tasks-csv.js.map +0 -1
  518. package/src/lib/server/companies-import.d.ts +0 -57
  519. package/src/lib/server/companies-import.js +0 -242
  520. package/src/lib/server/companies-import.js.map +0 -1
  521. package/src/lib/server/contacts-import.d.ts +0 -109
  522. package/src/lib/server/contacts-import.js +0 -393
  523. package/src/lib/server/contacts-import.js.map +0 -1
  524. package/src/lib/server/deals-import.d.ts +0 -76
  525. package/src/lib/server/deals-import.js +0 -248
  526. package/src/lib/server/deals-import.js.map +0 -1
  527. package/src/lib/server/export-route.d.ts +0 -60
  528. package/src/lib/server/export-route.js +0 -447
  529. package/src/lib/server/export-route.js.map +0 -1
  530. package/src/lib/server/import-context.d.ts +0 -87
  531. package/src/lib/server/import-context.js +0 -182
  532. package/src/lib/server/import-context.js.map +0 -1
  533. package/src/lib/server/lead-source-values.d.ts +0 -50
  534. package/src/lib/server/lead-source-values.js +0 -191
  535. package/src/lib/server/lead-source-values.js.map +0 -1
  536. package/src/lib/server/leads-import.d.ts +0 -84
  537. package/src/lib/server/leads-import.js +0 -367
  538. package/src/lib/server/leads-import.js.map +0 -1
  539. package/src/lib/server/tasks-import.d.ts +0 -54
  540. package/src/lib/server/tasks-import.js +0 -160
  541. package/src/lib/server/tasks-import.js.map +0 -1
@@ -38,29 +38,31 @@ import RowActionsMenu from "@aglyn/shared-ui-jsx/components/row-actions-menu.com
38
38
  import ListQueryNotices from "@aglyn/shared-ui-jsx/components/list-query-notices.component";
39
39
  import { useSnackbar } from "@aglyn/shared-ui-snackstack";
40
40
  import { useFirestore } from "@aglyn/tenant-feature-instance";
41
- import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, MenuItem, Select, Stack, Typography } from "@mui/material";
41
+ import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, Select, Stack, Typography } from "@mui/material";
42
42
  import { deleteField, doc, serverTimestamp, updateDoc } from "firebase/firestore";
43
43
  import { useRouter } from "next/navigation";
44
44
  import { useCallback, useEffect, useMemo, useState } from "react";
45
45
  import { leadPrimaryGroup } from "../model/contact-holder.js";
46
- import { downloadTextFile } from "../model/contacts-csv.js";
47
46
  import { crmRoutes } from "../model/crm-routes.js";
48
- import { LEAD_EMAIL_FILTER_OPTIONS, LEAD_FILTER_CODECS, LEAD_LIST_DECLARATION, LEAD_LIST_FILTER_FIELDS, LEAD_LIST_FILTER_HEADERS, LEAD_SOURCE_FILTER_NONE, LEAD_STATUS_FILTER_OPTIONS, leadClausesForGrid, LEAD_PREFIX_SEARCH, leadClauseImpliesScope, leadClausesToStore, leadQueryClause } from "../model/lead-filters.js";
47
+ import { LEAD_EMAIL_FILTER_OPTIONS, LEAD_FILTER_CODECS, LEAD_LIST_DECLARATION, LEAD_LIST_FILTER_FIELDS, LEAD_LIST_FILTER_HEADERS, LEAD_PICKLIST_FILTERS, LEAD_SOURCE_DIRECTION_FILTER_OPTIONS, LEAD_SOURCE_FILTER_NONE, leadClausesForGrid, leadStatusFilterOptions, LEAD_PREFIX_SEARCH, leadClauseImpliesScope, leadClausesToStore, leadQueryClause } from "../model/lead-filters.js";
49
48
  import { crmAskClauses, crmQueryRefusals } from "../model/crm-list-query.js";
50
49
  import { listFilterGridColumns } from "@aglyn/shared-ui-jsx/const/list-grid-filter";
51
50
  import { useListGridFilter } from "@aglyn/shared-ui-jsx/hooks/use-list-grid-filter";
52
51
  import ListFilterChips from "@aglyn/shared-ui-jsx/components/list-filter-chips.component";
53
52
  import { useLeadSourcePicklist } from "../hooks/use-lead-source-picklist.js";
54
- import { leadsCsv } from "../model/leads-csv.js";
53
+ import { useLeadStatusPicklist } from "../hooks/use-lead-status-picklist.js";
54
+ import { useLeadPicklists } from "../hooks/use-lead-picklists.js";
55
55
  import { LeadConvertDialog } from "./lead-convert-dialog.js";
56
56
  import { leadSourceLabel, leadSources, leadTimeLabel } from "./lead-history-card.js";
57
- import { LeadImportButton } from "./lead-import-drawer.js";
57
+ import { CrmExportButton, CrmImportButton } from "./crm-transfer-buttons.js";
58
+ import { CRM_LEADS_RESOURCE } from "../transfer/fields.js";
58
59
  import NewLeadDrawer from "./new-lead-drawer.js";
59
60
  import { useCrmApi } from "./use-crm-api.js";
60
61
  import { LeadOwnerSelect } from "./lead-owner-select.js";
61
62
  import { CONVERT_PENDING_ERASURE_REASON } from "./lead-properties-card.js";
62
63
  import { CrmEmailStateChip } from "./crm-email-state-chip.js";
63
64
  import { LeadStatusChip } from "./lead-status-chip.js";
65
+ import { leadStatusChoices, leadStatusMenuItems } from "./lead-status-options.js";
64
66
  import { CrmShareChipView } from "./record-sharing-card.js";
65
67
  import { crmShareChipFor } from "../model/crm-sharing.js";
66
68
  import { useCrmSharingFollowUp } from "../hooks/use-crm-sharing.js";
@@ -68,6 +70,10 @@ import LeadSurfacesNote from "./lead-surfaces-note.js";
68
70
  import { LeadUnqualifyDialog } from "./lead-unqualify-dialog.js";
69
71
  import LeadsBulkBar from "./leads-bulk-bar.js";
70
72
  import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
73
+ /** Salesforce's Industry and Rating columns (AGL-3513), off until a reader turns one on. */ const LEAD_HIDDEN_COLUMNS = {
74
+ industry: false,
75
+ rating: false
76
+ };
71
77
  /**
72
78
  * `/crm/leads` — the people a site has met but not yet qualified (AGL-2608).
73
79
  *
@@ -105,6 +111,11 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
105
111
  // The org's lead source values (AGL-3298): the filter's menu and the
106
112
  // column's sort order.
107
113
  const leadSourceList = useLeadSourcePicklist(orgId);
114
+ // The org's lead status values (AGL-3512): the chips' words, the inline
115
+ // select's choices and the Status filter's names.
116
+ const leadStatusList = useLeadStatusPicklist(orgId);
117
+ // The org's Industry and Rating lists (AGL-3513): their filters' choices.
118
+ const leadPicklists = useLeadPicklists(orgId);
108
119
  const routes = crmRoutes(basePath != null ? basePath : '');
109
120
  /*
110
121
  * Under a site: the ORG collection, narrowed to what this site may see
@@ -145,7 +156,9 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
145
156
  selectFields: [
146
157
  'status',
147
158
  'emailState',
148
- 'ownerUid'
159
+ 'ownerUid',
160
+ 'leadSourceDirection',
161
+ ...LEAD_PICKLIST_FILTERS.map((entry)=>entry.column)
149
162
  ],
150
163
  codecs: LEAD_FILTER_CODECS
151
164
  });
@@ -186,8 +199,32 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
186
199
  label: 'No lead source'
187
200
  }
188
201
  ];
189
- return {
190
- status: LEAD_STATUS_FILTER_OPTIONS,
202
+ /*
203
+ * Industry and Rating (AGL-3513): every value the org keeps, valued by
204
+ * the key the query compares and captioned by the label, inactive ones
205
+ * marked — the Companies list's choices.
206
+ */ const picklistOptions = Object.fromEntries(LEAD_PICKLIST_FILTERS.map((entry)=>{
207
+ var _ref;
208
+ var _leadPicklists_lists_entry_picklistId;
209
+ const known = ((_ref = (_leadPicklists_lists_entry_picklistId = leadPicklists.lists[entry.picklistId]) == null ? void 0 : _leadPicklists_lists_entry_picklistId.values) != null ? _ref : []).flatMap((value)=>{
210
+ const key = Aglyn.crmPicklistKey(value.label);
211
+ return key ? [
212
+ {
213
+ value: key,
214
+ label: value.active ? value.label : `${value.label} (inactive)`
215
+ }
216
+ ] : [];
217
+ });
218
+ return [
219
+ entry.column,
220
+ [
221
+ ...known,
222
+ ...stale(entry.column, known)
223
+ ]
224
+ ];
225
+ }));
226
+ return _extends({}, picklistOptions, {
227
+ status: leadStatusFilterOptions(leadStatusList.picklist),
191
228
  emailState: LEAD_EMAIL_FILTER_OPTIONS,
192
229
  ownerUid: roster.options.map((option)=>({
193
230
  value: option.uid,
@@ -200,12 +237,16 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
200
237
  leadSource: [
201
238
  ...sourceOptions,
202
239
  ...stale('leadSource', sourceOptions)
203
- ]
204
- };
240
+ ],
241
+ // The picklist's groups (AGL-3511): Inbound and Outbound.
242
+ leadSourceDirection: LEAD_SOURCE_DIRECTION_FILTER_OPTIONS
243
+ });
205
244
  }, [
206
245
  clauses,
207
246
  campaigns.options,
208
247
  leadSourceList.picklist,
248
+ leadStatusList.picklist,
249
+ leadPicklists.lists,
209
250
  roster.options
210
251
  ]);
211
252
  /*
@@ -215,11 +256,14 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
215
256
  * above the list — never matched over the rows a page happened to load.
216
257
  */ const asked = useMemo(()=>crmAskClauses(clauses, (clause)=>leadQueryClause(clause, {
217
258
  scopeTokens,
218
- foldsScope
259
+ foldsScope,
260
+ // A direction is expanded through the org's own groups (AGL-3511).
261
+ leadSources: leadSourceList.picklist
219
262
  })), [
220
263
  clauses,
221
264
  scopeTokens,
222
- foldsScope
265
+ foldsScope,
266
+ leadSourceList.picklist
223
267
  ]);
224
268
  const searchKey = gridFilter.searchWords.join(' ');
225
269
  const paged = useCrmListQuery({
@@ -260,25 +304,18 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
260
304
  searchKey,
261
305
  paged.page
262
306
  ]);
263
- // How the file names the owner and, at the org level, the site.
264
- const csvOptions = useMemo(()=>_extends({
265
- ownerEmail: roster.emailFor
266
- }, hostId ? {} : {
267
- siteName: (id)=>mount == null ? void 0 : mount.siteName(id)
268
- }), [
269
- roster.emailFor,
270
- hostId,
271
- mount
272
- ]);
273
- // The page on screen; Export all on the bulk bar takes the whole list.
274
- const handleExport = useCallback(()=>{
275
- downloadTextFile('leads.csv', 'text/csv', leadsCsv(rows, csvOptions));
276
- }, [
277
- rows,
278
- csvOptions
307
+ // The list's filter, when one narrows it, for the export to read the same
308
+ // records the list does (AGL-3528).
309
+ const exportFilter = useMemo(()=>paged.plan.served.length || paged.plan.searched ? {
310
+ label: 'what the list shows',
311
+ plan: paged.plan
312
+ } : null, [
313
+ paged.plan
279
314
  ]);
280
315
  const [assigning, setAssigning] = useState(null);
281
316
  const [unqualifying, setUnqualifying] = useState(null);
317
+ // The Unqualified value the row's select picked (AGL-3512).
318
+ const [unqualifyAs, setUnqualifyAs] = useState(null);
282
319
  // The row whose conversion dialog is open (AGL-2641) — the same dialog
283
320
  // the lead's page opens, fed the row so the list is one click shorter.
284
321
  const [converting, setConverting] = useState(null);
@@ -322,7 +359,7 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
322
359
  notes: values.notes
323
360
  } : {}, values.custom ? {
324
361
  custom: values.custom
325
- } : {}, {
362
+ } : {}, values.standard, {
326
363
  status: values.status
327
364
  }));
328
365
  if (!response.ok) {
@@ -452,16 +489,20 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
452
489
  headerName: 'Status',
453
490
  flex: 0.9,
454
491
  minWidth: 150,
492
+ // The meaning, which the Status filter asks; the cell shows the org's label.
455
493
  valueGetter: (_value, row)=>Aglyn.crmLeadStatus(row),
456
494
  renderCell: ({ row })=>/*#__PURE__*/ _jsx(InlineStatus, {
457
495
  lead: row,
496
+ statuses: leadStatusList.picklist,
458
497
  onChange: (next)=>{
459
- if (next === 'unqualified') {
498
+ if (next.status === 'unqualified') {
460
499
  setUnqualifying(row);
500
+ setUnqualifyAs(next.label);
461
501
  return;
462
502
  }
463
503
  void writeLead(row, _extends({
464
- status: next
504
+ status: next.status,
505
+ statusLabel: next.label
465
506
  }, Aglyn.crmLeadStatus(row) === 'unqualified' ? {
466
507
  unqualifiedReason: deleteField()
467
508
  } : {}), 'Status updated');
@@ -553,6 +594,24 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
553
594
  return ((_row_tags = row.tags) != null ? _row_tags : []).join(', ');
554
595
  }
555
596
  },
597
+ /*
598
+ * Salesforce's Industry and Rating (AGL-3513), optional: valued by
599
+ * the key their filters compare, drawn as the label the lead holds.
600
+ */ ...LEAD_PICKLIST_FILTERS.map((entry)=>({
601
+ field: entry.column,
602
+ headerName: entry.header,
603
+ flex: 0.8,
604
+ minWidth: 130,
605
+ sortable: false,
606
+ valueGetter: (_value, row)=>{
607
+ var _Aglyn_crmPicklistKey;
608
+ return (_Aglyn_crmPicklistKey = Aglyn.crmPicklistKey(row[entry.column])) != null ? _Aglyn_crmPicklistKey : '';
609
+ },
610
+ renderCell: ({ row })=>{
611
+ var _row_entry_column;
612
+ return String((_row_entry_column = row[entry.column]) != null ? _row_entry_column : '') || '—';
613
+ }
614
+ })),
556
615
  // The campaigns the lead is filed under (AGL-3254), by name — the
557
616
  // ids are the storage.
558
617
  {
@@ -640,7 +699,10 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
640
699
  path: mdiAccountCancelOutline.path,
641
700
  size: 0.8
642
701
  }),
643
- onClick: ()=>setUnqualifying(row),
702
+ onClick: ()=>{
703
+ setUnqualifyAs(null);
704
+ setUnqualifying(row);
705
+ },
644
706
  disabled: !Aglyn.isCrmLeadOpen(row) || Boolean(row.convertedContactId),
645
707
  disabledReason: row.convertedContactId ? 'This lead was converted' : 'This lead is already closed'
646
708
  }
@@ -659,7 +721,8 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
659
721
  mount,
660
722
  campaignName,
661
723
  leadFields.active,
662
- leadSourceList.picklist
724
+ leadSourceList.picklist,
725
+ leadStatusList.picklist
663
726
  ]);
664
727
  /*
665
728
  * The column and sort models are the view's (AGL-2617); the filterable
@@ -668,7 +731,7 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
668
731
  columns,
669
732
  filterOptions
670
733
  ]);
671
- const grid = useCrmViewGrid(views, filterColumns);
734
+ const grid = useCrmViewGrid(views, filterColumns, LEAD_HIDDEN_COLUMNS);
672
735
  return /*#__PURE__*/ _jsxs(_Fragment, {
673
736
  children: [
674
737
  /*#__PURE__*/ _jsx(CardDisplay, {
@@ -682,15 +745,16 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
682
745
  // The record actions, top right and never clipped (AGL-3311).
683
746
  action: /*#__PURE__*/ _jsxs(CrmListActions, {
684
747
  children: [
685
- /*#__PURE__*/ _jsx(LeadImportButton, {
748
+ /*#__PURE__*/ _jsx(CrmImportButton, {
749
+ resource: CRM_LEADS_RESOURCE,
750
+ noun: "leads",
686
751
  hostId: hostId,
687
- orgId: orgId
752
+ mappingZone: "leads"
688
753
  }),
689
- /*#__PURE__*/ _jsx(Button, {
690
- size: "small",
691
- onClick: handleExport,
692
- disabled: !rows.length,
693
- children: 'Export CSV'
754
+ /*#__PURE__*/ _jsx(CrmExportButton, {
755
+ resource: CRM_LEADS_RESOURCE,
756
+ hostId: hostId,
757
+ filter: exportFilter
694
758
  }),
695
759
  /*#__PURE__*/ _jsx(Button, {
696
760
  size: "small",
@@ -733,7 +797,6 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
733
797
  selected: selectedIds,
734
798
  onSelectedChange: setSelectedIds,
735
799
  roster: roster,
736
- csv: csvOptions,
737
800
  orgId: orgId,
738
801
  hostId: hostId,
739
802
  org: org
@@ -808,7 +871,8 @@ import OrgLeadSurfacesNote from "./org-lead-surfaces-note.js";
808
871
  onClose: ()=>setUnqualifying(null),
809
872
  hostId: hostId != null ? hostId : null,
810
873
  leadId: (_ref = unqualifying == null ? void 0 : unqualifying.leadId) != null ? _ref : '',
811
- leadLabel: String((unqualifying == null ? void 0 : unqualifying['name']) || (unqualifying == null ? void 0 : unqualifying['email']) || '')
874
+ leadLabel: String((unqualifying == null ? void 0 : unqualifying['name']) || (unqualifying == null ? void 0 : unqualifying['email']) || ''),
875
+ statusLabel: unqualifyAs
812
876
  }),
813
877
  /*#__PURE__*/ _jsx(LeadConvertDialog, {
814
878
  open: Boolean(converting),
@@ -832,7 +896,7 @@ CrmLeadsSection.displayName = 'CrmLeadsSection';
832
896
  * the route stamped it. The select stops its click from reaching the row, or
833
897
  * every status change would also open the record.
834
898
  */ function InlineStatus(props) {
835
- const { lead, onChange } = props;
899
+ const { lead, statuses, onChange } = props;
836
900
  if (lead.convertedContactId) {
837
901
  return /*#__PURE__*/ _jsx(Box, {
838
902
  sx: {
@@ -841,11 +905,12 @@ CrmLeadsSection.displayName = 'CrmLeadsSection';
841
905
  height: '100%'
842
906
  },
843
907
  children: /*#__PURE__*/ _jsx(LeadStatusChip, {
844
- lead: lead
908
+ lead: lead,
909
+ statuses: statuses
845
910
  })
846
911
  });
847
912
  }
848
- const status = Aglyn.crmLeadStatus(lead);
913
+ const choices = leadStatusChoices(statuses, lead);
849
914
  return /*#__PURE__*/ _jsx(Box, {
850
915
  onClick: (event)=>event.stopPropagation(),
851
916
  sx: {
@@ -854,36 +919,23 @@ CrmLeadsSection.displayName = 'CrmLeadsSection';
854
919
  height: '100%',
855
920
  width: '100%'
856
921
  },
857
- children: /*#__PURE__*/ _jsxs(Select, {
922
+ children: /*#__PURE__*/ _jsx(Select, {
858
923
  size: "small",
859
924
  variant: "standard",
860
925
  disableUnderline: true,
861
- value: status,
862
- onChange: (event)=>onChange(event.target.value),
926
+ value: Aglyn.crmLeadStatusLabel(lead, statuses),
927
+ onChange: (event)=>{
928
+ const choice = choices.find((entry)=>entry.label === event.target.value);
929
+ if (choice) onChange(choice);
930
+ },
863
931
  renderValue: ()=>/*#__PURE__*/ _jsx(LeadStatusChip, {
864
- lead: lead
932
+ lead: lead,
933
+ statuses: statuses
865
934
  }),
866
935
  sx: {
867
936
  width: '100%'
868
937
  },
869
- children: [
870
- /*#__PURE__*/ _jsx(MenuItem, {
871
- value: "new",
872
- children: Aglyn.CRM_LEAD_STATUS_LABELS.new
873
- }),
874
- /*#__PURE__*/ _jsx(MenuItem, {
875
- value: "nurturing",
876
- children: Aglyn.CRM_LEAD_STATUS_LABELS.nurturing
877
- }),
878
- /*#__PURE__*/ _jsx(MenuItem, {
879
- value: "working",
880
- children: Aglyn.CRM_LEAD_STATUS_LABELS.working
881
- }),
882
- /*#__PURE__*/ _jsx(MenuItem, {
883
- value: "unqualified",
884
- children: `${Aglyn.CRM_LEAD_STATUS_LABELS.unqualified}…`
885
- })
886
- ]
938
+ children: leadStatusMenuItems(choices)
887
939
  })
888
940
  });
889
941
  }