@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.
- package/dist/{SessionTimeoutPopup-BrrSJgL_.cjs → SessionTimeoutPopup-BevaOjyq.cjs} +16076 -16879
- package/dist/{SessionTimeoutPopup-DBvW5uLp.js → SessionTimeoutPopup-nBxUPbGt.js} +91017 -94527
- package/dist/appLocale.d.ts +4 -124
- package/dist/cockpit.cjs.js +8 -8
- package/dist/cockpit.esm.js +514 -514
- package/dist/components/aiCfo/components/AiCfoRoutinesBrowser.d.ts +1 -1
- package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +4 -14
- package/dist/components/expenseAutomation/components/navbarHeaderData.d.ts +1 -6
- package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +2 -10
- package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +1 -2
- package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleConfig.d.ts +7 -0
- package/dist/components/expenseAutomation/sections/missingReceipts/missingReceiptsSidePanelListMargin.d.ts +3 -10
- package/dist/components/invoicing/catalogForm/InvoicingCatalogItemFormPage.d.ts +6 -11
- package/dist/components/invoicing/catalogForm/catalogItemForm.shared.d.ts +7 -0
- package/dist/components/invoicing/common/InvoicingFormControls.d.ts +1 -8
- package/dist/components/invoicing/common/InvoicingInvoicePreview.d.ts +1 -6
- package/dist/components/invoicing/common/InvoicingSkeletons.d.ts +4 -20
- package/dist/components/invoicing/couponForm/InvoicingCouponFormPage.d.ts +2 -27
- package/dist/components/invoicing/couponForm/couponForm.shared.d.ts +1 -5
- package/dist/components/invoicing/customerForm/InvoicingCustomerFormPage.d.ts +1 -9
- package/dist/components/invoicing/discountDetail/InvoicingDiscountDetailPage.d.ts +0 -7
- package/dist/components/invoicing/settings/invoicingSettingsShared.d.ts +2 -8
- package/dist/components/invoicing/subscriptionForm/InvoicingSubscriptionFormPage.d.ts +1 -9
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsAccruedExpensesPage.d.ts +2 -12
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsFixedAssetsPage.d.ts +2 -12
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsPage.d.ts +2 -12
- package/dist/components/reportTree/treeNode/accountReconReport/row/v2/statusHelper.d.ts +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +1 -7
- package/dist/index.esm.js +391 -392
- package/dist/strings/strings.d.ts +4 -124
- package/package.json +6 -6
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingKpiStrip.d.ts +0 -9
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingList.d.ts +0 -13
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +0 -11
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +0 -21
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchNewButton.d.ts +0 -5
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPage.d.ts +0 -22
- package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPageSkeleton.d.ts +0 -3
- package/dist/components/expenseAutomation/sections/actualMatching/MatchNewModal.d.ts +0 -12
- package/dist/components/expenseAutomation/sections/actualMatching/MatchNewPreview.d.ts +0 -8
- package/dist/components/expenseAutomation/sections/actualMatching/ReversesGroupedPill.d.ts +0 -5
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +0 -76
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.test.d.ts +0 -1
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingListConfig.d.ts +0 -12
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.d.ts +0 -18
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.test.d.ts +0 -1
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingTypes.d.ts +0 -43
- package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.d.ts +0 -12
- package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.test.d.ts +0 -1
- package/dist/components/expenseAutomation/sections/actualMatching/stories/ActualMatchingPageQuickViewStoryParts.d.ts +0 -10
- package/dist/components/expenseAutomation/stories/actualMatchingPageStoryActions.d.ts +0 -2
- package/dist/components/invoicing/common/invoicingAccountPickerOptions.d.ts +0 -14
- 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
|
|
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
|
|
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
|
-
*
|
|
206
|
-
*
|
|
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"
|
|
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,
|
|
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;
|
package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts
CHANGED
|
@@ -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,
|
|
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
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
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
|
|
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,
|
|
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" | "
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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 {};
|