@zeniai/web-components 4.3.68 → 4.3.70-beta0ND
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--NB-YNOH.cjs → SessionTimeoutPopup-Bd5Ri9a6.cjs} +17447 -16482
- package/dist/{SessionTimeoutPopup-Boc-BbqY.js → SessionTimeoutPopup-CMIfSK_t.js} +94717 -91991
- package/dist/appLocale.d.ts +146 -0
- package/dist/cockpit.cjs.js +2 -2
- package/dist/cockpit.esm.js +168 -166
- package/dist/common/recommendationSelectionFeedback.d.ts +2 -13
- package/dist/components/aiCfo/AiCfoPage.d.ts +68 -0
- package/dist/components/aiCfo/components/AiCfoCombobox.d.ts +24 -0
- package/dist/components/aiCfo/components/AiCfoRoutineDetail.d.ts +29 -0
- package/dist/components/aiCfo/components/AiCfoRoutineEditor.d.ts +46 -0
- package/dist/components/aiCfo/components/AiCfoRoutineRunsPanel.d.ts +42 -0
- package/dist/components/aiCfo/components/AiCfoRoutinesBrowser.d.ts +41 -0
- package/dist/components/aiCfo/components/AiCfoScrollArea.d.ts +11 -0
- package/dist/components/aiCfo/components/helpers/aiCfoRoutines.d.ts +197 -0
- package/dist/components/aiCfo/stories/hooks/useAiCfoStreamingState.d.ts +1 -0
- package/dist/components/appDrawerContent/AiCfoMenuContent.d.ts +29 -1
- package/dist/components/appDrawerContent/AppDrawerContent.d.ts +8 -1
- package/dist/components/appDrawerContent/MenuButton.d.ts +4 -3
- package/dist/components/appDrawerContent/MenuList.d.ts +8 -1
- package/dist/components/appDrawerContent/appDrawerContent.helpers.d.ts +5 -0
- package/dist/components/common/Picker.d.ts +7 -1
- package/dist/components/{transactionDetail/TransactionSidePanelLayout.d.ts → common/sidePanel/SidePanelLayout.d.ts} +17 -2
- package/dist/components/commonSetUp/approval/ApprovalStageRow.d.ts +24 -0
- package/dist/components/commonSetUp/approval/ApprovalStagesSection.d.ts +9 -1
- package/dist/components/commonSetUp/approval/ConditionRow.d.ts +7 -4
- package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +15 -0
- package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +15 -2
- package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEOneTimeAccrualDetailPage.d.ts +8 -4
- package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleConfig.d.ts +12 -1
- package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleListRow.helpers.d.ts +9 -1
- package/dist/components/expenseAutomation/sections/jeSchedules/list/useJEScheduleRowClick.d.ts +13 -0
- package/dist/components/expenseAutomation/sections/jeSchedules/sections/JEExistingSection.d.ts +11 -1
- package/dist/components/expenseAutomation/sections/jeSchedules/sections/JESchedulesSection.d.ts +11 -1
- package/dist/components/expenseAutomation/sections/missingReceipts/completedTab/CompletedTab.d.ts +1 -1
- package/dist/components/expenseAutomation/sections/missingReceipts/missingReceiptsSidePanelListMargin.d.ts +1 -1
- package/dist/components/expenseAutomation/sections/missingReceipts/missingTab/MissingReceiptsListTable.d.ts +1 -1
- package/dist/components/invoicing/catalogForm/catalogItemForm.shared.d.ts +1 -0
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsAccruedExpensesPage.d.ts +4 -1
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsFixedAssetsPage.d.ts +4 -1
- package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsPage.d.ts +4 -1
- package/dist/components/singleSelect/SingleSelect.d.ts +8 -1
- package/dist/components/singleSelect/SingleSelectField.d.ts +3 -1
- package/dist/components/spendManagement/activitySection/activitySectionUtil.d.ts +1 -0
- package/dist/components/spendManagement/billPay/billPaySetUp/components/formElements/UserMultiSelect.d.ts +35 -1
- package/dist/components/spendManagement/billPay/billPaySetUp/components/formElements/UserMultiSelectField.d.ts +9 -1
- package/dist/context/SidePanelContext.d.ts +25 -11
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.esm.js +258 -256
- package/dist/strings/strings.d.ts +146 -0
- package/package.json +5 -5
- /package/dist/components/{transactionDetail → common/sidePanel}/panelSelectedMixin.d.ts +0 -0
|
@@ -71,6 +71,16 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
71
71
|
isExpenseAutomationCommentingEnabled?: boolean;
|
|
72
72
|
/** Transaction categorization only: when true, the right rail is expanded. */
|
|
73
73
|
isRightPanelOpen?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* The JE Schedules side panel, deliberately named apart from `panelContent` /
|
|
76
|
+
* `sidePanelIsOpen`, which drive the page-level split for transactions and reconciliation.
|
|
77
|
+
* The schedules panel lives inside the list section instead, so the KPI strip and type filter
|
|
78
|
+
* stay full-width above it -- and these props are spread on to TableSection, where a shared
|
|
79
|
+
* name would hand the transaction panel to the schedules list.
|
|
80
|
+
*
|
|
81
|
+
* There is no full-view flag: expanding leaves for the schedule's own page.
|
|
82
|
+
*/
|
|
83
|
+
isSchedulePanelOpen?: boolean;
|
|
74
84
|
loggedInUser?: LoggedInUser;
|
|
75
85
|
newAccrualAccountsView?: NewAccrualAccountsView;
|
|
76
86
|
/** The draft this form was last left with, for a host that stores it. */
|
|
@@ -87,6 +97,11 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
87
97
|
* Transaction categorization only: inline right rail (activity or transfer panel body).
|
|
88
98
|
*/
|
|
89
99
|
rightSidePanel?: ReactNode;
|
|
100
|
+
schedulePanelContent?: ReactNode;
|
|
101
|
+
schedulePendingDiscardConfirmation?: {
|
|
102
|
+
onCancel: () => void;
|
|
103
|
+
onDiscard: () => void;
|
|
104
|
+
};
|
|
90
105
|
sidePanelIsFullView?: boolean;
|
|
91
106
|
sidePanelIsOpen?: boolean;
|
|
92
107
|
sidePanelListPercent?: number;
|
|
@@ -3,7 +3,7 @@ import { FooterFormIdType } from '../../common';
|
|
|
3
3
|
import { FormData as JEScheduleAccountSettingsFormData } from './common/JEScheduleAccountSettings';
|
|
4
4
|
import { JESchedulesSectionProps } from './sections/JESchedulesSection';
|
|
5
5
|
import { NewScheduleSaveFormValues } from './sections/NewJEScheduleSection';
|
|
6
|
-
export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled"> {
|
|
6
|
+
export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled" | "isPanelOpen" | "panelContent" | "pendingDiscardConfirmation"> {
|
|
7
7
|
accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
|
|
8
8
|
baseTransactionSearchFetchState: FetchStateAndError;
|
|
9
9
|
baseTransactionSearchResults: ScheduleTransaction[];
|
|
@@ -21,8 +21,21 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
|
|
|
21
21
|
/** The draft this form was last left with, for a host that stores it. */
|
|
22
22
|
/** Cron-2's live gate for this company. Off hides one-time accrual creation. */
|
|
23
23
|
isAccrualEnabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Schedule side panel, named apart from the page-level `panelContent` that drives the
|
|
26
|
+
* transaction and reconciliation panels: ExpenseAutomationPage spreads its own props into
|
|
27
|
+
* TableSection, so a shared name would hand the transaction panel to the schedules list.
|
|
28
|
+
*
|
|
29
|
+
* There is no full-view flag: expanding leaves for the schedule's own page.
|
|
30
|
+
*/
|
|
31
|
+
isSchedulePanelOpen?: boolean;
|
|
24
32
|
newAccrualAccountsView?: NewAccrualAccountsView;
|
|
25
33
|
newScheduleLocalData?: NewScheduleSaveFormValues;
|
|
34
|
+
schedulePanelContent?: React.ReactNode;
|
|
35
|
+
schedulePendingDiscardConfirmation?: {
|
|
36
|
+
onCancel: () => void;
|
|
37
|
+
onDiscard: () => void;
|
|
38
|
+
};
|
|
26
39
|
onCreateAccruedSchedule: (localData: Partial<ScheduleDetailsLocalDataAccruedExpenses>) => void;
|
|
27
40
|
onCreateOneTimeAccrual: (formValues: NewOneTimeAccrualLocalData) => void;
|
|
28
41
|
onJeAccountSettingsChange: (formData: JEScheduleAccountSettingsFormData) => void;
|
|
@@ -36,5 +49,5 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
|
|
|
36
49
|
setResetJeAccountSettingsForm: (resetFn: () => void) => void;
|
|
37
50
|
onNewScheduleFormChange?: (scheduleType: string, formValues: NewScheduleSaveFormValues) => void;
|
|
38
51
|
}
|
|
39
|
-
declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, 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;
|
|
40
53
|
export default JESchedulePage;
|
|
@@ -8,7 +8,11 @@ export interface JEOneTimeAccrualDetailPageProps {
|
|
|
8
8
|
/** Status of the promote / ignore request for this accrual. */
|
|
9
9
|
actionFetchState: FetchState;
|
|
10
10
|
isAccountingClassesEnabled: boolean;
|
|
11
|
-
/**
|
|
11
|
+
/** Rendered inside a side panel rather than as its own route: the host page keeps its own
|
|
12
|
+
* nav bar and the panel bounds the height, so this page must supply neither. */
|
|
13
|
+
isRenderedInPanel?: boolean;
|
|
14
|
+
/** Unposted edits from this visit. Seeds the form so a remount does not lose them, which is
|
|
15
|
+
* why this page registers no panel dirty guard: switching rows cannot drop an edit. */
|
|
12
16
|
localData?: OneTimeAccrualEdits;
|
|
13
17
|
/** Account and class lists for the editable draft fields. Absent leaves them read-only. */
|
|
14
18
|
newAccrualAccountsView?: NewAccrualAccountsView;
|
|
@@ -25,8 +29,8 @@ export interface JEOneTimeAccrualDetailPageProps {
|
|
|
25
29
|
* A single one-time accrual, with the two decisions a human makes about it: post it, or skip the
|
|
26
30
|
* month with a reason.
|
|
27
31
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
32
|
+
* The accrual arrives as a prop. The host resolves it from the store the list fills, falling back
|
|
33
|
+
* to a by-id fetch on a cold load, so this page itself never fetches.
|
|
30
34
|
*/
|
|
31
|
-
declare const JEOneTimeAccrualDetailPage: ({ accrual, actionFetchState, isAccountingClassesEnabled, localData, newAccrualAccountsView, onAccrualFormChange, onAccrualFormClear, onApproveAndPost, onNavigateBack, onRevert, onSkip, }: Readonly<JEOneTimeAccrualDetailPageProps>) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
declare const JEOneTimeAccrualDetailPage: ({ accrual, actionFetchState, isAccountingClassesEnabled, isRenderedInPanel, localData, newAccrualAccountsView, onAccrualFormChange, onAccrualFormClear, onApproveAndPost, onNavigateBack, onRevert, onSkip, }: Readonly<JEOneTimeAccrualDetailPageProps>) => import("react/jsx-runtime").JSX.Element;
|
|
32
36
|
export default JEOneTimeAccrualDetailPage;
|
|
@@ -30,6 +30,17 @@ export declare const COT_ICON_SIZE_PX = 16;
|
|
|
30
30
|
export declare const ACTION_ERROR_ICON_SIZE_PX = 12;
|
|
31
31
|
export declare const COT_ICON_GAP_PX: number;
|
|
32
32
|
export declare const jeScheduleHeaderItemsData: JEScheduleHeaderItemData[];
|
|
33
|
+
/**
|
|
34
|
+
* The list compressed to ~34% of the content area beside an open side panel.
|
|
35
|
+
*
|
|
36
|
+
* Vendor identifies the row and Amount is the one figure worth scanning at that width; the panel
|
|
37
|
+
* carries everything else. One set serves both tabs -- the Existing tab drops its Monthly Amount
|
|
38
|
+
* here so the compressed header is identical on both and no row renderer needs a per-tab branch.
|
|
39
|
+
*
|
|
40
|
+
* Neither column is `stickyRight`: the Action column is gone, so nothing needs pinning, and the two
|
|
41
|
+
* tracks fit inside the compressed width without horizontal overflow.
|
|
42
|
+
*/
|
|
43
|
+
export declare const compressedJEScheduleHeaderItemsData: JEScheduleHeaderItemData[];
|
|
33
44
|
export declare const existingHeaderItemsData: JEScheduleHeaderItemData[];
|
|
34
45
|
/**
|
|
35
46
|
* Which column fixes each posting error, or undefined when nothing on the row can.
|
|
@@ -41,6 +52,6 @@ export declare const existingHeaderItemsData: JEScheduleHeaderItemData[];
|
|
|
41
52
|
export declare const FIX_COLUMN_BY_ERROR_CODE: Record<JournalEntryErrorCodeType, JEScheduleColumnKey | undefined>;
|
|
42
53
|
/** The errors a row cannot show inline, because their column is not in this tab's column set. */
|
|
43
54
|
export declare function errorsNotShownInColumns(errorCodes: JournalEntryErrorCodeType[]): JournalEntryErrorCodeType[];
|
|
44
|
-
export declare function getColumnsForGroupKey(groupKey: JEScheduleGroupKey, isAccountingClassesEnabled: boolean): JEScheduleHeaderItemData[];
|
|
55
|
+
export declare function getColumnsForGroupKey(groupKey: JEScheduleGroupKey, isAccountingClassesEnabled: boolean, isQuickViewMode?: boolean): JEScheduleHeaderItemData[];
|
|
45
56
|
export declare const PENDING_SUB_TABS: TabSwitcherOption[];
|
|
46
57
|
export declare const ONGOING_COMPLETED_SUB_TABS: TabSwitcherOption[];
|
package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleListRow.helpers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JEOneTimeAccrualKey, JEScheduleKey, JEScheduleRow, JEScheduleTransactionKey } from '@zeniai/client-epic-state';
|
|
1
|
+
import { ID, JEOneTimeAccrualKey, JEScheduleKey, JEScheduleRow, JEScheduleTransactionKey } from '@zeniai/client-epic-state';
|
|
2
2
|
import { ChainOfThoughtData } from '../../../../common/tooltipVariants/types';
|
|
3
3
|
/**
|
|
4
4
|
* The chain-of-thought popover shown on the "Created by" cell of an AI Accountant row.
|
|
@@ -20,6 +20,14 @@ export type JEScheduleRowKey = JEOneTimeAccrualKey | JEScheduleTransactionKey |
|
|
|
20
20
|
* Stable per-row identity for React keys, data-testids and row commenting.
|
|
21
21
|
*/
|
|
22
22
|
export declare function getJEScheduleRowKey(row: JEScheduleRow): JEScheduleRowKey;
|
|
23
|
+
/**
|
|
24
|
+
* The plain id the side-panel URL carries for this row — deliberately NOT its row key.
|
|
25
|
+
*
|
|
26
|
+
* The three row-key flavours are template-literal types, so they are assignable to `ID` and the
|
|
27
|
+
* compiler would not catch one being used as a panel id. The panel keys on what the route holds:
|
|
28
|
+
* an accrual's own Mongo id, or the schedule id every other row type shares.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getJEScheduleRowPanelId(row: JEScheduleRow): ID | undefined;
|
|
23
31
|
/**
|
|
24
32
|
* Whether a row click started inside interactive cell content and so should not navigate.
|
|
25
33
|
*
|
package/dist/components/expenseAutomation/sections/jeSchedules/list/useJEScheduleRowClick.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
import { ID, ScheduleTypes } from '@zeniai/client-epic-state';
|
|
3
|
+
import { JEScheduleRowKey } from './jeScheduleListRow.helpers';
|
|
4
|
+
export type JEScheduleRowClickHandler = (event: MouseEvent<HTMLDivElement>, jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Opens a schedule row unless the click started inside cell content that owns it.
|
|
7
|
+
*
|
|
8
|
+
* Both tabs previously inlined their own copy of the guard and they had drifted: the Existing tab
|
|
9
|
+
* only checked two of the six interactive class names, so a click on an open select menu there
|
|
10
|
+
* navigated away instead of picking the option. Both now defer to
|
|
11
|
+
* {@link isInteractiveCellClick}, which is the single list of those class names.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useJEScheduleRowClick(onOpenSchedule: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void): JEScheduleRowClickHandler;
|
package/dist/components/expenseAutomation/sections/jeSchedules/sections/JEExistingSection.d.ts
CHANGED
|
@@ -9,6 +9,16 @@ export interface JEExistingSectionProps {
|
|
|
9
9
|
jeSchedules: ExpenseAutomationJESchedulesViewSelector;
|
|
10
10
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
11
11
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
12
|
+
/**
|
|
13
|
+
* Rendered beside the list, inside this section, so the KPI strip stays full-width above it.
|
|
14
|
+
* There is no full-view flag: expanding leaves the panel for the schedule's own page.
|
|
15
|
+
*/
|
|
16
|
+
isPanelOpen?: boolean;
|
|
17
|
+
panelContent?: React.ReactNode;
|
|
18
|
+
pendingDiscardConfirmation?: {
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
onDiscard: () => void;
|
|
21
|
+
};
|
|
12
22
|
handleJeScheduleClick: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
|
|
13
23
|
ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
|
|
14
24
|
onJESchedulesFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
|
|
@@ -18,5 +28,5 @@ export interface JEExistingSectionProps {
|
|
|
18
28
|
onUpdateJEScheduleTypeFilter: (filter: ScheduleTypes | null) => void;
|
|
19
29
|
setCurrentFooterFormId: (formId: FooterFormIdType) => void;
|
|
20
30
|
}
|
|
21
|
-
declare function JEExistingSection({ isAccountingClassesEnabled, jeSchedules, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, ignoreRecommendedJeSchedule, onJESchedulesFormDataChange, onPostJESchedule, onUpdateJEScheduleTypeFilter, }: Readonly<JEExistingSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
declare function JEExistingSection({ isAccountingClassesEnabled, jeSchedules, isPanelOpen, panelContent, pendingDiscardConfirmation, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, ignoreRecommendedJeSchedule, onJESchedulesFormDataChange, onPostJESchedule, onUpdateJEScheduleTypeFilter, }: Readonly<JEExistingSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
22
32
|
export default JEExistingSection;
|
package/dist/components/expenseAutomation/sections/jeSchedules/sections/JESchedulesSection.d.ts
CHANGED
|
@@ -9,6 +9,16 @@ export interface JESchedulesSectionProps {
|
|
|
9
9
|
jeSchedules: ExpenseAutomationJESchedulesViewSelector;
|
|
10
10
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
11
11
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
12
|
+
/**
|
|
13
|
+
* Rendered beside the list, inside this section, so the KPI strip stays full-width above it.
|
|
14
|
+
* There is no full-view flag: expanding leaves the panel for the schedule's own page.
|
|
15
|
+
*/
|
|
16
|
+
isPanelOpen?: boolean;
|
|
17
|
+
panelContent?: React.ReactNode;
|
|
18
|
+
pendingDiscardConfirmation?: {
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
onDiscard: () => void;
|
|
21
|
+
};
|
|
12
22
|
handleJeScheduleClick: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
|
|
13
23
|
ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
|
|
14
24
|
onJESchedulesFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
|
|
@@ -23,5 +33,5 @@ export interface JESchedulesSectionProps {
|
|
|
23
33
|
onConfirmCategoryRecommendation?: (jeScheduleTransactionKey: JEScheduleTransactionKey, recommendedCategoryId: ID) => void;
|
|
24
34
|
onRevertJeSchedule?: (jeScheduleId: ID, jeScheduleTransactionKey: JEScheduleKey | JEScheduleTransactionKey, jeScheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
|
|
25
35
|
}
|
|
26
|
-
declare function JESchedulesSection({ isAccountingClassesEnabled, jeSchedules, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, onRevertJeSchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, onTogglePendingGroupCollapsed, onToggleCreatedGroupCollapsed, onUpdateJEScheduleTypeFilter, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<JESchedulesSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
declare function JESchedulesSection({ isAccountingClassesEnabled, jeSchedules, isPanelOpen, panelContent, pendingDiscardConfirmation, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, onRevertJeSchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, onTogglePendingGroupCollapsed, onToggleCreatedGroupCollapsed, onUpdateJEScheduleTypeFilter, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<JESchedulesSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
27
37
|
export default JESchedulesSection;
|
package/dist/components/expenseAutomation/sections/missingReceipts/completedTab/CompletedTab.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AuthParams, BulkUploadSortKey, FetchStateAndError, ID, SortOrder, SupportedTransaction, TransactionType } from '@zeniai/client-epic-state';
|
|
2
|
-
/** Completed bulk-upload list: parent `ExpenseAutomationPage` sets `disableMarginTop` on `
|
|
2
|
+
/** Completed bulk-upload list: parent `ExpenseAutomationPage` sets `disableMarginTop` on `SidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop`. */
|
|
3
3
|
interface CompletedTabProps {
|
|
4
4
|
authParams: AuthParams;
|
|
5
5
|
fetchState: FetchStateAndError;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ExpenseAutomationViewType } from '@zeniai/client-epic-state';
|
|
2
2
|
/**
|
|
3
3
|
* When bulk receipt upload is active on the missing-receipts view, ExpenseAutomationPage
|
|
4
|
-
* passes `disableMarginTop` to
|
|
4
|
+
* passes `disableMarginTop` to SidePanelLayout so list content aligns without extra
|
|
5
5
|
* top margin. Covers Missing Receipts, Unmatched, and Completed bulk-upload table flows.
|
|
6
6
|
*/
|
|
7
7
|
export declare function shouldDisableTransactionSidePanelListMarginTop(currentSelectedView: ExpenseAutomationViewType, isBulkReceiptUploadActive: boolean): boolean;
|
|
@@ -2,7 +2,7 @@ import { ListChildComponentProps } from 'react-window';
|
|
|
2
2
|
import { AuthParams, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationMissingReceiptsViewUIState, MonthYearPeriod } from '@zeniai/client-epic-state';
|
|
3
3
|
import { DisableMode } from '../../../../formElements/common/common';
|
|
4
4
|
import { MissingReceiptsListRowActionProps } from './listRow/MissingReceiptsListRow';
|
|
5
|
-
/** Missing-receipts table: parent `ExpenseAutomationPage` sets `disableMarginTop` on `
|
|
5
|
+
/** Missing-receipts table: parent `ExpenseAutomationPage` sets `disableMarginTop` on `SidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop` when bulk upload is active. */
|
|
6
6
|
/**
|
|
7
7
|
* Component & its Props
|
|
8
8
|
*/
|
|
@@ -86,6 +86,7 @@ interface ApplicableItemOption {
|
|
|
86
86
|
label: string;
|
|
87
87
|
subtitle?: string;
|
|
88
88
|
}
|
|
89
|
+
export declare const toApplicableItemsValue: (options: readonly ApplicableItemOption[], selectedIds: string[]) => MultiSelectFieldValue;
|
|
89
90
|
export declare const buildApplicableItemLabelGetter: (options: readonly ApplicableItemOption[]) => ((value: string) => string);
|
|
90
91
|
export interface PickerValue {
|
|
91
92
|
allOptions: CatalogSelectOption[];
|
|
@@ -15,6 +15,9 @@ export interface Props {
|
|
|
15
15
|
shouldNavigateBack: boolean;
|
|
16
16
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
17
17
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
18
|
+
/** Rendered inside a side panel rather than as its own route: the host page keeps
|
|
19
|
+
* its own nav bar and the panel bounds the height, so this page must supply neither. */
|
|
20
|
+
isRenderedInPanel?: boolean;
|
|
18
21
|
scheduleDetailId?: ID;
|
|
19
22
|
onCancelAccrual: (scheduleType: ScheduleTypes, jeScheduleID: ID, row?: number) => void;
|
|
20
23
|
onDelete: (jeScheduleDetailId: ID) => void;
|
|
@@ -33,6 +36,6 @@ export interface FormData {
|
|
|
33
36
|
[scheduleDetailsAccruedExpensesSectionId]: ScheduleDetailsAccruedExpensesSectionFormData;
|
|
34
37
|
[scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
|
|
35
38
|
}
|
|
36
|
-
export declare function ScheduleDetailsAccruedExpensesPage({ accountList, accruedAccountList, analytics, classList, controllerUserDetails, isAccountingClassesEnabled, scheduleAccruedDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, shouldNavigateBack, scheduleDetailId, onDelete, onEditAmount, onJELinkClick, onCancelAccrual, onDetailPageChange, onNavigateBack, onSave, onViewBillExpense, onViewPostedJE, onViewRecordedJE, }: 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;
|
|
37
40
|
export declare const getDefaultVendorOptions: (vendorSearchEntityAutoCompleteView?: EntityAutoCompleteView, selectedVendor?: VendorBase) => AutoCompleteOptionType[];
|
|
38
41
|
export {};
|
|
@@ -11,6 +11,9 @@ export interface Props {
|
|
|
11
11
|
usedInExpenseAutomation: boolean;
|
|
12
12
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
13
13
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
14
|
+
/** Rendered inside a side panel rather than as its own route: the host page keeps
|
|
15
|
+
* its own nav bar and the panel bounds the height, so this page must supply neither. */
|
|
16
|
+
isRenderedInPanel?: boolean;
|
|
14
17
|
onDelete: (jeScheduleDetailId: ID) => void;
|
|
15
18
|
onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
|
|
16
19
|
onEditAmount: (row: number, jeScheduleId?: ID) => void;
|
|
@@ -28,5 +31,5 @@ export interface FormData {
|
|
|
28
31
|
[scheduleDetailsFixedAssetsSectionId]: ScheduleDetailsFixedAssetsSectionFormData;
|
|
29
32
|
[scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
|
|
30
33
|
}
|
|
31
|
-
declare function ScheduleDetailsFixedAssetsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onMarkAsComplete, }: 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;
|
|
32
35
|
export default ScheduleDetailsFixedAssetsPage;
|
|
@@ -12,6 +12,9 @@ export interface Props {
|
|
|
12
12
|
usedInExpenseAutomation: boolean;
|
|
13
13
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
14
14
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
15
|
+
/** Rendered inside a side panel rather than as its own route: the host page keeps
|
|
16
|
+
* its own nav bar and the panel bounds the height, so this page must supply neither. */
|
|
17
|
+
isRenderedInPanel?: boolean;
|
|
15
18
|
onDelete: (jeScheduleDetailId: ID) => void;
|
|
16
19
|
onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
|
|
17
20
|
onEditAmount: (row: number, jeScheduleId?: ID) => void;
|
|
@@ -29,5 +32,5 @@ export interface FormData {
|
|
|
29
32
|
[scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
|
|
30
33
|
[scheduleDetailsSectionId]: ScheduleDetailsSectionFormData;
|
|
31
34
|
}
|
|
32
|
-
declare function ScheduleDetailsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, scheduleTab, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onMarkAsComplete, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, }: 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;
|
|
33
36
|
export default ScheduleDetailsPage;
|
|
@@ -19,6 +19,13 @@ export interface Props {
|
|
|
19
19
|
isSearchable?: boolean;
|
|
20
20
|
menuPortalTarget?: HTMLElement | null;
|
|
21
21
|
placeholder?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Renders `allValues` in the order given instead of the default
|
|
24
|
+
* alphabetical-by-label sort. Opt-in — omit to keep today's behavior.
|
|
25
|
+
* Use when the caller's own order is meaningful (e.g. "Range" before
|
|
26
|
+
* "Is greater than" so it reads as the first, most-common choice).
|
|
27
|
+
*/
|
|
28
|
+
preserveOptionOrder?: boolean;
|
|
22
29
|
selectedValue?: string;
|
|
23
30
|
showChevron?: boolean;
|
|
24
31
|
style?: React.CSSProperties;
|
|
@@ -34,4 +41,4 @@ export interface Props {
|
|
|
34
41
|
isOptionDisabled?: (value: string) => boolean;
|
|
35
42
|
valueToLabel?: (value: string) => string;
|
|
36
43
|
}
|
|
37
|
-
export declare const SingleSelect: ({ allValues, selectedValue, onSelectedValueChanged, isDisabled, placeholder, style, customStyleConfig, isClearable, isSearchable, menuPortalTarget, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, valueAlign, valuePadding, chevronSize, isOptionDisabled, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export declare const SingleSelect: ({ allValues, selectedValue, onSelectedValueChanged, isDisabled, placeholder, style, customStyleConfig, isClearable, isSearchable, menuPortalTarget, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, valueAlign, valuePadding, chevronSize, isOptionDisabled, preserveOptionOrder, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -20,6 +20,8 @@ export interface SingleSelectFieldProps {
|
|
|
20
20
|
/** See `SingleSelect.isSearchable`. */
|
|
21
21
|
isSearchable?: boolean;
|
|
22
22
|
placeholder?: string;
|
|
23
|
+
/** See `SingleSelect.preserveOptionOrder`. */
|
|
24
|
+
preserveOptionOrder?: boolean;
|
|
23
25
|
registerOptions?: RegisterOptions;
|
|
24
26
|
/** See `SingleSelect.showChevron`. */
|
|
25
27
|
showChevron?: boolean;
|
|
@@ -36,5 +38,5 @@ export interface SingleSelectFieldProps {
|
|
|
36
38
|
isOptionDisabled?: (value: string) => boolean;
|
|
37
39
|
valueToLabel?: (value: string) => string;
|
|
38
40
|
}
|
|
39
|
-
declare const SingleSelectField: ({ name, registerOptions, defaultValue, placeholder, isDisabled, style, customStyleConfig, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, isSearchable, valueAlign, valuePadding, chevronSize, isOptionDisabled, }: SingleSelectFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare const SingleSelectField: ({ name, registerOptions, defaultValue, placeholder, isDisabled, style, customStyleConfig, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, isSearchable, valueAlign, valuePadding, chevronSize, isOptionDisabled, preserveOptionOrder, }: SingleSelectFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
42
|
export default SingleSelectField;
|
|
@@ -29,6 +29,7 @@ export declare const isNotificationTimeAvailable: (step: StepFormData) => boolea
|
|
|
29
29
|
* the boundary and dropped 'less_than'-only rules entirely.
|
|
30
30
|
*/
|
|
31
31
|
export declare const doesAmountMatchRuleCriteria: (criteria: Criteria[] | null | undefined, amount: number) => boolean;
|
|
32
|
+
export declare const doesRuleMatchBillCriteria: (criteria: Criteria[] | null | undefined, amount: number, vendorId?: ID, departmentId?: ID) => boolean;
|
|
32
33
|
export declare const getBillActivity: (activities: BillActivity[], amount: number) => BillActivity | undefined;
|
|
33
34
|
export interface RealTimeApprovalData {
|
|
34
35
|
allAccountingClass: Class[];
|
|
@@ -21,6 +21,13 @@ export interface Props {
|
|
|
21
21
|
selectedUsers: User[];
|
|
22
22
|
shouldHaveBackgroundColor: boolean;
|
|
23
23
|
showBackgroundColorIfHasAnySelectedOption: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* When true, each selected chip's border and remove ("x") button stay
|
|
26
|
+
* visible even while the menu is closed, instead of only showing them
|
|
27
|
+
* while it's open. Opt-in — existing consumers keep today's
|
|
28
|
+
* open-menu-only behavior.
|
|
29
|
+
*/
|
|
30
|
+
alwaysShowRemoveButton?: boolean;
|
|
24
31
|
/**
|
|
25
32
|
* When true, `NonUserOption` rows (and their selected chips) render
|
|
26
33
|
* their avatar at the same `Space.sp3` size real user avatars use,
|
|
@@ -37,6 +44,24 @@ export interface Props {
|
|
|
37
44
|
disable?: boolean;
|
|
38
45
|
disabledOptionHint?: string;
|
|
39
46
|
hideMultiValueOnBlur?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* When true, the closed-picker chip renders without an avatar icon
|
|
49
|
+
* for `NonUserOption` selections (e.g. roles, which have no photo or
|
|
50
|
+
* identity to represent). Only affects the closed chip — the open
|
|
51
|
+
* dropdown's option rows still show their colored icon. Opt-in —
|
|
52
|
+
* existing non-user consumers (e.g. FollowStepsSection) are
|
|
53
|
+
* unaffected.
|
|
54
|
+
*/
|
|
55
|
+
hideNonUserAvatar?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* When true, the open dropdown's `NonUserOption` rows (e.g. vendors,
|
|
58
|
+
* departments) render without their colored avatar icon too — not
|
|
59
|
+
* just the closed chip. Separate from `hideNonUserAvatar` because
|
|
60
|
+
* some non-user consumers (e.g. `ApprovalStageRow`'s Role picker)
|
|
61
|
+
* want the chip-less look but still want the color-coded avatar in
|
|
62
|
+
* the option list. Opt-in — existing consumers are unaffected.
|
|
63
|
+
*/
|
|
64
|
+
hideNonUserOptionAvatar?: boolean;
|
|
40
65
|
/**
|
|
41
66
|
* User ids that should render with the "no longer active" avatar
|
|
42
67
|
* (see `MultiValueLabel`) instead of their photo/initials, when
|
|
@@ -47,6 +72,15 @@ export interface Props {
|
|
|
47
72
|
isListLoading?: boolean;
|
|
48
73
|
menuMinWidth?: string;
|
|
49
74
|
operator?: "or" | "and";
|
|
75
|
+
/**
|
|
76
|
+
* When true, each selected chip renders as an outlined pill: 16px
|
|
77
|
+
* radius, ExtraSmallSemiBold primary text, a 2px gap between
|
|
78
|
+
* avatar/text/remove-icon (via `gap`, so a chip with no avatar gets
|
|
79
|
+
* no extra leading space), and a champion/primary-on-hover remove
|
|
80
|
+
* icon — instead of this component's plain default chip look.
|
|
81
|
+
* Opt-in — existing consumers are unaffected.
|
|
82
|
+
*/
|
|
83
|
+
outlinedChip?: boolean;
|
|
50
84
|
onSelectedUsersChanged: (selectedUsers: User[], nonUsers: NonUserOption[]) => void;
|
|
51
85
|
disableCurrentOption?: (option: string) => boolean;
|
|
52
86
|
onBlur?: () => void;
|
|
@@ -59,5 +93,5 @@ export interface OptionType extends OptionTypeBase {
|
|
|
59
93
|
label: string;
|
|
60
94
|
value: string;
|
|
61
95
|
}
|
|
62
|
-
export default function UserMultiSelect({ allUsers, allNonUsers, selectedUsers, selectedNonUsers, name, fieldRef, shouldHaveBackgroundColor, hideEmailTooltip, showBackgroundColorIfHasAnySelectedOption, disable, customization: { placeholderLabel }, operator, containerWidth, isListLoading, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, onBlur, disableCurrentOption, onSelectedUsersChanged, valueToSubtitle, compactNonUserAvatar, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
export default function UserMultiSelect({ allUsers, allNonUsers, selectedUsers, selectedNonUsers, name, fieldRef, shouldHaveBackgroundColor, hideEmailTooltip, showBackgroundColorIfHasAnySelectedOption, disable, customization: { placeholderLabel }, operator, containerWidth, isListLoading, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, onBlur, disableCurrentOption, onSelectedUsersChanged, valueToSubtitle, compactNonUserAvatar, hideNonUserAvatar, hideNonUserOptionAvatar, alwaysShowRemoveButton, outlinedChip, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
63
97
|
export {};
|
|
@@ -15,23 +15,31 @@ export interface Props {
|
|
|
15
15
|
shouldHaveBackgroundColor: boolean;
|
|
16
16
|
showBackgroundColorIfHasAnySelectedOption: boolean;
|
|
17
17
|
value: UserMultiSelectFieldValue;
|
|
18
|
+
/** See `UserMultiSelect.alwaysShowRemoveButton`. */
|
|
19
|
+
alwaysShowRemoveButton?: boolean;
|
|
18
20
|
/** See `UserMultiSelect.compactNonUserAvatar`. */
|
|
19
21
|
compactNonUserAvatar?: boolean;
|
|
20
22
|
containerWidth?: string;
|
|
21
23
|
customStyleConfig?: StylesConfig<OptionType, boolean>;
|
|
22
24
|
disabledOptionHint?: string;
|
|
23
25
|
hideMultiValueOnBlur?: boolean;
|
|
26
|
+
/** See `UserMultiSelect.hideNonUserAvatar`. */
|
|
27
|
+
hideNonUserAvatar?: boolean;
|
|
28
|
+
/** See `UserMultiSelect.hideNonUserOptionAvatar`. */
|
|
29
|
+
hideNonUserOptionAvatar?: boolean;
|
|
24
30
|
/** See `UserMultiSelect.inactiveUserIds`. */
|
|
25
31
|
inactiveUserIds?: Set<ID>;
|
|
26
32
|
isDisabled?: DisableMode;
|
|
27
33
|
isListLoading?: boolean;
|
|
28
34
|
menuMinWidth?: string;
|
|
29
35
|
operator?: "or" | "and";
|
|
36
|
+
/** See `UserMultiSelect.outlinedChip`. */
|
|
37
|
+
outlinedChip?: boolean;
|
|
30
38
|
placeholderLabel?: string;
|
|
31
39
|
registerOptions?: RegisterOptions;
|
|
32
40
|
disableCurrentOption?: (option: string) => boolean;
|
|
33
41
|
onBlur?: () => void;
|
|
34
42
|
valueToSubtitle?: (value: string) => (string | JSX.Element)[];
|
|
35
43
|
}
|
|
36
|
-
declare const UserMultiSelectField: ({ name, shouldHaveBackgroundColor, showBackgroundColorIfHasAnySelectedOption, hideEmailTooltip, placeholderLabel, registerOptions, value: defaultValue, operator, isListLoading, isDisabled, containerWidth, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, disableCurrentOption, onBlur, valueToSubtitle, compactNonUserAvatar, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
declare const UserMultiSelectField: ({ name, shouldHaveBackgroundColor, showBackgroundColorIfHasAnySelectedOption, hideEmailTooltip, placeholderLabel, registerOptions, value: defaultValue, operator, isListLoading, isDisabled, containerWidth, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, disableCurrentOption, onBlur, valueToSubtitle, compactNonUserAvatar, hideNonUserAvatar, hideNonUserOptionAvatar, alwaysShowRemoveButton, outlinedChip, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
37
45
|
export default UserMultiSelectField;
|
|
@@ -2,15 +2,15 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ID } from '@zeniai/client-epic-state';
|
|
3
3
|
export interface SidePanelState {
|
|
4
4
|
isQuickViewMode: boolean;
|
|
5
|
-
|
|
5
|
+
selectedItemId: ID | undefined;
|
|
6
6
|
}
|
|
7
7
|
export declare const SidePanelContext: import('react').Context<SidePanelState>;
|
|
8
8
|
interface SidePanelProviderProps {
|
|
9
9
|
children: ReactNode;
|
|
10
10
|
isQuickViewMode: boolean;
|
|
11
|
-
|
|
11
|
+
selectedItemId: ID | undefined;
|
|
12
12
|
}
|
|
13
|
-
export declare function SidePanelProvider({ children, isQuickViewMode,
|
|
13
|
+
export declare function SidePanelProvider({ children, isQuickViewMode, selectedItemId, }: Readonly<SidePanelProviderProps>): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
export declare const QuickViewModeContext: import('react').Context<boolean>;
|
|
15
15
|
/** Portal target for react-select MenuPortal. Typed as HTMLElement (not HTMLDivElement)
|
|
16
16
|
* because the panel wrapper may be any container element. */
|
|
@@ -21,16 +21,30 @@ export interface PanelInternalState {
|
|
|
21
21
|
maximize?: () => void;
|
|
22
22
|
}
|
|
23
23
|
export declare const PanelInternalContext: import('react').Context<PanelInternalState | null>;
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Reported by whatever the panel is currently showing, so navigation away from it
|
|
26
|
+
* can prompt instead of silently discarding edits.
|
|
27
|
+
*
|
|
28
|
+
* `isDirty` is a getter rather than a boolean because the navigation paths that
|
|
29
|
+
* consult it (the action bar, Escape, clicking another row) read it at call time,
|
|
30
|
+
* outside React's render cycle.
|
|
31
|
+
*/
|
|
32
|
+
export interface PanelDirtyGuard {
|
|
33
|
+
isDirty: () => boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface PanelDirtyGuardRegistry {
|
|
36
|
+
registerPanelDirtyGuard: (guard: PanelDirtyGuard | null) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare const PanelDirtyGuardContext: import('react').Context<PanelDirtyGuardRegistry | null>;
|
|
39
|
+
export declare function usePanelDirtyGuardRegistry(): PanelDirtyGuardRegistry | null;
|
|
40
|
+
/**
|
|
41
|
+
* Registers the calling component's unsaved-changes state with the host panel for
|
|
42
|
+
* as long as it is mounted. A no-op outside a panel, so a detail page can call it
|
|
43
|
+
* unconditionally and behave identically on its own full page.
|
|
44
|
+
*/
|
|
45
|
+
export declare function useRegisterPanelDirtyGuard(isDirty: () => boolean): void;
|
|
28
46
|
export declare function useSidePanelContext(): SidePanelState;
|
|
29
47
|
export declare function useQuickViewMode(): boolean;
|
|
30
48
|
export declare function useDropdownPortal(): HTMLElement | null;
|
|
31
49
|
export declare function usePanelInternal(): PanelInternalState | null;
|
|
32
|
-
/** @deprecated Use usePanelInternal instead */
|
|
33
|
-
export declare const useTransactionPanelInternal: typeof usePanelInternal;
|
|
34
|
-
/** @deprecated Use usePanelInternal instead */
|
|
35
|
-
export declare const useSchedulePanelInternal: typeof usePanelInternal;
|
|
36
50
|
export {};
|