@zeniai/web-components 4.3.83 → 4.3.84

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 (54) hide show
  1. package/dist/{SessionTimeoutPopup-BrrSJgL_.cjs → SessionTimeoutPopup-BevaOjyq.cjs} +16076 -16879
  2. package/dist/{SessionTimeoutPopup-DBvW5uLp.js → SessionTimeoutPopup-nBxUPbGt.js} +91017 -94527
  3. package/dist/appLocale.d.ts +4 -124
  4. package/dist/cockpit.cjs.js +8 -8
  5. package/dist/cockpit.esm.js +514 -514
  6. package/dist/components/aiCfo/components/AiCfoRoutinesBrowser.d.ts +1 -1
  7. package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +4 -14
  8. package/dist/components/expenseAutomation/components/navbarHeaderData.d.ts +1 -6
  9. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +2 -10
  10. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +1 -2
  11. package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleConfig.d.ts +7 -0
  12. package/dist/components/expenseAutomation/sections/missingReceipts/missingReceiptsSidePanelListMargin.d.ts +3 -10
  13. package/dist/components/invoicing/catalogForm/InvoicingCatalogItemFormPage.d.ts +6 -11
  14. package/dist/components/invoicing/catalogForm/catalogItemForm.shared.d.ts +7 -0
  15. package/dist/components/invoicing/common/InvoicingFormControls.d.ts +1 -8
  16. package/dist/components/invoicing/common/InvoicingInvoicePreview.d.ts +1 -6
  17. package/dist/components/invoicing/common/InvoicingSkeletons.d.ts +4 -20
  18. package/dist/components/invoicing/couponForm/InvoicingCouponFormPage.d.ts +2 -27
  19. package/dist/components/invoicing/couponForm/couponForm.shared.d.ts +1 -5
  20. package/dist/components/invoicing/customerForm/InvoicingCustomerFormPage.d.ts +1 -9
  21. package/dist/components/invoicing/discountDetail/InvoicingDiscountDetailPage.d.ts +0 -7
  22. package/dist/components/invoicing/settings/invoicingSettingsShared.d.ts +2 -8
  23. package/dist/components/invoicing/subscriptionForm/InvoicingSubscriptionFormPage.d.ts +1 -9
  24. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsAccruedExpensesPage.d.ts +2 -12
  25. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsFixedAssetsPage.d.ts +2 -12
  26. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsPage.d.ts +2 -12
  27. package/dist/components/reportTree/treeNode/accountReconReport/row/v2/statusHelper.d.ts +1 -1
  28. package/dist/index.cjs.js +1 -1
  29. package/dist/index.d.ts +1 -7
  30. package/dist/index.esm.js +391 -392
  31. package/dist/strings/strings.d.ts +4 -124
  32. package/package.json +6 -6
  33. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingKpiStrip.d.ts +0 -9
  34. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingList.d.ts +0 -13
  35. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +0 -11
  36. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +0 -21
  37. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchNewButton.d.ts +0 -5
  38. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPage.d.ts +0 -22
  39. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPageSkeleton.d.ts +0 -3
  40. package/dist/components/expenseAutomation/sections/actualMatching/MatchNewModal.d.ts +0 -12
  41. package/dist/components/expenseAutomation/sections/actualMatching/MatchNewPreview.d.ts +0 -8
  42. package/dist/components/expenseAutomation/sections/actualMatching/ReversesGroupedPill.d.ts +0 -5
  43. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +0 -76
  44. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.test.d.ts +0 -1
  45. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingListConfig.d.ts +0 -12
  46. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.d.ts +0 -18
  47. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.test.d.ts +0 -1
  48. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingTypes.d.ts +0 -43
  49. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.d.ts +0 -12
  50. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.test.d.ts +0 -1
  51. package/dist/components/expenseAutomation/sections/actualMatching/stories/ActualMatchingPageQuickViewStoryParts.d.ts +0 -10
  52. package/dist/components/expenseAutomation/stories/actualMatchingPageStoryActions.d.ts +0 -2
  53. package/dist/components/invoicing/common/invoicingAccountPickerOptions.d.ts +0 -14
  54. package/dist/components/jeSchedules/scheduleDetails/sections/ScheduleDecisionAction.d.ts +0 -41
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { Routine } from './helpers/aiCfoRoutines';
3
3
  export interface AiCfoRoutinesBrowserProps {
4
- /** False withholds "New scheduled task" — the server states the cap, not the client. */
4
+ /** False withholds "New routine" — the server states the cap, not the client. */
5
5
  canCreate: boolean;
6
6
  listError: boolean;
7
7
  /**
@@ -5,7 +5,6 @@ import { DownloadJEScheduleParams } from '../jeSchedules/downloadJESchedules/typ
5
5
  import { ReportTreeScrollPosition } from '../reportTree/ReportTree';
6
6
  import { ExpenseAutomationThreadClickTarget } from './components/ExpenseAutomationCommentingShell';
7
7
  import { MonthEndReportPageProps } from './components/TableSection';
8
- import { ActualMatchingActionProps } from './sections/actualMatching/actualMatchingTypes';
9
8
  import { JEAccrualFeedbackReason } from './sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog';
10
9
  import { FormData as JEScheduleAccountSettingsFormData } from './sections/jeSchedules/common/JEScheduleAccountSettings';
11
10
  import { JEScheduleNewEntrySelection } from './sections/jeSchedules/common/JEScheduleNewEntryButton';
@@ -16,7 +15,7 @@ import { TransferDrawerTransactionData } from './sections/transactionCategorizat
16
15
  /**
17
16
  * Component & its Props
18
17
  */
19
- export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, ActualMatchingActionProps {
18
+ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
20
19
  accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
21
20
  authParams: AuthParams;
22
21
  baseTransactionSearchFetchState: FetchStateAndError;
@@ -70,12 +69,6 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, Act
70
69
  isCreateTransferEntryFromExpenseEnabled?: boolean;
71
70
  /** Gates close-management commenting across the 4 tabs. */
72
71
  isExpenseAutomationCommentingEnabled?: boolean;
73
- /**
74
- * Match quick view, named apart from page-level `panelContent` the same way
75
- * `schedulePanelContent` is. Actual Matching renders its own SidePanelLayout
76
- * so the KPI strip stays full-width above the split.
77
- */
78
- isMatchPanelOpen?: boolean;
79
72
  /** Transaction categorization only: when true, the right rail is expanded. */
80
73
  isRightPanelOpen?: boolean;
81
74
  /**
@@ -89,7 +82,6 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, Act
89
82
  */
90
83
  isSchedulePanelOpen?: boolean;
91
84
  loggedInUser?: LoggedInUser;
92
- matchPanelContent?: ReactNode;
93
85
  newAccrualAccountsView?: NewAccrualAccountsView;
94
86
  /** The draft this form was last left with, for a host that stores it. */
95
87
  newScheduleLocalData?: NewScheduleSaveFormValues;
@@ -201,12 +193,10 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, Act
201
193
  updateSectionIdsForReview: (sectionIds: FluxAnalysisSectionType[]) => void;
202
194
  updateSelectedVendorForTransaction: (selectedTab: ExpenseAutomationTransactionsTab, transactionId: ID, lineId: ID, selectedTransaction: SupportedTransactionWithCOT, updatedVendor?: VendorBase) => void;
203
195
  /**
204
- * When set (e.g. from `withTransactionSidePanel` in the host app), closing
205
- * the open quick-view on Missing Receipts sub-tab changes or JE page tab
206
- * changes avoids a stale panel over the newly selected list. Match QV is
207
- * closed via `closeMatchSidePanel` instead — it is not page-level.
196
+ * When set (e.g. from `withTransactionSidePanel` in the host app), closing the transaction
197
+ * quick-view / side panel on Missing Receipts sub-tab changes avoids a stale panel over Unmatched
198
+ * or Completed lists.
208
199
  */
209
- closeMatchSidePanel?: () => void;
210
200
  closeSidePanel?: () => void;
211
201
  onAccountExclude?: (accountId: ID) => void;
212
202
  onAccountInclude?: (accountId: ID) => void;
@@ -47,10 +47,5 @@ missingReceiptsOptions?: {
47
47
  * `missing_receipts`, `flux_analysis`, `je_schedules`). Gated by
48
48
  * `is_expense_automation_commenting_enabled`.
49
49
  */
50
- isExpenseAutomationCommentingEnabled?: boolean, receiptsEmail?: string,
51
- /**
52
- * Cron-2 live gate (`is_accrual_enabled`). Off hides the Actual Matching JE
53
- * subtab — there are no one-time accruals to match.
54
- */
55
- isAccrualEnabled?: boolean) => ExpenseAutomationNavbarHeaderData;
50
+ isExpenseAutomationCommentingEnabled?: boolean, receiptsEmail?: string) => ExpenseAutomationNavbarHeaderData;
56
51
  export {};
