@akinon/akitable 1.2.5-next.1 → 1.3.0
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/cjs/akitable.d.ts.map +1 -1
- package/dist/cjs/akitable.js +2 -2
- package/dist/cjs/components/datatable.d.ts.map +1 -1
- package/dist/cjs/components/datatable.js +13 -2
- package/dist/cjs/types.d.ts +18 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/akitable.d.ts.map +1 -1
- package/dist/esm/akitable.js +2 -2
- package/dist/esm/components/datatable.d.ts.map +1 -1
- package/dist/esm/components/datatable.js +13 -2
- package/dist/esm/types.d.ts +18 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akitable.d.ts","sourceRoot":"","sources":["../../src/akitable.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,
|
|
1
|
+
{"version":3,"file":"akitable.d.ts","sourceRoot":"","sources":["../../src/akitable.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,sBA0E5C,CAAC"}
|
package/dist/cjs/akitable.js
CHANGED
|
@@ -24,7 +24,7 @@ const header_1 = require("./components/header");
|
|
|
24
24
|
* needs in enterprise applications.
|
|
25
25
|
*/
|
|
26
26
|
const Akitable = (props) => {
|
|
27
|
-
const { actions, columns, data, footer, header, isLoading, maxColumnContent, pagination, rowKey, onPaginationChanged, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
27
|
+
const { actions, columns, data, footer, header, isLoading, maxColumnContent, pagination, rowKey, emptyState, onPaginationChanged, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
28
28
|
// If there is a pagination object, table data should be accessed from type AkitablePaginatedData.
|
|
29
29
|
// If not, table data should be accessed from type AkitableData.
|
|
30
30
|
const handleGetParsedData = () => {
|
|
@@ -45,7 +45,7 @@ const Akitable = (props) => {
|
|
|
45
45
|
react_1.default.createElement(akitable_context_1.AkitableProvider, { actions: actions, isLoading: isLoading, pagination: Object.assign(Object.assign({}, pagination), { total, hasPagination: !!pagination }), onPaginationChanged: onPaginationChanged },
|
|
46
46
|
react_1.default.createElement(antd_1.ConfigProvider, { theme: theme_overrides_1.themeOverrides },
|
|
47
47
|
react_1.default.createElement(header_1.AkitableHeader, Object.assign({}, header)),
|
|
48
|
-
react_1.default.createElement(datatable_1.AkitableDataTable, { columns: columns, data: parsedData, rowKey: rowKey, maxColumnContent: maxColumnContent, onRowClick: onRowClick, onRowEdit: onRowEdit, onChangeSorter: onChangeSorter }),
|
|
48
|
+
react_1.default.createElement(datatable_1.AkitableDataTable, { columns: columns, data: parsedData, rowKey: rowKey, maxColumnContent: maxColumnContent, emptyState: emptyState, onRowClick: onRowClick, onRowEdit: onRowEdit, onChangeSorter: onChangeSorter }),
|
|
49
49
|
react_1.default.createElement(footer_1.AkitableFooter, Object.assign({}, footer)))))));
|
|
50
50
|
};
|
|
51
51
|
exports.Akitable = Akitable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../src/components/datatable.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../src/components/datatable.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAQzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAGL,sBAAsB,EAIvB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,iBAAiB,GAAI,OAAO,sBAAsB,sBA2M9D,CAAC"}
|
|
@@ -6,6 +6,7 @@ const akiform_1 = require("@akinon/akiform");
|
|
|
6
6
|
const ui_button_1 = require("@akinon/ui-button");
|
|
7
7
|
const ui_table_1 = require("@akinon/ui-table");
|
|
8
8
|
const ui_typography_1 = require("@akinon/ui-typography");
|
|
9
|
+
const antd_1 = require("antd");
|
|
9
10
|
const clsx_1 = require("clsx");
|
|
10
11
|
const react_1 = require("react");
|
|
11
12
|
const akitable_context_1 = require("../akitable-context");
|
|
@@ -15,7 +16,7 @@ const EditableCell_1 = require("./EditableCell");
|
|
|
15
16
|
const { t } = i18n_1.i18n;
|
|
16
17
|
const AkitableDataTable = (props) => {
|
|
17
18
|
const { isLoading, selectedRowKeys, setSelectedRowKeys, actions } = (0, akitable_context_1.useAkitableContext)();
|
|
18
|
-
const { columns, data, rowKey, maxColumnContent = true, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
19
|
+
const { columns, data, rowKey, maxColumnContent = true, onRowClick, onRowEdit, emptyState, onChangeSorter } = props;
|
|
19
20
|
const [form] = akiform_1.Akiform.useForm();
|
|
20
21
|
const [localColumns, setLocalColumns] = react_1.default.useState(columns);
|
|
21
22
|
const [editingKey, setEditingKey] = react_1.default.useState(null);
|
|
@@ -93,13 +94,23 @@ const AkitableDataTable = (props) => {
|
|
|
93
94
|
};
|
|
94
95
|
setLocalColumns([...modifiedColumns, editColumn]);
|
|
95
96
|
}, [columns, onRowEdit, editingKey, isLoadingSaveButton]);
|
|
97
|
+
const renderEmptyState = (emptyStateConfig) => {
|
|
98
|
+
var _a;
|
|
99
|
+
if (!emptyStateConfig)
|
|
100
|
+
return undefined;
|
|
101
|
+
return (react_1.default.createElement(antd_1.Empty, { image: emptyStateConfig.icon, description: (_a = emptyStateConfig.description) !== null && _a !== void 0 ? _a : i18n_1.i18n.t('noData') }));
|
|
102
|
+
};
|
|
96
103
|
return (react_1.default.createElement("div", { "data-testid": "akitable-datatable-wrapper", className: "akitable-wrapper" },
|
|
97
104
|
react_1.default.createElement(akiform_1.Akiform, { form: form, component: false },
|
|
98
105
|
react_1.default.createElement(ui_table_1.Table, { "data-testid": "akitable-datatable", components: {
|
|
99
106
|
body: {
|
|
100
107
|
cell: EditableCell_1.default
|
|
101
108
|
}
|
|
102
|
-
}, columns: localColumns, dataSource: data, rowKey: (record) => getRowKeyData(record), bordered: true, rowHoverable: true, pagination: false,
|
|
109
|
+
}, columns: localColumns, dataSource: data, rowKey: (record) => getRowKeyData(record), bordered: true, rowHoverable: true, pagination: false, locale: emptyState
|
|
110
|
+
? {
|
|
111
|
+
emptyText: renderEmptyState(emptyState)
|
|
112
|
+
}
|
|
113
|
+
: undefined, scroll: Object.assign(Object.assign({}, (maxColumnContent && { x: 'max-content' })), { scrollToFirstRowOnChange: true }), loading: isLoading, onRow: (record, rowIndex) => {
|
|
103
114
|
const isEditingRow = checkIsEditingRow(getRowKeyData(record));
|
|
104
115
|
return Object.assign({}, (!isEditingRow && {
|
|
105
116
|
onClick: (event) => {
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -66,6 +66,10 @@ export interface AkitableProps {
|
|
|
66
66
|
* Callback for sorter changes.
|
|
67
67
|
*/
|
|
68
68
|
onChangeSorter?: SorterChangeEvent;
|
|
69
|
+
/**
|
|
70
|
+
* Custom empty state configuration for the table.
|
|
71
|
+
*/
|
|
72
|
+
emptyState?: AkitableEmptyStateProps;
|
|
69
73
|
}
|
|
70
74
|
export interface AkitableHeaderProps {
|
|
71
75
|
/**
|
|
@@ -125,6 +129,20 @@ export interface AkitableDataTableProps {
|
|
|
125
129
|
* Callback for sorter changes.
|
|
126
130
|
*/
|
|
127
131
|
onChangeSorter?: SorterChangeEvent;
|
|
132
|
+
/**
|
|
133
|
+
* Custom empty state configuration for the table.
|
|
134
|
+
*/
|
|
135
|
+
emptyState?: AkitableEmptyStateProps;
|
|
136
|
+
}
|
|
137
|
+
export interface AkitableEmptyStateProps {
|
|
138
|
+
/**
|
|
139
|
+
* Custom icon for empty state.
|
|
140
|
+
*/
|
|
141
|
+
icon?: ReactNode;
|
|
142
|
+
/**
|
|
143
|
+
* Custom description for empty state.
|
|
144
|
+
*/
|
|
145
|
+
description?: ReactNode;
|
|
128
146
|
}
|
|
129
147
|
export type AkitablePageSizes = 20 | 50 | 100 | 250;
|
|
130
148
|
export interface AkitablePaginationProps {
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAC;AAEV,KAAK,eAAe,GAAG,CACrB,cAAc,EAAE,YAAY,EAC5B,OAAO,EAAE,YAAY,KAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B;;OAEG;IACH,IAAI,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;IAE7C;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;IAErC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAE5C;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akitable.d.ts","sourceRoot":"","sources":["../../src/akitable.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,
|
|
1
|
+
{"version":3,"file":"akitable.d.ts","sourceRoot":"","sources":["../../src/akitable.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,sBA0E5C,CAAC"}
|
package/dist/esm/akitable.js
CHANGED
|
@@ -21,7 +21,7 @@ import { AkitableHeader } from './components/header';
|
|
|
21
21
|
* needs in enterprise applications.
|
|
22
22
|
*/
|
|
23
23
|
export const Akitable = (props) => {
|
|
24
|
-
const { actions, columns, data, footer, header, isLoading, maxColumnContent, pagination, rowKey, onPaginationChanged, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
24
|
+
const { actions, columns, data, footer, header, isLoading, maxColumnContent, pagination, rowKey, emptyState, onPaginationChanged, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
25
25
|
// If there is a pagination object, table data should be accessed from type AkitablePaginatedData.
|
|
26
26
|
// If not, table data should be accessed from type AkitableData.
|
|
27
27
|
const handleGetParsedData = () => {
|
|
@@ -42,6 +42,6 @@ export const Akitable = (props) => {
|
|
|
42
42
|
React.createElement(AkitableProvider, { actions: actions, isLoading: isLoading, pagination: Object.assign(Object.assign({}, pagination), { total, hasPagination: !!pagination }), onPaginationChanged: onPaginationChanged },
|
|
43
43
|
React.createElement(ConfigProvider, { theme: themeOverrides },
|
|
44
44
|
React.createElement(AkitableHeader, Object.assign({}, header)),
|
|
45
|
-
React.createElement(AkitableDataTable, { columns: columns, data: parsedData, rowKey: rowKey, maxColumnContent: maxColumnContent, onRowClick: onRowClick, onRowEdit: onRowEdit, onChangeSorter: onChangeSorter }),
|
|
45
|
+
React.createElement(AkitableDataTable, { columns: columns, data: parsedData, rowKey: rowKey, maxColumnContent: maxColumnContent, emptyState: emptyState, onRowClick: onRowClick, onRowEdit: onRowEdit, onChangeSorter: onChangeSorter }),
|
|
46
46
|
React.createElement(AkitableFooter, Object.assign({}, footer)))))));
|
|
47
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../src/components/datatable.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../src/components/datatable.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAQzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAGL,sBAAsB,EAIvB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,iBAAiB,GAAI,OAAO,sBAAsB,sBA2M9D,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { Akiform } from '@akinon/akiform';
|
|
|
3
3
|
import { Button } from '@akinon/ui-button';
|
|
4
4
|
import { Table } from '@akinon/ui-table';
|
|
5
5
|
import { Text } from '@akinon/ui-typography';
|
|
6
|
+
import { Empty } from 'antd';
|
|
6
7
|
import clsx from 'clsx';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { useAkitableContext } from '../akitable-context';
|
|
@@ -12,7 +13,7 @@ import EditableCell from './EditableCell';
|
|
|
12
13
|
const { t } = i18n;
|
|
13
14
|
export const AkitableDataTable = (props) => {
|
|
14
15
|
const { isLoading, selectedRowKeys, setSelectedRowKeys, actions } = useAkitableContext();
|
|
15
|
-
const { columns, data, rowKey, maxColumnContent = true, onRowClick, onRowEdit, onChangeSorter } = props;
|
|
16
|
+
const { columns, data, rowKey, maxColumnContent = true, onRowClick, onRowEdit, emptyState, onChangeSorter } = props;
|
|
16
17
|
const [form] = Akiform.useForm();
|
|
17
18
|
const [localColumns, setLocalColumns] = React.useState(columns);
|
|
18
19
|
const [editingKey, setEditingKey] = React.useState(null);
|
|
@@ -90,13 +91,23 @@ export const AkitableDataTable = (props) => {
|
|
|
90
91
|
};
|
|
91
92
|
setLocalColumns([...modifiedColumns, editColumn]);
|
|
92
93
|
}, [columns, onRowEdit, editingKey, isLoadingSaveButton]);
|
|
94
|
+
const renderEmptyState = (emptyStateConfig) => {
|
|
95
|
+
var _a;
|
|
96
|
+
if (!emptyStateConfig)
|
|
97
|
+
return undefined;
|
|
98
|
+
return (React.createElement(Empty, { image: emptyStateConfig.icon, description: (_a = emptyStateConfig.description) !== null && _a !== void 0 ? _a : i18n.t('noData') }));
|
|
99
|
+
};
|
|
93
100
|
return (React.createElement("div", { "data-testid": "akitable-datatable-wrapper", className: "akitable-wrapper" },
|
|
94
101
|
React.createElement(Akiform, { form: form, component: false },
|
|
95
102
|
React.createElement(Table, { "data-testid": "akitable-datatable", components: {
|
|
96
103
|
body: {
|
|
97
104
|
cell: EditableCell
|
|
98
105
|
}
|
|
99
|
-
}, columns: localColumns, dataSource: data, rowKey: (record) => getRowKeyData(record), bordered: true, rowHoverable: true, pagination: false,
|
|
106
|
+
}, columns: localColumns, dataSource: data, rowKey: (record) => getRowKeyData(record), bordered: true, rowHoverable: true, pagination: false, locale: emptyState
|
|
107
|
+
? {
|
|
108
|
+
emptyText: renderEmptyState(emptyState)
|
|
109
|
+
}
|
|
110
|
+
: undefined, scroll: Object.assign(Object.assign({}, (maxColumnContent && { x: 'max-content' })), { scrollToFirstRowOnChange: true }), loading: isLoading, onRow: (record, rowIndex) => {
|
|
100
111
|
const isEditingRow = checkIsEditingRow(getRowKeyData(record));
|
|
101
112
|
return Object.assign({}, (!isEditingRow && {
|
|
102
113
|
onClick: (event) => {
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -66,6 +66,10 @@ export interface AkitableProps {
|
|
|
66
66
|
* Callback for sorter changes.
|
|
67
67
|
*/
|
|
68
68
|
onChangeSorter?: SorterChangeEvent;
|
|
69
|
+
/**
|
|
70
|
+
* Custom empty state configuration for the table.
|
|
71
|
+
*/
|
|
72
|
+
emptyState?: AkitableEmptyStateProps;
|
|
69
73
|
}
|
|
70
74
|
export interface AkitableHeaderProps {
|
|
71
75
|
/**
|
|
@@ -125,6 +129,20 @@ export interface AkitableDataTableProps {
|
|
|
125
129
|
* Callback for sorter changes.
|
|
126
130
|
*/
|
|
127
131
|
onChangeSorter?: SorterChangeEvent;
|
|
132
|
+
/**
|
|
133
|
+
* Custom empty state configuration for the table.
|
|
134
|
+
*/
|
|
135
|
+
emptyState?: AkitableEmptyStateProps;
|
|
136
|
+
}
|
|
137
|
+
export interface AkitableEmptyStateProps {
|
|
138
|
+
/**
|
|
139
|
+
* Custom icon for empty state.
|
|
140
|
+
*/
|
|
141
|
+
icon?: ReactNode;
|
|
142
|
+
/**
|
|
143
|
+
* Custom description for empty state.
|
|
144
|
+
*/
|
|
145
|
+
description?: ReactNode;
|
|
128
146
|
}
|
|
129
147
|
export type AkitablePageSizes = 20 | 50 | 100 | 250;
|
|
130
148
|
export interface AkitablePaginationProps {
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAC;AAEV,KAAK,eAAe,GAAG,CACrB,cAAc,EAAE,YAAY,EAC5B,OAAO,EAAE,YAAY,KAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B;;OAEG;IACH,IAAI,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;IAE7C;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;IAErC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAE5C;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akinon/akitable",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
@@ -13,30 +13,30 @@
|
|
|
13
13
|
"clsx": "^2.1.1",
|
|
14
14
|
"react-error-boundary": "^6.0.0",
|
|
15
15
|
"@akinon/akiform": "1.1.2",
|
|
16
|
-
"@akinon/
|
|
17
|
-
"@akinon/ui-button": "1.4.0-next.1",
|
|
18
|
-
"@akinon/ui-select": "1.3.4-next.1",
|
|
19
|
-
"@akinon/ui-pagination": "1.3.4-next.1",
|
|
20
|
-
"@akinon/ui-progress": "1.1.3-next.1",
|
|
21
|
-
"@akinon/ui-space": "1.3.3-next.1",
|
|
22
|
-
"@akinon/ui-theme": "1.1.3-next.1",
|
|
23
|
-
"@akinon/ui-result": "1.3.2-next.1",
|
|
24
|
-
"@akinon/ui-skeleton": "1.1.1",
|
|
25
|
-
"@akinon/ui-typography": "1.1.2-next.0",
|
|
26
|
-
"@akinon/ui-spin": "1.3.3-next.1",
|
|
27
|
-
"@akinon/ui-card": "1.1.3-next.1",
|
|
16
|
+
"@akinon/ui-button": "1.4.0",
|
|
28
17
|
"@akinon/akilocale": "1.2.1",
|
|
29
|
-
"@akinon/ui-
|
|
30
|
-
"@akinon/ui-input": "1.
|
|
31
|
-
"@akinon/ui-
|
|
18
|
+
"@akinon/ui-card": "1.2.0",
|
|
19
|
+
"@akinon/ui-input": "1.2.0",
|
|
20
|
+
"@akinon/ui-pagination": "1.4.0",
|
|
21
|
+
"@akinon/icons": "1.2.0",
|
|
22
|
+
"@akinon/ui-progress": "1.2.0",
|
|
23
|
+
"@akinon/ui-result": "1.4.0",
|
|
24
|
+
"@akinon/ui-select": "1.4.0",
|
|
25
|
+
"@akinon/ui-space": "1.4.0",
|
|
26
|
+
"@akinon/ui-theme": "1.2.0",
|
|
27
|
+
"@akinon/ui-spin": "1.4.0",
|
|
28
|
+
"@akinon/ui-steps": "1.2.0",
|
|
29
|
+
"@akinon/ui-table": "1.1.1",
|
|
30
|
+
"@akinon/ui-skeleton": "1.1.1",
|
|
31
|
+
"@akinon/ui-typography": "1.2.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"clean-package": "2.2.0",
|
|
35
35
|
"copyfiles": "^2.4.1",
|
|
36
36
|
"rimraf": "^5.0.5",
|
|
37
37
|
"typescript": "*",
|
|
38
|
+
"@akinon/utils": "1.2.0",
|
|
38
39
|
"@akinon/typescript-config": "1.1.1",
|
|
39
|
-
"@akinon/utils": "1.1.4-next.1",
|
|
40
40
|
"@akinon/vitest-config": "1.1.1"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|