@xanui/ui 1.0.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/Accordion/index.d.ts +32 -0
- package/Accordion/index.js +82 -0
- package/Accordion/index.js.map +1 -0
- package/Accordion/index.mjs +82 -0
- package/Accordion/index.mjs.map +1 -0
- package/Alert/index.d.ts +41 -0
- package/Alert/index.js +137 -0
- package/Alert/index.js.map +1 -0
- package/Alert/index.mjs +137 -0
- package/Alert/index.mjs.map +1 -0
- package/Avatar/index.d.ts +10 -0
- package/Avatar/index.js +34 -0
- package/Avatar/index.js.map +1 -0
- package/Avatar/index.mjs +34 -0
- package/Avatar/index.mjs.map +1 -0
- package/Badge/index.d.ts +16 -0
- package/Badge/index.js +68 -0
- package/Badge/index.js.map +1 -0
- package/Badge/index.mjs +68 -0
- package/Badge/index.mjs.map +1 -0
- package/Box/index.d.ts +8 -0
- package/Box/index.js +4 -0
- package/Box/index.js.map +1 -0
- package/Box/index.mjs +4 -0
- package/Box/index.mjs.map +1 -0
- package/Button/index.d.ts +22 -0
- package/Button/index.js +77 -0
- package/Button/index.js.map +1 -0
- package/Button/index.mjs +77 -0
- package/Button/index.mjs.map +1 -0
- package/ButtonGroup/index.d.ts +14 -0
- package/ButtonGroup/index.js +47 -0
- package/ButtonGroup/index.js.map +1 -0
- package/ButtonGroup/index.mjs +47 -0
- package/ButtonGroup/index.mjs.map +1 -0
- package/Calendar/index.d.ts +14 -0
- package/Calendar/index.js +140 -0
- package/Calendar/index.js.map +1 -0
- package/Calendar/index.mjs +140 -0
- package/Calendar/index.mjs.map +1 -0
- package/CalendarInput/index.d.ts +18 -0
- package/CalendarInput/index.js +11 -0
- package/CalendarInput/index.js.map +1 -0
- package/CalendarInput/index.mjs +11 -0
- package/CalendarInput/index.mjs.map +1 -0
- package/Checkbox/index.d.ts +15 -0
- package/Checkbox/index.js +44 -0
- package/Checkbox/index.js.map +1 -0
- package/Checkbox/index.mjs +44 -0
- package/Checkbox/index.mjs.map +1 -0
- package/Chip/index.d.ts +17 -0
- package/Chip/index.js +59 -0
- package/Chip/index.js.map +1 -0
- package/Chip/index.mjs +59 -0
- package/Chip/index.mjs.map +1 -0
- package/CircleProgress/index.d.ts +20 -0
- package/CircleProgress/index.js +118 -0
- package/CircleProgress/index.js.map +1 -0
- package/CircleProgress/index.mjs +118 -0
- package/CircleProgress/index.mjs.map +1 -0
- package/ClickOutside/index.d.ts +10 -0
- package/ClickOutside/index.js +16 -0
- package/ClickOutside/index.js.map +1 -0
- package/ClickOutside/index.mjs +16 -0
- package/ClickOutside/index.mjs.map +1 -0
- package/Collaps/index.d.ts +8 -0
- package/Collaps/index.js +18 -0
- package/Collaps/index.js.map +1 -0
- package/Collaps/index.mjs +18 -0
- package/Collaps/index.mjs.map +1 -0
- package/Container/index.d.ts +10 -0
- package/Container/index.js +19 -0
- package/Container/index.js.map +1 -0
- package/Container/index.mjs +19 -0
- package/Container/index.mjs.map +1 -0
- package/Datatable/FilterBox.js +19 -0
- package/Datatable/FilterBox.js.map +1 -0
- package/Datatable/FilterBox.mjs +19 -0
- package/Datatable/FilterBox.mjs.map +1 -0
- package/Datatable/Row.js +41 -0
- package/Datatable/Row.js.map +1 -0
- package/Datatable/Row.mjs +41 -0
- package/Datatable/Row.mjs.map +1 -0
- package/Datatable/SelectedBox.js +11 -0
- package/Datatable/SelectedBox.js.map +1 -0
- package/Datatable/SelectedBox.mjs +11 -0
- package/Datatable/SelectedBox.mjs.map +1 -0
- package/Datatable/Table.js +11 -0
- package/Datatable/Table.js.map +1 -0
- package/Datatable/Table.mjs +11 -0
- package/Datatable/Table.mjs.map +1 -0
- package/Datatable/TableHead.js +35 -0
- package/Datatable/TableHead.js.map +1 -0
- package/Datatable/TableHead.mjs +35 -0
- package/Datatable/TableHead.mjs.map +1 -0
- package/Datatable/index.d.ts +71 -0
- package/Datatable/index.js +35 -0
- package/Datatable/index.js.map +1 -0
- package/Datatable/index.mjs +35 -0
- package/Datatable/index.mjs.map +1 -0
- package/Divider/index.d.ts +12 -0
- package/Divider/index.js +21 -0
- package/Divider/index.js.map +1 -0
- package/Divider/index.mjs +21 -0
- package/Divider/index.mjs.map +1 -0
- package/Drawer/index.d.ts +25 -0
- package/Drawer/index.js +57 -0
- package/Drawer/index.js.map +1 -0
- package/Drawer/index.mjs +57 -0
- package/Drawer/index.mjs.map +1 -0
- package/Form/index.d.ts +8 -0
- package/Form/index.js +34 -0
- package/Form/index.js.map +1 -0
- package/Form/index.mjs +34 -0
- package/Form/index.mjs.map +1 -0
- package/GridContainer/index.d.ts +8 -0
- package/GridContainer/index.js +9 -0
- package/GridContainer/index.js.map +1 -0
- package/GridContainer/index.mjs +9 -0
- package/GridContainer/index.mjs.map +1 -0
- package/GridItem/index.d.ts +14 -0
- package/GridItem/index.js +10 -0
- package/GridItem/index.js.map +1 -0
- package/GridItem/index.mjs +10 -0
- package/GridItem/index.mjs.map +1 -0
- package/IconButton/index.d.ts +13 -0
- package/IconButton/index.js +48 -0
- package/IconButton/index.js.map +1 -0
- package/IconButton/index.mjs +48 -0
- package/IconButton/index.mjs.map +1 -0
- package/Image/index.d.ts +10 -0
- package/Image/index.js +16 -0
- package/Image/index.js.map +1 -0
- package/Image/index.mjs +16 -0
- package/Image/index.mjs.map +1 -0
- package/Input/index.d.ts +26 -0
- package/Input/index.js +149 -0
- package/Input/index.js.map +1 -0
- package/Input/index.mjs +149 -0
- package/Input/index.mjs.map +1 -0
- package/Label/index.d.ts +8 -0
- package/Label/index.js +10 -0
- package/Label/index.js.map +1 -0
- package/Label/index.mjs +10 -0
- package/Label/index.mjs.map +1 -0
- package/Layer/index.d.ts +34 -0
- package/Layer/index.js +73 -0
- package/Layer/index.js.map +1 -0
- package/Layer/index.mjs +73 -0
- package/Layer/index.mjs.map +1 -0
- package/LineProgress/index.d.ts +15 -0
- package/LineProgress/index.js +48 -0
- package/LineProgress/index.js.map +1 -0
- package/LineProgress/index.mjs +48 -0
- package/LineProgress/index.mjs.map +1 -0
- package/List/index.d.ts +13 -0
- package/List/index.js +51 -0
- package/List/index.js.map +1 -0
- package/List/index.mjs +51 -0
- package/List/index.mjs.map +1 -0
- package/ListItem/index.d.ts +13 -0
- package/ListItem/index.js +26 -0
- package/ListItem/index.js.map +1 -0
- package/ListItem/index.mjs +26 -0
- package/ListItem/index.mjs.map +1 -0
- package/LoadingBox/index.d.ts +15 -0
- package/LoadingBox/index.js +22 -0
- package/LoadingBox/index.js.map +1 -0
- package/LoadingBox/index.mjs +22 -0
- package/LoadingBox/index.mjs.map +1 -0
- package/Menu/getOrigin.js +42 -0
- package/Menu/getOrigin.js.map +1 -0
- package/Menu/getOrigin.mjs +42 -0
- package/Menu/getOrigin.mjs.map +1 -0
- package/Menu/index.d.ts +22 -0
- package/Menu/index.js +47 -0
- package/Menu/index.js.map +1 -0
- package/Menu/index.mjs +47 -0
- package/Menu/index.mjs.map +1 -0
- package/Menu/placedMenu.d.ts +5 -0
- package/Menu/placedMenu.js +95 -0
- package/Menu/placedMenu.js.map +1 -0
- package/Menu/placedMenu.mjs +95 -0
- package/Menu/placedMenu.mjs.map +1 -0
- package/Modal/index.d.ts +19 -0
- package/Modal/index.js +38 -0
- package/Modal/index.js.map +1 -0
- package/Modal/index.mjs +38 -0
- package/Modal/index.mjs.map +1 -0
- package/NoSSR/index.d.ts +3 -0
- package/NoSSR/index.js +7 -0
- package/NoSSR/index.js.map +1 -0
- package/NoSSR/index.mjs +7 -0
- package/NoSSR/index.mjs.map +1 -0
- package/Option/index.d.ts +10 -0
- package/Option/index.js +4 -0
- package/Option/index.js.map +1 -0
- package/Option/index.mjs +4 -0
- package/Option/index.mjs.map +1 -0
- package/Paper/index.d.ts +8 -0
- package/Paper/index.js +5 -0
- package/Paper/index.js.map +1 -0
- package/Paper/index.mjs +5 -0
- package/Paper/index.mjs.map +1 -0
- package/Portal/index.d.ts +11 -0
- package/Portal/index.js +26 -0
- package/Portal/index.js.map +1 -0
- package/Portal/index.mjs +26 -0
- package/Portal/index.mjs.map +1 -0
- package/Radio/index.d.ts +6 -0
- package/Radio/index.js +4 -0
- package/Radio/index.js.map +1 -0
- package/Radio/index.mjs +4 -0
- package/Radio/index.mjs.map +1 -0
- package/Scrollbar/index.d.ts +14 -0
- package/Scrollbar/index.js +65 -0
- package/Scrollbar/index.js.map +1 -0
- package/Scrollbar/index.mjs +65 -0
- package/Scrollbar/index.mjs.map +1 -0
- package/Select/index.d.ts +24 -0
- package/Select/index.js +35 -0
- package/Select/index.js.map +1 -0
- package/Select/index.mjs +35 -0
- package/Select/index.mjs.map +1 -0
- package/Stack/index.d.ts +8 -0
- package/Stack/index.js +7 -0
- package/Stack/index.js.map +1 -0
- package/Stack/index.mjs +7 -0
- package/Stack/index.mjs.map +1 -0
- package/Switch/index.d.ts +19 -0
- package/Switch/index.js +68 -0
- package/Switch/index.js.map +1 -0
- package/Switch/index.mjs +68 -0
- package/Switch/index.mjs.map +1 -0
- package/Tab/index.d.ts +11 -0
- package/Tab/index.js +5 -0
- package/Tab/index.js.map +1 -0
- package/Tab/index.mjs +5 -0
- package/Tab/index.mjs.map +1 -0
- package/Table/index.d.ts +14 -0
- package/Table/index.js +77 -0
- package/Table/index.js.map +1 -0
- package/Table/index.mjs +77 -0
- package/Table/index.mjs.map +1 -0
- package/TableBody/index.d.ts +8 -0
- package/TableBody/index.js +4 -0
- package/TableBody/index.js.map +1 -0
- package/TableBody/index.mjs +4 -0
- package/TableBody/index.mjs.map +1 -0
- package/TableCell/index.d.ts +10 -0
- package/TableCell/index.js +4 -0
- package/TableCell/index.js.map +1 -0
- package/TableCell/index.mjs +4 -0
- package/TableCell/index.mjs.map +1 -0
- package/TableFooter/index.d.ts +8 -0
- package/TableFooter/index.js +4 -0
- package/TableFooter/index.js.map +1 -0
- package/TableFooter/index.mjs +4 -0
- package/TableFooter/index.mjs.map +1 -0
- package/TableHead/index.d.ts +8 -0
- package/TableHead/index.js +4 -0
- package/TableHead/index.js.map +1 -0
- package/TableHead/index.mjs +4 -0
- package/TableHead/index.mjs.map +1 -0
- package/TablePagination/index.d.ts +26 -0
- package/TablePagination/index.js +51 -0
- package/TablePagination/index.js.map +1 -0
- package/TablePagination/index.mjs +51 -0
- package/TablePagination/index.mjs.map +1 -0
- package/TableRow/index.d.ts +8 -0
- package/TableRow/index.js +4 -0
- package/TableRow/index.js.map +1 -0
- package/TableRow/index.mjs +4 -0
- package/TableRow/index.mjs.map +1 -0
- package/Tabs/index.d.ts +24 -0
- package/Tabs/index.js +188 -0
- package/Tabs/index.js.map +1 -0
- package/Tabs/index.mjs +188 -0
- package/Tabs/index.mjs.map +1 -0
- package/Text/index.d.ts +10 -0
- package/Text/index.js +10 -0
- package/Text/index.js.map +1 -0
- package/Text/index.mjs +10 -0
- package/Text/index.mjs.map +1 -0
- package/ThemeProvider/RenderRoot.js +22 -0
- package/ThemeProvider/RenderRoot.js.map +1 -0
- package/ThemeProvider/RenderRoot.mjs +22 -0
- package/ThemeProvider/RenderRoot.mjs.map +1 -0
- package/ThemeProvider/index.d.ts +8 -0
- package/ThemeProvider/index.js +4 -0
- package/ThemeProvider/index.js.map +1 -0
- package/ThemeProvider/index.mjs +4 -0
- package/ThemeProvider/index.mjs.map +1 -0
- package/Toast/index.d.ts +20 -0
- package/Toast/index.js +145 -0
- package/Toast/index.js.map +1 -0
- package/Toast/index.mjs +145 -0
- package/Toast/index.mjs.map +1 -0
- package/Tooltip/index.d.ts +16 -0
- package/Tooltip/index.js +29 -0
- package/Tooltip/index.js.map +1 -0
- package/Tooltip/index.mjs +29 -0
- package/Tooltip/index.mjs.map +1 -0
- package/ViewBox/index.d.ts +16 -0
- package/ViewBox/index.js +21 -0
- package/ViewBox/index.js.map +1 -0
- package/ViewBox/index.mjs +21 -0
- package/ViewBox/index.mjs.map +1 -0
- package/index.d.ts +56 -0
- package/index.js +1 -0
- package/index.js.map +1 -0
- package/index.mjs +1 -0
- package/index.mjs.map +1 -0
- package/package.json +41 -0
- package/readme.md +0 -0
- package/useCorner/index.d.ts +5 -0
- package/useCorner/index.js +17 -0
- package/useCorner/index.js.map +1 -0
- package/useCorner/index.mjs +17 -0
- package/useCorner/index.mjs.map +1 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React, { ReactElement } from 'react';
|
|
2
|
+
import { TableColumnProps } from '../TableCell/index.js';
|
|
3
|
+
import { IconButtonProps } from '../IconButton/index.js';
|
|
4
|
+
import { InputProps } from '../Input/index.js';
|
|
5
|
+
import { TablePaginationProps } from '../TablePagination/index.js';
|
|
6
|
+
import { TableProps } from '../Table/index.js';
|
|
7
|
+
|
|
8
|
+
type ColumnType = (Omit<TableColumnProps, "children"> & {
|
|
9
|
+
label: string;
|
|
10
|
+
field?: string;
|
|
11
|
+
});
|
|
12
|
+
type DataTableDefaultRow = {
|
|
13
|
+
id?: number;
|
|
14
|
+
[key: string | number]: any;
|
|
15
|
+
};
|
|
16
|
+
type RowActionType = Omit<IconButtonProps, "children"> & {
|
|
17
|
+
label: string;
|
|
18
|
+
icon: ReactElement;
|
|
19
|
+
};
|
|
20
|
+
type TabsProps = {
|
|
21
|
+
label: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
};
|
|
24
|
+
type DatatableFilter = {
|
|
25
|
+
label: string;
|
|
26
|
+
value: string | number;
|
|
27
|
+
};
|
|
28
|
+
type DatatableProps = {
|
|
29
|
+
rows: DataTableDefaultRow[];
|
|
30
|
+
columns: ColumnType[];
|
|
31
|
+
tabs?: TabsProps[];
|
|
32
|
+
defaultActiveTab?: string;
|
|
33
|
+
rowAction?: (props: {
|
|
34
|
+
row: DataTableDefaultRow | null;
|
|
35
|
+
state: State;
|
|
36
|
+
}) => RowActionType[];
|
|
37
|
+
renderRow?: (row: DataTableDefaultRow, state: State) => DataTableDefaultRow;
|
|
38
|
+
disableRow?: (row: DataTableDefaultRow, state: State) => boolean | void;
|
|
39
|
+
totalCount?: number;
|
|
40
|
+
page?: number;
|
|
41
|
+
perpages?: number[];
|
|
42
|
+
getState?: (state: State) => void;
|
|
43
|
+
onSearch?: (text: string, state: State) => void;
|
|
44
|
+
onTabChange?: (tab: string, state: State) => void;
|
|
45
|
+
filters?: {
|
|
46
|
+
[key: string]: DatatableFilter[];
|
|
47
|
+
};
|
|
48
|
+
fixedHeader?: boolean;
|
|
49
|
+
disablePagination?: boolean;
|
|
50
|
+
disableSearch?: boolean;
|
|
51
|
+
disableSelect?: boolean;
|
|
52
|
+
slotProps?: {
|
|
53
|
+
search?: Omit<InputProps, "value" | "onChange">;
|
|
54
|
+
table?: Omit<TableProps, 'children'>;
|
|
55
|
+
pagination?: TablePaginationProps;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
type State = {
|
|
59
|
+
selectedIds: number[];
|
|
60
|
+
selectAll: boolean;
|
|
61
|
+
paginationState: {
|
|
62
|
+
page: number;
|
|
63
|
+
perpage: number;
|
|
64
|
+
};
|
|
65
|
+
activeTab: string;
|
|
66
|
+
search: string;
|
|
67
|
+
};
|
|
68
|
+
declare const DataTable: React.ForwardRefExoticComponent<DatatableProps & React.RefAttributes<HTMLDivElement>>;
|
|
69
|
+
|
|
70
|
+
export { DataTable as default };
|
|
71
|
+
export type { ColumnType, DataTableDefaultRow, DatatableFilter, DatatableProps, RowActionType, State, TabsProps };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var jsxRuntime=require('react/jsx-runtime'),React=require('react'),index=require('../ViewBox/index.js'),core=require('@xanui/core'),SelectedBox=require('./SelectedBox.js'),Table=require('./Table.js'),FilterBox=require('./FilterBox.js'),index$2=require('../TablePagination/index.js'),index$1=require('../Stack/index.js');const DataTable = React.forwardRef((props, ref) => {
|
|
2
|
+
let [_props] = core.useInterface("Datatable", props, {});
|
|
3
|
+
let { rows, tabs, defaultActiveTab, totalCount, page, perpages, getState, fixedHeader, disablePagination, slotProps, } = _props;
|
|
4
|
+
const [state, setState] = React.useState({
|
|
5
|
+
selectedIds: [],
|
|
6
|
+
selectAll: false,
|
|
7
|
+
paginationState: {
|
|
8
|
+
page: page || 1,
|
|
9
|
+
perpage: perpages ? perpages[0] : 30
|
|
10
|
+
},
|
|
11
|
+
activeTab: tabs ? (defaultActiveTab || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
12
|
+
search: ""
|
|
13
|
+
});
|
|
14
|
+
const update = (s) => {
|
|
15
|
+
setState(o => {
|
|
16
|
+
let ns = Object.assign(Object.assign({}, o), s);
|
|
17
|
+
getState && getState(ns);
|
|
18
|
+
return ns;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (jsxRuntime.jsxs(index.default, Object.assign({ baseClass: 'datatable', ref: ref, height: "100%", sx: {
|
|
22
|
+
'& thead': fixedHeader ? {
|
|
23
|
+
position: "sticky",
|
|
24
|
+
top: 0,
|
|
25
|
+
bgcolor: "background.primary",
|
|
26
|
+
zIndex: 1
|
|
27
|
+
} : {},
|
|
28
|
+
}, startContent: (jsxRuntime.jsxs(core.Tag, Object.assign({ baseClass: 'datatable-header', sxr: {
|
|
29
|
+
display: "flex",
|
|
30
|
+
flexDirection: "row",
|
|
31
|
+
justifyContent: "space-between"
|
|
32
|
+
} }, { children: [jsxRuntime.jsx(SelectedBox.default, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(FilterBox.default, Object.assign({}, _props, { update: update, state: state }))] }))) }, { children: [jsxRuntime.jsx(Table.default, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(index$1.default, Object.assign({ p: 1, alignItems: "flex-end" }, { children: !disablePagination && jsxRuntime.jsx(index$2.default, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.pagination, { total: totalCount || rows.length, page: state.paginationState.page, perpages: perpages, onChange: (state) => {
|
|
33
|
+
update({ paginationState: state });
|
|
34
|
+
} })) }))] })));
|
|
35
|
+
});exports.default=DataTable;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\nimport React, { ReactElement, useState } from 'react'\nimport { TableColumnProps } from '../TableCell'\nimport { IconButtonProps } from '../IconButton'\nimport { InputProps } from '../Input'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationProps } from '../TablePagination'\nimport Stack from '../Stack'\nimport { TableProps } from '../Table'\n\n\nexport type ColumnType = (Omit<TableColumnProps, \"children\"> & { label: string, field?: string })\nexport type DataTableDefaultRow = { id?: number, [key: string | number]: any }\nexport type RowActionType = Omit<IconButtonProps, \"children\"> & {\n label: string;\n icon: ReactElement;\n}\nexport type TabsProps = {\n label: string;\n value?: string\n}\nexport type DatatableFilter = {\n label: string;\n value: string | number\n}\n\nexport type DatatableProps = {\n rows: DataTableDefaultRow[];\n columns: ColumnType[];\n tabs?: TabsProps[];\n defaultActiveTab?: string;\n rowAction?: (props: { row: DataTableDefaultRow | null, state: State }) => RowActionType[];\n renderRow?: (row: DataTableDefaultRow, state: State) => DataTableDefaultRow;\n disableRow?: (row: DataTableDefaultRow, state: State) => boolean | void;\n totalCount?: number;\n page?: number;\n perpages?: number[];\n getState?: (state: State) => void;\n onSearch?: (text: string, state: State) => void;\n onTabChange?: (tab: string, state: State) => void;\n filters?: { [key: string]: DatatableFilter[] }\n fixedHeader?: boolean;\n disablePagination?: boolean;\n disableSearch?: boolean;\n disableSelect?: boolean;\n slotProps?: {\n search?: Omit<InputProps, \"value\" | \"onChange\">;\n table?: Omit<TableProps, 'children'>;\n pagination?: TablePaginationProps;\n }\n}\n\nexport type State = {\n selectedIds: number[];\n selectAll: boolean;\n paginationState: {\n page: number,\n perpage: number\n },\n activeTab: string;\n search: string;\n}\n\nexport type DatatablePropsWithState = DatatableProps & {\n state: State,\n update: (state: Partial<State>) => void;\n}\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n defaultActiveTab,\n totalCount,\n page,\n perpages,\n getState,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<State>({\n selectedIds: [],\n selectAll: false,\n paginationState: {\n page: page || 1,\n perpage: perpages ? perpages[0] : 30\n },\n activeTab: tabs ? (defaultActiveTab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: \"\"\n })\n\n const update = (s: Partial<State>) => {\n setState(o => {\n let ns = { ...o, ...s }\n getState && getState(ns)\n return ns\n })\n }\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.paginationState.page}\n perpages={perpages}\n onChange={(state: any) => {\n update({ paginationState: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":["useInterface","useState","_jsxs","ViewBox","Tag","_jsx","SelectedBox","FilterBox","TableArea","Stack","TablePagination"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {jsxs,jsx}from'react/jsx-runtime';import React,{useState}from'react';import ViewBox from'../ViewBox/index.mjs';import {useInterface,Tag}from'@xanui/core';import SelectedBox from'./SelectedBox.mjs';import TableArea from'./Table.mjs';import FilterBox from'./FilterBox.mjs';import TablePagination from'../TablePagination/index.mjs';import Stack from'../Stack/index.mjs';const DataTable = React.forwardRef((props, ref) => {
|
|
2
|
+
let [_props] = useInterface("Datatable", props, {});
|
|
3
|
+
let { rows, tabs, defaultActiveTab, totalCount, page, perpages, getState, fixedHeader, disablePagination, slotProps, } = _props;
|
|
4
|
+
const [state, setState] = useState({
|
|
5
|
+
selectedIds: [],
|
|
6
|
+
selectAll: false,
|
|
7
|
+
paginationState: {
|
|
8
|
+
page: page || 1,
|
|
9
|
+
perpage: perpages ? perpages[0] : 30
|
|
10
|
+
},
|
|
11
|
+
activeTab: tabs ? (defaultActiveTab || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
12
|
+
search: ""
|
|
13
|
+
});
|
|
14
|
+
const update = (s) => {
|
|
15
|
+
setState(o => {
|
|
16
|
+
let ns = Object.assign(Object.assign({}, o), s);
|
|
17
|
+
getState && getState(ns);
|
|
18
|
+
return ns;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (jsxs(ViewBox, Object.assign({ baseClass: 'datatable', ref: ref, height: "100%", sx: {
|
|
22
|
+
'& thead': fixedHeader ? {
|
|
23
|
+
position: "sticky",
|
|
24
|
+
top: 0,
|
|
25
|
+
bgcolor: "background.primary",
|
|
26
|
+
zIndex: 1
|
|
27
|
+
} : {},
|
|
28
|
+
}, startContent: (jsxs(Tag, Object.assign({ baseClass: 'datatable-header', sxr: {
|
|
29
|
+
display: "flex",
|
|
30
|
+
flexDirection: "row",
|
|
31
|
+
justifyContent: "space-between"
|
|
32
|
+
} }, { children: [jsx(SelectedBox, Object.assign({}, _props, { update: update, state: state })), jsx(FilterBox, Object.assign({}, _props, { update: update, state: state }))] }))) }, { children: [jsx(TableArea, Object.assign({}, _props, { update: update, state: state })), jsx(Stack, Object.assign({ p: 1, alignItems: "flex-end" }, { children: !disablePagination && jsx(TablePagination, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.pagination, { total: totalCount || rows.length, page: state.paginationState.page, perpages: perpages, onChange: (state) => {
|
|
33
|
+
update({ paginationState: state });
|
|
34
|
+
} })) }))] })));
|
|
35
|
+
});export{DataTable as default};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\nimport React, { ReactElement, useState } from 'react'\nimport { TableColumnProps } from '../TableCell'\nimport { IconButtonProps } from '../IconButton'\nimport { InputProps } from '../Input'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationProps } from '../TablePagination'\nimport Stack from '../Stack'\nimport { TableProps } from '../Table'\n\n\nexport type ColumnType = (Omit<TableColumnProps, \"children\"> & { label: string, field?: string })\nexport type DataTableDefaultRow = { id?: number, [key: string | number]: any }\nexport type RowActionType = Omit<IconButtonProps, \"children\"> & {\n label: string;\n icon: ReactElement;\n}\nexport type TabsProps = {\n label: string;\n value?: string\n}\nexport type DatatableFilter = {\n label: string;\n value: string | number\n}\n\nexport type DatatableProps = {\n rows: DataTableDefaultRow[];\n columns: ColumnType[];\n tabs?: TabsProps[];\n defaultActiveTab?: string;\n rowAction?: (props: { row: DataTableDefaultRow | null, state: State }) => RowActionType[];\n renderRow?: (row: DataTableDefaultRow, state: State) => DataTableDefaultRow;\n disableRow?: (row: DataTableDefaultRow, state: State) => boolean | void;\n totalCount?: number;\n page?: number;\n perpages?: number[];\n getState?: (state: State) => void;\n onSearch?: (text: string, state: State) => void;\n onTabChange?: (tab: string, state: State) => void;\n filters?: { [key: string]: DatatableFilter[] }\n fixedHeader?: boolean;\n disablePagination?: boolean;\n disableSearch?: boolean;\n disableSelect?: boolean;\n slotProps?: {\n search?: Omit<InputProps, \"value\" | \"onChange\">;\n table?: Omit<TableProps, 'children'>;\n pagination?: TablePaginationProps;\n }\n}\n\nexport type State = {\n selectedIds: number[];\n selectAll: boolean;\n paginationState: {\n page: number,\n perpage: number\n },\n activeTab: string;\n search: string;\n}\n\nexport type DatatablePropsWithState = DatatableProps & {\n state: State,\n update: (state: Partial<State>) => void;\n}\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n defaultActiveTab,\n totalCount,\n page,\n perpages,\n getState,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<State>({\n selectedIds: [],\n selectAll: false,\n paginationState: {\n page: page || 1,\n perpage: perpages ? perpages[0] : 30\n },\n activeTab: tabs ? (defaultActiveTab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: \"\"\n })\n\n const update = (s: Partial<State>) => {\n setState(o => {\n let ns = { ...o, ...s }\n getState && getState(ns)\n return ns\n })\n }\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.paginationState.page}\n perpages={perpages}\n onChange={(state: any) => {\n update({ paginationState: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TagComponentType, TagProps, useBreakpointPropsType, ColorTemplateColors } from '@xanui/core';
|
|
3
|
+
|
|
4
|
+
type DividerProps<T extends TagComponentType = "div"> = Omit<TagProps<T>, "color"> & {
|
|
5
|
+
direction?: useBreakpointPropsType<"verticle" | "horizental">;
|
|
6
|
+
color?: useBreakpointPropsType<ColorTemplateColors>;
|
|
7
|
+
size?: useBreakpointPropsType<number>;
|
|
8
|
+
};
|
|
9
|
+
declare const Divider: React.ForwardRefExoticComponent<Omit<DividerProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
|
|
10
|
+
|
|
11
|
+
export { Divider as default };
|
|
12
|
+
export type { DividerProps };
|
package/Divider/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core');const Divider = React.forwardRef((_a, ref) => {
|
|
2
|
+
var _b, _c, _d;
|
|
3
|
+
var { children, direction, color, size } = _a, rest = tslib.__rest(_a, ["children", "direction", "color", "size"]);
|
|
4
|
+
const _p = {};
|
|
5
|
+
if (direction)
|
|
6
|
+
_p.direction = direction;
|
|
7
|
+
if (color)
|
|
8
|
+
_p.color = color;
|
|
9
|
+
if (size)
|
|
10
|
+
_p.size = size;
|
|
11
|
+
const p = core.useBreakpointProps(_p);
|
|
12
|
+
direction = (_b = p.direction) !== null && _b !== void 0 ? _b : "horizental";
|
|
13
|
+
color = (_c = p.color) !== null && _c !== void 0 ? _c : "default";
|
|
14
|
+
size = (_d = p.size) !== null && _d !== void 0 ? _d : 1;
|
|
15
|
+
let isHori = direction === 'horizental';
|
|
16
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { baseClass: 'divider', sxr: {
|
|
17
|
+
width: isHori ? "100%" : size,
|
|
18
|
+
height: isHori ? size : "100%",
|
|
19
|
+
bgcolor: color === 'default' ? `background.secondary` : `${color}.secondary`,
|
|
20
|
+
}, ref: ref }, { children: children })));
|
|
21
|
+
});exports.default=Divider;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, ColorTemplateColors, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\n\n\nexport type DividerProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"color\"> & {\n direction?: useBreakpointPropsType<\"verticle\" | \"horizental\">;\n color?: useBreakpointPropsType<ColorTemplateColors>;\n size?: useBreakpointPropsType<number>;\n}\n\nconst Divider = React.forwardRef(<T extends TagComponentType = \"div\">({ children, direction, color, size, ...rest }: DividerProps<T>, ref: React.Ref<any>) => {\n const _p: any = {}\n if (direction) _p.direction = direction\n if (color) _p.color = color\n if (size) _p.size = size\n const p: any = useBreakpointProps(_p)\n direction = p.direction ?? \"horizental\"\n color = p.color ?? \"default\"\n size = p.size ?? 1\n\n let isHori = direction === 'horizental'\n\n return (\n <Tag\n {...rest}\n baseClass='divider'\n sxr={{\n width: isHori ? \"100%\" : size,\n height: isHori ? size : \"100%\",\n bgcolor: color === 'default' ? `background.secondary` : `${color}.secondary`,\n }}\n ref={ref}\n >{children}</Tag>\n )\n})\n\nexport default Divider\n\n"],"names":["__rest","useBreakpointProps","_jsx","Tag"],"mappings":"4LAWA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA8D,EAAE,GAAmB,KAAI;;AAAvF,IAAA,IAAA,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAA,GAAA,EAA4B,EAAvB,IAAI,GAAAA,YAAA,CAAA,EAAA,EAA3C,CAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAA6C,CAAF;IAC7G,MAAM,EAAE,GAAQ,EAAE;AAClB,IAAA,IAAI,SAAS;AAAE,QAAA,EAAE,CAAC,SAAS,GAAG,SAAS;AACvC,IAAA,IAAI,KAAK;AAAE,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,IAAA,IAAI,IAAI;AAAE,QAAA,EAAE,CAAC,IAAI,GAAG,IAAI;AACxB,IAAA,MAAM,CAAC,GAAQC,uBAAkB,CAAC,EAAE,CAAC;AACrC,IAAA,SAAS,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,YAAY;AACvC,IAAA,KAAK,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;AAC5B,IAAA,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;AAElB,IAAA,IAAI,MAAM,GAAG,SAAS,KAAK,YAAY;IAEvC,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,IAAI,EAAA,EACR,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE;YACD,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;YAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;AAC9B,YAAA,OAAO,EAAE,KAAK,KAAK,SAAS,GAAG,CAAA,oBAAA,CAAsB,GAAG,CAAA,EAAG,KAAK,CAAA,UAAA,CAAY;AAC/E,SAAA,EACD,GAAG,EAAE,GAAG,gBACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React from'react';import {useBreakpointProps,Tag}from'@xanui/core';const Divider = React.forwardRef((_a, ref) => {
|
|
2
|
+
var _b, _c, _d;
|
|
3
|
+
var { children, direction, color, size } = _a, rest = __rest(_a, ["children", "direction", "color", "size"]);
|
|
4
|
+
const _p = {};
|
|
5
|
+
if (direction)
|
|
6
|
+
_p.direction = direction;
|
|
7
|
+
if (color)
|
|
8
|
+
_p.color = color;
|
|
9
|
+
if (size)
|
|
10
|
+
_p.size = size;
|
|
11
|
+
const p = useBreakpointProps(_p);
|
|
12
|
+
direction = (_b = p.direction) !== null && _b !== void 0 ? _b : "horizental";
|
|
13
|
+
color = (_c = p.color) !== null && _c !== void 0 ? _c : "default";
|
|
14
|
+
size = (_d = p.size) !== null && _d !== void 0 ? _d : 1;
|
|
15
|
+
let isHori = direction === 'horizental';
|
|
16
|
+
return (jsx(Tag, Object.assign({}, rest, { baseClass: 'divider', sxr: {
|
|
17
|
+
width: isHori ? "100%" : size,
|
|
18
|
+
height: isHori ? size : "100%",
|
|
19
|
+
bgcolor: color === 'default' ? `background.secondary` : `${color}.secondary`,
|
|
20
|
+
}, ref: ref }, { children: children })));
|
|
21
|
+
});export{Divider as default};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, ColorTemplateColors, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\n\n\nexport type DividerProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"color\"> & {\n direction?: useBreakpointPropsType<\"verticle\" | \"horizental\">;\n color?: useBreakpointPropsType<ColorTemplateColors>;\n size?: useBreakpointPropsType<number>;\n}\n\nconst Divider = React.forwardRef(<T extends TagComponentType = \"div\">({ children, direction, color, size, ...rest }: DividerProps<T>, ref: React.Ref<any>) => {\n const _p: any = {}\n if (direction) _p.direction = direction\n if (color) _p.color = color\n if (size) _p.size = size\n const p: any = useBreakpointProps(_p)\n direction = p.direction ?? \"horizental\"\n color = p.color ?? \"default\"\n size = p.size ?? 1\n\n let isHori = direction === 'horizental'\n\n return (\n <Tag\n {...rest}\n baseClass='divider'\n sxr={{\n width: isHori ? \"100%\" : size,\n height: isHori ? size : \"100%\",\n bgcolor: color === 'default' ? `background.secondary` : `${color}.secondary`,\n }}\n ref={ref}\n >{children}</Tag>\n )\n})\n\nexport default Divider\n\n"],"names":["_jsx"],"mappings":"yIAWA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA8D,EAAE,GAAmB,KAAI;;AAAvF,IAAA,IAAA,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAA,GAAA,EAA4B,EAAvB,IAAI,GAAA,MAAA,CAAA,EAAA,EAA3C,CAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAA6C,CAAF;IAC7G,MAAM,EAAE,GAAQ,EAAE;AAClB,IAAA,IAAI,SAAS;AAAE,QAAA,EAAE,CAAC,SAAS,GAAG,SAAS;AACvC,IAAA,IAAI,KAAK;AAAE,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,IAAA,IAAI,IAAI;AAAE,QAAA,EAAE,CAAC,IAAI,GAAG,IAAI;AACxB,IAAA,MAAM,CAAC,GAAQ,kBAAkB,CAAC,EAAE,CAAC;AACrC,IAAA,SAAS,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,YAAY;AACvC,IAAA,KAAK,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;AAC5B,IAAA,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;AAElB,IAAA,IAAI,MAAM,GAAG,SAAS,KAAK,YAAY;IAEvC,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,IAAI,EAAA,EACR,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE;YACD,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;YAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;AAC9B,YAAA,OAAO,EAAE,KAAK,KAAK,SAAS,GAAG,CAAA,oBAAA,CAAsB,GAAG,CAAA,EAAG,KAAK,CAAA,UAAA,CAAY;AAC/E,SAAA,EACD,GAAG,EAAE,GAAG,gBACV,QAAQ,EAAA,CAAA,CAAO;AAEzB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode, ReactElement } from 'react';
|
|
3
|
+
import { TagProps, useBreakpointPropsType } from '@xanui/core';
|
|
4
|
+
import { LayerProps } from '../Layer/index.js';
|
|
5
|
+
|
|
6
|
+
type DrawerChildrenType = ReactNode | ReactElement | string;
|
|
7
|
+
type DrawerProps = Omit<TagProps, "children" | "size"> & {
|
|
8
|
+
children?: DrawerChildrenType;
|
|
9
|
+
placement?: useBreakpointPropsType<"left" | "right" | "bottom" | "top">;
|
|
10
|
+
open?: boolean;
|
|
11
|
+
size?: useBreakpointPropsType<number | "small" | "medium" | "large">;
|
|
12
|
+
onClickOutside?: () => void;
|
|
13
|
+
slotProps?: {
|
|
14
|
+
root?: TagProps<"div">;
|
|
15
|
+
layer?: Omit<LayerProps, 'id' | 'children' | 'open' | 'transition'>;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
declare const Drawer: {
|
|
19
|
+
({ children, open, ...rest }: DrawerProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
open(content: DrawerChildrenType, props?: Omit<DrawerProps, "children" | "open">): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { Drawer as default };
|
|
25
|
+
export type { DrawerChildrenType, DrawerProps };
|
package/Drawer/index.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),core=require('@xanui/core'),index=require('../Layer/index.js'),index$1=require('../ClickOutside/index.js');const MainView = (_a) => {
|
|
2
|
+
var _b;
|
|
3
|
+
var { children, placement, open, size, slotProps, onClickOutside } = _a, rest = tslib.__rest(_a, ["children", "placement", "open", "size", "slotProps", "onClickOutside"]);
|
|
4
|
+
const _p = {};
|
|
5
|
+
if (placement)
|
|
6
|
+
_p.placement = placement;
|
|
7
|
+
if (size)
|
|
8
|
+
_p.size = size;
|
|
9
|
+
const p = core.useBreakpointProps(_p);
|
|
10
|
+
placement = (_b = p.placement) !== null && _b !== void 0 ? _b : 'left';
|
|
11
|
+
size = p.size || "medium";
|
|
12
|
+
let isSide = placement === 'left' || placement === 'right';
|
|
13
|
+
let sizes = {
|
|
14
|
+
small: 200,
|
|
15
|
+
medium: 300,
|
|
16
|
+
large: 400
|
|
17
|
+
};
|
|
18
|
+
let _size = sizes[size] || size;
|
|
19
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root, { baseClass: 'drawer', sxr: {
|
|
20
|
+
width: "100%",
|
|
21
|
+
height: "100%",
|
|
22
|
+
display: "flex",
|
|
23
|
+
direction: isSide ? "row" : "column",
|
|
24
|
+
justifyContent: placement === 'left' || placement === 'top' ? "flex-start" : "flex-end"
|
|
25
|
+
} }, { children: jsxRuntime.jsx(index$1.default, Object.assign({ onClickOutside: onClickOutside || (() => { }) }, { children: jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { sxr: {
|
|
26
|
+
width: isSide ? _size : "100%",
|
|
27
|
+
height: isSide ? "100%" : _size,
|
|
28
|
+
bgcolor: "background.primary",
|
|
29
|
+
shadow: 10
|
|
30
|
+
}, baseClass: 'drawer-content' }, { children: children })) })) })));
|
|
31
|
+
};
|
|
32
|
+
let drawerId = "_" + Math.random().toString(32).substring(2);
|
|
33
|
+
const getVariant = (placement) => {
|
|
34
|
+
switch (placement) {
|
|
35
|
+
case "right":
|
|
36
|
+
return "fadeLeft";
|
|
37
|
+
case "top":
|
|
38
|
+
return "fadeDown";
|
|
39
|
+
case "bottom":
|
|
40
|
+
return "fadeUp";
|
|
41
|
+
default:
|
|
42
|
+
return "fadeRight";
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const Drawer = (_a) => {
|
|
46
|
+
var _b;
|
|
47
|
+
var { children, open } = _a, rest = tslib.__rest(_a, ["children", "open"]);
|
|
48
|
+
return (jsxRuntime.jsx(index.default, Object.assign({}, (_b = rest === null || rest === void 0 ? void 0 : rest.slotProps) === null || _b === void 0 ? void 0 : _b.layer, { open: open !== null && open !== void 0 ? open : true, transition: getVariant(rest.placement) }, { children: jsxRuntime.jsx(MainView, Object.assign({}, rest, { open: true }, { children: children })) })));
|
|
49
|
+
};
|
|
50
|
+
Drawer.open = (content, props) => {
|
|
51
|
+
let { placement, slotProps } = props || {};
|
|
52
|
+
placement !== null && placement !== void 0 ? placement : (placement = 'left');
|
|
53
|
+
index.default.open(drawerId, jsxRuntime.jsx(MainView, Object.assign({ onClickOutside: () => index.default.close(drawerId) }, props, { open: true }, { children: content })), Object.assign(Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.layer), { transition: getVariant(placement) }));
|
|
54
|
+
};
|
|
55
|
+
Drawer.close = () => {
|
|
56
|
+
index.default.close(drawerId);
|
|
57
|
+
};exports.default=Drawer;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\nimport { ReactElement, ReactNode } from 'react';\nimport { Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside from '../ClickOutside';\n\n\nexport type DrawerChildrenType = ReactNode | ReactElement | string\n\nexport type DrawerProps = Omit<TagProps, \"children\" | \"size\"> & {\n children?: DrawerChildrenType;\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n open?: boolean;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n root?: TagProps<\"div\">;\n layer?: Omit<LayerProps, 'id' | 'children' | 'open' | 'transition'>;\n }\n}\n\nconst MainView = ({ children, placement, open, size, slotProps, onClickOutside, ...rest }: DrawerProps) => {\n const _p: any = {}\n if (placement) _p.placement = placement\n if (size) _p.size = size\n const p: any = useBreakpointProps(_p)\n\n placement = p.placement ?? 'left'\n size = p.size || \"medium\"\n\n let isSide = placement === 'left' || placement === 'right'\n let sizes: any = {\n small: 200,\n medium: 300,\n large: 400\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside onClickOutside={onClickOutside || (() => { })}>\n <Tag\n {...rest}\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"background.primary\",\n shadow: 10\n }}\n baseClass='drawer-content'\n >\n {children}\n </Tag>\n </ClickOutside>\n </Tag>\n )\n}\n\nlet drawerId = \"_\" + Math.random().toString(32).substring(2)\n\nconst getVariant = (placement?: any) => {\n switch (placement) {\n case \"right\":\n return \"fadeLeft\"\n case \"top\":\n return \"fadeDown\"\n case \"bottom\":\n return \"fadeUp\"\n default:\n return \"fadeRight\"\n }\n}\n\nconst Drawer = ({ children, open, ...rest }: DrawerProps) => {\n return (\n <Layer\n {...rest?.slotProps?.layer}\n open={open ?? true}\n transition={getVariant(rest.placement)}\n >\n <MainView {...rest} open={true}>{children}</MainView>\n </Layer>\n )\n}\n\n\nDrawer.open = (content: DrawerChildrenType, props?: Omit<DrawerProps, \"children\" | \"open\">) => {\n let { placement, slotProps } = props || {}\n placement ??= 'left'\n Layer.open(drawerId, <MainView\n onClickOutside={() => Layer.close(drawerId)}\n {...props}\n open={true}\n >{content}</MainView>, {\n ...slotProps?.layer,\n transition: getVariant(placement)\n })\n}\n\nDrawer.close = () => {\n Layer.close(drawerId)\n}\n\nexport default Drawer"],"names":["__rest","useBreakpointProps","_jsx","Tag","ClickOutside","Layer"],"mappings":"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"}
|
package/Drawer/index.mjs
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import {useBreakpointProps,Tag}from'@xanui/core';import Layer from'../Layer/index.mjs';import ClickOutside from'../ClickOutside/index.mjs';const MainView = (_a) => {
|
|
2
|
+
var _b;
|
|
3
|
+
var { children, placement, open, size, slotProps, onClickOutside } = _a, rest = __rest(_a, ["children", "placement", "open", "size", "slotProps", "onClickOutside"]);
|
|
4
|
+
const _p = {};
|
|
5
|
+
if (placement)
|
|
6
|
+
_p.placement = placement;
|
|
7
|
+
if (size)
|
|
8
|
+
_p.size = size;
|
|
9
|
+
const p = useBreakpointProps(_p);
|
|
10
|
+
placement = (_b = p.placement) !== null && _b !== void 0 ? _b : 'left';
|
|
11
|
+
size = p.size || "medium";
|
|
12
|
+
let isSide = placement === 'left' || placement === 'right';
|
|
13
|
+
let sizes = {
|
|
14
|
+
small: 200,
|
|
15
|
+
medium: 300,
|
|
16
|
+
large: 400
|
|
17
|
+
};
|
|
18
|
+
let _size = sizes[size] || size;
|
|
19
|
+
return (jsx(Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root, { baseClass: 'drawer', sxr: {
|
|
20
|
+
width: "100%",
|
|
21
|
+
height: "100%",
|
|
22
|
+
display: "flex",
|
|
23
|
+
direction: isSide ? "row" : "column",
|
|
24
|
+
justifyContent: placement === 'left' || placement === 'top' ? "flex-start" : "flex-end"
|
|
25
|
+
} }, { children: jsx(ClickOutside, Object.assign({ onClickOutside: onClickOutside || (() => { }) }, { children: jsx(Tag, Object.assign({}, rest, { sxr: {
|
|
26
|
+
width: isSide ? _size : "100%",
|
|
27
|
+
height: isSide ? "100%" : _size,
|
|
28
|
+
bgcolor: "background.primary",
|
|
29
|
+
shadow: 10
|
|
30
|
+
}, baseClass: 'drawer-content' }, { children: children })) })) })));
|
|
31
|
+
};
|
|
32
|
+
let drawerId = "_" + Math.random().toString(32).substring(2);
|
|
33
|
+
const getVariant = (placement) => {
|
|
34
|
+
switch (placement) {
|
|
35
|
+
case "right":
|
|
36
|
+
return "fadeLeft";
|
|
37
|
+
case "top":
|
|
38
|
+
return "fadeDown";
|
|
39
|
+
case "bottom":
|
|
40
|
+
return "fadeUp";
|
|
41
|
+
default:
|
|
42
|
+
return "fadeRight";
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const Drawer = (_a) => {
|
|
46
|
+
var _b;
|
|
47
|
+
var { children, open } = _a, rest = __rest(_a, ["children", "open"]);
|
|
48
|
+
return (jsx(Layer, Object.assign({}, (_b = rest === null || rest === void 0 ? void 0 : rest.slotProps) === null || _b === void 0 ? void 0 : _b.layer, { open: open !== null && open !== void 0 ? open : true, transition: getVariant(rest.placement) }, { children: jsx(MainView, Object.assign({}, rest, { open: true }, { children: children })) })));
|
|
49
|
+
};
|
|
50
|
+
Drawer.open = (content, props) => {
|
|
51
|
+
let { placement, slotProps } = props || {};
|
|
52
|
+
placement !== null && placement !== void 0 ? placement : (placement = 'left');
|
|
53
|
+
Layer.open(drawerId, jsx(MainView, Object.assign({ onClickOutside: () => Layer.close(drawerId) }, props, { open: true }, { children: content })), Object.assign(Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.layer), { transition: getVariant(placement) }));
|
|
54
|
+
};
|
|
55
|
+
Drawer.close = () => {
|
|
56
|
+
Layer.close(drawerId);
|
|
57
|
+
};export{Drawer as default};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\nimport { ReactElement, ReactNode } from 'react';\nimport { Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside from '../ClickOutside';\n\n\nexport type DrawerChildrenType = ReactNode | ReactElement | string\n\nexport type DrawerProps = Omit<TagProps, \"children\" | \"size\"> & {\n children?: DrawerChildrenType;\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n open?: boolean;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n root?: TagProps<\"div\">;\n layer?: Omit<LayerProps, 'id' | 'children' | 'open' | 'transition'>;\n }\n}\n\nconst MainView = ({ children, placement, open, size, slotProps, onClickOutside, ...rest }: DrawerProps) => {\n const _p: any = {}\n if (placement) _p.placement = placement\n if (size) _p.size = size\n const p: any = useBreakpointProps(_p)\n\n placement = p.placement ?? 'left'\n size = p.size || \"medium\"\n\n let isSide = placement === 'left' || placement === 'right'\n let sizes: any = {\n small: 200,\n medium: 300,\n large: 400\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside onClickOutside={onClickOutside || (() => { })}>\n <Tag\n {...rest}\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"background.primary\",\n shadow: 10\n }}\n baseClass='drawer-content'\n >\n {children}\n </Tag>\n </ClickOutside>\n </Tag>\n )\n}\n\nlet drawerId = \"_\" + Math.random().toString(32).substring(2)\n\nconst getVariant = (placement?: any) => {\n switch (placement) {\n case \"right\":\n return \"fadeLeft\"\n case \"top\":\n return \"fadeDown\"\n case \"bottom\":\n return \"fadeUp\"\n default:\n return \"fadeRight\"\n }\n}\n\nconst Drawer = ({ children, open, ...rest }: DrawerProps) => {\n return (\n <Layer\n {...rest?.slotProps?.layer}\n open={open ?? true}\n transition={getVariant(rest.placement)}\n >\n <MainView {...rest} open={true}>{children}</MainView>\n </Layer>\n )\n}\n\n\nDrawer.open = (content: DrawerChildrenType, props?: Omit<DrawerProps, \"children\" | \"open\">) => {\n let { placement, slotProps } = props || {}\n placement ??= 'left'\n Layer.open(drawerId, <MainView\n onClickOutside={() => Layer.close(drawerId)}\n {...props}\n open={true}\n >{content}</MainView>, {\n ...slotProps?.layer,\n transition: getVariant(placement)\n })\n}\n\nDrawer.close = () => {\n Layer.close(drawerId)\n}\n\nexport default Drawer"],"names":["_jsx"],"mappings":"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"}
|
package/Form/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TagComponentType, TagProps } from '@xanui/core';
|
|
3
|
+
|
|
4
|
+
type FormProps<T extends TagComponentType = "form"> = TagProps<T> & {};
|
|
5
|
+
declare const Form: React.ForwardRefExoticComponent<Omit<FormProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
|
|
6
|
+
|
|
7
|
+
export { Form as default };
|
|
8
|
+
export type { FormProps };
|
package/Form/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core');const Form = React.forwardRef((_a, ref) => {
|
|
2
|
+
var { children } = _a, rest = tslib.__rest(_a, ["children"]);
|
|
3
|
+
let formRef = ref || React.useRef(null);
|
|
4
|
+
const cloneAllChildren = (childs) => {
|
|
5
|
+
return React.Children.map(childs, (child) => {
|
|
6
|
+
let c = child;
|
|
7
|
+
if (React.isValidElement(child) && c.props.name) {
|
|
8
|
+
const form = formRef.current;
|
|
9
|
+
const formData = new FormData(form);
|
|
10
|
+
return React.cloneElement(child, {
|
|
11
|
+
onChange: () => {
|
|
12
|
+
console.log(formData.get(c.props.name));
|
|
13
|
+
},
|
|
14
|
+
value: formData.get(c.props.name),
|
|
15
|
+
children: cloneAllChildren(c.props.children),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return child;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({ component: "form" }, rest, { onSubmit: (e) => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
const form = formRef.current;
|
|
24
|
+
const formData = new FormData(form);
|
|
25
|
+
formData.forEach((value, key) => {
|
|
26
|
+
console.log(key + ": " + value);
|
|
27
|
+
});
|
|
28
|
+
}, sxr: {
|
|
29
|
+
bgcolor: "default",
|
|
30
|
+
p: 2,
|
|
31
|
+
maxWidth: 400,
|
|
32
|
+
radius: 1,
|
|
33
|
+
}, baseClass: 'form', ref: formRef }, { children: cloneAllChildren(children) })));
|
|
34
|
+
});exports.default=Form;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Form/index.tsx"],"sourcesContent":["\nimport React, { useRef } from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type FormProps<T extends TagComponentType = \"form\"> = TagProps<T> & {\n\n}\n\n\nconst Form = React.forwardRef(<T extends TagComponentType = \"form\">({ children, ...rest }: FormProps<T>, ref: React.Ref<any>) => {\n let formRef: any = ref || useRef(null)\n\n const cloneAllChildren: any = (childs: any) => {\n return React.Children.map(childs, (child: any) => {\n let c: any = child;\n if (React.isValidElement(child) && c.props.name) {\n const form = formRef.current\n const formData = new FormData(form);\n return React.cloneElement(child, {\n onChange: () => {\n console.log(formData.get(c.props.name));\n },\n value: formData.get(c.props.name),\n children: cloneAllChildren(c.props.children),\n } as any);\n }\n return child;\n });\n };\n\n return (\n <Tag\n component=\"form\"\n {...rest}\n onSubmit={(e) => {\n e.preventDefault()\n const form = formRef.current\n\n const formData = new FormData(form);\n\n formData.forEach((value, key) => {\n console.log(key + \": \" + value);\n });\n }}\n sxr={{\n bgcolor: \"default\",\n p: 2,\n maxWidth: 400,\n radius: 1,\n }}\n baseClass='form'\n ref={formRef}\n >\n {cloneAllChildren(children)}\n </Tag>\n )\n})\n\nexport default Form\n\n"],"names":["__rest","useRef","_jsx","Tag"],"mappings":"4LASA,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAsC,EAAmC,EAAE,GAAmB,KAAI;AAA5D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;IACnF,IAAI,OAAO,GAAQ,GAAG,IAAIC,YAAM,CAAC,IAAI,CAAC;AAEtC,IAAA,MAAM,gBAAgB,GAAQ,CAAC,MAAW,KAAI;QAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAU,KAAI;YAC7C,IAAI,CAAC,GAAQ,KAAK;AAClB,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;AAC5B,gBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;AACnC,gBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC7B,QAAQ,EAAE,MAAK;AACX,wBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC;oBACD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACjC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AACxC,iBAAA,CAAC;AACZ,YAAA;AACD,YAAA,OAAO,KAAK;AAChB,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;AAED,IAAA,QACIC,cAAA,CAACC,QAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,SAAS,EAAC,MAAM,EAAA,EACZ,IAAI,IACR,QAAQ,EAAE,CAAC,CAAC,KAAI;YACZ,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;AAE5B,YAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;YAEnC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;gBAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;AACnC,YAAA,CAAC,CAAC;QACN,CAAC,EACD,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,MAAM,EAAE,CAAC;AACZ,SAAA,EACD,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,OAAO,EAAA,EAAA,EAAA,QAAA,EAEX,gBAAgB,CAAC,QAAQ,CAAC,EAAA,CAAA,CACzB;AAEd,CAAC"}
|
package/Form/index.mjs
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React,{useRef}from'react';import {Tag}from'@xanui/core';const Form = React.forwardRef((_a, ref) => {
|
|
2
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
3
|
+
let formRef = ref || useRef(null);
|
|
4
|
+
const cloneAllChildren = (childs) => {
|
|
5
|
+
return React.Children.map(childs, (child) => {
|
|
6
|
+
let c = child;
|
|
7
|
+
if (React.isValidElement(child) && c.props.name) {
|
|
8
|
+
const form = formRef.current;
|
|
9
|
+
const formData = new FormData(form);
|
|
10
|
+
return React.cloneElement(child, {
|
|
11
|
+
onChange: () => {
|
|
12
|
+
console.log(formData.get(c.props.name));
|
|
13
|
+
},
|
|
14
|
+
value: formData.get(c.props.name),
|
|
15
|
+
children: cloneAllChildren(c.props.children),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return child;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (jsx(Tag, Object.assign({ component: "form" }, rest, { onSubmit: (e) => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
const form = formRef.current;
|
|
24
|
+
const formData = new FormData(form);
|
|
25
|
+
formData.forEach((value, key) => {
|
|
26
|
+
console.log(key + ": " + value);
|
|
27
|
+
});
|
|
28
|
+
}, sxr: {
|
|
29
|
+
bgcolor: "default",
|
|
30
|
+
p: 2,
|
|
31
|
+
maxWidth: 400,
|
|
32
|
+
radius: 1,
|
|
33
|
+
}, baseClass: 'form', ref: formRef }, { children: cloneAllChildren(children) })));
|
|
34
|
+
});export{Form as default};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Form/index.tsx"],"sourcesContent":["\nimport React, { useRef } from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type FormProps<T extends TagComponentType = \"form\"> = TagProps<T> & {\n\n}\n\n\nconst Form = React.forwardRef(<T extends TagComponentType = \"form\">({ children, ...rest }: FormProps<T>, ref: React.Ref<any>) => {\n let formRef: any = ref || useRef(null)\n\n const cloneAllChildren: any = (childs: any) => {\n return React.Children.map(childs, (child: any) => {\n let c: any = child;\n if (React.isValidElement(child) && c.props.name) {\n const form = formRef.current\n const formData = new FormData(form);\n return React.cloneElement(child, {\n onChange: () => {\n console.log(formData.get(c.props.name));\n },\n value: formData.get(c.props.name),\n children: cloneAllChildren(c.props.children),\n } as any);\n }\n return child;\n });\n };\n\n return (\n <Tag\n component=\"form\"\n {...rest}\n onSubmit={(e) => {\n e.preventDefault()\n const form = formRef.current\n\n const formData = new FormData(form);\n\n formData.forEach((value, key) => {\n console.log(key + \": \" + value);\n });\n }}\n sxr={{\n bgcolor: \"default\",\n p: 2,\n maxWidth: 400,\n radius: 1,\n }}\n baseClass='form'\n ref={formRef}\n >\n {cloneAllChildren(children)}\n </Tag>\n )\n})\n\nexport default Form\n\n"],"names":["_jsx"],"mappings":"8HASA,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAsC,EAAmC,EAAE,GAAmB,KAAI;AAA5D,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAyB,EAApB,IAAI,GAAA,MAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;IACnF,IAAI,OAAO,GAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;AAEtC,IAAA,MAAM,gBAAgB,GAAQ,CAAC,MAAW,KAAI;QAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAU,KAAI;YAC7C,IAAI,CAAC,GAAQ,KAAK;AAClB,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;AAC5B,gBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;AACnC,gBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC7B,QAAQ,EAAE,MAAK;AACX,wBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC;oBACD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACjC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AACxC,iBAAA,CAAC;AACZ,YAAA;AACD,YAAA,OAAO,KAAK;AAChB,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;AAED,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,EACA,SAAS,EAAC,MAAM,EAAA,EACZ,IAAI,IACR,QAAQ,EAAE,CAAC,CAAC,KAAI;YACZ,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;AAE5B,YAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;YAEnC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;gBAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;AACnC,YAAA,CAAC,CAAC;QACN,CAAC,EACD,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,MAAM,EAAE,CAAC;AACZ,SAAA,EACD,SAAS,EAAC,MAAM,EAChB,GAAG,EAAE,OAAO,EAAA,EAAA,EAAA,QAAA,EAEX,gBAAgB,CAAC,QAAQ,CAAC,EAAA,CAAA,CACzB;AAEd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TagComponentType, TagProps } from '@xanui/core';
|
|
3
|
+
|
|
4
|
+
type GridContainerProps<T extends TagComponentType = "div"> = TagProps<T>;
|
|
5
|
+
declare const GridContainer: React.ForwardRefExoticComponent<Omit<GridContainerProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
|
|
6
|
+
|
|
7
|
+
export { GridContainer as default };
|
|
8
|
+
export type { GridContainerProps };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core');const GridContainer = React.forwardRef((_a, ref) => {
|
|
2
|
+
var { children } = _a, rest = tslib.__rest(_a, ["children"]);
|
|
3
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { sxr: {
|
|
4
|
+
display: "flex",
|
|
5
|
+
flexDirection: 'row',
|
|
6
|
+
flexWrap: 'wrap',
|
|
7
|
+
width: '100%',
|
|
8
|
+
}, baseClass: 'grid-container', ref: ref }, { children: children })));
|
|
9
|
+
});exports.default=GridContainer;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/GridContainer/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type GridContainerProps<T extends TagComponentType = \"div\"> = TagProps<T>\nconst GridContainer = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: GridContainerProps<T>, ref?: React.Ref<any>) => {\n return (\n <Tag\n {...rest}\n sxr={{\n display: \"flex\",\n flexDirection: 'row',\n flexWrap: 'wrap',\n width: '100%',\n }}\n baseClass='grid-container'\n ref={ref}\n >\n {children}\n </Tag>\n )\n})\n\nexport default GridContainer"],"names":["__rest","_jsx","Tag"],"mappings":"4LAKA,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA4C,EAAE,GAAoB,KAAI;AAAtE,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAkC,EAA7B,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AAC3F,IAAA,QACIC,cAAA,CAACC,QAAG,oBACI,IAAI,EAAA,EACR,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,MAAM;SAChB,EACD,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,GAAG,EAAA,EAAA,EAAA,QAAA,EAEP,QAAQ,EAAA,CAAA,CACP;AAEd,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {__rest}from'tslib';import {jsx}from'react/jsx-runtime';import React from'react';import {Tag}from'@xanui/core';const GridContainer = React.forwardRef((_a, ref) => {
|
|
2
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
3
|
+
return (jsx(Tag, Object.assign({}, rest, { sxr: {
|
|
4
|
+
display: "flex",
|
|
5
|
+
flexDirection: 'row',
|
|
6
|
+
flexWrap: 'wrap',
|
|
7
|
+
width: '100%',
|
|
8
|
+
}, baseClass: 'grid-container', ref: ref }, { children: children })));
|
|
9
|
+
});export{GridContainer as default};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/GridContainer/index.tsx"],"sourcesContent":["\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType } from '@xanui/core';\n\nexport type GridContainerProps<T extends TagComponentType = \"div\"> = TagProps<T>\nconst GridContainer = React.forwardRef(<T extends TagComponentType = \"div\">({ children, ...rest }: GridContainerProps<T>, ref?: React.Ref<any>) => {\n return (\n <Tag\n {...rest}\n sxr={{\n display: \"flex\",\n flexDirection: 'row',\n flexWrap: 'wrap',\n width: '100%',\n }}\n baseClass='grid-container'\n ref={ref}\n >\n {children}\n </Tag>\n )\n})\n\nexport default GridContainer"],"names":["_jsx"],"mappings":"sHAKA,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,CAAqC,EAA4C,EAAE,GAAoB,KAAI;AAAtE,IAAA,IAAA,EAAE,QAAQ,EAAA,GAAA,EAAkC,EAA7B,IAAI,GAAA,MAAA,CAAA,EAAA,EAAnB,YAAqB,CAAF;AAC3F,IAAA,QACIA,GAAA,CAAC,GAAG,oBACI,IAAI,EAAA,EACR,GAAG,EAAE;AACD,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,MAAM;SAChB,EACD,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,GAAG,EAAA,EAAA,EAAA,QAAA,EAEP,QAAQ,EAAA,CAAA,CACP;AAEd,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TagComponentType, TagProps } from '@xanui/core';
|
|
3
|
+
|
|
4
|
+
type GridItemProps<T extends TagComponentType = "div"> = TagProps<T> & {
|
|
5
|
+
xs?: number;
|
|
6
|
+
sm?: number;
|
|
7
|
+
md?: number;
|
|
8
|
+
lg?: number;
|
|
9
|
+
xl?: number;
|
|
10
|
+
};
|
|
11
|
+
declare const GridItem: React.ForwardRefExoticComponent<Omit<GridItemProps<TagComponentType>, "ref"> & React.RefAttributes<any>>;
|
|
12
|
+
|
|
13
|
+
export { GridItem as default };
|
|
14
|
+
export type { GridItemProps };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),jsxRuntime=require('react/jsx-runtime'),React=require('react'),core=require('@xanui/core');const GridItem = React.forwardRef((_a, ref) => {
|
|
2
|
+
var { children, xs, sm, md, lg, xl } = _a, rest = tslib.__rest(_a, ["children", "xs", "sm", "md", "lg", "xl"]);
|
|
3
|
+
let w = {};
|
|
4
|
+
xs && (w.xs = (100 / 12 * xs) + "%");
|
|
5
|
+
sm && (w.sm = (100 / 12 * sm) + "%");
|
|
6
|
+
md && (w.md = (100 / 12 * md) + "%");
|
|
7
|
+
lg && (w.lg = (100 / 12 * lg) + "%");
|
|
8
|
+
xl && (w.xl = (100 / 12 * xl) + "%");
|
|
9
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({ ref: ref }, rest, { maxWidth: w, flexBasis: w, flexGrow: 0, baseClass: "grid-item" }, { children: children })));
|
|
10
|
+
});exports.default=GridItem;//# sourceMappingURL=index.js.map
|