@kelpie/ui 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/resource.d.ts +59 -6
- package/dist/api/resource.d.ts.map +1 -1
- package/dist/api/resource.js +106 -24
- package/dist/api/resource.js.map +1 -1
- package/dist/api/resources/companies.d.ts +2 -0
- package/dist/api/resources/companies.d.ts.map +1 -1
- package/dist/api/resources/companies.js +5 -1
- package/dist/api/resources/companies.js.map +1 -1
- package/dist/api/resources/consentPurposes.d.ts +13 -0
- package/dist/api/resources/consentPurposes.d.ts.map +1 -0
- package/dist/api/resources/consentPurposes.js +39 -0
- package/dist/api/resources/consentPurposes.js.map +1 -0
- package/dist/api/resources/customFields.d.ts +15 -0
- package/dist/api/resources/customFields.d.ts.map +1 -0
- package/dist/api/resources/customFields.js +41 -0
- package/dist/api/resources/customFields.js.map +1 -0
- package/dist/api/resources/decisions.d.ts +2 -0
- package/dist/api/resources/decisions.d.ts.map +1 -1
- package/dist/api/resources/decisions.js +1 -0
- package/dist/api/resources/decisions.js.map +1 -1
- package/dist/api/resources/emailDomainLinker.d.ts +16 -0
- package/dist/api/resources/emailDomainLinker.d.ts.map +1 -0
- package/dist/api/resources/emailDomainLinker.js +16 -0
- package/dist/api/resources/emailDomainLinker.js.map +1 -0
- package/dist/api/resources/enquiries.d.ts +39 -0
- package/dist/api/resources/enquiries.d.ts.map +1 -0
- package/dist/api/resources/enquiries.js +68 -0
- package/dist/api/resources/enquiries.js.map +1 -0
- package/dist/api/resources/forms.d.ts +21 -1
- package/dist/api/resources/forms.d.ts.map +1 -1
- package/dist/api/resources/forms.js +44 -17
- package/dist/api/resources/forms.js.map +1 -1
- package/dist/api/resources/handbookPages.d.ts +1 -1
- package/dist/api/resources/handbookPages.js +1 -1
- package/dist/api/resources/importJobs.d.ts +5 -0
- package/dist/api/resources/importJobs.d.ts.map +1 -1
- package/dist/api/resources/importJobs.js +3 -0
- package/dist/api/resources/importJobs.js.map +1 -1
- package/dist/api/resources/listMembers.d.ts +27 -0
- package/dist/api/resources/listMembers.d.ts.map +1 -0
- package/dist/api/resources/listMembers.js +108 -0
- package/dist/api/resources/listMembers.js.map +1 -0
- package/dist/api/resources/lists.d.ts +14 -0
- package/dist/api/resources/lists.d.ts.map +1 -0
- package/dist/api/resources/lists.js +34 -0
- package/dist/api/resources/lists.js.map +1 -0
- package/dist/api/resources/opportunities.d.ts +2 -0
- package/dist/api/resources/opportunities.d.ts.map +1 -1
- package/dist/api/resources/opportunities.js +1 -0
- package/dist/api/resources/opportunities.js.map +1 -1
- package/dist/api/resources/people.d.ts.map +1 -1
- package/dist/api/resources/people.js +4 -1
- package/dist/api/resources/people.js.map +1 -1
- package/dist/api/resources/roles.d.ts +2 -0
- package/dist/api/resources/roles.d.ts.map +1 -1
- package/dist/api/resources/roles.js +1 -1
- package/dist/api/resources/roles.js.map +1 -1
- package/dist/api/resources/sampleData.d.ts +17 -0
- package/dist/api/resources/sampleData.d.ts.map +1 -0
- package/dist/api/resources/sampleData.js +31 -0
- package/dist/api/resources/sampleData.js.map +1 -0
- package/dist/api/resources/webhooks.d.ts.map +1 -1
- package/dist/api/resources/webhooks.js +7 -22
- package/dist/api/resources/webhooks.js.map +1 -1
- package/dist/app/KelpieApp.d.ts.map +1 -1
- package/dist/app/KelpieApp.js +9 -1
- package/dist/app/KelpieApp.js.map +1 -1
- package/dist/components/ActivitiesPanel.d.ts.map +1 -1
- package/dist/components/ActivitiesPanel.js +3 -1
- package/dist/components/ActivitiesPanel.js.map +1 -1
- package/dist/components/ColumnPicker.d.ts +24 -0
- package/dist/components/ColumnPicker.d.ts.map +1 -0
- package/dist/components/ColumnPicker.js +56 -0
- package/dist/components/ColumnPicker.js.map +1 -0
- package/dist/components/CustomFieldsPanel.d.ts +23 -0
- package/dist/components/CustomFieldsPanel.d.ts.map +1 -0
- package/dist/components/CustomFieldsPanel.js +116 -0
- package/dist/components/CustomFieldsPanel.js.map +1 -0
- package/dist/components/DataTable.d.ts +16 -1
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable.js +51 -10
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DecisionsPanel.d.ts.map +1 -1
- package/dist/components/DecisionsPanel.js +4 -3
- package/dist/components/DecisionsPanel.js.map +1 -1
- package/dist/components/EntitySearch.d.ts.map +1 -1
- package/dist/components/EntitySearch.js +11 -5
- package/dist/components/EntitySearch.js.map +1 -1
- package/dist/components/FormsPanel.d.ts +18 -0
- package/dist/components/FormsPanel.d.ts.map +1 -0
- package/dist/components/FormsPanel.js +37 -0
- package/dist/components/FormsPanel.js.map +1 -0
- package/dist/components/ListsPanel.d.ts +14 -0
- package/dist/components/ListsPanel.d.ts.map +1 -0
- package/dist/components/ListsPanel.js +56 -0
- package/dist/components/ListsPanel.js.map +1 -0
- package/dist/components/NotesPanel.d.ts.map +1 -1
- package/dist/components/NotesPanel.js +6 -5
- package/dist/components/NotesPanel.js.map +1 -1
- package/dist/components/Paginator.d.ts +26 -0
- package/dist/components/Paginator.d.ts.map +1 -0
- package/dist/components/Paginator.js +16 -0
- package/dist/components/Paginator.js.map +1 -0
- package/dist/components/PlanAttention.d.ts +3 -2
- package/dist/components/PlanAttention.d.ts.map +1 -1
- package/dist/components/PlanAttention.js +7 -3
- package/dist/components/PlanAttention.js.map +1 -1
- package/dist/components/PlanPanel.d.ts.map +1 -1
- package/dist/components/PlanPanel.js +2 -1
- package/dist/components/PlanPanel.js.map +1 -1
- package/dist/components/Shell.d.ts.map +1 -1
- package/dist/components/Shell.js +4 -0
- package/dist/components/Shell.js.map +1 -1
- package/dist/components/useHasCustomFields.d.ts +13 -0
- package/dist/components/useHasCustomFields.d.ts.map +1 -0
- package/dist/components/useHasCustomFields.js +16 -0
- package/dist/components/useHasCustomFields.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/listView.d.ts +15 -0
- package/dist/lib/listView.d.ts.map +1 -0
- package/dist/lib/listView.js +66 -0
- package/dist/lib/listView.js.map +1 -0
- package/dist/lib/sort.d.ts +43 -0
- package/dist/lib/sort.d.ts.map +1 -0
- package/dist/lib/sort.js +102 -0
- package/dist/lib/sort.js.map +1 -0
- package/dist/pages/CompaniesPage.d.ts.map +1 -1
- package/dist/pages/CompaniesPage.js +88 -3
- package/dist/pages/CompaniesPage.js.map +1 -1
- package/dist/pages/CompanyDetail.d.ts.map +1 -1
- package/dist/pages/CompanyDetail.js +40 -15
- package/dist/pages/CompanyDetail.js.map +1 -1
- package/dist/pages/DealDetail.d.ts.map +1 -1
- package/dist/pages/DealDetail.js +20 -1
- package/dist/pages/DealDetail.js.map +1 -1
- package/dist/pages/DealsPage.d.ts.map +1 -1
- package/dist/pages/DealsPage.js +134 -14
- package/dist/pages/DealsPage.js.map +1 -1
- package/dist/pages/DecisionsPage.d.ts.map +1 -1
- package/dist/pages/DecisionsPage.js +52 -8
- package/dist/pages/DecisionsPage.js.map +1 -1
- package/dist/pages/EnquiriesPage.d.ts +2 -0
- package/dist/pages/EnquiriesPage.d.ts.map +1 -0
- package/dist/pages/EnquiriesPage.js +251 -0
- package/dist/pages/EnquiriesPage.js.map +1 -0
- package/dist/pages/EnquiryDetail.d.ts +2 -0
- package/dist/pages/EnquiryDetail.d.ts.map +1 -0
- package/dist/pages/EnquiryDetail.js +207 -0
- package/dist/pages/EnquiryDetail.js.map +1 -0
- package/dist/pages/EnquiryStageSettingsPage.d.ts +3 -0
- package/dist/pages/EnquiryStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/EnquiryStageSettingsPage.js +34 -0
- package/dist/pages/EnquiryStageSettingsPage.js.map +1 -0
- package/dist/pages/FormDetail.d.ts.map +1 -1
- package/dist/pages/FormDetail.js +19 -1
- package/dist/pages/FormDetail.js.map +1 -1
- package/dist/pages/FormsPage.d.ts.map +1 -1
- package/dist/pages/FormsPage.js +53 -2
- package/dist/pages/FormsPage.js.map +1 -1
- package/dist/pages/FundraisingPage.d.ts.map +1 -1
- package/dist/pages/FundraisingPage.js +116 -14
- package/dist/pages/FundraisingPage.js.map +1 -1
- package/dist/pages/HiringPage.d.ts.map +1 -1
- package/dist/pages/HiringPage.js +27 -4
- package/dist/pages/HiringPage.js.map +1 -1
- package/dist/pages/ListDetail.d.ts +11 -0
- package/dist/pages/ListDetail.d.ts.map +1 -0
- package/dist/pages/ListDetail.js +214 -0
- package/dist/pages/ListDetail.js.map +1 -0
- package/dist/pages/ListsPage.d.ts +9 -0
- package/dist/pages/ListsPage.d.ts.map +1 -0
- package/dist/pages/ListsPage.js +125 -0
- package/dist/pages/ListsPage.js.map +1 -0
- package/dist/pages/OpportunitiesPage.d.ts.map +1 -1
- package/dist/pages/OpportunitiesPage.js +97 -14
- package/dist/pages/OpportunitiesPage.js.map +1 -1
- package/dist/pages/OpportunityDetail.d.ts.map +1 -1
- package/dist/pages/OpportunityDetail.js +64 -3
- package/dist/pages/OpportunityDetail.js.map +1 -1
- package/dist/pages/PartnershipDetail.d.ts.map +1 -1
- package/dist/pages/PartnershipDetail.js +19 -1
- package/dist/pages/PartnershipDetail.js.map +1 -1
- package/dist/pages/PartnershipsPage.d.ts.map +1 -1
- package/dist/pages/PartnershipsPage.js +111 -14
- package/dist/pages/PartnershipsPage.js.map +1 -1
- package/dist/pages/PeoplePage.d.ts.map +1 -1
- package/dist/pages/PeoplePage.js +119 -3
- package/dist/pages/PeoplePage.js.map +1 -1
- package/dist/pages/PersonDetail.d.ts.map +1 -1
- package/dist/pages/PersonDetail.js +67 -5
- package/dist/pages/PersonDetail.js.map +1 -1
- package/dist/pages/PlanningPage.d.ts.map +1 -1
- package/dist/pages/PlanningPage.js +88 -17
- package/dist/pages/PlanningPage.js.map +1 -1
- package/dist/pages/RaiseDetail.d.ts.map +1 -1
- package/dist/pages/RaiseDetail.js +13 -1
- package/dist/pages/RaiseDetail.js.map +1 -1
- package/dist/pages/RoleDetail.d.ts.map +1 -1
- package/dist/pages/RoleDetail.js +5 -4
- package/dist/pages/RoleDetail.js.map +1 -1
- package/dist/pages/SearchPage.d.ts.map +1 -1
- package/dist/pages/SearchPage.js +1 -0
- package/dist/pages/SearchPage.js.map +1 -1
- package/dist/pages/admin/DataPage.d.ts.map +1 -1
- package/dist/pages/admin/DataPage.js +126 -13
- package/dist/pages/admin/DataPage.js.map +1 -1
- package/dist/pages/admin/FieldsPage.d.ts +2 -0
- package/dist/pages/admin/FieldsPage.d.ts.map +1 -0
- package/dist/pages/admin/FieldsPage.js +164 -0
- package/dist/pages/admin/FieldsPage.js.map +1 -0
- package/dist/pages/admin/PrivacyPage.d.ts +9 -0
- package/dist/pages/admin/PrivacyPage.d.ts.map +1 -0
- package/dist/pages/admin/PrivacyPage.js +170 -0
- package/dist/pages/admin/PrivacyPage.js.map +1 -0
- package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.js +3 -2
- package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
- package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
- package/dist/pages/admin/WebhooksPage.js +3 -2
- package/dist/pages/admin/WebhooksPage.js.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.d.ts.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.js +45 -2
- package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/dashboard/attention.d.ts.map +1 -1
- package/dist/pages/dashboard/attention.js +3 -0
- package/dist/pages/dashboard/attention.js.map +1 -1
- package/dist/pages/forms/AddFieldMenu.d.ts +17 -0
- package/dist/pages/forms/AddFieldMenu.d.ts.map +1 -0
- package/dist/pages/forms/AddFieldMenu.js +43 -0
- package/dist/pages/forms/AddFieldMenu.js.map +1 -0
- package/dist/pages/forms/EmbedPanel.d.ts +4 -0
- package/dist/pages/forms/EmbedPanel.d.ts.map +1 -1
- package/dist/pages/forms/EmbedPanel.js +62 -3
- package/dist/pages/forms/EmbedPanel.js.map +1 -1
- package/dist/pages/forms/FieldsEditor.d.ts.map +1 -1
- package/dist/pages/forms/FieldsEditor.js +179 -36
- package/dist/pages/forms/FieldsEditor.js.map +1 -1
- package/dist/pages/forms/FormActions.d.ts +6 -0
- package/dist/pages/forms/FormActions.d.ts.map +1 -0
- package/dist/pages/forms/FormActions.js +149 -0
- package/dist/pages/forms/FormActions.js.map +1 -0
- package/dist/pages/forms/FormSettings.d.ts.map +1 -1
- package/dist/pages/forms/FormSettings.js +15 -19
- package/dist/pages/forms/FormSettings.js.map +1 -1
- package/dist/pages/forms/SubmissionDetail.d.ts +2 -0
- package/dist/pages/forms/SubmissionDetail.d.ts.map +1 -0
- package/dist/pages/forms/SubmissionDetail.js +76 -0
- package/dist/pages/forms/SubmissionDetail.js.map +1 -0
- package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
- package/dist/pages/forms/SubmissionsTable.js +57 -8
- package/dist/pages/forms/SubmissionsTable.js.map +1 -1
- package/dist/pages/forms/fieldList.d.ts +11 -5
- package/dist/pages/forms/fieldList.d.ts.map +1 -1
- package/dist/pages/forms/fieldList.js +66 -6
- package/dist/pages/forms/fieldList.js.map +1 -1
- package/dist/pages/forms/template.d.ts +17 -0
- package/dist/pages/forms/template.d.ts.map +1 -1
- package/dist/pages/forms/template.js +93 -0
- package/dist/pages/forms/template.js.map +1 -1
- package/dist/pages/handbook/HandbookPage.js +1 -1
- package/dist/pages/hiringDirectory.js +2 -2
- package/dist/pages/onboarding/WorkspaceStepPage.d.ts.map +1 -1
- package/dist/pages/onboarding/WorkspaceStepPage.js +15 -2
- package/dist/pages/onboarding/WorkspaceStepPage.js.map +1 -1
- package/dist/pages/positionDirectory.js +2 -2
- package/package.json +2 -2
- package/src/api/resource.ts +155 -32
- package/src/api/resources/companies.ts +7 -1
- package/src/api/resources/consentPurposes.ts +83 -0
- package/src/api/resources/customFields.ts +88 -0
- package/src/api/resources/decisions.ts +3 -0
- package/src/api/resources/emailDomainLinker.ts +43 -0
- package/src/api/resources/enquiries.ts +118 -0
- package/src/api/resources/forms.ts +59 -19
- package/src/api/resources/handbookPages.ts +1 -1
- package/src/api/resources/importJobs.ts +9 -0
- package/src/api/resources/listMembers.ts +173 -0
- package/src/api/resources/lists.ts +61 -0
- package/src/api/resources/opportunities.ts +3 -0
- package/src/api/resources/people.ts +4 -1
- package/src/api/resources/roles.ts +3 -1
- package/src/api/resources/sampleData.ts +57 -0
- package/src/api/resources/webhooks.ts +8 -24
- package/src/app/KelpieApp.tsx +16 -0
- package/src/components/ActivitiesPanel.tsx +3 -10
- package/src/components/ColumnPicker.tsx +124 -0
- package/src/components/CustomFieldsPanel.tsx +330 -0
- package/src/components/DataTable.tsx +89 -10
- package/src/components/DecisionsPanel.tsx +4 -12
- package/src/components/EntitySearch.tsx +12 -5
- package/src/components/FormsPanel.tsx +86 -0
- package/src/components/ListsPanel.tsx +176 -0
- package/src/components/NotesPanel.tsx +6 -14
- package/src/components/Paginator.tsx +78 -0
- package/src/components/PlanAttention.tsx +20 -3
- package/src/components/PlanPanel.tsx +2 -10
- package/src/components/Shell.tsx +4 -0
- package/src/components/useHasCustomFields.ts +18 -0
- package/src/index.ts +10 -1
- package/src/lib/listView.ts +149 -0
- package/src/lib/sort.ts +143 -0
- package/src/pages/CompaniesPage.tsx +125 -11
- package/src/pages/CompanyDetail.tsx +98 -63
- package/src/pages/DealDetail.tsx +34 -0
- package/src/pages/DealsPage.tsx +178 -24
- package/src/pages/DecisionsPage.tsx +75 -18
- package/src/pages/EnquiriesPage.tsx +434 -0
- package/src/pages/EnquiryDetail.tsx +554 -0
- package/src/pages/EnquiryStageSettingsPage.tsx +63 -0
- package/src/pages/FormDetail.tsx +23 -1
- package/src/pages/FormsPage.tsx +81 -17
- package/src/pages/FundraisingPage.tsx +152 -24
- package/src/pages/HiringPage.tsx +39 -11
- package/src/pages/ListDetail.tsx +470 -0
- package/src/pages/ListsPage.tsx +281 -0
- package/src/pages/OpportunitiesPage.tsx +130 -24
- package/src/pages/OpportunityDetail.tsx +168 -2
- package/src/pages/PartnershipDetail.tsx +35 -0
- package/src/pages/PartnershipsPage.tsx +149 -24
- package/src/pages/PeoplePage.tsx +157 -11
- package/src/pages/PersonDetail.tsx +157 -6
- package/src/pages/PlanningPage.tsx +259 -29
- package/src/pages/RaiseDetail.tsx +24 -0
- package/src/pages/RoleDetail.tsx +21 -26
- package/src/pages/SearchPage.tsx +1 -0
- package/src/pages/admin/DataPage.tsx +324 -13
- package/src/pages/admin/FieldsPage.tsx +455 -0
- package/src/pages/admin/PrivacyPage.tsx +461 -0
- package/src/pages/admin/WebhookDeliveries.tsx +10 -15
- package/src/pages/admin/WebhooksPage.tsx +14 -19
- package/src/pages/admin/WorkspaceSettingsPage.tsx +134 -2
- package/src/pages/dashboard/attention.ts +3 -0
- package/src/pages/forms/AddFieldMenu.tsx +121 -0
- package/src/pages/forms/EmbedPanel.tsx +163 -2
- package/src/pages/forms/FieldsEditor.tsx +539 -165
- package/src/pages/forms/FormActions.tsx +552 -0
- package/src/pages/forms/FormSettings.tsx +29 -70
- package/src/pages/forms/SubmissionDetail.tsx +249 -0
- package/src/pages/forms/SubmissionsTable.tsx +112 -26
- package/src/pages/forms/fieldList.ts +68 -5
- package/src/pages/forms/template.ts +103 -0
- package/src/pages/handbook/HandbookPage.tsx +1 -1
- package/src/pages/hiringDirectory.ts +2 -2
- package/src/pages/onboarding/WorkspaceStepPage.tsx +31 -3
- package/src/pages/positionDirectory.ts +2 -2
- package/src/styles.css +3 -3
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { dealSchema, enquiryBody, enquirySchema } from '@kelpie/schemas';
|
|
2
|
+
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { useApiClient } from '../context.js';
|
|
4
|
+
import { toError } from '../errors.js';
|
|
5
|
+
import { createResourceHooks } from '../resource.js';
|
|
6
|
+
const enquiries = createResourceHooks({
|
|
7
|
+
name: 'enquiries',
|
|
8
|
+
path: '/enquiries',
|
|
9
|
+
decode: enquirySchema.parse,
|
|
10
|
+
createBody: enquiryBody,
|
|
11
|
+
updateBody: enquiryBody,
|
|
12
|
+
// Every write here emits an activity server-side, in the same transaction,
|
|
13
|
+
// so a timeline rendered on this record is stale the moment the write lands.
|
|
14
|
+
alsoInvalidates: ['activities'],
|
|
15
|
+
});
|
|
16
|
+
function enquiryQuery(filters) {
|
|
17
|
+
return {
|
|
18
|
+
q: filters.term,
|
|
19
|
+
source: filters.sources,
|
|
20
|
+
company_id: filters.companyIds,
|
|
21
|
+
stage_id: filters.stageIds,
|
|
22
|
+
person_id: filters.personIds,
|
|
23
|
+
limit: filters.limit,
|
|
24
|
+
sort: filters.sort,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function useEnquiries(filters = {}, options = {}) {
|
|
28
|
+
return enquiries.useList(enquiryQuery(filters), options);
|
|
29
|
+
}
|
|
30
|
+
export function useEnquiry(id) {
|
|
31
|
+
return enquiries.useRecord(id);
|
|
32
|
+
}
|
|
33
|
+
export function useCreateEnquiry() {
|
|
34
|
+
return enquiries.useCreate();
|
|
35
|
+
}
|
|
36
|
+
export function useUpdateEnquiry() {
|
|
37
|
+
return enquiries.useUpdate();
|
|
38
|
+
}
|
|
39
|
+
export function useDeleteEnquiry() {
|
|
40
|
+
return enquiries.useRemove();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* `POST /v1/enquiries/:id/convert`. Returns the freshly created deal, so the
|
|
44
|
+
* caller can navigate straight to it. 409 if the enquiry has already been
|
|
45
|
+
* converted; 422 if it has no linked company yet.
|
|
46
|
+
*/
|
|
47
|
+
export function useConvertEnquiry() {
|
|
48
|
+
const client = useApiClient();
|
|
49
|
+
const queryClient = useQueryClient();
|
|
50
|
+
const mutation = useMutation({
|
|
51
|
+
mutationFn: (id) => client.post(`/enquiries/${id}/convert`, {}, dealSchema.parse),
|
|
52
|
+
onSuccess: () => {
|
|
53
|
+
// The enquiry, deals list, activities on both sides are all stale.
|
|
54
|
+
void queryClient.invalidateQueries({ queryKey: ['enquiries'] });
|
|
55
|
+
void queryClient.invalidateQueries({ queryKey: ['deals'] });
|
|
56
|
+
void queryClient.invalidateQueries({ queryKey: ['activities'] });
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
run: (input) => {
|
|
61
|
+
mutation.mutate(input);
|
|
62
|
+
},
|
|
63
|
+
runAsync: (input) => mutation.mutateAsync(input),
|
|
64
|
+
isPending: mutation.isPending,
|
|
65
|
+
error: toError(mutation.error),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=enquiries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enquiries.js","sourceRoot":"","sources":["../../../src/api/resources/enquiries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAoBpD,MAAM,SAAS,GAAG,mBAAmB,CAA4C;IAC/E,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,aAAa,CAAC,KAAK;IAC3B,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,2EAA2E;IAC3E,6EAA6E;IAC7E,eAAe,EAAE,CAAC,YAAY,CAAC;CAChC,CAAC,CAAA;AAmBF,SAAS,YAAY,CAAC,OAAuB;IAC3C,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,MAAM,EAAE,OAAO,CAAC,OAAO;QACvB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAO,GAAmB,EAAE,EAC5B,OAAO,GAAgB,EAAE;IAEzB,OAAO,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAsB;IAC/C,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CACzB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC;QAC/D,SAAS,EAAE,GAAG,EAAE;YACd,mEAAmE;YACnE,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC/D,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3D,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;KACF,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;YACb,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAChD,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC/B,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CreateFormInput, Form, FormFieldInput, FormInput, FormSubmission } from '@kelpie/schemas';
|
|
1
|
+
import type { CreateFormInput, Form, FormFieldInput, FormInput, FormSubmission, FormSubmissionLinkTarget } from '@kelpie/schemas';
|
|
2
2
|
import type { MutationResult, RecordListResult, RecordResult, UpdateArguments } from '../resource.ts';
|
|
3
3
|
/**
|
|
4
4
|
* `/v1/forms`: embeddable inbound capture.
|
|
@@ -59,9 +59,29 @@ export declare function useDeleteForm(): MutationResult<string, void>;
|
|
|
59
59
|
* The result shape is the same, so a page cannot tell the difference.
|
|
60
60
|
*/
|
|
61
61
|
export declare function useFormSubmissions(formId: string | undefined): RecordListResult<FormSubmission>;
|
|
62
|
+
/**
|
|
63
|
+
* Submissions that touched one record, newest first.
|
|
64
|
+
*
|
|
65
|
+
* Powers the Forms tab on every record type a submission can name (person,
|
|
66
|
+
* company, position, deal, opportunity, partnership, enquiry). Returns an
|
|
67
|
+
* empty page for a record no submission has ever named — the server does no
|
|
68
|
+
* per-target existence check, so a stale id reads the same as a real one.
|
|
69
|
+
*/
|
|
70
|
+
export declare function useFormSubmissionsForRecord(targetType: FormSubmissionLinkTarget | undefined, targetId: string | undefined): RecordListResult<FormSubmission>;
|
|
71
|
+
/**
|
|
72
|
+
* One submission on a form.
|
|
73
|
+
*
|
|
74
|
+
* Nested under the form rather than a top-level collection: a submission id is
|
|
75
|
+
* only meaningful with its form (the field labels live there), and the path
|
|
76
|
+
* mirrors the list endpoint above it.
|
|
77
|
+
*/
|
|
78
|
+
export declare function useFormSubmission(formId: string | undefined, submissionId: string | undefined): RecordResult<FormSubmission>;
|
|
62
79
|
/** What a customer pastes into their site, built server-side from the request origin. */
|
|
63
80
|
export interface EmbedSnippets {
|
|
81
|
+
/** Standalone hosted page (brand chrome). */
|
|
64
82
|
readonly url: string;
|
|
83
|
+
/** Bare document the iframe snippets load (fields only). */
|
|
84
|
+
readonly embedUrl: string;
|
|
65
85
|
readonly iframeSnippet: string;
|
|
66
86
|
readonly scriptSnippet: string;
|
|
67
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACd,SAAS,EACT,cAAc,
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACd,SAAS,EACT,cAAc,EACd,wBAAwB,EACzB,MAAM,iBAAiB,CAAA;AAaxB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAUzD,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACjD,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAMD,wBAAgB,QAAQ,CAAC,OAAO,GAAE,WAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAE1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAElE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAErE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAExF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAsBjF;AAED,uEAAuE;AACvE,wBAAgB,aAAa,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAQ/F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,wBAAwB,GAAG,SAAS,EAChD,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,gBAAgB,CAAC,cAAc,CAAC,CAQlC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,YAAY,CAAC,cAAc,CAAC,CAkB9B;AAED,yFAAyF;AACzF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAqBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAa5E"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createFormBody, formBody, formSchema, formSubmissionSchema } from '@kelpie/schemas';
|
|
2
|
-
import {
|
|
2
|
+
import { useMutation, useQuery, useQueryClient, } from '@tanstack/react-query';
|
|
3
3
|
import { isRecord } from '../json.js';
|
|
4
|
+
import { ApiError } from '../client.js';
|
|
4
5
|
import { useApiClient } from '../context.js';
|
|
5
6
|
import { toError } from '../errors.js';
|
|
6
|
-
import { createResourceHooks } from '../resource.js';
|
|
7
|
+
import { createResourceHooks, usePagedList } from '../resource.js';
|
|
7
8
|
const forms = createResourceHooks({
|
|
8
9
|
name: 'forms',
|
|
9
10
|
path: '/forms',
|
|
@@ -70,37 +71,63 @@ export function useDeleteForm() {
|
|
|
70
71
|
* The result shape is the same, so a page cannot tell the difference.
|
|
71
72
|
*/
|
|
72
73
|
export function useFormSubmissions(formId) {
|
|
73
|
-
|
|
74
|
-
const result = useInfiniteQuery({
|
|
74
|
+
return usePagedList({
|
|
75
75
|
queryKey: ['forms', 'submissions', formId ?? ''],
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
initialPageParam: null,
|
|
80
|
-
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
81
|
-
placeholderData: keepPreviousData,
|
|
76
|
+
path: `/forms/${formId ?? ''}/submissions`,
|
|
77
|
+
decode: formSubmissionSchema.parse,
|
|
78
|
+
query: {},
|
|
82
79
|
enabled: formId !== undefined,
|
|
83
80
|
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Submissions that touched one record, newest first.
|
|
84
|
+
*
|
|
85
|
+
* Powers the Forms tab on every record type a submission can name (person,
|
|
86
|
+
* company, position, deal, opportunity, partnership, enquiry). Returns an
|
|
87
|
+
* empty page for a record no submission has ever named — the server does no
|
|
88
|
+
* per-target existence check, so a stale id reads the same as a real one.
|
|
89
|
+
*/
|
|
90
|
+
export function useFormSubmissionsForRecord(targetType, targetId) {
|
|
91
|
+
return usePagedList({
|
|
92
|
+
queryKey: ['form-submissions', 'by-target', targetType ?? '', targetId ?? ''],
|
|
93
|
+
path: '/form-submissions',
|
|
94
|
+
decode: formSubmissionSchema.parse,
|
|
95
|
+
query: { target_type: targetType, target_id: targetId },
|
|
96
|
+
enabled: targetType !== undefined && targetId !== undefined,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* One submission on a form.
|
|
101
|
+
*
|
|
102
|
+
* Nested under the form rather than a top-level collection: a submission id is
|
|
103
|
+
* only meaningful with its form (the field labels live there), and the path
|
|
104
|
+
* mirrors the list endpoint above it.
|
|
105
|
+
*/
|
|
106
|
+
export function useFormSubmission(formId, submissionId) {
|
|
107
|
+
const client = useApiClient();
|
|
108
|
+
const result = useQuery({
|
|
109
|
+
queryKey: ['forms', 'submissions', formId ?? '', submissionId ?? ''],
|
|
110
|
+
queryFn: () => client.get(`/forms/${formId ?? ''}/submissions/${submissionId ?? ''}`, formSubmissionSchema.parse),
|
|
111
|
+
enabled: formId !== undefined && submissionId !== undefined,
|
|
112
|
+
});
|
|
84
113
|
return {
|
|
85
|
-
|
|
86
|
-
isLoading: result.isPending && formId !== undefined,
|
|
114
|
+
record: result.data,
|
|
115
|
+
isLoading: result.isPending && formId !== undefined && submissionId !== undefined,
|
|
116
|
+
isNotFound: result.error instanceof ApiError && result.error.status === 404,
|
|
87
117
|
error: toError(result.error),
|
|
88
|
-
hasMore: result.hasNextPage,
|
|
89
|
-
isLoadingMore: result.isFetchingNextPage,
|
|
90
|
-
loadMore: () => {
|
|
91
|
-
void result.fetchNextPage();
|
|
92
|
-
},
|
|
93
118
|
};
|
|
94
119
|
}
|
|
95
120
|
function decodeSnippets(value) {
|
|
96
121
|
if (!isRecord(value) ||
|
|
97
122
|
typeof value.url !== 'string' ||
|
|
123
|
+
typeof value.embed_url !== 'string' ||
|
|
98
124
|
typeof value.iframe_snippet !== 'string' ||
|
|
99
125
|
typeof value.script_snippet !== 'string') {
|
|
100
126
|
throw new TypeError('Expected an embed snippet response');
|
|
101
127
|
}
|
|
102
128
|
return {
|
|
103
129
|
url: value.url,
|
|
130
|
+
embedUrl: value.embed_url,
|
|
104
131
|
iframeSnippet: value.iframe_snippet,
|
|
105
132
|
scriptSnippet: value.script_snippet,
|
|
106
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export interface HandbookPageFilters {
|
|
|
14
14
|
* The same call the kanban board makes for its stages, for the same reason: a
|
|
15
15
|
* tree cannot be drawn from part of itself, and a page whose parent is on the
|
|
16
16
|
* next page of results would render at the top level as though somebody had
|
|
17
|
-
* moved it there. The caller reads `
|
|
17
|
+
* moved it there. The caller reads `hasNext` and says so rather than drawing a
|
|
18
18
|
* tree with holes in it.
|
|
19
19
|
*/
|
|
20
20
|
export declare function useHandbookPages(filters?: HandbookPageFilters): RecordListResult<HandbookPage>;
|
|
@@ -20,7 +20,7 @@ function handbookQuery(filters) {
|
|
|
20
20
|
* The same call the kanban board makes for its stages, for the same reason: a
|
|
21
21
|
* tree cannot be drawn from part of itself, and a page whose parent is on the
|
|
22
22
|
* next page of results would render at the top level as though somebody had
|
|
23
|
-
* moved it there. The caller reads `
|
|
23
|
+
* moved it there. The caller reads `hasNext` and says so rather than drawing a
|
|
24
24
|
* tree with holes in it.
|
|
25
25
|
*/
|
|
26
26
|
export function useHandbookPages(filters = {}) {
|
|
@@ -8,6 +8,11 @@ export interface CreateImportJobInput {
|
|
|
8
8
|
/** People import only: what to do with a row naming a company that is not here yet. */
|
|
9
9
|
readonly onMissingCompany: OnMissingCompany;
|
|
10
10
|
readonly matchKeyId: string;
|
|
11
|
+
/**
|
|
12
|
+
* People import only: the consent purpose a row's `consent_status` grants.
|
|
13
|
+
* Required whenever the map names `consent_status` or `consent_at`.
|
|
14
|
+
*/
|
|
15
|
+
readonly consentPurposeId?: string | null;
|
|
11
16
|
/**
|
|
12
17
|
* Absent on the first upload, so the server derives one from the source preset
|
|
13
18
|
* and the file's own headers. The mapping screen sends the corrected map back
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importJobs.d.ts","sourceRoot":"","sources":["../../../src/api/resources/importJobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAelE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;IACzC,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CACrC;
|
|
1
|
+
{"version":3,"file":"importJobs.d.ts","sourceRoot":"","sources":["../../../src/api/resources/importJobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAelE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;IACzC,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CACrC;AA6BD,wBAAgB,kBAAkB,IAAI,cAAc,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAgBpF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAwBpF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAcjE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAoB5E;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,cAAc,CAC5C;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAC3C,WAAW,CACZ,CAqBA;AAED,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAQnD"}
|
|
@@ -25,6 +25,9 @@ function jobForm(input) {
|
|
|
25
25
|
if (input.columnMap !== undefined) {
|
|
26
26
|
form.set('column_map', JSON.stringify(input.columnMap));
|
|
27
27
|
}
|
|
28
|
+
if (input.consentPurposeId != null && input.consentPurposeId.length > 0) {
|
|
29
|
+
form.set('consent_purpose_id', input.consentPurposeId);
|
|
30
|
+
}
|
|
28
31
|
return form;
|
|
29
32
|
}
|
|
30
33
|
/** The cache entry `useImportJob` reads, so a write and the watcher agree. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importJobs.js","sourceRoot":"","sources":["../../../src/api/resources/importJobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AASrE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"importJobs.js","sourceRoot":"","sources":["../../../src/api/resources/importJobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AddListMemberInput, ListMember, ListMembership, RecordTargetType } from '@kelpie/schemas';
|
|
2
|
+
import type { MutationResult, RecordListResult } from '../resource.ts';
|
|
3
|
+
export interface ListMembershipsResult {
|
|
4
|
+
readonly memberships: readonly ListMembership[];
|
|
5
|
+
readonly isLoading: boolean;
|
|
6
|
+
readonly error: Error | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* "Which lists is this record on?"
|
|
10
|
+
*
|
|
11
|
+
* A plain `useQuery` rather than the paged read: the endpoint is not paged.
|
|
12
|
+
* The invalidation key overlaps with `useListMembers` so adding or removing on
|
|
13
|
+
* either side refreshes both views.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useListMembershipsFor(targetType: RecordTargetType | undefined, targetId: string | undefined): ListMembershipsResult;
|
|
16
|
+
export declare function useListMembers(listId: string | undefined): RecordListResult<ListMember>;
|
|
17
|
+
export interface AddMemberArguments {
|
|
18
|
+
readonly listId: string;
|
|
19
|
+
readonly input: AddListMemberInput;
|
|
20
|
+
}
|
|
21
|
+
export declare function useAddListMember(): MutationResult<AddMemberArguments, ListMember>;
|
|
22
|
+
export interface RemoveMemberArguments {
|
|
23
|
+
readonly listId: string;
|
|
24
|
+
readonly id: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function useRemoveListMember(): MutationResult<RemoveMemberArguments, void>;
|
|
27
|
+
//# sourceMappingURL=listMembers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listMembers.d.ts","sourceRoot":"","sources":["../../../src/api/resources/listMembers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAYxB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAuBtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,qBAAqB,CAsBvB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAQvF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CACnC;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAqBjF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CA4CjF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { addListMemberBody, listMemberSchema, listMembershipSchema, } from '@kelpie/schemas';
|
|
2
|
+
import { useMutation, useQuery, useQueryClient, } from '@tanstack/react-query';
|
|
3
|
+
import { useApiClient } from '../context.js';
|
|
4
|
+
import { toError } from '../errors.js';
|
|
5
|
+
import { usePagedList } from '../resource.js';
|
|
6
|
+
function membersKey(listId) {
|
|
7
|
+
return ['lists', 'members', listId];
|
|
8
|
+
}
|
|
9
|
+
function membershipsKey(targetType, targetId) {
|
|
10
|
+
return ['lists', 'memberships', targetType, targetId];
|
|
11
|
+
}
|
|
12
|
+
/** The list-level entries whose cached counts change when a member is added or removed. */
|
|
13
|
+
function listsInvalidations() {
|
|
14
|
+
return ['lists', 'list'];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* "Which lists is this record on?"
|
|
18
|
+
*
|
|
19
|
+
* A plain `useQuery` rather than the paged read: the endpoint is not paged.
|
|
20
|
+
* The invalidation key overlaps with `useListMembers` so adding or removing on
|
|
21
|
+
* either side refreshes both views.
|
|
22
|
+
*/
|
|
23
|
+
export function useListMembershipsFor(targetType, targetId) {
|
|
24
|
+
const client = useApiClient();
|
|
25
|
+
const enabled = targetType !== undefined && targetId !== undefined;
|
|
26
|
+
const result = useQuery({
|
|
27
|
+
queryKey: membershipsKey(targetType ?? '', targetId ?? ''),
|
|
28
|
+
queryFn: async () => {
|
|
29
|
+
const page = await client.list('/list-memberships', listMembershipSchema.parse, { target_type: targetType, target_id: targetId });
|
|
30
|
+
return page.items;
|
|
31
|
+
},
|
|
32
|
+
enabled,
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
memberships: result.data ?? [],
|
|
36
|
+
isLoading: result.isPending && enabled,
|
|
37
|
+
error: toError(result.error),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function useListMembers(listId) {
|
|
41
|
+
return usePagedList({
|
|
42
|
+
queryKey: membersKey(listId ?? ''),
|
|
43
|
+
path: `/lists/${listId ?? ''}/members`,
|
|
44
|
+
decode: listMemberSchema.parse,
|
|
45
|
+
query: {},
|
|
46
|
+
enabled: listId !== undefined,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function useAddListMember() {
|
|
50
|
+
const client = useApiClient();
|
|
51
|
+
const queryClient = useQueryClient();
|
|
52
|
+
const mutation = useMutation({
|
|
53
|
+
mutationFn: ({ listId, input }) => client.post(`/lists/${listId}/members`, addListMemberBody(input), listMemberSchema.parse),
|
|
54
|
+
onSettled: (_record, _error, { listId }) => {
|
|
55
|
+
void queryClient.invalidateQueries({ queryKey: membersKey(listId) });
|
|
56
|
+
void queryClient.invalidateQueries({ queryKey: listsInvalidations() });
|
|
57
|
+
void queryClient.invalidateQueries({ queryKey: ['lists', 'memberships'] });
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
run: (input) => {
|
|
62
|
+
mutation.mutate(input);
|
|
63
|
+
},
|
|
64
|
+
runAsync: (input) => mutation.mutateAsync(input),
|
|
65
|
+
isPending: mutation.isPending,
|
|
66
|
+
error: toError(mutation.error),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function useRemoveListMember() {
|
|
70
|
+
const client = useApiClient();
|
|
71
|
+
const queryClient = useQueryClient();
|
|
72
|
+
const mutation = useMutation({
|
|
73
|
+
mutationFn: ({ listId, id }) => client.delete(`/lists/${listId}/members/${id}`),
|
|
74
|
+
onMutate: async ({ listId, id }) => {
|
|
75
|
+
await queryClient.cancelQueries({ queryKey: membersKey(listId) });
|
|
76
|
+
const previous = queryClient.getQueryData(membersKey(listId));
|
|
77
|
+
queryClient.setQueryData(membersKey(listId), (data) => data === undefined
|
|
78
|
+
? data
|
|
79
|
+
: {
|
|
80
|
+
...data,
|
|
81
|
+
pages: data.pages.map((page) => ({
|
|
82
|
+
...page,
|
|
83
|
+
items: page.items.filter((item) => item.id !== id),
|
|
84
|
+
})),
|
|
85
|
+
});
|
|
86
|
+
return { previous };
|
|
87
|
+
},
|
|
88
|
+
onError: (_error, { listId }, context) => {
|
|
89
|
+
if (context?.previous !== undefined) {
|
|
90
|
+
queryClient.setQueryData(membersKey(listId), context.previous);
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
onSettled: (_record, _error, { listId }) => {
|
|
94
|
+
void queryClient.invalidateQueries({ queryKey: membersKey(listId) });
|
|
95
|
+
void queryClient.invalidateQueries({ queryKey: listsInvalidations() });
|
|
96
|
+
void queryClient.invalidateQueries({ queryKey: ['lists', 'memberships'] });
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
run: (input) => {
|
|
101
|
+
mutation.mutate(input);
|
|
102
|
+
},
|
|
103
|
+
runAsync: (input) => mutation.mutateAsync(input),
|
|
104
|
+
isPending: mutation.isPending,
|
|
105
|
+
error: toError(mutation.error),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=listMembers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listMembers.js","sourceRoot":"","sources":["../../../src/api/resources/listMembers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CreateListInput, List, ListInput, RecordTargetType } from '@kelpie/schemas';
|
|
2
|
+
import type { ListOptions, MutationResult, RecordListResult, RecordResult, UpdateArguments } from '../resource.ts';
|
|
3
|
+
export interface ListFilters {
|
|
4
|
+
readonly term?: string | undefined;
|
|
5
|
+
readonly targetType?: RecordTargetType | undefined;
|
|
6
|
+
readonly limit?: number | undefined;
|
|
7
|
+
readonly sort?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function useLists(filters?: ListFilters, options?: ListOptions): RecordListResult<List>;
|
|
10
|
+
export declare function useList(id: string | undefined): RecordResult<List>;
|
|
11
|
+
export declare function useCreateList(): MutationResult<CreateListInput, List>;
|
|
12
|
+
export declare function useUpdateList(): MutationResult<UpdateArguments<ListInput>, List>;
|
|
13
|
+
export declare function useDeleteList(): MutationResult<string, void>;
|
|
14
|
+
//# sourceMappingURL=lists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../../src/api/resources/lists.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIzF,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAYvB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAWD,wBAAgB,QAAQ,CACtB,OAAO,GAAE,WAAgB,EACzB,OAAO,GAAE,WAAgB,GACxB,gBAAgB,CAAC,IAAI,CAAC,CAExB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAElE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAErE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAEhF;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE5D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createListBody, listBody, listSchema } from '@kelpie/schemas';
|
|
2
|
+
import { createResourceHooks } from '../resource.js';
|
|
3
|
+
/** `/v1/lists`. A list holds records of one type; the type is fixed at creation. */
|
|
4
|
+
const lists = createResourceHooks({
|
|
5
|
+
name: 'lists',
|
|
6
|
+
path: '/lists',
|
|
7
|
+
decode: listSchema.parse,
|
|
8
|
+
createBody: createListBody,
|
|
9
|
+
updateBody: listBody,
|
|
10
|
+
});
|
|
11
|
+
function listsQuery(filters) {
|
|
12
|
+
return {
|
|
13
|
+
q: filters.term,
|
|
14
|
+
target_type: filters.targetType,
|
|
15
|
+
limit: filters.limit,
|
|
16
|
+
sort: filters.sort,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function useLists(filters = {}, options = {}) {
|
|
20
|
+
return lists.useList(listsQuery(filters), options);
|
|
21
|
+
}
|
|
22
|
+
export function useList(id) {
|
|
23
|
+
return lists.useRecord(id);
|
|
24
|
+
}
|
|
25
|
+
export function useCreateList() {
|
|
26
|
+
return lists.useCreate();
|
|
27
|
+
}
|
|
28
|
+
export function useUpdateList() {
|
|
29
|
+
return lists.useUpdate();
|
|
30
|
+
}
|
|
31
|
+
export function useDeleteList() {
|
|
32
|
+
return lists.useRemove();
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../src/api/resources/lists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAItE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AASpD,oFAAoF;AAEpF,MAAM,KAAK,GAAG,mBAAmB,CAAmC;IAClE,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU,CAAC,KAAK;IACxB,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAA;AASF,SAAS,UAAU,CAAC,OAAoB;IACtC,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,WAAW,EAAE,OAAO,CAAC,UAAU;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,OAAO,GAAgB,EAAE,EACzB,OAAO,GAAgB,EAAE;IAEzB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAsB;IAC5C,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;AAC1B,CAAC"}
|
|
@@ -17,6 +17,8 @@ export interface OpportunityFilters {
|
|
|
17
17
|
readonly companyIds?: readonly string[] | undefined;
|
|
18
18
|
/** Opportunities sitting in any of these stages. Repeats on the wire. */
|
|
19
19
|
readonly stageIds?: readonly string[] | undefined;
|
|
20
|
+
/** Opportunities any of these people are on. Repeats on the wire. */
|
|
21
|
+
readonly personIds?: readonly string[] | undefined;
|
|
20
22
|
readonly limit?: number | undefined;
|
|
21
23
|
/** `field` ascending, `-field` descending. Only `name`, `created_at`, `updated_at` are sortable. */
|
|
22
24
|
readonly sort?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../../src/api/resources/opportunities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB;;;GAGG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAaD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9C,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACnD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;
|
|
1
|
+
{"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../../src/api/resources/opportunities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB;;;GAGG;AAEH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAaD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9C,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACnD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACjD,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAcD,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,kBAAuB,EAChC,OAAO,GAAE,WAAgB,GACxB,gBAAgB,CAAC,WAAW,CAAC,CAE/B;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAEhF;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAE1F;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CACpD,eAAe,CAAC,gBAAgB,CAAC,EACjC,WAAW,CACZ,CAEA;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAEnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opportunities.js","sourceRoot":"","sources":["../../../src/api/resources/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAkBpD,MAAM,aAAa,GAAG,mBAAmB,CAAwD;IAC/F,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,iBAAiB,CAAC,KAAK;IAC/B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,eAAe;IAC3B,8EAA8E;IAC9E,0EAA0E;IAC1E,eAAe,EAAE,CAAC,YAAY,CAAC;CAChC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"opportunities.js","sourceRoot":"","sources":["../../../src/api/resources/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAkBpD,MAAM,aAAa,GAAG,mBAAmB,CAAwD;IAC/F,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,iBAAiB,CAAC,KAAK;IAC/B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,eAAe;IAC3B,8EAA8E;IAC9E,0EAA0E;IAC1E,eAAe,EAAE,CAAC,YAAY,CAAC;CAChC,CAAC,CAAA;AAmBF,SAAS,gBAAgB,CAAC,OAA2B;IACnD,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,IAAI,EAAE,OAAO,CAAC,KAAK;QACnB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAO,GAAuB,EAAE,EAChC,OAAO,GAAgB,EAAE;IAEzB,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAsB;IACnD,OAAO,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,aAAa,CAAC,SAAS,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAIlC,OAAO,aAAa,CAAC,SAAS,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,aAAa,CAAC,SAAS,EAAE,CAAA;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../../src/api/resources/people.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,6EAA6E;AAE7E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;
|
|
1
|
+
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../../src/api/resources/people.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,6EAA6E;AAE7E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAgBD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,gFAAgF;IAChF,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAWD,wBAAgB,SAAS,CACvB,OAAO,GAAE,aAAkB,EAC3B,OAAO,GAAE,WAAgB,GACxB,gBAAgB,CAAC,MAAM,CAAC,CAE1B;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED,wBAAgB,eAAe,IAAI,cAAc,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAE3E;AAED,wBAAgB,eAAe,IAAI,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAEtF;AAED,wBAAgB,eAAe,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE9D"}
|
|
@@ -8,7 +8,10 @@ const people = createResourceHooks({
|
|
|
8
8
|
updateBody: personBody,
|
|
9
9
|
// Every write here emits an activity server-side, in the same transaction, so
|
|
10
10
|
// a timeline rendered on this record is stale the moment the write lands.
|
|
11
|
-
|
|
11
|
+
// Setting or changing the email may also auto-link a Position, which changes
|
|
12
|
+
// both the person's position list and the `?person_id=` companies list that
|
|
13
|
+
// names the far side — without the latter, the new row renders as "Unknown".
|
|
14
|
+
alsoInvalidates: ['activities', 'positions', 'companies'],
|
|
12
15
|
});
|
|
13
16
|
function peopleQuery(filters) {
|
|
14
17
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../../src/api/resources/people.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAepD,MAAM,MAAM,GAAG,mBAAmB,CAAyC;IACzE,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,YAAY,CAAC,KAAK;IAC1B,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,8EAA8E;IAC9E,0EAA0E;IAC1E,eAAe,EAAE,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../../src/api/resources/people.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAepD,MAAM,MAAM,GAAG,mBAAmB,CAAyC;IACzE,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,YAAY,CAAC,KAAK;IAC1B,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,eAAe,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC;CAC1D,CAAC,CAAA;AAaF,SAAS,WAAW,CAAC,OAAsB;IACzC,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,OAAO,GAAkB,EAAE,EAC3B,OAAO,GAAgB,EAAE;IAEzB,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAsB;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3B,CAAC"}
|
|
@@ -11,6 +11,8 @@ export interface RoleFilters {
|
|
|
11
11
|
/** Roles in any of these statuses. Repeats on the wire. */
|
|
12
12
|
readonly statuses?: readonly RoleStatus[] | undefined;
|
|
13
13
|
readonly limit?: number | undefined;
|
|
14
|
+
/** `field` ascending, `-field` descending. Only `title`, `created_at`, `updated_at` are sortable. */
|
|
15
|
+
readonly sort?: string | undefined;
|
|
14
16
|
}
|
|
15
17
|
export declare function useRoles(filters?: RoleFilters, options?: ListOptions): RecordListResult<Role>;
|
|
16
18
|
export declare function useRole(id: string | undefined): RecordResult<Role>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../src/api/resources/roles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIlE,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,iEAAiE;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAaD,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../src/api/resources/roles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIlE,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,iEAAiE;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAaD,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,qGAAqG;IACrG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAMD,wBAAgB,QAAQ,CACtB,OAAO,GAAE,WAAgB,EACzB,OAAO,GAAE,WAAgB,GACxB,gBAAgB,CAAC,IAAI,CAAC,CAExB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAElE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAErE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAEhF;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE5D"}
|