@zeniai/web-components 4.1.40 → 4.1.41-betaAK1
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-CkH-hPbZ.cjs → SessionTimeoutPopup-D6HvNkd5.cjs} +15303 -14329
- package/dist/{SessionTimeoutPopup-CnaGjerj.js → SessionTimeoutPopup-DYgosay6.js} +79438 -76095
- package/dist/appLocale.d.ts +198 -0
- package/dist/assets/illustrative/no-search-result.svg +24 -0
- package/dist/cockpit.cjs.js +2 -2
- package/dist/cockpit.esm.js +255 -251
- package/dist/components/cockpit/common/cockpitFilters/commonTypes.d.ts +1 -1
- package/dist/components/common/StyledCapsule.d.ts +1 -1
- package/dist/components/{cockpit/common/cockpitFilters/components → common/filters}/FiltersPopover.d.ts +1 -1
- package/dist/components/common/filters/GenericFilters.d.ts +75 -0
- package/dist/components/common/filters/components/GenericFiltersSelection.d.ts +58 -0
- package/dist/components/common/filters/genericFilterTypes.d.ts +62 -0
- package/dist/components/common/listPageSearchInputBox/ListPageSearchInputBox.d.ts +3 -1
- package/dist/components/common/listPageSearchSection/ListPageSearchSection.d.ts +13 -0
- package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +19 -1
- package/dist/components/expenseAutomation/components/EmptyTableSection.d.ts +6 -0
- package/dist/components/expenseAutomation/components/ExpenseAutomationSubTabSwitcher.d.ts +17 -0
- package/dist/components/expenseAutomation/components/NavBarWithHeader.d.ts +21 -1
- package/dist/components/expenseAutomation/components/TableSection.d.ts +2 -1
- package/dist/components/expenseAutomation/components/filters/AmountFilterValueField.d.ts +8 -0
- package/dist/components/expenseAutomation/components/filters/AmountMatchingOperatorDropdown.d.ts +8 -0
- package/dist/components/expenseAutomation/components/filters/TransactionFiltersComponent.d.ts +17 -0
- package/dist/components/expenseAutomation/components/filters/amountFilterConstants.d.ts +19 -0
- package/dist/components/expenseAutomation/components/filters/transactionFiltersHelpers.d.ts +24 -0
- package/dist/components/expenseAutomation/components/navbarHeaderData.d.ts +2 -2
- package/dist/components/expenseAutomation/sections/missingReceipts/MissingReceiptsPage.d.ts +6 -0
- package/dist/components/expenseAutomation/sections/transactionCategorization/transactionCategorizationCompletedSubTabs.d.ts +7 -0
- package/dist/components/formElements/filterValuesDropdownField/FilterValuesDropdownField.d.ts +5 -14
- package/dist/components/spendManagement/autoTransferRules/AutoTransferRulePage.d.ts +7 -1
- package/dist/components/spendManagement/cashManagement/AutoSweepFlow.d.ts +50 -0
- package/dist/components/spendManagement/cashManagement/AutoSweepReviewPage.d.ts +43 -0
- package/dist/components/spendManagement/cashManagement/AutoSweepSetupPage.d.ts +117 -0
- package/dist/components/spendManagement/cashManagement/CashManagementBanner.d.ts +20 -0
- package/dist/components/spendManagement/cashManagement/CashManagementNavCTA.d.ts +14 -0
- package/dist/components/spendManagement/cashManagement/CashOverview.d.ts +53 -0
- package/dist/components/spendManagement/cashManagement/OutflowSection.d.ts +8 -0
- package/dist/components/spendManagement/cashManagement/SweepAmountCard.d.ts +11 -0
- package/dist/components/spendManagement/cashManagement/SweepFlowRow.d.ts +29 -0
- package/dist/components/spendManagement/common/filters/spendManagementFiltersHelpers.d.ts +1 -1
- package/dist/components/spendManagement/treasury/TreasuryNavBarPieces.d.ts +2 -1
- package/dist/components/spendManagement/treasury/TreasuryOverviewPage.d.ts +8 -0
- package/dist/components/spendManagement/zeniAccounts/ZeniAccountHelper.d.ts +10 -1
- package/dist/components/spendManagement/zeniAccounts/ZeniAccountListViewPage.d.ts +9 -1
- package/dist/components/spendManagement/zeniAccounts/ZeniAccountNavBarPieces.d.ts +2 -1
- package/dist/components/transactionDetail/items/TransactionLineWithAccountAndClass.d.ts +3 -2
- package/dist/context/featureProvider/FeatureGateNameConstants.d.ts +4 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.esm.js +283 -279
- package/dist/strings/strings.d.ts +198 -0
- package/package.json +11 -8
- package/dist/components/common/skeletons/StatementListSkeleton.d.ts +0 -5
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { MatchingOperatorDropdownOption, SpendManagementFilterEntityType, TransactionFilterEntityType, UserRoleType } from '@zeniai/client-epic-state';
|
|
2
|
+
import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
|
|
3
|
+
import { GenericFilterCategory, GenericFilterCategoryDropdownOption, GenericFiltersType, ValuesDropdownOption } from './genericFilterTypes';
|
|
4
|
+
export type SupportedFilterEntityType = TransactionFilterEntityType | SpendManagementFilterEntityType;
|
|
5
|
+
export interface GroupByFiltersComponentProps {
|
|
6
|
+
component: React.ReactElement;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export interface GenericFiltersProps<TEntity extends SupportedFilterEntityType, TField extends string, TCategoryDropdownOption extends GenericFilterCategoryDropdownOption<TField>, TFiltersType extends GenericFiltersType<TField>> {
|
|
10
|
+
entity: TEntity;
|
|
11
|
+
filters: TFiltersType;
|
|
12
|
+
filterStrings: {
|
|
13
|
+
addFilterBtnText: string;
|
|
14
|
+
categoryPlaceholder: string;
|
|
15
|
+
clearAllBtnText: string;
|
|
16
|
+
empty: string;
|
|
17
|
+
filterByLabel: string;
|
|
18
|
+
searchPlaceholder: string;
|
|
19
|
+
select: string;
|
|
20
|
+
/** Optional: return custom placeholder for the value dropdown by category field */
|
|
21
|
+
getValuePlaceholder?: (categoryField: string, categoryLabel: string) => string | undefined;
|
|
22
|
+
};
|
|
23
|
+
helpers: {
|
|
24
|
+
getAppliedFiltersCount: (filters: TFiltersType) => number;
|
|
25
|
+
getDefaultEmptyFilters: () => TFiltersType;
|
|
26
|
+
getFilterCategories: (entity: TEntity, userRole?: UserRoleType[]) => TCategoryDropdownOption[];
|
|
27
|
+
getFilterCategoryLabel: (entity: TEntity, key: string) => string;
|
|
28
|
+
getUpdatedFiltersOnCategoryChange: (props: {
|
|
29
|
+
currentFilters: TFiltersType;
|
|
30
|
+
selectedOption: TCategoryDropdownOption;
|
|
31
|
+
categoryIndex?: number;
|
|
32
|
+
}) => TFiltersType;
|
|
33
|
+
getUpdatedFiltersOnMatchingOperatorChange: (props: {
|
|
34
|
+
currentFilters: TFiltersType;
|
|
35
|
+
selectedOption: MatchingOperatorDropdownOption;
|
|
36
|
+
categoryIndex?: number;
|
|
37
|
+
}) => TFiltersType;
|
|
38
|
+
getUpdatedFiltersOnValueChange: (props: {
|
|
39
|
+
categoryIndex: number;
|
|
40
|
+
currentFilters: TFiltersType;
|
|
41
|
+
selectedOptions: ValuesDropdownOption[];
|
|
42
|
+
}) => TFiltersType;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Memoized dropdown options keyed by category field. The cache inside
|
|
46
|
+
* GenericFilters mirrors this value, so when source data lands after
|
|
47
|
+
* first render the dropdowns refresh automatically. Callers MUST
|
|
48
|
+
* memoize this (e.g. with `useMemo`) — passing a new object reference
|
|
49
|
+
* on every parent render will churn the internal cache state.
|
|
50
|
+
*/
|
|
51
|
+
categoryWiseOptions?: Record<string, ValuesDropdownOption[]>;
|
|
52
|
+
createdByUserListLoaded?: boolean;
|
|
53
|
+
disableFilters?: boolean;
|
|
54
|
+
groupByFiltersComponent?: GroupByFiltersComponentProps;
|
|
55
|
+
transactionsLoaded?: boolean;
|
|
56
|
+
vendorSearchAutoCompleteActions?: AutoCompleteActions;
|
|
57
|
+
vendorSearchAutoCompleteData?: AutoCompleteData;
|
|
58
|
+
onFiltersChange: (filters: TFiltersType) => void;
|
|
59
|
+
onFilterClick?: (entity: TEntity) => void;
|
|
60
|
+
/** When provided and returns non-null for a field, renders custom operator + value UI (e.g. transaction amount filter with From/To inputs). */
|
|
61
|
+
renderCustomCategoryValueSection?: (field: string, props: {
|
|
62
|
+
categoryIndex: number;
|
|
63
|
+
filter: GenericFilterCategory<TField>;
|
|
64
|
+
onMatchingOperatorChange: (option: {
|
|
65
|
+
label: string;
|
|
66
|
+
value: string;
|
|
67
|
+
}, categoryIndex?: number) => void;
|
|
68
|
+
onValueChange: (value: ValuesDropdownOption[], categoryIndex: number) => void;
|
|
69
|
+
}) => {
|
|
70
|
+
operatorDropdown: React.ReactNode;
|
|
71
|
+
valueField: React.ReactNode;
|
|
72
|
+
} | null;
|
|
73
|
+
}
|
|
74
|
+
declare function GenericFilters<TEntity extends SupportedFilterEntityType, TField extends string, TCategoryDropdownOption extends GenericFilterCategoryDropdownOption<TField>, TFiltersType extends GenericFiltersType<TField>>({ entity: selectedEntity, filters, filterStrings, helpers, onFiltersChange, createdByUserListLoaded, disableFilters, groupByFiltersComponent, transactionsLoaded, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, categoryWiseOptions, onFilterClick, renderCustomCategoryValueSection, }: GenericFiltersProps<TEntity, TField, TCategoryDropdownOption, TFiltersType>): import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
export default GenericFilters;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { MatchingOperatorDropdownOption, UserRoleType } from '@zeniai/client-epic-state';
|
|
2
|
+
import { AutoCompleteActions, AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps';
|
|
3
|
+
import { SupportedFilterEntityType } from '../GenericFilters';
|
|
4
|
+
import { GenericFilterCategory, GenericFilterCategoryDropdownOption, GenericFiltersType, ValuesDropdownOption } from '../genericFilterTypes';
|
|
5
|
+
export interface GenericFiltersSelectionProps<TEntity extends SupportedFilterEntityType, TField extends string, TCategoryDropdownOption extends GenericFilterCategoryDropdownOption<TField>, TFiltersType extends GenericFiltersType<TField>> {
|
|
6
|
+
filters: TFiltersType;
|
|
7
|
+
filterStrings: {
|
|
8
|
+
addFilterBtnText: string;
|
|
9
|
+
categoryPlaceholder: string;
|
|
10
|
+
clearAllBtnText: string;
|
|
11
|
+
filterByLabel: string;
|
|
12
|
+
searchPlaceholder: string;
|
|
13
|
+
select: string;
|
|
14
|
+
getValuePlaceholder?: (categoryField: string, categoryLabel: string) => string | undefined;
|
|
15
|
+
};
|
|
16
|
+
filterValues: Record<string, ValuesDropdownOption[]>;
|
|
17
|
+
helpers: {
|
|
18
|
+
getAppliedFiltersCount: (filters: TFiltersType) => number;
|
|
19
|
+
getDefaultEmptyFilters: () => TFiltersType;
|
|
20
|
+
getFilterCategories: (entity: TEntity, userRole?: UserRoleType[]) => TCategoryDropdownOption[];
|
|
21
|
+
getFilterCategoryLabel: (entity: TEntity, key: string) => string;
|
|
22
|
+
getUpdatedFiltersOnCategoryChange: (props: {
|
|
23
|
+
currentFilters: TFiltersType;
|
|
24
|
+
selectedOption: TCategoryDropdownOption;
|
|
25
|
+
categoryIndex?: number;
|
|
26
|
+
}) => TFiltersType;
|
|
27
|
+
getUpdatedFiltersOnMatchingOperatorChange: (props: {
|
|
28
|
+
currentFilters: TFiltersType;
|
|
29
|
+
selectedOption: MatchingOperatorDropdownOption;
|
|
30
|
+
categoryIndex?: number;
|
|
31
|
+
}) => TFiltersType;
|
|
32
|
+
getUpdatedFiltersOnValueChange: (props: {
|
|
33
|
+
categoryIndex: number;
|
|
34
|
+
currentFilters: TFiltersType;
|
|
35
|
+
selectedOptions: ValuesDropdownOption[];
|
|
36
|
+
}) => TFiltersType;
|
|
37
|
+
};
|
|
38
|
+
selectedEntity: TEntity;
|
|
39
|
+
vendorSearchAutoCompleteActions?: AutoCompleteActions;
|
|
40
|
+
vendorSearchAutoCompleteData?: AutoCompleteData;
|
|
41
|
+
onFiltersChange: (filters: TFiltersType) => void;
|
|
42
|
+
renderCustomCategoryValueSection?: (field: string, props: {
|
|
43
|
+
categoryIndex: number;
|
|
44
|
+
filter: GenericFilterCategory<TField>;
|
|
45
|
+
onMatchingOperatorChange: (option: {
|
|
46
|
+
label: string;
|
|
47
|
+
value: string;
|
|
48
|
+
}, categoryIndex?: number) => void;
|
|
49
|
+
onValueChange: (value: ValuesDropdownOption[], categoryIndex: number) => void;
|
|
50
|
+
}) => {
|
|
51
|
+
operatorDropdown: React.ReactNode;
|
|
52
|
+
valueField: React.ReactNode;
|
|
53
|
+
} | null;
|
|
54
|
+
}
|
|
55
|
+
declare const _default: <TEntity extends SupportedFilterEntityType, TField extends string, TCategoryDropdownOption extends GenericFilterCategoryDropdownOption<TField>, TFiltersType extends GenericFiltersType<TField>>(props: GenericFiltersSelectionProps<TEntity, TField, TCategoryDropdownOption, TFiltersType> & {
|
|
56
|
+
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
57
|
+
}) => React.ReactElement;
|
|
58
|
+
export default _default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CategoryCombinationOperator, ZeniDate, ZeniUrl } from '@zeniai/client-epic-state';
|
|
2
|
+
type DropdownOptionTypeBase = {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
};
|
|
5
|
+
export type ValuesDropdownOption = DropdownOptionTypeBase & {
|
|
6
|
+
label: string;
|
|
7
|
+
value: string | number | ZeniDate;
|
|
8
|
+
email?: string;
|
|
9
|
+
iconColor?: string;
|
|
10
|
+
iconType?: string;
|
|
11
|
+
photo?: ZeniUrl;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* How a category's selected values combine when matching:
|
|
15
|
+
* - `"ANY"` — match a row if any value in `values[]` matches (OR semantics).
|
|
16
|
+
* - `"ALL"` — match a row only if every value in `values[]` matches (AND).
|
|
17
|
+
*
|
|
18
|
+
* Exposed as a named type so callsites that store or narrow this field
|
|
19
|
+
* (e.g. TC's `TransactionFilterCategory`, which pins it to literal `"ANY"`)
|
|
20
|
+
* reference one source of truth rather than redeclaring the union.
|
|
21
|
+
*/
|
|
22
|
+
export type ValuesCombinationOperator = "ANY" | "ALL";
|
|
23
|
+
export type GenericFilterCategory<TField extends string = string> = {
|
|
24
|
+
values: Array<string | number | ZeniDate>;
|
|
25
|
+
field?: TField;
|
|
26
|
+
matchingOperator?: string;
|
|
27
|
+
valuesCombinationOperator?: ValuesCombinationOperator;
|
|
28
|
+
};
|
|
29
|
+
export type GenericFiltersType<TField extends string = string> = {
|
|
30
|
+
categories: GenericFilterCategory<TField>[];
|
|
31
|
+
categoryCombinationOperator: CategoryCombinationOperator;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Type shape for `NEW_CATEGORY_BODY` below. Carries three deliberate
|
|
35
|
+
* narrowing choices:
|
|
36
|
+
*
|
|
37
|
+
* - `valuesCombinationOperator: "ANY"` — the literal type, not the wider
|
|
38
|
+
* `ValuesCombinationOperator` union, because TC's
|
|
39
|
+
* `TransactionFilterCategory` narrows the field further to exactly
|
|
40
|
+
* `"ANY"`. Without the literal here, the `...NEW_CATEGORY_BODY` spread
|
|
41
|
+
* would produce `string` and fail the downstream assignment.
|
|
42
|
+
* - `values: never[]` — narrowest possible array type, so the spread is
|
|
43
|
+
* assignable to any concrete `values` (e.g. TC's `(string | number)[]`,
|
|
44
|
+
* SM's `Array<string | number | ZeniDate>`).
|
|
45
|
+
* - `matchingOperator: string` — widely usable placeholder; every caller
|
|
46
|
+
* overrides this field after the spread.
|
|
47
|
+
*
|
|
48
|
+
* Using an explicit type annotation rather than `as const` keeps the
|
|
49
|
+
* narrowing without scattering `as const` through callsites.
|
|
50
|
+
*/
|
|
51
|
+
type NewCategoryBody = {
|
|
52
|
+
matchingOperator: string;
|
|
53
|
+
values: never[];
|
|
54
|
+
valuesCombinationOperator: "ANY";
|
|
55
|
+
};
|
|
56
|
+
export declare const NEW_CATEGORY_BODY: NewCategoryBody;
|
|
57
|
+
export type GenericFilterCategoryDropdownOption<TField extends string = string> = {
|
|
58
|
+
value: TField;
|
|
59
|
+
multiple?: boolean;
|
|
60
|
+
type?: string;
|
|
61
|
+
};
|
|
62
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export interface Props {
|
|
2
2
|
disabled?: boolean;
|
|
3
|
+
enableSearchHotkey?: boolean;
|
|
3
4
|
inputWrapperStyle?: React.CSSProperties;
|
|
4
5
|
keepSearchBoxOpen?: boolean;
|
|
5
6
|
placeholder?: string;
|
|
@@ -8,9 +9,10 @@ export interface Props {
|
|
|
8
9
|
searchIconMarginRight?: string;
|
|
9
10
|
searchText?: string;
|
|
10
11
|
style?: React.CSSProperties;
|
|
12
|
+
styledSearchCancelIconWrapperStyle?: React.CSSProperties;
|
|
11
13
|
styledSearchIconContainerStyle?: React.CSSProperties;
|
|
12
14
|
styledSearchIconWrapperStyle?: React.CSSProperties;
|
|
13
15
|
onSearchOpen?: (isOpen: boolean) => void;
|
|
14
16
|
onSearchTextChanged?: (text: string) => void;
|
|
15
17
|
}
|
|
16
|
-
export declare function ListPageSearchInputBox({ disabled, inputWrapperStyle, keepSearchBoxOpen, placeholder, searchBarDataTestId, searchIconMarginRight, searchText, style, styledSearchIconContainerStyle, styledSearchIconWrapperStyle, onSearchOpen, onSearchTextChanged, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function ListPageSearchInputBox({ enableSearchHotkey, disabled, inputWrapperStyle, keepSearchBoxOpen, placeholder, searchBarDataTestId, searchIconMarginRight, searchText, style, styledSearchCancelIconWrapperStyle, styledSearchIconContainerStyle, styledSearchIconWrapperStyle, onSearchOpen, onSearchTextChanged, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,13 +2,26 @@ export interface ListPageSearchSectionProps {
|
|
|
2
2
|
isSearchOpen: boolean;
|
|
3
3
|
searchPlaceHolder: string;
|
|
4
4
|
searchText: string;
|
|
5
|
+
/** Tab-within-feature scope — see `selectedEntity` above. */
|
|
6
|
+
currentTab?: string;
|
|
5
7
|
downloadPresent?: boolean;
|
|
8
|
+
enableSearchHotkey?: boolean;
|
|
6
9
|
hideSearchBtn?: boolean;
|
|
7
10
|
inputWrapperStyle?: React.CSSProperties;
|
|
8
11
|
/** When set, applied to each search bar container (icon + input). */
|
|
9
12
|
searchBarDataTestId?: string;
|
|
10
13
|
searchIconMarginRight?: string;
|
|
11
14
|
searchTextBoxStyle?: React.CSSProperties;
|
|
15
|
+
/**
|
|
16
|
+
* Optional page/feature scope — paired with `currentTab` to derive a
|
|
17
|
+
* specific `data-testid` on the outer container (e.g.
|
|
18
|
+
* `search-transaction_categorization-review`). Both must be supplied for
|
|
19
|
+
* the attribute to render; either missing falls back to no `data-testid`
|
|
20
|
+
* so consumers without this context (vendor pages, aging reports, etc.)
|
|
21
|
+
* stay un-tagged and continue to rely on their own scoping mechanisms.
|
|
22
|
+
*/
|
|
23
|
+
selectedEntity?: string;
|
|
24
|
+
styledSearchCancelIconWrapperStyle?: React.CSSProperties;
|
|
12
25
|
styledSearchIconContainerStyle?: React.CSSProperties;
|
|
13
26
|
styledSearchIconWrapperStyle?: React.CSSProperties;
|
|
14
27
|
onSearchTextChanged?: (searchText: string) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { AccountBase, AuthParams, BulkUploadResultsTab, BulkUploadSelectorData, BulkUploadSortKey, COTTransactionTrackingByTransactionId, ClassBase, CompletedSubTab, CustomerBase, Entity, ExpenseAutomationJESchedulesViewUIState, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationReconciliationViewTab, ExpenseAutomationStepDetails, ExpenseAutomationTransactionsTab, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationViewSelector, ExpenseAutomationViewType, FetchState, FluxAnalysisActionType, FluxAnalysisSectionType, FluxAnalysisViewUIState, ID, JEScheduleTransactionKey, LoggedInUser, MissingReceiptsTab, MonthYearPeriod, PageToken, PlaidLinkTokenType, RecommendationWithCOT, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReviewTabLocalData, SaveExpenseAutomationReconciliationActionType, ScheduleTypes, SortOrder, SupportedTransactionPayload, SupportedTransactionWithCOT, TransactionEntityType, TransactionID, TransactionType, Vendor, VendorBase, ZeniAPIStatus } from '@zeniai/client-epic-state';
|
|
2
|
+
import { AccountBase, AccountFilterOption, AuthParams, BulkUploadResultsTab, BulkUploadSelectorData, BulkUploadSortKey, COTTransactionTrackingByTransactionId, ClassBase, ClassFilterOption, CompletedSubTab, CustomerBase, Entity, ExpenseAutomationJESchedulesViewUIState, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationReconciliationViewTab, ExpenseAutomationStepDetails, ExpenseAutomationTransactionsTab, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationViewSelector, ExpenseAutomationViewType, FetchState, FluxAnalysisActionType, FluxAnalysisSectionType, FluxAnalysisViewUIState, ID, JEScheduleTransactionKey, LoggedInUser, MissingReceiptsTab, MonthYearPeriod, PageToken, PlaidLinkTokenType, RecommendationWithCOT, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReviewTabLocalData, SaveExpenseAutomationReconciliationActionType, ScheduleTypes, SortOrder, SupportedTransactionPayload, SupportedTransactionWithCOT, TransactionEntityType, TransactionFilters, TransactionID, TransactionType, Vendor, VendorBase, ZeniAPIStatus } from '@zeniai/client-epic-state';
|
|
3
3
|
import { AutoCompleteActions, AutoCompleteData } from '../common/autoComplete/autoCompleteProps';
|
|
4
4
|
import { ReportTreeScrollPosition } from '../reportTree/ReportTree';
|
|
5
5
|
import { ExpenseAutomationThreadClickTarget } from './components/ExpenseAutomationCommentingShell';
|
|
@@ -22,6 +22,8 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
22
22
|
receiptUploadEndpoint: string;
|
|
23
23
|
vendorSearchAutoCompleteActions: AutoCompleteActions;
|
|
24
24
|
vendorSearchAutoCompleteData: AutoCompleteData;
|
|
25
|
+
/** Accounts from getAllAccounts(accountState) for Payment Account Name/Type filter dropdowns */
|
|
26
|
+
accountsForFilters?: AccountFilterOption[];
|
|
25
27
|
/**
|
|
26
28
|
* Transaction categorization only: inline activity next to the TC list
|
|
27
29
|
* (e.g. `TransactionActivityLogPanel`).
|
|
@@ -34,6 +36,19 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
34
36
|
activityLogTransactionId?: ID;
|
|
35
37
|
bulkUploadEndpoint?: string;
|
|
36
38
|
bulkUploadSelector?: BulkUploadSelectorData;
|
|
39
|
+
/** Options for the Category filter dropdown (converted to { label: accountName, value: accountId }) */
|
|
40
|
+
categoryOptions?: Array<{
|
|
41
|
+
accountId?: string;
|
|
42
|
+
accountName?: string;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Class options for the Class filter dropdown. Uses the narrow
|
|
46
|
+
* `ClassFilterOption` ({classId, className}) — only the identity and the
|
|
47
|
+
* display label are needed here. Passing the full `ClassBase` would be a
|
|
48
|
+
* loose contract that lets consumers accidentally rely on fields that the
|
|
49
|
+
* upstream selector strips out.
|
|
50
|
+
*/
|
|
51
|
+
classesForFilters?: ClassFilterOption[];
|
|
37
52
|
/** Initial receipts sub-tab (e.g. Storybook: show Unmatched without clicking tabs). */
|
|
38
53
|
initialMissingReceiptsTab?: MissingReceiptsTab;
|
|
39
54
|
isAiCfoAccessEnabled?: boolean;
|
|
@@ -72,6 +87,7 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
72
87
|
}, isBulkFetch: boolean, selectedTab: ExpenseAutomationTransactionsTab, entity?: Entity, updatedCustomer?: CustomerBase) => void;
|
|
73
88
|
onFetchReimbursementView: (selectedPeriod: MonthYearPeriod, pageToken: PageToken, keepExistingListItems: boolean) => void;
|
|
74
89
|
onFetchTransactionCategorizationList: (selectedTab: ExpenseAutomationTransactionsTab, searchString?: string, keepExistingListItems?: boolean, pageToken?: PageToken, refreshInBackground?: boolean, resetListItems?: boolean) => void;
|
|
90
|
+
onFiltersChange: (filters: TransactionFilters) => void;
|
|
75
91
|
onIncludeAccountIntoReconciliation: (accountId: ID) => void;
|
|
76
92
|
onJeAccountSettingsChange: (formData: JEScheduleAccountSettingsFormData) => void;
|
|
77
93
|
onJESchedulesFormDataChange: (scheduleJournalEntryID: ID, localData: JEScheduleResolveComponentFormData) => void;
|
|
@@ -101,6 +117,7 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
101
117
|
onUpdateSelectedCheckboxTransactionIds: (selectedTab: ExpenseAutomationTransactionsTab, transactionIds: ID[]) => void;
|
|
102
118
|
onUpdateStep: (step: ExpenseAutomationViewType) => void;
|
|
103
119
|
onUpdateTab: (tab: ExpenseAutomationTransactionsTab) => void;
|
|
120
|
+
onUpdateTransactionCategorizationCompletedSubTab: (subTab: CompletedSubTab) => void;
|
|
104
121
|
onUpdateTransactionCategorizationUIState: (selectedTab: ExpenseAutomationTransactionsTab, uiState: Partial<ExpenseAutomationTransactionsViewUIState>) => void;
|
|
105
122
|
onUploadReceiptAttachment: (transaction: SupportedTransactionPayload) => void;
|
|
106
123
|
onUploadReceiptComplete: (transactionPayload: SupportedTransactionPayload, selectedPeriod: MonthYearPeriod) => void;
|
|
@@ -138,6 +155,7 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
|
|
|
138
155
|
/** Sync Redux `uploadedFileCount` when using direct HTTP bulk upload (no `onBulkUploadFiles`). */
|
|
139
156
|
onBulkUploadUploadedFileCount?: (count: number) => void;
|
|
140
157
|
onClearBulkUpload?: () => void;
|
|
158
|
+
onClearBulkUploadBatchDetailsForScopeChange?: () => void;
|
|
141
159
|
/** Clears one-shot Redux flag after switching Missing Receipts sub-tab (e.g. Unmatched on batch complete). */
|
|
142
160
|
onClearMissingReceiptsTabNavigation?: () => void;
|
|
143
161
|
onConfirmBulkUploadMatch?: (batchId: ID, attachmentId: ID, transactionId: ID, transactionType: string, fileName: string) => void;
|
|
@@ -6,6 +6,12 @@ interface EmptyTableSectionProps {
|
|
|
6
6
|
subTitle: string;
|
|
7
7
|
tab: ExpenseAutomationViewType;
|
|
8
8
|
title: string;
|
|
9
|
+
/**
|
|
10
|
+
* When true, render the "no search results" illustration instead of the
|
|
11
|
+
* tab-specific all-done illustration. Used by the Transaction Categorization
|
|
12
|
+
* list when an active search/filter yields no matches.
|
|
13
|
+
*/
|
|
14
|
+
useNoSearchResultIcon?: boolean;
|
|
9
15
|
}
|
|
10
16
|
export default function EmptyTableSection(props: EmptyTableSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
11
17
|
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { TabSwitcherOption } from '../../common/allNavBars/statusSwitcher/switcherTypes';
|
|
3
|
+
export interface ExpenseAutomationSubTabSwitcherProps<TId extends string = string> {
|
|
4
|
+
activeSubTab: TId;
|
|
5
|
+
allTabs: TabSwitcherOption[];
|
|
6
|
+
containerStyle?: CSSProperties;
|
|
7
|
+
onSubTabChange: (id: TId) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Generic sub-tab strip for any tab inside the Expense Automation surface.
|
|
11
|
+
*
|
|
12
|
+
* Wraps the shared {@link SubTabSwitcher} with the standard column chrome and
|
|
13
|
+
* padding used across Expense Automation so visual parity is automatic. The
|
|
14
|
+
* `id` type is generic so callers can plug in any union (e.g. `CompletedSubTab`)
|
|
15
|
+
* without casting at the call site.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ExpenseAutomationSubTabSwitcher<TId extends string = string>({ activeSubTab, allTabs, onSubTabChange, containerStyle, }: ExpenseAutomationSubTabSwitcherProps<TId>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { CompletionStatusType, ExpenseAutomationReconciliationViewTab, ExpenseAutomationTransactionsTab, ExpenseAutomationViewType, FetchState, ID, MissingReceiptsTab } from '@zeniai/client-epic-state';
|
|
2
|
+
import { CompletionStatusType, ExpenseAutomationReconciliationViewTab, ExpenseAutomationTransactionsTab, ExpenseAutomationViewType, FetchState, ID, MissingReceiptsTab, TransactionFilterEntityType, TransactionFilters } from '@zeniai/client-epic-state';
|
|
3
3
|
import { TabSwitcherOption } from '../../common/allNavBars/statusSwitcher/switcherTypes';
|
|
4
|
+
import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
|
|
5
|
+
import { ValuesDropdownOption } from '../../common/filters/genericFilterTypes';
|
|
4
6
|
import { JEScheduleMainTab } from '../sections/jeSchedules/jeScheduleConfig';
|
|
5
7
|
import { ExpenseAutomationNavbarHeaderData } from './navbarHeaderData';
|
|
6
8
|
interface NavBarWithHeaderProps {
|
|
@@ -12,15 +14,30 @@ interface NavBarWithHeaderProps {
|
|
|
12
14
|
isZeniUser: boolean;
|
|
13
15
|
refreshStatus: FetchState;
|
|
14
16
|
searchText: string;
|
|
17
|
+
selectedEntity: TransactionFilterEntityType;
|
|
15
18
|
/** Renders below the tab strip (e.g. Missing Receipts bulk upload email + policy). */
|
|
16
19
|
belowTabsSlot?: ReactNode;
|
|
17
20
|
completionPercentage?: number;
|
|
18
21
|
/** Raw progress (0–100) for color bands; falls back to `completionPercentage` when omitted. */
|
|
19
22
|
completionProgressRaw?: number;
|
|
23
|
+
createdByUserListLoaded?: boolean;
|
|
20
24
|
currentJeTab?: JEScheduleMainTab;
|
|
21
25
|
currentMissingReceiptsTab?: MissingReceiptsTab;
|
|
22
26
|
currentRecontab?: ExpenseAutomationReconciliationViewTab;
|
|
23
27
|
currentTab?: ExpenseAutomationTransactionsTab;
|
|
28
|
+
filterComponent?: React.ComponentType<{
|
|
29
|
+
entity: TransactionFilterEntityType;
|
|
30
|
+
filters: TransactionFilters;
|
|
31
|
+
/** Memoized dropdown options keyed by category field. Update this when source data populates so dropdowns refresh. */
|
|
32
|
+
categoryWiseOptions?: Record<string, ValuesDropdownOption[]>;
|
|
33
|
+
createdByUserListLoaded?: boolean;
|
|
34
|
+
vendorSearchAutoCompleteActions?: AutoCompleteActions;
|
|
35
|
+
vendorSearchAutoCompleteData?: AutoCompleteData;
|
|
36
|
+
onFiltersChange: (filters: TransactionFilters) => void;
|
|
37
|
+
}>;
|
|
38
|
+
/** Memoized dropdown options keyed by category field. Update this when source data populates so dropdowns refresh. */
|
|
39
|
+
filterOptions?: Record<string, ValuesDropdownOption[]>;
|
|
40
|
+
filters?: TransactionFilters;
|
|
24
41
|
hideTabSwitcher?: boolean;
|
|
25
42
|
isAiCfoAccessEnabled?: boolean;
|
|
26
43
|
isCompletionLoading?: boolean;
|
|
@@ -29,6 +46,8 @@ interface NavBarWithHeaderProps {
|
|
|
29
46
|
selectedGenericTab?: ID;
|
|
30
47
|
selectedReconAccountId?: ID;
|
|
31
48
|
titleStyle?: React.CSSProperties;
|
|
49
|
+
vendorSearchAutoCompleteActions?: AutoCompleteActions;
|
|
50
|
+
vendorSearchAutoCompleteData?: AutoCompleteData;
|
|
32
51
|
getTabCountAndFetchState: (currentTab: ExpenseAutomationTransactionsTab | ExpenseAutomationReconciliationViewTab | MissingReceiptsTab | JEScheduleMainTab) => {
|
|
33
52
|
count: number;
|
|
34
53
|
isFetching: boolean;
|
|
@@ -43,6 +62,7 @@ interface NavBarWithHeaderProps {
|
|
|
43
62
|
onUpdateTab: (tab: ExpenseAutomationTransactionsTab) => void;
|
|
44
63
|
onAskAiCfoClick?: () => void;
|
|
45
64
|
onCommentDrawerClick?: () => void;
|
|
65
|
+
onFiltersChange?: (filters: TransactionFilters) => void;
|
|
46
66
|
onGenericTabChange?: (tab: TabSwitcherOption) => void;
|
|
47
67
|
onJeTabUpdate?: (tab: JEScheduleMainTab) => void;
|
|
48
68
|
onMissingReceiptsTabUpdate?: (tab: MissingReceiptsTab) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { AttachmentFilePayload, AuthParams, ExpenseAutomationViewSelector, ID, LoggedInUser, SaveExpenseAutomationReconciliationActionType } from '@zeniai/client-epic-state';
|
|
2
|
+
import { AttachmentFilePayload, AuthParams, ExpenseAutomationViewSelector, ID, LoggedInUser, SaveExpenseAutomationReconciliationActionType, TransactionFilters } from '@zeniai/client-epic-state';
|
|
3
3
|
import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
|
|
4
4
|
import { FooterFormIdType } from '../common';
|
|
5
5
|
import { AccountReconciliationParentPageActionProps } from '../sections/accountRecon/AccountReconciliationPage';
|
|
@@ -32,6 +32,7 @@ export interface MonthEndReportPageProps {
|
|
|
32
32
|
interface TableSectionProps extends MissingReceiptsListTableActionProps, TransactionCategorizationActionProps, JESchedulePageProps, FluxAnalysisTableProps, AccountReconciliationParentPageActionProps, MonthEndReportPageProps {
|
|
33
33
|
authParams: AuthParams;
|
|
34
34
|
expenseAutomationViewSelector: ExpenseAutomationViewSelector;
|
|
35
|
+
filters: TransactionFilters;
|
|
35
36
|
isAccountingClassesEnabled: boolean;
|
|
36
37
|
isCOTEnabled: boolean;
|
|
37
38
|
isProjectsTransactionsEnabled: boolean;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ValuesDropdownOption } from '../../../common/filters/genericFilterTypes';
|
|
2
|
+
export interface AmountFilterValueFieldProps {
|
|
3
|
+
matchingOperator: string;
|
|
4
|
+
value: (string | number)[];
|
|
5
|
+
onChange: (options: ValuesDropdownOption[]) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const AmountFilterValueField: ({ matchingOperator, value, onChange, }: AmountFilterValueFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default AmountFilterValueField;
|
package/dist/components/expenseAutomation/components/filters/AmountMatchingOperatorDropdown.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AmountMatchingOperatorOption } from './amountFilterConstants';
|
|
2
|
+
interface AmountMatchingOperatorDropdownProps {
|
|
3
|
+
categoryIndex?: number;
|
|
4
|
+
value?: string;
|
|
5
|
+
onChange: (option: AmountMatchingOperatorOption, categoryIndex?: number) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const AmountMatchingOperatorDropdown: ({ onChange, value, categoryIndex, }: AmountMatchingOperatorDropdownProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default AmountMatchingOperatorDropdown;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TransactionFilterEntityType, TransactionFilters } from '@zeniai/client-epic-state';
|
|
2
|
+
import { AutoCompleteActions, AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps';
|
|
3
|
+
import { ValuesDropdownOption } from '../../../common/filters/genericFilterTypes';
|
|
4
|
+
export interface TransactionFiltersProps {
|
|
5
|
+
entity: TransactionFilterEntityType;
|
|
6
|
+
filters: TransactionFilters;
|
|
7
|
+
/** Memoized dropdown options keyed by category field. Update this when the source data populates so the dropdowns refresh. */
|
|
8
|
+
categoryWiseOptions?: Record<string, ValuesDropdownOption[]>;
|
|
9
|
+
createdByUserListLoaded?: boolean;
|
|
10
|
+
disableFilters?: boolean;
|
|
11
|
+
transactionsLoaded?: boolean;
|
|
12
|
+
vendorSearchAutoCompleteActions?: AutoCompleteActions;
|
|
13
|
+
vendorSearchAutoCompleteData?: AutoCompleteData;
|
|
14
|
+
onFiltersChange: (filters: TransactionFilters) => void;
|
|
15
|
+
}
|
|
16
|
+
declare const TransactionFiltersComponent: ({ entity, filters, vendorSearchAutoCompleteData, vendorSearchAutoCompleteActions, disableFilters, transactionsLoaded, createdByUserListLoaded, onFiltersChange, categoryWiseOptions, }: TransactionFiltersProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export default TransactionFiltersComponent;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amount filter: operator types and dropdown options for the
|
|
3
|
+
* transaction-categorization Amount filter. Used only by the TC filter UI;
|
|
4
|
+
* not consumed outside this folder.
|
|
5
|
+
*/
|
|
6
|
+
type AmountMatchingOperatorValue = "less_than" | "greater_than" | "equal" | "in_between";
|
|
7
|
+
export interface AmountMatchingOperatorOption {
|
|
8
|
+
label: string;
|
|
9
|
+
value: AmountMatchingOperatorValue;
|
|
10
|
+
}
|
|
11
|
+
export declare const getAmountMatchingOperatorOptions: (labels: {
|
|
12
|
+
greaterThan: string;
|
|
13
|
+
inBetween: string;
|
|
14
|
+
isEqual: string;
|
|
15
|
+
lessThan: string;
|
|
16
|
+
}) => AmountMatchingOperatorOption[];
|
|
17
|
+
export declare const isAmountMatchingOperator: (value: string) => value is AmountMatchingOperatorValue;
|
|
18
|
+
export declare const DEFAULT_AMOUNT_MATCHING_OPERATOR: AmountMatchingOperatorValue;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MatchingOperatorDropdownOption, TransactionFilterCategoryDropdownOption, TransactionFilters } from '@zeniai/client-epic-state';
|
|
2
|
+
import { ValuesDropdownOption } from '../../../common/filters/genericFilterTypes';
|
|
3
|
+
export declare const getTransactionFilterCategories: () => TransactionFilterCategoryDropdownOption[];
|
|
4
|
+
export declare const getTransactionFilterCategoryLabel: (key: string) => string;
|
|
5
|
+
export declare const getUpdatedTransactionFiltersOnCategoryChange: ({ currentFilters, selectedOption, categoryIndex, }: {
|
|
6
|
+
currentFilters: TransactionFilters;
|
|
7
|
+
selectedOption: TransactionFilterCategoryDropdownOption;
|
|
8
|
+
categoryIndex?: number;
|
|
9
|
+
}) => TransactionFilters;
|
|
10
|
+
export declare const getUpdatedTransactionFiltersOnMatchingOperatorChange: ({ currentFilters, selectedOption, categoryIndex, }: {
|
|
11
|
+
currentFilters: TransactionFilters;
|
|
12
|
+
selectedOption: MatchingOperatorDropdownOption | {
|
|
13
|
+
label: string;
|
|
14
|
+
value: string;
|
|
15
|
+
};
|
|
16
|
+
categoryIndex?: number;
|
|
17
|
+
}) => TransactionFilters;
|
|
18
|
+
export declare const getUpdatedTransactionFiltersOnValueChange: ({ categoryIndex, currentFilters, selectedOptions, }: {
|
|
19
|
+
categoryIndex: number;
|
|
20
|
+
currentFilters: TransactionFilters;
|
|
21
|
+
selectedOptions: ValuesDropdownOption[];
|
|
22
|
+
}) => TransactionFilters;
|
|
23
|
+
export declare const getTransactionAppliedFiltersCount: (filters: TransactionFilters) => number;
|
|
24
|
+
export declare const hasActiveSearchOrFilters: (searchString: string, filters: TransactionFilters) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExpenseAutomationReconciliationViewTab, ExpenseAutomationTransactionsTab, ExpenseAutomationViewType, ID, MissingReceiptsTab } from '@zeniai/client-epic-state';
|
|
2
2
|
import { JEScheduleMainTab } from '../sections/jeSchedules/jeScheduleConfig';
|
|
3
|
-
declare const toRightOptionType: (v: string) => "search" | "close" | "comment" | "refresh" | "commentDrawer" | "askAiCfo";
|
|
3
|
+
declare const toRightOptionType: (v: string) => "search" | "close" | "filter" | "comment" | "refresh" | "commentDrawer" | "askAiCfo";
|
|
4
4
|
type RightSection = ReturnType<typeof toRightOptionType>;
|
|
5
5
|
declare const toLeftOptionType: (v: string) => "back";
|
|
6
6
|
type LeftSection = ReturnType<typeof toLeftOptionType>;
|
|
@@ -35,7 +35,7 @@ export interface ExpenseAutomationNavbarHeaderData {
|
|
|
35
35
|
title: string;
|
|
36
36
|
subText?: string;
|
|
37
37
|
}
|
|
38
|
-
export declare const getNavBarHeaderData: (expenseAutomationViewType: ExpenseAutomationViewType, autoCategorizedTransactionNumber?: number, accountId?: ID, customTitle?: string, navBarSubText?: string,
|
|
38
|
+
export declare const getNavBarHeaderData: (expenseAutomationViewType: ExpenseAutomationViewType, autoCategorizedTransactionNumber?: number, accountId?: ID, customTitle?: string, navBarSubText?: string, currentTab?: ExpenseAutomationTransactionsTab, isSearchAndFilterEnabled?: boolean,
|
|
39
39
|
/** When `{ includeBulkUploadTabs: false }` (bulk upload / feature off), no sub-tabs — original subtitle only. */
|
|
40
40
|
missingReceiptsOptions?: {
|
|
41
41
|
includeBulkUploadTabs?: boolean;
|
|
@@ -42,6 +42,12 @@ export interface MissingReceiptsPageProps {
|
|
|
42
42
|
setMissingReceiptsTab: (tab: MissingReceiptsTab) => void;
|
|
43
43
|
onBulkUploadFiles?: (files: File[]) => void;
|
|
44
44
|
onBulkUploadSuccess?: (batchId: string) => void;
|
|
45
|
+
/**
|
|
46
|
+
* Wipes the bulk-upload details cache and `initialBatchDetailsLoaded` flag on tenant/period
|
|
47
|
+
* change. Distinct from a stale-while-revalidate refresh — the new scope's data is genuinely
|
|
48
|
+
* unknown, so the Unmatched skeleton is the correct UX.
|
|
49
|
+
*/
|
|
50
|
+
onClearBulkUploadBatchDetailsForScopeChange?: () => void;
|
|
45
51
|
onDeleteUnmatchedReceipt?: (attachmentId: ID) => void;
|
|
46
52
|
onFetchBulkUploadBatches?: (input?: {
|
|
47
53
|
cacheOverride?: boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TabSwitcherOption } from '../../../common/allNavBars/statusSwitcher/switcherTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Sub-tabs rendered under the Transaction Categorization "Completed" tab.
|
|
4
|
+
* The `id` values match the `CompletedSubTab` union exposed by client-epic-state
|
|
5
|
+
* and are forwarded verbatim to the listing API as `sub_tab`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TRANSACTION_CATEGORIZATION_COMPLETED_SUB_TABS: TabSwitcherOption[];
|
package/dist/components/formElements/filterValuesDropdownField/FilterValuesDropdownField.d.ts
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { EntityAutoCompleteView, FilterCategoryType, ZeniDate
|
|
2
|
+
import { EntityAutoCompleteView, FilterCategoryType, ZeniDate } from '@zeniai/client-epic-state';
|
|
3
3
|
import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export interface ValuesDropdownOption extends DropdownOptionTypeBase {
|
|
8
|
-
label: string;
|
|
9
|
-
value: string | ZeniDate;
|
|
10
|
-
email?: string;
|
|
11
|
-
iconColor?: string;
|
|
12
|
-
iconType?: string;
|
|
13
|
-
photo?: ZeniUrl;
|
|
14
|
-
}
|
|
4
|
+
import { ValuesCombinationOperator, ValuesDropdownOption } from '../../common/filters/genericFilterTypes';
|
|
5
|
+
export type { ValuesDropdownOption };
|
|
15
6
|
export interface FilterValuesDropdownFieldProps {
|
|
16
7
|
filterCategoryType: FilterCategoryType;
|
|
17
8
|
options: ValuesDropdownOption[];
|
|
18
9
|
placeHolder: string;
|
|
19
|
-
value: (string | ZeniDate)[];
|
|
20
|
-
valuesCombinationOperator:
|
|
10
|
+
value: (string | number | ZeniDate)[];
|
|
11
|
+
valuesCombinationOperator: ValuesCombinationOperator;
|
|
21
12
|
searchAutoCompleteActions?: AutoCompleteActions;
|
|
22
13
|
searchAutoCompleteData?: AutoCompleteData;
|
|
23
14
|
onChange: (value: ValuesDropdownOption[]) => void;
|
|
@@ -17,6 +17,12 @@ export interface AutoTransferRulePageProps {
|
|
|
17
17
|
depositAccountListView?: DepositAccountListSelectorView;
|
|
18
18
|
downloadAccountDetailEndPoint?: string;
|
|
19
19
|
editingRuleId?: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* When `true`, suppresses the page-level NavBar. Use when embedding this
|
|
22
|
+
* page inside another page (e.g. as a sub-tab of cash management) that
|
|
23
|
+
* already owns the chrome.
|
|
24
|
+
*/
|
|
25
|
+
hideNavBar?: boolean;
|
|
20
26
|
isEditDrawerOpen?: boolean;
|
|
21
27
|
scrollToAddRule?: boolean;
|
|
22
28
|
zeniAccountsConfigDetail?: ZeniAccountsConfigSelectorView;
|
|
@@ -33,7 +39,7 @@ export interface AutoTransferRulePageProps {
|
|
|
33
39
|
onUpdateRuleLocalData: (localData: AutoTransferRuleLocalData, ruleId?: string) => void;
|
|
34
40
|
onEditClick?: (ruleId: string) => void;
|
|
35
41
|
}
|
|
36
|
-
declare const AutoTransferRulePage: ({ autoTransferRuleView, hasAdminLevelAccess, companyName, analytics, authParams, currentTenant, depositAccountListView, downloadAccountDetailEndPoint, transferLimit, zeniAccountsConfigDetail, onBackClick, onDeleteClick, onPauseClick, onResumeClick, onActivityClick, onUpdateRule, onCreateRule, onReviewClick, includeTreasuryOption, isEditDrawerOpen, editingRuleId, onUpdateRuleLocalData, onEditClick, clearRuleLocalData, onEditDrawerClose, scrollToAddRule, }: AutoTransferRulePageProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
declare const AutoTransferRulePage: ({ autoTransferRuleView, hasAdminLevelAccess, companyName, analytics, authParams, currentTenant, depositAccountListView, downloadAccountDetailEndPoint, transferLimit, zeniAccountsConfigDetail, onBackClick, onDeleteClick, onPauseClick, onResumeClick, onActivityClick, onUpdateRule, onCreateRule, onReviewClick, hideNavBar, includeTreasuryOption, isEditDrawerOpen, editingRuleId, onUpdateRuleLocalData, onEditClick, clearRuleLocalData, onEditDrawerClose, scrollToAddRule, }: AutoTransferRulePageProps) => import("react/jsx-runtime").JSX.Element;
|
|
37
43
|
export default AutoTransferRulePage;
|
|
38
44
|
export declare const getAccountLabel: (account?: FundingAccount | {
|
|
39
45
|
accType: string;
|