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