@xanui/ui 1.2.8 → 1.2.11
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.cjs +5 -5
- package/Accordion/index.cjs.map +1 -1
- package/Accordion/index.d.ts +1 -0
- package/Accordion/index.js +5 -5
- package/Accordion/index.js.map +1 -1
- package/Alert/index.cjs +8 -8
- package/Alert/index.cjs.map +1 -1
- package/Alert/index.js +8 -8
- package/Alert/index.js.map +1 -1
- package/Autocomplete/index.cjs +2 -2
- package/Autocomplete/index.cjs.map +1 -1
- package/Autocomplete/index.d.ts +1 -1
- package/Autocomplete/index.js +2 -2
- package/Autocomplete/index.js.map +1 -1
- package/Avatar/index.cjs +2 -2
- package/Avatar/index.cjs.map +1 -1
- package/Avatar/index.js +2 -2
- package/Avatar/index.js.map +1 -1
- package/AvatarBox/index.cjs +1 -1
- package/AvatarBox/index.cjs.map +1 -1
- package/AvatarBox/index.js +1 -1
- package/AvatarBox/index.js.map +1 -1
- package/AvatarPicker/index.cjs +3 -3
- package/AvatarPicker/index.cjs.map +1 -1
- package/AvatarPicker/index.d.ts +1 -1
- package/AvatarPicker/index.js +3 -3
- package/AvatarPicker/index.js.map +1 -1
- package/Badge/index.cjs +1 -1
- package/Badge/index.cjs.map +1 -1
- package/Badge/index.js +1 -1
- package/Badge/index.js.map +1 -1
- package/Button/index.cjs +1 -1
- package/Button/index.cjs.map +1 -1
- package/Button/index.js +1 -1
- package/Button/index.js.map +1 -1
- package/ButtonGroup/index.cjs +1 -1
- package/ButtonGroup/index.cjs.map +1 -1
- package/ButtonGroup/index.js +1 -1
- package/ButtonGroup/index.js.map +1 -1
- package/Calendar/index.cjs +9 -9
- package/Calendar/index.cjs.map +1 -1
- package/Calendar/index.js +9 -9
- package/Calendar/index.js.map +1 -1
- package/CalendarInput/index.cjs +1 -1
- package/CalendarInput/index.cjs.map +1 -1
- package/CalendarInput/index.js +1 -1
- package/CalendarInput/index.js.map +1 -1
- package/Card/index.cjs +4 -4
- package/Card/index.cjs.map +1 -1
- package/Card/index.d.ts +1 -1
- package/Card/index.js +4 -4
- package/Card/index.js.map +1 -1
- package/Checkbox/index.cjs +1 -1
- package/Checkbox/index.cjs.map +1 -1
- package/Checkbox/index.js +1 -1
- package/Checkbox/index.js.map +1 -1
- package/CircleProgress/index.cjs +7 -7
- package/CircleProgress/index.cjs.map +1 -1
- package/CircleProgress/index.js +7 -7
- package/CircleProgress/index.js.map +1 -1
- package/DataFilter/options/DateFilter.cjs +2 -2
- package/DataFilter/options/DateFilter.cjs.map +1 -1
- package/DataFilter/options/DateFilter.js +2 -2
- package/DataFilter/options/DateFilter.js.map +1 -1
- package/DataFilter/options/DateRangeFilter.cjs +1 -1
- package/DataFilter/options/DateRangeFilter.cjs.map +1 -1
- package/DataFilter/options/DateRangeFilter.js +1 -1
- package/DataFilter/options/DateRangeFilter.js.map +1 -1
- package/DataFilter/options/MultiSelectFilter.cjs +2 -2
- package/DataFilter/options/MultiSelectFilter.cjs.map +1 -1
- package/DataFilter/options/MultiSelectFilter.js +2 -2
- package/DataFilter/options/MultiSelectFilter.js.map +1 -1
- package/DataFilter/options/NumberFilter.cjs +1 -1
- package/DataFilter/options/NumberFilter.cjs.map +1 -1
- package/DataFilter/options/NumberFilter.js +1 -1
- package/DataFilter/options/NumberFilter.js.map +1 -1
- package/DataFilter/options/NumberRangeFilter.cjs +1 -1
- package/DataFilter/options/NumberRangeFilter.cjs.map +1 -1
- package/DataFilter/options/NumberRangeFilter.js +1 -1
- package/DataFilter/options/NumberRangeFilter.js.map +1 -1
- package/DataFilter/options/SelectFilter.cjs +2 -2
- package/DataFilter/options/SelectFilter.cjs.map +1 -1
- package/DataFilter/options/SelectFilter.js +2 -2
- package/DataFilter/options/SelectFilter.js.map +1 -1
- package/DataFilter/options/TextFilter.cjs +1 -1
- package/DataFilter/options/TextFilter.cjs.map +1 -1
- package/DataFilter/options/TextFilter.js +1 -1
- package/DataFilter/options/TextFilter.js.map +1 -1
- package/Datatable/FilterBox.cjs +2 -2
- package/Datatable/FilterBox.cjs.map +1 -1
- package/Datatable/FilterBox.js +2 -2
- package/Datatable/FilterBox.js.map +1 -1
- package/Datatable/Row.cjs +1 -1
- package/Datatable/Row.cjs.map +1 -1
- package/Datatable/Row.js +1 -1
- package/Datatable/Row.js.map +1 -1
- package/Datatable/SelectedBox.cjs +1 -1
- package/Datatable/SelectedBox.cjs.map +1 -1
- package/Datatable/SelectedBox.js +1 -1
- package/Datatable/SelectedBox.js.map +1 -1
- package/Datatable/Table.cjs +1 -1
- package/Datatable/Table.cjs.map +1 -1
- package/Datatable/Table.js +1 -1
- package/Datatable/Table.js.map +1 -1
- package/Datatable/TableHead.cjs +3 -3
- package/Datatable/TableHead.cjs.map +1 -1
- package/Datatable/TableHead.js +3 -3
- package/Datatable/TableHead.js.map +1 -1
- package/Datatable/index.cjs +1 -1
- package/Datatable/index.cjs.map +1 -1
- package/Datatable/index.js +1 -1
- package/Datatable/index.js.map +1 -1
- package/Divider/index.cjs +3 -3
- package/Divider/index.cjs.map +1 -1
- package/Divider/index.js +3 -3
- package/Divider/index.js.map +1 -1
- package/Drawer/index.cjs +1 -1
- package/Drawer/index.cjs.map +1 -1
- package/Drawer/index.js +1 -1
- package/Drawer/index.js.map +1 -1
- package/FilePicker/index.d.ts +1 -1
- package/Form/index.cjs +1 -1
- package/Form/index.cjs.map +1 -1
- package/Form/index.js +1 -1
- package/Form/index.js.map +1 -1
- package/GalleryPicker/index.cjs +5 -5
- package/GalleryPicker/index.cjs.map +1 -1
- package/GalleryPicker/index.d.ts +1 -1
- package/GalleryPicker/index.js +5 -5
- package/GalleryPicker/index.js.map +1 -1
- package/Input/index.cjs +7 -7
- package/Input/index.cjs.map +1 -1
- package/Input/index.d.ts +1 -1
- package/Input/index.js +7 -7
- package/Input/index.js.map +1 -1
- package/Label/index.cjs +1 -1
- package/Label/index.cjs.map +1 -1
- package/Label/index.js +1 -1
- package/Label/index.js.map +1 -1
- package/LineProgress/index.cjs +2 -2
- package/LineProgress/index.cjs.map +1 -1
- package/LineProgress/index.js +2 -2
- package/LineProgress/index.js.map +1 -1
- package/ListItem/index.cjs +2 -2
- package/ListItem/index.cjs.map +1 -1
- package/ListItem/index.js +2 -2
- package/ListItem/index.js.map +1 -1
- package/Menu/index.cjs +1 -1
- package/Menu/index.cjs.map +1 -1
- package/Menu/index.js +1 -1
- package/Menu/index.js.map +1 -1
- package/Modal/index.cjs +1 -1
- package/Modal/index.cjs.map +1 -1
- package/Modal/index.js +1 -1
- package/Modal/index.js.map +1 -1
- package/PasswordInput/index.cjs +1 -1
- package/PasswordInput/index.cjs.map +1 -1
- package/PasswordInput/index.js +1 -1
- package/PasswordInput/index.js.map +1 -1
- package/RangeSlider/index.cjs +2 -2
- package/RangeSlider/index.cjs.map +1 -1
- package/RangeSlider/index.js +2 -2
- package/RangeSlider/index.js.map +1 -1
- package/Skeleton/index.cjs +1 -1
- package/Skeleton/index.cjs.map +1 -1
- package/Skeleton/index.js +1 -1
- package/Skeleton/index.js.map +1 -1
- package/Switch/index.cjs +1 -1
- package/Switch/index.cjs.map +1 -1
- package/Switch/index.d.ts +1 -1
- package/Switch/index.js +1 -1
- package/Switch/index.js.map +1 -1
- package/Tab/index.cjs +1 -1
- package/Tab/index.cjs.map +1 -1
- package/Tab/index.js +1 -1
- package/Tab/index.js.map +1 -1
- package/Table/index.cjs +4 -4
- package/Table/index.cjs.map +1 -1
- package/Table/index.js +4 -4
- package/Table/index.js.map +1 -1
- package/TableCell/index.cjs +1 -1
- package/TableCell/index.cjs.map +1 -1
- package/TableCell/index.js +1 -1
- package/TableCell/index.js.map +1 -1
- package/TablePagination/index.cjs +2 -2
- package/TablePagination/index.cjs.map +1 -1
- package/TablePagination/index.js +2 -2
- package/TablePagination/index.js.map +1 -1
- package/Tabs/index.cjs +1 -1
- package/Tabs/index.cjs.map +1 -1
- package/Tabs/index.js +1 -1
- package/Tabs/index.js.map +1 -1
- package/Text/index.cjs +1 -1
- package/Text/index.cjs.map +1 -1
- package/Text/index.js +1 -1
- package/Text/index.js.map +1 -1
- package/Tooltip/index.cjs +2 -2
- package/Tooltip/index.cjs.map +1 -1
- package/Tooltip/index.js +2 -2
- package/Tooltip/index.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +4 -4
- package/useBlurCss/index.cjs +1 -1
- package/useBlurCss/index.cjs.map +1 -1
- package/useBlurCss/index.js +1 -1
- package/useBlurCss/index.js.map +1 -1
- package/useContextMenu/index.cjs +1 -1
- package/useContextMenu/index.cjs.map +1 -1
- package/useContextMenu/index.js +1 -1
- package/useContextMenu/index.js.map +1 -1
package/Datatable/FilterBox.js
CHANGED
|
@@ -24,9 +24,9 @@ const FilterBox = (props) => {
|
|
|
24
24
|
update({ tab: value });
|
|
25
25
|
}, value: state.tab, children: tabs.map(t => jsx(Tab, { value: t.value || t.label.toLowerCase(), children: t.label }, t.label)) }) }), jsxs(Stack, { flexRow: true, gap: 2, className: 'datatable-header-right-area', alignItems: "center", children: [!hideSearch && jsx(Input, Object.assign({ disabled: skeleton ? true : false, endIcon: jsx(IconSearch, {}), placeholder: 'Search...' }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.search, { value: state.search, onChange: (e) => {
|
|
26
26
|
update({ search: e.target.value });
|
|
27
|
-
} })), filters && jsxs(Stack, { children: [jsx(IconButton, { color: "
|
|
27
|
+
} })), filters && jsxs(Stack, { children: [jsx(IconButton, { color: "default", variant: "text", onClick: () => {
|
|
28
28
|
setOpenFilter(true);
|
|
29
|
-
}, children: jsx(FilterListOutlined, {}) }), jsx(Drawer, { open: openFilter, onClickOutside: () => { }, placement: "right", children: jsx(ViewBox, { height: "100%", p: 1, startContent: jsxs(Stack, { mb: 2, px: 2, flexRow: true, justifyContent: "space-between", alignItems: "center", children: [jsx(Text, { fontWeight: 600, fontSize: "h6", children: "Filters" }), jsx(IconButton, { size: "small", color: "
|
|
29
|
+
}, children: jsx(FilterListOutlined, {}) }), jsx(Drawer, { open: openFilter, onClickOutside: () => { }, placement: "right", children: jsx(ViewBox, { height: "100%", p: 1, startContent: jsxs(Stack, { mb: 2, px: 2, flexRow: true, justifyContent: "space-between", alignItems: "center", children: [jsx(Text, { fontWeight: 600, fontSize: "h6", children: "Filters" }), jsx(IconButton, { size: "small", color: "default", variant: "text", onClick: () => {
|
|
30
30
|
setOpenFilter(false);
|
|
31
31
|
}, children: jsx(CloseOutlined, {}) })] }), children: jsx(Stack, { gap: 2, children: jsx(DataFilter, { options: filters, value: state.filters, onChange: (s) => {
|
|
32
32
|
update({ filters: s });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBox.js","sources":["../../src/Datatable/FilterBox.tsx"],"sourcesContent":["\"use client\";\nimport Stack from '../Stack'\nimport Tabs from '../Tabs'\nimport Tab from '../Tab'\nimport Input from '../Input'\nimport IconSearch from '@xanui/icons/Search'\nimport { DatatablePropsWithState } from './types';\nimport IconButton from '../IconButton';\nimport FilterListOutlined from '@xanui/icons/FilterListOutlined';\nimport Drawer from '../Drawer';\nimport Text from '../Text';\nimport React from 'react';\nimport CloseOutlined from '@xanui/icons/CloseOutlined';\nimport ViewBox from '../ViewBox';\nimport DataFilter from '../DataFilter';\n\nconst FilterBox = (props: DatatablePropsWithState) => {\n let {\n tabs,\n filters,\n hideSearch,\n slotProps,\n skeleton,\n state,\n update,\n } = props\n const [openFilter, setOpenFilter] = React.useState(false)\n let checked = state.selectAll || !!state.selected.length\n\n if (checked) return <></>\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n zIndex={1}\n radius={1}\n mb={1}\n height={50}\n width=\"100%\"\n >\n <Stack gap={2.4} flexRow>\n {\n tabs && <Tabs\n disabled={skeleton ? true : false}\n onChange={(value: any) => {\n update({ tab: value })\n }}\n value={state.tab}\n >\n {\n tabs.map(t => <Tab key={t.label} value={t.value || t.label.toLowerCase()}>{t.label}</Tab>)\n }\n </Tabs>\n }\n </Stack>\n <Stack\n flexRow\n gap={2}\n className='datatable-header-right-area'\n alignItems={\"center\"}\n >\n {!hideSearch && <Input\n disabled={skeleton ? true : false}\n endIcon={<IconSearch />}\n placeholder='Search...'\n {...slotProps?.search}\n value={state.search}\n onChange={(e: any) => {\n update({ search: e.target.value })\n }}\n />}\n {\n filters && <Stack>\n <IconButton\n color=\"
|
|
1
|
+
{"version":3,"file":"FilterBox.js","sources":["../../src/Datatable/FilterBox.tsx"],"sourcesContent":["\"use client\";\nimport Stack from '../Stack'\nimport Tabs from '../Tabs'\nimport Tab from '../Tab'\nimport Input from '../Input'\nimport IconSearch from '@xanui/icons/Search'\nimport { DatatablePropsWithState } from './types';\nimport IconButton from '../IconButton';\nimport FilterListOutlined from '@xanui/icons/FilterListOutlined';\nimport Drawer from '../Drawer';\nimport Text from '../Text';\nimport React from 'react';\nimport CloseOutlined from '@xanui/icons/CloseOutlined';\nimport ViewBox from '../ViewBox';\nimport DataFilter from '../DataFilter';\n\nconst FilterBox = (props: DatatablePropsWithState) => {\n let {\n tabs,\n filters,\n hideSearch,\n slotProps,\n skeleton,\n state,\n update,\n } = props\n const [openFilter, setOpenFilter] = React.useState(false)\n let checked = state.selectAll || !!state.selected.length\n\n if (checked) return <></>\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n zIndex={1}\n radius={1}\n mb={1}\n height={50}\n width=\"100%\"\n >\n <Stack gap={2.4} flexRow>\n {\n tabs && <Tabs\n disabled={skeleton ? true : false}\n onChange={(value: any) => {\n update({ tab: value })\n }}\n value={state.tab}\n >\n {\n tabs.map(t => <Tab key={t.label} value={t.value || t.label.toLowerCase()}>{t.label}</Tab>)\n }\n </Tabs>\n }\n </Stack>\n <Stack\n flexRow\n gap={2}\n className='datatable-header-right-area'\n alignItems={\"center\"}\n >\n {!hideSearch && <Input\n disabled={skeleton ? true : false}\n endIcon={<IconSearch />}\n placeholder='Search...'\n {...slotProps?.search}\n value={state.search}\n onChange={(e: any) => {\n update({ search: e.target.value })\n }}\n />}\n {\n filters && <Stack>\n <IconButton\n color=\"default\"\n variant={\"text\"}\n onClick={() => {\n setOpenFilter(true)\n }}\n >\n <FilterListOutlined />\n </IconButton>\n <Drawer\n open={openFilter}\n onClickOutside={() => { }}\n placement={\"right\"}\n >\n <ViewBox\n height=\"100%\"\n p={1}\n startContent={<Stack mb={2} px={2} flexRow justifyContent={\"space-between\"} alignItems=\"center\">\n <Text fontWeight={600} fontSize=\"h6\">Filters</Text>\n <IconButton\n size=\"small\"\n color=\"default\"\n variant=\"text\"\n onClick={() => {\n setOpenFilter(false)\n }}\n >\n <CloseOutlined />\n </IconButton>\n </Stack>}\n >\n <Stack\n gap={2}\n >\n <DataFilter\n options={filters}\n value={state.filters}\n onChange={(s) => {\n update({ filters: s })\n }}\n />\n </Stack>\n </ViewBox>\n </Drawer>\n </Stack>\n }\n </Stack>\n </Stack>\n )\n}\n\nexport default FilterBox"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBA;AACG;AASA;AACA;AAEA;AAAa;AAEb;AAgBkB;;;;;AAiCA;;AAoBS;AAaG;;AAWjC;;"}
|
package/Datatable/Row.cjs
CHANGED
|
@@ -40,7 +40,7 @@ const Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns,
|
|
|
40
40
|
if (!row[field])
|
|
41
41
|
return jsxRuntime.jsx(index$1, {}, idx);
|
|
42
42
|
return (jsxRuntime.jsx(index$1, Object.assign({ textAlign: "left" }, rest, { bgcolor: selectedColor, children: row[field] }), idx));
|
|
43
|
-
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxRuntime.jsxs(index$1, { width: 30, bgcolor: selectedColor, borderColor: "
|
|
43
|
+
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxRuntime.jsxs(index$1, { width: 30, bgcolor: selectedColor, borderColor: "default.divider", children: [jsxRuntime.jsx(index$3, { disabled: isDisable || selected, onClick: (e) => setTarget(e.currentTarget), variant: "text", color: "default", children: jsxRuntime.jsx(ActionIcon, {}) }), jsxRuntime.jsx(index$4, { target: target, placement: "bottom-right", onClickOutside: () => setTarget(null), children: jsxRuntime.jsx(index$5, { bgcolor: "default.base", minWidth: 160, sx: {
|
|
44
44
|
'& > li': {
|
|
45
45
|
borderBottom: 1,
|
|
46
46
|
'&:last-child': {
|
package/Datatable/Row.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.cjs","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.ghost\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow >\n {!hideCheckbox && <TableCell width={40} bgcolor={selectedColor}>\n {\n !!row.id && <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checked={selected}\n onChange={() => {\n if (isDisable || !row.id) return\n let ids = [...state.selected]\n ids.includes(row.id) ? ids.splice(ids.indexOf(row.id), 1) : ids.push(row.id)\n let selectedLength = 0\n rows.forEach(r => {\n const isDisable = (disableRow ? disableRow(r, state) : false) || false\n if (!isDisable) selectedLength++\n })\n\n update({\n selectAll: selectedLength === ids.length,\n selected: ids\n })\n }}\n />\n }\n\n </TableCell>}\n {\n columns.map(({ label, field, sortable, ...rest }, idx) => {\n field = field || label\n if (!row[field]) return <TableCell key={idx}></TableCell>\n return (\n <TableCell\n key={idx}\n textAlign=\"left\"\n {...rest}\n bgcolor={selectedColor}\n >\n {row[field]}\n </TableCell>\n )\n })\n }\n {!!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell width={30} bgcolor={selectedColor} borderColor=\"
|
|
1
|
+
{"version":3,"file":"Row.cjs","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.ghost\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow >\n {!hideCheckbox && <TableCell width={40} bgcolor={selectedColor}>\n {\n !!row.id && <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checked={selected}\n onChange={() => {\n if (isDisable || !row.id) return\n let ids = [...state.selected]\n ids.includes(row.id) ? ids.splice(ids.indexOf(row.id), 1) : ids.push(row.id)\n let selectedLength = 0\n rows.forEach(r => {\n const isDisable = (disableRow ? disableRow(r, state) : false) || false\n if (!isDisable) selectedLength++\n })\n\n update({\n selectAll: selectedLength === ids.length,\n selected: ids\n })\n }}\n />\n }\n\n </TableCell>}\n {\n columns.map(({ label, field, sortable, ...rest }, idx) => {\n field = field || label\n if (!row[field]) return <TableCell key={idx}></TableCell>\n return (\n <TableCell\n key={idx}\n textAlign=\"left\"\n {...rest}\n bgcolor={selectedColor}\n >\n {row[field]}\n </TableCell>\n )\n })\n }\n {!!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell width={30} bgcolor={selectedColor} borderColor=\"default.divider\">\n <IconButton\n disabled={isDisable || selected}\n onClick={(e: any) => setTarget(e.currentTarget)}\n variant=\"text\"\n color=\"default\"\n >\n <ActionIcon />\n </IconButton>\n <Menu target={target} placement=\"bottom-right\" onClickOutside={() => setTarget(null)}>\n <List\n bgcolor=\"default.base\"\n minWidth={160}\n sx={{\n '& > li': {\n borderBottom: 1,\n '&:last-child': {\n borderBottom: 0\n }\n }\n }}\n >\n {rowAction({ row: rawRow, state }).map(({ label, icon, onClick }) => {\n return (\n <ListItem\n key={label}\n startIcon={icon}\n onClick={(e: any) => {\n onClick && onClick(e)\n setTarget(null)\n }}\n >{label}</ListItem>\n )\n })}\n </List>\n </Menu>\n </TableCell>\n }\n </TableRow>\n )\n}\n\nexport default Row"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkBA;;;;;;;AAc4B;;;AAEA;;AAEA;;AAEI;AAAgB;AACpB;AAEA;AACI;AACA;AACH;AACL;;AAOJ;AACA;AAAiB;;;AA2BT;AACI;AACA;AACI;AACH;AACJ;;AAID;AAKY;;AAEJ;AAGZ;AAOxB;;"}
|
package/Datatable/Row.js
CHANGED
|
@@ -38,7 +38,7 @@ const Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns,
|
|
|
38
38
|
if (!row[field])
|
|
39
39
|
return jsx(TableCell, {}, idx);
|
|
40
40
|
return (jsx(TableCell, Object.assign({ textAlign: "left" }, rest, { bgcolor: selectedColor, children: row[field] }), idx));
|
|
41
|
-
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxs(TableCell, { width: 30, bgcolor: selectedColor, borderColor: "
|
|
41
|
+
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxs(TableCell, { width: 30, bgcolor: selectedColor, borderColor: "default.divider", children: [jsx(IconButton, { disabled: isDisable || selected, onClick: (e) => setTarget(e.currentTarget), variant: "text", color: "default", children: jsx(ActionIcon, {}) }), jsx(Menu, { target: target, placement: "bottom-right", onClickOutside: () => setTarget(null), children: jsx(List, { bgcolor: "default.base", minWidth: 160, sx: {
|
|
42
42
|
'& > li': {
|
|
43
43
|
borderBottom: 1,
|
|
44
44
|
'&:last-child': {
|
package/Datatable/Row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.js","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.ghost\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow >\n {!hideCheckbox && <TableCell width={40} bgcolor={selectedColor}>\n {\n !!row.id && <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checked={selected}\n onChange={() => {\n if (isDisable || !row.id) return\n let ids = [...state.selected]\n ids.includes(row.id) ? ids.splice(ids.indexOf(row.id), 1) : ids.push(row.id)\n let selectedLength = 0\n rows.forEach(r => {\n const isDisable = (disableRow ? disableRow(r, state) : false) || false\n if (!isDisable) selectedLength++\n })\n\n update({\n selectAll: selectedLength === ids.length,\n selected: ids\n })\n }}\n />\n }\n\n </TableCell>}\n {\n columns.map(({ label, field, sortable, ...rest }, idx) => {\n field = field || label\n if (!row[field]) return <TableCell key={idx}></TableCell>\n return (\n <TableCell\n key={idx}\n textAlign=\"left\"\n {...rest}\n bgcolor={selectedColor}\n >\n {row[field]}\n </TableCell>\n )\n })\n }\n {!!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell width={30} bgcolor={selectedColor} borderColor=\"
|
|
1
|
+
{"version":3,"file":"Row.js","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.ghost\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow >\n {!hideCheckbox && <TableCell width={40} bgcolor={selectedColor}>\n {\n !!row.id && <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checked={selected}\n onChange={() => {\n if (isDisable || !row.id) return\n let ids = [...state.selected]\n ids.includes(row.id) ? ids.splice(ids.indexOf(row.id), 1) : ids.push(row.id)\n let selectedLength = 0\n rows.forEach(r => {\n const isDisable = (disableRow ? disableRow(r, state) : false) || false\n if (!isDisable) selectedLength++\n })\n\n update({\n selectAll: selectedLength === ids.length,\n selected: ids\n })\n }}\n />\n }\n\n </TableCell>}\n {\n columns.map(({ label, field, sortable, ...rest }, idx) => {\n field = field || label\n if (!row[field]) return <TableCell key={idx}></TableCell>\n return (\n <TableCell\n key={idx}\n textAlign=\"left\"\n {...rest}\n bgcolor={selectedColor}\n >\n {row[field]}\n </TableCell>\n )\n })\n }\n {!!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell width={30} bgcolor={selectedColor} borderColor=\"default.divider\">\n <IconButton\n disabled={isDisable || selected}\n onClick={(e: any) => setTarget(e.currentTarget)}\n variant=\"text\"\n color=\"default\"\n >\n <ActionIcon />\n </IconButton>\n <Menu target={target} placement=\"bottom-right\" onClickOutside={() => setTarget(null)}>\n <List\n bgcolor=\"default.base\"\n minWidth={160}\n sx={{\n '& > li': {\n borderBottom: 1,\n '&:last-child': {\n borderBottom: 0\n }\n }\n }}\n >\n {rowAction({ row: rawRow, state }).map(({ label, icon, onClick }) => {\n return (\n <ListItem\n key={label}\n startIcon={icon}\n onClick={(e: any) => {\n onClick && onClick(e)\n setTarget(null)\n }}\n >{label}</ListItem>\n )\n })}\n </List>\n </Menu>\n </TableCell>\n }\n </TableRow>\n )\n}\n\nexport default Row"],"names":[],"mappings":";;;;;;;;;;;;;AAkBA;;;;;;;AAc4B;;;AAEA;;AAEA;;AAEI;AAAgB;AACpB;AAEA;AACI;AACA;AACH;AACL;;AAOJ;AACA;AAAiB;;;AA2BT;AACI;AACA;AACI;AACH;AACJ;;AAID;AAKY;;AAEJ;AAGZ;AAOxB;;"}
|
|
@@ -12,7 +12,7 @@ const SelectedBox = (props) => {
|
|
|
12
12
|
let checked = state.selectAll || !!state.selected.length;
|
|
13
13
|
if (!checked)
|
|
14
14
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
15
|
-
return (jsxRuntime.jsxs(index, { bgcolor: "
|
|
15
|
+
return (jsxRuntime.jsxs(index, { bgcolor: "default.base", direction: "row", alignItems: "center", justifyContent: "space-between", zIndex: 1, radius: 1, mb: 1, height: 50, width: "100%", px: 1.5, children: [jsxRuntime.jsxs(index$1, { fontWeight: 600, children: ["Selected: ", state.selected.length] }), jsxRuntime.jsx(index, { flexRow: true, gap: 1, children: rowAction && rowAction({ row: null, state }).map((_a) => {
|
|
16
16
|
var { label, icon } = _a, bprops = tslib.__rest(_a, ["label", "icon"]);
|
|
17
17
|
return (jsxRuntime.jsx(index$2, Object.assign({ variant: "ghost", color: "primary" }, bprops, { children: icon }), label));
|
|
18
18
|
}) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectedBox.cjs","sources":["../../src/Datatable/SelectedBox.tsx"],"sourcesContent":["\"use client\"\nimport IconButton from '../IconButton'\nimport Stack from '../Stack'\nimport Text from '../Text'\nimport { DatatablePropsWithState } from './types'\n\nconst SelectedBox = (props: DatatablePropsWithState) => {\n let {\n state,\n rowAction\n } = props\n\n let checked = state.selectAll || !!state.selected.length\n if (!checked) return <></>\n\n return (\n <Stack\n bgcolor=\"
|
|
1
|
+
{"version":3,"file":"SelectedBox.cjs","sources":["../../src/Datatable/SelectedBox.tsx"],"sourcesContent":["\"use client\"\nimport IconButton from '../IconButton'\nimport Stack from '../Stack'\nimport Text from '../Text'\nimport { DatatablePropsWithState } from './types'\n\nconst SelectedBox = (props: DatatablePropsWithState) => {\n let {\n state,\n rowAction\n } = props\n\n let checked = state.selectAll || !!state.selected.length\n if (!checked) return <></>\n\n return (\n <Stack\n bgcolor=\"default.base\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n zIndex={1}\n radius={1}\n mb={1}\n height={50}\n width=\"100%\"\n px={1.5}\n >\n <Text fontWeight={600}>Selected: {state.selected.length}</Text>\n <Stack\n flexRow\n gap={1}\n >\n {rowAction && rowAction({ row: null, state }).map(({ label, icon, ...bprops }) => {\n return (\n <IconButton\n key={label}\n variant=\"ghost\"\n color=\"primary\"\n {...bprops}\n >\n {icon}\n </IconButton>\n )\n })}\n </Stack>\n </Stack>\n )\n}\n\nexport default SelectedBox"],"names":[],"mappings":";;;;;;;;;AAMA;AACG;AAKA;AACA;AAAc;AAEd;;AAmBY;AAUH;AAIZ;;"}
|
package/Datatable/SelectedBox.js
CHANGED
|
@@ -10,7 +10,7 @@ const SelectedBox = (props) => {
|
|
|
10
10
|
let checked = state.selectAll || !!state.selected.length;
|
|
11
11
|
if (!checked)
|
|
12
12
|
return jsx(Fragment, {});
|
|
13
|
-
return (jsxs(Stack, { bgcolor: "
|
|
13
|
+
return (jsxs(Stack, { bgcolor: "default.base", direction: "row", alignItems: "center", justifyContent: "space-between", zIndex: 1, radius: 1, mb: 1, height: 50, width: "100%", px: 1.5, children: [jsxs(Text, { fontWeight: 600, children: ["Selected: ", state.selected.length] }), jsx(Stack, { flexRow: true, gap: 1, children: rowAction && rowAction({ row: null, state }).map((_a) => {
|
|
14
14
|
var { label, icon } = _a, bprops = __rest(_a, ["label", "icon"]);
|
|
15
15
|
return (jsx(IconButton, Object.assign({ variant: "ghost", color: "primary" }, bprops, { children: icon }), label));
|
|
16
16
|
}) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectedBox.js","sources":["../../src/Datatable/SelectedBox.tsx"],"sourcesContent":["\"use client\"\nimport IconButton from '../IconButton'\nimport Stack from '../Stack'\nimport Text from '../Text'\nimport { DatatablePropsWithState } from './types'\n\nconst SelectedBox = (props: DatatablePropsWithState) => {\n let {\n state,\n rowAction\n } = props\n\n let checked = state.selectAll || !!state.selected.length\n if (!checked) return <></>\n\n return (\n <Stack\n bgcolor=\"
|
|
1
|
+
{"version":3,"file":"SelectedBox.js","sources":["../../src/Datatable/SelectedBox.tsx"],"sourcesContent":["\"use client\"\nimport IconButton from '../IconButton'\nimport Stack from '../Stack'\nimport Text from '../Text'\nimport { DatatablePropsWithState } from './types'\n\nconst SelectedBox = (props: DatatablePropsWithState) => {\n let {\n state,\n rowAction\n } = props\n\n let checked = state.selectAll || !!state.selected.length\n if (!checked) return <></>\n\n return (\n <Stack\n bgcolor=\"default.base\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n zIndex={1}\n radius={1}\n mb={1}\n height={50}\n width=\"100%\"\n px={1.5}\n >\n <Text fontWeight={600}>Selected: {state.selected.length}</Text>\n <Stack\n flexRow\n gap={1}\n >\n {rowAction && rowAction({ row: null, state }).map(({ label, icon, ...bprops }) => {\n return (\n <IconButton\n key={label}\n variant=\"ghost\"\n color=\"primary\"\n {...bprops}\n >\n {icon}\n </IconButton>\n )\n })}\n </Stack>\n </Stack>\n )\n}\n\nexport default SelectedBox"],"names":[],"mappings":";;;;;;;AAMA;AACG;AAKA;AACA;AAAc;AAEd;;AAmBY;AAUH;AAIZ;;"}
|
package/Datatable/Table.cjs
CHANGED
|
@@ -9,7 +9,7 @@ var Row = require('./Row.cjs');
|
|
|
9
9
|
|
|
10
10
|
const TableArea = (props) => {
|
|
11
11
|
let { rows, compact, renderRow, state, update, slotProps } = props;
|
|
12
|
-
return (jsxRuntime.jsxs(index, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "
|
|
12
|
+
return (jsxRuntime.jsxs(index, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "default.divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsxRuntime.jsx(TableHead, Object.assign({}, props, { update: update, state: state })), jsxRuntime.jsx(index$1, { sx: {
|
|
13
13
|
'& tr:last-child td': {
|
|
14
14
|
borderBottom: 0
|
|
15
15
|
}
|
package/Datatable/Table.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.cjs","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"
|
|
1
|
+
{"version":3,"file":"Table.cjs","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"default.divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow(structuredClone(row), state) : row\n return <Row\n key={`dt-row-${row.id}-${idx}`}\n rawRow={row}\n row={_row}\n {...props}\n update={update}\n state={state}\n />\n })\n }\n </TableBody>\n </Table>\n )\n}\n\nexport default TableArea"],"names":[],"mappings":";;;;;;;;;AAOA;AACG;;AAcY;AACG;AACF;AACH;AAIK;AACA;AAQH;AAKf;;"}
|
package/Datatable/Table.js
CHANGED
|
@@ -7,7 +7,7 @@ import Row from './Row.js';
|
|
|
7
7
|
|
|
8
8
|
const TableArea = (props) => {
|
|
9
9
|
let { rows, compact, renderRow, state, update, slotProps } = props;
|
|
10
|
-
return (jsxs(Table, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "
|
|
10
|
+
return (jsxs(Table, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "default.divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsx(TableHeadRender, Object.assign({}, props, { update: update, state: state })), jsx(TableBody, { sx: {
|
|
11
11
|
'& tr:last-child td': {
|
|
12
12
|
borderBottom: 0
|
|
13
13
|
}
|
package/Datatable/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"default.divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow(structuredClone(row), state) : row\n return <Row\n key={`dt-row-${row.id}-${idx}`}\n rawRow={row}\n row={_row}\n {...props}\n update={update}\n state={state}\n />\n })\n }\n </TableBody>\n </Table>\n )\n}\n\nexport default TableArea"],"names":[],"mappings":";;;;;;;AAOA;AACG;;AAcY;AACG;AACF;AACH;AAIK;AACA;AAQH;AAKf;;"}
|
package/Datatable/TableHead.cjs
CHANGED
|
@@ -18,7 +18,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
18
18
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
19
19
|
let checked = state.selectAll || !!state.selected.length;
|
|
20
20
|
let sortables = state.sortable || {};
|
|
21
|
-
return (jsxRuntime.jsx(index, { position: "relative", children: jsxRuntime.jsxs(index$1, { bgcolor: "
|
|
21
|
+
return (jsxRuntime.jsx(index, { position: "relative", children: jsxRuntime.jsxs(index$1, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsxRuntime.jsx(index$2, { th: true, width: 40, children: jsxRuntime.jsx(index$3, { size: compact ? "small" : "medium", checkIcon: state.selected.length && !state.selectAll ? jsxRuntime.jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
22
22
|
let ids = [];
|
|
23
23
|
let undefinedCount = 0;
|
|
24
24
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -45,7 +45,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
45
45
|
}
|
|
46
46
|
} }) }), columns.map((_a, idx) => {
|
|
47
47
|
var { label, field: _f, sortable } = _a, rest = tslib.__rest(_a, ["label", "field", "sortable"]);
|
|
48
|
-
return jsxRuntime.jsx(index$2, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxRuntime.jsxs(index$4, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : '
|
|
48
|
+
return jsxRuntime.jsx(index$2, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxRuntime.jsxs(index$4, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : 'default', userSelect: "none", gap: .5, onClick: () => {
|
|
49
49
|
if (sortable) {
|
|
50
50
|
let v = sortables[_f];
|
|
51
51
|
if (!v) {
|
|
@@ -61,7 +61,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
61
61
|
sortable: sortables
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
}, children: [jsxRuntime.jsx(index$5, { color: "
|
|
64
|
+
}, children: [jsxRuntime.jsx(index$5, { color: "default.muted", fontWeight: 600, children: label }), sortable && jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(SwitchRight, { opacity: sortables[_f] ? 1 : .3, color: sortables[_f] ? 'primary' : 'default.muted', sx: {
|
|
65
65
|
fontSize: 23,
|
|
66
66
|
transform: sortables[_f] === 'desc' ? 'rotate(-90deg)' : 'rotate(90deg)',
|
|
67
67
|
} }) })] }) }), idx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.cjs","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport Text from '../Text';\nimport SwitchRight from '@xanui/icons/SwitchRight';\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n let sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"
|
|
1
|
+
{"version":3,"file":"TableHead.cjs","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport Text from '../Text';\nimport SwitchRight from '@xanui/icons/SwitchRight';\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n let sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell\n key={idx}\n th\n textAlign=\"left\"\n {...rest}\n >\n <Stack\n disabled={skeleton ? true : false}\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : 'default'}\n userSelect={\"none\"}\n gap={.5}\n onClick={() => {\n if (sortable) {\n let v = sortables[_f as any]\n if (!v) {\n sortables[_f as any] = 'asc'\n } else if (v === 'asc') {\n sortables[_f as any] = 'desc'\n } else {\n delete sortables[_f as any]\n }\n update({\n sortable: sortables\n })\n }\n }}\n >\n <Text color=\"default.muted\" fontWeight={600}>{label}</Text>\n {sortable && <>\n <SwitchRight\n opacity={sortables[_f as any] ? 1 : .3}\n color={sortables[_f as any] ? 'primary' : 'default.muted'}\n sx={{\n fontSize: 23,\n transform: sortables[_f as any] === 'desc' ? 'rotate(-90deg)' : 'rotate(90deg)',\n }}\n />\n </>}\n </Stack>\n </TableCell>)\n }\n {\n !!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAWA;;;AACyB;AACrB;AACA;AAEA;;;AAWwB;AACI;;AAEA;AACI;;;;;;;AAOJ;AACI;AACA;AACH;;;AAED;;AAEI;AACH;;AAET;AAIS;;;AAeG;;AAEI;;AACG;AACH;;;AAEA;;AAEJ;AACI;AACH;;;AAUG;AACA;AACH;AAIL;AAQhC;;"}
|
package/Datatable/TableHead.js
CHANGED
|
@@ -16,7 +16,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
16
16
|
return jsx(Fragment, {});
|
|
17
17
|
let checked = state.selectAll || !!state.selected.length;
|
|
18
18
|
let sortables = state.sortable || {};
|
|
19
|
-
return (jsx(TableHead, { position: "relative", children: jsxs(TableRow, { bgcolor: "
|
|
19
|
+
return (jsx(TableHead, { position: "relative", children: jsxs(TableRow, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsx(TableCell, { th: true, width: 40, children: jsx(Checkbox, { size: compact ? "small" : "medium", checkIcon: state.selected.length && !state.selectAll ? jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
20
20
|
let ids = [];
|
|
21
21
|
let undefinedCount = 0;
|
|
22
22
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -43,7 +43,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
43
43
|
}
|
|
44
44
|
} }) }), columns.map((_a, idx) => {
|
|
45
45
|
var { label, field: _f, sortable } = _a, rest = __rest(_a, ["label", "field", "sortable"]);
|
|
46
|
-
return jsx(TableCell, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxs(Stack, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : '
|
|
46
|
+
return jsx(TableCell, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxs(Stack, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : 'default', userSelect: "none", gap: .5, onClick: () => {
|
|
47
47
|
if (sortable) {
|
|
48
48
|
let v = sortables[_f];
|
|
49
49
|
if (!v) {
|
|
@@ -59,7 +59,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, c
|
|
|
59
59
|
sortable: sortables
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
}, children: [jsx(Text, { color: "
|
|
62
|
+
}, children: [jsx(Text, { color: "default.muted", fontWeight: 600, children: label }), sortable && jsx(Fragment, { children: jsx(SwitchRight, { opacity: sortables[_f] ? 1 : .3, color: sortables[_f] ? 'primary' : 'default.muted', sx: {
|
|
63
63
|
fontSize: 23,
|
|
64
64
|
transform: sortables[_f] === 'desc' ? 'rotate(-90deg)' : 'rotate(90deg)',
|
|
65
65
|
} }) })] }) }), idx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.js","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport Text from '../Text';\nimport SwitchRight from '@xanui/icons/SwitchRight';\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n let sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"
|
|
1
|
+
{"version":3,"file":"TableHead.js","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport Text from '../Text';\nimport SwitchRight from '@xanui/icons/SwitchRight';\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n let sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell\n key={idx}\n th\n textAlign=\"left\"\n {...rest}\n >\n <Stack\n disabled={skeleton ? true : false}\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : 'default'}\n userSelect={\"none\"}\n gap={.5}\n onClick={() => {\n if (sortable) {\n let v = sortables[_f as any]\n if (!v) {\n sortables[_f as any] = 'asc'\n } else if (v === 'asc') {\n sortables[_f as any] = 'desc'\n } else {\n delete sortables[_f as any]\n }\n update({\n sortable: sortables\n })\n }\n }}\n >\n <Text color=\"default.muted\" fontWeight={600}>{label}</Text>\n {sortable && <>\n <SwitchRight\n opacity={sortables[_f as any] ? 1 : .3}\n color={sortables[_f as any] ? 'primary' : 'default.muted'}\n sx={{\n fontSize: 23,\n transform: sortables[_f as any] === 'desc' ? 'rotate(-90deg)' : 'rotate(90deg)',\n }}\n />\n </>}\n </Stack>\n </TableCell>)\n }\n {\n !!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA;;;AACyB;AACrB;AACA;AAEA;;;AAWwB;AACI;;AAEA;AACI;;;;;;;AAOJ;AACI;AACA;AACH;;;AAED;;AAEI;AACH;;AAET;AAIS;;;AAeG;;AAEI;;AACG;AACH;;;AAEA;;AAEJ;AACI;AACH;;;AAUG;AACA;AACH;AAIL;AAQhC;;"}
|
package/Datatable/index.cjs
CHANGED
|
@@ -75,7 +75,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
75
75
|
return (jsxRuntime.jsxs(index$1, Object.assign({ height: "100%" }, viewBoxProps, { baseClass: 'datatable', ref: ref, sx: Object.assign(Object.assign({}, viewBoxProps === null || viewBoxProps === void 0 ? void 0 : viewBoxProps.sx), { '& thead': fixedHeader ? {
|
|
76
76
|
position: "sticky",
|
|
77
77
|
top: 0,
|
|
78
|
-
bgcolor: "
|
|
78
|
+
bgcolor: "default.base",
|
|
79
79
|
zIndex: 1
|
|
80
80
|
} : {} }), startContent: (jsxRuntime.jsxs(core.Tag, { baseClass: 'datatable-header', sxr: {
|
|
81
81
|
display: "flex",
|
package/Datatable/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useMemo } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\nexport type * from './types';\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n state: userState = {},\n onChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const userperpage = userState?.pagination?.perpage\n let perpage = userperpage && perpages.includes(userperpage) ? userperpage : perpages[0]\n let page = userState?.pagination?.page ?? 1\n const state = {\n selected: userState?.selected ?? [],\n selectAll: userState?.selectAll ?? false,\n pagination: {\n page,\n perpage,\n from: page ? (perpage * (page - 1)) + 1 : 1,\n to: page ? perpage * page : perpage,\n },\n tab: tabs ? (userState?.tab ?? tabs[0].value ?? tabs[0].label.toLowerCase()) : \"\",\n search: userState?.search ?? \"\",\n sortable: userState?.sortable ?? {},\n filters: userState?.filters ?? {}\n }\n\n const update = (s: Partial<DatatableState>) => {\n onChange({ ...state, ...s })\n }\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useMemo } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\nexport type * from './types';\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n state: userState = {},\n onChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const userperpage = userState?.pagination?.perpage\n let perpage = userperpage && perpages.includes(userperpage) ? userperpage : perpages[0]\n let page = userState?.pagination?.page ?? 1\n const state = {\n selected: userState?.selected ?? [],\n selectAll: userState?.selectAll ?? false,\n pagination: {\n page,\n perpage,\n from: page ? (perpage * (page - 1)) + 1 : 1,\n to: page ? perpage * page : perpage,\n },\n tab: tabs ? (userState?.tab ?? tabs[0].value ?? tabs[0].label.toLowerCase()) : \"\",\n search: userState?.search ?? \"\",\n sortable: userState?.sortable ?? {},\n filters: userState?.filters ?? {}\n }\n\n const update = (s: Partial<DatatableState>) => {\n onChange({ ...state, ...s })\n }\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"default.base\",\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 {!hidePagination && <TablePagination\n disabled={_props.skeleton ? true : false}\n {...slotProps?.pagination}\n total={total || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n slotProps={{\n select: {\n size: \"small\",\n }\n }}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;;;AAcA;;AACI;AAEA;AACI;AAEA;;AAEI;AAEA;;;AAGK;;AAGL;;;AAIA;AAEA;AACA;AACI;AACA;AACI;;AAEJ;;AAGJ;AACI;;;AAQA;AACJ;AACA;AACA;;AAEJ;AACJ;AAEA;;;AA2BA;;AAEA;AACA;;;AAGI;;;AAGI;;AAEH;AACD;;;;;AAMJ;AACI;AACJ;AAEA;AASgB;AACA;AACA;AACA;AACH;AAMO;AACA;AACA;;AAyBA;AACI;AACH;AACJ;AAEG;AACJ;AAKpB;;"}
|
package/Datatable/index.js
CHANGED
|
@@ -73,7 +73,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
73
73
|
return (jsxs(ViewBox, Object.assign({ height: "100%" }, viewBoxProps, { baseClass: 'datatable', ref: ref, sx: Object.assign(Object.assign({}, viewBoxProps === null || viewBoxProps === void 0 ? void 0 : viewBoxProps.sx), { '& thead': fixedHeader ? {
|
|
74
74
|
position: "sticky",
|
|
75
75
|
top: 0,
|
|
76
|
-
bgcolor: "
|
|
76
|
+
bgcolor: "default.base",
|
|
77
77
|
zIndex: 1
|
|
78
78
|
} : {} }), startContent: (jsxs(Tag, { baseClass: 'datatable-header', sxr: {
|
|
79
79
|
display: "flex",
|
package/Datatable/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useMemo } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\nexport type * from './types';\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n state: userState = {},\n onChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const userperpage = userState?.pagination?.perpage\n let perpage = userperpage && perpages.includes(userperpage) ? userperpage : perpages[0]\n let page = userState?.pagination?.page ?? 1\n const state = {\n selected: userState?.selected ?? [],\n selectAll: userState?.selectAll ?? false,\n pagination: {\n page,\n perpage,\n from: page ? (perpage * (page - 1)) + 1 : 1,\n to: page ? perpage * page : perpage,\n },\n tab: tabs ? (userState?.tab ?? tabs[0].value ?? tabs[0].label.toLowerCase()) : \"\",\n search: userState?.search ?? \"\",\n sortable: userState?.sortable ?? {},\n filters: userState?.filters ?? {}\n }\n\n const update = (s: Partial<DatatableState>) => {\n onChange({ ...state, ...s })\n }\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useMemo } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\nexport type * from './types';\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n state: userState = {},\n onChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const userperpage = userState?.pagination?.perpage\n let perpage = userperpage && perpages.includes(userperpage) ? userperpage : perpages[0]\n let page = userState?.pagination?.page ?? 1\n const state = {\n selected: userState?.selected ?? [],\n selectAll: userState?.selectAll ?? false,\n pagination: {\n page,\n perpage,\n from: page ? (perpage * (page - 1)) + 1 : 1,\n to: page ? perpage * page : perpage,\n },\n tab: tabs ? (userState?.tab ?? tabs[0].value ?? tabs[0].label.toLowerCase()) : \"\",\n search: userState?.search ?? \"\",\n sortable: userState?.sortable ?? {},\n filters: userState?.filters ?? {}\n }\n\n const update = (s: Partial<DatatableState>) => {\n onChange({ ...state, ...s })\n }\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"default.base\",\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 {!hidePagination && <TablePagination\n disabled={_props.skeleton ? true : false}\n {...slotProps?.pagination}\n total={total || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n slotProps={{\n select: {\n size: \"small\",\n }\n }}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;AAcA;;AACI;AAEA;AACI;AAEA;;AAEI;AAEA;;;AAGK;;AAGL;;;AAIA;AAEA;AACA;AACI;AACA;AACI;;AAEJ;;AAGJ;AACI;;;AAQA;AACJ;AACA;AACA;;AAEJ;AACJ;AAEA;;;AA2BA;;AAEA;AACA;;;AAGI;;;AAGI;;AAEH;AACD;;;;;AAMJ;AACI;AACJ;AAEA;AASgB;AACA;AACA;AACA;AACH;AAMO;AACA;AACA;;AAyBA;AACI;AACH;AACJ;AAEG;AACJ;AAKpB;;"}
|
package/Divider/index.cjs
CHANGED
|
@@ -18,13 +18,13 @@ const Divider = React.forwardRef((_a, ref) => {
|
|
|
18
18
|
_p.size = size;
|
|
19
19
|
const p = core.useBreakpointProps(_p);
|
|
20
20
|
direction = (_b = p.direction) !== null && _b !== void 0 ? _b : "horizental";
|
|
21
|
-
color = (_c = p.color) !== null && _c !== void 0 ? _c : '
|
|
21
|
+
color = (_c = p.color) !== null && _c !== void 0 ? _c : 'default';
|
|
22
22
|
size = (_d = p.size) !== null && _d !== void 0 ? _d : 1;
|
|
23
23
|
let isHori = direction === 'horizental';
|
|
24
|
-
return (jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { baseClass: '
|
|
24
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({}, rest, { baseClass: 'default.divider', sxr: {
|
|
25
25
|
width: isHori ? "100%" : size,
|
|
26
26
|
height: isHori ? size : "100%",
|
|
27
|
-
bgcolor: color === '
|
|
27
|
+
bgcolor: color === 'default' ? `default.divider` : `${color}.divider`,
|
|
28
28
|
}, ref: ref, children: children })));
|
|
29
29
|
});
|
|
30
30
|
|
package/Divider/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\"use client\"\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, UseColorTemplateColor, 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<UseColorTemplateColor>;\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 ?? '
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\"use client\"\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, UseColorTemplateColor, 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<UseColorTemplateColor>;\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='default.divider'\n sxr={{\n width: isHori ? \"100%\" : size,\n height: isHori ? size : \"100%\",\n bgcolor: color === 'default' ? `default.divider` : `${color}.divider`,\n }}\n ref={ref}\n >{children}</Tag>\n )\n})\n\nexport default Divider\n\n"],"names":[],"mappings":";;;;;;;;AAWA;;AAAsE;;AAElE;AAAe;AACf;AAAW;AACX;AAAU;AACV;AACA;AACA;AACA;AAEA;;;;AASY;AACH;AAIb;;"}
|
package/Divider/index.js
CHANGED
|
@@ -16,13 +16,13 @@ const Divider = React.forwardRef((_a, ref) => {
|
|
|
16
16
|
_p.size = size;
|
|
17
17
|
const p = useBreakpointProps(_p);
|
|
18
18
|
direction = (_b = p.direction) !== null && _b !== void 0 ? _b : "horizental";
|
|
19
|
-
color = (_c = p.color) !== null && _c !== void 0 ? _c : '
|
|
19
|
+
color = (_c = p.color) !== null && _c !== void 0 ? _c : 'default';
|
|
20
20
|
size = (_d = p.size) !== null && _d !== void 0 ? _d : 1;
|
|
21
21
|
let isHori = direction === 'horizental';
|
|
22
|
-
return (jsx(Tag, Object.assign({}, rest, { baseClass: '
|
|
22
|
+
return (jsx(Tag, Object.assign({}, rest, { baseClass: 'default.divider', sxr: {
|
|
23
23
|
width: isHori ? "100%" : size,
|
|
24
24
|
height: isHori ? size : "100%",
|
|
25
|
-
bgcolor: color === '
|
|
25
|
+
bgcolor: color === 'default' ? `default.divider` : `${color}.divider`,
|
|
26
26
|
}, ref: ref, children: children })));
|
|
27
27
|
});
|
|
28
28
|
|
package/Divider/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\"use client\"\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, UseColorTemplateColor, 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<UseColorTemplateColor>;\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 ?? '
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Divider/index.tsx"],"sourcesContent":["\"use client\"\nimport React from 'react';\nimport { Tag, TagProps, TagComponentType, UseColorTemplateColor, 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<UseColorTemplateColor>;\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='default.divider'\n sxr={{\n width: isHori ? \"100%\" : size,\n height: isHori ? size : \"100%\",\n bgcolor: color === 'default' ? `default.divider` : `${color}.divider`,\n }}\n ref={ref}\n >{children}</Tag>\n )\n})\n\nexport default Divider\n\n"],"names":[],"mappings":";;;;;;AAWA;;AAAsE;;AAElE;AAAe;AACf;AAAW;AACX;AAAU;AACV;AACA;AACA;AACA;AAEA;;;;AASY;AACH;AAIb;;"}
|
package/Drawer/index.cjs
CHANGED
|
@@ -46,7 +46,7 @@ const Drawer = (_a) => {
|
|
|
46
46
|
}, children: jsxRuntime.jsx(index$1, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.clickOutside, { onClickOutside: onClickOutside || (() => { }), children: jsxRuntime.jsx(core.Tag, { sxr: {
|
|
47
47
|
width: isSide ? _size : "100%",
|
|
48
48
|
height: isSide ? "100%" : _size,
|
|
49
|
-
bgcolor: "
|
|
49
|
+
bgcolor: "default.base",
|
|
50
50
|
shadow: 20
|
|
51
51
|
}, baseClass: 'drawer-content', children: children }) })) })) })));
|
|
52
52
|
};
|
package/Drawer/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\"use client\";\nimport { Renderar, Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside, { ClickOutsideProps } from '../ClickOutside';\n\n\nexport type DrawerProps = Omit<LayerProps, \"transition\" | \"slotProps\"> & {\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n layer?: Partial<Omit<LayerProps, \"children\">>\n root?: TagProps<\"div\">;\n content?: TagProps<\"div\">;\n clickOutside?: Omit<ClickOutsideProps, \"children\" | \"onClickOutside\">;\n }\n}\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, placement, size, slotProps, onClickOutside, ...layerProps }: 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: 220,\n medium: 330,\n large: 440\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Layer\n {...layerProps}\n {...slotProps?.layer}\n transition={getVariant(placement)}\n\n >\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100vw\",\n height: \"100vh\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside\n {...slotProps?.clickOutside}\n onClickOutside={onClickOutside || (() => { })}\n >\n <Tag\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\"use client\";\nimport { Renderar, Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside, { ClickOutsideProps } from '../ClickOutside';\n\n\nexport type DrawerProps = Omit<LayerProps, \"transition\" | \"slotProps\"> & {\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n layer?: Partial<Omit<LayerProps, \"children\">>\n root?: TagProps<\"div\">;\n content?: TagProps<\"div\">;\n clickOutside?: Omit<ClickOutsideProps, \"children\" | \"onClickOutside\">;\n }\n}\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, placement, size, slotProps, onClickOutside, ...layerProps }: 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: 220,\n medium: 330,\n large: 440\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Layer\n {...layerProps}\n {...slotProps?.layer}\n transition={getVariant(placement)}\n\n >\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100vw\",\n height: \"100vh\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside\n {...slotProps?.clickOutside}\n onClickOutside={onClickOutside || (() => { })}\n >\n <Tag\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"default.base\",\n shadow: 20\n }}\n baseClass='drawer-content'\n >\n {children}\n </Tag>\n </ClickOutside>\n </Tag>\n </Layer>\n )\n}\n\n\nDrawer.open = (children: DrawerProps[\"children\"], props?: Omit<DrawerProps, \"children\" | \"open\">) => {\n const d = Renderar.render(Drawer as any, {\n open: true,\n ...props,\n children,\n onExited: () => {\n d.unrender()\n },\n onClickOutside: () => {\n if (props?.onClickOutside) {\n props.onClickOutside()\n } else {\n d.updateProps({ open: false })\n }\n }\n })\n\n return {\n open: () => {\n d.updateProps({ open: true })\n },\n close: () => {\n d.updateProps({ open: false })\n },\n }\n}\n\nDrawer.close = () => {\n Renderar.unrender(Drawer as any)\n}\n\nexport default Drawer"],"names":[],"mappings":";;;;;;;;;AAkBA;;AAEQ;AACI;AACJ;AACI;AACJ;AACI;AACJ;AACI;;AAEZ;AAEA;;AAAgB;;AAEZ;AAAe;AACf;AAAU;AACV;AAEA;AACA;;AAGA;AACI;AACA;AACA;;;AAKJ;AAWgB;AACA;AACA;;AAEA;;;;AAWQ;AACA;;AAU5B;AAGA;AACI;;AAMI;;;;;;;AAOA;;;;;;;;;AAWR;AAEA;AACI;AACJ;;"}
|
package/Drawer/index.js
CHANGED
|
@@ -44,7 +44,7 @@ const Drawer = (_a) => {
|
|
|
44
44
|
}, children: jsx(ClickOutside, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.clickOutside, { onClickOutside: onClickOutside || (() => { }), children: jsx(Tag, { sxr: {
|
|
45
45
|
width: isSide ? _size : "100%",
|
|
46
46
|
height: isSide ? "100%" : _size,
|
|
47
|
-
bgcolor: "
|
|
47
|
+
bgcolor: "default.base",
|
|
48
48
|
shadow: 20
|
|
49
49
|
}, baseClass: 'drawer-content', children: children }) })) })) })));
|
|
50
50
|
};
|
package/Drawer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\"use client\";\nimport { Renderar, Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside, { ClickOutsideProps } from '../ClickOutside';\n\n\nexport type DrawerProps = Omit<LayerProps, \"transition\" | \"slotProps\"> & {\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n layer?: Partial<Omit<LayerProps, \"children\">>\n root?: TagProps<\"div\">;\n content?: TagProps<\"div\">;\n clickOutside?: Omit<ClickOutsideProps, \"children\" | \"onClickOutside\">;\n }\n}\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, placement, size, slotProps, onClickOutside, ...layerProps }: 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: 220,\n medium: 330,\n large: 440\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Layer\n {...layerProps}\n {...slotProps?.layer}\n transition={getVariant(placement)}\n\n >\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100vw\",\n height: \"100vh\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside\n {...slotProps?.clickOutside}\n onClickOutside={onClickOutside || (() => { })}\n >\n <Tag\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Drawer/index.tsx"],"sourcesContent":["\"use client\";\nimport { Renderar, Tag, TagProps, useBreakpointProps, useBreakpointPropsType } from '@xanui/core';\nimport Layer, { LayerProps } from '../Layer';\nimport ClickOutside, { ClickOutsideProps } from '../ClickOutside';\n\n\nexport type DrawerProps = Omit<LayerProps, \"transition\" | \"slotProps\"> & {\n placement?: useBreakpointPropsType<\"left\" | \"right\" | \"bottom\" | \"top\">;\n size?: useBreakpointPropsType<number | \"small\" | \"medium\" | \"large\">;\n onClickOutside?: () => void;\n slotProps?: {\n layer?: Partial<Omit<LayerProps, \"children\">>\n root?: TagProps<\"div\">;\n content?: TagProps<\"div\">;\n clickOutside?: Omit<ClickOutsideProps, \"children\" | \"onClickOutside\">;\n }\n}\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, placement, size, slotProps, onClickOutside, ...layerProps }: 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: 220,\n medium: 330,\n large: 440\n }\n\n let _size = sizes[size as any] || size\n\n return (\n <Layer\n {...layerProps}\n {...slotProps?.layer}\n transition={getVariant(placement)}\n\n >\n <Tag\n {...slotProps?.root}\n baseClass='drawer'\n sxr={{\n width: \"100vw\",\n height: \"100vh\",\n display: \"flex\",\n direction: isSide ? \"row\" : \"column\" as any,\n justifyContent: placement === 'left' || placement === 'top' ? \"flex-start\" : \"flex-end\"\n }}\n >\n <ClickOutside\n {...slotProps?.clickOutside}\n onClickOutside={onClickOutside || (() => { })}\n >\n <Tag\n sxr={{\n width: isSide ? _size : \"100%\",\n height: isSide ? \"100%\" : _size,\n bgcolor: \"default.base\",\n shadow: 20\n }}\n baseClass='drawer-content'\n >\n {children}\n </Tag>\n </ClickOutside>\n </Tag>\n </Layer>\n )\n}\n\n\nDrawer.open = (children: DrawerProps[\"children\"], props?: Omit<DrawerProps, \"children\" | \"open\">) => {\n const d = Renderar.render(Drawer as any, {\n open: true,\n ...props,\n children,\n onExited: () => {\n d.unrender()\n },\n onClickOutside: () => {\n if (props?.onClickOutside) {\n props.onClickOutside()\n } else {\n d.updateProps({ open: false })\n }\n }\n })\n\n return {\n open: () => {\n d.updateProps({ open: true })\n },\n close: () => {\n d.updateProps({ open: false })\n },\n }\n}\n\nDrawer.close = () => {\n Renderar.unrender(Drawer as any)\n}\n\nexport default Drawer"],"names":[],"mappings":";;;;;;;AAkBA;;AAEQ;AACI;AACJ;AACI;AACJ;AACI;AACJ;AACI;;AAEZ;AAEA;;AAAgB;;AAEZ;AAAe;AACf;AAAU;AACV;AAEA;AACA;;AAGA;AACI;AACA;AACA;;;AAKJ;AAWgB;AACA;AACA;;AAEA;;;;AAWQ;AACA;;AAU5B;AAGA;AACI;;AAMI;;;;;;;AAOA;;;;;;;;;AAWR;AAEA;AACI;AACJ;;"}
|