@topthink/components 1.0.56 → 1.0.58
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/es/editor-widget-ebec8493.js +356 -0
- package/es/editor-widget-ebec8493.js.map +1 -0
- package/es/form-74ef0417.js +2 -0
- package/es/form-74ef0417.js.map +1 -0
- package/es/form-8925a750.js +231 -0
- package/es/form-8925a750.js.map +1 -0
- package/es/form-9c0e638a.js +230 -1
- package/es/form-9c0e638a.js.map +1 -1
- package/es/index-2b97b70d.js +2 -0
- package/es/index-2b97b70d.js.map +1 -0
- package/es/index-303e1845.js +560 -0
- package/es/index-303e1845.js.map +1 -0
- package/es/index-4f51cece.js +1304 -19
- package/es/index-4f51cece.js.map +1 -1
- package/es/index-563b11c6.js +67 -0
- package/es/index-563b11c6.js.map +1 -0
- package/es/index-6ae8237d.js +67 -0
- package/es/index-6ae8237d.js.map +1 -0
- package/es/index-7a7c06a9.js +40 -0
- package/es/index-7a7c06a9.js.map +1 -0
- package/es/index-9869b1c6.js +1350 -0
- package/es/index-9869b1c6.js.map +1 -0
- package/es/index-a214613e.js +40 -0
- package/es/index-a214613e.js.map +1 -0
- package/es/index-d964165a.js +529 -9
- package/es/index-d964165a.js.map +1 -1
- package/es/index.js +1 -1
- package/package.json +7 -5
- package/types/components/lazy/form/widgets/editor-widget.d.ts +5 -0
- package/types/index.d.ts +1 -1
- package/types/utils/is-record.d.ts +1 -0
- package/types/errors/unauthorized.d.ts +0 -4
- /package/types/components/lazy/{form.d.ts → form/index.d.ts} +0 -0
package/es/index-d964165a.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-d964165a.js","sources":["../src/components/lazy/table/use-selection.tsx","../src/images/plus_square.svg","../src/images/minus_square.svg","../src/components/lazy/table/search.tsx","../src/components/lazy/table/index.tsx"],"sourcesContent":["import { Columns, TableProps, TableRowSelection } from './index';\r\nimport { InputHTMLAttributes, Key, useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nconst Checkbox = function({\r\n indeterminate = false,\r\n ...props\r\n}: InputHTMLAttributes<HTMLInputElement> & { indeterminate?: boolean }) {\r\n\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n return <input\r\n ref={ref}\r\n {...props}\r\n className='form-check-input'\r\n type='checkbox'\r\n />;\r\n};\r\n\r\nexport default function useSelection<T = any>(\r\n rowSelection: TableRowSelection<T> | undefined,\r\n rowKey: Required<TableProps<T>>['rowKey'],\r\n data: T[]\r\n): [(columns: Columns<T>) => Columns<T>, (keys: Key[]) => void] {\r\n const [keys, setKeys] = useState(() => new Set(rowSelection?.selectedRowKeys || []));\r\n\r\n const getRowKey = (record: T) => {\r\n if (typeof rowKey === 'string') {\r\n // @ts-ignore\r\n return record[rowKey];\r\n } else {\r\n return rowKey(record);\r\n }\r\n };\r\n\r\n const getRecordByKey = (key: Key) => {\r\n return data.find((record) => {\r\n return getRowKey(record) === key;\r\n })!;\r\n };\r\n\r\n const setSelectedKeys = useCallback((keys: Set<Key> | Key[]) => {\r\n if (!(keys instanceof Set)) {\r\n keys = new Set(keys);\r\n }\r\n\r\n setKeys(keys);\r\n const changedKeys = Array.from(keys);\r\n\r\n const records = changedKeys.map(function(key) {\r\n return getRecordByKey(key);\r\n });\r\n\r\n if (rowSelection?.onChange) {\r\n rowSelection?.onChange(changedKeys, records);\r\n }\r\n }, [getRecordByKey]);\r\n\r\n const transformColumns = useCallback((columns: Columns): Columns => {\r\n if (!rowSelection) {\r\n return columns;\r\n }\r\n\r\n const recordKeys = data.map(getRowKey);\r\n\r\n const checkedCurrentAll = recordKeys.every(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n const checkedCurrentSome = recordKeys.some(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n return [{\r\n key: 'selection',\r\n title: <Checkbox\r\n checked={checkedCurrentAll && data.length > 0}\r\n indeterminate={!checkedCurrentAll && checkedCurrentSome}\r\n onChange={() => {\r\n if (checkedCurrentAll) {\r\n recordKeys.forEach(function(key) {\r\n keys.delete(key);\r\n });\r\n } else {\r\n recordKeys.forEach(function(key) {\r\n keys.add(key);\r\n });\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />,\r\n width: 30,\r\n align: 'center',\r\n render({ record }) {\r\n const key = getRowKey(record);\r\n const checked = keys.has(key);\r\n return <Checkbox\r\n checked={checked}\r\n onChange={() => {\r\n if (checked) {\r\n keys.delete(key);\r\n } else {\r\n keys.add(key);\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />;\r\n }\r\n }, ...columns];\r\n }, [data, rowSelection, keys]);\r\n\r\n return [transformColumns, setSelectedKeys];\r\n}\r\n","var img = \"data:image/svg+xml,%3csvg t='1681378941268' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='11434' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m258.432-123.008c22.710857 0 36.425143-15.853714 36.425143-40.704v-126.427429h134.144c24.009143 0 40.722286-12.873143 40.722286-35.584 0-23.131429-15.853714-36.425143-40.722286-36.425142H548.205714v-134.582858c0-24.850286-13.714286-40.704-36.425143-40.704s-35.565714 16.713143-35.565714 40.722286v134.582857H342.491429c-24.850286 0-41.142857 13.275429-41.142858 36.406857 0 22.710857 17.152 35.584 41.142858 35.584h133.723428v126.427429c0 23.990857 12.854857 40.704 35.565714 40.704z' p-id='11435'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","var img = \"data:image/svg+xml,%3csvg t='1681378996359' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='12821' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m86.582858-289.718857h344.576c23.990857 0 40.704-12.854857 40.704-35.565714 0-23.149714-15.433143-36.425143-40.704-36.425143H339.931429c-24.868571 0-40.722286 13.275429-40.722286 36.425143 0 22.710857 16.713143 35.565714 40.722286 35.565714z' p-id='12822'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\r\nimport useDebounce from '../../../hooks/use-debounce';\r\nimport styled from 'styled-components';\r\nimport Button from '../../button';\r\nimport Form from '../form';\r\nimport { FormControl } from 'react-bootstrap';\r\nimport type { Columns } from './index';\r\nimport { Schema, UiSchema } from '@topthink/json-form';\r\n\r\nexport type SearchOptions = {\r\n fields: string[];\r\n extraFields?: Record<string, string>;\r\n ui?: Record<string, UiSchema>;\r\n order?: string[];\r\n};\r\n\r\ninterface SearchProps {\r\n data: Record<string, string>;\r\n options: SearchOptions;\r\n columns: Columns;\r\n onSearch: (params: Record<string, any>) => void;\r\n}\r\n\r\nexport default function Search({ data, options, columns, onSearch }: SearchProps) {\r\n\r\n const [key, setKey] = useState(0);\r\n\r\n const uiSchema: UiSchema = {\r\n 'ui:col': 10,\r\n 'ui:order': options.order\r\n };\r\n\r\n const properties: Schema['properties'] = {};\r\n\r\n options.fields.forEach(field => {\r\n const column = columns.find(column => column.dataIndex === field);\r\n\r\n if (column) {\r\n const title = column.title;\r\n if (typeof title === 'string') {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n\r\n if (column.valueEnum) {\r\n const valueEnum = column.valueEnum;\r\n\r\n uiSchema[field]['ui:placeholder'] = '请选择';\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n enum: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [key];\r\n }\r\n return [];\r\n }),\r\n enumNames: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [text];\r\n }\r\n return [];\r\n }),\r\n };\r\n }\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n }\r\n }\r\n });\r\n\r\n if (options.extraFields) {\r\n Object.entries(options.extraFields).forEach(([field, title]) => {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n });\r\n }\r\n\r\n const schema: Schema = {\r\n type: 'object',\r\n properties\r\n };\r\n\r\n const onSubmit = useCallback(({ formData }) => {\r\n onSearch(formData);\r\n }, [onSearch]);\r\n\r\n const onReset = useCallback(() => {\r\n setKey(key => key + 1);\r\n onSearch({});\r\n }, []);\r\n\r\n return <Container key={key}>\r\n <Form\r\n formContext={{ layout: 'horizontal' }}\r\n schema={schema}\r\n uiSchema={uiSchema}\r\n onSubmit={onSubmit}\r\n formData={data}\r\n >\r\n <div className='col-2 ms-auto mt-auto'>\r\n <div className='justify-content-end d-flex gap-2 '>\r\n <Button className={'px-4'} onClick={onReset} variant='secondary'>重置</Button>\r\n <Button className={'px-4'} type='submit' variant='primary'>查询</Button>\r\n </div>\r\n </div>\r\n </Form>\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div`\r\n margin-bottom: 1rem;\r\n`;\r\n\r\ninterface Props {\r\n keyword: string;\r\n onKeywordChange: (value: string) => void;\r\n}\r\n\r\nexport function LightSearch({ keyword, onKeywordChange }: Props) {\r\n\r\n const [value, setValue] = useState(keyword);\r\n\r\n const debouncedOnKeywordChange = useDebounce(onKeywordChange, 500);\r\n\r\n useEffect(() => {\r\n setValue(keyword);\r\n }, [keyword]);\r\n\r\n const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n setValue(e.target.value);\r\n debouncedOnKeywordChange(e.target.value);\r\n }, [debouncedOnKeywordChange, setValue]);\r\n\r\n return <FormControl value={value} onChange={onChange} type={'search'} placeholder={'Search...'} />;\r\n}\r\n","import RcTable, { TableProps as RcTableProps } from 'rc-table';\r\nimport { unstable_batchedUpdates } from 'react-dom';\r\nimport { ColumnType as BsColumnType, RenderedCell, RenderExpandIconProps } from 'rc-table/es/interface';\r\nimport { Table as BsTable } from 'react-bootstrap';\r\nimport { useUrlSearchParams } from 'use-url-search-params';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n Key,\r\n memo,\r\n PropsWithChildren,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport Pagination from '../../pagination';\r\nimport styled from 'styled-components';\r\nimport request from '../../../request';\r\nimport Card from '../../card';\r\nimport Loader from '../../loader';\r\nimport Space from '../../space';\r\nimport useSelection from './use-selection';\r\nimport { PaginationType } from '../../../utils/types';\r\nimport { ReactComponent as PlusIcon } from '../../../images/plus_square.svg';\r\nimport { ReactComponent as MinusIcon } from '../../../images/minus_square.svg';\r\nimport useControllableState from '../../../hooks/use-controllable-state';\r\nimport Search, { LightSearch, SearchOptions } from './search';\r\nimport NumberFormat from '../../number-format';\r\nimport { TableContext } from './context';\r\n\r\nexport interface TableType {\r\n reload: () => void;\r\n}\r\n\r\ninterface ColumnType<RecordType> extends BsColumnType<RecordType> {\r\n render?: (data: {\r\n value: any,\r\n record: RecordType,\r\n index: number,\r\n action: TableType\r\n }) => ReactNode | RenderedCell<RecordType>;\r\n valueType?: 'currency';\r\n valueEnum?: Record<number | string, {\r\n text: ReactNode;\r\n status?: string;\r\n }>;\r\n}\r\n\r\nexport type Columns<RecordType = any> = ColumnType<RecordType>[]\r\n\r\nconst CustomTHead = styled.thead`\r\n th {\r\n padding: 0.5rem 0.5rem;\r\n border-bottom-width: 1px;\r\n border-color: var(--bs-border-color);\r\n }\r\n`;\r\n\r\nconst components: RcTableProps['components'] = {\r\n table: (props) => {\r\n return <BsTable {...props} className='mb-0 align-middle table-hover' />;\r\n },\r\n header: {\r\n wrapper(props) {\r\n return <CustomTHead {...props} />;\r\n }\r\n }\r\n};\r\n\r\nconst ExpandIconContainer = styled.a`\r\n cursor: pointer;\r\n width: 28px;\r\n height: 28px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst ExpandIcon = function <RecordType>({\r\n record,\r\n expanded,\r\n expandable,\r\n onExpand\r\n}: RenderExpandIconProps<RecordType>) {\r\n if (!expandable) return <ExpandIconContainer />;\r\n return <ExpandIconContainer onClick={e => onExpand(record, e)}>\r\n {expanded ? <MinusIcon /> : <PlusIcon />}\r\n </ExpandIconContainer>;\r\n};\r\n\r\nconst CustomPagination = styled(Pagination)`\r\n margin-bottom: 0;\r\n justify-content: flex-end;\r\n margin-top: 1rem;\r\n`;\r\n\r\nfunction isPagination<T>(data: any): data is PaginationType<T> {\r\n return 'current_page' in data;\r\n}\r\n\r\nexport interface TableRowSelection<RecordType = any> {\r\n selectedRowKeys?: Key[];\r\n onChange?: (selectedRowKeys: Key[], selectedRows: RecordType[]) => void;\r\n}\r\n\r\nexport interface TableProps<RecordType = any> extends Omit<RcTableProps<RecordType>, 'children' | 'columns'> {\r\n source: string | ((params: Params) => Promise<RecordType>);\r\n paginate?: boolean;\r\n columns: Columns<RecordType>;\r\n toolBarRender?: ((action: TableType) => ReactNode) | false;\r\n search?: boolean | SearchOptions;\r\n rowSelection?: TableRowSelection<RecordType>;\r\n card?: boolean;\r\n sync?: boolean;\r\n}\r\n\r\ntype Params = {\r\n page?: number;\r\n sortField?: string;\r\n sortOrder?: number;\r\n q?: string;\r\n [key: string]: any;\r\n};\r\n\r\nexport type CustomTableType<T = any> = ForwardRefExoticComponent<PropsWithoutRef<PropsWithChildren<TableProps<T>>>\r\n & RefAttributes<TableType>>\r\n\r\nconst Table: CustomTableType = forwardRef((\r\n {\r\n source,\r\n rowKey = 'id',\r\n paginate = true,\r\n toolBarRender,\r\n columns = [],\r\n search,\r\n rowSelection,\r\n card = true,\r\n expandable = {},\r\n sync = false,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [pagination, setPagination] = useState(paginate ? { total: 0, current: 1, pageSize: 10 } : null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [params, setParams] = useUrlSearchParams({});\r\n\r\n //多选\r\n const [transformColumns, setSelectionRowKeys] = useSelection(rowSelection, rowKey, data);\r\n\r\n const [filters, setFilters] = useControllableState<Record<string, string>>({\r\n value: sync ? (params as Record<string, string> || {}) : undefined,\r\n defaultValue: {},\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams(value);\r\n }\r\n }\r\n });\r\n\r\n const [keyword, setKeyword] = useControllableState<string>({\r\n value: sync ? (params.q as string || '') : undefined,\r\n defaultValue: '',\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ q: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const [page, setPage] = useControllableState<number>({\r\n value: sync ? (params.page as number || 1) : undefined,\r\n defaultValue: 1,\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ page: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const fetchData = useCallback(async () => {\r\n setLoading(true);\r\n setSelectionRowKeys([]);\r\n try {\r\n let result;\r\n const params: Params = {\r\n ...filters,\r\n q: keyword,\r\n page: page > 1 ? page : undefined,\r\n };\r\n\r\n if (typeof source === 'string') {\r\n result = await request({\r\n url: source,\r\n params,\r\n });\r\n } else {\r\n result = await source(params);\r\n }\r\n\r\n if (paginate && isPagination<any>(result)) {\r\n setPagination({\r\n total: result.total,\r\n current: result.current_page,\r\n pageSize: result.per_page\r\n });\r\n result = result.data;\r\n }\r\n setData(result);\r\n } catch (e) {\r\n\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [source, setData, keyword, page, filters]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, [keyword, page, filters]);\r\n\r\n const action = useRef<TableType>({\r\n reload: fetchData\r\n });\r\n\r\n useEffect(() => {\r\n action.current = {\r\n reload: fetchData\r\n };\r\n }, [fetchData]);\r\n\r\n useImperativeHandle(ref, () => action.current);\r\n\r\n const customColumns = useMemo(() => {\r\n return transformColumns(columns).map(({ render, valueType, valueEnum, ...column }) => {\r\n const customColumn: BsColumnType<any> = { ...column };\r\n\r\n if (render) {\r\n customColumn.render = (value, record, index) => {\r\n return render({ value, record, index, action: action.current });\r\n };\r\n } else if (valueType === 'currency') {\r\n customColumn.render = (value) => {\r\n return <NumberFormat value={value} />;\r\n };\r\n } else if (valueEnum) {\r\n customColumn.render = (value) => {\r\n if (valueEnum[value]) {\r\n if (valueEnum[value].status) {\r\n return <span className={`text-${valueEnum[value].status}`}>{valueEnum[value].text}</span>;\r\n }\r\n return valueEnum[value].text;\r\n }\r\n return value;\r\n };\r\n }\r\n return customColumn;\r\n });\r\n }, [columns, transformColumns, action]);\r\n\r\n const children = <>\r\n <Loader loading={loading} />\r\n {typeof search === 'object' && <Search\r\n data={filters}\r\n columns={columns}\r\n options={search}\r\n onSearch={(data) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setFilters(data);\r\n });\r\n }}\r\n />}\r\n {toolBarRender !== false && <Header>\r\n <LeftTools size={12}>\r\n {toolBarRender && toolBarRender(action.current)}\r\n </LeftTools>\r\n <RightTools size={12}>\r\n {search === true && <LightSearch keyword={keyword} onKeywordChange={(value) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setKeyword(value);\r\n });\r\n }} />}\r\n <Action onClick={action.current.reload}><i className='bi bi-arrow-repeat' /></Action>\r\n </RightTools>\r\n </Header>}\r\n <TableContext.Provider value={true}>\r\n <RcTable {...props} expandable={{ expandIcon: ExpandIcon, ...expandable }} rowKey={rowKey} columns={customColumns} components={components} data={data} />\r\n </TableContext.Provider>\r\n {pagination && <CustomPagination {...pagination} onChange={setPage} />}\r\n </>;\r\n\r\n if (card) {\r\n return <Card>\r\n {children}\r\n </Card>;\r\n }\r\n return children;\r\n});\r\n\r\nexport default memo(Table) as CustomTableType;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 1rem;\r\n height: 48px;\r\n border-bottom: 2px solid #212529;\r\n`;\r\n\r\nconst RightTools = styled(Space)`\r\n\r\n`;\r\nconst LeftTools = styled(Space)`\r\n\r\n`;\r\n\r\nconst Action = styled.span`\r\n cursor: pointer;\r\n font-size: 20px;\r\n line-height: 1;\r\n\r\n &:hover {\r\n color: var(--bs-primary);\r\n }\r\n`;\r\n"],"names":["Checkbox","_ref","indeterminate","props","ref","useRef","useEffect","current","_jsx","className","type","_path","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgPlusSquare","React","createElement","viewBox","xmlns","width","height","fill","d","SvgMinusSquare","Search","data","options","columns","onSearch","setKey","useState","uiSchema","order","properties","fields","forEach","field","column","find","dataIndex","title","ui","valueEnum","enum","keys","flatMap","text","enumNames","extraFields","entries","_ref2","schema","onSubmit","useCallback","_ref3","formData","onReset","Container","children","Form","formContext","layout","_jsxs","Button","onClick","variant","styled","div","LightSearch","_ref4","keyword","onKeywordChange","value","setValue","debouncedOnKeywordChange","useDebounce","onChange","e","FormControl","placeholder","CustomTHead","thead","components","table","BsTable","header","wrapper","ExpandIconContainer","a","ExpandIcon","record","expanded","expandable","onExpand","MinusIcon","PlusIcon","CustomPagination","Pagination","Table","forwardRef","rowKey","paginate","toolBarRender","search","rowSelection","card","sync","setData","pagination","setPagination","total","pageSize","loading","setLoading","params","setParams","useUrlSearchParams","transformColumns","setSelectionRowKeys","setKeys","Set","selectedRowKeys","getRowKey","getRecordByKey","setSelectedKeys","changedKeys","Array","from","records","map","recordKeys","checkedCurrentAll","every","has","checkedCurrentSome","some","checked","delete","add","align","render","useSelection","filters","setFilters","useControllableState","undefined","defaultValue","setKeyword","q","page","setPage","fetchData","async","result","request","url","isPagination","current_page","per_page","action","reload","useImperativeHandle","customColumns","useMemo","valueType","customColumn","index","NumberFormat","status","_Fragment","Loader","unstable_batchedUpdates","Header","LeftTools","size","RightTools","Action","TableContext","Provider","RcTable","expandIcon","Card","memo","Space","span"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-d964165a.js","sources":["../src/components/lazy/table/use-selection.tsx","../src/images/plus_square.svg","../src/images/minus_square.svg","../src/components/lazy/table/search.tsx","../src/components/lazy/table/index.tsx"],"sourcesContent":["import { Columns, TableProps, TableRowSelection } from './index';\r\nimport { InputHTMLAttributes, Key, useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nconst Checkbox = function({\r\n indeterminate = false,\r\n ...props\r\n}: InputHTMLAttributes<HTMLInputElement> & { indeterminate?: boolean }) {\r\n\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n return <input\r\n ref={ref}\r\n {...props}\r\n className='form-check-input'\r\n type='checkbox'\r\n />;\r\n};\r\n\r\nexport default function useSelection<T = any>(\r\n rowSelection: TableRowSelection<T> | undefined,\r\n rowKey: Required<TableProps<T>>['rowKey'],\r\n data: T[]\r\n): [(columns: Columns<T>) => Columns<T>, (keys: Key[]) => void] {\r\n const [keys, setKeys] = useState(() => new Set(rowSelection?.selectedRowKeys || []));\r\n\r\n const getRowKey = (record: T) => {\r\n if (typeof rowKey === 'string') {\r\n // @ts-ignore\r\n return record[rowKey];\r\n } else {\r\n return rowKey(record);\r\n }\r\n };\r\n\r\n const getRecordByKey = (key: Key) => {\r\n return data.find((record) => {\r\n return getRowKey(record) === key;\r\n })!;\r\n };\r\n\r\n const setSelectedKeys = useCallback((keys: Set<Key> | Key[]) => {\r\n if (!(keys instanceof Set)) {\r\n keys = new Set(keys);\r\n }\r\n\r\n setKeys(keys);\r\n const changedKeys = Array.from(keys);\r\n\r\n const records = changedKeys.map(function(key) {\r\n return getRecordByKey(key);\r\n });\r\n\r\n if (rowSelection?.onChange) {\r\n rowSelection?.onChange(changedKeys, records);\r\n }\r\n }, [getRecordByKey]);\r\n\r\n const transformColumns = useCallback((columns: Columns): Columns => {\r\n if (!rowSelection) {\r\n return columns;\r\n }\r\n\r\n const recordKeys = data.map(getRowKey);\r\n\r\n const checkedCurrentAll = recordKeys.every(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n const checkedCurrentSome = recordKeys.some(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n return [{\r\n key: 'selection',\r\n title: <Checkbox\r\n checked={checkedCurrentAll && data.length > 0}\r\n indeterminate={!checkedCurrentAll && checkedCurrentSome}\r\n onChange={() => {\r\n if (checkedCurrentAll) {\r\n recordKeys.forEach(function(key) {\r\n keys.delete(key);\r\n });\r\n } else {\r\n recordKeys.forEach(function(key) {\r\n keys.add(key);\r\n });\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />,\r\n width: 30,\r\n align: 'center',\r\n render({ record }) {\r\n const key = getRowKey(record);\r\n const checked = keys.has(key);\r\n return <Checkbox\r\n checked={checked}\r\n onChange={() => {\r\n if (checked) {\r\n keys.delete(key);\r\n } else {\r\n keys.add(key);\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />;\r\n }\r\n }, ...columns];\r\n }, [data, rowSelection, keys]);\r\n\r\n return [transformColumns, setSelectedKeys];\r\n}\r\n","var img = \"data:image/svg+xml,%3csvg t='1681378941268' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='11434' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m258.432-123.008c22.710857 0 36.425143-15.853714 36.425143-40.704v-126.427429h134.144c24.009143 0 40.722286-12.873143 40.722286-35.584 0-23.131429-15.853714-36.425143-40.722286-36.425142H548.205714v-134.582858c0-24.850286-13.714286-40.704-36.425143-40.704s-35.565714 16.713143-35.565714 40.722286v134.582857H342.491429c-24.850286 0-41.142857 13.275429-41.142858 36.406857 0 22.710857 17.152 35.584 41.142858 35.584h133.723428v126.427429c0 23.990857 12.854857 40.704 35.565714 40.704z' p-id='11435'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","var img = \"data:image/svg+xml,%3csvg t='1681378996359' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='12821' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m86.582858-289.718857h344.576c23.990857 0 40.704-12.854857 40.704-35.565714 0-23.149714-15.433143-36.425143-40.704-36.425143H339.931429c-24.868571 0-40.722286 13.275429-40.722286 36.425143 0 22.710857 16.713143 35.565714 40.722286 35.565714z' p-id='12822'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\r\nimport useDebounce from '../../../hooks/use-debounce';\r\nimport styled from 'styled-components';\r\nimport Button from '../../button';\r\nimport Form from '../form';\r\nimport { FormControl } from 'react-bootstrap';\r\nimport type { Columns } from './index';\r\nimport { Schema, UiSchema } from '@topthink/json-form';\r\n\r\nexport type SearchOptions = {\r\n fields: string[];\r\n extraFields?: Record<string, string>;\r\n ui?: Record<string, UiSchema>;\r\n order?: string[];\r\n};\r\n\r\ninterface SearchProps {\r\n data: Record<string, string>;\r\n options: SearchOptions;\r\n columns: Columns;\r\n onSearch: (params: Record<string, any>) => void;\r\n}\r\n\r\nexport default function Search({ data, options, columns, onSearch }: SearchProps) {\r\n\r\n const [key, setKey] = useState(0);\r\n\r\n const uiSchema: UiSchema = {\r\n 'ui:col': 10,\r\n 'ui:order': options.order\r\n };\r\n\r\n const properties: Schema['properties'] = {};\r\n\r\n options.fields.forEach(field => {\r\n const column = columns.find(column => column.dataIndex === field);\r\n\r\n if (column) {\r\n const title = column.title;\r\n if (typeof title === 'string') {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n\r\n if (column.valueEnum) {\r\n const valueEnum = column.valueEnum;\r\n\r\n uiSchema[field]['ui:placeholder'] = '请选择';\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n enum: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [key];\r\n }\r\n return [];\r\n }),\r\n enumNames: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [text];\r\n }\r\n return [];\r\n }),\r\n };\r\n }\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n }\r\n }\r\n });\r\n\r\n if (options.extraFields) {\r\n Object.entries(options.extraFields).forEach(([field, title]) => {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n });\r\n }\r\n\r\n const schema: Schema = {\r\n type: 'object',\r\n properties\r\n };\r\n\r\n const onSubmit = useCallback(({ formData }) => {\r\n onSearch(formData);\r\n }, [onSearch]);\r\n\r\n const onReset = useCallback(() => {\r\n setKey(key => key + 1);\r\n onSearch({});\r\n }, []);\r\n\r\n return <Container key={key}>\r\n <Form\r\n formContext={{ layout: 'horizontal' }}\r\n schema={schema}\r\n uiSchema={uiSchema}\r\n onSubmit={onSubmit}\r\n formData={data}\r\n >\r\n <div className='col-2 ms-auto mt-auto'>\r\n <div className='justify-content-end d-flex gap-2 '>\r\n <Button className={'px-4'} onClick={onReset} variant='secondary'>重置</Button>\r\n <Button className={'px-4'} type='submit' variant='primary'>查询</Button>\r\n </div>\r\n </div>\r\n </Form>\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div`\r\n margin-bottom: 1rem;\r\n`;\r\n\r\ninterface Props {\r\n keyword: string;\r\n onKeywordChange: (value: string) => void;\r\n}\r\n\r\nexport function LightSearch({ keyword, onKeywordChange }: Props) {\r\n\r\n const [value, setValue] = useState(keyword);\r\n\r\n const debouncedOnKeywordChange = useDebounce(onKeywordChange, 500);\r\n\r\n useEffect(() => {\r\n setValue(keyword);\r\n }, [keyword]);\r\n\r\n const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n setValue(e.target.value);\r\n debouncedOnKeywordChange(e.target.value);\r\n }, [debouncedOnKeywordChange, setValue]);\r\n\r\n return <FormControl value={value} onChange={onChange} type={'search'} placeholder={'Search...'} />;\r\n}\r\n","import RcTable, { TableProps as RcTableProps } from 'rc-table';\r\nimport { unstable_batchedUpdates } from 'react-dom';\r\nimport { ColumnType as BsColumnType, RenderedCell, RenderExpandIconProps } from 'rc-table/es/interface';\r\nimport { Table as BsTable } from 'react-bootstrap';\r\nimport { useUrlSearchParams } from 'use-url-search-params';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n Key,\r\n memo,\r\n PropsWithChildren,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport Pagination from '../../pagination';\r\nimport styled from 'styled-components';\r\nimport request from '../../../request';\r\nimport Card from '../../card';\r\nimport Loader from '../../loader';\r\nimport Space from '../../space';\r\nimport useSelection from './use-selection';\r\nimport { PaginationType } from '../../../utils/types';\r\nimport { ReactComponent as PlusIcon } from '../../../images/plus_square.svg';\r\nimport { ReactComponent as MinusIcon } from '../../../images/minus_square.svg';\r\nimport useControllableState from '../../../hooks/use-controllable-state';\r\nimport Search, { LightSearch, SearchOptions } from './search';\r\nimport NumberFormat from '../../number-format';\r\nimport { TableContext } from './context';\r\n\r\nexport interface TableType {\r\n reload: () => void;\r\n}\r\n\r\ninterface ColumnType<RecordType> extends BsColumnType<RecordType> {\r\n render?: (data: {\r\n value: any,\r\n record: RecordType,\r\n index: number,\r\n action: TableType\r\n }) => ReactNode | RenderedCell<RecordType>;\r\n valueType?: 'currency';\r\n valueEnum?: Record<number | string, {\r\n text: ReactNode;\r\n status?: string;\r\n }>;\r\n}\r\n\r\nexport type Columns<RecordType = any> = ColumnType<RecordType>[]\r\n\r\nconst CustomTHead = styled.thead`\r\n th {\r\n padding: 0.5rem 0.5rem;\r\n border-bottom-width: 1px;\r\n border-color: var(--bs-border-color);\r\n }\r\n`;\r\n\r\nconst components: RcTableProps['components'] = {\r\n table: (props) => {\r\n return <BsTable {...props} className='mb-0 align-middle table-hover' />;\r\n },\r\n header: {\r\n wrapper(props) {\r\n return <CustomTHead {...props} />;\r\n }\r\n }\r\n};\r\n\r\nconst ExpandIconContainer = styled.a`\r\n cursor: pointer;\r\n width: 28px;\r\n height: 28px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst ExpandIcon = function <RecordType>({\r\n record,\r\n expanded,\r\n expandable,\r\n onExpand\r\n}: RenderExpandIconProps<RecordType>) {\r\n if (!expandable) return <ExpandIconContainer />;\r\n return <ExpandIconContainer onClick={e => onExpand(record, e)}>\r\n {expanded ? <MinusIcon /> : <PlusIcon />}\r\n </ExpandIconContainer>;\r\n};\r\n\r\nconst CustomPagination = styled(Pagination)`\r\n margin-bottom: 0;\r\n justify-content: flex-end;\r\n margin-top: 1rem;\r\n`;\r\n\r\nfunction isPagination<T>(data: any): data is PaginationType<T> {\r\n return 'current_page' in data;\r\n}\r\n\r\nexport interface TableRowSelection<RecordType = any> {\r\n selectedRowKeys?: Key[];\r\n onChange?: (selectedRowKeys: Key[], selectedRows: RecordType[]) => void;\r\n}\r\n\r\nexport interface TableProps<RecordType = any> extends Omit<RcTableProps<RecordType>, 'children' | 'columns'> {\r\n source: string | ((params: Params) => Promise<RecordType>);\r\n paginate?: boolean;\r\n columns: Columns<RecordType>;\r\n toolBarRender?: ((action: TableType) => ReactNode) | false;\r\n search?: boolean | SearchOptions;\r\n rowSelection?: TableRowSelection<RecordType>;\r\n card?: boolean;\r\n sync?: boolean;\r\n}\r\n\r\ntype Params = {\r\n page?: number;\r\n sortField?: string;\r\n sortOrder?: number;\r\n q?: string;\r\n [key: string]: any;\r\n};\r\n\r\nexport type CustomTableType<T = any> = ForwardRefExoticComponent<PropsWithoutRef<PropsWithChildren<TableProps<T>>>\r\n & RefAttributes<TableType>>\r\n\r\nconst Table: CustomTableType = forwardRef((\r\n {\r\n source,\r\n rowKey = 'id',\r\n paginate = true,\r\n toolBarRender,\r\n columns = [],\r\n search,\r\n rowSelection,\r\n card = true,\r\n expandable = {},\r\n sync = false,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [pagination, setPagination] = useState(paginate ? { total: 0, current: 1, pageSize: 10 } : null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [params, setParams] = useUrlSearchParams({});\r\n\r\n //多选\r\n const [transformColumns, setSelectionRowKeys] = useSelection(rowSelection, rowKey, data);\r\n\r\n const [filters, setFilters] = useControllableState<Record<string, string>>({\r\n value: sync ? (params as Record<string, string> || {}) : undefined,\r\n defaultValue: {},\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams(value);\r\n }\r\n }\r\n });\r\n\r\n const [keyword, setKeyword] = useControllableState<string>({\r\n value: sync ? (params.q as string || '') : undefined,\r\n defaultValue: '',\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ q: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const [page, setPage] = useControllableState<number>({\r\n value: sync ? (params.page as number || 1) : undefined,\r\n defaultValue: 1,\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ page: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const fetchData = useCallback(async () => {\r\n setLoading(true);\r\n setSelectionRowKeys([]);\r\n try {\r\n let result;\r\n const params: Params = {\r\n ...filters,\r\n q: keyword,\r\n page: page > 1 ? page : undefined,\r\n };\r\n\r\n if (typeof source === 'string') {\r\n result = await request({\r\n url: source,\r\n params,\r\n });\r\n } else {\r\n result = await source(params);\r\n }\r\n\r\n if (paginate && isPagination<any>(result)) {\r\n setPagination({\r\n total: result.total,\r\n current: result.current_page,\r\n pageSize: result.per_page\r\n });\r\n result = result.data;\r\n }\r\n setData(result);\r\n } catch (e) {\r\n\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [source, setData, keyword, page, filters]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, [keyword, page, filters]);\r\n\r\n const action = useRef<TableType>({\r\n reload: fetchData\r\n });\r\n\r\n useEffect(() => {\r\n action.current = {\r\n reload: fetchData\r\n };\r\n }, [fetchData]);\r\n\r\n useImperativeHandle(ref, () => action.current);\r\n\r\n const customColumns = useMemo(() => {\r\n return transformColumns(columns).map(({ render, valueType, valueEnum, ...column }) => {\r\n const customColumn: BsColumnType<any> = { ...column };\r\n\r\n if (render) {\r\n customColumn.render = (value, record, index) => {\r\n return render({ value, record, index, action: action.current });\r\n };\r\n } else if (valueType === 'currency') {\r\n customColumn.render = (value) => {\r\n return <NumberFormat value={value} />;\r\n };\r\n } else if (valueEnum) {\r\n customColumn.render = (value) => {\r\n if (valueEnum[value]) {\r\n if (valueEnum[value].status) {\r\n return <span className={`text-${valueEnum[value].status}`}>{valueEnum[value].text}</span>;\r\n }\r\n return valueEnum[value].text;\r\n }\r\n return value;\r\n };\r\n }\r\n return customColumn;\r\n });\r\n }, [columns, transformColumns, action]);\r\n\r\n const children = <>\r\n <Loader loading={loading} />\r\n {typeof search === 'object' && <Search\r\n data={filters}\r\n columns={columns}\r\n options={search}\r\n onSearch={(data) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setFilters(data);\r\n });\r\n }}\r\n />}\r\n {toolBarRender !== false && <Header>\r\n <LeftTools size={12}>\r\n {toolBarRender && toolBarRender(action.current)}\r\n </LeftTools>\r\n <RightTools size={12}>\r\n {search === true && <LightSearch keyword={keyword} onKeywordChange={(value) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setKeyword(value);\r\n });\r\n }} />}\r\n <Action onClick={action.current.reload}><i className='bi bi-arrow-repeat' /></Action>\r\n </RightTools>\r\n </Header>}\r\n <TableContext.Provider value={true}>\r\n <RcTable {...props} expandable={{ expandIcon: ExpandIcon, ...expandable }} rowKey={rowKey} columns={customColumns} components={components} data={data} />\r\n </TableContext.Provider>\r\n {pagination && <CustomPagination {...pagination} onChange={setPage} />}\r\n </>;\r\n\r\n if (card) {\r\n return <Card>\r\n {children}\r\n </Card>;\r\n }\r\n return children;\r\n});\r\n\r\nexport default memo(Table) as CustomTableType;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 1rem;\r\n height: 48px;\r\n border-bottom: 2px solid #212529;\r\n`;\r\n\r\nconst RightTools = styled(Space)`\r\n\r\n`;\r\nconst LeftTools = styled(Space)`\r\n\r\n`;\r\n\r\nconst Action = styled.span`\r\n cursor: pointer;\r\n font-size: 20px;\r\n line-height: 1;\r\n\r\n &:hover {\r\n color: var(--bs-primary);\r\n }\r\n`;\r\n"],"names":["Checkbox","indeterminate","props","ref","useRef","useEffect","current","_jsx","className","type","useSelection","rowSelection","rowKey","data","keys","setKeys","useState","Set","selectedRowKeys","getRowKey","record","getRecordByKey","key","find","setSelectedKeys","useCallback","changedKeys","Array","from","records","map","onChange","transformColumns","columns","recordKeys","checkedCurrentAll","every","has","checkedCurrentSome","some","title","checked","length","forEach","delete","add","width","align","render","_path","_extends","Search","options","onSearch","setKey","uiSchema","order","properties","fields","field","column","dataIndex","ui","valueEnum","enum","Object","flatMap","text","enumNames","extraFields","entries","schema","onSubmit","formData","onReset","Container","children","Form","formContext","layout","_jsxs","Button","onClick","variant","styled","div","LightSearch","keyword","onKeywordChange","value","setValue","debouncedOnKeywordChange","useDebounce","e","target","FormControl","placeholder","CustomTHead","thead","components","table","BsTable","header","wrapper","ExpandIconContainer","a","ExpandIcon","expanded","expandable","onExpand","MinusIcon","PlusIcon","CustomPagination","Pagination","isPagination","Table","forwardRef","source","paginate","toolBarRender","search","card","sync","setData","pagination","setPagination","total","pageSize","loading","setLoading","params","setParams","useUrlSearchParams","setSelectionRowKeys","filters","setFilters","useControllableState","undefined","defaultValue","setKeyword","q","page","setPage","fetchData","result","request","url","current_page","per_page","action","reload","useImperativeHandle","customColumns","useMemo","valueType","customColumn","index","NumberFormat","status","_Fragment","Loader","unstable_batchedUpdates","Header","LeftTools","size","RightTools","Action","TableContext","Provider","RcTable","expandIcon","Card","memo","Space","span"],"mappings":"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"}
|
package/es/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{B as Button,C as Card,E as Error,F as Form,I as ImageZoom,L as Loader,g as LoadingButton,M as Message,
|
|
1
|
+
export{B as Button,C as Card,E as Error,F as Form,I as ImageZoom,L as Loader,g as LoadingButton,M as Message,m as Modal,l as ModalButton,k as ModalForm,N as NumberFormat,P as Pagination,h as RequestButton,R as Result,S as Space,f as Statistic,e as Step,d as Steps,j as Table,c as Toast,n as Tooltip,i as isRecord,q as isRequestError,r as request,s as showRequestError,b as useControllableState,a as useDebounce,p as useOverlayState,o as useRequest,u as useSafeState,w as waitPayComplete}from"./index-563b11c6.js";export{StyleSheetManager,ThemeProvider,createGlobalStyle,css,keyframes,default as styled}from"styled-components";export{useAsync,useAsyncCallback}from"react-async-hook";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react/jsx-runtime";import"react";import"react-bootstrap";import"lodash";import"axios";import"query-string";import"retry-axios";import"rc-notification";import"classnames";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topthink/components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.58",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prebuild": "rimraf lib types",
|
|
6
6
|
"build": "rollup -c --environment NODE_ENV:production",
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime": "^7.11.2",
|
|
20
|
+
"@toast-ui/editor": "^3.2.2",
|
|
21
|
+
"@toast-ui/react-editor": "^3.2.3",
|
|
20
22
|
"@topthink/bootstrap": "^1.0.23",
|
|
21
|
-
"@topthink/json-form": "^1.0.
|
|
23
|
+
"@topthink/json-form": "^1.0.47",
|
|
22
24
|
"@types/styled-components": "^5.1.11",
|
|
23
25
|
"ajv-i18n": "^4.0.0",
|
|
24
26
|
"axios": "^0.27.2",
|
|
@@ -37,9 +39,9 @@
|
|
|
37
39
|
},
|
|
38
40
|
"peerDependencies": {
|
|
39
41
|
"lodash": "*",
|
|
40
|
-
"react": "^17",
|
|
42
|
+
"react": "^17||^18",
|
|
41
43
|
"react-bootstrap": "^2.1.2",
|
|
42
|
-
"react-dom": "^17"
|
|
44
|
+
"react-dom": "^17||^18"
|
|
43
45
|
},
|
|
44
46
|
"devDependencies": {
|
|
45
47
|
"@babel/core": "^7.13.8",
|
|
@@ -62,5 +64,5 @@
|
|
|
62
64
|
},
|
|
63
65
|
"author": "yunwuxin <tzzhangyajun@qq.com> (https://github.com/yunwuxin)",
|
|
64
66
|
"license": "MIT",
|
|
65
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "2a1755e13c0112249986a913f31880175d8f594e"
|
|
66
68
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { default as Message } from './utils/message';
|
|
|
2
2
|
export { default as waitPayComplete } from './utils/wait-pay-complete';
|
|
3
3
|
export { default as Toast } from './utils/toast';
|
|
4
4
|
export { PaginationType } from './utils/types';
|
|
5
|
+
export { default as isRecord } from './utils/is-record';
|
|
5
6
|
export { default as Result } from './components/result';
|
|
6
7
|
export { default as Loader } from './components/loader';
|
|
7
8
|
export { default as Card } from './components/card';
|
|
@@ -26,7 +27,6 @@ export { default as useOverlayState } from './hooks/use-overlay-state';
|
|
|
26
27
|
export { default as useControllableState } from './hooks/use-controllable-state';
|
|
27
28
|
export { default as useDebounce } from './hooks/use-debounce';
|
|
28
29
|
export { default as useSafeState } from './hooks/use-safe-state';
|
|
29
|
-
export { default as Unauthorized } from './errors/unauthorized';
|
|
30
30
|
export { default as request, RequestConfig, RequestInstance, isRequestError, showRequestError } from './request';
|
|
31
31
|
export type { UiSchema as FormUiSchema, Schema as FormSchema, WidgetProps as FormWidgetProps, Widget as FormWidget, IChangeEvent as FormChangeEvent, ISubmitEvent as FormSubmitEvent } from '@topthink/json-form';
|
|
32
32
|
export { default as styled, css, keyframes, createGlobalStyle, StyleSheetManager, ThemeProvider } from 'styled-components';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isRecord(data: any): data is Record<string, string>;
|
|
File without changes
|