@zeniai/web-components 4.3.83 → 4.3.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/{SessionTimeoutPopup-BrrSJgL_.cjs → SessionTimeoutPopup-BevaOjyq.cjs} +16076 -16879
  2. package/dist/{SessionTimeoutPopup-DBvW5uLp.js → SessionTimeoutPopup-nBxUPbGt.js} +91017 -94527
  3. package/dist/appLocale.d.ts +4 -124
  4. package/dist/cockpit.cjs.js +8 -8
  5. package/dist/cockpit.esm.js +514 -514
  6. package/dist/components/aiCfo/components/AiCfoRoutinesBrowser.d.ts +1 -1
  7. package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +4 -14
  8. package/dist/components/expenseAutomation/components/navbarHeaderData.d.ts +1 -6
  9. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +2 -10
  10. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +1 -2
  11. package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleConfig.d.ts +7 -0
  12. package/dist/components/expenseAutomation/sections/missingReceipts/missingReceiptsSidePanelListMargin.d.ts +3 -10
  13. package/dist/components/invoicing/catalogForm/InvoicingCatalogItemFormPage.d.ts +6 -11
  14. package/dist/components/invoicing/catalogForm/catalogItemForm.shared.d.ts +7 -0
  15. package/dist/components/invoicing/common/InvoicingFormControls.d.ts +1 -8
  16. package/dist/components/invoicing/common/InvoicingInvoicePreview.d.ts +1 -6
  17. package/dist/components/invoicing/common/InvoicingSkeletons.d.ts +4 -20
  18. package/dist/components/invoicing/couponForm/InvoicingCouponFormPage.d.ts +2 -27
  19. package/dist/components/invoicing/couponForm/couponForm.shared.d.ts +1 -5
  20. package/dist/components/invoicing/customerForm/InvoicingCustomerFormPage.d.ts +1 -9
  21. package/dist/components/invoicing/discountDetail/InvoicingDiscountDetailPage.d.ts +0 -7
  22. package/dist/components/invoicing/settings/invoicingSettingsShared.d.ts +2 -8
  23. package/dist/components/invoicing/subscriptionForm/InvoicingSubscriptionFormPage.d.ts +1 -9
  24. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsAccruedExpensesPage.d.ts +2 -12
  25. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsFixedAssetsPage.d.ts +2 -12
  26. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsPage.d.ts +2 -12
  27. package/dist/components/reportTree/treeNode/accountReconReport/row/v2/statusHelper.d.ts +1 -1
  28. package/dist/index.cjs.js +1 -1
  29. package/dist/index.d.ts +1 -7
  30. package/dist/index.esm.js +391 -392
  31. package/dist/strings/strings.d.ts +4 -124
  32. package/package.json +6 -6
  33. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingKpiStrip.d.ts +0 -9
  34. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingList.d.ts +0 -13
  35. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +0 -11
  36. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +0 -21
  37. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchNewButton.d.ts +0 -5
  38. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPage.d.ts +0 -22
  39. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPageSkeleton.d.ts +0 -3
  40. package/dist/components/expenseAutomation/sections/actualMatching/MatchNewModal.d.ts +0 -12
  41. package/dist/components/expenseAutomation/sections/actualMatching/MatchNewPreview.d.ts +0 -8
  42. package/dist/components/expenseAutomation/sections/actualMatching/ReversesGroupedPill.d.ts +0 -5
  43. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +0 -76
  44. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.test.d.ts +0 -1
  45. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingListConfig.d.ts +0 -12
  46. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.d.ts +0 -18
  47. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.test.d.ts +0 -1
  48. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingTypes.d.ts +0 -43
  49. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.d.ts +0 -12
  50. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.test.d.ts +0 -1
  51. package/dist/components/expenseAutomation/sections/actualMatching/stories/ActualMatchingPageQuickViewStoryParts.d.ts +0 -10
  52. package/dist/components/expenseAutomation/stories/actualMatchingPageStoryActions.d.ts +0 -2
  53. package/dist/components/invoicing/common/invoicingAccountPickerOptions.d.ts +0 -14
  54. package/dist/components/jeSchedules/scheduleDetails/sections/ScheduleDecisionAction.d.ts +0 -41
