@tcn/ui-table 2.3.15 → 2.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/table_filter_panel/table_filter_panel.d.ts +2 -1
- package/dist/components/table_filter_panel/table_filter_panel.d.ts.map +1 -1
- package/dist/components/table_filter_panel/table_filter_panel.js +33 -39
- package/dist/components/table_filter_panel/table_filter_panel.js.map +1 -1
- package/dist/table_filter_panel.css +1 -1
- package/package.json +5 -5
- package/src/__stories__/table.stories.tsx +2 -10
- package/src/components/table_filter_panel/table_filter_panel.module.css +0 -5
- package/src/components/table_filter_panel/table_filter_panel.stories.tsx +1 -1
- package/src/components/table_filter_panel/table_filter_panel.tsx +6 -7
- package/tsconfig.json +4 -33
|
@@ -7,7 +7,8 @@ export interface TableFilterPanelProps extends Omit<PanelProps, 'children'> {
|
|
|
7
7
|
children: ReactElement<FieldFilterProps>[] | ReactElement<FieldFilterProps>;
|
|
8
8
|
dataSource: DataSource<any>;
|
|
9
9
|
onClose?: () => void;
|
|
10
|
+
title?: string;
|
|
10
11
|
}
|
|
11
|
-
export declare function TableFilterPanel({ children, dataSource, className, onClose, ...props }: TableFilterPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function TableFilterPanel({ children, dataSource, className, onClose, title, ...props }: TableFilterPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export declare const TableFilterPanelContext: import('react').Context<TableFilterPanelPresenter<unknown> | null>;
|
|
13
14
|
//# sourceMappingURL=table_filter_panel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_filter_panel.d.ts","sourceRoot":"","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAA2B,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO1D,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IACzE,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5E,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"table_filter_panel.d.ts","sourceRoot":"","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAA2B,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO1D,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IACzE,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5E,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,KAAuB,EACvB,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA6BvB;AAED,eAAO,MAAM,uBAAuB,oEAEnC,CAAC"}
|
|
@@ -1,53 +1,47 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { createContext as
|
|
3
|
-
import { TableFilterPanelPresenter as
|
|
4
|
-
import {
|
|
5
|
-
import { Header as
|
|
6
|
-
import { Spacer as
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as b, useState as p } from "react";
|
|
3
|
+
import { TableFilterPanelPresenter as f } from "./table_filter_panel_presenter.js";
|
|
4
|
+
import { Aside as m } from "@tcn/ui/surfaces";
|
|
5
|
+
import { Header as d, VBody as y, Section as u } from "@tcn/ui/layouts";
|
|
6
|
+
import { Spacer as h } from "@tcn/ui/stacks";
|
|
7
7
|
import { Button as P } from "@tcn/ui/actions";
|
|
8
|
-
import { CrossIcon as
|
|
9
|
-
import '../../table_filter_panel.css';const
|
|
8
|
+
import { CrossIcon as F } from "@tcn/icons/cross_icon.js";
|
|
9
|
+
import '../../table_filter_panel.css';const x = "_table-filter-panel-body_c016eb0", S = "_table-filter-panel-section_cfd2eb9", r = { "table-filter-panel-body": x, "table-filter-panel-section": S };
|
|
10
10
|
function w({
|
|
11
|
-
children:
|
|
12
|
-
dataSource:
|
|
11
|
+
children: n,
|
|
12
|
+
dataSource: a,
|
|
13
13
|
className: i,
|
|
14
|
-
onClose:
|
|
15
|
-
|
|
14
|
+
onClose: t,
|
|
15
|
+
title: o = "Table Filters",
|
|
16
|
+
...c
|
|
16
17
|
}) {
|
|
17
|
-
const [
|
|
18
|
-
return /* @__PURE__ */ e(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
d,
|
|
18
|
+
const [s] = p(() => new f(a));
|
|
19
|
+
return /* @__PURE__ */ e(T.Provider, { value: s, children: /* @__PURE__ */ l(m, { className: `tcn-table-filter-panel ${i}`, ...c, children: [
|
|
20
|
+
/* @__PURE__ */ l(d, { children: [
|
|
21
|
+
o,
|
|
22
|
+
/* @__PURE__ */ e(h, {}),
|
|
23
|
+
t && /* @__PURE__ */ e(P, { utility: !0, hierarchy: "tertiary", onClick: t, children: /* @__PURE__ */ e(F, {}) })
|
|
24
|
+
] }),
|
|
25
|
+
/* @__PURE__ */ e(
|
|
26
|
+
y,
|
|
27
|
+
{
|
|
28
|
+
className: `${r["table-filter-panel-body"]} tcn-table-filter-panel-body`,
|
|
29
|
+
children: /* @__PURE__ */ e(
|
|
30
|
+
u,
|
|
31
31
|
{
|
|
32
|
-
className: `${
|
|
33
|
-
children:
|
|
34
|
-
y,
|
|
35
|
-
{
|
|
36
|
-
className: `${t["table-filter-panel-section"]} tcn-table-filter-panel-section`,
|
|
37
|
-
children: a
|
|
38
|
-
}
|
|
39
|
-
)
|
|
32
|
+
className: `${r["table-filter-panel-section"]} tcn-table-filter-panel-section`,
|
|
33
|
+
children: n
|
|
40
34
|
}
|
|
41
35
|
)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
) });
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
] }) });
|
|
45
39
|
}
|
|
46
|
-
const
|
|
40
|
+
const T = b(
|
|
47
41
|
null
|
|
48
42
|
);
|
|
49
43
|
export {
|
|
50
44
|
w as TableFilterPanel,
|
|
51
|
-
|
|
45
|
+
T as TableFilterPanelContext
|
|
52
46
|
};
|
|
53
47
|
//# sourceMappingURL=table_filter_panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_filter_panel.js","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"sourcesContent":["import { DataSource } from '@tcn/resource-store';\nimport { ReactElement, useState, createContext } from 'react';\nimport { FieldFilterProps } from './field_filters/field_filter_props.js';\nimport { TableFilterPanelPresenter } from './table_filter_panel_presenter.js';\nimport {
|
|
1
|
+
{"version":3,"file":"table_filter_panel.js","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"sourcesContent":["import { DataSource } from '@tcn/resource-store';\nimport { ReactElement, useState, createContext } from 'react';\nimport { FieldFilterProps } from './field_filters/field_filter_props.js';\nimport { TableFilterPanelPresenter } from './table_filter_panel_presenter.js';\nimport { Aside, type PanelProps } from '@tcn/ui/surfaces';\nimport { Header, Section, VBody } from '@tcn/ui/layouts';\nimport styles from './table_filter_panel.module.css';\nimport { Spacer } from '@tcn/ui/stacks';\nimport { Button } from '@tcn/ui/actions';\nimport { CrossIcon } from '@tcn/icons/cross_icon.js';\n\nexport interface TableFilterPanelProps extends Omit<PanelProps, 'children'> {\n children: ReactElement<FieldFilterProps>[] | ReactElement<FieldFilterProps>;\n dataSource: DataSource<any>;\n onClose?: () => void;\n title?: string;\n}\n\nexport function TableFilterPanel({\n children,\n dataSource,\n className,\n onClose,\n title = 'Table Filters',\n ...props\n}: TableFilterPanelProps) {\n const [presenter] = useState(() => {\n return new TableFilterPanelPresenter(dataSource);\n });\n\n return (\n <TableFilterPanelContext.Provider value={presenter}>\n <Aside className={`tcn-table-filter-panel ${className}`} {...props}>\n <Header>\n {title}\n <Spacer />\n {onClose && (\n <Button utility hierarchy=\"tertiary\" onClick={onClose}>\n <CrossIcon />\n </Button>\n )}\n </Header>\n <VBody\n className={`${styles['table-filter-panel-body']} tcn-table-filter-panel-body`}\n >\n <Section\n className={`${styles['table-filter-panel-section']} tcn-table-filter-panel-section`}\n >\n {children}\n </Section>\n </VBody>\n </Aside>\n </TableFilterPanelContext.Provider>\n );\n}\n\nexport const TableFilterPanelContext = createContext<TableFilterPanelPresenter | null>(\n null\n);\n"],"names":["TableFilterPanel","children","dataSource","className","onClose","title","props","presenter","useState","TableFilterPanelPresenter","jsx","TableFilterPanelContext","jsxs","Aside","Header","Spacer","Button","CrossIcon","VBody","styles","Section","createContext"],"mappings":";;;;;;;;;AAkBO,SAASA,EAAiB;AAAA,EAC/B,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,GAA0B;AACxB,QAAM,CAACC,CAAS,IAAIC,EAAS,MACpB,IAAIC,EAA0BP,CAAU,CAChD;AAED,SACE,gBAAAQ,EAACC,EAAwB,UAAxB,EAAiC,OAAOJ,GACvC,UAAA,gBAAAK,EAACC,GAAA,EAAM,WAAW,0BAA0BV,CAAS,IAAK,GAAGG,GAC3D,UAAA;AAAA,IAAA,gBAAAM,EAACE,GAAA,EACE,UAAA;AAAA,MAAAT;AAAA,wBACAU,GAAA,EAAO;AAAA,MACPX,KACC,gBAAAM,EAACM,GAAA,EAAO,SAAO,IAAC,WAAU,YAAW,SAASZ,GAC5C,UAAA,gBAAAM,EAACO,GAAA,CAAA,CAAU,EAAA,CACb;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,WAAW,GAAGC,EAAO,yBAAyB,CAAC;AAAA,QAE/C,UAAA,gBAAAT;AAAA,UAACU;AAAA,UAAA;AAAA,YACC,WAAW,GAAGD,EAAO,4BAA4B,CAAC;AAAA,YAEjD,UAAAlB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EACF,EAAA,CACF,EAAA,CACF;AAEJ;AAEO,MAAMU,IAA0BU;AAAA,EACrC;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
._table-filter-
|
|
1
|
+
._table-filter-panel-body_c016eb0{padding-block:8px}._table-filter-panel-body_c016eb0 ._table-filter-panel-section_cfd2eb9{gap:8px}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tcn/ui-table",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React table component library",
|
|
6
6
|
"author": "TCN",
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"clarity-pattern-parser": "^11.5.4",
|
|
42
|
-
"@tcn/icons": "2.3.0",
|
|
43
42
|
"@tcn/aip-160": "1.2.5",
|
|
44
|
-
"@tcn/resource-store": "2.5.
|
|
45
|
-
"@tcn/
|
|
46
|
-
"@tcn/ui": "0.12.
|
|
43
|
+
"@tcn/resource-store": "2.5.5",
|
|
44
|
+
"@tcn/icons": "2.3.0",
|
|
45
|
+
"@tcn/ui": "0.12.7",
|
|
46
|
+
"@tcn/state": "1.3.2"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"react": "^18.2.0",
|
|
@@ -414,18 +414,10 @@ export function WithFilterPanel() {
|
|
|
414
414
|
<VBody>
|
|
415
415
|
<Rail>
|
|
416
416
|
<Side padding="0px">
|
|
417
|
-
<Box
|
|
418
|
-
minWidth="300px"
|
|
419
|
-
enableResizeOnEnd
|
|
420
|
-
overflowY="auto"
|
|
421
|
-
height="100%"
|
|
422
|
-
style={{
|
|
423
|
-
scrollbarGutter: 'stable', // Not sure if there is a better way to prevent the scrollbar appearing causing a horizontal scroll - to to resizing, we fix the width of the content, so adding a vertical scrollbar causing a horizontal overflow.
|
|
424
|
-
}}
|
|
425
|
-
>
|
|
417
|
+
<Box minWidth="300px" enableResizeOnEnd height="100%" maxHeight="100%">
|
|
426
418
|
<TableFilterPanel
|
|
427
419
|
dataSource={source}
|
|
428
|
-
onClose={() => window.alert('
|
|
420
|
+
onClose={() => window.alert('onClose callback called.')}
|
|
429
421
|
>
|
|
430
422
|
<StringFieldFilter fieldName="name" label="Name (string)" />
|
|
431
423
|
<NumberFieldFilter fieldName="age" label="Age (number)" />
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
StaticNumberField,
|
|
4
4
|
StaticStringField,
|
|
5
5
|
} from '@tcn/resource-store';
|
|
6
|
-
import
|
|
6
|
+
import { useState } from 'react';
|
|
7
7
|
import { items } from '../../__stories__/sample_data.js';
|
|
8
8
|
import { NumberFieldFilter } from './field_filters/number_field_filter.js';
|
|
9
9
|
import { TableFilterPanel } from './table_filter_panel.js';
|
|
@@ -2,7 +2,7 @@ import { DataSource } from '@tcn/resource-store';
|
|
|
2
2
|
import { ReactElement, useState, createContext } from 'react';
|
|
3
3
|
import { FieldFilterProps } from './field_filters/field_filter_props.js';
|
|
4
4
|
import { TableFilterPanelPresenter } from './table_filter_panel_presenter.js';
|
|
5
|
-
import {
|
|
5
|
+
import { Aside, type PanelProps } from '@tcn/ui/surfaces';
|
|
6
6
|
import { Header, Section, VBody } from '@tcn/ui/layouts';
|
|
7
7
|
import styles from './table_filter_panel.module.css';
|
|
8
8
|
import { Spacer } from '@tcn/ui/stacks';
|
|
@@ -13,6 +13,7 @@ export interface TableFilterPanelProps extends Omit<PanelProps, 'children'> {
|
|
|
13
13
|
children: ReactElement<FieldFilterProps>[] | ReactElement<FieldFilterProps>;
|
|
14
14
|
dataSource: DataSource<any>;
|
|
15
15
|
onClose?: () => void;
|
|
16
|
+
title?: string;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export function TableFilterPanel({
|
|
@@ -20,6 +21,7 @@ export function TableFilterPanel({
|
|
|
20
21
|
dataSource,
|
|
21
22
|
className,
|
|
22
23
|
onClose,
|
|
24
|
+
title = 'Table Filters',
|
|
23
25
|
...props
|
|
24
26
|
}: TableFilterPanelProps) {
|
|
25
27
|
const [presenter] = useState(() => {
|
|
@@ -28,12 +30,9 @@ export function TableFilterPanel({
|
|
|
28
30
|
|
|
29
31
|
return (
|
|
30
32
|
<TableFilterPanelContext.Provider value={presenter}>
|
|
31
|
-
<
|
|
32
|
-
className={`${styles['table-filter-panel']} tcn-table-filter-panel ${className}`}
|
|
33
|
-
{...props}
|
|
34
|
-
>
|
|
33
|
+
<Aside className={`tcn-table-filter-panel ${className}`} {...props}>
|
|
35
34
|
<Header>
|
|
36
|
-
|
|
35
|
+
{title}
|
|
37
36
|
<Spacer />
|
|
38
37
|
{onClose && (
|
|
39
38
|
<Button utility hierarchy="tertiary" onClick={onClose}>
|
|
@@ -50,7 +49,7 @@ export function TableFilterPanel({
|
|
|
50
49
|
{children}
|
|
51
50
|
</Section>
|
|
52
51
|
</VBody>
|
|
53
|
-
</
|
|
52
|
+
</Aside>
|
|
54
53
|
</TableFilterPanelContext.Provider>
|
|
55
54
|
);
|
|
56
55
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,36 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
2
3
|
"compilerOptions": {
|
|
3
|
-
"
|
|
4
|
-
"jsx": "react-jsx",
|
|
5
|
-
"paths": {
|
|
6
|
-
"~aip-160/*": [
|
|
7
|
-
"../aip-160/src/*"
|
|
8
|
-
],
|
|
9
|
-
"~aip-160-editor/*": [
|
|
10
|
-
"../aip-160-editor/src/*"
|
|
11
|
-
],
|
|
12
|
-
"~icons/*": [
|
|
13
|
-
"../icons/src/*"
|
|
14
|
-
],
|
|
15
|
-
"~resource-store/*": [
|
|
16
|
-
"../resource-store/src/*"
|
|
17
|
-
],
|
|
18
|
-
"~sb-blackcat-addon/*": [
|
|
19
|
-
"../sb-blackcat-addon/src/*"
|
|
20
|
-
],
|
|
21
|
-
"~state/*": [
|
|
22
|
-
"../state/src/*"
|
|
23
|
-
],
|
|
24
|
-
"~ui/*": [
|
|
25
|
-
"../ui/src/*"
|
|
26
|
-
],
|
|
27
|
-
"~ui-table/*": [
|
|
28
|
-
"./src/*"
|
|
29
|
-
]
|
|
30
|
-
}
|
|
4
|
+
"rootDir": "."
|
|
31
5
|
},
|
|
32
|
-
"include": [
|
|
33
|
-
|
|
34
|
-
"types/**/*"
|
|
35
|
-
]
|
|
36
|
-
}
|
|
6
|
+
"include": ["src/**/*", ".storybook/**/*", "types/**/*", "package.json"]
|
|
7
|
+
}
|