@@ -1,10 +1,9 @@
1
1
  import { ExpenseAutomationViewSelector, FetchStateAndError, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, NewAccrualAccountsView, NewOneTimeAccrualLocalData, ScheduleDetailsLocalDataAccruedExpenses, ScheduleTransaction, TransactionID, ZeniDate } from '@zeniai/client-epic-state';
2
2
  import { FooterFormIdType } from '../../common';
3
- import { ActualMatchingActionProps } from '../actualMatching/actualMatchingTypes';
4
3
  import { FormData as JEScheduleAccountSettingsFormData } from './common/JEScheduleAccountSettings';
5
4
  import { JESchedulesSectionProps } from './sections/JESchedulesSection';
6
5
  import { NewScheduleSaveFormValues } from './sections/NewJEScheduleSection';
7
- export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled" | "isPanelOpen" | "panelContent" | "pendingDiscardConfirmation">, Partial<ActualMatchingActionProps> {
6
+ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled" | "isPanelOpen" | "panelContent" | "pendingDiscardConfirmation"> {
8
7
  accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
9
8
  baseTransactionSearchFetchState: FetchStateAndError;
10
9
  baseTransactionSearchResults: ScheduleTransaction[];
@@ -24,12 +23,6 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
24
23
  /** The draft this form was last left with, for a host that stores it. */
25
24
  /** Cron-2's live gate for this company. Off hides one-time accrual creation. */
26
25
  isAccrualEnabled?: boolean;
27
- /**
28
- * Match quick view, named apart from page-level `panelContent` the same way
29
- * `schedulePanelContent` is. Actual Matching renders its own SidePanelLayout
30
- * so the KPI strip stays full-width above the split.
31
- */
32
- isMatchPanelOpen?: boolean;
33
26
  /**
34
27
  * Schedule side panel, named apart from the page-level `panelContent` that drives the
35
28
  * transaction and reconciliation panels: ExpenseAutomationPage spreads its own props into
@@ -38,7 +31,6 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
38
31
  * There is no full-view flag: expanding leaves for the schedule's own page.
39
32
  */
40
33
  isSchedulePanelOpen?: boolean;
41
- matchPanelContent?: React.ReactNode;
42
34
  newAccrualAccountsView?: NewAccrualAccountsView;
43
35
  newScheduleLocalData?: NewScheduleSaveFormValues;
44
36
  schedulePanelContent?: React.ReactNode;
@@ -59,5 +51,5 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
59
51
  setResetJeAccountSettingsForm: (resetFn: () => void) => void;
60
52
  onNewScheduleFormChange?: (scheduleType: string, formValues: NewScheduleSaveFormValues) => void;
61
53
  }
