@aglyn/plugins-crm 1.0.0-beta.143

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 (669) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/package.json +57 -0
  4. package/src/index.d.ts +21 -0
  5. package/src/index.js +29 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/components/activity-list.d.ts +98 -0
  8. package/src/lib/components/activity-list.js +321 -0
  9. package/src/lib/components/activity-list.js.map +1 -0
  10. package/src/lib/components/activity-queries.d.ts +117 -0
  11. package/src/lib/components/activity-queries.js +198 -0
  12. package/src/lib/components/activity-queries.js.map +1 -0
  13. package/src/lib/components/add-to-list-button.d.ts +25 -0
  14. package/src/lib/components/add-to-list-button.js +64 -0
  15. package/src/lib/components/add-to-list-button.js.map +1 -0
  16. package/src/lib/components/add-to-list-dialog.d.ts +24 -0
  17. package/src/lib/components/add-to-list-dialog.js +327 -0
  18. package/src/lib/components/add-to-list-dialog.js.map +1 -0
  19. package/src/lib/components/assignment-rule-drawer.d.ts +43 -0
  20. package/src/lib/components/assignment-rule-drawer.js +293 -0
  21. package/src/lib/components/assignment-rule-drawer.js.map +1 -0
  22. package/src/lib/components/companies-bulk-bar.d.ts +29 -0
  23. package/src/lib/components/companies-bulk-bar.js +274 -0
  24. package/src/lib/components/companies-bulk-bar.js.map +1 -0
  25. package/src/lib/components/companies-section.d.ts +54 -0
  26. package/src/lib/components/companies-section.js +522 -0
  27. package/src/lib/components/companies-section.js.map +1 -0
  28. package/src/lib/components/company-contacts-card.d.ts +49 -0
  29. package/src/lib/components/company-contacts-card.js +435 -0
  30. package/src/lib/components/company-contacts-card.js.map +1 -0
  31. package/src/lib/components/company-deals-card.d.ts +20 -0
  32. package/src/lib/components/company-deals-card.js +38 -0
  33. package/src/lib/components/company-deals-card.js.map +1 -0
  34. package/src/lib/components/company-detail-page.d.ts +20 -0
  35. package/src/lib/components/company-detail-page.js +165 -0
  36. package/src/lib/components/company-detail-page.js.map +1 -0
  37. package/src/lib/components/company-edit-drawer.d.ts +65 -0
  38. package/src/lib/components/company-edit-drawer.js +433 -0
  39. package/src/lib/components/company-edit-drawer.js.map +1 -0
  40. package/src/lib/components/company-import-drawer.d.ts +42 -0
  41. package/src/lib/components/company-import-drawer.js +99 -0
  42. package/src/lib/components/company-import-drawer.js.map +1 -0
  43. package/src/lib/components/company-picker.d.ts +127 -0
  44. package/src/lib/components/company-picker.js +323 -0
  45. package/src/lib/components/company-picker.js.map +1 -0
  46. package/src/lib/components/company-properties-card.d.ts +47 -0
  47. package/src/lib/components/company-properties-card.js +289 -0
  48. package/src/lib/components/company-properties-card.js.map +1 -0
  49. package/src/lib/components/contact-address-fields.d.ts +29 -0
  50. package/src/lib/components/contact-address-fields.js +149 -0
  51. package/src/lib/components/contact-address-fields.js.map +1 -0
  52. package/src/lib/components/contact-associations-card.d.ts +72 -0
  53. package/src/lib/components/contact-associations-card.js +296 -0
  54. package/src/lib/components/contact-associations-card.js.map +1 -0
  55. package/src/lib/components/contact-custom-columns.d.ts +38 -0
  56. package/src/lib/components/contact-custom-columns.js +102 -0
  57. package/src/lib/components/contact-custom-columns.js.map +1 -0
  58. package/src/lib/components/contact-custom-fields-card.d.ts +39 -0
  59. package/src/lib/components/contact-custom-fields-card.js +204 -0
  60. package/src/lib/components/contact-custom-fields-card.js.map +1 -0
  61. package/src/lib/components/contact-deals-card.d.ts +20 -0
  62. package/src/lib/components/contact-deals-card.js +38 -0
  63. package/src/lib/components/contact-deals-card.js.map +1 -0
  64. package/src/lib/components/contact-detail-page.d.ts +46 -0
  65. package/src/lib/components/contact-detail-page.js +535 -0
  66. package/src/lib/components/contact-detail-page.js.map +1 -0
  67. package/src/lib/components/contact-duplicates-card.d.ts +42 -0
  68. package/src/lib/components/contact-duplicates-card.js +167 -0
  69. package/src/lib/components/contact-duplicates-card.js.map +1 -0
  70. package/src/lib/components/contact-field-drawer.d.ts +64 -0
  71. package/src/lib/components/contact-field-drawer.js +251 -0
  72. package/src/lib/components/contact-field-drawer.js.map +1 -0
  73. package/src/lib/components/contact-import-drawer.d.ts +46 -0
  74. package/src/lib/components/contact-import-drawer.js +149 -0
  75. package/src/lib/components/contact-import-drawer.js.map +1 -0
  76. package/src/lib/components/contact-known-by-card.d.ts +39 -0
  77. package/src/lib/components/contact-known-by-card.js +142 -0
  78. package/src/lib/components/contact-known-by-card.js.map +1 -0
  79. package/src/lib/components/contact-list-columns.d.ts +53 -0
  80. package/src/lib/components/contact-list-columns.js +288 -0
  81. package/src/lib/components/contact-list-columns.js.map +1 -0
  82. package/src/lib/components/contact-merge-dialog.d.ts +79 -0
  83. package/src/lib/components/contact-merge-dialog.js +405 -0
  84. package/src/lib/components/contact-merge-dialog.js.map +1 -0
  85. package/src/lib/components/contact-properties-card.d.ts +89 -0
  86. package/src/lib/components/contact-properties-card.js +492 -0
  87. package/src/lib/components/contact-properties-card.js.map +1 -0
  88. package/src/lib/components/contact-timeline-card.d.ts +68 -0
  89. package/src/lib/components/contact-timeline-card.js +435 -0
  90. package/src/lib/components/contact-timeline-card.js.map +1 -0
  91. package/src/lib/components/contacts-bulk-bar.d.ts +91 -0
  92. package/src/lib/components/contacts-bulk-bar.js +493 -0
  93. package/src/lib/components/contacts-bulk-bar.js.map +1 -0
  94. package/src/lib/components/contacts-section.d.ts +26 -0
  95. package/src/lib/components/contacts-section.js +1025 -0
  96. package/src/lib/components/contacts-section.js.map +1 -0
  97. package/src/lib/components/copy-capture-address-button.d.ts +33 -0
  98. package/src/lib/components/copy-capture-address-button.js +60 -0
  99. package/src/lib/components/copy-capture-address-button.js.map +1 -0
  100. package/src/lib/components/crm-attribution-zone.d.ts +38 -0
  101. package/src/lib/components/crm-attribution-zone.js +36 -0
  102. package/src/lib/components/crm-attribution-zone.js.map +1 -0
  103. package/src/lib/components/crm-booking-zone.d.ts +61 -0
  104. package/src/lib/components/crm-booking-zone.js +50 -0
  105. package/src/lib/components/crm-booking-zone.js.map +1 -0
  106. package/src/lib/components/crm-bulk-bar-frame.d.ts +47 -0
  107. package/src/lib/components/crm-bulk-bar-frame.js +137 -0
  108. package/src/lib/components/crm-bulk-bar-frame.js.map +1 -0
  109. package/src/lib/components/crm-call-actions.d.ts +65 -0
  110. package/src/lib/components/crm-call-actions.js +110 -0
  111. package/src/lib/components/crm-call-actions.js.map +1 -0
  112. package/src/lib/components/crm-column-menu.d.ts +21 -0
  113. package/src/lib/components/crm-column-menu.js +103 -0
  114. package/src/lib/components/crm-column-menu.js.map +1 -0
  115. package/src/lib/components/crm-console-page.d.ts +19 -0
  116. package/src/lib/components/crm-console-page.js +151 -0
  117. package/src/lib/components/crm-console-page.js.map +1 -0
  118. package/src/lib/components/crm-console-sections.d.ts +52 -0
  119. package/src/lib/components/crm-console-sections.js +83 -0
  120. package/src/lib/components/crm-console-sections.js.map +1 -0
  121. package/src/lib/components/crm-custom-field-control.d.ts +26 -0
  122. package/src/lib/components/crm-custom-field-control.js +131 -0
  123. package/src/lib/components/crm-custom-field-control.js.map +1 -0
  124. package/src/lib/components/crm-email-template-tools.d.ts +69 -0
  125. package/src/lib/components/crm-email-template-tools.js +240 -0
  126. package/src/lib/components/crm-email-template-tools.js.map +1 -0
  127. package/src/lib/components/crm-export-all-button.d.ts +39 -0
  128. package/src/lib/components/crm-export-all-button.js +98 -0
  129. package/src/lib/components/crm-export-all-button.js.map +1 -0
  130. package/src/lib/components/crm-filter-bar.d.ts +53 -0
  131. package/src/lib/components/crm-filter-bar.js +294 -0
  132. package/src/lib/components/crm-filter-bar.js.map +1 -0
  133. package/src/lib/components/crm-glance-card.d.ts +54 -0
  134. package/src/lib/components/crm-glance-card.js +219 -0
  135. package/src/lib/components/crm-glance-card.js.map +1 -0
  136. package/src/lib/components/crm-next-activity-column.d.ts +35 -0
  137. package/src/lib/components/crm-next-activity-column.js +100 -0
  138. package/src/lib/components/crm-next-activity-column.js.map +1 -0
  139. package/src/lib/components/crm-record-header.d.ts +97 -0
  140. package/src/lib/components/crm-record-header.js +160 -0
  141. package/src/lib/components/crm-record-header.js.map +1 -0
  142. package/src/lib/components/crm-record-insights-zone.d.ts +50 -0
  143. package/src/lib/components/crm-record-insights-zone.js +169 -0
  144. package/src/lib/components/crm-record-insights-zone.js.map +1 -0
  145. package/src/lib/components/crm-record-picker.d.ts +42 -0
  146. package/src/lib/components/crm-record-picker.js +104 -0
  147. package/src/lib/components/crm-record-picker.js.map +1 -0
  148. package/src/lib/components/crm-send-email-button.d.ts +39 -0
  149. package/src/lib/components/crm-send-email-button.js +81 -0
  150. package/src/lib/components/crm-send-email-button.js.map +1 -0
  151. package/src/lib/components/crm-send-email-dialog.d.ts +61 -0
  152. package/src/lib/components/crm-send-email-dialog.js +851 -0
  153. package/src/lib/components/crm-send-email-dialog.js.map +1 -0
  154. package/src/lib/components/crm-site-picker.d.ts +61 -0
  155. package/src/lib/components/crm-site-picker.js +99 -0
  156. package/src/lib/components/crm-site-picker.js.map +1 -0
  157. package/src/lib/components/crm-suite-lock.d.ts +29 -0
  158. package/src/lib/components/crm-suite-lock.js +114 -0
  159. package/src/lib/components/crm-suite-lock.js.map +1 -0
  160. package/src/lib/components/crm-tasks-due-card.d.ts +42 -0
  161. package/src/lib/components/crm-tasks-due-card.js +225 -0
  162. package/src/lib/components/crm-tasks-due-card.js.map +1 -0
  163. package/src/lib/components/crm-views-control.d.ts +65 -0
  164. package/src/lib/components/crm-views-control.js +518 -0
  165. package/src/lib/components/crm-views-control.js.map +1 -0
  166. package/src/lib/components/csv-import-drawer.d.ts +132 -0
  167. package/src/lib/components/csv-import-drawer.js +746 -0
  168. package/src/lib/components/csv-import-drawer.js.map +1 -0
  169. package/src/lib/components/deal-board.d.ts +70 -0
  170. package/src/lib/components/deal-board.js +478 -0
  171. package/src/lib/components/deal-board.js.map +1 -0
  172. package/src/lib/components/deal-detail-page.d.ts +18 -0
  173. package/src/lib/components/deal-detail-page.js +323 -0
  174. package/src/lib/components/deal-detail-page.js.map +1 -0
  175. package/src/lib/components/deal-edit-drawer.d.ts +59 -0
  176. package/src/lib/components/deal-edit-drawer.js +640 -0
  177. package/src/lib/components/deal-edit-drawer.js.map +1 -0
  178. package/src/lib/components/deal-import-drawer.d.ts +24 -0
  179. package/src/lib/components/deal-import-drawer.js +83 -0
  180. package/src/lib/components/deal-import-drawer.js.map +1 -0
  181. package/src/lib/components/deal-products-card.d.ts +48 -0
  182. package/src/lib/components/deal-products-card.js +614 -0
  183. package/src/lib/components/deal-products-card.js.map +1 -0
  184. package/src/lib/components/deal-properties-card.d.ts +29 -0
  185. package/src/lib/components/deal-properties-card.js +144 -0
  186. package/src/lib/components/deal-properties-card.js.map +1 -0
  187. package/src/lib/components/deal-stage-card.d.ts +24 -0
  188. package/src/lib/components/deal-stage-card.js +199 -0
  189. package/src/lib/components/deal-stage-card.js.map +1 -0
  190. package/src/lib/components/deals-bulk-bar.d.ts +31 -0
  191. package/src/lib/components/deals-bulk-bar.js +340 -0
  192. package/src/lib/components/deals-bulk-bar.js.map +1 -0
  193. package/src/lib/components/deals-section.d.ts +49 -0
  194. package/src/lib/components/deals-section.js +767 -0
  195. package/src/lib/components/deals-section.js.map +1 -0
  196. package/src/lib/components/email-capture-card.d.ts +42 -0
  197. package/src/lib/components/email-capture-card.js +134 -0
  198. package/src/lib/components/email-capture-card.js.map +1 -0
  199. package/src/lib/components/email-template-drawer.d.ts +33 -0
  200. package/src/lib/components/email-template-drawer.js +209 -0
  201. package/src/lib/components/email-template-drawer.js.map +1 -0
  202. package/src/lib/components/email-templates-card.d.ts +33 -0
  203. package/src/lib/components/email-templates-card.js +370 -0
  204. package/src/lib/components/email-templates-card.js.map +1 -0
  205. package/src/lib/components/erase-person-action.d.ts +92 -0
  206. package/src/lib/components/erase-person-action.js +261 -0
  207. package/src/lib/components/erase-person-action.js.map +1 -0
  208. package/src/lib/components/fields-section.d.ts +37 -0
  209. package/src/lib/components/fields-section.js +641 -0
  210. package/src/lib/components/fields-section.js.map +1 -0
  211. package/src/lib/components/form-contact-fields-card.d.ts +46 -0
  212. package/src/lib/components/form-contact-fields-card.js +253 -0
  213. package/src/lib/components/form-contact-fields-card.js.map +1 -0
  214. package/src/lib/components/insert-link-at-caret.d.ts +28 -0
  215. package/src/lib/components/insert-link-at-caret.js +37 -0
  216. package/src/lib/components/insert-link-at-caret.js.map +1 -0
  217. package/src/lib/components/lead-convert-dialog.d.ts +32 -0
  218. package/src/lib/components/lead-convert-dialog.js +493 -0
  219. package/src/lib/components/lead-convert-dialog.js.map +1 -0
  220. package/src/lib/components/lead-detail-page.d.ts +16 -0
  221. package/src/lib/components/lead-detail-page.js +163 -0
  222. package/src/lib/components/lead-detail-page.js.map +1 -0
  223. package/src/lib/components/lead-history-card.d.ts +32 -0
  224. package/src/lib/components/lead-history-card.js +165 -0
  225. package/src/lib/components/lead-history-card.js.map +1 -0
  226. package/src/lib/components/lead-import-drawer.d.ts +24 -0
  227. package/src/lib/components/lead-import-drawer.js +95 -0
  228. package/src/lib/components/lead-import-drawer.js.map +1 -0
  229. package/src/lib/components/lead-owner-select.d.ts +35 -0
  230. package/src/lib/components/lead-owner-select.js +91 -0
  231. package/src/lib/components/lead-owner-select.js.map +1 -0
  232. package/src/lib/components/lead-properties-card.d.ts +61 -0
  233. package/src/lib/components/lead-properties-card.js +395 -0
  234. package/src/lib/components/lead-properties-card.js.map +1 -0
  235. package/src/lib/components/lead-status-chip.d.ts +12 -0
  236. package/src/lib/components/lead-status-chip.js +43 -0
  237. package/src/lib/components/lead-status-chip.js.map +1 -0
  238. package/src/lib/components/lead-surfaces-note.d.ts +126 -0
  239. package/src/lib/components/lead-surfaces-note.js +262 -0
  240. package/src/lib/components/lead-surfaces-note.js.map +1 -0
  241. package/src/lib/components/lead-unqualify-dialog.d.ts +24 -0
  242. package/src/lib/components/lead-unqualify-dialog.js +125 -0
  243. package/src/lib/components/lead-unqualify-dialog.js.map +1 -0
  244. package/src/lib/components/leads-bulk-bar.d.ts +58 -0
  245. package/src/lib/components/leads-bulk-bar.js +307 -0
  246. package/src/lib/components/leads-bulk-bar.js.map +1 -0
  247. package/src/lib/components/leads-section.d.ts +23 -0
  248. package/src/lib/components/leads-section.js +664 -0
  249. package/src/lib/components/leads-section.js.map +1 -0
  250. package/src/lib/components/linked-deals-card.d.ts +32 -0
  251. package/src/lib/components/linked-deals-card.js +163 -0
  252. package/src/lib/components/linked-deals-card.js.map +1 -0
  253. package/src/lib/components/log-activity-dialog.d.ts +60 -0
  254. package/src/lib/components/log-activity-dialog.js +368 -0
  255. package/src/lib/components/log-activity-dialog.js.map +1 -0
  256. package/src/lib/components/lost-reason-dialog.d.ts +26 -0
  257. package/src/lib/components/lost-reason-dialog.js +95 -0
  258. package/src/lib/components/lost-reason-dialog.js.map +1 -0
  259. package/src/lib/components/new-contact-drawer.d.ts +78 -0
  260. package/src/lib/components/new-contact-drawer.js +343 -0
  261. package/src/lib/components/new-contact-drawer.js.map +1 -0
  262. package/src/lib/components/org-lead-surfaces-note.d.ts +57 -0
  263. package/src/lib/components/org-lead-surfaces-note.js +172 -0
  264. package/src/lib/components/org-lead-surfaces-note.js.map +1 -0
  265. package/src/lib/components/owner-avatar.d.ts +18 -0
  266. package/src/lib/components/owner-avatar.js +61 -0
  267. package/src/lib/components/owner-avatar.js.map +1 -0
  268. package/src/lib/components/pipeline-stages-dialog.d.ts +43 -0
  269. package/src/lib/components/pipeline-stages-dialog.js +339 -0
  270. package/src/lib/components/pipeline-stages-dialog.js.map +1 -0
  271. package/src/lib/components/pipelines-dialog.d.ts +55 -0
  272. package/src/lib/components/pipelines-dialog.js +517 -0
  273. package/src/lib/components/pipelines-dialog.js.map +1 -0
  274. package/src/lib/components/recent-activity-feed.d.ts +39 -0
  275. package/src/lib/components/recent-activity-feed.js +103 -0
  276. package/src/lib/components/recent-activity-feed.js.map +1 -0
  277. package/src/lib/components/recipes-card.d.ts +39 -0
  278. package/src/lib/components/recipes-card.js +485 -0
  279. package/src/lib/components/recipes-card.js.map +1 -0
  280. package/src/lib/components/record-activity-card.d.ts +26 -0
  281. package/src/lib/components/record-activity-card.js +121 -0
  282. package/src/lib/components/record-activity-card.js.map +1 -0
  283. package/src/lib/components/record-files-card.d.ts +67 -0
  284. package/src/lib/components/record-files-card.js +290 -0
  285. package/src/lib/components/record-files-card.js.map +1 -0
  286. package/src/lib/components/record-tasks-card.d.ts +32 -0
  287. package/src/lib/components/record-tasks-card.js +306 -0
  288. package/src/lib/components/record-tasks-card.js.map +1 -0
  289. package/src/lib/components/reports/activity-card.d.ts +57 -0
  290. package/src/lib/components/reports/activity-card.js +281 -0
  291. package/src/lib/components/reports/activity-card.js.map +1 -0
  292. package/src/lib/components/reports/closed-deals-card.d.ts +20 -0
  293. package/src/lib/components/reports/closed-deals-card.js +194 -0
  294. package/src/lib/components/reports/closed-deals-card.js.map +1 -0
  295. package/src/lib/components/reports/contacts-mix-card.d.ts +27 -0
  296. package/src/lib/components/reports/contacts-mix-card.js +161 -0
  297. package/src/lib/components/reports/contacts-mix-card.js.map +1 -0
  298. package/src/lib/components/reports/contacts-trend-card.d.ts +31 -0
  299. package/src/lib/components/reports/contacts-trend-card.js +144 -0
  300. package/src/lib/components/reports/contacts-trend-card.js.map +1 -0
  301. package/src/lib/components/reports/forecast-card.d.ts +22 -0
  302. package/src/lib/components/reports/forecast-card.js +251 -0
  303. package/src/lib/components/reports/forecast-card.js.map +1 -0
  304. package/src/lib/components/reports/lead-counts.d.ts +32 -0
  305. package/src/lib/components/reports/lead-counts.js +44 -0
  306. package/src/lib/components/reports/lead-counts.js.map +1 -0
  307. package/src/lib/components/reports/lead-funnel-card.d.ts +38 -0
  308. package/src/lib/components/reports/lead-funnel-card.js +375 -0
  309. package/src/lib/components/reports/lead-funnel-card.js.map +1 -0
  310. package/src/lib/components/reports/pipeline-card.d.ts +19 -0
  311. package/src/lib/components/reports/pipeline-card.js +338 -0
  312. package/src/lib/components/reports/pipeline-card.js.map +1 -0
  313. package/src/lib/components/reports/report-bar-chart.d.ts +39 -0
  314. package/src/lib/components/reports/report-bar-chart.js +133 -0
  315. package/src/lib/components/reports/report-bar-chart.js.map +1 -0
  316. package/src/lib/components/reports/report-breakdown.d.ts +32 -0
  317. package/src/lib/components/reports/report-breakdown.js +105 -0
  318. package/src/lib/components/reports/report-breakdown.js.map +1 -0
  319. package/src/lib/components/reports/report-export.d.ts +37 -0
  320. package/src/lib/components/reports/report-export.js +66 -0
  321. package/src/lib/components/reports/report-export.js.map +1 -0
  322. package/src/lib/components/reports/report-format.d.ts +36 -0
  323. package/src/lib/components/reports/report-format.js +43 -0
  324. package/src/lib/components/reports/report-format.js.map +1 -0
  325. package/src/lib/components/reports/report-scope.d.ts +81 -0
  326. package/src/lib/components/reports/report-scope.js +58 -0
  327. package/src/lib/components/reports/report-scope.js.map +1 -0
  328. package/src/lib/components/reports/report-stat-tile.d.ts +47 -0
  329. package/src/lib/components/reports/report-stat-tile.js +96 -0
  330. package/src/lib/components/reports/report-stat-tile.js.map +1 -0
  331. package/src/lib/components/reports/source-conversion-card.d.ts +28 -0
  332. package/src/lib/components/reports/source-conversion-card.js +205 -0
  333. package/src/lib/components/reports/source-conversion-card.js.map +1 -0
  334. package/src/lib/components/reports/tasks-card.d.ts +26 -0
  335. package/src/lib/components/reports/tasks-card.js +279 -0
  336. package/src/lib/components/reports/tasks-card.js.map +1 -0
  337. package/src/lib/components/reports/use-aggregate-read.d.ts +99 -0
  338. package/src/lib/components/reports/use-aggregate-read.js +195 -0
  339. package/src/lib/components/reports/use-aggregate-read.js.map +1 -0
  340. package/src/lib/components/reports/won-lost-by-owner-card.d.ts +30 -0
  341. package/src/lib/components/reports/won-lost-by-owner-card.js +168 -0
  342. package/src/lib/components/reports/won-lost-by-owner-card.js.map +1 -0
  343. package/src/lib/components/reports-section.d.ts +42 -0
  344. package/src/lib/components/reports-section.js +308 -0
  345. package/src/lib/components/reports-section.js.map +1 -0
  346. package/src/lib/components/sending-addresses-card.d.ts +49 -0
  347. package/src/lib/components/sending-addresses-card.js +262 -0
  348. package/src/lib/components/sending-addresses-card.js.map +1 -0
  349. package/src/lib/components/settings-section.d.ts +151 -0
  350. package/src/lib/components/settings-section.js +783 -0
  351. package/src/lib/components/settings-section.js.map +1 -0
  352. package/src/lib/components/task-cells.d.ts +51 -0
  353. package/src/lib/components/task-cells.js +139 -0
  354. package/src/lib/components/task-cells.js.map +1 -0
  355. package/src/lib/components/task-edit-drawer.d.ts +53 -0
  356. package/src/lib/components/task-edit-drawer.js +483 -0
  357. package/src/lib/components/task-edit-drawer.js.map +1 -0
  358. package/src/lib/components/task-import-drawer.d.ts +24 -0
  359. package/src/lib/components/task-import-drawer.js +82 -0
  360. package/src/lib/components/task-import-drawer.js.map +1 -0
  361. package/src/lib/components/task-snooze-menu.d.ts +65 -0
  362. package/src/lib/components/task-snooze-menu.js +207 -0
  363. package/src/lib/components/task-snooze-menu.js.map +1 -0
  364. package/src/lib/components/tasks-bulk-bar.d.ts +25 -0
  365. package/src/lib/components/tasks-bulk-bar.js +348 -0
  366. package/src/lib/components/tasks-bulk-bar.js.map +1 -0
  367. package/src/lib/components/tasks-calendar.d.ts +38 -0
  368. package/src/lib/components/tasks-calendar.js +228 -0
  369. package/src/lib/components/tasks-calendar.js.map +1 -0
  370. package/src/lib/components/tasks-section.d.ts +27 -0
  371. package/src/lib/components/tasks-section.js +579 -0
  372. package/src/lib/components/tasks-section.js.map +1 -0
  373. package/src/lib/components/use-contact-campaign-emails.d.ts +32 -0
  374. package/src/lib/components/use-contact-campaign-emails.js +83 -0
  375. package/src/lib/components/use-contact-campaign-emails.js.map +1 -0
  376. package/src/lib/components/use-crm-api.d.ts +44 -0
  377. package/src/lib/components/use-crm-api.js +84 -0
  378. package/src/lib/components/use-crm-api.js.map +1 -0
  379. package/src/lib/components/use-crm-inbound-address.d.ts +60 -0
  380. package/src/lib/components/use-crm-inbound-address.js +124 -0
  381. package/src/lib/components/use-crm-inbound-address.js.map +1 -0
  382. package/src/lib/components/use-emails-hub-path.d.ts +24 -0
  383. package/src/lib/components/use-emails-hub-path.js +59 -0
  384. package/src/lib/components/use-emails-hub-path.js.map +1 -0
  385. package/src/lib/components/use-member-email-aliases.d.ts +54 -0
  386. package/src/lib/components/use-member-email-aliases.js +186 -0
  387. package/src/lib/components/use-member-email-aliases.js.map +1 -0
  388. package/src/lib/components/use-org-members.d.ts +40 -0
  389. package/src/lib/components/use-org-members.js +100 -0
  390. package/src/lib/components/use-org-members.js.map +1 -0
  391. package/src/lib/constants/api-routes.d.ts +109 -0
  392. package/src/lib/constants/api-routes.js +74 -0
  393. package/src/lib/constants/api-routes.js.map +1 -0
  394. package/src/lib/constants/bundle-common.d.ts +14 -0
  395. package/src/lib/constants/bundle-common.js +14 -0
  396. package/src/lib/constants/bundle-common.js.map +1 -0
  397. package/src/lib/constants/company-filters.d.ts +18 -0
  398. package/src/lib/constants/company-filters.js +51 -0
  399. package/src/lib/constants/company-filters.js.map +1 -0
  400. package/src/lib/constants/contact-filters.d.ts +38 -0
  401. package/src/lib/constants/contact-filters.js +294 -0
  402. package/src/lib/constants/contact-filters.js.map +1 -0
  403. package/src/lib/hooks/use-contact-field-definitions.d.ts +48 -0
  404. package/src/lib/hooks/use-contact-field-definitions.js +72 -0
  405. package/src/lib/hooks/use-contact-field-definitions.js.map +1 -0
  406. package/src/lib/hooks/use-contact-update.d.ts +25 -0
  407. package/src/lib/hooks/use-contact-update.js +80 -0
  408. package/src/lib/hooks/use-contact-update.js.map +1 -0
  409. package/src/lib/hooks/use-crm-activity-logger.d.ts +73 -0
  410. package/src/lib/hooks/use-crm-activity-logger.js +101 -0
  411. package/src/lib/hooks/use-crm-activity-logger.js.map +1 -0
  412. package/src/lib/hooks/use-crm-bulk-apply.d.ts +52 -0
  413. package/src/lib/hooks/use-crm-bulk-apply.js +112 -0
  414. package/src/lib/hooks/use-crm-bulk-apply.js.map +1 -0
  415. package/src/lib/hooks/use-crm-default-view.d.ts +24 -0
  416. package/src/lib/hooks/use-crm-default-view.js +64 -0
  417. package/src/lib/hooks/use-crm-default-view.js.map +1 -0
  418. package/src/lib/hooks/use-crm-email-templates.d.ts +59 -0
  419. package/src/lib/hooks/use-crm-email-templates.js +103 -0
  420. package/src/lib/hooks/use-crm-email-templates.js.map +1 -0
  421. package/src/lib/hooks/use-crm-hub-path.d.ts +29 -0
  422. package/src/lib/hooks/use-crm-hub-path.js +41 -0
  423. package/src/lib/hooks/use-crm-hub-path.js.map +1 -0
  424. package/src/lib/hooks/use-crm-org-mount.d.ts +97 -0
  425. package/src/lib/hooks/use-crm-org-mount.js +215 -0
  426. package/src/lib/hooks/use-crm-org-mount.js.map +1 -0
  427. package/src/lib/hooks/use-crm-record-names.d.ts +52 -0
  428. package/src/lib/hooks/use-crm-record-names.js +126 -0
  429. package/src/lib/hooks/use-crm-record-names.js.map +1 -0
  430. package/src/lib/hooks/use-crm-records-quota.d.ts +68 -0
  431. package/src/lib/hooks/use-crm-records-quota.js +118 -0
  432. package/src/lib/hooks/use-crm-records-quota.js.map +1 -0
  433. package/src/lib/hooks/use-crm-saved-view.d.ts +96 -0
  434. package/src/lib/hooks/use-crm-saved-view.js +329 -0
  435. package/src/lib/hooks/use-crm-saved-view.js.map +1 -0
  436. package/src/lib/hooks/use-crm-scope.d.ts +117 -0
  437. package/src/lib/hooks/use-crm-scope.js +147 -0
  438. package/src/lib/hooks/use-crm-scope.js.map +1 -0
  439. package/src/lib/hooks/use-crm-tasks.d.ts +85 -0
  440. package/src/lib/hooks/use-crm-tasks.js +153 -0
  441. package/src/lib/hooks/use-crm-tasks.js.map +1 -0
  442. package/src/lib/hooks/use-crm-view-grid.d.ts +55 -0
  443. package/src/lib/hooks/use-crm-view-grid.js +170 -0
  444. package/src/lib/hooks/use-crm-view-grid.js.map +1 -0
  445. package/src/lib/hooks/use-crm-views.d.ts +42 -0
  446. package/src/lib/hooks/use-crm-views.js +84 -0
  447. package/src/lib/hooks/use-crm-views.js.map +1 -0
  448. package/src/lib/hooks/use-deal-stage-api.d.ts +69 -0
  449. package/src/lib/hooks/use-deal-stage-api.js +78 -0
  450. package/src/lib/hooks/use-deal-stage-api.js.map +1 -0
  451. package/src/lib/hooks/use-deals.d.ts +47 -0
  452. package/src/lib/hooks/use-deals.js +105 -0
  453. package/src/lib/hooks/use-deals.js.map +1 -0
  454. package/src/lib/hooks/use-org-leads.d.ts +53 -0
  455. package/src/lib/hooks/use-org-leads.js +114 -0
  456. package/src/lib/hooks/use-org-leads.js.map +1 -0
  457. package/src/lib/hooks/use-org-member-directory.d.ts +36 -0
  458. package/src/lib/hooks/use-org-member-directory.js +116 -0
  459. package/src/lib/hooks/use-org-member-directory.js.map +1 -0
  460. package/src/lib/hooks/use-org-member-options.d.ts +38 -0
  461. package/src/lib/hooks/use-org-member-options.js +131 -0
  462. package/src/lib/hooks/use-org-member-options.js.map +1 -0
  463. package/src/lib/hooks/use-pipeline.d.ts +71 -0
  464. package/src/lib/hooks/use-pipeline.js +159 -0
  465. package/src/lib/hooks/use-pipeline.js.map +1 -0
  466. package/src/lib/model/companies-bulk-writes.d.ts +40 -0
  467. package/src/lib/model/companies-bulk-writes.js +103 -0
  468. package/src/lib/model/companies-bulk-writes.js.map +1 -0
  469. package/src/lib/model/companies-csv.d.ts +36 -0
  470. package/src/lib/model/companies-csv.js +38 -0
  471. package/src/lib/model/companies-csv.js.map +1 -0
  472. package/src/lib/model/companies.d.ts +99 -0
  473. package/src/lib/model/companies.js +168 -0
  474. package/src/lib/model/companies.js.map +1 -0
  475. package/src/lib/model/company-delete-route.d.ts +43 -0
  476. package/src/lib/model/company-delete-route.js +31 -0
  477. package/src/lib/model/company-delete-route.js.map +1 -0
  478. package/src/lib/model/company-delete.d.ts +42 -0
  479. package/src/lib/model/company-delete.js +52 -0
  480. package/src/lib/model/company-delete.js.map +1 -0
  481. package/src/lib/model/contact-duplicates.d.ts +58 -0
  482. package/src/lib/model/contact-duplicates.js +67 -0
  483. package/src/lib/model/contact-duplicates.js.map +1 -0
  484. package/src/lib/model/contact-record.d.ts +113 -0
  485. package/src/lib/model/contact-record.js +70 -0
  486. package/src/lib/model/contact-record.js.map +1 -0
  487. package/src/lib/model/contact-update.d.ts +93 -0
  488. package/src/lib/model/contact-update.js +50 -0
  489. package/src/lib/model/contact-update.js.map +1 -0
  490. package/src/lib/model/contacts-bulk-writes.d.ts +173 -0
  491. package/src/lib/model/contacts-bulk-writes.js +196 -0
  492. package/src/lib/model/contacts-bulk-writes.js.map +1 -0
  493. package/src/lib/model/contacts-csv.d.ts +54 -0
  494. package/src/lib/model/contacts-csv.js +67 -0
  495. package/src/lib/model/contacts-csv.js.map +1 -0
  496. package/src/lib/model/contacts-list-seed.d.ts +51 -0
  497. package/src/lib/model/contacts-list-seed.js +63 -0
  498. package/src/lib/model/contacts-list-seed.js.map +1 -0
  499. package/src/lib/model/crm-activity-report.d.ts +27 -0
  500. package/src/lib/model/crm-activity-report.js +56 -0
  501. package/src/lib/model/crm-activity-report.js.map +1 -0
  502. package/src/lib/model/crm-api.d.ts +49 -0
  503. package/src/lib/model/crm-api.js +47 -0
  504. package/src/lib/model/crm-api.js.map +1 -0
  505. package/src/lib/model/crm-bulk-writes.d.ts +147 -0
  506. package/src/lib/model/crm-bulk-writes.js +207 -0
  507. package/src/lib/model/crm-bulk-writes.js.map +1 -0
  508. package/src/lib/model/crm-company-import.d.ts +154 -0
  509. package/src/lib/model/crm-company-import.js +331 -0
  510. package/src/lib/model/crm-company-import.js.map +1 -0
  511. package/src/lib/model/crm-custom-draft.d.ts +62 -0
  512. package/src/lib/model/crm-custom-draft.js +67 -0
  513. package/src/lib/model/crm-custom-draft.js.map +1 -0
  514. package/src/lib/model/crm-deal-import.d.ts +112 -0
  515. package/src/lib/model/crm-deal-import.js +263 -0
  516. package/src/lib/model/crm-deal-import.js.map +1 -0
  517. package/src/lib/model/crm-import.d.ts +244 -0
  518. package/src/lib/model/crm-import.js +466 -0
  519. package/src/lib/model/crm-import.js.map +1 -0
  520. package/src/lib/model/crm-lead-import.d.ts +105 -0
  521. package/src/lib/model/crm-lead-import.js +255 -0
  522. package/src/lib/model/crm-lead-import.js.map +1 -0
  523. package/src/lib/model/crm-record-routes.d.ts +21 -0
  524. package/src/lib/model/crm-record-routes.js +70 -0
  525. package/src/lib/model/crm-record-routes.js.map +1 -0
  526. package/src/lib/model/crm-routes.d.ts +101 -0
  527. package/src/lib/model/crm-routes.js +92 -0
  528. package/src/lib/model/crm-routes.js.map +1 -0
  529. package/src/lib/model/crm-task-import.d.ts +94 -0
  530. package/src/lib/model/crm-task-import.js +275 -0
  531. package/src/lib/model/crm-task-import.js.map +1 -0
  532. package/src/lib/model/crm-view-param.d.ts +43 -0
  533. package/src/lib/model/crm-view-param.js +49 -0
  534. package/src/lib/model/crm-view-param.js.map +1 -0
  535. package/src/lib/model/deal-board-model.d.ts +241 -0
  536. package/src/lib/model/deal-board-model.js +439 -0
  537. package/src/lib/model/deal-board-model.js.map +1 -0
  538. package/src/lib/model/deal-form-model.d.ts +114 -0
  539. package/src/lib/model/deal-form-model.js +218 -0
  540. package/src/lib/model/deal-form-model.js.map +1 -0
  541. package/src/lib/model/deals-csv.d.ts +32 -0
  542. package/src/lib/model/deals-csv.js +37 -0
  543. package/src/lib/model/deals-csv.js.map +1 -0
  544. package/src/lib/model/import-column-shapes.d.ts +36 -0
  545. package/src/lib/model/import-column-shapes.js +76 -0
  546. package/src/lib/model/import-column-shapes.js.map +1 -0
  547. package/src/lib/model/lead-company-suggestion.d.ts +61 -0
  548. package/src/lib/model/lead-company-suggestion.js +65 -0
  549. package/src/lib/model/lead-company-suggestion.js.map +1 -0
  550. package/src/lib/model/lead-filters.d.ts +29 -0
  551. package/src/lib/model/lead-filters.js +39 -0
  552. package/src/lib/model/lead-filters.js.map +1 -0
  553. package/src/lib/model/lead-surfaces.d.ts +58 -0
  554. package/src/lib/model/lead-surfaces.js +67 -0
  555. package/src/lib/model/lead-surfaces.js.map +1 -0
  556. package/src/lib/model/leads-csv.d.ts +40 -0
  557. package/src/lib/model/leads-csv.js +40 -0
  558. package/src/lib/model/leads-csv.js.map +1 -0
  559. package/src/lib/model/next-activity-api.d.ts +31 -0
  560. package/src/lib/model/next-activity-api.js +57 -0
  561. package/src/lib/model/next-activity-api.js.map +1 -0
  562. package/src/lib/model/next-activity.d.ts +64 -0
  563. package/src/lib/model/next-activity.js +47 -0
  564. package/src/lib/model/next-activity.js.map +1 -0
  565. package/src/lib/model/person-key-web.d.ts +43 -0
  566. package/src/lib/model/person-key-web.js +52 -0
  567. package/src/lib/model/person-key-web.js.map +1 -0
  568. package/src/lib/model/record-facts.d.ts +282 -0
  569. package/src/lib/model/record-facts.js +434 -0
  570. package/src/lib/model/record-facts.js.map +1 -0
  571. package/src/lib/model/task-api.d.ts +28 -0
  572. package/src/lib/model/task-api.js +57 -0
  573. package/src/lib/model/task-api.js.map +1 -0
  574. package/src/lib/model/task-calendar.d.ts +108 -0
  575. package/src/lib/model/task-calendar.js +139 -0
  576. package/src/lib/model/task-calendar.js.map +1 -0
  577. package/src/lib/model/task-routes.d.ts +177 -0
  578. package/src/lib/model/task-routes.js +197 -0
  579. package/src/lib/model/task-routes.js.map +1 -0
  580. package/src/lib/model/task-scope.d.ts +45 -0
  581. package/src/lib/model/task-scope.js +51 -0
  582. package/src/lib/model/task-scope.js.map +1 -0
  583. package/src/lib/model/task-views.d.ts +149 -0
  584. package/src/lib/model/task-views.js +286 -0
  585. package/src/lib/model/task-views.js.map +1 -0
  586. package/src/lib/model/tasks-csv.d.ts +28 -0
  587. package/src/lib/model/tasks-csv.js +28 -0
  588. package/src/lib/model/tasks-csv.js.map +1 -0
  589. package/src/lib/plugin.d.ts +32 -0
  590. package/src/lib/plugin.js +208 -0
  591. package/src/lib/plugin.js.map +1 -0
  592. package/src/lib/server/companies-import.d.ts +57 -0
  593. package/src/lib/server/companies-import.js +242 -0
  594. package/src/lib/server/companies-import.js.map +1 -0
  595. package/src/lib/server/company-delete.d.ts +59 -0
  596. package/src/lib/server/company-delete.js +146 -0
  597. package/src/lib/server/company-delete.js.map +1 -0
  598. package/src/lib/server/contact-email-history.d.ts +82 -0
  599. package/src/lib/server/contact-email-history.js +264 -0
  600. package/src/lib/server/contact-email-history.js.map +1 -0
  601. package/src/lib/server/contact-profile.d.ts +41 -0
  602. package/src/lib/server/contact-profile.js +45 -0
  603. package/src/lib/server/contact-profile.js.map +1 -0
  604. package/src/lib/server/contact-update.d.ts +92 -0
  605. package/src/lib/server/contact-update.js +512 -0
  606. package/src/lib/server/contact-update.js.map +1 -0
  607. package/src/lib/server/contacts-import.d.ts +73 -0
  608. package/src/lib/server/contacts-import.js +263 -0
  609. package/src/lib/server/contacts-import.js.map +1 -0
  610. package/src/lib/server/contacts-merge.d.ts +86 -0
  611. package/src/lib/server/contacts-merge.js +206 -0
  612. package/src/lib/server/contacts-merge.js.map +1 -0
  613. package/src/lib/server/deals-import.d.ts +76 -0
  614. package/src/lib/server/deals-import.js +246 -0
  615. package/src/lib/server/deals-import.js.map +1 -0
  616. package/src/lib/server/email-send.d.ts +119 -0
  617. package/src/lib/server/email-send.js +667 -0
  618. package/src/lib/server/email-send.js.map +1 -0
  619. package/src/lib/server/email-template-duplicate.d.ts +19 -0
  620. package/src/lib/server/email-template-duplicate.js +206 -0
  621. package/src/lib/server/email-template-duplicate.js.map +1 -0
  622. package/src/lib/server/erase-person.d.ts +108 -0
  623. package/src/lib/server/erase-person.js +309 -0
  624. package/src/lib/server/erase-person.js.map +1 -0
  625. package/src/lib/server/import-context.d.ts +85 -0
  626. package/src/lib/server/import-context.js +181 -0
  627. package/src/lib/server/import-context.js.map +1 -0
  628. package/src/lib/server/inbound-address.d.ts +61 -0
  629. package/src/lib/server/inbound-address.js +188 -0
  630. package/src/lib/server/inbound-address.js.map +1 -0
  631. package/src/lib/server/lead-convert.d.ts +78 -0
  632. package/src/lib/server/lead-convert.js +250 -0
  633. package/src/lib/server/lead-convert.js.map +1 -0
  634. package/src/lib/server/leads-import.d.ts +84 -0
  635. package/src/lib/server/leads-import.js +261 -0
  636. package/src/lib/server/leads-import.js.map +1 -0
  637. package/src/lib/server/next-activity-routes.d.ts +33 -0
  638. package/src/lib/server/next-activity-routes.js +110 -0
  639. package/src/lib/server/next-activity-routes.js.map +1 -0
  640. package/src/lib/server/org-activity.d.ts +61 -0
  641. package/src/lib/server/org-activity.js +120 -0
  642. package/src/lib/server/org-activity.js.map +1 -0
  643. package/src/lib/server/org-caller.d.ts +110 -0
  644. package/src/lib/server/org-caller.js +154 -0
  645. package/src/lib/server/org-caller.js.map +1 -0
  646. package/src/lib/server/recipe-routes.d.ts +75 -0
  647. package/src/lib/server/recipe-routes.js +442 -0
  648. package/src/lib/server/recipe-routes.js.map +1 -0
  649. package/src/lib/server/record-facts.d.ts +65 -0
  650. package/src/lib/server/record-facts.js +337 -0
  651. package/src/lib/server/record-facts.js.map +1 -0
  652. package/src/lib/server/record-timeline.d.ts +51 -0
  653. package/src/lib/server/record-timeline.js +215 -0
  654. package/src/lib/server/record-timeline.js.map +1 -0
  655. package/src/lib/server/suite-gate.d.ts +42 -0
  656. package/src/lib/server/suite-gate.js +87 -0
  657. package/src/lib/server/suite-gate.js.map +1 -0
  658. package/src/lib/server/task-routes.d.ts +132 -0
  659. package/src/lib/server/task-routes.js +699 -0
  660. package/src/lib/server/task-routes.js.map +1 -0
  661. package/src/lib/server/tasks-import.d.ts +54 -0
  662. package/src/lib/server/tasks-import.js +157 -0
  663. package/src/lib/server/tasks-import.js.map +1 -0
  664. package/src/lib/server-deal-stage.d.ts +88 -0
  665. package/src/lib/server-deal-stage.js +316 -0
  666. package/src/lib/server-deal-stage.js.map +1 -0
  667. package/src/lib/server.d.ts +149 -0
  668. package/src/lib/server.js +615 -0
  669. package/src/lib/server.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/components/task-import-drawer.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\n/**\n * IMPORTING A TASKS FILE — the task vocabulary over the shared drawer\n * (AGL-2662).\n *\n * The server half is `server/tasks-import.ts`. What is particular to\n * tasks: the title is the one cell every row needs, an assignee address\n * that names nobody on the team refuses the ROW rather than filing the\n * task unassigned, no notification is sent, and nothing is merged — a\n * task has no key, so every row is a new task.\n */\n\nimport { pluginDocsHelp } from '@aglyn/aglyn'\nimport {\n TASK_IMPORT_CHUNK_SIZE,\n TASK_IMPORT_FIELD_LABELS,\n TASK_IMPORT_FIELDS,\n TASK_IMPORT_MAX_ROWS,\n TASK_IMPORT_PREVIEW_ROWS,\n TASK_IMPORT_SKIP_LABELS,\n type TaskImportField,\n type TaskImportRawRow,\n type TaskImportSkippedRow,\n emptyTaskImportResult,\n guessTaskImportMapping,\n mapTaskImportRow,\n mergeTaskImportResults,\n taskImportSkippedCsv,\n} from '../model/crm-task-import'\nimport { tasksCsv } from '../model/tasks-csv'\nimport {\n CsvImportButton,\n CsvImportDrawer,\n type CsvImportVocabulary,\n} from './csv-import-drawer'\n\n/** The browser-side address of the route one chunk is posted to. */\nexport const TASKS_IMPORT_URL = '/api/crm/tasks-import'\n\n/** Built once: nothing in it depends on a render. */\nexport const TASK_IMPORT_VOCABULARY: CsvImportVocabulary<\n TaskImportField,\n TaskImportRawRow & Record<string, unknown>,\n TaskImportSkippedRow\n> = {\n title: 'Import tasks from CSV',\n help: pluginDocsHelp('crmTasks', { anchor: '#import-from-csv' }),\n sitePickerHelperText:\n 'The site these tasks are filed from — it decides which of your sites ' +\n 'may see them.',\n intro:\n 'A CSV with a header row. Match its columns to task fields below, check ' +\n 'the preview, then import. An assignee is a team member’s email address; ' +\n 'a row naming somebody who is not on the team is skipped. Nobody is ' +\n 'notified. Every row becomes a new task — importing a file twice files ' +\n `it twice. Up to ${TASK_IMPORT_MAX_ROWS.toLocaleString()} rows per file ` +\n '— split a larger one.',\n fields: TASK_IMPORT_FIELDS,\n fieldLabels: TASK_IMPORT_FIELD_LABELS,\n requiredField: 'title',\n requiredWarning:\n 'Choose which column holds the task title. It is the one field every ' +\n 'row needs.',\n unusableNotice: (count, total) =>\n `${count.toLocaleString()} of ${total.toLocaleString()} rows have no ` +\n 'title and will be skipped. You can download them after the import.',\n guessMapping: guessTaskImportMapping,\n mapRow: (cells, mapping) =>\n mapTaskImportRow(cells, mapping) as TaskImportRawRow & Record<string, unknown>,\n route: TASKS_IMPORT_URL,\n maxRows: TASK_IMPORT_MAX_ROWS,\n chunkSize: TASK_IMPORT_CHUNK_SIZE,\n previewRows: TASK_IMPORT_PREVIEW_ROWS,\n emptyResult: emptyTaskImportResult,\n mergeResults: mergeTaskImportResults,\n skipLabels: TASK_IMPORT_SKIP_LABELS,\n skippedCsv: taskImportSkippedCsv,\n skippedFileName: 'skipped-tasks.csv',\n // The export's own header over no rows, so an export re-imports as is.\n templateCsv: () => tasksCsv([]),\n templateFileName: 'tasks-template.csv',\n}\n\nexport interface TaskImportDrawerProps {\n open: boolean\n onClose: () => void\n /** The site the file is filed from, or `null` at the organization level. */\n hostId: string | null\n}\n\nexport function TaskImportDrawer(props: TaskImportDrawerProps) {\n const { open, onClose, hostId } = props\n return (\n <CsvImportDrawer\n open={open}\n onClose={onClose}\n hostId={hostId}\n vocabulary={TASK_IMPORT_VOCABULARY}\n />\n )\n}\nTaskImportDrawer.displayName = 'TaskImportDrawer'\n\n/** The \"Import CSV\" action on the tasks list, with the drawer it opens. */\nexport function TaskImportButton(props: { hostId: string | null }) {\n const { hostId } = props\n return (\n <CsvImportButton>\n {(open, onClose) => <TaskImportDrawer open={open} onClose={onClose} hostId={hostId} />}\n </CsvImportButton>\n )\n}\nTaskImportButton.displayName = 'TaskImportButton'\n\nexport default TaskImportDrawer\n"],"names":["pluginDocsHelp","TASK_IMPORT_CHUNK_SIZE","TASK_IMPORT_FIELD_LABELS","TASK_IMPORT_FIELDS","TASK_IMPORT_MAX_ROWS","TASK_IMPORT_PREVIEW_ROWS","TASK_IMPORT_SKIP_LABELS","emptyTaskImportResult","guessTaskImportMapping","mapTaskImportRow","mergeTaskImportResults","taskImportSkippedCsv","tasksCsv","CsvImportButton","CsvImportDrawer","TASKS_IMPORT_URL","TASK_IMPORT_VOCABULARY","title","help","anchor","sitePickerHelperText","intro","toLocaleString","fields","fieldLabels","requiredField","requiredWarning","unusableNotice","count","total","guessMapping","mapRow","cells","mapping","route","maxRows","chunkSize","previewRows","emptyResult","mergeResults","skipLabels","skippedCsv","skippedFileName","templateCsv","templateFileName","TaskImportDrawer","props","open","onClose","hostId","vocabulary","displayName","TaskImportButton"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD;;AAEA;;;;;;;;;CASC,GAED,SAASA,cAAc,QAAQ,eAAc;AAC7C,SACEC,sBAAsB,EACtBC,wBAAwB,EACxBC,kBAAkB,EAClBC,oBAAoB,EACpBC,wBAAwB,EACxBC,uBAAuB,EAIvBC,qBAAqB,EACrBC,sBAAsB,EACtBC,gBAAgB,EAChBC,sBAAsB,EACtBC,oBAAoB,QACf,8BAA0B;AACjC,SAASC,QAAQ,QAAQ,wBAAoB;AAC7C,SACEC,eAAe,EACfC,eAAe,QAEV,yBAAqB;AAE5B,kEAAkE,GAClE,OAAO,MAAMC,mBAAmB,wBAAuB;AAEvD,mDAAmD,GACnD,OAAO,MAAMC,yBAIT;IACFC,OAAO;IACPC,MAAMlB,eAAe,YAAY;QAAEmB,QAAQ;IAAmB;IAC9DC,sBACE,0EACA;IACFC,OACE,4EACA,6EACA,wEACA,2EACA,CAAC,gBAAgB,EAAEjB,qBAAqBkB,cAAc,GAAG,eAAe,CAAC,GACzE;IACFC,QAAQpB;IACRqB,aAAatB;IACbuB,eAAe;IACfC,iBACE,yEACA;IACFC,gBAAgB,CAACC,OAAOC,QACtB,GAAGD,MAAMN,cAAc,GAAG,IAAI,EAAEO,MAAMP,cAAc,GAAG,cAAc,CAAC,GACtE;IACFQ,cAActB;IACduB,QAAQ,CAACC,OAAOC,UACdxB,iBAAiBuB,OAAOC;IAC1BC,OAAOnB;IACPoB,SAAS/B;IACTgC,WAAWnC;IACXoC,aAAahC;IACbiC,aAAa/B;IACbgC,cAAc7B;IACd8B,YAAYlC;IACZmC,YAAY9B;IACZ+B,iBAAiB;IACjB,uEAAuE;IACvEC,aAAa,IAAM/B,SAAS,EAAE;IAC9BgC,kBAAkB;AACpB,EAAC;AASD,OAAO,SAASC,iBAAiBC,KAA4B;IAC3D,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGH;IAClC,qBACE,KAAChC;QACCiC,MAAMA;QACNC,SAASA;QACTC,QAAQA;QACRC,YAAYlC;;AAGlB;AACA6B,iBAAiBM,WAAW,GAAG;AAE/B,yEAAyE,GACzE,OAAO,SAASC,iBAAiBN,KAAgC;IAC/D,MAAM,EAAEG,MAAM,EAAE,GAAGH;IACnB,qBACE,KAACjC;kBACE,CAACkC,MAAMC,wBAAY,KAACH;gBAAiBE,MAAMA;gBAAMC,SAASA;gBAASC,QAAQA;;;AAGlF;AACAG,iBAAiBD,WAAW,GAAG;AAE/B,eAAeN,iBAAgB"}
@@ -0,0 +1,65 @@
1
+ import type { CrmTaskRouteScope } from '../model/task-routes';
2
+ /**
3
+ * What a chosen date does.
4
+ *
5
+ * `write` is the one-field write on the stored task — a row's snooze, and
6
+ * the drawer's for a task that exists. `pick` hands the date back to a form
7
+ * that has no document yet, so "New task" can offer the same three choices
8
+ * for its due date and the save is the write.
9
+ */
10
+ export type TaskSnoozeTarget = {
11
+ write: {
12
+ scope: readonly [string, string];
13
+ taskId: string;
14
+ /**
15
+ * The route scope and the records the task names (AGL-2661): a
16
+ * snooze moves the due date the records' next activity is read
17
+ * from, and a client-direct write has to say so itself.
18
+ */
19
+ call?: CrmTaskRouteScope | null;
20
+ links?: {
21
+ contactId?: string | null;
22
+ companyId?: string | null;
23
+ dealId?: string | null;
24
+ };
25
+ };
26
+ } | {
27
+ pick: (dueAtMs: number) => void;
28
+ };
29
+ export interface TaskSnoozeMenuProps {
30
+ /** The task's current due date; the time of day is kept across a snooze. */
31
+ dueAtMs: number | null | undefined;
32
+ target: TaskSnoozeTarget;
33
+ /**
34
+ * The task's reminder (AGL-2659), so one that sits on the due time
35
+ * follows the snooze the way a save would carry it. Absent, a snooze
36
+ * moves the due date alone.
37
+ */
38
+ remindAtMs?: number | null;
39
+ /** An icon on a row, a labeled button in the drawer. */
40
+ variant?: 'icon' | 'button';
41
+ disabled?: boolean;
42
+ /** Told the new due date once it is applied, so a form holding a copy can follow. */
43
+ onSnoozed?: (dueAtMs: number) => void;
44
+ }
45
+ /**
46
+ * Tomorrow, next week, or a date — one write (AGL-2619).
47
+ *
48
+ * A snooze is the smallest edit a task has: the due date moves and nothing
49
+ * else changes. So it is a client-direct `updateDoc` of that one field,
50
+ * under the same rule any CRM update answers to, and not a trip through
51
+ * `crm/task-save` — that route rewrites every field and exists for the side
52
+ * effects a save has (an assignee's notification), of which a snooze has
53
+ * none. Writing one field is also why this needs no seed guard: the hazard
54
+ * the drawer guards against is a whole form of stale values going back
55
+ * over newer ones, and a single new value has no stale neighbors.
56
+ *
57
+ * Every click inside stops at this component's edge, menu and dialog
58
+ * included, because the row it sits on opens the drawer on click and a
59
+ * snooze is not an edit.
60
+ */
61
+ export declare function TaskSnoozeMenu(props: TaskSnoozeMenuProps): import("react").JSX.Element;
62
+ export declare namespace TaskSnoozeMenu {
63
+ var displayName: string;
64
+ }
65
+ export default TaskSnoozeMenu;
@@ -0,0 +1,207 @@
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 { CRM_COLLECTIONS } from "@aglyn/aglyn";
20
+ import { mdiAlarmSnooze } from "@aglyn/shared-data-mdi";
21
+ import { MdiIcon } from "@aglyn/shared-ui-jsx";
22
+ import { useSnackbar } from "@aglyn/shared-ui-snackstack";
23
+ import { useFirestore, useUser } from "@aglyn/tenant-feature-instance";
24
+ import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, IconButton, Menu, MenuItem, TextField, Tooltip } from "@mui/material";
25
+ import { deleteField, doc, serverTimestamp, updateDoc } from "firebase/firestore";
26
+ import { useState } from "react";
27
+ import { refreshCrmNextActivity } from "../model/next-activity-api.js";
28
+ import { CRM_TASK_SNOOZE_OPTIONS, describeTaskDue, dueAtToLocalInput, localInputToDueAt, snoozeDueAt } from "../model/task-views.js";
29
+ /**
30
+ * Tomorrow, next week, or a date — one write (AGL-2619).
31
+ *
32
+ * A snooze is the smallest edit a task has: the due date moves and nothing
33
+ * else changes. So it is a client-direct `updateDoc` of that one field,
34
+ * under the same rule any CRM update answers to, and not a trip through
35
+ * `crm/task-save` — that route rewrites every field and exists for the side
36
+ * effects a save has (an assignee's notification), of which a snooze has
37
+ * none. Writing one field is also why this needs no seed guard: the hazard
38
+ * the drawer guards against is a whole form of stale values going back
39
+ * over newer ones, and a single new value has no stale neighbors.
40
+ *
41
+ * Every click inside stops at this component's edge, menu and dialog
42
+ * included, because the row it sits on opens the drawer on click and a
43
+ * snooze is not an edit.
44
+ */ export function TaskSnoozeMenu(props) {
45
+ const { dueAtMs, target, remindAtMs, variant = 'icon', disabled, onSnoozed } = props;
46
+ const { data: user } = useUser();
47
+ const firestore = useFirestore();
48
+ const { enqueueSnackbar } = useSnackbar();
49
+ const [anchor, setAnchor] = useState(null);
50
+ const [picking, setPicking] = useState(false);
51
+ const [picked, setPicked] = useState('');
52
+ const [busy, setBusy] = useState(false);
53
+ const apply = async (next)=>{
54
+ setAnchor(null);
55
+ setPicking(false);
56
+ if ('pick' in target) {
57
+ target.pick(next);
58
+ onSnoozed == null ? void 0 : onSnoozed(next);
59
+ return;
60
+ }
61
+ setBusy(true);
62
+ try {
63
+ var _target_write_call, _target_write_links;
64
+ const { scope, taskId } = target.write;
65
+ // A reminder on the old due time is a reminder on the new one, and
66
+ // a moved reminder is one not yet sent — the save route's own rule.
67
+ const follows = typeof remindAtMs === 'number' && remindAtMs === dueAtMs;
68
+ await updateDoc(doc(firestore, scope[0], scope[1], CRM_COLLECTIONS.tasks, taskId), _extends({
69
+ dueAtMs: next
70
+ }, follows ? {
71
+ remindAtMs: next,
72
+ reminderSentAtMs: deleteField()
73
+ } : {}, {
74
+ updatedAt: serverTimestamp()
75
+ }));
76
+ enqueueSnackbar(`Snoozed until ${describeTaskDue({
77
+ status: 'open',
78
+ dueAtMs: next
79
+ }, Date.now()).label}`, {
80
+ variant: 'success'
81
+ });
82
+ onSnoozed == null ? void 0 : onSnoozed(next);
83
+ await refreshCrmNextActivity(user, (_target_write_call = target.write.call) != null ? _target_write_call : null, [
84
+ (_target_write_links = target.write.links) != null ? _target_write_links : {}
85
+ ]);
86
+ } catch (cause) {
87
+ enqueueSnackbar(cause instanceof Error ? cause.message : 'The task could not be snoozed.', {
88
+ variant: 'warning'
89
+ });
90
+ } finally{
91
+ setBusy(false);
92
+ }
93
+ };
94
+ const choose = (option)=>{
95
+ void apply(snoozeDueAt(option, dueAtMs, Date.now()));
96
+ };
97
+ const openPicker = ()=>{
98
+ setAnchor(null);
99
+ // Tomorrow at the task's own time is where a person usually starts.
100
+ setPicked(dueAtToLocalInput(snoozeDueAt('tomorrow', dueAtMs, Date.now())));
101
+ setPicking(true);
102
+ };
103
+ const pickedMs = localInputToDueAt(picked);
104
+ const confirmPick = ()=>{
105
+ if (pickedMs === null) return;
106
+ void apply(pickedMs);
107
+ };
108
+ const stop = (event)=>event.stopPropagation();
109
+ const open = (event)=>setAnchor(event.currentTarget);
110
+ const idle = !disabled && !busy;
111
+ return /*#__PURE__*/ _jsxs(Box, {
112
+ component: "span",
113
+ onClick: stop,
114
+ sx: {
115
+ display: 'inline-flex'
116
+ },
117
+ children: [
118
+ variant === 'button' ? /*#__PURE__*/ _jsx(Button, {
119
+ size: "small",
120
+ onClick: open,
121
+ disabled: !idle,
122
+ startIcon: /*#__PURE__*/ _jsx(MdiIcon, {
123
+ path: mdiAlarmSnooze.path,
124
+ fontSize: "small"
125
+ }),
126
+ children: 'Snooze'
127
+ }) : /*#__PURE__*/ _jsx(Tooltip, {
128
+ title: "Snooze",
129
+ children: /*#__PURE__*/ _jsx("span", {
130
+ children: /*#__PURE__*/ _jsx(IconButton, {
131
+ size: "small",
132
+ "aria-label": "Snooze",
133
+ onClick: open,
134
+ disabled: !idle,
135
+ children: /*#__PURE__*/ _jsx(MdiIcon, {
136
+ path: mdiAlarmSnooze.path,
137
+ fontSize: "small"
138
+ })
139
+ })
140
+ })
141
+ }),
142
+ /*#__PURE__*/ _jsxs(Menu, {
143
+ anchorEl: anchor,
144
+ open: Boolean(anchor),
145
+ onClose: ()=>setAnchor(null),
146
+ children: [
147
+ CRM_TASK_SNOOZE_OPTIONS.map((option)=>/*#__PURE__*/ _jsx(MenuItem, {
148
+ onClick: ()=>choose(option.id),
149
+ children: option.label
150
+ }, option.id)),
151
+ /*#__PURE__*/ _jsx(MenuItem, {
152
+ onClick: openPicker,
153
+ children: 'Pick a date…'
154
+ })
155
+ ]
156
+ }),
157
+ /*#__PURE__*/ _jsxs(Dialog, {
158
+ open: picking,
159
+ onClose: ()=>setPicking(false),
160
+ maxWidth: "xs",
161
+ fullWidth: true,
162
+ children: [
163
+ /*#__PURE__*/ _jsx(DialogTitle, {
164
+ children: 'Snooze until'
165
+ }),
166
+ /*#__PURE__*/ _jsx(DialogContent, {
167
+ children: /*#__PURE__*/ _jsx(TextField, {
168
+ label: "Due",
169
+ type: "datetime-local",
170
+ value: picked,
171
+ onChange: (event)=>setPicked(event.target.value),
172
+ size: "small",
173
+ fullWidth: true,
174
+ autoFocus: true,
175
+ slotProps: {
176
+ inputLabel: {
177
+ shrink: true
178
+ }
179
+ },
180
+ sx: {
181
+ mt: 1
182
+ }
183
+ })
184
+ }),
185
+ /*#__PURE__*/ _jsxs(DialogActions, {
186
+ children: [
187
+ /*#__PURE__*/ _jsx(Button, {
188
+ onClick: ()=>setPicking(false),
189
+ children: 'Cancel'
190
+ }),
191
+ /*#__PURE__*/ _jsx(Button, {
192
+ variant: "contained",
193
+ onClick: confirmPick,
194
+ disabled: pickedMs === null,
195
+ children: 'Snooze'
196
+ })
197
+ ]
198
+ })
199
+ ]
200
+ })
201
+ ]
202
+ });
203
+ }
204
+ TaskSnoozeMenu.displayName = 'TaskSnoozeMenu';
205
+ export default TaskSnoozeMenu;
206
+
207
+ //# sourceMappingURL=task-snooze-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/components/task-snooze-menu.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 { CRM_COLLECTIONS } from '@aglyn/aglyn'\nimport { mdiAlarmSnooze } from '@aglyn/shared-data-mdi'\nimport { MdiIcon } from '@aglyn/shared-ui-jsx'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport { useFirestore, useUser } from '@aglyn/tenant-feature-instance'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Menu,\n MenuItem,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { deleteField, doc, serverTimestamp, updateDoc } from 'firebase/firestore'\nimport { useState } from 'react'\nimport { refreshCrmNextActivity } from '../model/next-activity-api'\nimport type { CrmTaskRouteScope } from '../model/task-routes'\nimport {\n CRM_TASK_SNOOZE_OPTIONS,\n type CrmTaskSnoozeOption,\n describeTaskDue,\n dueAtToLocalInput,\n localInputToDueAt,\n snoozeDueAt,\n} from '../model/task-views'\n\n/**\n * What a chosen date does.\n *\n * `write` is the one-field write on the stored task — a row's snooze, and\n * the drawer's for a task that exists. `pick` hands the date back to a form\n * that has no document yet, so \"New task\" can offer the same three choices\n * for its due date and the save is the write.\n */\nexport type TaskSnoozeTarget =\n | {\n write: {\n scope: readonly [string, string]\n taskId: string\n /**\n * The route scope and the records the task names (AGL-2661): a\n * snooze moves the due date the records' next activity is read\n * from, and a client-direct write has to say so itself.\n */\n call?: CrmTaskRouteScope | null\n links?: { contactId?: string | null; companyId?: string | null; dealId?: string | null }\n }\n }\n | { pick: (dueAtMs: number) => void }\n\nexport interface TaskSnoozeMenuProps {\n /** The task's current due date; the time of day is kept across a snooze. */\n dueAtMs: number | null | undefined\n target: TaskSnoozeTarget\n /**\n * The task's reminder (AGL-2659), so one that sits on the due time\n * follows the snooze the way a save would carry it. Absent, a snooze\n * moves the due date alone.\n */\n remindAtMs?: number | null\n /** An icon on a row, a labeled button in the drawer. */\n variant?: 'icon' | 'button'\n disabled?: boolean\n /** Told the new due date once it is applied, so a form holding a copy can follow. */\n onSnoozed?: (dueAtMs: number) => void\n}\n\n/**\n * Tomorrow, next week, or a date — one write (AGL-2619).\n *\n * A snooze is the smallest edit a task has: the due date moves and nothing\n * else changes. So it is a client-direct `updateDoc` of that one field,\n * under the same rule any CRM update answers to, and not a trip through\n * `crm/task-save` — that route rewrites every field and exists for the side\n * effects a save has (an assignee's notification), of which a snooze has\n * none. Writing one field is also why this needs no seed guard: the hazard\n * the drawer guards against is a whole form of stale values going back\n * over newer ones, and a single new value has no stale neighbors.\n *\n * Every click inside stops at this component's edge, menu and dialog\n * included, because the row it sits on opens the drawer on click and a\n * snooze is not an edit.\n */\nexport function TaskSnoozeMenu(props: TaskSnoozeMenuProps) {\n const { dueAtMs, target, remindAtMs, variant = 'icon', disabled, onSnoozed } = props\n const { data: user } = useUser()\n const firestore = useFirestore()\n const { enqueueSnackbar } = useSnackbar()\n const [anchor, setAnchor] = useState<HTMLElement | null>(null)\n const [picking, setPicking] = useState(false)\n const [picked, setPicked] = useState('')\n const [busy, setBusy] = useState(false)\n\n const apply = async (next: number) => {\n setAnchor(null)\n setPicking(false)\n if ('pick' in target) {\n target.pick(next)\n onSnoozed?.(next)\n return\n }\n setBusy(true)\n try {\n const { scope, taskId } = target.write\n // A reminder on the old due time is a reminder on the new one, and\n // a moved reminder is one not yet sent — the save route's own rule.\n const follows = typeof remindAtMs === 'number' && remindAtMs === dueAtMs\n await updateDoc(doc(firestore, scope[0], scope[1], CRM_COLLECTIONS.tasks, taskId), {\n dueAtMs: next,\n ...(follows ? { remindAtMs: next, reminderSentAtMs: deleteField() } : {}),\n updatedAt: serverTimestamp(),\n })\n enqueueSnackbar(\n `Snoozed until ${describeTaskDue({ status: 'open', dueAtMs: next }, Date.now()).label}`,\n { variant: 'success' },\n )\n onSnoozed?.(next)\n await refreshCrmNextActivity(user, target.write.call ?? null, [target.write.links ?? {}])\n } catch (cause) {\n enqueueSnackbar(\n cause instanceof Error ? cause.message : 'The task could not be snoozed.',\n { variant: 'warning' },\n )\n } finally {\n setBusy(false)\n }\n }\n\n const choose = (option: CrmTaskSnoozeOption) => {\n void apply(snoozeDueAt(option, dueAtMs, Date.now()))\n }\n const openPicker = () => {\n setAnchor(null)\n // Tomorrow at the task's own time is where a person usually starts.\n setPicked(dueAtToLocalInput(snoozeDueAt('tomorrow', dueAtMs, Date.now())))\n setPicking(true)\n }\n const pickedMs = localInputToDueAt(picked)\n const confirmPick = () => {\n if (pickedMs === null) return\n void apply(pickedMs)\n }\n const stop = (event: { stopPropagation: () => void }) => event.stopPropagation()\n const open = (event: { currentTarget: HTMLElement }) => setAnchor(event.currentTarget)\n const idle = !disabled && !busy\n\n return (\n <Box component=\"span\" onClick={stop} sx={{ display: 'inline-flex' }}>\n {variant === 'button' ? (\n <Button\n size=\"small\"\n onClick={open}\n disabled={!idle}\n startIcon={<MdiIcon path={mdiAlarmSnooze.path} fontSize=\"small\" />}\n >\n {'Snooze'}\n </Button>\n ) : (\n <Tooltip title=\"Snooze\">\n <span>\n <IconButton size=\"small\" aria-label=\"Snooze\" onClick={open} disabled={!idle}>\n <MdiIcon path={mdiAlarmSnooze.path} fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n )}\n <Menu anchorEl={anchor} open={Boolean(anchor)} onClose={() => setAnchor(null)}>\n {CRM_TASK_SNOOZE_OPTIONS.map((option) => (\n <MenuItem key={option.id} onClick={() => choose(option.id)}>\n {option.label}\n </MenuItem>\n ))}\n <MenuItem onClick={openPicker}>{'Pick a date…'}</MenuItem>\n </Menu>\n <Dialog open={picking} onClose={() => setPicking(false)} maxWidth=\"xs\" fullWidth>\n <DialogTitle>{'Snooze until'}</DialogTitle>\n <DialogContent>\n <TextField\n label=\"Due\"\n type=\"datetime-local\"\n value={picked}\n onChange={(event) => setPicked(event.target.value)}\n size=\"small\"\n fullWidth\n autoFocus\n slotProps={{ inputLabel: { shrink: true } }}\n sx={{ mt: 1 }}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setPicking(false)}>{'Cancel'}</Button>\n <Button variant=\"contained\" onClick={confirmPick} disabled={pickedMs === null}>\n {'Snooze'}\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n )\n}\nTaskSnoozeMenu.displayName = 'TaskSnoozeMenu'\n\nexport default TaskSnoozeMenu\n"],"names":["CRM_COLLECTIONS","mdiAlarmSnooze","MdiIcon","useSnackbar","useFirestore","useUser","Box","Button","Dialog","DialogActions","DialogContent","DialogTitle","IconButton","Menu","MenuItem","TextField","Tooltip","deleteField","doc","serverTimestamp","updateDoc","useState","refreshCrmNextActivity","CRM_TASK_SNOOZE_OPTIONS","describeTaskDue","dueAtToLocalInput","localInputToDueAt","snoozeDueAt","TaskSnoozeMenu","props","dueAtMs","target","remindAtMs","variant","disabled","onSnoozed","data","user","firestore","enqueueSnackbar","anchor","setAnchor","picking","setPicking","picked","setPicked","busy","setBusy","apply","next","pick","scope","taskId","write","follows","tasks","reminderSentAtMs","updatedAt","status","Date","now","label","call","links","cause","Error","message","choose","option","openPicker","pickedMs","confirmPick","stop","event","stopPropagation","open","currentTarget","idle","component","onClick","sx","display","size","startIcon","path","fontSize","title","span","aria-label","anchorEl","Boolean","onClose","map","id","maxWidth","fullWidth","type","value","onChange","autoFocus","slotProps","inputLabel","shrink","mt","displayName"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { CrmTaskRow } from '../hooks/use-crm-tasks';
2
+ import type { OrgMemberDirectory } from '../hooks/use-org-member-directory';
3
+ import { type TaskCsvOptions } from '../model/tasks-csv';
4
+ export interface TasksBulkBarProps {
5
+ /**
6
+ * The site the task routes run as, or `null` at the organization level
7
+ * (AGL-2630), where the routes run as the org — their batch form, one
8
+ * request per action (AGL-2637).
9
+ */
10
+ hostId: string | null;
11
+ /** `['orgs', orgId]`, or `null` while the org is unresolved. */
12
+ scope: readonly [string, string] | null;
13
+ rows: readonly CrmTaskRow[];
14
+ selected: readonly string[];
15
+ onSelectedChange: (ids: string[]) => void;
16
+ /** The section's roster — already read for the Assignee column. */
17
+ directory: OrgMemberDirectory;
18
+ /** How the export names the assignee and the linked records — the list's own. */
19
+ csv?: TaskCsvOptions;
20
+ }
21
+ export declare function TasksBulkBar(props: TasksBulkBarProps): import("react").JSX.Element;
22
+ export declare namespace TasksBulkBar {
23
+ var displayName: string;
24
+ }
25
+ export default TasksBulkBar;