@tedi-design-system/react 18.0.0-rc.30 → 18.0.0-rc.31
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/bundle-stats.html +1 -1
- package/index.css +1 -1
- package/package.json +2 -2
- package/src/community/components/layout/header/components/header-role/header-role.cjs.js +1 -1
- package/src/community/components/layout/header/components/header-role/header-role.es.js +1 -1
- package/src/community/components/layout/sidenav/sidenav.cjs.js +1 -1
- package/src/community/components/layout/sidenav/sidenav.es.js +1 -1
- package/src/community/components/vertical-stepper/step-item/step-item.cjs.js +1 -1
- package/src/community/components/vertical-stepper/step-item/step-item.es.js +1 -1
- package/src/tedi/components/buttons/collapse-button/collapse-button.cjs.js +1 -1
- package/src/tedi/components/buttons/collapse-button/collapse-button.es.js +31 -14
- package/src/tedi/components/content/collapse/collapse.cjs.js +1 -0
- package/src/tedi/components/{buttons → content}/collapse/collapse.d.ts +17 -0
- package/src/tedi/components/content/collapse/collapse.es.js +84 -0
- package/src/tedi/components/content/collapse/collapse.module.scss.cjs.js +1 -0
- package/src/tedi/components/content/collapse/collapse.module.scss.es.js +8 -0
- package/src/tedi/components/content/table/table.cjs.js +1 -1
- package/src/tedi/components/content/table/table.d.ts +6 -6
- package/src/tedi/components/content/table/table.es.js +125 -126
- package/src/tedi/components/layout/footer/footer-section/footer-section.cjs.js +1 -1
- package/src/tedi/components/layout/footer/footer-section/footer-section.es.js +12 -11
- package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.cjs.js +1 -1
- package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.es.js +116 -120
- package/src/tedi/components/layout/sidenav/sidenav.module.scss.cjs.js +1 -1
- package/src/tedi/components/layout/sidenav/sidenav.module.scss.es.js +1 -1
- package/src/tedi/index.d.ts +1 -1
- package/tedi.cjs.js +1 -1
- package/tedi.es.js +1 -1
- package/src/tedi/components/buttons/collapse/collapse.cjs.js +0 -1
- package/src/tedi/components/buttons/collapse/collapse.es.js +0 -114
- package/src/tedi/components/buttons/collapse/collapse.module.scss.cjs.js +0 -1
- package/src/tedi/components/buttons/collapse/collapse.module.scss.es.js +0 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tedi-design-system/react",
|
|
3
|
-
"version": "18.0.0-rc.
|
|
3
|
+
"version": "18.0.0-rc.31",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@mui/material": "^5.15.13",
|
|
44
44
|
"@mui/x-date-pickers": "^5.0.20",
|
|
45
45
|
"@tanstack/react-table": "^8.13.2",
|
|
46
|
-
"@tedi-design-system/core": "6.4.
|
|
46
|
+
"@tedi-design-system/core": "6.4.3",
|
|
47
47
|
"classnames": "^2.5.1",
|
|
48
48
|
"draft-js": "^0.11.7",
|
|
49
49
|
"draftjs-md-converter": "^1.5.2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),g=require("react"),h=require("../../../../../../tedi/components/base/typography/text/text.cjs.js"),j=require("../../../../../../tedi/components/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),g=require("react"),h=require("../../../../../../tedi/components/base/typography/text/text.cjs.js"),j=require("../../../../../../tedi/components/content/collapse/collapse.cjs.js"),m=require("../../../../../../tedi/components/misc/scroll-fade/scroll-fade.cjs.js"),b=require("../../../../tag/tag.cjs.js"),y=require("../header-dropdown/header-dropdown.cjs.js"),d=require("./header-role.module.scss.cjs.js"),x=require("../../../../../../tedi/providers/label-provider/use-labels.cjs.js"),T=require("../../../../card/card.cjs.js"),q=require("../../../../card/card-content/card-content.cjs.js"),p=t=>{const{renderModal:o=!1,...r}=t,[s,l]=g.useState(!1);return o?e.jsx(R,{...r,open:s,onToggle:l}):e.jsx(v,{...r,open:s,onToggle:l})};p.displayName="HeaderRole";const v=t=>{const{getLabel:o}=x.useLabels(),{children:r,open:s,onToggle:l,primaryInfo:i,secondaryInfo:n,label:a=o("header.role-label")}=t,u=()=>a===o("header.role-label")?e.jsx("div",{children:e.jsx(b.Tag,{color:"primary",type:"secondary",children:a})}):e.jsxs(h.Text,{color:"secondary",modifiers:["bold","small"],children:[a,!!n&&e.jsxs(e.Fragment,{children:[" ",e.jsxs(h.Text,{element:"span",modifiers:["small","normal"],children:[e.jsx("span",{style:{color:"var(--color-border-default)"},children:"|"})," ",n]})]})]}),c=typeof r=="function"?r({onToggle:l}):r,f=e.jsx(y.HeaderDropdown,{shouldAnimate:!0,open:s,onToggle:l,tooltipProps:{cardProps:{padding:0},maxWidth:"medium"},triggerProps:{children:i,"aria-label":`${a??""} ${n??""} ${i??""}`,visualType:"link",iconRight:{name:"expand_more",color:"primary",size:24}},children:e.jsx("div",{className:d.default["header-role-wrapper"],children:e.jsx(m.ScrollFade,{fadeSize:0,children:e.jsx("div",{className:d.default["header-role-children"],children:c})})})});return e.jsxs("div",{children:[u(),c?f:i]})},R=t=>{const{getLabel:o}=x.useLabels(),{children:r,open:s,onToggle:l,primaryInfo:i,secondaryInfo:n,label:a=o("header.role-label")}=t,u=e.jsxs(h.Text,{element:"span",color:"secondary",modifiers:"bold",children:[a," ",i,n&&e.jsx(h.Text,{element:"span",modifiers:"normal",children:` | ${n}`})]}),c=typeof r=="function"?r({onToggle:l}):r;return e.jsx(T.Card,{background:"bg-muted",borderRadius:!1,borderless:!0,children:e.jsx(q.CardContent,{padding:0,children:c?e.jsx(j.Collapse,{id:"role-collapse",open:s,onToggle:l,className:d.default["header-role-collapse"],hideCollapseText:!0,title:u,children:e.jsx("div",{className:d.default["header-role-wrapper"],children:e.jsx(m.ScrollFade,{fadeSize:0,children:e.jsx("div",{className:d.default["header-role-children"],children:c})})})}):e.jsx("div",{className:d.default["header-role-children"],children:u})})})};exports.HeaderRole=p;exports.default=p;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as m, Fragment as b } from "react/jsx-runtime";
|
|
2
2
|
import y from "react";
|
|
3
3
|
import { Text as h } from "../../../../../../tedi/components/base/typography/text/text.es.js";
|
|
4
|
-
import { Collapse as v } from "../../../../../../tedi/components/
|
|
4
|
+
import { Collapse as v } from "../../../../../../tedi/components/content/collapse/collapse.es.js";
|
|
5
5
|
import { ScrollFade as f } from "../../../../../../tedi/components/misc/scroll-fade/scroll-fade.es.js";
|
|
6
6
|
import { Tag as T } from "../../../../tag/tag.es.js";
|
|
7
7
|
import { HeaderDropdown as x } from "../header-dropdown/header-dropdown.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),d=require("react"),S=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),h=require("../../../../../external/classnames/index.cjs.js"),T=require("../../../../tedi/components/base/icon/icon.cjs.js"),L=require("../../../../tedi/components/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),d=require("react"),S=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),h=require("../../../../../external/classnames/index.cjs.js"),T=require("../../../../tedi/components/base/icon/icon.cjs.js"),L=require("../../../../tedi/components/content/collapse/collapse.cjs.js"),P=require("../../../../tedi/components/misc/print/print.cjs.js"),q=require("../../../helpers/hooks/use-layout.cjs.js"),B=require("../../anchor/anchor.cjs.js"),C=require("../layout-context.cjs.js"),a=require("./sidenav.module.scss.cjs.js"),F=require("./utility.cjs.js"),A=n=>requestAnimationFrame(n),I=n=>{const{navItems:l,ariaLabel:i,linkAs:r,breakToBottomContent:c,breakToHeader:x,showDividers:u=!0,hideSubItemIcons:m=!1,className:v,..._}=n,p=q.default(["mobile","tablet"]),{menuOpen:b,context:g,getFloatingProps:f,floating:y,headerType:e,y:s}=d.useContext(C.LayoutContext),{hasSidenav:o}=F.useSidenavRendered(e,n);if(!o)return null;const N=h.default(a.default.sidenav,v,{[a.default["sidenav--has-dividers"]]:u,[a.default["sidenav--hide-subitem-icons"]]:m}),j=t.jsx(P.Print,{visibility:"hide",children:t.jsx("nav",{"data-name":"sidenav",..._,className:N,"aria-label":i,children:t.jsx("ul",{className:a.default.sidenav__list,role:"menubar","aria-label":i,children:l.map((E,M)=>d.createElement(k,{as:r,...E,key:M}))})})});return p?b?t.jsx(S.FloatingOverlay,{lockScroll:!0,className:a.default.sidenav__overlay,children:t.jsx(S.FloatingFocusManager,{context:g,order:["reference","content"],children:t.jsx("div",{...f({style:{paddingTop:s??0},className:a.default.sidenav,"aria-label":i}),ref:y,children:j})})}):null:j},k=n=>{const{icon:l,children:i,isActive:r,onClick:c,subItems:x,as:u,...m}=n,{toggleMenu:v,onHeaderSidenavToggle:_}=d.useContext(C.LayoutContext),p=q.default(["mobile","tablet"]),b=h.default(a.default.sidenav__item,{[a.default["sidenav__item--current"]]:r}),g=d.useId(),f=e=>{const o={className:h.default(a.default.sidenav__icon)},N=typeof e=="string"?{...o,name:e,color:"inherit"}:{...o,...e,className:h.default(o.className,e==null?void 0:e.className),background:void 0};return t.jsx(T.Icon,{...N})},y=e=>{c==null||c(e),e.stopPropagation(),typeof _=="function"||(p?A(()=>v()):v())};return t.jsx("li",{"data-name":"sidenav-item",className:b,role:"presentation",children:x?t.jsx(L.Collapse,{id:g,hideCollapseText:!0,open:r,title:t.jsxs("span",{...(({_href:e,...s})=>s)(m),className:a.default.sidenav__link,noStyle:!0,role:"menuitem","aria-current":r?"page":void 0,children:[l&&f(l),t.jsx("span",{className:a.default.sidenav__title,children:i})]}),children:t.jsx("ul",{className:a.default.sidenav__list,role:"menubar",children:x.map((e,s)=>d.createElement(k,{as:u,...e,key:s}))})}):t.jsxs(B.Anchor,{...m,as:u,onClick:y,className:a.default.sidenav__link,noStyle:!0,role:"menuitem","aria-current":r?"page":void 0,children:[l&&f(l),t.jsx("span",{className:a.default.sidenav__title,children:i})]})})};exports.SideNav=I;exports.default=I;
|
|
@@ -3,7 +3,7 @@ import y, { createElement as C } from "react";
|
|
|
3
3
|
import { FloatingOverlay as F, FloatingFocusManager as L } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
|
|
4
4
|
import v from "../../../../../external/classnames/index.es.js";
|
|
5
5
|
import { Icon as P } from "../../../../tedi/components/base/icon/icon.es.js";
|
|
6
|
-
import { Collapse as A } from "../../../../tedi/components/
|
|
6
|
+
import { Collapse as A } from "../../../../tedi/components/content/collapse/collapse.es.js";
|
|
7
7
|
import { Print as j } from "../../../../tedi/components/misc/print/print.es.js";
|
|
8
8
|
import k from "../../../helpers/hooks/use-layout.es.js";
|
|
9
9
|
import { Anchor as H } from "../../anchor/anchor.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),C=require("../../../../../external/classnames/index.cjs.js"),I=require("react"),j=require("../../../../tedi/components/base/typography/text/text.cjs.js"),c=require("../../../../tedi/components/base/icon/icon.cjs.js"),k=require("../../../../tedi/components/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),C=require("../../../../../external/classnames/index.cjs.js"),I=require("react"),j=require("../../../../tedi/components/base/typography/text/text.cjs.js"),c=require("../../../../tedi/components/base/icon/icon.cjs.js"),k=require("../../../../tedi/components/content/collapse/collapse.cjs.js"),s=require("../vertical-stepper.module.scss.cjs.js"),i=require("../../../../tedi/components/layout/grid/row.cjs.js"),o=require("../../../../tedi/components/layout/grid/col.cjs.js"),R=({children:t,className:h,isSelected:p,hasIcon:r,title:d,href:N,onClick:u,state:l="default",info:a,isOpen:m,onToggle:x})=>{const[g,q]=I.useState(!1),f=m??g,v=n=>{x&&x(n),m===void 0&&q(n)},y=C.default(s.default["stepper-item"],{[s.default[l]]:l,[s.default.selected]:p,[s.default["has-info"]]:a&&!t,[s.default["info-with-children"]]:a&&t,[s.default["stepper-collapse-open"]]:f},h);return e.jsxs("li",{role:"treeitem","aria-selected":p,className:y,children:[e.jsx("span",{className:s.default["stepper-counter"]}),e.jsx("div",{className:s.default["stepper-content"],children:t?e.jsx(k.Collapse,{onToggle:v,open:f,hideCollapseText:!0,id:"vertical-stepper-collapse",className:s.default["stepper-item-collapse"],title:e.jsxs(e.Fragment,{children:[e.jsx(i.Row,{alignItems:"start",children:e.jsx(o.Col,{children:e.jsxs(j.Text,{element:"span",className:s.default["stepper-link"],children:[d,r&&l==="error"&&e.jsx(c.Icon,{name:"error",color:"danger",size:16,display:"inline",className:s.default["stepper-icon"]}),r&&l==="completed"&&e.jsx(c.Icon,{name:"check",color:"success",size:16,display:"inline",className:s.default["stepper-icon"]})]})})}),e.jsx(i.Row,{children:e.jsx(o.Col,{children:a})})]}),children:t&&e.jsx("ul",{className:s.default["sub-item-list"],children:t})}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:s.default["stepper-link-container"],children:e.jsx("a",{href:N,onClick:n=>{n.preventDefault(),u&&u()},children:e.jsxs(j.Text,{element:"span",className:s.default["stepper-link"],children:[d,r&&l==="error"&&e.jsx(c.Icon,{name:"error",color:"danger",size:16,display:"inline",className:s.default["stepper-icon"]}),r&&l==="completed"&&e.jsx(c.Icon,{name:"check",color:"success",size:16,display:"inline",className:s.default["stepper-icon"]})]})})}),e.jsx(i.Row,{children:e.jsx(o.Col,{children:a})})]})}),e.jsx("div",{className:s.default["stepper-line"]})]})};exports.StepItem=R;
|
|
@@ -3,7 +3,7 @@ import j from "../../../../../external/classnames/index.es.js";
|
|
|
3
3
|
import I from "react";
|
|
4
4
|
import { Text as v } from "../../../../tedi/components/base/typography/text/text.es.js";
|
|
5
5
|
import { Icon as t } from "../../../../tedi/components/base/icon/icon.es.js";
|
|
6
|
-
import { Collapse as R } from "../../../../tedi/components/
|
|
6
|
+
import { Collapse as R } from "../../../../tedi/components/content/collapse/collapse.es.js";
|
|
7
7
|
import e from "../vertical-stepper.module.scss.es.js";
|
|
8
8
|
import { Row as c } from "../../../../tedi/components/layout/grid/row.es.js";
|
|
9
9
|
import { Col as o } from "../../../../tedi/components/layout/grid/col.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),L=require("../../../../../external/classnames/index.cjs.js"),T=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),L=require("../../../../../external/classnames/index.cjs.js"),T=require("react"),d=require("../../base/icon/icon.cjs.js"),e=require("./collapse-button.module.scss.cjs.js"),v=require("../../../providers/label-provider/use-labels.cjs.js"),b=T.forwardRef((f,m)=>{const{open:a,onOpenChange:s,openText:x,closeText:_,hideText:t=!1,arrowType:o="default",size:n="default",inverted:y=!1,underline:h=!0,className:j,onClick:c,"aria-label":i,...N}=f,{getLabel:r}=v.useLabels(),u=a?_??r("close"):x??r("open"),q=t?i??u:i,C=p=>{c==null||c(p),!p.defaultPrevented&&(s==null||s(!a))},B=L.default(e.default["tedi-collapse-button"],{[e.default["tedi-collapse-button--open"]]:a,[e.default["tedi-collapse-button--small"]]:n==="small",[e.default["tedi-collapse-button--inverted"]]:y&&o!=="secondary",[e.default["tedi-collapse-button--icon-only"]]:t,[e.default["tedi-collapse-button--neutral"]]:t&&o!=="secondary",[e.default["tedi-collapse-button--secondary"]]:t&&o==="secondary",[e.default["tedi-collapse-button--no-underline"]]:!t&&!h},j);return l.jsxs("button",{ref:m,type:"button",...N,className:B,onClick:C,"aria-expanded":a,"aria-label":q,children:[!t&&l.jsx("span",{className:e.default["tedi-collapse-button__text"],children:u}),t?o==="secondary"?l.jsx("span",{className:e.default["tedi-collapse-button__icon-wrapper"],children:l.jsx(d.Icon,{className:e.default["tedi-collapse-button__icon"],name:"expand_more",color:"inherit",filled:!0,size:24})}):l.jsx(d.Icon,{className:e.default["tedi-collapse-button__icon"],name:"expand_more",color:"inherit",filled:!0,size:n==="small"?18:24}):l.jsx("span",{className:e.default["tedi-collapse-button__icon-pad"],children:l.jsx(d.Icon,{className:e.default["tedi-collapse-button__icon"],name:"expand_more",color:"inherit",size:n==="small"?16:18})})]})});b.displayName="CollapseButton";const z=b;exports.CollapseButton=z;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { jsxs as v, jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import w from "../../../../../external/classnames/index.es.js";
|
|
3
3
|
import B from "react";
|
|
4
|
-
import { Icon as
|
|
4
|
+
import { Icon as i } from "../../base/icon/icon.es.js";
|
|
5
5
|
import e from "./collapse-button.module.scss.es.js";
|
|
6
6
|
import { useLabels as j } from "../../../providers/label-provider/use-labels.es.js";
|
|
7
|
-
const u = B.forwardRef((
|
|
7
|
+
const u = B.forwardRef((b, f) => {
|
|
8
8
|
const {
|
|
9
9
|
open: l,
|
|
10
10
|
onOpenChange: s,
|
|
11
|
-
openText:
|
|
12
|
-
closeText:
|
|
11
|
+
openText: _,
|
|
12
|
+
closeText: x,
|
|
13
13
|
hideText: t = !1,
|
|
14
14
|
arrowType: a = "default",
|
|
15
|
-
size:
|
|
15
|
+
size: n = "default",
|
|
16
16
|
inverted: y = !1,
|
|
17
17
|
underline: N = !0,
|
|
18
18
|
className: h,
|
|
19
|
-
onClick:
|
|
20
|
-
"aria-label":
|
|
19
|
+
onClick: r,
|
|
20
|
+
"aria-label": c,
|
|
21
21
|
...C
|
|
22
|
-
} =
|
|
23
|
-
|
|
22
|
+
} = b, { getLabel: d } = j(), p = l ? x ?? d("close") : _ ?? d("open"), z = t ? c ?? p : c, L = (m) => {
|
|
23
|
+
r == null || r(m), !m.defaultPrevented && (s == null || s(!l));
|
|
24
24
|
}, T = w(
|
|
25
25
|
e["tedi-collapse-button"],
|
|
26
26
|
{
|
|
27
27
|
[e["tedi-collapse-button--open"]]: l,
|
|
28
|
-
[e["tedi-collapse-button--small"]]:
|
|
28
|
+
[e["tedi-collapse-button--small"]]: n === "small",
|
|
29
29
|
[e["tedi-collapse-button--inverted"]]: y && a !== "secondary",
|
|
30
30
|
[e["tedi-collapse-button--icon-only"]]: t,
|
|
31
31
|
[e["tedi-collapse-button--neutral"]]: t && a !== "secondary",
|
|
@@ -37,7 +37,7 @@ const u = B.forwardRef((m, b) => {
|
|
|
37
37
|
return /* @__PURE__ */ v(
|
|
38
38
|
"button",
|
|
39
39
|
{
|
|
40
|
-
ref:
|
|
40
|
+
ref: f,
|
|
41
41
|
type: "button",
|
|
42
42
|
...C,
|
|
43
43
|
className: T,
|
|
@@ -45,9 +45,9 @@ const u = B.forwardRef((m, b) => {
|
|
|
45
45
|
"aria-expanded": l,
|
|
46
46
|
"aria-label": z,
|
|
47
47
|
children: [
|
|
48
|
-
!t && /* @__PURE__ */ o("span", { className: e["tedi-collapse-button__text"], children:
|
|
48
|
+
!t && /* @__PURE__ */ o("span", { className: e["tedi-collapse-button__text"], children: p }),
|
|
49
49
|
t ? a === "secondary" ? /* @__PURE__ */ o("span", { className: e["tedi-collapse-button__icon-wrapper"], children: /* @__PURE__ */ o(
|
|
50
|
-
|
|
50
|
+
i,
|
|
51
51
|
{
|
|
52
52
|
className: e["tedi-collapse-button__icon"],
|
|
53
53
|
name: "expand_more",
|
|
@@ -55,7 +55,24 @@ const u = B.forwardRef((m, b) => {
|
|
|
55
55
|
filled: !0,
|
|
56
56
|
size: 24
|
|
57
57
|
}
|
|
58
|
-
) }) : /* @__PURE__ */ o(
|
|
58
|
+
) }) : /* @__PURE__ */ o(
|
|
59
|
+
i,
|
|
60
|
+
{
|
|
61
|
+
className: e["tedi-collapse-button__icon"],
|
|
62
|
+
name: "expand_more",
|
|
63
|
+
color: "inherit",
|
|
64
|
+
filled: !0,
|
|
65
|
+
size: n === "small" ? 18 : 24
|
|
66
|
+
}
|
|
67
|
+
) : /* @__PURE__ */ o("span", { className: e["tedi-collapse-button__icon-pad"], children: /* @__PURE__ */ o(
|
|
68
|
+
i,
|
|
69
|
+
{
|
|
70
|
+
className: e["tedi-collapse-button__icon"],
|
|
71
|
+
name: "expand_more",
|
|
72
|
+
color: "inherit",
|
|
73
|
+
size: n === "small" ? 16 : 18
|
|
74
|
+
}
|
|
75
|
+
) })
|
|
59
76
|
]
|
|
60
77
|
}
|
|
61
78
|
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),q=require("../../../../../external/classnames/index.cjs.js"),n=require("react"),J=require("../../../../../external/react-animate-height/dist/esm/index.cjs.js"),K=require("../../../providers/printing-provider/printing-provider.cjs.js"),Q=require("../../buttons/collapse-button/collapse-button.cjs.js"),U=require("../../misc/print/print.cjs.js"),s=require("./collapse.module.scss.cjs.js"),V=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),W=require("../../layout/grid/row.cjs.js"),R=require("../../layout/grid/col.cjs.js"),w=d=>{const{getCurrentBreakpointProps:O}=V.useBreakpointProps(d.defaultServerBreakpoint),{id:l,children:P,className:k,openText:y,closeText:I,hideCollapseText:T=!1,title:o,titleRowProps:B,defaultOpen:S,open:u,onToggle:i,arrowType:E="default",size:N="default",underline:$=!0,toggleLabel:p,iconOnly:L=!1,controlsId:f,inverted:M=!1,fullRowToggle:a=!1,...z}=O(d),g=f!==void 0,h=`${l}__trigger`,x=`${l}__content`,A=`${l}__animate`,[D,F]=n.useState(()=>S??!1),v=K.usePrint(),r=v||(u!==void 0?u:D),G=L===!0&&!o,_=n.useRef(null),c=t=>{F(t),i==null||i(t)},m=n.useRef(c);m.current=c;const j=n.useRef(r);j.current=r,n.useEffect(()=>{const t=_.current;if(!a||!t)return;const b=H=>{H.target.closest("a, button, input, select, textarea, label")||m.current(!j.current)};return t.addEventListener("click",b),()=>t.removeEventListener("click",b)},[a]);const C=e.jsx("div",{id:x,role:"region","aria-labelledby":h,className:s.default["tedi-collapse__content"],children:P});return e.jsxs("div",{"data-name":"collapse",...z,className:q.default(s.default["tedi-collapse"],k),children:[e.jsx("div",{ref:_,className:q.default(s.default["tedi-collapse__header"],{[s.default["tedi-collapse__header--clickable"]]:a}),children:e.jsxs(W.Row,{justifyContent:"between",alignItems:"center",wrap:"nowrap",...B,children:[o&&e.jsx(R.Col,{children:o}),e.jsx(R.Col,{width:"auto",children:e.jsx(U.Print,{visibility:"hide",children:e.jsx(Q.CollapseButton,{id:h,open:r,onOpenChange:c,openText:y,closeText:I,hideText:T||G,arrowType:E,size:N,inverted:M,underline:$,"aria-controls":g?f:x,...p?{"aria-label":p}:{}})})})]})}),!g&&(v?C:e.jsx(J.default,{id:A,duration:300,height:r?"auto":0,"data-testid":"collapse-inner",children:C}))]})};exports.Collapse=w;exports.default=w;
|
|
@@ -27,12 +27,21 @@ type CollapseBreakpointProps = {
|
|
|
27
27
|
* Custom class name for the root element
|
|
28
28
|
*/
|
|
29
29
|
className?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Visual style of the toggle chevron, intended for icon-only toggles:
|
|
32
|
+
* `secondary` wraps the chevron in a bordered secondary button, `default` renders a plain arrow.
|
|
33
|
+
* @default default
|
|
34
|
+
*/
|
|
30
35
|
arrowType?: 'default' | 'secondary';
|
|
31
36
|
/**
|
|
32
37
|
* Collapse text & icon size
|
|
33
38
|
* @default default
|
|
34
39
|
*/
|
|
35
40
|
size?: 'default' | 'small';
|
|
41
|
+
/**
|
|
42
|
+
* Display underline below the title
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
36
45
|
underline?: boolean;
|
|
37
46
|
/**
|
|
38
47
|
* Render collapse as icon-only toggle.
|
|
@@ -48,6 +57,14 @@ type CollapseBreakpointProps = {
|
|
|
48
57
|
* @default false
|
|
49
58
|
*/
|
|
50
59
|
inverted?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Make the whole header row (title included) toggle on click, not just the chevron button.
|
|
62
|
+
* The chevron button stays the keyboard / screen-reader control; this only adds a mouse click
|
|
63
|
+
* target across the row. Clicks on interactive elements inside the title (links, buttons) are
|
|
64
|
+
* ignored, so they keep working.
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
fullRowToggle?: boolean;
|
|
51
68
|
};
|
|
52
69
|
export interface CollapseProps extends BreakpointSupport<CollapseBreakpointProps> {
|
|
53
70
|
/**
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsxs as x, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import y from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import r from "react";
|
|
4
|
+
import K from "../../../../../external/react-animate-height/dist/esm/index.es.js";
|
|
5
|
+
import { usePrint as M } from "../../../providers/printing-provider/printing-provider.es.js";
|
|
6
|
+
import { CollapseButton as Q } from "../../buttons/collapse-button/collapse-button.es.js";
|
|
7
|
+
import { Print as U } from "../../misc/print/print.es.js";
|
|
8
|
+
import o from "./collapse.module.scss.es.js";
|
|
9
|
+
import { useBreakpointProps as V } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
10
|
+
import { Row as W } from "../../layout/grid/row.es.js";
|
|
11
|
+
import { Col as O } from "../../layout/grid/col.es.js";
|
|
12
|
+
const ae = (d) => {
|
|
13
|
+
const { getCurrentBreakpointProps: k } = V(d.defaultServerBreakpoint), {
|
|
14
|
+
id: i,
|
|
15
|
+
children: I,
|
|
16
|
+
className: P,
|
|
17
|
+
openText: T,
|
|
18
|
+
closeText: N,
|
|
19
|
+
hideCollapseText: B = !1,
|
|
20
|
+
title: l,
|
|
21
|
+
titleRowProps: E,
|
|
22
|
+
defaultOpen: j,
|
|
23
|
+
open: p,
|
|
24
|
+
onToggle: s,
|
|
25
|
+
arrowType: L = "default",
|
|
26
|
+
size: S = "default",
|
|
27
|
+
underline: $ = !0,
|
|
28
|
+
toggleLabel: f,
|
|
29
|
+
iconOnly: z = !1,
|
|
30
|
+
controlsId: u,
|
|
31
|
+
inverted: A = !1,
|
|
32
|
+
fullRowToggle: a = !1,
|
|
33
|
+
...H
|
|
34
|
+
} = k(d), m = u !== void 0, h = `${i}__trigger`, g = `${i}__content`, q = `${i}__animate`, [D, F] = r.useState(() => j ?? !1), _ = M(), n = _ || (p !== void 0 ? p : D), G = z === !0 && !l, v = r.useRef(null), c = (t) => {
|
|
35
|
+
F(t), s == null || s(t);
|
|
36
|
+
}, C = r.useRef(c);
|
|
37
|
+
C.current = c;
|
|
38
|
+
const R = r.useRef(n);
|
|
39
|
+
R.current = n, r.useEffect(() => {
|
|
40
|
+
const t = v.current;
|
|
41
|
+
if (!a || !t) return;
|
|
42
|
+
const w = (J) => {
|
|
43
|
+
J.target.closest("a, button, input, select, textarea, label") || C.current(!R.current);
|
|
44
|
+
};
|
|
45
|
+
return t.addEventListener("click", w), () => t.removeEventListener("click", w);
|
|
46
|
+
}, [a]);
|
|
47
|
+
const b = /* @__PURE__ */ e("div", { id: g, role: "region", "aria-labelledby": h, className: o["tedi-collapse__content"], children: I });
|
|
48
|
+
return /* @__PURE__ */ x("div", { "data-name": "collapse", ...H, className: y(o["tedi-collapse"], P), children: [
|
|
49
|
+
/* @__PURE__ */ e(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
ref: v,
|
|
53
|
+
className: y(o["tedi-collapse__header"], {
|
|
54
|
+
[o["tedi-collapse__header--clickable"]]: a
|
|
55
|
+
}),
|
|
56
|
+
children: /* @__PURE__ */ x(W, { justifyContent: "between", alignItems: "center", wrap: "nowrap", ...E, children: [
|
|
57
|
+
l && /* @__PURE__ */ e(O, { children: l }),
|
|
58
|
+
/* @__PURE__ */ e(O, { width: "auto", children: /* @__PURE__ */ e(U, { visibility: "hide", children: /* @__PURE__ */ e(
|
|
59
|
+
Q,
|
|
60
|
+
{
|
|
61
|
+
id: h,
|
|
62
|
+
open: n,
|
|
63
|
+
onOpenChange: c,
|
|
64
|
+
openText: T,
|
|
65
|
+
closeText: N,
|
|
66
|
+
hideText: B || G,
|
|
67
|
+
arrowType: L,
|
|
68
|
+
size: S,
|
|
69
|
+
inverted: A,
|
|
70
|
+
underline: $,
|
|
71
|
+
"aria-controls": m ? u : g,
|
|
72
|
+
...f ? { "aria-label": f } : {}
|
|
73
|
+
}
|
|
74
|
+
) }) })
|
|
75
|
+
] })
|
|
76
|
+
}
|
|
77
|
+
),
|
|
78
|
+
!m && (_ ? b : /* @__PURE__ */ e(K, { id: q, duration: 300, height: n ? "auto" : 0, "data-testid": "collapse-inner", children: b }))
|
|
79
|
+
] });
|
|
80
|
+
};
|
|
81
|
+
export {
|
|
82
|
+
ae as Collapse,
|
|
83
|
+
ae as default
|
|
84
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-collapse__content":"tedi-collapse__content-d9c6f765","tedi-collapse__header--clickable":"tedi-collapse__header--clickable-c4721f94","tedi-collapse__header":"tedi-collapse__header-460b1508"};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),ie=require("../../../../../external/@tanstack/react-table/build/lib/index.cjs.js"),I=require("../../../../../external/classnames/index.cjs.js"),i=require("react"),ft=require("../../base/icon/icon.cjs.js"),cn=require("../../buttons/collapse/collapse.cjs.js"),gt=require("../../form/checkbox/checkbox.cjs.js"),un=require("../../form/radio/radio.cjs.js"),gn=require("../../form/textfield/textfield.cjs.js"),o=require("./table.module.scss.cjs.js"),fn=require("./table-columns-menu/table-columns-menu.cjs.js"),pn=require("./table-context.cjs.js"),mn=require("./table-header-button/table-header-button.cjs.js"),bn=require("./table-toolbar/table-toolbar.cjs.js"),hn=require("./use-table-persistence.cjs.js"),xn=require("../../../providers/label-provider/use-labels.cjs.js"),oe=require("../../../../../external/@tanstack/table-core/build/lib/index.cjs.js"),wn=require("../../navigation/pagination/pagination.cjs.js"),Cn=(D,T)=>M=>{const v=M.index;if(v<0||v>=D.length)return 1;const N=T(D[v]);if(v>0&&T(D[v-1])===N)return 0;let E=1;for(let L=v+1;L<D.length&&T(D[L])===N;L++)E++;return E},pt="data-tedi-drag-handle",_n=({label:D,onHandlePointerDown:T,id:M,pickedUp:v,onKeyDown:N})=>r.jsx("button",{type:"button",id:M,className:I.default(o.default["tedi-table__drag-handle"],{[o.default["tedi-table__drag-handle--picked-up"]]:v}),"aria-label":D,"aria-pressed":v,onClick:E=>E.stopPropagation(),onMouseDown:T,onTouchStart:T,onKeyDown:N,[pt]:"",children:r.jsx(ft.Icon,{name:"drag_indicator",size:18,color:"inherit"})}),vn=D=>{const{row:T,rowClassName:M,rowStyle:v,isActiveRow:N,clickable:E,onClick:L,onKeyDownHandler:_e,ariaRowIndex:ve,columnProps:Z,draggable:re,dragHandleLabel:se,dragHandlers:g,dragHandleId:Se,dragHandlePickedUp:Re,dragOverColumnId:de}=D;return r.jsx("tr",{className:M,style:v,draggable:re||void 0,onDragStart:g==null?void 0:g.onDragStart,onDragOver:g==null?void 0:g.onDragOver,onDragLeave:g==null?void 0:g.onDragLeave,onDragEnd:g==null?void 0:g.onDragEnd,onDrop:g==null?void 0:g.onDrop,onClick:E&&L?()=>L(T):void 0,onKeyDown:E?_e:void 0,tabIndex:E?0:void 0,role:E?"button":void 0,"aria-rowindex":ve,"aria-current":N?"true":void 0,children:T.getVisibleCells().map(O=>{var ce;const f=O.column.columnDef.meta,P=Z==null?void 0:Z(O.column.id),ee=re&&O.column.id===Ce,A=!!de&&O.column.id===de,B=(ce=f==null?void 0:f.rowSpan)==null?void 0:ce.call(f,O.row);return B===0?null:r.jsx("td",{rowSpan:B&&B>1?B:void 0,className:I.default(o.default["tedi-table__cell"],{[o.default[`tedi-table__cell--align-${f==null?void 0:f.align}`]]:f==null?void 0:f.align,[o.default[`tedi-table__cell--valign-${f==null?void 0:f.vAlign}`]]:f==null?void 0:f.vAlign,[o.default["tedi-table__cell--drag-handle"]]:ee,[o.default["tedi-table__cell--drag-over"]]:A},P==null?void 0:P.className),style:P==null?void 0:P.style,children:ee?r.jsx(_n,{label:se,onHandlePointerDown:(g==null?void 0:g.onHandlePointerDown)??(()=>{}),onKeyDown:g==null?void 0:g.onKeyDown,id:Se,pickedUp:Re}):ie.flexRender(O.column.columnDef.cell,O.getContext())},O.id)})})},Me="__select__",Be="__expand__",Ce="__drag__",ae=()=>!0,Sn={text:ae,select:ae,"multi-select":ae,"date-range":ae,"date-range-period":ae};function Rn(D){return Array.isArray(D.columns)}function mt(D){const{id:T,data:M,columns:v,size:N="medium",caption:E,state:L,defaultState:_e,onStateChange:ve,persist:Z,emptyState:re,emptyStateRole:se,className:g,children:Se,striped:Re=!1,verticalBorders:de=!1,borderless:O=!1,stickyFirstColumn:f=!1,stickyHeader:P=!1,maxHeight:ee,onRowClick:A,activeRowId:B,rowHover:ce,enableRowSelection:qe,selectionMode:De="multiple",highlightSelectedRows:bt=!0,enableColumnFilters:ye=!1,renderSubComponent:ue,getRowCanExpand:He,getSubRows:Ue,getRowId:ht,expandTrigger:ke="button",paginateExpandedRows:xt=!1,pagination:q,autoResetPageIndex:wt=!0,manualPagination:U=!1,manualSorting:Ie=!1,manualFiltering:Te=!1,pageCount:Ke,rowCount:ge,checkboxProps:Ee,radioProps:Ve,collapseProps:Ge,rowProps:Ne,columnProps:H,reorderableRows:S=!1,onRowDrop:$,reorderableColumns:K=!1}=D,{getLabel:h}=xn.useLabels(),We=re??h("table.no-data"),V=i.useRef(h);V.current=h;const Ct=i.useId(),p=T??Ct,x=i.useMemo(()=>q?q===!0?{pageSize:10,pageSizeOptions:[10,25,50],paginationProps:void 0}:{pageSize:q.pageSize??10,pageSizeOptions:q.pageSizeOptions===void 0?[10,25,50]:q.pageSizeOptions,paginationProps:q.paginationProps}:null,[q]),y=x!==null,_t=i.useMemo(()=>{const e=x==null?void 0:x.pageSizeOptions;return Array.isArray(e)&&e.length>0?e:void 0},[x]),[j,R]=hn.useTablePersistence({persist:Z,controlled:L,defaultState:_e,onStateChange:ve}),vt=i.useCallback(e=>{R(n=>{const t=n.columnVisibility??{};return{columnVisibility:typeof e=="function"?e(t):e}})},[R]),St=i.useCallback(e=>{R(n=>{const t=n.rowSelection??{};return{rowSelection:typeof e=="function"?e(t):e}})},[R]),Rt=i.useCallback(e=>{R(n=>{const t=n.expanded??{};return{expanded:typeof e=="function"?e(t):e}})},[R]),Dt=i.useCallback(e=>{R(n=>{const t=n.columnFilters??[];return{columnFilters:typeof e=="function"?e(t):e}})},[R]),yt=i.useCallback(e=>{R(n=>{const t=n.columnOrder??[];return{columnOrder:typeof e=="function"?e(t):e}})},[R]),kt=i.useCallback(e=>{R(n=>{const t=n.sorting??[];return{sorting:typeof e=="function"?e(t):e}})},[R]),It=i.useCallback(e=>{R(n=>{const t=n.pagination??{pageIndex:0,pageSize:(x==null?void 0:x.pageSize)??10};return{pagination:typeof e=="function"?e(t):e}})},[R,x]),te=!!(ue||Ue),Xe=!!qe,Tt=i.useMemo(()=>oe.getCoreRowModel(),[]),Et=i.useMemo(()=>Te?void 0:oe.getFilteredRowModel(),[Te]),Nt=i.useMemo(()=>Ie?void 0:oe.getSortedRowModel(),[Ie]),Ot=i.useMemo(()=>te?oe.getExpandedRowModel():void 0,[te]),$t=i.useMemo(()=>y&&!U?oe.getPaginationRowModel():void 0,[y,U]),jt=i.useMemo(()=>{const e=[];if(S&&e.push({id:Ce,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:"",cell:()=>null}),Xe){const n=De==="single",t=`${p}-select`;e.push({id:Me,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:n?"":({table:l})=>r.jsx(gt.Checkbox,{...Ee,id:`${p}-select-all`,name:`${p}-select-all`,label:V.current("table.select-all",l.getIsAllPageRowsSelected()),hideLabel:!0,value:"all",checked:l.getIsAllPageRowsSelected(),indeterminate:l.getIsSomePageRowsSelected()&&!l.getIsAllPageRowsSelected(),onChange:(a,s)=>l.toggleAllPageRowsSelected(s)}),cell:({row:l})=>n?r.jsx(un.Radio,{...Ve,id:`${p}-select-${l.id}`,name:t,label:V.current("table.select-row",l.getIsSelected()),hideLabel:!0,value:l.id,checked:l.getIsSelected(),disabled:!l.getCanSelect(),onChange:(a,s)=>{s&&l.toggleSelected(!0)}}):r.jsx(gt.Checkbox,{...Ee,id:`${p}-select-${l.id}`,name:`${p}-select-${l.id}`,label:V.current("table.select-row",l.getIsSelected()),hideLabel:!0,value:l.id,checked:l.getIsSelected(),disabled:!l.getCanSelect(),indeterminate:l.getIsSomeSelected(),onChange:(a,s)=>l.toggleSelected(s)})})}return te&&e.push({id:Be,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:"",cell:({row:n})=>{if(!n.getCanExpand())return null;const t=`${p}-sub-${n.id}`;return r.jsx("span",{onClick:l=>l.stopPropagation(),onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&l.stopPropagation()},children:r.jsx(cn.Collapse,{iconOnly:!0,arrowType:ke==="row"?"default":"secondary",hideCollapseText:!0,...Ge,id:`${p}-expand-${n.id}`,controlsId:t,openText:V.current("table.expand-row"),closeText:V.current("table.collapse-row"),open:n.getIsExpanded(),onToggle:()=>n.toggleExpanded(),children:null})})}}),[...e,...v]},[v,Xe,De,te,ke,S,p,Ee,Ve,Ge]),Lt=i.useMemo(()=>({}),[]),Pt=i.useMemo(()=>({}),[]),At=i.useMemo(()=>[],[]),Ft=i.useMemo(()=>[],[]),zt=i.useMemo(()=>[],[]),Mt=i.useMemo(()=>({pageIndex:0,pageSize:(x==null?void 0:x.pageSize)??10}),[x]),c=ie.useReactTable({data:M,columns:jt,state:{columnVisibility:j.columnVisibility,columnOrder:j.columnOrder??Ft,rowSelection:j.rowSelection??Lt,expanded:j.expanded??Pt,columnFilters:j.columnFilters??At,sorting:j.sorting??zt,pagination:y?j.pagination??Mt:void 0},enableRowSelection:qe,enableMultiRowSelection:De!=="single",enableColumnFilters:ye,autoResetPageIndex:wt,paginateExpandedRows:y&&!U?xt:!0,manualPagination:U,manualSorting:Ie,manualFiltering:Te,pageCount:U&&Ke!==void 0?Ke:void 0,rowCount:U&&ge!==void 0?ge:void 0,getRowCanExpand:ue?He??(()=>!0):He,getSubRows:Ue,getRowId:ht,onColumnVisibilityChange:vt,onColumnOrderChange:yt,onRowSelectionChange:St,onExpandedChange:Rt,onColumnFiltersChange:Dt,onSortingChange:kt,onPaginationChange:y?It:void 0,filterFns:Sn,getCoreRowModel:Tt,getFilteredRowModel:Et,getExpandedRowModel:Ot,getSortedRowModel:Nt,getPaginationRowModel:$t}),Bt=i.useMemo(()=>({table:c,size:N,id:p,state:j}),[c,N,p,j]),qt=i.useCallback(e=>c.setPageIndex(e-1),[c]),Ht=i.useCallback(e=>c.setPageSize(e),[c]),Ut=c.getHeaderGroups().length>1,fe=ke==="row"&&te,Kt=ce??(!!A||fe),Vt=I.default(o.default["tedi-table"],o.default[`tedi-table--${N}`],{[o.default["tedi-table--striped"]]:Re,[o.default["tedi-table--vertical-borders"]]:de,[o.default["tedi-table--borderless"]]:O,[o.default["tedi-table--sticky-first-column"]]:f,[o.default["tedi-table--sticky-header"]]:P,[o.default["tedi-table--clickable-rows"]]:!!A||fe,[o.default["tedi-table--row-hover"]]:Kt,[o.default["tedi-table--has-pagination"]]:y,[o.default["tedi-table--grouped-headers"]]:Ut},g),w=c.getRowModel().rows,pe=c.getHeaderGroups(),Ye=c.getFooterGroups(),Je=c.getVisibleLeafColumns(),me=Je.length,Gt=Ye.some(e=>e.headers.some(n=>n.column.columnDef.footer!==void 0)),Qe=e=>!!A||fe&&e.getCanExpand(),Ze=e=>{fe&&e.getCanExpand()&&e.toggleExpanded(),A==null||A(e)},Wt=e=>n=>{Qe(e)&&n.target===n.currentTarget&&(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),Ze(e))},et=pe.length+(ye?1:0),tt=c.getState().pagination,Xt=y?tt.pageIndex*tt.pageSize:0,Yt=y?ge??c.getFilteredRowModel().rows.length:w.length,Jt=y?et+Yt:void 0,[nt,Oe]=i.useState(null),[Qt,be]=i.useState(null),G=i.useRef(null),W=i.useRef(null),[lt,$e]=i.useState(null),[ot,he]=i.useState(null),X=i.useRef(null),Y=i.useRef(null),[at,je]=i.useState(null),xe=i.useRef([]),[it,Le]=i.useState(null),ne=i.useRef(-1),[Zt,F]=i.useState(""),we=i.useRef(null),[en,rt]=i.useState(0),Pe=i.useMemo(()=>S?new Map(w.map(e=>[e.id,e.index])):new Map,[S,w]);i.useEffect(()=>{if(!S&&!K)return;const e=()=>{W.current=null,Y.current=null};return window.addEventListener("mouseup",e),window.addEventListener("touchend",e),()=>{window.removeEventListener("mouseup",e),window.removeEventListener("touchend",e)}},[S,K]);const tn=i.useCallback(e=>({onHandlePointerDown:()=>{W.current=e},onDragStart:n=>{if(W.current!==e){n.preventDefault();return}W.current=null,n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain",e)}catch{}const t=n.currentTarget,l=t.closest("table");if(l){const a=t.getBoundingClientRect(),s=Array.from(t.children),u=document.createElement("div");u.style.cssText=`position:fixed;top:-10000px;left:0;width:${a.width}px;pointer-events:none;`;const b=document.createElement("table");b.className=l.className,b.style.cssText=`width:${a.width}px;table-layout:fixed;border-collapse:collapse;`;const C=document.createElement("tbody"),_=t.cloneNode(!0);_.classList.add(o.default["tedi-table__row--drag-preview"]);const d=Array.from(_.children);s.forEach((J,k)=>{const z=d[k];if(!z)return;const le=J.getBoundingClientRect();z.style.width=`${le.width}px`,z.style.minWidth=`${le.width}px`,z.style.maxWidth=`${le.width}px`}),C.appendChild(_),b.appendChild(C),u.appendChild(b),document.body.appendChild(u),n.dataTransfer.setDragImage(u,24,a.height/2),window.setTimeout(()=>u.remove(),0)}G.current=e,Oe(e)},onDragOver:n=>{!G.current||G.current===e||(n.preventDefault(),n.dataTransfer.dropEffect="move",be(e))},onDragLeave:()=>{be(n=>n===e?null:n)},onDragEnd:()=>{G.current=null,W.current=null,Oe(null),be(null)},onDrop:n=>{n.preventDefault();const t=G.current,l=e;if(G.current=null,W.current=null,Oe(null),be(null),!t||t===l)return;const a=Pe.get(t),s=Pe.get(l);a===void 0||s===void 0||$==null||$({fromId:t,toId:l,fromIndex:a,toIndex:s})}}),[Pe,$]),st=(e,n,t)=>{const l=e.slice(),[a]=l.splice(n,1);return l.splice(t,0,a),l},nn=i.useCallback(e=>({onHandlePointerDown:()=>{Y.current=e},onDragStart:n=>{if(Y.current!==e){n.preventDefault();return}Y.current=null,n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain",e)}catch{}const t=n.currentTarget,l=t.getBoundingClientRect(),a=document.createElement("div");a.style.cssText=`position:fixed;top:-10000px;left:0;width:${l.width}px;pointer-events:none;`;const s=document.createElement("table"),u=t.closest("table");s.className=(u==null?void 0:u.className)??"",s.style.cssText=`width:${l.width}px;table-layout:fixed;border-collapse:collapse;`;const b=document.createElement("thead"),C=document.createElement("tr");C.className=o.default["tedi-table__row"];const _=t.cloneNode(!0);_.classList.add(o.default["tedi-table__header-cell--drag-preview"]),_.style.width=`${l.width}px`,C.appendChild(_),b.appendChild(C),s.appendChild(b),a.appendChild(s),document.body.appendChild(a),n.dataTransfer.setDragImage(a,l.width/2,l.height/2),window.setTimeout(()=>a.remove(),0),X.current=e,$e(e)},onDragOver:n=>{!X.current||X.current===e||(n.preventDefault(),n.dataTransfer.dropEffect="move",he(e))},onDragLeave:()=>{he(n=>n===e?null:n)},onDragEnd:()=>{X.current=null,Y.current=null,$e(null),he(null)},onDrop:n=>{n.preventDefault();const t=X.current,l=e;if(X.current=null,Y.current=null,$e(null),he(null),!t||t===l)return;const a=c.getState().columnOrder,s=a.length>0?a:c.getAllLeafColumns().map(C=>C.id),u=s.indexOf(t),b=s.indexOf(l);u<0||b<0||c.setColumnOrder(st(s,u,b))}}),[c]),ln=e=>`${p}-col-reorder-${e}`,on=e=>`${p}-row-reorder-${e}`,dt=()=>c.getVisibleLeafColumns().filter(e=>!e.parent&&e.id!==Ce&&e.id!==Me&&e.id!==Be).map(e=>e.id),Ae=e=>{const n=c.getColumn(e),t=n==null?void 0:n.columnDef.meta;return(t==null?void 0:t.label)??(typeof(n==null?void 0:n.columnDef.header)=="string"?n.columnDef.header:e)},ct=(e,n)=>{const t=dt(),l=t.indexOf(n);if(l<0)return;const a=l+e;if(a<0||a>=t.length)return;const s=st(t,l,a),u=c.getState().columnOrder.length>0?[...c.getState().columnOrder]:c.getAllLeafColumns().map(d=>d.id),b=new Set(t);let C=0;const _=u.map(d=>b.has(d)?s[C++]:d);for(const d of s)_.includes(d)||_.push(d);c.setColumnOrder(_),F(h("table.reorder.move",Ae(n),a+1)),we.current={kind:"column",id:n},rt(d=>d+1)},an=(e,n)=>{if(!K)return;const t=at;switch(e.key){case" ":case"Enter":if(e.preventDefault(),t===null)xe.current=[...c.getState().columnOrder??[]],je(n),F(h("table.reorder.pickup",Ae(n)));else{const l=dt().indexOf(t)+1;je(null),xe.current=[],F(h("table.reorder.drop",Ae(t),l))}break;case"Escape":t!==null&&(e.preventDefault(),c.setColumnOrder(xe.current),je(null),xe.current=[],F(h("table.reorder.cancel")));break;case"ArrowLeft":t!==null&&(e.preventDefault(),ct(-1,t));break;case"ArrowRight":t!==null&&(e.preventDefault(),ct(1,t));break}},ut=(e,n)=>{const t=w.findIndex(u=>u.original===n);if(t<0)return;const l=t+e;if(l<0||l>=w.length)return;const a=w[t],s=w[l];$==null||$({fromId:a.id,toId:s.id,fromIndex:a.index,toIndex:s.index}),F(h("table.row-reorder.move",l+1)),we.current={kind:"row",original:n},rt(u=>u+1)},rn=(e,n)=>{if(!S)return;const t=it;switch(e.key){case" ":case"Enter":if(e.preventDefault(),t===null)Le(n.original),ne.current=n.index,F(h("table.row-reorder.pickup",w.indexOf(n)+1));else{const l=w.findIndex(a=>a.original===t)+1;Le(null),ne.current=-1,F(h("table.row-reorder.drop",l))}break;case"Escape":if(t!==null){e.preventDefault();const l=w.findIndex(a=>a.original===t);if(l>=0&&ne.current>=0){const a=w[l];$==null||$({fromId:a.id,toId:a.id,fromIndex:a.index,toIndex:ne.current})}Le(null),ne.current=-1,F(h("table.row-reorder.cancel"))}break;case"ArrowUp":t!==null&&(e.preventDefault(),ut(-1,t));break;case"ArrowDown":t!==null&&(e.preventDefault(),ut(1,t));break}};return i.useEffect(()=>{var t;const e=we.current;if(!e)return;we.current=null;let n;if(e.kind==="column")n=`${p}-col-reorder-${e.id}`;else{const l=w.find(a=>a.original===e.original);n=l?`${p}-row-reorder-${l.id}`:null}n&&((t=document.getElementById(n))==null||t.focus())},[en,w,p]),r.jsx(pn.TableContext.Provider,{value:Bt,children:r.jsxs("div",{className:Vt,"data-name":"tedi-table",children:[Se,(S||K)&&r.jsx("div",{className:o.default["tedi-table__sr-only"],"aria-live":"polite","aria-atomic":"true",children:Zt}),r.jsx("div",{className:o.default["tedi-table__scroll"],style:ee!==void 0?{maxHeight:ee,overflowY:"auto"}:void 0,children:r.jsxs("table",{id:T,className:o.default["tedi-table__table"],"aria-rowcount":Jt,"aria-colcount":me>0?me:void 0,children:[E&&r.jsx("caption",{className:o.default["tedi-table__caption"],children:E}),r.jsxs("thead",{className:o.default["tedi-table__head"],children:[pe.map((e,n)=>r.jsx("tr",{className:o.default["tedi-table__row"],"aria-rowindex":y?n+1:void 0,children:e.headers.map(t=>{const l=t.subHeaders.length>0,a=!!t.column.parent,s=Rn(t.column.columnDef),u=!s&&!a;if(t.isPlaceholder&&!u||!t.isPlaceholder&&u&&n>0)return null;const b=u?pe.length-n:1,C=t.column.getIsSorted(),_=t.column.getCanSort()?C==="asc"?"ascending":C==="desc"?"descending":"none":void 0,d=t.column.columnDef.meta,J=(d==null?void 0:d.label)??(typeof t.column.columnDef.header=="string"?t.column.columnDef.header:void 0),k=H==null?void 0:H(t.column.id),z=t.column.getSize(),le=t.column.id===Ce||t.column.id===Me||t.column.id===Be,Q=K&&u&&!le,m=Q?nn(t.column.id):void 0,sn=Q&<===t.column.id,dn=Q&&ot===t.column.id&<!==t.column.id,Fe=Q&&at===t.column.id;return r.jsx("th",{colSpan:t.colSpan,rowSpan:b>1?b:void 0,draggable:Q||void 0,onDragStart:m==null?void 0:m.onDragStart,onDragOver:m==null?void 0:m.onDragOver,onDragLeave:m==null?void 0:m.onDragLeave,onDragEnd:m==null?void 0:m.onDragEnd,onDrop:m==null?void 0:m.onDrop,className:I.default(o.default["tedi-table__header-cell"],{[o.default["tedi-table__header-cell--group"]]:l,[o.default["tedi-table__header-cell--dragging"]]:sn,[o.default["tedi-table__header-cell--drag-over"]]:dn,[o.default["tedi-table__header-cell--picked-up"]]:Fe,[o.default[`tedi-table__cell--align-${d==null?void 0:d.align}`]]:d==null?void 0:d.align,[o.default[`tedi-table__cell--valign-${d==null?void 0:d.vAlign}`]]:d==null?void 0:d.vAlign},k==null?void 0:k.className),scope:"col","aria-sort":_,"aria-label":J??(s?void 0:t.column.id),style:z||k!=null&&k.style?{...z?{width:z}:null,...k==null?void 0:k.style}:void 0,children:Q&&m?r.jsxs("span",{className:o.default["tedi-table__header-cell-inner"],children:[r.jsx("button",{type:"button",id:ln(t.column.id),className:I.default(o.default["tedi-table__drag-handle"],{[o.default["tedi-table__drag-handle--picked-up"]]:Fe}),"aria-label":h("table.drag-column",J??t.column.id),"aria-pressed":Fe,onClick:ze=>ze.stopPropagation(),onMouseDown:m.onHandlePointerDown,onTouchStart:m.onHandlePointerDown,onKeyDown:ze=>an(ze,t.column.id),[pt]:"",children:r.jsx(ft.Icon,{name:"drag_indicator",size:18,color:"inherit"})}),ie.flexRender(t.column.columnDef.header,t.getContext())]}):ie.flexRender(t.column.columnDef.header,t.getContext())},t.id)})},e.id)),ye&&r.jsx("tr",{className:I.default(o.default["tedi-table__row"],o.default["tedi-table__row--filter"]),"aria-rowindex":y?pe.length+1:void 0,children:Je.map(e=>{const n=e.columnDef.meta,t=(n==null?void 0:n.label)??(typeof e.columnDef.header=="string"?e.columnDef.header:e.id),l=`${p}-filter-${e.id}`,a=H==null?void 0:H(e.id);return r.jsx("th",{className:I.default(o.default["tedi-table__header-cell"],a==null?void 0:a.className),style:a==null?void 0:a.style,scope:"col",children:e.getCanFilter()&&r.jsx(gn.TextField,{size:"small",placeholder:h("table.filter-placeholder"),...n==null?void 0:n.filterProps,id:l,name:l,label:h("table.filter-input",t),hideLabel:!0,value:e.getFilterValue()??"",onChange:s=>e.setFilterValue(s||void 0)})},e.id)})})]}),r.jsx("tbody",{className:o.default["tedi-table__body"],children:w.length===0?r.jsx("tr",{className:o.default["tedi-table__row"],children:r.jsx("td",{colSpan:Math.max(1,me),className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--placeholder"]),children:se?r.jsx("div",{role:se,children:We}):We})}):w.map((e,n)=>{const t=Qe(e),l=B!==void 0&&e.id===B,a=Ne==null?void 0:Ne(e),s=I.default(o.default["tedi-table__row"],{[o.default["tedi-table__row--selected"]]:bt&&e.getIsSelected(),[o.default["tedi-table__row--active"]]:l,[o.default["tedi-table__row--clickable"]]:t,[o.default["tedi-table__row--sub-row"]]:e.depth>0},a==null?void 0:a.className),u=y?et+Xt+n+1:void 0,b=`${p}-sub-${e.id}`,C=S&&nt===e.id,_=S&&Qt===e.id&&nt!==e.id,d=S&&it===e.original,J={row:e,rowClassName:I.default(s,{[o.default["tedi-table__row--dragging"]]:C,[o.default["tedi-table__row--drag-over"]]:_,[o.default["tedi-table__row--picked-up"]]:d}),rowStyle:a==null?void 0:a.style,isActiveRow:l,clickable:t,onClick:Ze,onKeyDownHandler:Wt(e),ariaRowIndex:u,columnProps:H,draggable:S,dragHandleLabel:h("table.drag-row"),dragHandlers:S?{...tn(e.id),onKeyDown:k=>rn(k,e)}:void 0,dragHandleId:S?on(e.id):void 0,dragHandlePickedUp:d,dragOverColumnId:K?ot:null};return r.jsxs(i.Fragment,{children:[r.jsx(vn,{...J}),ue&&e.getIsExpanded()&&r.jsx("tr",{className:I.default(o.default["tedi-table__row"],o.default["tedi-table__row--sub-component"]),children:r.jsx("td",{id:b,role:"region","aria-label":h("table.row-details"),colSpan:Math.max(1,me),className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--sub-component"]),children:ue(e)})})]},e.id)})}),Gt&&r.jsx("tfoot",{className:o.default["tedi-table__foot"],children:Ye.map(e=>r.jsx("tr",{className:o.default["tedi-table__row"],children:e.headers.map(n=>{const t=n.column.columnDef.meta;return r.jsx("td",{colSpan:n.colSpan,className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--footer"],{[o.default[`tedi-table__cell--align-${t==null?void 0:t.align}`]]:t==null?void 0:t.align,[o.default[`tedi-table__cell--valign-${t==null?void 0:t.vAlign}`]]:t==null?void 0:t.vAlign}),children:n.isPlaceholder?null:ie.flexRender(n.column.columnDef.footer,n.getContext())},n.id)})},e.id))})]})}),y&&r.jsx("div",{className:o.default["tedi-table__pagination"],children:r.jsx(wn.Pagination,{...x==null?void 0:x.paginationProps,pageCount:Math.max(1,c.getPageCount()),page:c.getState().pagination.pageIndex+1,onPageChange:qt,totalItems:ge??c.getFilteredRowModel().rows.length,pageSize:c.getState().pagination.pageSize,pageSizeOptions:_t,onPageSizeChange:Ht})})]})})}mt.displayName="Table";const Dn=Object.assign(mt,{Toolbar:bn.TableToolbar,ColumnsMenu:fn.TableColumnsMenu,HeaderButton:mn.TableHeaderButton});exports.Table=Dn;exports.groupRowSpan=Cn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),re=require("../../../../../external/@tanstack/react-table/build/lib/index.cjs.js"),I=require("../../../../../external/classnames/index.cjs.js"),i=require("react"),ft=require("../../base/icon/icon.cjs.js"),cn=require("../../buttons/collapse-button/collapse-button.cjs.js"),gt=require("../../form/checkbox/checkbox.cjs.js"),un=require("../../form/radio/radio.cjs.js"),gn=require("../../form/textfield/textfield.cjs.js"),o=require("./table.module.scss.cjs.js"),fn=require("./table-columns-menu/table-columns-menu.cjs.js"),pn=require("./table-context.cjs.js"),mn=require("./table-header-button/table-header-button.cjs.js"),bn=require("./table-toolbar/table-toolbar.cjs.js"),hn=require("./use-table-persistence.cjs.js"),xn=require("../../../providers/label-provider/use-labels.cjs.js"),ae=require("../../../../../external/@tanstack/table-core/build/lib/index.cjs.js"),wn=require("../../navigation/pagination/pagination.cjs.js"),Cn=(D,T)=>B=>{const v=B.index;if(v<0||v>=D.length)return 1;const N=T(D[v]);if(v>0&&T(D[v-1])===N)return 0;let E=1;for(let L=v+1;L<D.length&&T(D[L])===N;L++)E++;return E},pt="data-tedi-drag-handle",_n=({label:D,onHandlePointerDown:T,id:B,pickedUp:v,onKeyDown:N})=>r.jsx("button",{type:"button",id:B,className:I.default(o.default["tedi-table__drag-handle"],{[o.default["tedi-table__drag-handle--picked-up"]]:v}),"aria-label":D,"aria-pressed":v,onClick:E=>E.stopPropagation(),onMouseDown:T,onTouchStart:T,onKeyDown:N,[pt]:"",children:r.jsx(ft.Icon,{name:"drag_indicator",size:18,color:"inherit"})}),vn=D=>{const{row:T,rowClassName:B,rowStyle:v,isActiveRow:N,clickable:E,onClick:L,onKeyDownHandler:_e,ariaRowIndex:ve,columnProps:ee,draggable:se,dragHandleLabel:de,dragHandlers:g,dragHandleId:Se,dragHandlePickedUp:Re,dragOverColumnId:ce}=D;return r.jsx("tr",{className:B,style:v,draggable:se||void 0,onDragStart:g==null?void 0:g.onDragStart,onDragOver:g==null?void 0:g.onDragOver,onDragLeave:g==null?void 0:g.onDragLeave,onDragEnd:g==null?void 0:g.onDragEnd,onDrop:g==null?void 0:g.onDrop,onClick:E&&L?()=>L(T):void 0,onKeyDown:E?_e:void 0,tabIndex:E?0:void 0,role:E?"button":void 0,"aria-rowindex":ve,"aria-current":N?"true":void 0,children:T.getVisibleCells().map(O=>{var ue;const f=O.column.columnDef.meta,P=ee==null?void 0:ee(O.column.id),te=se&&O.column.id===Ce,A=!!ce&&O.column.id===ce,M=(ue=f==null?void 0:f.rowSpan)==null?void 0:ue.call(f,O.row);return M===0?null:r.jsx("td",{rowSpan:M&&M>1?M:void 0,className:I.default(o.default["tedi-table__cell"],{[o.default[`tedi-table__cell--align-${f==null?void 0:f.align}`]]:f==null?void 0:f.align,[o.default[`tedi-table__cell--valign-${f==null?void 0:f.vAlign}`]]:f==null?void 0:f.vAlign,[o.default["tedi-table__cell--drag-handle"]]:te,[o.default["tedi-table__cell--drag-over"]]:A},P==null?void 0:P.className),style:P==null?void 0:P.style,children:te?r.jsx(_n,{label:de,onHandlePointerDown:(g==null?void 0:g.onHandlePointerDown)??(()=>{}),onKeyDown:g==null?void 0:g.onKeyDown,id:Se,pickedUp:Re}):re.flexRender(O.column.columnDef.cell,O.getContext())},O.id)})})},Be="__select__",Me="__expand__",Ce="__drag__",ie=()=>!0,Sn={text:ie,select:ie,"multi-select":ie,"date-range":ie,"date-range-period":ie};function Rn(D){return Array.isArray(D.columns)}function mt(D){const{id:T,data:B,columns:v,size:N="medium",caption:E,state:L,defaultState:_e,onStateChange:ve,persist:ee,emptyState:se,emptyStateRole:de,className:g,children:Se,striped:Re=!1,verticalBorders:ce=!1,borderless:O=!1,stickyFirstColumn:f=!1,stickyHeader:P=!1,maxHeight:te,onRowClick:A,activeRowId:M,rowHover:ue,enableRowSelection:qe,selectionMode:De="multiple",highlightSelectedRows:bt=!0,enableColumnFilters:ye=!1,renderSubComponent:U,getRowCanExpand:He,getSubRows:Ue,getRowId:ht,expandTrigger:ke="button",paginateExpandedRows:xt=!1,pagination:q,autoResetPageIndex:wt=!0,manualPagination:K=!1,manualSorting:Ie=!1,manualFiltering:Te=!1,pageCount:Ke,rowCount:ge,checkboxProps:Ee,radioProps:Ve,collapseProps:Ge,rowProps:Ne,columnProps:H,reorderableRows:S=!1,onRowDrop:$,reorderableColumns:V=!1}=D,{getLabel:h}=xn.useLabels(),We=se??h("table.no-data"),G=i.useRef(h);G.current=h;const Ct=i.useId(),p=T??Ct,x=i.useMemo(()=>q?q===!0?{pageSize:10,pageSizeOptions:[10,25,50],paginationProps:void 0}:{pageSize:q.pageSize??10,pageSizeOptions:q.pageSizeOptions===void 0?[10,25,50]:q.pageSizeOptions,paginationProps:q.paginationProps}:null,[q]),y=x!==null,_t=i.useMemo(()=>{const e=x==null?void 0:x.pageSizeOptions;return Array.isArray(e)&&e.length>0?e:void 0},[x]),[j,R]=hn.useTablePersistence({persist:ee,controlled:L,defaultState:_e,onStateChange:ve}),vt=i.useCallback(e=>{R(n=>{const t=n.columnVisibility??{};return{columnVisibility:typeof e=="function"?e(t):e}})},[R]),St=i.useCallback(e=>{R(n=>{const t=n.rowSelection??{};return{rowSelection:typeof e=="function"?e(t):e}})},[R]),Rt=i.useCallback(e=>{R(n=>{const t=n.expanded??{};return{expanded:typeof e=="function"?e(t):e}})},[R]),Dt=i.useCallback(e=>{R(n=>{const t=n.columnFilters??[];return{columnFilters:typeof e=="function"?e(t):e}})},[R]),yt=i.useCallback(e=>{R(n=>{const t=n.columnOrder??[];return{columnOrder:typeof e=="function"?e(t):e}})},[R]),kt=i.useCallback(e=>{R(n=>{const t=n.sorting??[];return{sorting:typeof e=="function"?e(t):e}})},[R]),It=i.useCallback(e=>{R(n=>{const t=n.pagination??{pageIndex:0,pageSize:(x==null?void 0:x.pageSize)??10};return{pagination:typeof e=="function"?e(t):e}})},[R,x]),ne=!!(U||Ue),Xe=!!qe,Tt=i.useMemo(()=>ae.getCoreRowModel(),[]),Et=i.useMemo(()=>Te?void 0:ae.getFilteredRowModel(),[Te]),Nt=i.useMemo(()=>Ie?void 0:ae.getSortedRowModel(),[Ie]),Ot=i.useMemo(()=>ne?ae.getExpandedRowModel():void 0,[ne]),$t=i.useMemo(()=>y&&!K?ae.getPaginationRowModel():void 0,[y,K]),jt=i.useMemo(()=>{const e=[];if(S&&e.push({id:Ce,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:"",cell:()=>null}),Xe){const n=De==="single",t=`${p}-select`;e.push({id:Be,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:n?"":({table:l})=>r.jsx(gt.Checkbox,{...Ee,id:`${p}-select-all`,name:`${p}-select-all`,label:G.current("table.select-all",l.getIsAllPageRowsSelected()),hideLabel:!0,value:"all",checked:l.getIsAllPageRowsSelected(),indeterminate:l.getIsSomePageRowsSelected()&&!l.getIsAllPageRowsSelected(),onChange:(a,s)=>l.toggleAllPageRowsSelected(s)}),cell:({row:l})=>n?r.jsx(un.Radio,{...Ve,id:`${p}-select-${l.id}`,name:t,label:G.current("table.select-row",l.getIsSelected()),hideLabel:!0,value:l.id,checked:l.getIsSelected(),disabled:!l.getCanSelect(),onChange:(a,s)=>{s&&l.toggleSelected(!0)}}):r.jsx(gt.Checkbox,{...Ee,id:`${p}-select-${l.id}`,name:`${p}-select-${l.id}`,label:G.current("table.select-row",l.getIsSelected()),hideLabel:!0,value:l.id,checked:l.getIsSelected(),disabled:!l.getCanSelect(),indeterminate:l.getIsSomeSelected(),onChange:(a,s)=>l.toggleSelected(s)})})}return ne&&e.push({id:Me,enableSorting:!1,enableHiding:!1,enableColumnFilter:!1,size:40,header:"",cell:({row:n})=>{if(!n.getCanExpand())return null;const t=`${p}-sub-${n.id}`;return r.jsx("span",{onClick:l=>l.stopPropagation(),onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&l.stopPropagation()},children:r.jsx(cn.CollapseButton,{arrowType:ke==="row"?"default":"secondary",...Ge,hideText:!0,id:`${p}-expand-${n.id}`,"aria-controls":U?t:void 0,openText:G.current("table.expand-row"),closeText:G.current("table.collapse-row"),open:n.getIsExpanded(),onOpenChange:()=>n.toggleExpanded()})})}}),[...e,...v]},[v,Xe,De,ne,U,ke,S,p,Ee,Ve,Ge]),Lt=i.useMemo(()=>({}),[]),Pt=i.useMemo(()=>({}),[]),At=i.useMemo(()=>[],[]),Ft=i.useMemo(()=>[],[]),zt=i.useMemo(()=>[],[]),Bt=i.useMemo(()=>({pageIndex:0,pageSize:(x==null?void 0:x.pageSize)??10}),[x]),c=re.useReactTable({data:B,columns:jt,state:{columnVisibility:j.columnVisibility,columnOrder:j.columnOrder??Ft,rowSelection:j.rowSelection??Lt,expanded:j.expanded??Pt,columnFilters:j.columnFilters??At,sorting:j.sorting??zt,pagination:y?j.pagination??Bt:void 0},enableRowSelection:qe,enableMultiRowSelection:De!=="single",enableColumnFilters:ye,autoResetPageIndex:wt,paginateExpandedRows:y&&!K?xt:!0,manualPagination:K,manualSorting:Ie,manualFiltering:Te,pageCount:K&&Ke!==void 0?Ke:void 0,rowCount:K&&ge!==void 0?ge:void 0,getRowCanExpand:U?He??(()=>!0):He,getSubRows:Ue,getRowId:ht,onColumnVisibilityChange:vt,onColumnOrderChange:yt,onRowSelectionChange:St,onExpandedChange:Rt,onColumnFiltersChange:Dt,onSortingChange:kt,onPaginationChange:y?It:void 0,filterFns:Sn,getCoreRowModel:Tt,getFilteredRowModel:Et,getExpandedRowModel:Ot,getSortedRowModel:Nt,getPaginationRowModel:$t}),Mt=i.useMemo(()=>({table:c,size:N,id:p,state:j}),[c,N,p,j]),qt=i.useCallback(e=>c.setPageIndex(e-1),[c]),Ht=i.useCallback(e=>c.setPageSize(e),[c]),Ut=c.getHeaderGroups().length>1,fe=ke==="row"&&ne,Kt=ue??(!!A||fe),Vt=I.default(o.default["tedi-table"],o.default[`tedi-table--${N}`],{[o.default["tedi-table--striped"]]:Re,[o.default["tedi-table--vertical-borders"]]:ce,[o.default["tedi-table--borderless"]]:O,[o.default["tedi-table--sticky-first-column"]]:f,[o.default["tedi-table--sticky-header"]]:P,[o.default["tedi-table--clickable-rows"]]:!!A||fe,[o.default["tedi-table--row-hover"]]:Kt,[o.default["tedi-table--has-pagination"]]:y,[o.default["tedi-table--grouped-headers"]]:Ut},g),w=c.getRowModel().rows,pe=c.getHeaderGroups(),Ye=c.getFooterGroups(),Je=c.getVisibleLeafColumns(),me=Je.length,Gt=Ye.some(e=>e.headers.some(n=>n.column.columnDef.footer!==void 0)),Qe=e=>!!A||fe&&e.getCanExpand(),Ze=e=>{fe&&e.getCanExpand()&&e.toggleExpanded(),A==null||A(e)},Wt=e=>n=>{Qe(e)&&n.target===n.currentTarget&&(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),Ze(e))},et=pe.length+(ye?1:0),tt=c.getState().pagination,Xt=y?tt.pageIndex*tt.pageSize:0,Yt=y?ge??c.getFilteredRowModel().rows.length:w.length,Jt=y?et+Yt:void 0,[nt,Oe]=i.useState(null),[Qt,be]=i.useState(null),W=i.useRef(null),X=i.useRef(null),[lt,$e]=i.useState(null),[ot,he]=i.useState(null),Y=i.useRef(null),J=i.useRef(null),[at,je]=i.useState(null),xe=i.useRef([]),[it,Le]=i.useState(null),le=i.useRef(-1),[Zt,F]=i.useState(""),we=i.useRef(null),[en,rt]=i.useState(0),Pe=i.useMemo(()=>S?new Map(w.map(e=>[e.id,e.index])):new Map,[S,w]);i.useEffect(()=>{if(!S&&!V)return;const e=()=>{X.current=null,J.current=null};return window.addEventListener("mouseup",e),window.addEventListener("touchend",e),()=>{window.removeEventListener("mouseup",e),window.removeEventListener("touchend",e)}},[S,V]);const tn=i.useCallback(e=>({onHandlePointerDown:()=>{X.current=e},onDragStart:n=>{if(X.current!==e){n.preventDefault();return}X.current=null,n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain",e)}catch{}const t=n.currentTarget,l=t.closest("table");if(l){const a=t.getBoundingClientRect(),s=Array.from(t.children),u=document.createElement("div");u.style.cssText=`position:fixed;top:-10000px;left:0;width:${a.width}px;pointer-events:none;`;const b=document.createElement("table");b.className=l.className,b.style.cssText=`width:${a.width}px;table-layout:fixed;border-collapse:collapse;`;const C=document.createElement("tbody"),_=t.cloneNode(!0);_.classList.add(o.default["tedi-table__row--drag-preview"]);const d=Array.from(_.children);s.forEach((Q,k)=>{const z=d[k];if(!z)return;const oe=Q.getBoundingClientRect();z.style.width=`${oe.width}px`,z.style.minWidth=`${oe.width}px`,z.style.maxWidth=`${oe.width}px`}),C.appendChild(_),b.appendChild(C),u.appendChild(b),document.body.appendChild(u),n.dataTransfer.setDragImage(u,24,a.height/2),window.setTimeout(()=>u.remove(),0)}W.current=e,Oe(e)},onDragOver:n=>{!W.current||W.current===e||(n.preventDefault(),n.dataTransfer.dropEffect="move",be(e))},onDragLeave:()=>{be(n=>n===e?null:n)},onDragEnd:()=>{W.current=null,X.current=null,Oe(null),be(null)},onDrop:n=>{n.preventDefault();const t=W.current,l=e;if(W.current=null,X.current=null,Oe(null),be(null),!t||t===l)return;const a=Pe.get(t),s=Pe.get(l);a===void 0||s===void 0||$==null||$({fromId:t,toId:l,fromIndex:a,toIndex:s})}}),[Pe,$]),st=(e,n,t)=>{const l=e.slice(),[a]=l.splice(n,1);return l.splice(t,0,a),l},nn=i.useCallback(e=>({onHandlePointerDown:()=>{J.current=e},onDragStart:n=>{if(J.current!==e){n.preventDefault();return}J.current=null,n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain",e)}catch{}const t=n.currentTarget,l=t.getBoundingClientRect(),a=document.createElement("div");a.style.cssText=`position:fixed;top:-10000px;left:0;width:${l.width}px;pointer-events:none;`;const s=document.createElement("table"),u=t.closest("table");s.className=(u==null?void 0:u.className)??"",s.style.cssText=`width:${l.width}px;table-layout:fixed;border-collapse:collapse;`;const b=document.createElement("thead"),C=document.createElement("tr");C.className=o.default["tedi-table__row"];const _=t.cloneNode(!0);_.classList.add(o.default["tedi-table__header-cell--drag-preview"]),_.style.width=`${l.width}px`,C.appendChild(_),b.appendChild(C),s.appendChild(b),a.appendChild(s),document.body.appendChild(a),n.dataTransfer.setDragImage(a,l.width/2,l.height/2),window.setTimeout(()=>a.remove(),0),Y.current=e,$e(e)},onDragOver:n=>{!Y.current||Y.current===e||(n.preventDefault(),n.dataTransfer.dropEffect="move",he(e))},onDragLeave:()=>{he(n=>n===e?null:n)},onDragEnd:()=>{Y.current=null,J.current=null,$e(null),he(null)},onDrop:n=>{n.preventDefault();const t=Y.current,l=e;if(Y.current=null,J.current=null,$e(null),he(null),!t||t===l)return;const a=c.getState().columnOrder,s=a.length>0?a:c.getAllLeafColumns().map(C=>C.id),u=s.indexOf(t),b=s.indexOf(l);u<0||b<0||c.setColumnOrder(st(s,u,b))}}),[c]),ln=e=>`${p}-col-reorder-${e}`,on=e=>`${p}-row-reorder-${e}`,dt=()=>c.getVisibleLeafColumns().filter(e=>!e.parent&&e.id!==Ce&&e.id!==Be&&e.id!==Me).map(e=>e.id),Ae=e=>{const n=c.getColumn(e),t=n==null?void 0:n.columnDef.meta;return(t==null?void 0:t.label)??(typeof(n==null?void 0:n.columnDef.header)=="string"?n.columnDef.header:e)},ct=(e,n)=>{const t=dt(),l=t.indexOf(n);if(l<0)return;const a=l+e;if(a<0||a>=t.length)return;const s=st(t,l,a),u=c.getState().columnOrder.length>0?[...c.getState().columnOrder]:c.getAllLeafColumns().map(d=>d.id),b=new Set(t);let C=0;const _=u.map(d=>b.has(d)?s[C++]:d);for(const d of s)_.includes(d)||_.push(d);c.setColumnOrder(_),F(h("table.reorder.move",Ae(n),a+1)),we.current={kind:"column",id:n},rt(d=>d+1)},an=(e,n)=>{if(!V)return;const t=at;switch(e.key){case" ":case"Enter":if(e.preventDefault(),t===null)xe.current=[...c.getState().columnOrder??[]],je(n),F(h("table.reorder.pickup",Ae(n)));else{const l=dt().indexOf(t)+1;je(null),xe.current=[],F(h("table.reorder.drop",Ae(t),l))}break;case"Escape":t!==null&&(e.preventDefault(),c.setColumnOrder(xe.current),je(null),xe.current=[],F(h("table.reorder.cancel")));break;case"ArrowLeft":t!==null&&(e.preventDefault(),ct(-1,t));break;case"ArrowRight":t!==null&&(e.preventDefault(),ct(1,t));break}},ut=(e,n)=>{const t=w.findIndex(u=>u.original===n);if(t<0)return;const l=t+e;if(l<0||l>=w.length)return;const a=w[t],s=w[l];$==null||$({fromId:a.id,toId:s.id,fromIndex:a.index,toIndex:s.index}),F(h("table.row-reorder.move",l+1)),we.current={kind:"row",original:n},rt(u=>u+1)},rn=(e,n)=>{if(!S)return;const t=it;switch(e.key){case" ":case"Enter":if(e.preventDefault(),t===null)Le(n.original),le.current=n.index,F(h("table.row-reorder.pickup",w.indexOf(n)+1));else{const l=w.findIndex(a=>a.original===t)+1;Le(null),le.current=-1,F(h("table.row-reorder.drop",l))}break;case"Escape":if(t!==null){e.preventDefault();const l=w.findIndex(a=>a.original===t);if(l>=0&&le.current>=0){const a=w[l];$==null||$({fromId:a.id,toId:a.id,fromIndex:a.index,toIndex:le.current})}Le(null),le.current=-1,F(h("table.row-reorder.cancel"))}break;case"ArrowUp":t!==null&&(e.preventDefault(),ut(-1,t));break;case"ArrowDown":t!==null&&(e.preventDefault(),ut(1,t));break}};return i.useEffect(()=>{var t;const e=we.current;if(!e)return;we.current=null;let n;if(e.kind==="column")n=`${p}-col-reorder-${e.id}`;else{const l=w.find(a=>a.original===e.original);n=l?`${p}-row-reorder-${l.id}`:null}n&&((t=document.getElementById(n))==null||t.focus())},[en,w,p]),r.jsx(pn.TableContext.Provider,{value:Mt,children:r.jsxs("div",{className:Vt,"data-name":"tedi-table",children:[Se,(S||V)&&r.jsx("div",{className:o.default["tedi-table__sr-only"],"aria-live":"polite","aria-atomic":"true",children:Zt}),r.jsx("div",{className:o.default["tedi-table__scroll"],style:te!==void 0?{maxHeight:te,overflowY:"auto"}:void 0,children:r.jsxs("table",{id:T,className:o.default["tedi-table__table"],"aria-rowcount":Jt,"aria-colcount":me>0?me:void 0,children:[E&&r.jsx("caption",{className:o.default["tedi-table__caption"],children:E}),r.jsxs("thead",{className:o.default["tedi-table__head"],children:[pe.map((e,n)=>r.jsx("tr",{className:o.default["tedi-table__row"],"aria-rowindex":y?n+1:void 0,children:e.headers.map(t=>{const l=t.subHeaders.length>0,a=!!t.column.parent,s=Rn(t.column.columnDef),u=!s&&!a;if(t.isPlaceholder&&!u||!t.isPlaceholder&&u&&n>0)return null;const b=u?pe.length-n:1,C=t.column.getIsSorted(),_=t.column.getCanSort()?C==="asc"?"ascending":C==="desc"?"descending":"none":void 0,d=t.column.columnDef.meta,Q=(d==null?void 0:d.label)??(typeof t.column.columnDef.header=="string"?t.column.columnDef.header:void 0),k=H==null?void 0:H(t.column.id),z=t.column.getSize(),oe=t.column.id===Ce||t.column.id===Be||t.column.id===Me,Z=V&&u&&!oe,m=Z?nn(t.column.id):void 0,sn=Z&<===t.column.id,dn=Z&&ot===t.column.id&<!==t.column.id,Fe=Z&&at===t.column.id;return r.jsx("th",{colSpan:t.colSpan,rowSpan:b>1?b:void 0,draggable:Z||void 0,onDragStart:m==null?void 0:m.onDragStart,onDragOver:m==null?void 0:m.onDragOver,onDragLeave:m==null?void 0:m.onDragLeave,onDragEnd:m==null?void 0:m.onDragEnd,onDrop:m==null?void 0:m.onDrop,className:I.default(o.default["tedi-table__header-cell"],{[o.default["tedi-table__header-cell--group"]]:l,[o.default["tedi-table__header-cell--dragging"]]:sn,[o.default["tedi-table__header-cell--drag-over"]]:dn,[o.default["tedi-table__header-cell--picked-up"]]:Fe,[o.default[`tedi-table__cell--align-${d==null?void 0:d.align}`]]:d==null?void 0:d.align,[o.default[`tedi-table__cell--valign-${d==null?void 0:d.vAlign}`]]:d==null?void 0:d.vAlign},k==null?void 0:k.className),scope:"col","aria-sort":_,"aria-label":Q??(s?void 0:t.column.id),style:z||k!=null&&k.style?{...z?{width:z}:null,...k==null?void 0:k.style}:void 0,children:Z&&m?r.jsxs("span",{className:o.default["tedi-table__header-cell-inner"],children:[r.jsx("button",{type:"button",id:ln(t.column.id),className:I.default(o.default["tedi-table__drag-handle"],{[o.default["tedi-table__drag-handle--picked-up"]]:Fe}),"aria-label":h("table.drag-column",Q??t.column.id),"aria-pressed":Fe,onClick:ze=>ze.stopPropagation(),onMouseDown:m.onHandlePointerDown,onTouchStart:m.onHandlePointerDown,onKeyDown:ze=>an(ze,t.column.id),[pt]:"",children:r.jsx(ft.Icon,{name:"drag_indicator",size:18,color:"inherit"})}),re.flexRender(t.column.columnDef.header,t.getContext())]}):re.flexRender(t.column.columnDef.header,t.getContext())},t.id)})},e.id)),ye&&r.jsx("tr",{className:I.default(o.default["tedi-table__row"],o.default["tedi-table__row--filter"]),"aria-rowindex":y?pe.length+1:void 0,children:Je.map(e=>{const n=e.columnDef.meta,t=(n==null?void 0:n.label)??(typeof e.columnDef.header=="string"?e.columnDef.header:e.id),l=`${p}-filter-${e.id}`,a=H==null?void 0:H(e.id);return r.jsx("th",{className:I.default(o.default["tedi-table__header-cell"],a==null?void 0:a.className),style:a==null?void 0:a.style,scope:"col",children:e.getCanFilter()&&r.jsx(gn.TextField,{size:"small",placeholder:h("table.filter-placeholder"),...n==null?void 0:n.filterProps,id:l,name:l,label:h("table.filter-input",t),hideLabel:!0,value:e.getFilterValue()??"",onChange:s=>e.setFilterValue(s||void 0)})},e.id)})})]}),r.jsx("tbody",{className:o.default["tedi-table__body"],children:w.length===0?r.jsx("tr",{className:o.default["tedi-table__row"],children:r.jsx("td",{colSpan:Math.max(1,me),className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--placeholder"]),children:de?r.jsx("div",{role:de,children:We}):We})}):w.map((e,n)=>{const t=Qe(e),l=M!==void 0&&e.id===M,a=Ne==null?void 0:Ne(e),s=I.default(o.default["tedi-table__row"],{[o.default["tedi-table__row--selected"]]:bt&&e.getIsSelected(),[o.default["tedi-table__row--active"]]:l,[o.default["tedi-table__row--clickable"]]:t,[o.default["tedi-table__row--sub-row"]]:e.depth>0},a==null?void 0:a.className),u=y?et+Xt+n+1:void 0,b=`${p}-sub-${e.id}`,C=S&&nt===e.id,_=S&&Qt===e.id&&nt!==e.id,d=S&&it===e.original,Q={row:e,rowClassName:I.default(s,{[o.default["tedi-table__row--dragging"]]:C,[o.default["tedi-table__row--drag-over"]]:_,[o.default["tedi-table__row--picked-up"]]:d}),rowStyle:a==null?void 0:a.style,isActiveRow:l,clickable:t,onClick:Ze,onKeyDownHandler:Wt(e),ariaRowIndex:u,columnProps:H,draggable:S,dragHandleLabel:h("table.drag-row"),dragHandlers:S?{...tn(e.id),onKeyDown:k=>rn(k,e)}:void 0,dragHandleId:S?on(e.id):void 0,dragHandlePickedUp:d,dragOverColumnId:V?ot:null};return r.jsxs(i.Fragment,{children:[r.jsx(vn,{...Q}),U&&e.getIsExpanded()&&r.jsx("tr",{className:I.default(o.default["tedi-table__row"],o.default["tedi-table__row--sub-component"]),children:r.jsx("td",{id:b,role:"region","aria-label":h("table.row-details"),colSpan:Math.max(1,me),className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--sub-component"]),children:U(e)})})]},e.id)})}),Gt&&r.jsx("tfoot",{className:o.default["tedi-table__foot"],children:Ye.map(e=>r.jsx("tr",{className:o.default["tedi-table__row"],children:e.headers.map(n=>{const t=n.column.columnDef.meta;return r.jsx("td",{colSpan:n.colSpan,className:I.default(o.default["tedi-table__cell"],o.default["tedi-table__cell--footer"],{[o.default[`tedi-table__cell--align-${t==null?void 0:t.align}`]]:t==null?void 0:t.align,[o.default[`tedi-table__cell--valign-${t==null?void 0:t.vAlign}`]]:t==null?void 0:t.vAlign}),children:n.isPlaceholder?null:re.flexRender(n.column.columnDef.footer,n.getContext())},n.id)})},e.id))})]})}),y&&r.jsx("div",{className:o.default["tedi-table__pagination"],children:r.jsx(wn.Pagination,{...x==null?void 0:x.paginationProps,pageCount:Math.max(1,c.getPageCount()),page:c.getState().pagination.pageIndex+1,onPageChange:qt,totalItems:ge??c.getFilteredRowModel().rows.length,pageSize:c.getState().pagination.pageSize,pageSizeOptions:_t,onPageSizeChange:Ht})})]})})}mt.displayName="Table";const Dn=Object.assign(mt,{Toolbar:bn.TableToolbar,ColumnsMenu:fn.TableColumnsMenu,HeaderButton:mn.TableHeaderButton});exports.Table=Dn;exports.groupRowSpan=Cn;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ColumnDef, ColumnFiltersState, ColumnOrderState, ExpandedState, PaginationState, Row, RowSelectionState, SortingState, Table as ReactTable, VisibilityState } from '@tanstack/react-table';
|
|
2
2
|
import { CSSProperties, ReactNode } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { CollapseButtonProps } from '../../buttons/collapse-button/collapse-button';
|
|
4
4
|
import { CheckboxProps } from '../../form/checkbox/checkbox';
|
|
5
5
|
import { RadioProps } from '../../form/radio/radio';
|
|
6
6
|
import { TextFieldProps } from '../../form/textfield/textfield';
|
|
@@ -107,7 +107,7 @@ export type TableSelectionRadioProps = Omit<RadioProps, 'id' | 'name' | 'label'
|
|
|
107
107
|
* `rowSelection` to a single row at a time.
|
|
108
108
|
*/
|
|
109
109
|
export type TableSelectionMode = 'multiple' | 'single';
|
|
110
|
-
export type TableExpandCollapseProps = Omit<
|
|
110
|
+
export type TableExpandCollapseProps = Omit<CollapseButtonProps, 'id' | 'open' | 'onOpenChange' | 'openText' | 'closeText' | 'aria-controls' | 'hideText'>;
|
|
111
111
|
export interface TablePersistOptions {
|
|
112
112
|
/**
|
|
113
113
|
* Storage key used to read/write persisted state. Must be stable per table.
|
|
@@ -416,10 +416,10 @@ export interface TableProps<TData> {
|
|
|
416
416
|
*/
|
|
417
417
|
radioProps?: TableSelectionRadioProps;
|
|
418
418
|
/**
|
|
419
|
-
* Props forwarded to the row-expand
|
|
420
|
-
* switch to `arrowType: 'default'
|
|
421
|
-
*
|
|
422
|
-
*
|
|
419
|
+
* Props forwarded to the row-expand `CollapseButton` toggle. Use this to
|
|
420
|
+
* e.g. switch to `arrowType: 'default'` or change the `size`. Wiring props
|
|
421
|
+
* (id, open, onOpenChange, openText, closeText, aria-controls, hideText) are
|
|
422
|
+
* owned by Table and cannot be overridden.
|
|
423
423
|
*/
|
|
424
424
|
collapseProps?: TableExpandCollapseProps;
|
|
425
425
|
/**
|