@justeattakeaway/pie-data-table 0.0.0-snapshot-release-20260119130527 → 0.0.0-snapshot-release-20260121134449
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/custom-elements.json +533 -2
- package/dist/{PieElement-DF1Wh7-N.js → PieElement-XdhDoayO.js} +1 -1
- package/dist/defs.d.ts +19 -3
- package/dist/defs.d.ts.map +1 -1
- package/dist/index.d.ts +20 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +101 -49
- package/dist/pie-data-table-body/defs-react.d.ts +3 -0
- package/dist/pie-data-table-body/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-body/defs.d.ts +2 -0
- package/dist/pie-data-table-body/defs.d.ts.map +1 -0
- package/dist/pie-data-table-body/index.d.ts +18 -0
- package/dist/pie-data-table-body/index.d.ts.map +1 -0
- package/dist/pie-data-table-body/index.js +21 -0
- package/dist/pie-data-table-body/react.d.ts +7 -0
- package/dist/pie-data-table-body/react.d.ts.map +1 -0
- package/dist/pie-data-table-body/react.js +13 -0
- package/dist/pie-data-table-cell/defs-react.d.ts +3 -0
- package/dist/pie-data-table-cell/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-cell/defs.d.ts +14 -0
- package/dist/pie-data-table-cell/defs.d.ts.map +1 -0
- package/dist/pie-data-table-cell/index.d.ts +28 -0
- package/dist/pie-data-table-cell/index.d.ts.map +1 -0
- package/dist/pie-data-table-cell/index.js +39 -0
- package/dist/pie-data-table-cell/react.d.ts +7 -0
- package/dist/pie-data-table-cell/react.d.ts.map +1 -0
- package/dist/pie-data-table-cell/react.js +16 -0
- package/dist/pie-data-table-contents/defs-react.d.ts +3 -0
- package/dist/pie-data-table-contents/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-contents/defs.d.ts +2 -0
- package/dist/pie-data-table-contents/defs.d.ts.map +1 -0
- package/dist/pie-data-table-contents/index.d.ts +19 -0
- package/dist/pie-data-table-contents/index.d.ts.map +1 -0
- package/dist/pie-data-table-contents/index.js +24 -0
- package/dist/pie-data-table-contents/react.d.ts +7 -0
- package/dist/pie-data-table-contents/react.d.ts.map +1 -0
- package/dist/pie-data-table-contents/react.js +13 -0
- package/dist/pie-data-table-head/defs-react.d.ts +3 -0
- package/dist/pie-data-table-head/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-head/defs.d.ts +2 -0
- package/dist/pie-data-table-head/defs.d.ts.map +1 -0
- package/dist/pie-data-table-head/index.d.ts +19 -0
- package/dist/pie-data-table-head/index.d.ts.map +1 -0
- package/dist/pie-data-table-head/index.js +24 -0
- package/dist/pie-data-table-head/react.d.ts +7 -0
- package/dist/pie-data-table-head/react.d.ts.map +1 -0
- package/dist/pie-data-table-head/react.js +13 -0
- package/dist/pie-data-table-head-cell/defs-react.d.ts +3 -0
- package/dist/pie-data-table-head-cell/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-head-cell/defs.d.ts +14 -0
- package/dist/pie-data-table-head-cell/defs.d.ts.map +1 -0
- package/dist/pie-data-table-head-cell/index.d.ts +28 -0
- package/dist/pie-data-table-head-cell/index.d.ts.map +1 -0
- package/dist/pie-data-table-head-cell/index.js +39 -0
- package/dist/pie-data-table-head-cell/react.d.ts +7 -0
- package/dist/pie-data-table-head-cell/react.d.ts.map +1 -0
- package/dist/pie-data-table-head-cell/react.js +16 -0
- package/dist/pie-data-table-header/index.d.ts +1 -0
- package/dist/pie-data-table-header/index.d.ts.map +1 -1
- package/dist/pie-data-table-header/index.js +1 -1
- package/dist/pie-data-table-row/defs-react.d.ts +3 -0
- package/dist/pie-data-table-row/defs-react.d.ts.map +1 -0
- package/dist/pie-data-table-row/defs.d.ts +13 -0
- package/dist/pie-data-table-row/defs.d.ts.map +1 -0
- package/dist/pie-data-table-row/index.d.ts +27 -0
- package/dist/pie-data-table-row/index.d.ts.map +1 -0
- package/dist/pie-data-table-row/index.js +33 -0
- package/dist/pie-data-table-row/react.d.ts +7 -0
- package/dist/pie-data-table-row/react.d.ts.map +1 -0
- package/dist/pie-data-table-row/react.js +15 -0
- package/package.json +3 -3
- package/src/data-table.scss +12 -18
- package/src/defs.ts +24 -6
- package/src/index.ts +78 -12
- package/src/pie-data-table-body/data-table-body.scss +7 -0
- package/src/pie-data-table-body/defs-react.ts +3 -0
- package/src/pie-data-table-body/defs.ts +1 -0
- package/src/pie-data-table-body/index.ts +30 -0
- package/src/pie-data-table-body/react.ts +19 -0
- package/src/pie-data-table-cell/data-table-cell.scss +21 -0
- package/src/pie-data-table-cell/defs-react.ts +3 -0
- package/src/pie-data-table-cell/defs.ts +19 -0
- package/src/pie-data-table-cell/index.ts +62 -0
- package/src/pie-data-table-cell/react.ts +19 -0
- package/src/pie-data-table-contents/data-table-contents.scss +4 -0
- package/src/pie-data-table-contents/defs-react.ts +3 -0
- package/src/pie-data-table-contents/defs.ts +1 -0
- package/src/pie-data-table-contents/index.ts +36 -0
- package/src/pie-data-table-contents/react.ts +19 -0
- package/src/pie-data-table-head/data-table-head.scss +8 -0
- package/src/pie-data-table-head/defs-react.ts +3 -0
- package/src/pie-data-table-head/defs.ts +1 -0
- package/src/pie-data-table-head/index.ts +37 -0
- package/src/pie-data-table-head/react.ts +19 -0
- package/src/pie-data-table-head-cell/data-table-head-cell.scss +21 -0
- package/src/pie-data-table-head-cell/defs-react.ts +3 -0
- package/src/pie-data-table-head-cell/defs.ts +19 -0
- package/src/pie-data-table-head-cell/index.ts +60 -0
- package/src/pie-data-table-head-cell/react.ts +19 -0
- package/src/pie-data-table-header/index.ts +1 -0
- package/src/pie-data-table-row/data-table-row.scss +16 -0
- package/src/pie-data-table-row/defs-react.ts +3 -0
- package/src/pie-data-table-row/defs.ts +17 -0
- package/src/pie-data-table-row/index.ts +51 -0
- package/src/pie-data-table-row/react.ts +19 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
|
|
2
|
+
|
|
3
|
+
export const dataTableCellTextAlign = ['left', 'right', 'center'] as const;
|
|
4
|
+
|
|
5
|
+
export interface DataTableCellProps {
|
|
6
|
+
/**
|
|
7
|
+
* Text alignment for the cell content
|
|
8
|
+
*/
|
|
9
|
+
textAlign?: typeof dataTableCellTextAlign[number];
|
|
10
|
+
/**
|
|
11
|
+
* Whether the cell is hidden
|
|
12
|
+
*/
|
|
13
|
+
isHidden?: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const defaultProps: ComponentDefaultProps<DataTableCellProps, 'textAlign' | 'isHidden'> = {
|
|
17
|
+
textAlign: 'left',
|
|
18
|
+
isHidden: false,
|
|
19
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { html, nothing, unsafeCSS } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
|
|
4
|
+
import { safeCustomElement, validPropertyValues } from '@justeattakeaway/pie-webc-core';
|
|
5
|
+
|
|
6
|
+
import styles from './data-table-cell.scss?inline';
|
|
7
|
+
import {
|
|
8
|
+
type DataTableCellProps,
|
|
9
|
+
dataTableCellTextAlign,
|
|
10
|
+
defaultProps,
|
|
11
|
+
} from './defs';
|
|
12
|
+
|
|
13
|
+
export * from './defs';
|
|
14
|
+
|
|
15
|
+
const componentSelector = 'pie-data-table-cell';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @tagname pie-data-table-cell
|
|
19
|
+
* @slot - Default slot
|
|
20
|
+
*/
|
|
21
|
+
@safeCustomElement('pie-data-table-cell')
|
|
22
|
+
export class PieDataTableCell extends PieElement implements DataTableCellProps {
|
|
23
|
+
/**
|
|
24
|
+
* Text alignment for the cell content
|
|
25
|
+
*/
|
|
26
|
+
@property({ type: String })
|
|
27
|
+
@validPropertyValues(componentSelector, dataTableCellTextAlign, defaultProps.textAlign)
|
|
28
|
+
public textAlign?: DataTableCellProps['textAlign'];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Whether the cell is hidden
|
|
32
|
+
*/
|
|
33
|
+
@property({ type: Boolean })
|
|
34
|
+
public isHidden?: DataTableCellProps['isHidden'];
|
|
35
|
+
|
|
36
|
+
connectedCallback () {
|
|
37
|
+
if (!this.hasAttribute('role')) {
|
|
38
|
+
this.setAttribute('role', 'cell');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
super.connectedCallback();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
render () {
|
|
45
|
+
const { isHidden } = this;
|
|
46
|
+
|
|
47
|
+
if (isHidden) {
|
|
48
|
+
return nothing;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return html`<slot></slot>`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Renders a `CSSResult` generated from SCSS by Vite
|
|
55
|
+
static styles = unsafeCSS(styles);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare global {
|
|
59
|
+
interface HTMLElementTagNameMap {
|
|
60
|
+
[componentSelector]: PieDataTableCell;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createComponent } from '@lit/react';
|
|
3
|
+
import { PieDataTableCell as PieDataTableCellLit } from './index';
|
|
4
|
+
import { type DataTableCellProps } from './defs';
|
|
5
|
+
|
|
6
|
+
export * from './defs';
|
|
7
|
+
|
|
8
|
+
const PieDataTableCellReact = createComponent({
|
|
9
|
+
displayName: 'PieDataTableCell',
|
|
10
|
+
elementClass: PieDataTableCellLit,
|
|
11
|
+
react: React,
|
|
12
|
+
tagName: 'pie-data-table-cell',
|
|
13
|
+
events: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type ReactBaseType = React.HTMLAttributes<HTMLElement>
|
|
17
|
+
|
|
18
|
+
export const PieDataTableCell = PieDataTableCellReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableCellProps>
|
|
19
|
+
& React.RefAttributes<PieDataTableCellLit> & ReactBaseType>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type DataTableContentsProps = Partial<HTMLTableElement>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { html, unsafeCSS } from 'lit';
|
|
2
|
+
import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
|
|
3
|
+
import { safeCustomElement } from '@justeattakeaway/pie-webc-core';
|
|
4
|
+
|
|
5
|
+
import styles from './data-table-contents.scss?inline';
|
|
6
|
+
import { type DataTableContentsProps } from './defs';
|
|
7
|
+
|
|
8
|
+
export * from './defs';
|
|
9
|
+
|
|
10
|
+
const componentSelector = 'pie-data-table-contents';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @tagname pie-data-table-contents
|
|
14
|
+
* @slot - Default slot
|
|
15
|
+
*/
|
|
16
|
+
@safeCustomElement('pie-data-table-contents')
|
|
17
|
+
export class PieDataTableContents extends PieElement implements DataTableContentsProps {
|
|
18
|
+
connectedCallback () {
|
|
19
|
+
if (!this.hasAttribute('role')) {
|
|
20
|
+
this.setAttribute('role', 'table');
|
|
21
|
+
}
|
|
22
|
+
super.connectedCallback();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
render () {
|
|
26
|
+
return html`<slot></slot>`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static styles = unsafeCSS(styles);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLElementTagNameMap {
|
|
34
|
+
[componentSelector]: PieDataTableContents;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createComponent } from '@lit/react';
|
|
3
|
+
import { PieDataTableContents as PieDataTableContentsLit } from './index';
|
|
4
|
+
import { type DataTableContentsProps } from './defs';
|
|
5
|
+
|
|
6
|
+
export * from './defs';
|
|
7
|
+
|
|
8
|
+
const PieDataTableContentsReact = createComponent({
|
|
9
|
+
displayName: 'PieDataTableContents',
|
|
10
|
+
elementClass: PieDataTableContentsLit,
|
|
11
|
+
react: React,
|
|
12
|
+
tagName: 'pie-data-table-contents',
|
|
13
|
+
events: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type ReactBaseType = React.HTMLAttributes<HTMLElement>
|
|
17
|
+
|
|
18
|
+
export const PieDataTableContents = PieDataTableContentsReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableContentsProps>
|
|
19
|
+
& React.RefAttributes<PieDataTableContentsLit> & ReactBaseType>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type DataTableHeadProps = Partial<HTMLTableSectionElement>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { html, unsafeCSS } from 'lit';
|
|
2
|
+
import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
|
|
3
|
+
import { safeCustomElement } from '@justeattakeaway/pie-webc-core';
|
|
4
|
+
|
|
5
|
+
import styles from './data-table-head.scss?inline';
|
|
6
|
+
import { type DataTableHeadProps } from './defs';
|
|
7
|
+
|
|
8
|
+
export * from './defs';
|
|
9
|
+
|
|
10
|
+
const componentSelector = 'pie-data-table-head';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @tagname pie-data-table-head
|
|
14
|
+
* @slot - Default slot
|
|
15
|
+
*/
|
|
16
|
+
@safeCustomElement('pie-data-table-head')
|
|
17
|
+
export class PieDataTableHead extends PieElement implements DataTableHeadProps {
|
|
18
|
+
connectedCallback () {
|
|
19
|
+
if (!this.hasAttribute('role')) {
|
|
20
|
+
this.setAttribute('role', 'rowgroup');
|
|
21
|
+
}
|
|
22
|
+
super.connectedCallback();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
render () {
|
|
26
|
+
return html`<slot></slot>`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static styles = unsafeCSS(styles);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLElementTagNameMap {
|
|
34
|
+
[componentSelector]: PieDataTableHead;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createComponent } from '@lit/react';
|
|
3
|
+
import { PieDataTableHead as PieDataTableHeadLit } from './index';
|
|
4
|
+
import { type DataTableHeadProps } from './defs';
|
|
5
|
+
|
|
6
|
+
export * from './defs';
|
|
7
|
+
|
|
8
|
+
const PieDataTableHeadReact = createComponent({
|
|
9
|
+
displayName: 'PieDataTableHead',
|
|
10
|
+
elementClass: PieDataTableHeadLit,
|
|
11
|
+
react: React,
|
|
12
|
+
tagName: 'pie-data-table-head',
|
|
13
|
+
events: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type ReactBaseType = React.HTMLAttributes<HTMLElement>
|
|
17
|
+
|
|
18
|
+
export const PieDataTableHead = PieDataTableHeadReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableHeadProps>
|
|
19
|
+
& React.RefAttributes<PieDataTableHeadLit> & ReactBaseType>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
padding: var(--dt-spacing-d);
|
|
3
|
+
border-bottom: 1px solid var(--data-table-border-color);
|
|
4
|
+
display: table-cell;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
:host([textAlign="right"]) {
|
|
8
|
+
text-align: right;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:host([textAlign="center"]) {
|
|
12
|
+
text-align: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:host([textAlign="left"]) {
|
|
16
|
+
text-align: left;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:host([isHidden]) {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
|
|
2
|
+
|
|
3
|
+
export const dataTableHeadCellTextAlign = ['left', 'right', 'center'] as const;
|
|
4
|
+
|
|
5
|
+
export interface DataTableHeadCellProps {
|
|
6
|
+
/**
|
|
7
|
+
* Text alignment for the cell content
|
|
8
|
+
*/
|
|
9
|
+
textAlign?: typeof dataTableHeadCellTextAlign[number];
|
|
10
|
+
/**
|
|
11
|
+
* Whether the cell is hidden
|
|
12
|
+
*/
|
|
13
|
+
isHidden?: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const defaultProps: ComponentDefaultProps<DataTableHeadCellProps, 'textAlign' | 'isHidden'> = {
|
|
17
|
+
textAlign: 'left',
|
|
18
|
+
isHidden: false,
|
|
19
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { html, nothing, unsafeCSS } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
|
|
4
|
+
import { safeCustomElement, validPropertyValues } from '@justeattakeaway/pie-webc-core';
|
|
5
|
+
|
|
6
|
+
import styles from './data-table-head-cell.scss?inline';
|
|
7
|
+
import {
|
|
8
|
+
type DataTableHeadCellProps,
|
|
9
|
+
dataTableHeadCellTextAlign,
|
|
10
|
+
defaultProps,
|
|
11
|
+
} from './defs';
|
|
12
|
+
|
|
13
|
+
export * from './defs';
|
|
14
|
+
|
|
15
|
+
const componentSelector = 'pie-data-table-head-cell';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @tagname pie-data-table-head-cell
|
|
19
|
+
* @slot - Default slot
|
|
20
|
+
*/
|
|
21
|
+
@safeCustomElement('pie-data-table-head-cell')
|
|
22
|
+
export class PieDataTableHeadCell extends PieElement implements DataTableHeadCellProps {
|
|
23
|
+
/**
|
|
24
|
+
* Text alignment for the cell content
|
|
25
|
+
*/
|
|
26
|
+
@property({ type: String })
|
|
27
|
+
@validPropertyValues(componentSelector, dataTableHeadCellTextAlign, defaultProps.textAlign)
|
|
28
|
+
public textAlign?: DataTableHeadCellProps['textAlign'];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Whether the cell is hidden
|
|
32
|
+
*/
|
|
33
|
+
@property({ type: Boolean })
|
|
34
|
+
public isHidden?: DataTableHeadCellProps['isHidden'];
|
|
35
|
+
|
|
36
|
+
connectedCallback () {
|
|
37
|
+
if (!this.hasAttribute('role')) {
|
|
38
|
+
this.setAttribute('role', 'columnheader');
|
|
39
|
+
}
|
|
40
|
+
super.connectedCallback();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
render () {
|
|
44
|
+
const { isHidden } = this;
|
|
45
|
+
|
|
46
|
+
if (isHidden) {
|
|
47
|
+
return nothing;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return html`<slot></slot>`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static styles = unsafeCSS(styles);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare global {
|
|
57
|
+
interface HTMLElementTagNameMap {
|
|
58
|
+
[componentSelector]: PieDataTableHeadCell;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createComponent } from '@lit/react';
|
|
3
|
+
import { PieDataTableHeadCell as PieDataTableHeadCellLit } from './index';
|
|
4
|
+
import { type DataTableHeadCellProps } from './defs';
|
|
5
|
+
|
|
6
|
+
export * from './defs';
|
|
7
|
+
|
|
8
|
+
const PieDataTableHeadCellReact = createComponent({
|
|
9
|
+
displayName: 'PieDataTableHeadCell',
|
|
10
|
+
elementClass: PieDataTableHeadCellLit,
|
|
11
|
+
react: React,
|
|
12
|
+
tagName: 'pie-data-table-head-cell',
|
|
13
|
+
events: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type ReactBaseType = React.HTMLAttributes<HTMLElement>
|
|
17
|
+
|
|
18
|
+
export const PieDataTableHeadCell = PieDataTableHeadCellReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableHeadCellProps>
|
|
19
|
+
& React.RefAttributes<PieDataTableHeadCellLit> & ReactBaseType>;
|
|
@@ -18,6 +18,7 @@ const componentSelector = 'pie-data-table-header';
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @tagname pie-data-table-header
|
|
21
|
+
* @slot action-button - Slot for action buttons in the header
|
|
21
22
|
*/
|
|
22
23
|
@safeCustomElement('pie-data-table-header')
|
|
23
24
|
export class PieDataTableHeader extends PieElement implements DataTableHeaderProps {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: table-row;
|
|
3
|
+
border-bottom: 1px solid var(--data-table-border-color);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* This color is set on 'packages/components/pie-data-table/src/pie-data-table-body/data-table-body.scss'
|
|
8
|
+
* It set a background color variable on the row component when hovered only inside the body component
|
|
9
|
+
*/
|
|
10
|
+
:host(:hover) {
|
|
11
|
+
background-color: var(--pie-data-table-row-background-hover, transparent);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:host([isSelected]) {
|
|
15
|
+
background-color: var(--dt-color-container-subtle);
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
|
|
2
|
+
|
|
3
|
+
export interface DataTableRowProps extends Partial<HTMLTableRowElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the row is currently selected
|
|
6
|
+
*/
|
|
7
|
+
isSelected?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Whether the row is hidden
|
|
10
|
+
*/
|
|
11
|
+
isHidden?: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const defaultProps: ComponentDefaultProps<DataTableRowProps, 'isSelected' | 'isHidden'> = {
|
|
15
|
+
isSelected: false,
|
|
16
|
+
isHidden: false,
|
|
17
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { html, nothing, unsafeCSS } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
|
|
4
|
+
import { safeCustomElement } from '@justeattakeaway/pie-webc-core';
|
|
5
|
+
|
|
6
|
+
import styles from './data-table-row.scss?inline';
|
|
7
|
+
import {
|
|
8
|
+
type DataTableRowProps,
|
|
9
|
+
} from './defs';
|
|
10
|
+
|
|
11
|
+
export * from './defs';
|
|
12
|
+
|
|
13
|
+
const componentSelector = 'pie-data-table-row';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @tagname pie-data-table-row
|
|
17
|
+
* @slot - Default slot
|
|
18
|
+
*/
|
|
19
|
+
@safeCustomElement('pie-data-table-row')
|
|
20
|
+
export class PieDataTableRow extends PieElement implements DataTableRowProps {
|
|
21
|
+
/**
|
|
22
|
+
* Whether the row is currently selected
|
|
23
|
+
*/
|
|
24
|
+
@property({ type: Boolean })
|
|
25
|
+
public isSelected?: DataTableRowProps['isSelected'];
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Whether the row is hidden
|
|
29
|
+
*/
|
|
30
|
+
@property({ type: Boolean })
|
|
31
|
+
public isHidden?: DataTableRowProps['isHidden'];
|
|
32
|
+
|
|
33
|
+
render () {
|
|
34
|
+
const { isHidden } = this;
|
|
35
|
+
|
|
36
|
+
if (isHidden) {
|
|
37
|
+
return nothing;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return html`<slot></slot>`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Renders a `CSSResult` generated from SCSS by Vite
|
|
44
|
+
static styles = unsafeCSS(styles);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare global {
|
|
48
|
+
interface HTMLElementTagNameMap {
|
|
49
|
+
[componentSelector]: PieDataTableRow;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createComponent } from '@lit/react';
|
|
3
|
+
import { PieDataTableRow as PieDataTableRowLit } from './index';
|
|
4
|
+
import { type DataTableRowProps } from './defs';
|
|
5
|
+
|
|
6
|
+
export * from './defs';
|
|
7
|
+
|
|
8
|
+
const PieDataTableRowReact = createComponent({
|
|
9
|
+
displayName: 'PieDataTableRow',
|
|
10
|
+
elementClass: PieDataTableRowLit,
|
|
11
|
+
react: React,
|
|
12
|
+
tagName: 'pie-data-table-row',
|
|
13
|
+
events: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
type ReactBaseType = React.HTMLAttributes<HTMLElement>
|
|
17
|
+
|
|
18
|
+
export const PieDataTableRow = PieDataTableRowReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableRowProps>
|
|
19
|
+
& React.RefAttributes<PieDataTableRowLit> & ReactBaseType>;
|