@zeniai/web-components 4.1.53 → 4.1.55
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-C3zi1za_.cjs → SessionTimeoutPopup-B87qeaPV.cjs} +15351 -14953
- package/dist/{SessionTimeoutPopup-BK9wix5_.js → SessionTimeoutPopup-BnwXqvlZ.js} +67966 -66346
- package/dist/appLocale.d.ts +25 -0
- package/dist/cockpit.cjs.js +1 -1
- package/dist/cockpit.esm.js +4 -4
- package/dist/components/formElements/common/common.d.ts +1 -0
- package/dist/components/formElements/labeledFormattedText/LabeledFormattedTextField.d.ts +7 -2
- package/dist/components/formElements/labeledText/LabeledTextField.d.ts +7 -1
- package/dist/components/transactionDetail/items/journalEntryTable/FlexibleWidthContext.d.ts +2 -0
- package/dist/components/transactionDetail/items/journalEntryTable/TransactionLinesJournalEntryEmptyTable.d.ts +17 -0
- package/dist/components/transactionDetail/items/journalEntryTable/TransactionLinesJournalEntryTable.d.ts +2 -0
- package/dist/components/transactionDetail/items/journalEntryTable/common.d.ts +23 -0
- package/dist/components/transactionDetail/items/journalEntryTable/header/JournalEntryTableHeader.d.ts +11 -0
- package/dist/components/transactionDetail/items/journalEntryTable/header/journalEntryHeaderConfig.d.ts +28 -0
- package/dist/components/transactionDetail/items/journalEntryTable/header/journalEntryHeaderItemsData.d.ts +16 -0
- package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableStyles.d.ts +119 -0
- package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableTypes.d.ts +79 -0
- package/dist/components/transactionDetail/items/journalEntryTable/listRow/JournalEntryTableListRow.d.ts +40 -0
- package/dist/components/transactionDetail/items/journalEntryTable/totals/JournalEntryTotalsRow.d.ts +21 -0
- package/dist/components/transactionDetail/items/transactionLineTable/FlexibleWidthContext.d.ts +6 -0
- package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesEmptyTable.d.ts +11 -0
- package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesTable.d.ts +17 -0
- package/dist/components/transactionDetail/items/transactionLineTable/common.d.ts +32 -0
- package/dist/components/transactionDetail/items/transactionLineTable/header/TransactionLineTableHeader.d.ts +12 -0
- package/dist/components/transactionDetail/items/transactionLineTable/header/transactionLineHeaderConfig.d.ts +40 -0
- package/dist/components/transactionDetail/items/transactionLineTable/header/transactionLineHeaderItemsData.d.ts +19 -0
- package/dist/components/transactionDetail/items/transactionLineTable/listRow/TransactionLineTableListRow.d.ts +40 -0
- package/dist/components/transactionDetail/items/transactionLineTable/sortTransactionLines.d.ts +19 -0
- package/dist/components/transactionDetail/items/transactionLineTable/transactionLineTableStyles.d.ts +103 -0
- package/dist/components/transactionDetail/items/transactionLineTable/transactionLineTableTypes.d.ts +80 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +20 -20
- package/dist/strings/strings.d.ts +25 -0
- package/dist/testSetup.d.ts +0 -0
- package/dist/{vendor-.pnpm-C7TxM7W7.cjs → vendor-.pnpm-DuJMYp1y.cjs} +88 -88
- package/dist/{vendor-.pnpm-CSfLHWdE.js → vendor-.pnpm-XFVTbpbG.js} +5506 -5457
- package/package.json +3 -3
package/dist/appLocale.d.ts
CHANGED
|
@@ -2617,6 +2617,31 @@ declare class AppLocale {
|
|
|
2617
2617
|
allTypes: string;
|
|
2618
2618
|
allCustom: string;
|
|
2619
2619
|
recommendedCustom: string;
|
|
2620
|
+
journalEntryTable: {
|
|
2621
|
+
descriptionHeader: string;
|
|
2622
|
+
nameHeader: string;
|
|
2623
|
+
categoryHeader: string;
|
|
2624
|
+
classHeader: string;
|
|
2625
|
+
projectHeader: string;
|
|
2626
|
+
debitHeader: string;
|
|
2627
|
+
creditHeader: string;
|
|
2628
|
+
amountHeader: string;
|
|
2629
|
+
descriptionPlaceholder: string;
|
|
2630
|
+
debitPrefix: string;
|
|
2631
|
+
creditPrefix: string;
|
|
2632
|
+
emptyDash: string;
|
|
2633
|
+
emptyMessage: string;
|
|
2634
|
+
totalLabel: string;
|
|
2635
|
+
};
|
|
2636
|
+
transactionLineTable: {
|
|
2637
|
+
descriptionHeader: string;
|
|
2638
|
+
categoryHeader: string;
|
|
2639
|
+
classHeader: string;
|
|
2640
|
+
projectHeader: string;
|
|
2641
|
+
amountHeader: string;
|
|
2642
|
+
descriptionPlaceholder: string;
|
|
2643
|
+
emptyMessage: string;
|
|
2644
|
+
};
|
|
2620
2645
|
};
|
|
2621
2646
|
payeeDetails: {
|
|
2622
2647
|
allPayees: string;
|
package/dist/cockpit.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./SessionTimeoutPopup-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./SessionTimeoutPopup-B87qeaPV.cjs"),o=require("./vendor-.pnpm-DuJMYp1y.cjs"),u=require("react"),s=require("@emotion/styled"),Xe=require("@liveblocks/react"),J=require("@zeniai/client-epic-state"),Es=require("@liveblocks/react-ui"),we=require("@emotion/react"),Lo=require("react-dom"),St=require("@liveblocks/react-ui/primitives"),xi=require("@liveblocks/react/suspense");function Ea(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}const le=Ea(u),wa=({inboxNotification:e,onNotificationClick:n})=>{const r=Xe.useInboxNotificationThread(e.id),i=r.metadata.entityType.split("."),a=r.metadata.isGlobalComment&&i.length===2;return o.jsxRuntimeExports.jsx(va,{isClickable:a,isUnRead:e.readAt==null,onClick:()=>{n(r.metadata,r.id)},children:o.jsxRuntimeExports.jsx(Es.InboxNotification,{inboxNotification:e,kinds:{thread:d=>o.jsxRuntimeExports.jsx(Es.InboxNotification.Thread,{...d,showRoomName:!0})}})})},va=s.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
width: 100%;
|
|
4
4
|
cursor: ${e=>e.isClickable?"pointer":"initial"};
|
package/dist/cockpit.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { dE as o, gB as Ne, i as $t, fD as O, eb as It, bv as Qr, X as We, eg as Qd, fO as Jd, fY as Xd, al as I, fQ as U, dn as qd, h2 as ge, gP as lo, eL as lt, an as Ft, cd as Bs, v as wo, eD as ps, c8 as So, ed as us, es as ep, dQ as Jt, dN as De, fX as Fl, ez as Co, dp as Fs, c3 as Be, gJ as tp, aT as op, bd as Wt, aQ as np, e9 as Wl, g4 as rp, b1 as hs, J as ms, gf as ip, gg as sp, gh as ap, am as lp, co as cp, c1 as xt, ef as _l, cy as dp, d$ as Jr, ex as gs, gz as M, di as pp, bo as up, dv as be, e5 as hp, d8 as z, cz as Fe, gC as pt, dX as xs, br as Nr, dw as mp, e6 as ys, be as Xr, gn as Pe, bw as qr, e7 as Vl, ep as Ul, ek as Xn, fL as zt, eN as dt, dJ as gn, c5 as gp, c7 as Hl, ea as Kl, fZ as Pt, fB as qe, f6 as Mr, fx as xp, eJ as xn, eK as yn, l as fn, dU as Fo, c2 as ei, ee as fs, c6 as yp, eh as Gl, e8 as co, ec as Wo, a$ as Qt, fw as Ws, gc as fp, g2 as bp, g7 as $p, ej as Cp, eC as wp, eB as qn, dK as Sp, dL as bs, f_ as vp, ei as Yl, eo as Zl, en as Ql, ba as Jl, gv as jp, bX as _s, bY as $s, bS as kp, bW as Tp, bs as er, bb as bn, em as Cs, ap as Lp, ds as ti, fT as bt, dB as Xl, bV as zr, b$ as Pp, b9 as ws, bP as Ip, d9 as pn, e4 as Ap, e3 as Op, e0 as Dp, bQ as oi, dq as Vs, bT as ql, gV as Br, cA as ec, dZ as tc, fP as Ss, bR as Ep, aw as un, au as Zn, av as Qn, h3 as oc, aV as Rp, gR as Np, bf as Yt, ax as Lt, ew as vs, er as nc, dR as Mp, cb as rc, et as zp, dP as Bp, ay as Ut, gm as sr, bj as Fp, b_ as Ht, aI as ic, K as cn, cK as sc, cL as Fr, cJ as ac, by as Wp, ce as _p, dW as Vp, bz as Wr, bB as Xi, cO as Us, cM as Up, cN as Hp, bA as li, bx as ci, bC as Kp, dr as Hs, bU as Gp, bZ as Yp, cZ as Ks, aH as Zp, d as Qp, cC as Jp, e1 as Xp, dA as tr, gN as lc, gQ as cc, bi as Zt, Z as ni, _ as hn, gS as dc, g8 as pc, aW as qp, cf as eu, ct as uc, cs as tu, gd as ou, cj as _r, ah as hc, ci as nu, ch as ru, a_ as iu, cg as js, f$ as mc, bm as gc, fE as xc, k as yc, eH as fc, bn as su, w as bc, bq as $c, f7 as au, dI as lu, gM as cu, cq as du, g3 as pu, g0 as uu, W as hu, d5 as Gs, g6 as mu, eA as Cc, ge as Ys, cu as gu, c4 as xu, dO as yu, el as fu, eq as bu, e2 as $u, fG as Zs, ev as Cu, dC as wc, dx as wu, fK as Sc, b0 as Su, dS as vu, bc as ju, bg as ku, dy as vc, eu as Tu, c0 as Lu, ey as Pu, du as Iu, dz as jc, dM as Au, bh as Ou, dt as Du } from "./SessionTimeoutPopup-
|
|
2
|
-
import { A as ck, a as dk, b as pk, c as uk, e as hk, f as mk, g as gk, h as xk, j as yk, m as fk, n as bk, o as $k, p as Ck, q as wk, r as Sk, s as vk, t as jk, u as kk, x as Tk, y as Lk, z as Pk, B as Ik, C as Ak, D as Ok, E as Dk, F as Ek, G as Rk, H as Nk, I as Mk, L as zk, M as Bk, N as Fk, O as Wk, P as _k, Q as Vk, R as Uk, dH as Hk, S as Kk, T as Gk, U as Yk, V as Zk, Y as Qk, $ as Jk, a0 as Xk, a1 as qk, a2 as eT, a3 as tT, a4 as oT, a5 as nT, a6 as rT, a7 as iT, a8 as sT, a9 as aT, aa as lT, ab as cT, dH as dT, ac as pT, ad as uT, ae as hT, af as mT, ag as gT, ai as xT, aj as yT, ak as fT, ao as bT, aq as $T, ar as CT, as as wT, at as ST, az as vT, aA as jT, aB as kT, aC as TT, aD as LT, aE as PT, aF as IT, aG as AT, aJ as OT, aK as DT, aL as ET, aM as RT, aN as NT, aO as MT, aP as zT, aR as BT, aU as FT, aX as WT, aY as _T, aZ as VT, b2 as UT, b3 as HT, b4 as KT, b5 as GT, b6 as YT, b7 as ZT, b8 as QT, bk as JT, bl as XT, bp as qT, bt as eL, bu as tL, bD as oL, bE as nL, bF as rL, bG as iL, bH as sL, bI as aL, bJ as lL, bK as cL, bL as dL, bM as pL, bN as uL, bO as hL, c9 as mL, ca as gL, cc as xL, ck as yL, cl as fL, cm as bL, cn as $L, cp as CL, cr as wL, cv as SL, cw as vL, cx as jL, cB as kL, cD as TL, cE as LL, cF as PL, cG as IL, cH as AL, cI as OL, cP as DL, cQ as EL, cR as RL, cS as NL, cT as ML, cU as zL, cV as BL, cW as FL, cX as WL, cY as _L, c_ as VL, aS as UL, c$ as HL, d0 as KL, d1 as GL, d2 as YL, d3 as ZL, dH as QL, d6 as JL, d4 as XL, d7 as qL, da as eP, db as tP, dc as oP, dd as nP, de as rP, df as iP, dg as sP, dh as aP, dj as lP, dk as cP, dl as dP, dm as pP, dD as uP, dF as hP, dG as mP, dT as gP, dV as xP, dY as yP, d_ as fP, eE as bP, eF as $P, eG as CP, eI as wP, eM as SP, eO as vP, eP as jP, eQ as kP, eR as TP, eS as LP, eT as PP, eU as IP, eV as AP, eW as OP, eX as DP, eY as EP, eZ as RP, e_ as NP, e$ as MP, f0 as zP, f1 as BP, f2 as FP, f3 as WP, f4 as _P, f5 as VP, f8 as UP, f9 as HP, fa as KP, fb as GP, fc as YP, fd as ZP, fe as QP, ff as JP, fg as XP, fh as qP, fi as eI, fj as tI, fk as oI, fl as nI, fm as rI, fn as iI, fo as sI, fp as aI, fq as lI, fr as cI, fs as dI, ft as pI, fu as uI, fv as hI, fy as mI, fz as gI, fA as xI, fC as yI, fF as fI, fH as bI, fI as $I, fJ as CI, fM as wI, fN as SI, fR as vI, fS as jI, fU as kI, fV as TI, fW as LI, g1 as PI, g5 as II, g9 as AI, ga as OI, gb as DI, gi as EI, gj as RI, gk as NI, gl as MI, go as zI, gp as BI, gq as FI, gr as WI, gs as _I, gt as VI, gu as UI, gw as HI, gx as KI, gy as GI, gA as YI, gD as ZI, gE as QI, gF as JI, gG as XI, gH as qI, gI as eA, gK as tA, gL as oA, gO as nA, gT as rA, gU as iA, gW as sA, gX as aA, gY as lA, gZ as cA, g_ as dA, g$ as pA, h0 as uA, h1 as hA, h4 as mA, h5 as gA } from "./SessionTimeoutPopup-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { dE as o, gB as Ne, i as $t, fD as O, eb as It, bv as Qr, X as We, eg as Qd, fO as Jd, fY as Xd, al as I, fQ as U, dn as qd, h2 as ge, gP as lo, eL as lt, an as Ft, cd as Bs, v as wo, eD as ps, c8 as So, ed as us, es as ep, dQ as Jt, dN as De, fX as Fl, ez as Co, dp as Fs, c3 as Be, gJ as tp, aT as op, bd as Wt, aQ as np, e9 as Wl, g4 as rp, b1 as hs, J as ms, gf as ip, gg as sp, gh as ap, am as lp, co as cp, c1 as xt, ef as _l, cy as dp, d$ as Jr, ex as gs, gz as M, di as pp, bo as up, dv as be, e5 as hp, d8 as z, cz as Fe, gC as pt, dX as xs, br as Nr, dw as mp, e6 as ys, be as Xr, gn as Pe, bw as qr, e7 as Vl, ep as Ul, ek as Xn, fL as zt, eN as dt, dJ as gn, c5 as gp, c7 as Hl, ea as Kl, fZ as Pt, fB as qe, f6 as Mr, fx as xp, eJ as xn, eK as yn, l as fn, dU as Fo, c2 as ei, ee as fs, c6 as yp, eh as Gl, e8 as co, ec as Wo, a$ as Qt, fw as Ws, gc as fp, g2 as bp, g7 as $p, ej as Cp, eC as wp, eB as qn, dK as Sp, dL as bs, f_ as vp, ei as Yl, eo as Zl, en as Ql, ba as Jl, gv as jp, bX as _s, bY as $s, bS as kp, bW as Tp, bs as er, bb as bn, em as Cs, ap as Lp, ds as ti, fT as bt, dB as Xl, bV as zr, b$ as Pp, b9 as ws, bP as Ip, d9 as pn, e4 as Ap, e3 as Op, e0 as Dp, bQ as oi, dq as Vs, bT as ql, gV as Br, cA as ec, dZ as tc, fP as Ss, bR as Ep, aw as un, au as Zn, av as Qn, h3 as oc, aV as Rp, gR as Np, bf as Yt, ax as Lt, ew as vs, er as nc, dR as Mp, cb as rc, et as zp, dP as Bp, ay as Ut, gm as sr, bj as Fp, b_ as Ht, aI as ic, K as cn, cK as sc, cL as Fr, cJ as ac, by as Wp, ce as _p, dW as Vp, bz as Wr, bB as Xi, cO as Us, cM as Up, cN as Hp, bA as li, bx as ci, bC as Kp, dr as Hs, bU as Gp, bZ as Yp, cZ as Ks, aH as Zp, d as Qp, cC as Jp, e1 as Xp, dA as tr, gN as lc, gQ as cc, bi as Zt, Z as ni, _ as hn, gS as dc, g8 as pc, aW as qp, cf as eu, ct as uc, cs as tu, gd as ou, cj as _r, ah as hc, ci as nu, ch as ru, a_ as iu, cg as js, f$ as mc, bm as gc, fE as xc, k as yc, eH as fc, bn as su, w as bc, bq as $c, f7 as au, dI as lu, gM as cu, cq as du, g3 as pu, g0 as uu, W as hu, d5 as Gs, g6 as mu, eA as Cc, ge as Ys, cu as gu, c4 as xu, dO as yu, el as fu, eq as bu, e2 as $u, fG as Zs, ev as Cu, dC as wc, dx as wu, fK as Sc, b0 as Su, dS as vu, bc as ju, bg as ku, dy as vc, eu as Tu, c0 as Lu, ey as Pu, du as Iu, dz as jc, dM as Au, bh as Ou, dt as Du } from "./SessionTimeoutPopup-BnwXqvlZ.js";
|
|
2
|
+
import { A as ck, a as dk, b as pk, c as uk, e as hk, f as mk, g as gk, h as xk, j as yk, m as fk, n as bk, o as $k, p as Ck, q as wk, r as Sk, s as vk, t as jk, u as kk, x as Tk, y as Lk, z as Pk, B as Ik, C as Ak, D as Ok, E as Dk, F as Ek, G as Rk, H as Nk, I as Mk, L as zk, M as Bk, N as Fk, O as Wk, P as _k, Q as Vk, R as Uk, dH as Hk, S as Kk, T as Gk, U as Yk, V as Zk, Y as Qk, $ as Jk, a0 as Xk, a1 as qk, a2 as eT, a3 as tT, a4 as oT, a5 as nT, a6 as rT, a7 as iT, a8 as sT, a9 as aT, aa as lT, ab as cT, dH as dT, ac as pT, ad as uT, ae as hT, af as mT, ag as gT, ai as xT, aj as yT, ak as fT, ao as bT, aq as $T, ar as CT, as as wT, at as ST, az as vT, aA as jT, aB as kT, aC as TT, aD as LT, aE as PT, aF as IT, aG as AT, aJ as OT, aK as DT, aL as ET, aM as RT, aN as NT, aO as MT, aP as zT, aR as BT, aU as FT, aX as WT, aY as _T, aZ as VT, b2 as UT, b3 as HT, b4 as KT, b5 as GT, b6 as YT, b7 as ZT, b8 as QT, bk as JT, bl as XT, bp as qT, bt as eL, bu as tL, bD as oL, bE as nL, bF as rL, bG as iL, bH as sL, bI as aL, bJ as lL, bK as cL, bL as dL, bM as pL, bN as uL, bO as hL, c9 as mL, ca as gL, cc as xL, ck as yL, cl as fL, cm as bL, cn as $L, cp as CL, cr as wL, cv as SL, cw as vL, cx as jL, cB as kL, cD as TL, cE as LL, cF as PL, cG as IL, cH as AL, cI as OL, cP as DL, cQ as EL, cR as RL, cS as NL, cT as ML, cU as zL, cV as BL, cW as FL, cX as WL, cY as _L, c_ as VL, aS as UL, c$ as HL, d0 as KL, d1 as GL, d2 as YL, d3 as ZL, dH as QL, d6 as JL, d4 as XL, d7 as qL, da as eP, db as tP, dc as oP, dd as nP, de as rP, df as iP, dg as sP, dh as aP, dj as lP, dk as cP, dl as dP, dm as pP, dD as uP, dF as hP, dG as mP, dT as gP, dV as xP, dY as yP, d_ as fP, eE as bP, eF as $P, eG as CP, eI as wP, eM as SP, eO as vP, eP as jP, eQ as kP, eR as TP, eS as LP, eT as PP, eU as IP, eV as AP, eW as OP, eX as DP, eY as EP, eZ as RP, e_ as NP, e$ as MP, f0 as zP, f1 as BP, f2 as FP, f3 as WP, f4 as _P, f5 as VP, f8 as UP, f9 as HP, fa as KP, fb as GP, fc as YP, fd as ZP, fe as QP, ff as JP, fg as XP, fh as qP, fi as eI, fj as tI, fk as oI, fl as nI, fm as rI, fn as iI, fo as sI, fp as aI, fq as lI, fr as cI, fs as dI, ft as pI, fu as uI, fv as hI, fy as mI, fz as gI, fA as xI, fC as yI, fF as fI, fH as bI, fI as $I, fJ as CI, fM as wI, fN as SI, fR as vI, fS as jI, fU as kI, fV as TI, fW as LI, g1 as PI, g5 as II, g9 as AI, ga as OI, gb as DI, gi as EI, gj as RI, gk as NI, gl as MI, go as zI, gp as BI, gq as FI, gr as WI, gs as _I, gt as VI, gu as UI, gw as HI, gx as KI, gy as GI, gA as YI, gD as ZI, gE as QI, gF as JI, gG as XI, gH as qI, gI as eA, gK as tA, gL as oA, gO as nA, gT as rA, gU as iA, gW as sA, gX as aA, gY as lA, gZ as cA, g_ as dA, g$ as pA, h0 as uA, h1 as hA, h4 as mA, h5 as gA } from "./SessionTimeoutPopup-BnwXqvlZ.js";
|
|
3
|
+
import { ak as t, D as Eu, a1 as Ru, aK as Ve, q as $n, O as rt, L as Nu, s as Mu, T as zu, o as ri, f as Xt, h as ye, aG as po, i as Cn, aF as uo, Y as _o, m as ho, J as Vo, b as qt, V as Uo, ae as nt, I as kc, X as Bu, an as Mt, aa as Bo, aE as Fu, k as ks, C as Tc, n as Wu, d as _u, e as Ts, B as Ls, as as Qs } from "./vendor-.pnpm-XFVTbpbG.js";
|
|
4
|
+
import { az as yA } from "./vendor-.pnpm-XFVTbpbG.js";
|
|
5
5
|
import * as me from "react";
|
|
6
6
|
import or, { useEffect as te, useState as Y, useMemo as Ze, useCallback as oe, useContext as Qe, useRef as $e, forwardRef as kt, Fragment as Lc, memo as nr, createContext as Ho, Suspense as Vu, createElement as Pc } from "react";
|
|
7
7
|
import r from "@emotion/styled";
|
|
@@ -13,8 +13,13 @@ export interface Props {
|
|
|
13
13
|
};
|
|
14
14
|
additionalInfoLabel?: string;
|
|
15
15
|
additionalLabelTooltip?: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* When set, overrides the default responsive width of the row.
|
|
18
|
+
* Accepts a pixel number (e.g. `120`) or any valid CSS width string
|
|
19
|
+
* (e.g. `"100%"`, `"12rem"`) so the field can be embedded inside a
|
|
20
|
+
* fluid layout like a data-grid cell.
|
|
21
|
+
*/
|
|
22
|
+
controlWidth?: number | string;
|
|
18
23
|
disableCopyPaste?: boolean;
|
|
19
24
|
isAdditionalInfoLabelLoading?: boolean;
|
|
20
25
|
isDisabled?: DisableMode;
|
|
@@ -24,7 +24,13 @@ export interface Props {
|
|
|
24
24
|
style?: React.CSSProperties;
|
|
25
25
|
};
|
|
26
26
|
additionalInfoLabel?: string;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Overrides the default responsive width of the row. Accepts a pixel
|
|
29
|
+
* number (e.g. `120`) or any valid CSS width string (e.g. `"100%"`)
|
|
30
|
+
* so the field can be embedded inside a fluid layout like a data-grid
|
|
31
|
+
* cell.
|
|
32
|
+
*/
|
|
33
|
+
controlWidth?: number | string;
|
|
28
34
|
disableCopyPaste?: boolean;
|
|
29
35
|
errorInfoLabel?: string;
|
|
30
36
|
fullWidthSelect?: boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TransactionLinesJournalEntryEmptyTableProps } from './journalEntryTableTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Skeleton/loading table mirroring
|
|
4
|
+
* `TransactionCategorizationListEmptyTable`. Mounts the real sticky
|
|
5
|
+
* header, N skeleton rows (via `JournalEntryTableListEmptyRow`), and a
|
|
6
|
+
* skeleton totals row inside a `FlexibleWidthProvider` so column
|
|
7
|
+
* widths match the live table.
|
|
8
|
+
*
|
|
9
|
+
* Consumed by:
|
|
10
|
+
* - `TransactionLinesJournalEntryTable` when `lines.length === 0`
|
|
11
|
+
* - Storybook stories for visual coverage of the loading state
|
|
12
|
+
*/
|
|
13
|
+
export declare const TransactionLinesJournalEntryEmptyTable: ({ isAccountingClassesEnabled, showProjectField, isCompressed, isQuickViewMode, sectionId, skeletonRowCount, }: TransactionLinesJournalEntryEmptyTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/** Re-export the header height as a convenience for callers that want to size the
|
|
15
|
+
* skeleton table viewport (legacy parity with the categorization sibling).
|
|
16
|
+
*/
|
|
17
|
+
export declare const JOURNAL_ENTRY_EMPTY_TABLE_HEADER_HEIGHT_PX = 32;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { TransactionLinesJournalEntryTableProps } from './journalEntryTableTypes';
|
|
2
|
+
export default function TransactionLinesJournalEntryTable({ accountList, accountsHierarchyList, classHierarchyList, classList, isAccountingClassesEnabled, isCOTEnabled, lines, projects, searchAutoComplete, sectionId, transaction, cotTracking, isDisabled, isQuickViewMode, isUncategorizedExpenseCategoryEnabled, openTooltipId, setOpenTooltipId, uncategorizedAccounts, }: Readonly<TransactionLinesJournalEntryTableProps>): JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LineInfo } from '../../common';
|
|
2
|
+
/** Section id used by the new JE table form fields (matches legacy sectionId pattern). */
|
|
3
|
+
export declare const journalEntryTableSectionId = "journalEntryTableSection";
|
|
4
|
+
/** Header row height from Figma frame (px). */
|
|
5
|
+
export declare const JOURNAL_ENTRY_TABLE_HEADER_HEIGHT = 32;
|
|
6
|
+
/** Standard data-row height from Figma frame (px). */
|
|
7
|
+
export declare const JOURNAL_ENTRY_TABLE_ROW_HEIGHT = 48;
|
|
8
|
+
/** Sticky totals-row height from Figma frame (px). */
|
|
9
|
+
export declare const JOURNAL_ENTRY_TABLE_TOTALS_HEIGHT = 32;
|
|
10
|
+
/** Compressed (quick-view / small window) row height. */
|
|
11
|
+
export declare const JOURNAL_ENTRY_TABLE_ROW_HEIGHT_COMPACT = 48;
|
|
12
|
+
/**
|
|
13
|
+
* Row height resolver. Today every row is the same height; isolating
|
|
14
|
+
* this here so a future Update-all expansion can return a larger height
|
|
15
|
+
* for the affected row without touching `react-window` wiring.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getJournalEntryTableRowHeight: (_line: LineInfo) => number;
|
|
18
|
+
/** Column keys used to address cells, sort, and width lookups. */
|
|
19
|
+
export declare const JOURNAL_ENTRY_COLUMN_KEYS: readonly ["description", "name", "category", "class", "project", "debit", "credit"];
|
|
20
|
+
export type JournalEntryColumnKey = (typeof JOURNAL_ENTRY_COLUMN_KEYS)[number];
|
|
21
|
+
/** Compressed (quick-view / mobile) columns. */
|
|
22
|
+
export declare const JOURNAL_ENTRY_COMPRESSED_COLUMN_KEYS: readonly ["description", "amount"];
|
|
23
|
+
export type JournalEntryCompressedColumnKey = (typeof JOURNAL_ENTRY_COMPRESSED_COLUMN_KEYS)[number];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { JournalEntryRowSortConfig, JournalEntrySortKey, SortOrder } from '@zeniai/client-epic-state';
|
|
2
|
+
import { DisableMode } from '../../../../formElements/common/common';
|
|
3
|
+
export interface JournalEntryTableHeaderProps {
|
|
4
|
+
isAccountingClassesEnabled: boolean;
|
|
5
|
+
showProjectField: boolean;
|
|
6
|
+
sortConfig: JournalEntryRowSortConfig;
|
|
7
|
+
isCompressed?: boolean;
|
|
8
|
+
isDisabled?: DisableMode;
|
|
9
|
+
onColumnSortConfigChanged?: (sortKey: JournalEntrySortKey, sortOrder: SortOrder) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const JournalEntryTableHeader: ({ sortConfig, isAccountingClassesEnabled, showProjectField, isCompressed, isDisabled, onColumnSortConfigChanged, }: JournalEntryTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { JournalEntryRowSortConfig, JournalEntrySortKey, SortOrder } from '@zeniai/client-epic-state';
|
|
2
|
+
import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
|
|
3
|
+
import { JournalEntryColumnKey, JournalEntryCompressedColumnKey } from '../common';
|
|
4
|
+
/** Header row height (Figma frame). */
|
|
5
|
+
export declare const DEFAULT_LIST_HEADER_HEIGHT_REGULAR = 32;
|
|
6
|
+
/** Default sort the table opens with. Re-exposed here for header convenience. */
|
|
7
|
+
export declare const journalEntryDefaultSortConfig: JournalEntryRowSortConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Header item shape (mirrors `transactionCategorizationHeaderItemsData.ts`
|
|
10
|
+
* but typed for the JE column key union).
|
|
11
|
+
*/
|
|
12
|
+
export interface JournalEntryRowHeaderItemData {
|
|
13
|
+
customStyle: {
|
|
14
|
+
cellStyle?: React.CSSProperties;
|
|
15
|
+
common?: React.CSSProperties;
|
|
16
|
+
quickView?: React.CSSProperties;
|
|
17
|
+
};
|
|
18
|
+
key: JournalEntryColumnKey | JournalEntryCompressedColumnKey;
|
|
19
|
+
/** Default direction applied when the column is freshly clicked. */
|
|
20
|
+
sortOrder: SortOrder;
|
|
21
|
+
value: string;
|
|
22
|
+
/** Fixed-pixel widths per breakpoint. */
|
|
23
|
+
width: ResponsiveSized;
|
|
24
|
+
/** Percentage of the content area (0–100) used when the table fits the viewport. */
|
|
25
|
+
widthPercentage: number;
|
|
26
|
+
}
|
|
27
|
+
export type JournalEntryRowSortConfigType = JournalEntryRowSortConfig;
|
|
28
|
+
export type JournalEntryRowSortKey = JournalEntrySortKey;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
|
|
2
|
+
import { JournalEntryRowHeaderItemData } from './journalEntryHeaderConfig';
|
|
3
|
+
/**
|
|
4
|
+
* Column order matches the Figma frame "JE hover" (5177:12455):
|
|
5
|
+
* Name | Category | Class | Description | Debit | Credit.
|
|
6
|
+
*
|
|
7
|
+
* Project is appended after Class only when `showProjectField` is true;
|
|
8
|
+
* the base Figma frame does not include it.
|
|
9
|
+
*/
|
|
10
|
+
export declare const getJournalEntryTableHeaderItemsData: (isAccountingClassesEnabled?: boolean, showProjectField?: boolean) => JournalEntryRowHeaderItemData[];
|
|
11
|
+
/**
|
|
12
|
+
* Compressed (quick-view / small window) header list — single Description
|
|
13
|
+
* column with a merged Amount column whose value prefixes Dr / Cr.
|
|
14
|
+
*/
|
|
15
|
+
export declare const compressedJournalEntryHeaderItemsData: JournalEntryRowHeaderItemData[];
|
|
16
|
+
export declare const getJournalEntryTableMaxWidth: (isAccountingClassesEnabled?: boolean, showProjectField?: boolean) => ResponsiveSized;
|
package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableStyles.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outer wrapper that sits between the surrounding page and the table card,
|
|
3
|
+
* providing the breathing room called out in the Figma frame (node
|
|
4
|
+
* 5177:12455). Padding (`sp3 sp5` = 16px / 32px) and the `grey4`
|
|
5
|
+
* page-tinted background are applied in both full view AND quick view so
|
|
6
|
+
* the table card has the same surrounding chrome in the side panel as
|
|
7
|
+
* on the full detail page. Quick view additionally fills the panel's
|
|
8
|
+
* vertical space (`height: 100%`) so the inner scroll container can
|
|
9
|
+
* scroll.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TableWrapperContainer: import('@emotion/styled').StyledComponent<{
|
|
12
|
+
theme?: import('@emotion/react').Theme;
|
|
13
|
+
as?: React.ElementType;
|
|
14
|
+
} & {
|
|
15
|
+
$isQuickViewMode?: boolean;
|
|
16
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
17
|
+
/**
|
|
18
|
+
* Bordered, rounded "card" that frames the JE table. In quick view (side
|
|
19
|
+
* panel) it stretches to the parent drawer's height so the inner scroll
|
|
20
|
+
* container can scroll. In full view (transaction detail page) it sizes to
|
|
21
|
+
* content so the page itself owns the vertical scroll. The card chrome
|
|
22
|
+
* (border + radius + grey5 background) is always-on to match the Missing
|
|
23
|
+
* Receipts / Transaction Categorization pattern.
|
|
24
|
+
*
|
|
25
|
+
* Note: we intentionally do NOT apply `overflow: hidden` here because that
|
|
26
|
+
* would establish a scroll container and break the page-relative
|
|
27
|
+
* `position: sticky` behavior of the header and totals row. The inner
|
|
28
|
+
* `StickyHeaderContainer` and `StickyTotalsRow` each carry matching
|
|
29
|
+
* `border-*-radius` so they sit flush against the card's rounded corners.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ListViewContainer: import('@emotion/styled').StyledComponent<{
|
|
32
|
+
theme?: import('@emotion/react').Theme;
|
|
33
|
+
as?: React.ElementType;
|
|
34
|
+
} & {
|
|
35
|
+
$isQuickViewMode?: boolean;
|
|
36
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
37
|
+
/**
|
|
38
|
+
* Horizontal scroll container shared by the populated and empty tables.
|
|
39
|
+
* Vertical overflow is left to the page (or the side-panel drawer in quick
|
|
40
|
+
* view) so the table doesn't introduce a scroll-within-scroll experience.
|
|
41
|
+
*/
|
|
42
|
+
export declare const TableScrollContainer: import('@emotion/styled').StyledComponent<{
|
|
43
|
+
theme?: import('@emotion/react').Theme;
|
|
44
|
+
as?: React.ElementType;
|
|
45
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
46
|
+
/**
|
|
47
|
+
* Inner flex column that holds the sticky header, the rows, and the sticky
|
|
48
|
+
* totals row. Keeping `display: flex; flex-direction: column;` allows the
|
|
49
|
+
* `position: sticky` header / footer to pin against this scrolling parent.
|
|
50
|
+
*/
|
|
51
|
+
export declare const TableScrollContent: import('@emotion/styled').StyledComponent<{
|
|
52
|
+
theme?: import('@emotion/react').Theme;
|
|
53
|
+
as?: React.ElementType;
|
|
54
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
55
|
+
/**
|
|
56
|
+
* Per-row wrapper used by both the populated table and the skeleton/empty
|
|
57
|
+
* table. Carries the standard JE row height and the bottom separator.
|
|
58
|
+
*/
|
|
59
|
+
export declare const RowWrapper: import('@emotion/styled').StyledComponent<{
|
|
60
|
+
theme?: import('@emotion/react').Theme;
|
|
61
|
+
as?: React.ElementType;
|
|
62
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
63
|
+
/**
|
|
64
|
+
* Sticky wrapper that pins the JE header to the top of the scroll container.
|
|
65
|
+
* Visual chrome (background fill, border-bottom, top-corner radius) lives on
|
|
66
|
+
* the inner `HeaderContainer` inside `JournalEntryTableHeader` so the header
|
|
67
|
+
* matches the Figma "Table Row" component (frame 5177:12461) on its own and
|
|
68
|
+
* renders correctly in isolation (e.g. in stories) — this wrapper now owns
|
|
69
|
+
* only the positioning concern.
|
|
70
|
+
*/
|
|
71
|
+
export declare const StickyHeaderContainer: import('@emotion/styled').StyledComponent<{
|
|
72
|
+
theme?: import('@emotion/react').Theme;
|
|
73
|
+
as?: React.ElementType;
|
|
74
|
+
} & {
|
|
75
|
+
isQuickViewMode?: boolean;
|
|
76
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
77
|
+
/**
|
|
78
|
+
* Sticky totals row pinned to the bottom of the scroll container. Implements
|
|
79
|
+
* the 32px Figma footer (frame 5177:12750) which fills with the
|
|
80
|
+
* `Light Theme Colors/Background` token (#F3F7F7) -- mapped to
|
|
81
|
+
* `theme.colors.background` in our palette. (Earlier `grey3` / #E9F0F0
|
|
82
|
+
* was a slightly greener, darker tint that didn't match the design.)
|
|
83
|
+
*
|
|
84
|
+
* No `border-top` here: the last `RowWrapper` above already paints a
|
|
85
|
+
* `border-bottom` (because the totals row is the actual `:last-child` of
|
|
86
|
+
* the scroll content, so the data row above it is not). Adding a
|
|
87
|
+
* `border-top` here would stack on top of that and render a 2px double
|
|
88
|
+
* border between the last data row and the totals row.
|
|
89
|
+
*/
|
|
90
|
+
export declare const StickyTotalsRow: import('@emotion/styled').StyledComponent<{
|
|
91
|
+
theme?: import('@emotion/react').Theme;
|
|
92
|
+
as?: React.ElementType;
|
|
93
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
94
|
+
export declare const RowFlex: import('@emotion/styled').StyledComponent<{
|
|
95
|
+
theme?: import('@emotion/react').Theme;
|
|
96
|
+
as?: React.ElementType;
|
|
97
|
+
} & {
|
|
98
|
+
isHovered?: boolean;
|
|
99
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
100
|
+
export declare const HeaderRowFlex: import('@emotion/styled').StyledComponent<{
|
|
101
|
+
theme?: import('@emotion/react').Theme;
|
|
102
|
+
as?: React.ElementType;
|
|
103
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
104
|
+
/**
|
|
105
|
+
* Inline "Dr"/"Cr" prefix shown to the left of the amount field in
|
|
106
|
+
* debit/credit cells. Color and weight follow the Figma greyMid label.
|
|
107
|
+
*/
|
|
108
|
+
export declare const AmountPrefix: import('@emotion/styled').StyledComponent<{
|
|
109
|
+
theme?: import('@emotion/react').Theme;
|
|
110
|
+
as?: React.ElementType;
|
|
111
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
112
|
+
/**
|
|
113
|
+
* Static "—" placeholder shown when a line is not posted on this
|
|
114
|
+
* side (e.g. a "credit" row's "debit" cell).
|
|
115
|
+
*/
|
|
116
|
+
export declare const EmptyAmountCellPlaceholder: import('@emotion/styled').StyledComponent<{
|
|
117
|
+
theme?: import('@emotion/react').Theme;
|
|
118
|
+
as?: React.ElementType;
|
|
119
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { AccountBase, ClassBase, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Project, TransactionLineRecommendationFieldTypes, TransactionWithCOT, UncategorizedAccounts } from '@zeniai/client-epic-state';
|
|
2
|
+
import { COTTrackingProps } from '../../../../types/cotTracking';
|
|
3
|
+
import { DisableMode } from '../../../formElements/common/common';
|
|
4
|
+
import { LineInfo, SearchAutoComplete } from '../../common';
|
|
5
|
+
import { JournalEntryRowHeaderItemData } from './header/journalEntryHeaderConfig';
|
|
6
|
+
/**
|
|
7
|
+
* Public props for the new JE table entry component.
|
|
8
|
+
*
|
|
9
|
+
* This is a deliberate subset of the legacy `TransactionLinesJournalEntry`
|
|
10
|
+
* prop shape. The call site in `TransactionDetailContent` spreads a single
|
|
11
|
+
* `sharedProps` object into either component, and TypeScript allows the
|
|
12
|
+
* spread to carry extra fields that this component does not consume. As
|
|
13
|
+
* new features (inline edit, book-close enforcement, project column, etc.)
|
|
14
|
+
* land on the table view, add the corresponding props back here.
|
|
15
|
+
*/
|
|
16
|
+
export interface TransactionLinesJournalEntryTableProps {
|
|
17
|
+
accountList: AccountBase[];
|
|
18
|
+
accountsHierarchyList: NestedAccountHierarchyForReport[];
|
|
19
|
+
classHierarchyList: NestedClassHierarchyForReport[];
|
|
20
|
+
classList: ClassBase[];
|
|
21
|
+
isAccountingClassesEnabled: boolean;
|
|
22
|
+
isCOTEnabled: boolean;
|
|
23
|
+
lines: LineInfo[];
|
|
24
|
+
projects: Project[];
|
|
25
|
+
searchAutoComplete: SearchAutoComplete;
|
|
26
|
+
sectionId: string;
|
|
27
|
+
transaction: TransactionWithCOT;
|
|
28
|
+
cotTracking?: COTTrackingProps;
|
|
29
|
+
isDisabled?: DisableMode;
|
|
30
|
+
isQuickViewMode?: boolean;
|
|
31
|
+
isUncategorizedExpenseCategoryEnabled?: boolean;
|
|
32
|
+
openTooltipId?: ID;
|
|
33
|
+
uncategorizedAccounts?: UncategorizedAccounts;
|
|
34
|
+
setOpenTooltipId?: (tooltipId: ID | undefined) => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Props for the skeleton/loading empty table that mirrors the
|
|
38
|
+
* `TransactionCategorizationListEmptyTable` shape.
|
|
39
|
+
*/
|
|
40
|
+
export interface TransactionLinesJournalEntryEmptyTableProps {
|
|
41
|
+
isAccountingClassesEnabled: boolean;
|
|
42
|
+
showProjectField: boolean;
|
|
43
|
+
isCompressed?: boolean;
|
|
44
|
+
isQuickViewMode?: boolean;
|
|
45
|
+
sectionId?: string;
|
|
46
|
+
skeletonRowCount?: number;
|
|
47
|
+
}
|
|
48
|
+
/** Props for the inline list-row component. */
|
|
49
|
+
export interface JournalEntryTableListRowProps {
|
|
50
|
+
accountList: AccountBase[];
|
|
51
|
+
accountsHierarchyList: NestedAccountHierarchyForReport[];
|
|
52
|
+
classHierarchyList: NestedClassHierarchyForReport[];
|
|
53
|
+
classList: ClassBase[];
|
|
54
|
+
columns: JournalEntryRowHeaderItemData[];
|
|
55
|
+
isCompressed: boolean;
|
|
56
|
+
isCOTEnabled: boolean;
|
|
57
|
+
line: LineInfo;
|
|
58
|
+
lineIndex: number;
|
|
59
|
+
projects: Project[];
|
|
60
|
+
sectionId: string;
|
|
61
|
+
isDisabled?: DisableMode;
|
|
62
|
+
isUncategorizedExpenseCategoryEnabled?: boolean;
|
|
63
|
+
openTooltipId?: ID;
|
|
64
|
+
searchAutoComplete?: SearchAutoComplete;
|
|
65
|
+
/**
|
|
66
|
+
* Transaction id used by the inline `RecommendationIcon` to build a
|
|
67
|
+
* unique tooltip identifier. Optional so existing callers don't break;
|
|
68
|
+
* when missing the row falls back to `line.id`.
|
|
69
|
+
*/
|
|
70
|
+
transactionId?: ID;
|
|
71
|
+
uncategorizedAccounts?: UncategorizedAccounts;
|
|
72
|
+
onCOTView?: (fieldType: TransactionLineRecommendationFieldTypes, recommendationSource?: string) => void;
|
|
73
|
+
setOpenTooltipId?: (tooltipId: ID | undefined) => void;
|
|
74
|
+
}
|
|
75
|
+
/** Props for the skeleton row mounted by the empty table. */
|
|
76
|
+
export interface JournalEntryTableListEmptyRowProps {
|
|
77
|
+
columns: JournalEntryRowHeaderItemData[];
|
|
78
|
+
isCompressed: boolean;
|
|
79
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { WindowSize } from '../../../../../context/windowSizeProvider/WindowSizeProvider';
|
|
3
|
+
import { ResponsiveSized } from '../../../../../context/windowSizeProvider/responsiveSize';
|
|
4
|
+
import { JournalEntryTableListEmptyRowProps, JournalEntryTableListRowProps } from '../journalEntryTableTypes';
|
|
5
|
+
/**
|
|
6
|
+
* Single populated row of the JE table. Iterates the `columns` array
|
|
7
|
+
* from the header and renders the matching inline cell JSX (no per-cell
|
|
8
|
+
* function abstraction -- mirrors categorization's "one big switch"
|
|
9
|
+
* pattern at TransactionCategorizationListRow.tsx ~L1096-L1710 so a
|
|
10
|
+
* reviewer can diff the two row files column-by-column).
|
|
11
|
+
*/
|
|
12
|
+
export declare const JournalEntryTableListRow: ({ accountList: _accountList, accountsHierarchyList, classHierarchyList, classList: _classList, columns, isCOTEnabled, isCompressed, isDisabled, isUncategorizedExpenseCategoryEnabled, line, lineIndex, onCOTView, openTooltipId, projects, searchAutoComplete, sectionId, setOpenTooltipId, transactionId, uncategorizedAccounts, }: JournalEntryTableListRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* Skeleton row consumed by `TransactionLinesJournalEntryEmptyTable`. Uses
|
|
15
|
+
* the same `RowItemContainer` as the live row so column widths line up
|
|
16
|
+
* 1:1, mirroring categorization's `TransactionCategorizationListEmptyRow`
|
|
17
|
+
* (TransactionCategorizationListRow.tsx ~L2521-L2606).
|
|
18
|
+
*/
|
|
19
|
+
export declare const JournalEntryTableListEmptyRow: ({ columns, isCompressed, }: JournalEntryTableListEmptyRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
declare const RowItemContainerStyled: import('@emotion/styled').StyledComponent<{
|
|
21
|
+
theme?: import('@emotion/react').Theme;
|
|
22
|
+
as?: React.ElementType;
|
|
23
|
+
} & {
|
|
24
|
+
$widthPercentage: number;
|
|
25
|
+
windowSize: WindowSize;
|
|
26
|
+
wrapperWidth: ResponsiveSized;
|
|
27
|
+
$flexibleWidth?: boolean;
|
|
28
|
+
isCompressed?: boolean;
|
|
29
|
+
isDividerColumn?: boolean;
|
|
30
|
+
isLastItem?: boolean;
|
|
31
|
+
isSticky?: boolean;
|
|
32
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
33
|
+
/**
|
|
34
|
+
* Exported so the sticky totals row can render column-aligned cells using
|
|
35
|
+
* the same width contract as the live row.
|
|
36
|
+
*/
|
|
37
|
+
export declare const RowItemContainer: (props: Omit<React.ComponentProps<typeof RowItemContainerStyled>, "$flexibleWidth" | "$widthPercentage"> & {
|
|
38
|
+
widthPercentage: number;
|
|
39
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export type { CSSProperties as _CellStyle };
|
package/dist/components/transactionDetail/items/journalEntryTable/totals/JournalEntryTotalsRow.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WindowSize } from '../../../../../context/windowSizeProvider/WindowSizeProvider';
|
|
2
|
+
import { LineInfo } from '../../../common';
|
|
3
|
+
import { JournalEntryRowHeaderItemData } from '../header/journalEntryHeaderConfig';
|
|
4
|
+
export interface JournalEntryTotalsRowProps {
|
|
5
|
+
columns: JournalEntryRowHeaderItemData[];
|
|
6
|
+
isCompressed: boolean;
|
|
7
|
+
lines: LineInfo[];
|
|
8
|
+
sectionId: string;
|
|
9
|
+
windowSize: WindowSize;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Sticky totals row pinned to the bottom of the table.
|
|
13
|
+
*
|
|
14
|
+
* Layout (Figma frame 5177:12455 totals row 5177:12750):
|
|
15
|
+
* [Total label flex-grow] [Debit total 140px right] [Credit total 116px right]
|
|
16
|
+
*
|
|
17
|
+
* In compressed (quick view / small) mode we collapse to a single line
|
|
18
|
+
* showing Total Debits / Total Credits with a divider, matching the
|
|
19
|
+
* quick-view spec.
|
|
20
|
+
*/
|
|
21
|
+
export declare const JournalEntryTotalsRow: ({ columns, isCompressed, lines, sectionId, windowSize, }: JournalEntryTotalsRowProps) => import("react/jsx-runtime").JSX.Element;
|
package/dist/components/transactionDetail/items/transactionLineTable/FlexibleWidthContext.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export the JE table's `FlexibleWidthContext` so the non-JE table
|
|
3
|
+
* shares a single source of truth for the flexible-vs-fixed-width column
|
|
4
|
+
* convention. Keeps the contract one place to evolve.
|
|
5
|
+
*/
|
|
6
|
+
export { FlexibleWidthProvider, useFlexibleWidth, } from '../journalEntryTable/FlexibleWidthContext';
|
package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesEmptyTable.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TransactionLinesEmptyTableProps } from './transactionLineTableTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Skeleton/loading table that mirrors `TransactionLinesJournalEntryEmptyTable`
|
|
4
|
+
* but without the totals row (per Figma 5240:7220 + the explicit "no totals
|
|
5
|
+
* row" requirement for non-JE transactions). Mounts the real sticky
|
|
6
|
+
* header and N skeleton rows inside a `FlexibleWidthProvider` so column
|
|
7
|
+
* widths match the live table.
|
|
8
|
+
*/
|
|
9
|
+
export declare const TransactionLinesEmptyTable: ({ isAccountingClassesEnabled, showProjectField, isCompressed, isQuickViewMode, sectionId, skeletonRowCount, }: TransactionLinesEmptyTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
/** Re-export the header height for callers sizing the empty viewport. */
|
|
11
|
+
export declare const TRANSACTION_LINE_EMPTY_TABLE_HEADER_HEIGHT_PX = 32;
|
package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesTable.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TransactionLinesTableProps } from './transactionLineTableTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Tabular view of non-journal-entry transaction lines (vendor / deposit
|
|
4
|
+
* today; customer/product-service kept on the legacy card view).
|
|
5
|
+
*
|
|
6
|
+
* Mirrors `TransactionLinesJournalEntryTable` minus:
|
|
7
|
+
* - the per-row vendor / payee dropdown (the parent transaction
|
|
8
|
+
* header owns vendor selection)
|
|
9
|
+
* - the debit/credit posting split (a single right-aligned amount
|
|
10
|
+
* column replaces them)
|
|
11
|
+
* - the sticky totals row at the bottom (per Figma 5240:7220 and the
|
|
12
|
+
* explicit "no totals row" requirement)
|
|
13
|
+
*
|
|
14
|
+
* The bottom-rounded corners are owned by the last `RowWrapper` since
|
|
15
|
+
* there is nothing else following it inside the card.
|
|
16
|
+
*/
|
|
17
|
+
export default function TransactionLinesTable({ accountList, accountsHierarchyList, classHierarchyList, classList, containerRef: _containerRef, isAccountingClassesEnabled, isAccountingProjectsEnabled: _isAccountingProjectsEnabled, isCOTEnabled, isProjectsTransactionsEnabled: _isProjectsTransactionsEnabled, lines, projects, searchAutoComplete, sectionId, transaction, bookCloseDate: _bookCloseDate, cotTracking, entityId: _entityId, isDisabled, isQuickViewMode, isUncategorizedExpenseCategoryEnabled, openTooltipId, setOpenTooltipId, uncategorizedAccounts, lineItemsLocalData: _lineItemsLocalData, }: Readonly<TransactionLinesTableProps>): JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LineInfo } from '../../common';
|
|
2
|
+
/**
|
|
3
|
+
* Section id used by the new non-journal-entry transaction line table
|
|
4
|
+
* form fields. Mirrors `journalEntryTableSectionId` so caller wiring is
|
|
5
|
+
* symmetric across the two tables.
|
|
6
|
+
*/
|
|
7
|
+
export declare const transactionLineTableSectionId = "transactionLineTableSection";
|
|
8
|
+
/** Header row height from Figma frame 5240:7220 (px). */
|
|
9
|
+
export declare const TRANSACTION_LINE_TABLE_HEADER_HEIGHT = 32;
|
|
10
|
+
/** Standard data-row height from Figma frame 5240:7220 (px). */
|
|
11
|
+
export declare const TRANSACTION_LINE_TABLE_ROW_HEIGHT = 48;
|
|
12
|
+
/** Compressed (quick-view / small window) row height. */
|
|
13
|
+
export declare const TRANSACTION_LINE_TABLE_ROW_HEIGHT_COMPACT = 48;
|
|
14
|
+
/**
|
|
15
|
+
* Row height resolver. Today every row is the same height; isolating
|
|
16
|
+
* this here so a future Update-all expansion can return a larger height
|
|
17
|
+
* for the affected row without touching `react-window` wiring.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getTransactionLineTableRowHeight: (_line: LineInfo) => number;
|
|
20
|
+
/**
|
|
21
|
+
* Column keys used to address cells, sort, and width lookups.
|
|
22
|
+
*
|
|
23
|
+
* Differences vs. the journal-entry table:
|
|
24
|
+
* - no `name` column (the vendor / payee is rendered once at the
|
|
25
|
+
* transaction header, not per line)
|
|
26
|
+
* - no `debit` / `credit` split — a single `amount` column replaces them
|
|
27
|
+
*/
|
|
28
|
+
export declare const TRANSACTION_LINE_COLUMN_KEYS: readonly ["description", "category", "class", "project", "amount"];
|
|
29
|
+
export type TransactionLineColumnKey = (typeof TRANSACTION_LINE_COLUMN_KEYS)[number];
|
|
30
|
+
/** Compressed (quick-view / mobile) columns. */
|
|
31
|
+
export declare const TRANSACTION_LINE_COMPRESSED_COLUMN_KEYS: readonly ["description", "amount"];
|
|
32
|
+
export type TransactionLineCompressedColumnKey = (typeof TRANSACTION_LINE_COMPRESSED_COLUMN_KEYS)[number];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SortOrder } from '@zeniai/client-epic-state';
|
|
2
|
+
import { DisableMode } from '../../../../formElements/common/common';
|
|
3
|
+
import { TransactionLineRowSortConfig, TransactionLineSortKey } from './transactionLineHeaderConfig';
|
|
4
|
+
export interface TransactionLineTableHeaderProps {
|
|
5
|
+
isAccountingClassesEnabled: boolean;
|
|
6
|
+
showProjectField: boolean;
|
|
7
|
+
sortConfig: TransactionLineRowSortConfig;
|
|
8
|
+
isCompressed?: boolean;
|
|
9
|
+
isDisabled?: DisableMode;
|
|
10
|
+
onColumnSortConfigChanged?: (sortKey: TransactionLineSortKey, sortOrder: SortOrder) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const TransactionLineTableHeader: ({ sortConfig, isAccountingClassesEnabled, showProjectField, isCompressed, isDisabled, onColumnSortConfigChanged, }: TransactionLineTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SortOrder } from '@zeniai/client-epic-state';
|
|
2
|
+
import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
|
|
3
|
+
import { TransactionLineColumnKey, TransactionLineCompressedColumnKey } from '../common';
|
|
4
|
+
/** Header row height (Figma frame 5240:7220). */
|
|
5
|
+
export declare const DEFAULT_LIST_HEADER_HEIGHT_REGULAR = 32;
|
|
6
|
+
/** Sort key union for the non-JE transaction line table. */
|
|
7
|
+
export type TransactionLineSortKey = "description" | "category" | "class" | "amount";
|
|
8
|
+
export interface TransactionLineRowSortConfig {
|
|
9
|
+
sortKey: TransactionLineSortKey;
|
|
10
|
+
sortOrder: SortOrder;
|
|
11
|
+
}
|
|
12
|
+
/** Default sort the table opens with (mirrors the JE default). */
|
|
13
|
+
export declare const transactionLineDefaultSortConfig: TransactionLineRowSortConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Header item shape (mirrors `journalEntryHeaderConfig.ts` but typed
|
|
16
|
+
* for the non-JE column key union).
|
|
17
|
+
*/
|
|
18
|
+
export interface TransactionLineRowHeaderItemData {
|
|
19
|
+
customStyle: {
|
|
20
|
+
cellStyle?: React.CSSProperties;
|
|
21
|
+
common?: React.CSSProperties;
|
|
22
|
+
quickView?: React.CSSProperties;
|
|
23
|
+
};
|
|
24
|
+
key: TransactionLineColumnKey | TransactionLineCompressedColumnKey;
|
|
25
|
+
/** Default direction applied when the column is freshly clicked. */
|
|
26
|
+
sortOrder: SortOrder;
|
|
27
|
+
value: string;
|
|
28
|
+
/** Fixed-pixel widths per breakpoint. */
|
|
29
|
+
width: ResponsiveSized;
|
|
30
|
+
/** Percentage of the content area (0–100) used when the table fits the viewport. */
|
|
31
|
+
widthPercentage: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Convenience narrowing helper used by the header click handler. The
|
|
35
|
+
* compressed `amount` key is also sortable but the compressed view does
|
|
36
|
+
* not show sort affordances, so this helper covers full-view sortable
|
|
37
|
+
* keys only.
|
|
38
|
+
*/
|
|
39
|
+
export declare const isSortableKey: (key: string) => key is TransactionLineSortKey;
|
|
40
|
+
export declare const toTransactionLineSortKey: (key: string) => TransactionLineSortKey;
|