62
- declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, closeMonth, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, isMatchPanelOpen, isSchedulePanelOpen, matchPanelContent, schedulePanelContent, schedulePendingDiscardConfirmation, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, onClearMatchNewModal, onCloseMatchNewModal, onMatchAndReverse, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUpdateActualMatchingUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
54
+ declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, closeMonth, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, isSchedulePanelOpen, schedulePanelContent, schedulePendingDiscardConfirmation, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
63
55
  export default JESchedulePage;
@@ -2,8 +2,7 @@ export interface JEGroupSectionHeaderProps {
2
2
  count: number;
3
3
  isCollapsed: boolean;
4
4
  title: string;
5
- subtitle?: string;
6
5
  onToggle: () => void;
7
6
  }
8
- declare function JEGroupSectionHeader({ title, count, isCollapsed, onToggle, subtitle, }: Readonly<JEGroupSectionHeaderProps>): import("react/jsx-runtime").JSX.Element;
7
+ declare function JEGroupSectionHeader({ title, count, isCollapsed, onToggle, }: Readonly<JEGroupSectionHeaderProps>): import("react/jsx-runtime").JSX.Element;
9
8
  export default JEGroupSectionHeader;
@@ -21,6 +21,13 @@ export interface JEScheduleHeaderItemData {
21
21
  }
22
22
  export declare const ESTIMATED_ROW_HEIGHT = 64;
23
23
  export declare const COT_ICON_SIZE_PX = 16;
24
+ /**
25
+ * The Action cell's error-icon slot, reserved whether or not the row has an error to report.
26
+ *
27
+ * Only resolve rows raise one, and both action renderers centre their content, so a row with the
28
+ * icon used to sit 10px left of a row without it. Every Action cell now reserves the same slot.
29
+ */
30
+ export declare const ACTION_ERROR_ICON_SIZE_PX = 12;
24
31
  export declare const COT_ICON_GAP_PX: number;
25
32
  export declare const jeScheduleHeaderItemsData: JEScheduleHeaderItemData[];
26
33
  /**
@@ -1,14 +1,7 @@
1
1
  import { ExpenseAutomationViewType } from '@zeniai/client-epic-state';
2
2
  /**
3
- * Which views want the page-level SidePanelLayout's list column to drop its 16px top padding.
4
- *
5
- * That padding exists to line the list column up with the panel beside it, which is right for a
6
- * view whose own content starts flush. It is wrong for a view that already opens with its own top
7
- * spacing -- there the two stack and the first thing on the page sits 32px down.
8
- *
9
- * - Missing receipts, only while bulk upload is active (covers Unmatched and Completed too).
10
- * - Transaction categorization.
11
- * - JE Schedules, whose page opens on its type filter and KPI strip: this padding sat above those
12
- * and doubled the gap over the filter bar.
3
+ * When bulk receipt upload is active on the missing-receipts view, ExpenseAutomationPage
4
+ * passes `disableMarginTop` to SidePanelLayout so list content aligns without extra
5
+ * top margin. Covers Missing Receipts, Unmatched, and Completed bulk-upload table flows.
13
6
  */
14
7
  export declare function shouldDisableTransactionSidePanelListMarginTop(currentSelectedView: ExpenseAutomationViewType, isBulkReceiptUploadActive: boolean): boolean;