@@ -160,7 +160,6 @@ export declare const zeniStrings: {
160
160
  alternateRecommendation: string;
161
161
  thoughtProcess: string;
162
162
  insured: string;
163
- monthInsightSent: string;
164
163
  subject: string;
165
164
  refer: string;
166
165
  copy: string;
@@ -1966,16 +1965,6 @@ export declare const zeniStrings: {
1966
1965
  failed: string;
1967
1966
  notification: string;
1968
1967
  };
1969
- actual_matching_match_and_reverse: {
1970
- success: string;
1971
- failed: string;
1972
- notification: string;
1973
- };
1974
- actual_matching_undo_reversal: {
1975
- success: string;
1976
- failed: string;
1977
- notification: string;
1978
- };
1979
1968
  ignore_schedule: {
1980
1969
  success: string;
1981
1970
  failed: string;
@@ -4308,6 +4297,7 @@ export declare const zeniStrings: {
4308
4297
  noPerson: string;
4309
4298
  createMonthInsight: string;
4310
4299
  editMonthInsight: string;
4300
+ monthInsightSent: string;
4311
4301
  monthInsightNotReady: string;
4312
4302
  monthInsightsCanBeSentFromDashboard: string;
4313
4303
  monthInsightsCanBeEditedFromDashboard: string;
@@ -8462,117 +8452,8 @@ export declare const zeniStrings: {
8462
8452
  };
8463
8453
  tabs: {
8464
8454
  schedules: string;
8465
- actualMatching: string;
8466
8455
  existingSchedules: string;
8467
8456
  };
8468
- actualMatching: {
8469
- matchNew: string;
8470
- undoReversal: string;
8471
- continueMatch: string;
8472
- openBill: string;
8473
- openCharge: string;
8474
- openTransaction: string;
8475
- kpi: {
8476
- actualsReceived: string;
8477
- ofExpected: string;
8478
- vendorsStillPending: string;
8479
- vendorStillPending: string;
8480
- autoReversed: string;
8481
- cleared: string;
8482
- pendingReview: string;
8483
- estMinutesToClear: string;
8484
- variance: string;
8485
- varianceFooter: string;
8486
- };
8487
- groups: {
8488
- reversed: string;
8489
- };
8490
- groupSubtitles: {
8491
- reversed: string;
8492
- pendingReview: string;
8493
- };
8494
- columns: {
8495
- received: string;
8496
- vendor: string;
8497
- type: string;
8498
- service: string;
8499
- reverses: string;
8500
- matchTier: string;
8501
- reversedBy: string;
8502
- accrued: string;
8503
- actual: string;
8504
- variance: string;
8505
- };
8506
- reversedBy: {
8507
- aiAccountant: string;
8508
- humanUser: string;
8509
- };
8510
- matchTier: {
8511
- exact: string;
8512
- fuzzy: string;
8513
- aiAccountant: string;
8514
- manual: string;
8515
- };
8516
- reversesCount: string;
8517
- groupedOpenAccrual: string;
8518
- groupedMenuAria: string;
8519
- lifecycle: {
8520
- pendingReview: string;
8521
- autoReversed: string;
8522
- };
8523
- emptyState: {
8524
- title: string;
8525
- subTitle: string;
8526
- };
8527
- matchModal: {
8528
- title: string;
8529
- subtitle: string;
8530
- leftTitle: string;
8531
- rightTitle: string;
8532
- selectedLabel: string;
8533
- leftSearchPlaceholder: string;
8534
- rightSearchPlaceholder: string;
8535
- emptyLeft: string;
8536
- emptyRight: string;
8537
- confirm: string;
8538
- maxAccruals: string;
8539
- conflict: string;
8540
- vendorLock: string;
8541
- selectLineHint: string;
8542
- previewEmpty: string;
8543
- accrualJeTitle: string;
8544
- reversalJeTitle: string;
8545
- reversalJeNote: string;
8546
- transactionMatchedTitle: string;
8547
- columnDate: string;
8548
- columnAccount: string;
8549
- columnDebit: string;
8550
- columnCredit: string;
8551
- lastDayOfMonth: string;
8552
- reversesLabel: string;
8553
- vsAccrued: string;
8554
- accruedExpensesFallback: string;
8555
- };
8556
- matchDetail: {
8557
- service: string;
8558
- accrued: string;
8559
- actual: string;
8560
- variance: string;
8561
- accrualJes: string;
8562
- leftovers: string;
8563
- reversalFailed: string;
8564
- undoFailed: string;
8565
- loadErrorTitle: string;
8566
- loadErrorSubTitle: string;
8567
- reversalJe: string;
8568
- matchedBill: string;
8569
- matchedCharge: string;
8570
- matchedTransaction: string;
8571
- statusAutoReversed: string;
8572
- statusPendingReview: string;
8573
- statusManuallyReversed: string;
8574
- };
8575
- };
8576
8457
  newSchedule: {
8577
8458
  title: string;
8578
8459
  oneTimeAccrualTitle: string;
@@ -8939,6 +8820,8 @@ export declare const zeniStrings: {
8939
8820
  statementProcessingFailed: string;
8940
8821
  failed: string;
8941
8822
  isInProgress: string;
8823
+ booksClosed: string;
8824
+ reopenToReconcile: string;
8942
8825
  booksClosedTooltip: string;
8943
8826
  };
8944
8827
  tooltips: {
@@ -9647,7 +9530,7 @@ export declare const zeniStrings: {
9647
9530
  needHelpBodySuffix: string;
9648
9531
  };
9649
9532
  invoicingOverview: {
9650
- revenueMetricOverTime: string;
9533
+ revenueMrrOverTime: string;
9651
9534
  mrrMovement: string;
9652
9535
  mrrMovementNewSubscriptions: string;
9653
9536
  mrrMovementExpansions: string;
@@ -9985,8 +9868,6 @@ export declare const zeniStrings: {
9985
9868
  periodPlaceholder: string;
9986
9869
  periodUnitLabel: string;
9987
9870
  maxRedemptionsPlaceholder: string;
9988
- discountsAccountLabel: string;
9989
- discountsAccountPlaceholder: string;
9990
9871
  };
9991
9872
  invoicingCreateInvoice: {
9992
9873
  selectPaymentTerm: string;
@@ -10278,7 +10159,6 @@ export declare const zeniStrings: {
10278
10159
  diagnosticsRetainedUntil: string;
10279
10160
  };
10280
10161
  invoicingDiscountDetail: {
10281
- discountsAccountLabel: string;
10282
10162
  month: string;
10283
10163
  limitedSinglePeriod: string;
10284
10164
  limitedMultiPeriodPrefix: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/web-components",
3
- "version": "4.3.83",
3
+ "version": "4.3.84",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -47,8 +47,8 @@
47
47
  "@statsig/react-bindings": "^3.14.0",
48
48
  "@stripe/react-stripe-js": "^2.7.3",
49
49
  "@stripe/stripe-js": "^4.4.0",
50
- "@zeniai/client-analytics": "2.0.92",
51
- "@zeniai/client-epic-state": "5.2.50",
50
+ "@zeniai/client-analytics": "2.0.90",
51
+ "@zeniai/client-epic-state": "5.2.40",
52
52
  "autosuggest-highlight": "^3.2.1",
53
53
  "browser-image-compression": "^2.0.2",
54
54
  "countries-list": "^2.6.1",
@@ -154,7 +154,7 @@
154
154
  "vite-plugin-dts": "^4.5.4",
155
155
  "vite-plugin-static-copy": "^3.1.4",
156
156
  "vite-plugin-svgr": "^4.5.0",
157
- "vitest": "^4.1.11"
157
+ "vitest": "^4.0.18"
158
158
  },
159
159
  "peerDependencies": {
160
160
  "@babel/runtime": "^7.13.17",
@@ -166,8 +166,8 @@
166
166
  "@types/color": "^3.0.2",
167
167
  "@types/react-select": "^4.0.18",
168
168
  "@types/react-window": "^1.8.8",
169
- "@zeniai/client-analytics": "2.0.92",
170
- "@zeniai/client-epic-state": "5.2.50",
169
+ "@zeniai/client-analytics": "2.0.90",
170
+ "@zeniai/client-epic-state": "5.2.40",
171
171
  "color": "^3.1.3",
172
172
  "react": "18.3.1",
173
173
  "react-dom": "18.3.1",
@@ -1,9 +0,0 @@
1
- import { Amount, MonthYearPeriod } from '@zeniai/client-epic-state';
2
- import { ActualMatchingKpiSummary } from './actualMatchingTypes';
3
- export interface ActualMatchingKpiStripProps {
4
- displayCurrency: Amount;
5
- kpiSummary: ActualMatchingKpiSummary;
6
- selectedPeriod: MonthYearPeriod;
7
- }
8
- declare function ActualMatchingKpiStrip({ displayCurrency, kpiSummary, selectedPeriod, }: Readonly<ActualMatchingKpiStripProps>): import("react/jsx-runtime").JSX.Element;
9
- export default ActualMatchingKpiStrip;
@@ -1,13 +0,0 @@
1
- import { SortOrder } from '@zeniai/client-epic-state';
2
- import { ActualMatchingRow, ActualMatchingSortKey, ActualMatchingViewUIState } from './actualMatchingTypes';
3
- export interface ActualMatchingListProps {
4
- pendingReview: ActualMatchingRow[];
5
- reversed: ActualMatchingRow[];
6
- sortKey?: ActualMatchingSortKey;
7
- sortOrder?: SortOrder;
8
- onOpenMatch: (matchId: string) => void;
9
- onOpenMatchNewModal?: (matchId: string) => void;
10
- onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
11
- }
12
- declare function ActualMatchingList({ pendingReview, reversed, onOpenMatch, onOpenMatchNewModal, onUpdateActualMatchingUIState, sortKey, sortOrder, }: Readonly<ActualMatchingListProps>): import("react/jsx-runtime").JSX.Element;
13
- export default ActualMatchingList;
@@ -1,11 +0,0 @@
1
- import { ActualMatchingColumnKey } from './actualMatchingListConfig';
2
- import { ActualMatchingRow } from './actualMatchingTypes';
3
- export interface ActualMatchingListRowProps {
4
- columns: ActualMatchingColumnKey[];
5
- gridTemplateColumns: string;
6
- row: ActualMatchingRow;
7
- onOpenMatch: (matchId: string) => void;
8
- onOpenMatchNewModal?: (matchId: string) => void;
9
- }
10
- declare function ActualMatchingListRow({ columns, gridTemplateColumns, row, onOpenMatch, onOpenMatchNewModal, }: Readonly<ActualMatchingListRowProps>): import("react/jsx-runtime").JSX.Element;
11
- export default ActualMatchingListRow;
@@ -1,21 +0,0 @@
1
- import { FetchState, MatchAndReverseResult, UndoReversalResult } from '@zeniai/client-epic-state';
2
- import { ActualMatchingMatch } from './actualMatchingTypes';
3
- export interface ActualMatchingMatchDetailPageProps {
4
- detailFetchState: FetchState;
5
- refreshStatus: FetchState;
6
- isRenderedInPanel?: boolean;
7
- isUndoInFlight?: boolean;
8
- lastMatchResults?: MatchAndReverseResult[];
9
- lastUndoResults?: UndoReversalResult[];
10
- match?: ActualMatchingMatch;
11
- onNavigateBack: () => void;
12
- onRefresh: () => void;
13
- onContinueMatch?: () => void;
14
- onOpenBill?: (txn: {
15
- id: string;
16
- type: string;
17
- }) => void;
18
- onUndoReversal?: (accrualIds: string[]) => void;
19
- }
20
- declare function ActualMatchingMatchDetailPage({ detailFetchState, isRenderedInPanel, isUndoInFlight, match, onNavigateBack, onRefresh, onOpenBill, onContinueMatch, onUndoReversal, lastMatchResults, lastUndoResults, refreshStatus, }: Readonly<ActualMatchingMatchDetailPageProps>): import("react/jsx-runtime").JSX.Element;
21
- export default ActualMatchingMatchDetailPage;
@@ -1,5 +0,0 @@
1
- export interface ActualMatchingMatchNewButtonProps {
2
- onClick: () => void;
3
- }
4
- declare function ActualMatchingMatchNewButton({ onClick, }: Readonly<ActualMatchingMatchNewButtonProps>): import("react/jsx-runtime").JSX.Element;
5
- export default ActualMatchingMatchNewButton;
@@ -1,22 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { MonthYearPeriod } from '@zeniai/client-epic-state';
3
- import { ActualMatchingActionProps, ExpenseAutomationActualMatchingViewSelector } from './actualMatchingTypes';
4
- export interface ActualMatchingPageProps extends ActualMatchingActionProps {
5
- actualMatching: ExpenseAutomationActualMatchingViewSelector;
6
- selectedPeriod: MonthYearPeriod;
7
- /**
8
- * Match quick view, named apart from the page-level `panelContent` that drives
9
- * transaction and reconciliation. This section renders the split so the KPI
10
- * strip stays full-width above it.
11
- *
12
- * There is no full-view flag: expanding leaves for the match's own page.
13
- */
14
- isMatchPanelOpen?: boolean;
15
- matchPanelContent?: ReactNode;
16
- }
17
- export declare function ActualMatchingPageKpis({ actualMatching, selectedPeriod, }: Readonly<{
18
- actualMatching: ExpenseAutomationActualMatchingViewSelector;
19
- selectedPeriod: MonthYearPeriod;
20
- }>): import("react/jsx-runtime").JSX.Element;
21
- declare function ActualMatchingPage({ actualMatching, isMatchPanelOpen, matchPanelContent, onClearMatchNewModal, onCloseMatchNewModal, onMatchAndReverse, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUpdateActualMatchingUIState, selectedPeriod, }: Readonly<ActualMatchingPageProps>): import("react/jsx-runtime").JSX.Element;
22
- export default ActualMatchingPage;
@@ -1,3 +0,0 @@
1
- export declare function ActualMatchingKpiStripSkeleton(): import("react/jsx-runtime").JSX.Element;
2
- declare function ActualMatchingPageSkeleton(): import("react/jsx-runtime").JSX.Element;
3
- export default ActualMatchingPageSkeleton;
@@ -1,12 +0,0 @@
1
- import { ActualMatchingMatchModalView, MatchAndReverseAccrualsParams, MatchNewFormData } from './actualMatchingTypes';
2
- export interface MatchNewModalProps {
3
- matchModal: ActualMatchingMatchModalView;
4
- initialFormValues?: Partial<MatchNewFormData>;
5
- onClearMatchNewModal: () => void;
6
- onCloseMatchNewModal: () => void;
7
- onMatchAndReverse: (params: MatchAndReverseAccrualsParams) => void;
8
- onSearchMatchAccruals: (query: string, pageToken?: string) => void;
9
- onSearchMatchTransactions: (query: string, pageToken?: string) => void;
10
- }
11
- declare function MatchNewModal({ initialFormValues, matchModal, onClearMatchNewModal, onCloseMatchNewModal, onMatchAndReverse, onSearchMatchAccruals, onSearchMatchTransactions, }: Readonly<MatchNewModalProps>): import("react/jsx-runtime").JSX.Element;
12
- export default MatchNewModal;
@@ -1,8 +0,0 @@
1
- import { JEOneTimeAccrual } from '@zeniai/client-epic-state';
2
- import { ActualMatchingTransactionSearchResult } from './actualMatchingTypes';
3
- export interface MatchNewPreviewProps {
4
- selectedAccruals: JEOneTimeAccrual[];
5
- selectedTransactions: ActualMatchingTransactionSearchResult[];
6
- }
7
- declare function MatchNewPreview({ selectedAccruals, selectedTransactions, }: Readonly<MatchNewPreviewProps>): import("react/jsx-runtime").JSX.Element;
8
- export default MatchNewPreview;
@@ -1,5 +0,0 @@
1
- export interface ReversesGroupedPillProps {
2
- label: string;
3
- }
4
- declare function ReversesGroupedPill({ label }: Readonly<ReversesGroupedPillProps>): import("react/jsx-runtime").JSX.Element;
5
- export default ReversesGroupedPill;
@@ -1,76 +0,0 @@
1
- import { Amount, ExpenseAutomationViewSelector, MonthYearPeriod, SortOrder } from '@zeniai/client-epic-state';
2
- import { StyledCapsuleThemeType } from '../../../common/StyledCapsule';
3
- import { ActualMatchingColumnKey } from './actualMatchingListConfig';
4
- import { ActualMatchingGroupedAccrual, ActualMatchingKpiSummary, ActualMatchingMatch, ActualMatchingRow, ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingViewSelector } from './actualMatchingTypes';
5
- export declare const EMPTY_ACTUAL_MATCHING_KPI_SUMMARY: ActualMatchingKpiSummary;
6
- export declare const EMPTY_ACTUAL_MATCHING_VIEW: ExpenseAutomationActualMatchingViewSelector;
7
- export declare function getActualMatchingFromSelector(selector: ExpenseAutomationViewSelector): ExpenseAutomationActualMatchingViewSelector;
8
- export declare function getAccruedAmount(row: ActualMatchingRow): number;
9
- export declare function getActualAmount(row: ActualMatchingRow): number | undefined;
10
- export declare function getActualMatchingAmount(row: ActualMatchingRow): number;
11
- export declare function getVariancePercent(row: ActualMatchingRow): number | undefined;
12
- export declare function formatVariancePercent(percent: number): string;
13
- export declare function getVarianceCapsuleType(percent: number): StyledCapsuleThemeType;
14
- export declare function getMatchTierKey(row: ActualMatchingRow): string | undefined;
15
- export declare function getMatchTierLabel(row: ActualMatchingRow): string;
16
- export declare function getMatchTierCapsuleType(row: ActualMatchingRow): StyledCapsuleThemeType;
17
- export declare function getActualMatchingTypeLabel(row: ActualMatchingRow): string;
18
- export declare function getActualMatchingTypeCapsuleType(row: ActualMatchingRow): StyledCapsuleThemeType;
19
- export declare function formatActualMatchingServiceMonth(serviceMonth: string): string;
20
- export declare function formatActualMatchingServiceMonths(months: readonly string[]): string;
21
- export declare function getActualMatchingServiceMonths(row: ActualMatchingRow): string[];
22
- export declare function getActualMatchingServiceLabel(row: ActualMatchingRow): string;
23
- export declare function getReceivedLabel(row: ActualMatchingRow): string;
24
- export declare function getReversesGroupedCount(row: ActualMatchingRow): number;
25
- export declare function isGroupedActualMatchingRow(row: ActualMatchingRow): boolean;
26
- export declare function isGroupedAccrualMenuInteractive(_row: ActualMatchingRow): boolean;
27
- export declare function getGroupedAccrualMenuItems(row: ActualMatchingRow): ActualMatchingGroupedAccrual[];
28
- export declare function getReversesLabel(row: ActualMatchingRow): string;
29
- export declare function getReversesTooltip(row: ActualMatchingRow): string;
30
- export declare function isSameMatchVendor(transaction: {
31
- vendorName: string;
32
- vendorId?: string;
33
- }, accrual: {
34
- vendorName: string;
35
- vendorId?: string;
36
- }): boolean;
37
- export declare function getAccruedDisplayAmount(row: ActualMatchingRow): Amount;
38
- export declare function getActualDisplayAmount(row: ActualMatchingRow): Amount | undefined;
39
- export declare function sumRowDisplayAmount(rows: ActualMatchingRow[]): Amount;
40
- export declare function getActualMatchingDisplayCurrency(rows: ActualMatchingRow[]): Amount;
41
- export declare function formatKpiAmount(amount: number, currency: Amount): string;
42
- export declare function formatActualMatchingKpiMonth(period: MonthYearPeriod): string;
43
- export declare function formatGroupAmountSubtitle(template: string, amount: Amount): string;
44
- export declare function isAiCreatedAccrual(row: ActualMatchingRow): boolean;
45
- export declare function isHumanReversedRow(row: ActualMatchingRow): boolean;
46
- export declare function isAiReversedBy(row: ActualMatchingRow): boolean;
47
- export declare function getReversedByLabel(row: ActualMatchingRow): string;
48
- export declare function getColumnKeyForActualMatchingSortKey(sortKey: ActualMatchingSortKey): ActualMatchingColumnKey;
49
- export declare function getActualMatchingColumnSortValue(row: ActualMatchingRow, columnKey: ActualMatchingColumnKey): string | number | null;
50
- export declare function sortActualMatchingRowsByColumn(rows: ActualMatchingRow[], columnKey: ActualMatchingColumnKey, sortOrder: SortOrder): ActualMatchingRow[];
51
- export declare function getUndoReversalAccrualIds(row: Pick<ActualMatchingRow, "accrualId" | "groupedMembers">): string[];
52
- export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType">): {
53
- id: string;
54
- type: string;
55
- } | null;
56
- export declare function getUndoReversalAccrualIdsFromMatch(match: Pick<ActualMatchingMatch, "members">): string[];
57
- export declare function getLeftoverWarningTooltip(row: ActualMatchingRow): string;
58
- export declare function pruneSelectionToVisibleResults(currentKeys: string[], visibleKeys: ReadonlySet<string>, searchFetchState: string): string[];
59
- export declare function nextSelectedTransactionLines(currentKeys: string[], clickedKey: string, results: ActualMatchingTransactionSearchResult[]): string[];
60
- export declare function pickPrefillTransactionLines(results: ActualMatchingTransactionSearchResult[], prefill?: {
61
- actualAmount?: number;
62
- consumedLineIds?: string[];
63
- matchedLineId?: string;
64
- matchedTransactionId?: string;
65
- }): string[];
66
- export declare function pickPrefillTransactionLine(results: ActualMatchingTransactionSearchResult[], prefill?: {
67
- actualAmount?: number;
68
- matchedLineId?: string;
69
- matchedTransactionId?: string;
70
- }): string | null;
71
- export declare function shouldPromptSelectMatchLine({ isTxnSearchComplete, lineCount, openedFromMatchId, selectedLineKey, }: {
72
- isTxnSearchComplete: boolean;
73
- lineCount: number;
74
- selectedLineKey: string | null;
75
- openedFromMatchId?: string;
76
- }): boolean;
@@ -1,12 +0,0 @@
1
- import { ActualMatchingSortKey } from './actualMatchingTypes';
2
- export type ActualMatchingColumnKey = "received" | "vendor" | "type" | "reversedBy" | "service" | "reverses" | "matchTier" | "accrued" | "actual" | "variance";
3
- export interface ActualMatchingHeaderItem {
4
- key: ActualMatchingColumnKey;
5
- sortable: boolean;
6
- value: string;
7
- width: number;
8
- sortKey?: ActualMatchingSortKey;
9
- }
10
- export declare function isActualMatchingNumericColumn(key: ActualMatchingColumnKey): boolean;
11
- export declare function getActualMatchingColumns(isQuickViewMode?: boolean): ActualMatchingHeaderItem[];
12
- export declare function buildActualMatchingGridTemplate(columns: ActualMatchingHeaderItem[]): string;
@@ -1,18 +0,0 @@
1
- import { FetchState, JEOneTimeAccrual } from '@zeniai/client-epic-state';
2
- import { ActualMatchingMatch, ActualMatchingRowKind } from './actualMatchingTypes';
3
- export declare function getMatchServiceMonthsLabel(members: readonly JEOneTimeAccrual[]): string;
4
- export declare function getMatchSubtitle(match: ActualMatchingMatch): string;
5
- export declare function getMatchStatusLabel(kind: ActualMatchingRowKind, labels: {
6
- statusAutoReversed: string;
7
- statusManuallyReversed: string;
8
- statusPendingReview: string;
9
- }): string;
10
- export declare function getMatchVariancePercent(match: ActualMatchingMatch): number | null;
11
- export declare function formatMatchVarianceLabel(match: ActualMatchingMatch): string | null;
12
- export declare function isMatchRefreshSpinning(match: ActualMatchingMatch | undefined, detailFetchState: FetchState, refreshStatus: FetchState): boolean;
13
- export declare function getOpenMatchedTransactionLabel(transactionType: string, labels: {
14
- openTransaction: string;
15
- }): string;
16
- export declare function getMatchedTransactionSectionTitle(transactionType: string, titles: {
17
- matchedTransaction: string;
18
- }): string;
@@ -1,43 +0,0 @@
1
- import { ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingRow, ActualMatchingRowKind, ExpenseAutomationActualMatchingSortKey as ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingViewUIState as ActualMatchingViewUIState, Amount, ExpenseAutomationActualMatchingViewSelector, ID, JEOneTimeAccrual, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus } from '@zeniai/client-epic-state';
2
- export type { ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingRow, ActualMatchingRowKind, ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ActualMatchingViewUIState, ExpenseAutomationActualMatchingViewSelector, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, };
3
- /**
4
- * WC-only Actual Matching types (page tab, list row extras, form, handlers).
5
- * CES owns the view selector, row, KPI, and match-modal shapes — re-exported
6
- * above so stories/mocks stay assignable to `ExpenseAutomationViewSelector`.
7
- */
8
- export declare const ACTUAL_MATCHING_PAGE_TAB: "actual_matching";
9
- export type ActualMatchingPageTab = typeof ACTUAL_MATCHING_PAGE_TAB;
10
- export type ActualMatchingGroupedAccrual = NonNullable<ActualMatchingRow["groupedMembers"]>[number];
11
- export interface ActualMatchingMatch {
12
- accruedAmount: Amount;
13
- actualAmount: Amount;
14
- kind: ActualMatchingRowKind;
15
- matchId: string;
16
- members: JEOneTimeAccrual[];
17
- transactionIntegrationId: ID;
18
- transactionType: string;
19
- leftovers?: JEOneTimeAccrual[];
20
- matchShape?: string;
21
- matchTier?: string;
22
- transactionDate?: string;
23
- vendorId?: ID;
24
- vendorName?: string;
25
- }
26
- export interface ActualMatchingActionProps {
27
- onClearMatchNewModal: () => void;
28
- onCloseMatchNewModal: () => void;
29
- onMatchAndReverse: (params: MatchAndReverseAccrualsParams) => void;
30
- onOpenMatch: (matchId: string) => void;
31
- onOpenMatchNewModal: (matchId?: string) => void;
32
- onSearchMatchAccruals: (query: string, pageToken?: string) => void;
33
- onSearchMatchTransactions: (query: string, pageToken?: string) => void;
34
- onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
35
- }
36
- export declare const MATCH_NEW_FORM = "expenseAutomationMatchNew";
37
- export type MatchNewFormData = {
38
- selectedAccrualIds: string[];
39
- selectedTransactionLines: string[];
40
- };
41
- export declare const MATCH_ACCRUAL_SELECTION_CAP = 50;
42
- export declare function getTransactionLineKey(transactionId: string, lineId: string): string;
43
- export declare function isActualMatchingPageTab(tab: string | undefined): tab is ActualMatchingPageTab;
@@ -1,12 +0,0 @@
1
- import { JEOneTimeAccrual, ZeniDate } from '@zeniai/client-epic-state';
2
- import { ActualMatchingTransactionSearchResult } from './actualMatchingTypes';
3
- export declare function formatServiceMonthLabel(serviceMonth: string): string;
4
- export declare function formatAccrualJeDate(serviceMonth: string, lastDayLabel: string): string;
5
- export declare function formatJeShortDate(dateValue: string): string;
6
- export declare function formatReversalJeDate(reversalPostingDate?: ZeniDate): string;
7
- export declare function sumAccruedAmount(accruals: readonly JEOneTimeAccrual[]): number;
8
- export declare function variancePercent(transactionAmount: number, accruedAmount: number): number | null;
9
- export declare function uniqueServiceMonthLabel(accruals: readonly JEOneTimeAccrual[]): string | null;
10
- export declare function transactionMatchLabel(transaction: ActualMatchingTransactionSearchResult, accruals: readonly JEOneTimeAccrual[]): string;
11
- export declare function creditAccountName(accrual: JEOneTimeAccrual, fallback: string): string;
12
- export declare function debitAccountName(accrual: JEOneTimeAccrual, fallback: string): string;
@@ -1,10 +0,0 @@
1
- import { FetchState } from '@zeniai/client-epic-state';
2
- import { ActualMatchingMatch } from '../actualMatchingTypes';
3
- export interface ActualMatchingTabQuickViewProps {
4
- detailFetchState?: FetchState;
5
- initiallyOpen?: boolean;
6
- match?: ActualMatchingMatch;
7
- refreshStatus?: FetchState;
8
- onOpenChange?: (isOpen: boolean) => void;
9
- }
10
- export declare function ActualMatchingTabQuickView({ detailFetchState, initiallyOpen, match: initialMatch, refreshStatus, onOpenChange, }: Readonly<ActualMatchingTabQuickViewProps>): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import { ActualMatchingActionProps } from '../sections/actualMatching/actualMatchingTypes';
2
- export declare const actualMatchingPageStoryActions: ActualMatchingActionProps;
@@ -1,14 +0,0 @@
1
- import { NestedAccountHierarchyForReport } from '@zeniai/client-epic-state';
2
- import { GroupedOption } from '../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField';
3
- /**
4
- * Accounts as the grouped picker renders them. `getGroupedAccountOptions` falls
5
- * back to the internal id when a node carries no `qboId`; the invoicing forms
6
- * submit the QuickBooks id, so an account without one is dropped rather than
7
- * offered as a value the invoicing API would reject.
8
- *
9
- * `allowedAccountIds`, when given, narrows the result to the QuickBooks ids a
10
- * slot accepts — an income-only picker, say. Filtering the options rather than
11
- * the tree keeps a parent that is not itself eligible, because dropping it
12
- * would take its eligible children with it.
13
- */
14
- export declare const toGroupedQboAccountOptions: (hierarchy?: NestedAccountHierarchyForReport[], allowedAccountIds?: readonly string[]) => GroupedOption[];
@@ -1,41 +0,0 @@
1
- import { ID, ScheduleStatusCodeType } from '@zeniai/client-epic-state';
2
- import { PrimaryBtnProps } from '../../../common/Footer';
3
- import { JEAccrualFeedbackReason } from '../../../expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog';
4
- export type ScheduleDecisionType = "ignore" | "revert";
5
- export interface ScheduleDecisionSubject {
6
- jeScheduleId?: ID;
7
- postedCount?: number;
8
- status?: ScheduleStatusCodeType;
9
- }
10
- /**
11
- * Which decision a schedule in this state offers. Shared by the detail pages and the list's Action
12
- * column so the two cannot drift: a recommendation is ignored, a schedule that exists is reverted,
13
- * and a schedule too far along to revert offers nothing.
14
- *
15
- * The detail page needs this because the list stops offering it. Beside an open quick view the
16
- * list compresses to Vendor and Amount, so the Action column is gone and the panel is the only
17
- * place left to make the decision from.
18
- */
19
- export declare function resolveScheduleDecision({ jeScheduleId, postedCount, status, }: ScheduleDecisionSubject): ScheduleDecisionType | undefined;
20
- interface ScheduleDecisionActionProps {
21
- decision: ScheduleDecisionType;
22
- isSubmitting: boolean;
23
- /** The form the primary button submits. Only meaningful alongside `primaryBtn`. */
24
- formId?: string;
25
- /**
26
- * The page's own submit button, when the form has something to submit. Given one, the decision
27
- * takes the secondary slot beside it -- two buttons, no Cancel, matching the one-time accrual
28
- * page. Absent, the decision is the only thing in the footer.
29
- */
30
- primaryBtn?: PrimaryBtnProps;
31
- onSubmit: (reason: JEAccrualFeedbackReason, note?: string) => void;
32
- }
33
- /**
34
- * The Ignore / Revert decision on a schedule detail page, with the reason dialog it goes through.
35
- *
36
- * Shared by all three schedule detail pages rather than written into each: the decision, the copy,
37
- * the reason set and the dialog are identical, and only the ids the host sends differ -- which is
38
- * why `onSubmit` carries only the reason and leaves the keys to the caller.
39
- */
40
- export default function ScheduleDecisionAction({ decision, formId, isSubmitting, primaryBtn, onSubmit, }: Readonly<ScheduleDecisionActionProps>): import("react/jsx-runtime").JSX.Element;
41
- export {};