@@ -36,17 +36,12 @@ export interface InvoicingCatalogItemFormPageProps {
36
36
  */
37
37
  fieldHelp?: FieldHelpByCode;
38
38
  /**
39
- * True while anything the fields mount against is still loading in edit
40
- * mode the item itself, and either way the accounting lists. The form waits
41
- * rather than render, for two reasons that both outlive the response:
42
- * `useForm` seeds its default values once, at first render, so fields mounted
43
- * against the blank draft stay blank and the first change writes that
44
- * blankness back over the item; and the accounting fields choose between a
45
- * picker and a text input from the lists, so swapping one for the other on a
46
- * mounted form replaces a plain string value with a grouped one under the
47
- * same field name.
39
+ * True while the accounting lists are still loading. The form waits rather
40
+ * than render: the accounting fields choose between a picker and a text input
41
+ * from these lists, and swapping one for the other on a mounted form replaces
42
+ * a plain string value with a grouped one under the same field name.
48
43
  */
49
- isLoading?: boolean;
44
+ isQboPickerDataLoading?: boolean;
50
45
  qboAccountHierarchy?: NestedAccountHierarchyForReport[];
51
46
  /**
52
47
  * Account and class trees the price-point pickers render as grouped options.
@@ -71,5 +66,5 @@ export interface InvoicingCatalogItemFormPageProps {
71
66
  * invoicing forms. The whole form syncs back to the CES draft (`localData`) on
72
67
  * every change; the save payload is derived from the draft in CES.
73
68
  */
74
- export declare function InvoicingCatalogItemFormPage({ applicabilityValues, fieldHelp, applicableItemOptions, defaultType, errorMessage, isLoading, isSubmitting, localData, mode, onBack, onCancel, onChange, onSubmit, periodUnitOptions, pricingModelValues, prorationValues, qboClassHierarchy, qboAccountHierarchy, tierTypeOptionsByPricingModel, tierTypeValues, trialEndActionOptions, trialUnitOptions, typeOptions, }: Readonly<InvoicingCatalogItemFormPageProps>): import("react/jsx-runtime").JSX.Element;
69
+ export declare function InvoicingCatalogItemFormPage({ applicabilityValues, fieldHelp, applicableItemOptions, defaultType, errorMessage, isSubmitting, localData, mode, onBack, onCancel, onChange, onSubmit, periodUnitOptions, pricingModelValues, prorationValues, isQboPickerDataLoading, qboClassHierarchy, qboAccountHierarchy, tierTypeOptionsByPricingModel, tierTypeValues, trialEndActionOptions, trialUnitOptions, typeOptions, }: Readonly<InvoicingCatalogItemFormPageProps>): import("react/jsx-runtime").JSX.Element;
75
70
  export default InvoicingCatalogItemFormPage;
@@ -56,6 +56,13 @@ export declare const CATALOG_LOCAL_TIER_TYPE_OPTIONS: CatalogSelectOption[];
56
56
  export declare const catalogOptionLabel: (allOptions: readonly CatalogSelectOption[], value: string | undefined) => string | undefined;
57
57
  /** Block any keystroke that would put a non-digit into a period field. */
58
58
  export declare const allowOnlyNumericKeys: (event: KeyboardEvent<HTMLInputElement>) => void;
59
+ /**
60
+ * Accounts as the grouped picker renders them. `getGroupedAccountOptions` falls
61
+ * back to the internal id when a node carries no `qboId`; this form submits the
62
+ * QuickBooks id, so an account without one is dropped rather than offered as a
63
+ * value the invoicing API would reject.
64
+ */
65
+ export declare const toGroupedQboAccountOptions: (hierarchy?: NestedAccountHierarchyForReport[]) => GroupedOption[];
59
66
  /**
60
67
  * Classes as the grouped picker renders them. `getGroupedClassOptions` labels
61
68
  * each option with the internal class id while accounts use `qboId ?? id`, so the
@@ -68,13 +68,6 @@ export interface InvoicingFormShellProps<TFieldValues extends FieldValues> {
68
68
  title: string;
69
69
  cancelLabel?: string;
70
70
  errorMessage?: string;
71
- /**
72
- * Holds submit closed without claiming a save is under way, for a form whose
73
- * fields are still standing down behind a skeleton. Distinct from
74
- * `isSubmitting`, which also disables cancel and spins the submit button —
75
- * neither of which is true of a page that is merely loading.
76
- */
77
- isSubmitDisabled?: boolean;
78
71
  onCancel: () => void;
79
72
  onSubmit: (values: TFieldValues) => void;
80
73
  /** When provided, renders a back-arrow icon button to the left of the title. */
@@ -88,4 +81,4 @@ export interface InvoicingFormShellProps<TFieldValues extends FieldValues> {
88
81
  * should use the shared `formElements/Labeled*` primitives so field color,
89
82
  * hover/focus and search behave exactly like bill edit.
90
83
  */
91
- export declare function InvoicingFormShell<TFieldValues extends FieldValues>({ cancelLabel, children, errorMessage, formId, isSubmitDisabled, isSubmitting, methods, onBack, onCancel, onSubmit, submitLabel, title, }: Readonly<InvoicingFormShellProps<TFieldValues>>): import("react/jsx-runtime").JSX.Element;
84
+ export declare function InvoicingFormShell<TFieldValues extends FieldValues>({ cancelLabel, children, errorMessage, formId, isSubmitting, methods, onBack, onCancel, onSubmit, submitLabel, title, }: Readonly<InvoicingFormShellProps<TFieldValues>>): import("react/jsx-runtime").JSX.Element;
@@ -30,12 +30,7 @@ export interface InvoicingInvoicePreviewProps {
30
30
  customer?: InvoicingInvoicePreviewCustomer;
31
31
  /** Override the invoice number shown in the header (defaults to "{prefix}—NEW"). */
32
32
  invoiceNumber?: string;
33
- /**
34
- * Pre-resolved logo URL; overrides `settings.logo_file` (used by the branding
35
- * form, whose in-progress logo is an upload that is not on the settings yet).
36
- */
37
- logoUrl?: string;
38
33
  settings?: InvoicingSettings;
39
34
  }
40
- export declare function InvoicingInvoicePreview({ businessAddressLabel, currencyCode, customer, dueDate, invoiceDate, invoiceNumber, invoiceType, lineItems, logoUrl, netTerms, notes, poNumber, recurringFrequency, settings, }: Readonly<InvoicingInvoicePreviewProps>): import("react/jsx-runtime").JSX.Element;
35
+ export declare function InvoicingInvoicePreview({ businessAddressLabel, currencyCode, customer, dueDate, invoiceDate, invoiceNumber, invoiceType, lineItems, netTerms, notes, poNumber, recurringFrequency, settings, }: Readonly<InvoicingInvoicePreviewProps>): import("react/jsx-runtime").JSX.Element;
41
36
  export default InvoicingInvoicePreview;
@@ -34,25 +34,9 @@ export declare function InvoicingSettingsSkeleton({ tab, }: Readonly<{
34
34
  /** Shimmer placeholder while create-invoice settings are fetched from the API. */
35
35
  export declare function InvoicingCreateInvoiceSkeleton(): import("react/jsx-runtime").JSX.Element;
36
36
  /**
37
- * Stands in for the catalog item form's sections while the record it edits and
38
- * the accounting pickers load the form seeds react-hook-form once, at first
39
- * render, and the pickers' registered value shape depends on the shared account
40
- * and class lists, so neither can be picked up after the fields have mounted.
41
- * Renders inside the form shell's own centered column, so the page keeps its
42
- * title, back arrow and footer.
37
+ * Stands in for the catalog item form's sections while the accounting pickers
38
+ * load their options and their registered value shape both depend on the
39
+ * shared account and class lists. Renders inside the form shell's own centered
40
+ * column, so the page keeps its title, back arrow and footer.
43
41
  */
44
42
  export declare function InvoicingCatalogItemFormSkeleton(): import("react/jsx-runtime").JSX.Element;
45
- /**
46
- * Stands in for the customer form's sections while the customer it edits loads.
47
- * Same reason as {@link InvoicingCatalogItemFormSkeleton}: the form seeds
48
- * react-hook-form once, at first render, so fields mounted against the blank
49
- * draft stay blank however late the record lands.
50
- */
51
- export declare function InvoicingCustomerFormSkeleton(): import("react/jsx-runtime").JSX.Element;
52
- /** Stands in for the discount form's sections while the coupon it edits loads. */
53
- export declare function InvoicingCouponFormSkeleton(): import("react/jsx-runtime").JSX.Element;
54
- /**
55
- * Stands in for the subscription form's sections while the subscription it
56
- * edits loads.
57
- */
58
- export declare function InvoicingSubscriptionFormSkeleton(): import("react/jsx-runtime").JSX.Element;
@@ -1,40 +1,15 @@
1
- import { InvoicingCouponFormLocalData, InvoicingFormOption, NestedAccountHierarchyForReport } from '@zeniai/client-epic-state';
1
+ import { InvoicingCouponFormLocalData, InvoicingFormOption } from '@zeniai/client-epic-state';
2
2
  import { FieldHelpByCode } from '../../formElements/fieldHelp/FieldHelpContext';
3
3
  export interface InvoicingCouponFormPageProps {
4
4
  applyOnOptions: InvoicingFormOption[];
5
5
  discountTypeOptions: InvoicingFormOption[];
6
6
  durationTypeOptions: InvoicingFormOption[];
7
- /**
8
- * Whether to offer a discounts account at all. With no QuickBooks connection
9
- * there are no accounts to pick from, and a coupon saves fine without one.
10
- */
11
- isQboConnected: boolean;
12
7
  isSubmitting: boolean;
13
8
  localData: InvoicingCouponFormLocalData;
14
9
  mode: "create" | "edit";
15
10
  periodUnitOptions: InvoicingFormOption[];
16
11
  errorMessage?: string;
17
12
  fieldHelp?: FieldHelpByCode;
18
- /**
19
- * True while the coupon being edited is still loading. The form holds its
20
- * skeleton until the record lands: `useForm` seeds its default values once,
21
- * at first render, so mounting the fields against the blank draft leaves them
22
- * empty, and the first change writes that blankness back over the coupon.
23
- * Always false when creating — there is nothing to load.
24
- *
25
- * Separate from `isQboPickerDataLoading`, which the discounts-account picker
26
- * shows on itself: the rest of the form is usable before the lists land.
27
- */
28
- isLoading?: boolean;
29
- isQboPickerDataLoading?: boolean;
30
- /**
31
- * The account tree the discounts-account picker renders, and the QuickBooks
32
- * ids in it the discounts slot accepts. The tree is filtered by the ids
33
- * rather than pruned, so a parent that is not itself an income account still
34
- * groups the income accounts under it.
35
- */
36
- qboAccountHierarchy?: NestedAccountHierarchyForReport[];
37
- qboIncomeAccountIds?: string[];
38
13
  onCancel: () => void;
39
14
  onChange: (localData: InvoicingCouponFormLocalData) => void;
40
15
  onSubmit: () => void;
@@ -45,5 +20,5 @@ export interface InvoicingCouponFormPageProps {
45
20
  * CES (`localData`) and is synced back on every change; submit triggers the
46
21
  * CES-stored draft.
47
22
  */
48
- export declare function InvoicingCouponFormPage({ applyOnOptions, fieldHelp, discountTypeOptions, durationTypeOptions, errorMessage, isLoading, isQboConnected, isQboPickerDataLoading, isSubmitting, localData, mode, onBack, onCancel, onChange, onSubmit, periodUnitOptions, qboAccountHierarchy, qboIncomeAccountIds, }: Readonly<InvoicingCouponFormPageProps>): import("react/jsx-runtime").JSX.Element;
23
+ export declare function InvoicingCouponFormPage({ applyOnOptions, fieldHelp, discountTypeOptions, durationTypeOptions, errorMessage, isSubmitting, localData, mode, onBack, onCancel, onChange, onSubmit, periodUnitOptions, }: Readonly<InvoicingCouponFormPageProps>): import("react/jsx-runtime").JSX.Element;
49
24
  export default InvoicingCouponFormPage;
@@ -1,5 +1,4 @@
1
1
  import { InvoicingCouponFormLocalData, InvoicingFormOption } from '@zeniai/client-epic-state';
2
- import { GroupedOption, GroupedSingleSelectFieldValue } from '../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField';
3
2
  /**
4
3
  * Web-components glue for the coupon form. CES owns the draft `LocalData` and the
5
4
  * select-option value sets; this module maps those to the form's UI value shapes
@@ -18,11 +17,10 @@ export interface PickerValue {
18
17
  * Every plain field (name, couponCode, couponId, …) flows through by identity,
19
18
  * so adding a field to the CES type needs no mapper change.
20
19
  */
21
- export type CouponFormValues = Omit<InvoicingCouponFormLocalData, "applyOn" | "discountAmount" | "discountsAccountId" | "discountType" | "durationType" | "periodUnit" | "validFrom" | "validTill"> & {
20
+ export type CouponFormValues = Omit<InvoicingCouponFormLocalData, "applyOn" | "discountAmount" | "discountType" | "durationType" | "periodUnit" | "validFrom" | "validTill"> & {
22
21
  applyOn: PickerValue;
23
22
  /** Held as a float by `returnValueType: "floatValue"`; `null` when cleared. */
24
23
  discountAmount: number | null;
25
- discountsAccountId: GroupedSingleSelectFieldValue;
26
24
  discountType: PickerValue;
27
25
  durationType: PickerValue;
28
26
  periodUnit: PickerValue;
@@ -33,8 +31,6 @@ export interface CouponFormOptions {
33
31
  applyOnOptions: InvoicingFormOption[];
34
32
  discountTypeOptions: InvoicingFormOption[];
35
33
  durationTypeOptions: InvoicingFormOption[];
36
- /** Income accounts for the discounts-account picker, grouped by parent. */
37
- groupedAccountOptions: GroupedOption[];
38
34
  periodUnitOptions: InvoicingFormOption[];
39
35
  }
40
36
  export declare const localDataToCouponFormValues: (localData: InvoicingCouponFormLocalData, options: CouponFormOptions) => CouponFormValues;
@@ -11,14 +11,6 @@ export interface InvoicingCustomerFormPageProps {
11
11
  billingAddressLabel?: string;
12
12
  errorMessage?: string;
13
13
  fieldHelp?: FieldHelpByCode;
14
- /**
15
- * True while the customer being edited is still loading. The form holds its
16
- * skeleton until the record lands: `useForm` seeds its default values once,
17
- * at first render, so mounting the fields against the blank draft leaves them
18
- * empty, and the first change writes that blankness back over the customer.
19
- * Always false when creating — there is nothing to load.
20
- */
21
- isLoading?: boolean;
22
14
  onCancel: () => void;
23
15
  onChange: (localData: InvoicingCustomerFormLocalData) => void;
24
16
  onOpenAddress: () => void;
@@ -32,5 +24,5 @@ export interface InvoicingCustomerFormPageProps {
32
24
  * focus, and searchable selects behave exactly like the bill edit page. Emits a
33
25
  * plain data object for the connector to dispatch.
34
26
  */
35
- export declare function InvoicingCustomerFormPage({ billingAddressLabel, fieldHelp, customerTypeOptions, errorMessage, isLoading, isSubmitting, localData, mode, netTermDayOptions, onBack, onCancel, onChange, onOpenAddress, onSubmit, taxabilityOptions, }: Readonly<InvoicingCustomerFormPageProps>): import("react/jsx-runtime").JSX.Element;
27
+ export declare function InvoicingCustomerFormPage({ billingAddressLabel, fieldHelp, customerTypeOptions, errorMessage, isSubmitting, localData, mode, netTermDayOptions, onBack, onCancel, onChange, onOpenAddress, onSubmit, taxabilityOptions, }: Readonly<InvoicingCustomerFormPageProps>): import("react/jsx-runtime").JSX.Element;
36
28
  export default InvoicingCustomerFormPage;
@@ -5,13 +5,6 @@ export interface InvoicingDiscountDetailPageProps {
5
5
  isLoading: boolean;
6
6
  coupon?: InvoicingCoupon;
7
7
  discountLifecycleActionOptions?: InvoicingDiscountLifecycleActionOption[];
8
- /**
9
- * The account the coupon's discount line posts to, resolved from the id the
10
- * coupon stores. Absent while the account list is still loading, or when the
11
- * coupon names no account of its own — in which case the QBO settings
12
- * discounts account applies instead.
13
- */
14
- discountsAccountName?: string;
15
8
  /** Error from the last inline-edit save attempt, shown in edit mode. */
16
9
  fieldHelp?: FieldHelpByCode;
17
10
  isRunningLifecycleAction?: boolean;
@@ -43,14 +43,8 @@ export interface StripeConnectCredentials {
43
43
  export declare const isDunningAction: (value: string) => value is InvoicingDunningAction;
44
44
  export declare const dunningScheduleFromSettings: (settings?: InvoicingSettings) => DunningStep[];
45
45
  export declare const dunningScheduleToPayload: (steps: DunningStep[]) => InvoicingDunningScheduleStepPayload[];
46
- /**
47
- * The logo the branding screen should show: the file just uploaded, else the
48
- * record the settings read returned. There is no third fallback any more — the
49
- * settings response carries the whole file or nothing, so an id whose file has
50
- * been deleted arrives as nothing rather than as a placeholder the screen had
51
- * to invent a name for.
52
- */
53
- export declare const resolveLogoFile: (storedLogoFile: File | undefined, localLogoFile: File | undefined) => File | undefined;
46
+ export declare const logoFileStubFromSettings: (settings?: InvoicingSettings) => File | undefined;
47
+ export declare const resolveLogoFile: (settings: InvoicingSettings | undefined, storedLogoFile: File | undefined, localLogoFile: File | undefined) => File | undefined;
54
48
  export declare const trimOrUndefined: (value: string) => string | undefined;
55
49
  export declare const maskStripeKey: (key: string) => string;
56
50
  export declare const isStripeConnectedFromSettings: (settings?: InvoicingSettings) => boolean;
@@ -12,14 +12,6 @@ export interface InvoicingSubscriptionFormPageProps {
12
12
  customers?: InvoicingSubscriptionFormOption[];
13
13
  errorMessage?: string;
14
14
  fieldHelp?: FieldHelpByCode;
15
- /**
16
- * True while the subscription being edited is still loading. The form holds
17
- * its skeleton until the record lands: `useForm` seeds its default values
18
- * once, at first render, so mounting the fields against the blank draft
19
- * leaves them empty, and the first change writes that blankness back over the
20
- * subscription. Always false when creating — there is nothing to load.
21
- */
22
- isLoading?: boolean;
23
15
  plans?: InvoicingSubscriptionFormOption[];
24
16
  shippingAddressLabel?: string;
25
17
  onCancel: () => void;
@@ -34,5 +26,5 @@ export interface InvoicingSubscriptionFormPageProps {
34
26
  * primitives. The draft flows from CES (`localData`) and is synced back on every
35
27
  * change; the shipping address is captured via the shared Address screen.
36
28
  */
37
- export declare function InvoicingSubscriptionFormPage({ fieldHelp, addons, charges, coupons, customers, errorMessage, isLoading, isSubmitting, localData, mode, onBack, onCancel, onChange, onOpenAddress, onSubmit, plans, shippingAddressLabel, }: Readonly<InvoicingSubscriptionFormPageProps>): import("react/jsx-runtime").JSX.Element;
29
+ export declare function InvoicingSubscriptionFormPage({ fieldHelp, addons, charges, coupons, customers, errorMessage, isSubmitting, localData, mode, onBack, onCancel, onChange, onOpenAddress, onSubmit, plans, shippingAddressLabel, }: Readonly<InvoicingSubscriptionFormPageProps>): import("react/jsx-runtime").JSX.Element;
38
30
  export default InvoicingSubscriptionFormPage;
@@ -1,9 +1,7 @@
1
1
  import { ClientAnalytics } from '@zeniai/client-analytics';
2
- import { AccountBase, ClassBase, ControllerUserDetails, EntityAutoCompleteView, FetchState, ID, ScheduleAccruedDetailsView, ScheduleDetailsLocalDataAccruedExpenses, ScheduleTypes, TransactionID, VendorBase } from '@zeniai/client-epic-state';
2
+ import { AccountBase, ClassBase, ControllerUserDetails, EntityAutoCompleteView, ID, ScheduleAccruedDetailsView, ScheduleDetailsLocalDataAccruedExpenses, ScheduleTypes, TransactionID, VendorBase } from '@zeniai/client-epic-state';
3
3
  import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
4
- import { JEAccrualFeedbackReason } from '../../expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog';
5
4
  import { OptionType as AutoCompleteOptionType } from '../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField';
6
- import { ScheduleDecisionType } from './sections/ScheduleDecisionAction';
7
5
  import { ScheduleDetailsAccruedExpensesSectionFormData } from './sections/ScheduleDetailsAccruedExpensesSection';
8
6
  import { ScheduleDetailsListSectionFormData } from './table/items/ScheduleSequenceTableRow';
9
7
  export interface Props {
@@ -20,8 +18,6 @@ export interface Props {
20
18
  /** Rendered inside a side panel rather than as its own route: the host page keeps
21
19
  * its own nav bar and the panel bounds the height, so this page must supply neither. */
22
20
  isRenderedInPanel?: boolean;
23
- /** Status of the ignore / revert request for this schedule. */
24
- scheduleDecisionStatus?: FetchState;
25
21
  scheduleDetailId?: ID;
26
22
  onCancelAccrual: (scheduleType: ScheduleTypes, jeScheduleID: ID, row?: number) => void;
27
23
  onDelete: (jeScheduleDetailId: ID) => void;
@@ -33,12 +29,6 @@ export interface Props {
33
29
  onViewBillExpense: (transactionId: TransactionID) => void;
34
30
  onViewPostedJE: (transactionId: TransactionID) => void;
35
31
  onViewRecordedJE: (transactionId: TransactionID) => void;
36
- /**
37
- * Ignore a recommendation, or revert a schedule that exists -- whichever this schedule's state
38
- * offers. The reason comes from the dialog; the keys are the host's, so it sends those itself.
39
- * Absent leaves the decision off the page, which is how it behaved before.
40
- */
41
- onScheduleDecision?: (decision: ScheduleDecisionType, reason: JEAccrualFeedbackReason, note?: string) => void;
42
32
  }
43
33
  declare const scheduleDetailsAccruedExpensesSectionId = "scheduleDetailsAccruedExpensesSection";
44
34
  declare const scheduleDetailsListSectionId = "scheduleDetailsListSection";
@@ -46,6 +36,6 @@ export interface FormData {
46
36
  [scheduleDetailsAccruedExpensesSectionId]: ScheduleDetailsAccruedExpensesSectionFormData;
47
37
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
48
38
  }
49
- export declare function ScheduleDetailsAccruedExpensesPage({ accountList, accruedAccountList, analytics, classList, controllerUserDetails, isAccountingClassesEnabled, scheduleAccruedDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, shouldNavigateBack, scheduleDetailId, isRenderedInPanel, onDelete, onEditAmount, onJELinkClick, onCancelAccrual, onDetailPageChange, onNavigateBack, onSave, onViewBillExpense, onViewPostedJE, onViewRecordedJE, onScheduleDecision, scheduleDecisionStatus, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
39
+ export declare function ScheduleDetailsAccruedExpensesPage({ accountList, accruedAccountList, analytics, classList, controllerUserDetails, isAccountingClassesEnabled, scheduleAccruedDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, shouldNavigateBack, scheduleDetailId, isRenderedInPanel, onDelete, onEditAmount, onJELinkClick, onCancelAccrual, onDetailPageChange, onNavigateBack, onSave, onViewBillExpense, onViewPostedJE, onViewRecordedJE, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
50
40
  export declare const getDefaultVendorOptions: (vendorSearchEntityAutoCompleteView?: EntityAutoCompleteView, selectedVendor?: VendorBase) => AutoCompleteOptionType[];
51
41
  export {};
@@ -1,8 +1,6 @@
1
1
  import { ClientAnalytics } from '@zeniai/client-analytics';
2
- import { ControllerUserDetails, FetchState, ID, JEScheduleTransactionKey, MonthYearPeriod, ScheduleDetailsView, TransactionID } from '@zeniai/client-epic-state';
2
+ import { ControllerUserDetails, ID, JEScheduleTransactionKey, MonthYearPeriod, ScheduleDetailsView, TransactionID } from '@zeniai/client-epic-state';
3
3
  import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
4
- import { JEAccrualFeedbackReason } from '../../expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog';
5
- import { ScheduleDecisionType } from './sections/ScheduleDecisionAction';
6
4
  import { ScheduleDetailsFixedAssetsSectionFormData } from './sections/ScheduleDetailsFixedAssetsSection';
7
5
  import { ScheduleDetailsListSectionFormData } from './table/items/ScheduleSequenceTableRow';
8
6
  export interface Props {
@@ -16,8 +14,6 @@ export interface Props {
16
14
  /** Rendered inside a side panel rather than as its own route: the host page keeps
17
15
  * its own nav bar and the panel bounds the height, so this page must supply neither. */
18
16
  isRenderedInPanel?: boolean;
19
- /** Status of the ignore / revert request for this schedule. */
20
- scheduleDecisionStatus?: FetchState;
21
17
  onDelete: (jeScheduleDetailId: ID) => void;
22
18
  onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
23
19
  onEditAmount: (row: number, jeScheduleId?: ID) => void;
@@ -28,12 +24,6 @@ export interface Props {
28
24
  onTransactionClick: (transactionId: TransactionID) => void;
29
25
  onViewLinkedJE: (transactionId: TransactionID) => void;
30
26
  removeJeScheduleTransactionKey: (jeScheduleKey: JEScheduleTransactionKey, selectedPeriod: MonthYearPeriod) => void;
31
- /**
32
- * Ignore a recommendation, or revert a schedule that exists -- whichever this schedule's state
33
- * offers. The reason comes from the dialog; the keys are the host's, so it sends those itself.
34
- * Absent leaves the decision off the page, which is how it behaved before.
35
- */
36
- onScheduleDecision?: (decision: ScheduleDecisionType, reason: JEAccrualFeedbackReason, note?: string) => void;
37
27
  }
38
28
  declare const scheduleDetailsFixedAssetsSectionId = "scheduleDetailsFixedAssetsSection";
39
29
  declare const scheduleDetailsListSectionId = "scheduleDetailsListSection";
@@ -41,5 +31,5 @@ export interface FormData {
41
31
  [scheduleDetailsFixedAssetsSectionId]: ScheduleDetailsFixedAssetsSectionFormData;
42
32
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
43
33
  }
44
- declare function ScheduleDetailsFixedAssetsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, vendorSearchAutoCompleteActions, isRenderedInPanel, vendorSearchAutoCompleteData, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onMarkAsComplete, onScheduleDecision, scheduleDecisionStatus, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
34
+ declare function ScheduleDetailsFixedAssetsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, vendorSearchAutoCompleteActions, isRenderedInPanel, vendorSearchAutoCompleteData, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onMarkAsComplete, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
45
35
  export default ScheduleDetailsFixedAssetsPage;
@@ -1,8 +1,6 @@
1
1
  import { ClientAnalytics } from '@zeniai/client-analytics';
2
- import { ControllerUserDetails, FetchState, ID, JEScheduleTransactionKey, MonthYearPeriod, ScheduleDetailsView, ScheduleTypes, TransactionID } from '@zeniai/client-epic-state';
2
+ import { ControllerUserDetails, ID, JEScheduleTransactionKey, MonthYearPeriod, ScheduleDetailsView, ScheduleTypes, TransactionID } from '@zeniai/client-epic-state';
3
3
  import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
4
- import { JEAccrualFeedbackReason } from '../../expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog';
5
- import { ScheduleDecisionType } from './sections/ScheduleDecisionAction';
6
4
  import { ScheduleDetailsSectionFormData } from './sections/ScheduleDetailsSection';
7
5
  import { ScheduleDetailsListSectionFormData } from './table/items/ScheduleSequenceTableRow';
8
6
  export interface Props {
@@ -17,8 +15,6 @@ export interface Props {
17
15
  /** Rendered inside a side panel rather than as its own route: the host page keeps
18
16
  * its own nav bar and the panel bounds the height, so this page must supply neither. */
19
17
  isRenderedInPanel?: boolean;
20
- /** Status of the ignore / revert request for this schedule. */
21
- scheduleDecisionStatus?: FetchState;
22
18
  onDelete: (jeScheduleDetailId: ID) => void;
23
19
  onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
24
20
  onEditAmount: (row: number, jeScheduleId?: ID) => void;
@@ -29,12 +25,6 @@ export interface Props {
29
25
  onTransactionClick: (transactionID: TransactionID) => void;
30
26
  onViewLinkedJE: (transactionID: TransactionID) => void;
31
27
  removeJeScheduleTransactionKey: (jeScheduleKey: JEScheduleTransactionKey, selectedPeriod: MonthYearPeriod) => void;
32
- /**
33
- * Ignore a recommendation, or revert a schedule that exists -- whichever this schedule's state
34
- * offers. The reason comes from the dialog; the keys are the host's, so it sends those itself.
35
- * Absent leaves the decision off the page, which is how it behaved before.
36
- */
37
- onScheduleDecision?: (decision: ScheduleDecisionType, reason: JEAccrualFeedbackReason, note?: string) => void;
38
28
  }
39
29
  declare const scheduleDetailsSectionId = "scheduleDetailsSection";
40
30
  declare const scheduleDetailsListSectionId = "scheduleDetailsListSection";
@@ -42,5 +32,5 @@ export interface FormData {
42
32
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
43
33
  [scheduleDetailsSectionId]: ScheduleDetailsSectionFormData;
44
34
  }
45
- declare function ScheduleDetailsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, scheduleTab, isRenderedInPanel, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onMarkAsComplete, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onScheduleDecision, scheduleDecisionStatus, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
35
+ declare function ScheduleDetailsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, scheduleTab, isRenderedInPanel, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onMarkAsComplete, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
46
36
  export default ScheduleDetailsPage;
@@ -6,7 +6,7 @@ type StatusProps = {
6
6
  /** V2 list row — Review lives in AccountReconDetailsDrawerPageV2, not the AI Progress column. */
7
7
  export declare function ShowStatusForBankConnectionV2({ accountRecon, isLoading, }: Readonly<StatusProps>): import("react/jsx-runtime").JSX.Element;
8
8
  export declare function ShowStatusForStatementConnectionV2({ accountRecon, isLoading, }: Readonly<StatusProps>): import("react/jsx-runtime").JSX.Element;
9
- /** When true, AI Progress shows the V1 status (Reconciled tag / etc.) instead of the bar. */
9
+ /** When true, AI Progress shows the V1 status (Reconciled / Books closed / etc.) instead of the bar. */
10
10
  export declare function shouldShowReconciledTagInMatchProgress(reconciliationStatusCode?: ReconciliationStatusCodeType): boolean;
11
11
  export declare function shouldShowMatchProgressBar(matchTotal: number, reconciliationStatusCode?: ReconciliationStatusCodeType): boolean;
12
12
  export {};