@flatbiz/antd 4.2.81 → 4.2.83

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\n );\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value, options)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value, options) : viewLabel ? <Tag color={'geekblue'}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return <span>{viewText}</span>;\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, Table, TableProps } from 'antd';\nimport { FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/lib/table';\nimport { Fragment, isValidElement, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: any, record: TPlainObject, index: number) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: EditableTableName;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n};\n\n/**\n * 可编辑表格\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * @param props\n * ```\n * 1. table children column 不可编辑\n * 2. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 3. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * ```\n */\nexport const EditableTable = (props: EditableTableProps) => {\n const form = Form.useFormInstance();\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const { fieldConfig, renderMiddleware, tableChildrenColumnRender, tooltip, title, ...otherColumnItem } =\n columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n return {\n title: support && !!tooltip ? <TableTitleTooltip title={title} tooltip={tooltip} /> : title,\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(_value, record, index);\n }\n return _value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n const formListDataSource = Form.useWatch(props.name, form);\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item) => {\n item['_isChildrenItem'] = true;\n });\n }\n return {\n ...item,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","viewLabelList","value","_isArray","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","_props$tableProps2","form","columns","columnItem","renderMiddleware","tableChildrenColumnRender","tooltip","title","otherColumnItem","support","isValidElement","TableTitleTooltip","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","toArray","customRender","operation","fieldConfigActual","formListDataSource","useWatch","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","_formListDataSource$i","onTableAfterRender","ButtonWrapper","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\n );\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value, options)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value, options) : viewLabel ? <Tag color={'geekblue'}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={'geekblue'}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return <span>{viewText}</span>;\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, Table, TableProps } from 'antd';\nimport { FormListFieldData, FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/lib/table';\nimport {\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper, TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: TAny, record: TPlainObject, index: number) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: EditableTableName;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n};\n\nexport type EditableTableRefApi = {\n /** 可用于表格行选择操作时,获取操作列数据 */\n getTableItemDataByFormListItemKey: (key: number) => TPlainObject;\n};\n\n/**\n * 可编辑表格\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * @param props\n * ```\n * 1. table children column 不可编辑\n * 2. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 3. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * 4. 设置 rowSelection 后,rowSelection.onChange 通过 ref 的 getTableItemDataByFormListItemKey获取数据\n * ```\n */\nexport const EditableTable = forwardRef<EditableTableRefApi, EditableTableProps>((props, ref) => {\n const form = Form.useFormInstance();\n\n const formListFieldsRef = useRef<FormListFieldData[]>([]);\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const {\n fieldConfig,\n renderMiddleware,\n tableChildrenColumnRender,\n tooltip,\n title,\n tipsWrapperProps,\n ...otherColumnItem\n } = columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string;\n if (tipsWrapperProps && support) {\n if (typeof tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>;\n }\n } else if (tooltip) {\n titleRender = <TableTitleTooltip title={title as string} tooltip={tooltip} />;\n } else {\n titleRender = title as string;\n }\n return {\n title: titleRender,\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(_value, record, index);\n }\n return _value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n const formListDataSource = Form.useWatch(props.name, form);\n\n useImperativeHandle(ref, () => {\n return {\n getTableItemDataByFormListItemKey: (key) => {\n const target = formListFieldsRef.current.find((item) => item.key === key);\n if (target) {\n return form.getFieldValue([...toArray<string>(props.name), target.name]);\n }\n return undefined;\n },\n };\n });\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n formListFieldsRef.current = fields;\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item) => {\n item['_isChildrenItem'] = true;\n });\n }\n return {\n ...item,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n});\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","viewLabelList","value","_isArray","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","forwardRef","ref","_props$tableProps2","form","formListFieldsRef","useRef","columns","columnItem","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps","otherColumnItem","support","isValidElement","titleRender","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","toArray","customRender","operation","fieldConfigActual","formListDataSource","useWatch","useImperativeHandle","getTableItemDataByFormListItemKey","key","current","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","_formListDataSource$i","onTableAfterRender","ButtonWrapper","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n /** 栅格占位格数,替换lg、xl、xxl默认数据 */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify} wrap={false}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps} style={{ overflowX: 'auto', ...rightSpaceProps?.style }}>\n {_rightList?.map((item) => item)}\n </Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * default = { xs: 24, sm: 12, md: 8, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const { gridSize, ...otherProps } = props;\n const screenType = useResponsivePoint() || 'md';\n\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n console.log('screenType', screenType, defaultGridSize[screenType]);\n\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n if (['md', 'sm', 'xs'].includes(screenType)) {\n return temp.props?.[screenType] || defaultGridSize[screenType];\n }\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...otherProps}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormCol、FormOperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormOperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","wrap","Space","map","item","style","overflowX","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","gridSize","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","console","log","_useMemo","findIndex","undefined","_currentGridList","_temp$props2","_temp$props3","includes","_temp$props","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n /** 栅格占位格数,替换lg、xl、xxl默认数据 */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify} wrap={false}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps} style={{ overflowX: 'auto', ...rightSpaceProps?.style }}>\n {_rightList?.map((item) => item)}\n </Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * default = { xs: 24, sm: 12, md: 8, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 8, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const { gridSize, ...otherProps } = props;\n const screenType = useResponsivePoint() || 'md';\n\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n console.log('screenType', screenType, defaultGridSize[screenType]);\n\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n if (['md', 'sm', 'xs'].includes(screenType)) {\n return temp.props?.[screenType] || defaultGridSize[screenType];\n }\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...otherProps}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,替换lg、xl、xxl默认数据,不替换xs、sm布局数据\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","wrap","Space","map","item","style","overflowX","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","gridSize","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","console","log","_useMemo","findIndex","undefined","_currentGridList","_temp$props2","_temp$props3","includes","_temp$props","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
package/esm/index.js CHANGED
@@ -40,6 +40,7 @@ import './form-grid/index.css';
40
40
  import './simple-layout/index.css';
41
41
  import './table-scrollbar/index.css';
42
42
  import './table-title-tooltip/index.css';
43
+ import './tips-wrapper/index.css';
43
44
  import './editable-field/index.css';
44
45
  import './icon-wrapper/index.css';
45
46
  import './editable-field-provider/index.css';
@@ -72,6 +73,7 @@ import './rich-text-viewer/index.css';
72
73
  import './roll-location-center/index.css';
73
74
  import './roll-location-in-view/index.css';
74
75
  import './rule-describe/index.css';
76
+ import './search-menu/index.css';
75
77
  import './selector-wrapper-search/index.css';
76
78
  import './selector-wrapper-simple/index.css';
77
79
  import './sms-count-down/index.css';
@@ -93,5 +95,5 @@ import './tree-selector-wrapper/index.css';
93
95
  import './tree-wrapper/index.css';
94
96
  import './index.css';
95
97
  /*! @flatjs/forge MIT @flatbiz/antd */
96
- export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{ConfigProviderWrapper}from"./config-provider-wrapper/index.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{styles}from"./styles/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
98
+ export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{ConfigProviderWrapper}from"./config-provider-wrapper/index.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{styles}from"./styles/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
97
99
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{getUuid as l}from"@flatbiz/utils";import{Descriptions as t}from"antd";import{useMemo as a}from"react";import{jsx as o}from"react/jsx-runtime";var n=function n(i){var u=i.labelWidth==="auto"?"auto":(i.labelWidth||120)+"px";var m={"--v-label-value-layout-lWidth":u};var s=e("v-label-value-layout",i.className);var p=a((function(){return i.options.filter((function(r){return!r.hidden}))}),[i.options]);p=p.map((function(e){return r({key:l()},e)}));return o(t,{column:i.column||1,bordered:i.bordered,size:"small",className:s,style:m,children:p.map((function(r){return o(t.Item,{label:r.label,span:r.span,children:r.value},r.key)}))})};export{n as LabelValueLayout};
4
+ import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{getUuid as l}from"@flatbiz/utils";import{Descriptions as t}from"antd";import{useMemo as a}from"react";import{jsx as o}from"react/jsx-runtime";var n=function n(i){var u=i.labelWidth==="auto"?"auto":(i.labelWidth||120)+"px";var m=e({"--v-label-value-layout-lWidth":u},i.style);var s=r("v-label-value-layout",i.className);var p=a((function(){return i.options.filter((function(r){return!r.hidden}))}),[i.options]);p=p.map((function(r){return e({key:l()},r)}));return o(t,{column:i.column||1,bordered:i.bordered,size:"small",className:s,style:m,children:p.map((function(r){return o(t.Item,{label:r.label,span:r.span,children:r.value},r.key)}))})};export{n as LabelValueLayout};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid } from '@flatbiz/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {\n key?: string | number;\n label: string | ReactElement;\n value?: string | number | ReactElement;\n span?: number;\n hidden?: boolean;\n }[];\n labelWidth?: number | 'auto';\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n className?: string;\n};\n\n/**\n * options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度\n * options[].hidden 是否隐藏 Description.Item\n */\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const labelWidth = props.labelWidth === 'auto' ? 'auto' : `${props.labelWidth || 120}px`;\n const style = { '--v-label-value-layout-lWidth': labelWidth } as CSSProperties;\n const className = classNames('v-label-value-layout', props.className);\n\n let options = useMemo(() => {\n return props.options.filter((item) => !item.hidden);\n }, [props.options]);\n\n options = options.map((item) => {\n return { key: getUuid(), ...item };\n });\n\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {options.map((item) => {\n return (\n <Descriptions.Item key={item.key} label={item.label} span={item.span}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","labelWidth","style","className","_classNames","options","useMemo","filter","item","hidden","map","_extends","key","getUuid","_jsx","Descriptions","column","bordered","size","children","Item","label","span","value"],"mappings":";gRAyBaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAaD,EAAMC,aAAe,OAAS,QAAYD,EAAMC,YAAc,KAAO,KACxF,IAAMC,EAAQ,CAAE,gCAAiCD,GACjD,IAAME,EAAYC,EAAW,uBAAwBJ,EAAMG,WAE3D,IAAIE,EAAUC,GAAQ,WACpB,OAAON,EAAMK,QAAQE,QAAO,SAACC,GAAI,OAAMA,EAAKC,SAC9C,GAAG,CAACT,EAAMK,UAEVA,EAAUA,EAAQK,KAAI,SAACF,GACrB,OAAAG,EAAA,CAASC,IAAKC,KAAcL,EAC9B,IAEA,OACEM,EAACC,EAAY,CACXC,OAAQhB,EAAMgB,QAAU,EACxBC,SAAUjB,EAAMiB,SAChBC,KAAK,QACLf,UAAWA,EACXD,MAAOA,EAAMiB,SAEZd,EAAQK,KAAI,SAACF,GACZ,OACEM,EAACC,EAAaK,KAAI,CAAgBC,MAAOb,EAAKa,MAAOC,KAAMd,EAAKc,KAAKH,SAClEX,EAAKe,OADgBf,EAAKI,SAOvC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid } from '@flatbiz/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {\n key?: string | number;\n label: string | ReactElement;\n value?: string | number | ReactElement;\n span?: number;\n hidden?: boolean;\n }[];\n labelWidth?: number | 'auto';\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度\n * options[].hidden 是否隐藏 Description.Item\n */\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const labelWidth = props.labelWidth === 'auto' ? 'auto' : `${props.labelWidth || 120}px`;\n const style = { '--v-label-value-layout-lWidth': labelWidth, ...props.style } as CSSProperties;\n const className = classNames('v-label-value-layout', props.className);\n\n let options = useMemo(() => {\n return props.options.filter((item) => !item.hidden);\n }, [props.options]);\n\n options = options.map((item) => {\n return { key: getUuid(), ...item };\n });\n\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {options.map((item) => {\n return (\n <Descriptions.Item key={item.key} label={item.label} span={item.span}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","labelWidth","style","_extends","className","_classNames","options","useMemo","filter","item","hidden","map","key","getUuid","_jsx","Descriptions","column","bordered","size","children","Item","label","span","value"],"mappings":";gRA0BaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAaD,EAAMC,aAAe,OAAS,QAAYD,EAAMC,YAAc,KAAO,KACxF,IAAMC,EAAKC,EAAA,CAAK,gCAAiCF,GAAeD,EAAME,OACtE,IAAME,EAAYC,EAAW,uBAAwBL,EAAMI,WAE3D,IAAIE,EAAUC,GAAQ,WACpB,OAAOP,EAAMM,QAAQE,QAAO,SAACC,GAAI,OAAMA,EAAKC,SAC9C,GAAG,CAACV,EAAMM,UAEVA,EAAUA,EAAQK,KAAI,SAACF,GACrB,OAAAN,EAAA,CAASS,IAAKC,KAAcJ,EAC9B,IAEA,OACEK,EAACC,EAAY,CACXC,OAAQhB,EAAMgB,QAAU,EACxBC,SAAUjB,EAAMiB,SAChBC,KAAK,QACLd,UAAWA,EACXF,MAAOA,EAAMiB,SAEZb,EAAQK,KAAI,SAACF,GACZ,OACEK,EAACC,EAAaK,KAAI,CAAgBC,MAAOZ,EAAKY,MAAOC,KAAMb,EAAKa,KAAKH,SAClEV,EAAKc,OADgBd,EAAKG,SAOvC"}
File without changes
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ import './../fba-hooks/index.css';
3
+ import './../input-search-wrapper/index.css';
4
+ import './index.css';
5
+ /*! @flatjs/forge MIT @flatbiz/antd */
6
+ import{hooks as e}from"@wove/react/cjs/hooks";import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as n}from"@dimjs/model";import{treeFieldNameChangeAdapter as l,treeFilter as i,treeToArray as o,valueIsEqual as t}from"@flatbiz/utils";import{Menu as a}from"antd";import{useState as u,useRef as c,useMemo as d}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{InputSearchWrapper as f}from"../input-search-wrapper/index.js";import{jsxs as m,jsx as p}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";function v(v){var h=v.value,y=v.onChange,k=v.dataSource,b=v.searchKeyList,j=v.wrapStyle,g=v.style,C=v.placeholder,w=v.fieldNames,S=v.renderItem,x=v.lazySearch,N=v.className;var K=u([]),z=K[0],E=K[1];var I=c();var P=d((function(){return r({label:"label",key:"key",children:"children"},w)}),[w]);var _=b!=null&&b.length?b:[P.label];var B=d((function(){var e=P.label,n=P.key,i=P.children;return l(z,(function(l){return r({},l,{label:S?S(l):l==null?void 0:l[e],key:l==null?void 0:l[n],children:l==null?void 0:l[i]})}))}),[z,P,S]);s.useEffectCustom((function(){H("")}),[k]);var H=function e(r){if(!r){I.current=undefined;E(n(k)||[]);return}var l=i(n(k),(function(e){return!!(_!=null&&_.find((function(n){var l;return(l=e[n])==null?void 0:l.includes(r)})))}),{childrenName:P.children});I.current=o(l,P.children).map((function(e){return String(e[P.key])}));E(l)};var L=function e(r){H(r.target.value)};var R=e.useCallbackRef((function(e){var r=o(k,P.children).find((function(r){return t(e.key,r[P.key])}));y==null?void 0:y(e.key,e.keyPath,r)}));return m("div",{style:j,className:N,children:[p(f,{onSearch:x?H:undefined,onChange:!x?L:undefined,placeholder:C||"请输入搜索关键词",allowClear:true}),p(a,{openKeys:I.current,mode:"inline",items:B,selectedKeys:h?[h]:undefined,onClick:R,style:r({overflowY:"auto",borderInlineEnd:"none"},g)})]})}export{v as SearchMenu};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-menu/search-menu.tsx"],"sourcesContent":["import { cloneState } from '@dimjs/model';\nimport { PlainObject } from '@dimjs/utils';\nimport {\n TAny,\n TPlainObject,\n treeFieldNameChangeAdapter,\n treeFilter,\n treeToArray,\n valueIsEqual,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Menu } from 'antd';\nimport { ItemType, MenuItemType } from 'antd/es/menu/hooks/useItems';\nimport { FC, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper, InputSearchWrapperProps } from '../input-search-wrapper';\n\nexport interface ISearchMenuProps {\n /**\n * 如果传了value,就变成受控组件\n * 目前只支持单选\n */\n value?: string;\n onChange?: (key: string, keyPath: string[], targetItem?: PlainObject) => void;\n /** 树型源数据 */\n dataSource: TPlainObject[];\n /** 惰性搜索 */\n lazySearch?: boolean;\n /** 搜索目标字段 */\n searchKeyList?: string[];\n /** 格式化参数 */\n fieldNames?: {\n label?: string;\n key?: string;\n children?: string;\n };\n /** 自定义渲染条目 */\n renderItem?: FC<TAny>;\n /** 搜索框参数 */\n inputProps?: InputSearchWrapperProps;\n placeholder?: string;\n className?: string;\n wrapStyle?: React.CSSProperties;\n style?: React.CSSProperties;\n}\n\n/**\n * 列表搜索\n * @param props\n * @returns\n */\nexport function SearchMenu(props: ISearchMenuProps) {\n const {\n value,\n onChange,\n dataSource,\n searchKeyList,\n wrapStyle,\n style,\n placeholder,\n fieldNames,\n renderItem,\n lazySearch,\n className,\n } = props;\n const [listFilter, setListFilter] = useState<TPlainObject[]>([]);\n const openKeysRef = useRef<string[]>();\n\n /** 格式化对象 */\n const mergeFormatOption = useMemo(() => {\n return {\n label: 'label',\n key: 'key',\n children: 'children',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n /** 可搜索的字段值 */\n const targetSearchKeyList = searchKeyList?.length ? searchKeyList : [mergeFormatOption.label];\n\n /** 生成菜单列表 */\n const menuList = useMemo(() => {\n const { label, key, children } = mergeFormatOption;\n return treeFieldNameChangeAdapter(listFilter, (item) => {\n return {\n ...item,\n label: renderItem ? renderItem(item) : item?.[label],\n key: item?.[key],\n children: item?.[children],\n };\n }) as ItemType<MenuItemType>[];\n }, [listFilter, mergeFormatOption, renderItem]);\n\n /**\n * 数据格式化\n */\n fbaHooks.useEffectCustom(() => {\n handleSearch('');\n }, [dataSource]);\n\n /** 搜索 */\n const handleSearch = (searchWord: string) => {\n if (!searchWord) {\n // 清空搜索词还原列表\n openKeysRef.current = undefined;\n setListFilter(cloneState(dataSource) || []);\n return;\n }\n const resList = treeFilter(\n cloneState(dataSource),\n (item) => {\n return !!targetSearchKeyList?.find((key) => {\n return item[key]?.includes(searchWord);\n });\n },\n {\n childrenName: mergeFormatOption.children,\n },\n ) as TPlainObject[];\n openKeysRef.current = treeToArray(resList, mergeFormatOption.children).map((item) =>\n String(item[mergeFormatOption.key]),\n );\n setListFilter(resList);\n };\n\n /**\n * 搜索词变换\n * @param e\n */\n const handleWordChange = (e) => {\n handleSearch(e.target.value);\n };\n\n /**\n * 点击菜单\n */\n const onClick = hooks.useCallbackRef((data) => {\n const targetItem = treeToArray(dataSource, mergeFormatOption.children).find((item) =>\n valueIsEqual(data.key, item[mergeFormatOption.key]),\n );\n onChange?.(data.key, data.keyPath, targetItem);\n });\n\n return (\n <div style={wrapStyle} className={className}>\n <InputSearchWrapper\n onSearch={lazySearch ? handleSearch : undefined}\n onChange={!lazySearch ? handleWordChange : undefined}\n placeholder={placeholder || '请输入搜索关键词'}\n allowClear\n />\n <Menu\n openKeys={openKeysRef.current}\n mode=\"inline\"\n items={menuList}\n selectedKeys={value ? [value] : undefined}\n onClick={onClick}\n style={{\n overflowY: 'auto',\n borderInlineEnd: 'none',\n ...style,\n }}\n />\n </div>\n );\n}\n"],"names":["SearchMenu","props","value","onChange","dataSource","searchKeyList","wrapStyle","style","placeholder","fieldNames","renderItem","lazySearch","className","_useState","useState","listFilter","setListFilter","openKeysRef","useRef","mergeFormatOption","useMemo","_extends","label","key","children","targetSearchKeyList","length","menuList","treeFieldNameChangeAdapter","item","fbaHooks","useEffectCustom","handleSearch","searchWord","current","undefined","cloneState","resList","treeFilter","find","_item$key","includes","childrenName","treeToArray","map","String","handleWordChange","e","target","onClick","_hooks","useCallbackRef","data","targetItem","valueIsEqual","keyPath","_jsxs","_jsx","InputSearchWrapper","onSearch","allowClear","Menu","openKeys","mode","items","selectedKeys","overflowY","borderInlineEnd"],"mappings":";glBAmDO,SAASA,EAAWC,GACzB,IACEC,EAWED,EAXFC,MACAC,EAUEF,EAVFE,SACAC,EASEH,EATFG,WACAC,EAQEJ,EARFI,cACAC,EAOEL,EAPFK,UACAC,EAMEN,EANFM,MACAC,EAKEP,EALFO,YACAC,EAIER,EAJFQ,WACAC,EAGET,EAHFS,WACAC,EAEEV,EAFFU,WACAC,EACEX,EADFW,UAEF,IAAAC,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAMI,EAAcC,IAGpB,IAAMC,EAAoBC,GAAQ,WAChC,OAAAC,EAAA,CACEC,MAAO,QACPC,IAAK,MACLC,SAAU,YACPf,EAEP,GAAG,CAACA,IAGJ,IAAMgB,EAAsBpB,GAAa,MAAbA,EAAeqB,OAASrB,EAAgB,CAACc,EAAkBG,OAGvF,IAAMK,EAAWP,GAAQ,WACvB,IAAQE,EAAyBH,EAAzBG,MAAOC,EAAkBJ,EAAlBI,IAAKC,EAAaL,EAAbK,SACpB,OAAOI,EAA2Bb,GAAY,SAACc,GAC7C,OAAAR,KACKQ,EAAI,CACPP,MAAOZ,EAAaA,EAAWmB,GAAQA,GAAI,UAAA,EAAJA,EAAOP,GAC9CC,IAAKM,GAAI,UAAA,EAAJA,EAAON,GACZC,SAAUK,GAAAA,UAAAA,EAAAA,EAAOL,IAErB,GACD,GAAE,CAACT,EAAYI,EAAmBT,IAKnCoB,EAASC,iBAAgB,WACvBC,EAAa,GACf,GAAG,CAAC5B,IAGJ,IAAM4B,EAAe,SAAfA,EAAgBC,GACpB,IAAKA,EAAY,CAEfhB,EAAYiB,QAAUC,UACtBnB,EAAcoB,EAAWhC,IAAe,IACxC,MACF,CACA,IAAMiC,EAAUC,EACdF,EAAWhC,IACX,SAACyB,GACC,SAASJ,GAAAA,MAAAA,EAAqBc,MAAK,SAAChB,GAAQ,IAAAiB,EAC1C,OAAAA,EAAOX,EAAKN,KAALiB,UAAAA,EAAAA,EAAWC,SAASR,EAC5B,IACH,GACA,CACES,aAAcvB,EAAkBK,WAGpCP,EAAYiB,QAAUS,EAAYN,EAASlB,EAAkBK,UAAUoB,KAAI,SAACf,GAAI,OAC9EgB,OAAOhB,EAAKV,EAAkBI,KAAK,IAErCP,EAAcqB,IAOhB,IAAMS,EAAmB,SAAnBA,EAAoBC,GACxBf,EAAae,EAAEC,OAAO9C,QAMxB,IAAM+C,EAAUC,EAAMC,gBAAe,SAACC,GACpC,IAAMC,EAAaV,EAAYvC,EAAYe,EAAkBK,UAAUe,MAAK,SAACV,GAAI,OAC/EyB,EAAaF,EAAK7B,IAAKM,EAAKV,EAAkBI,KAAK,IAErDpB,GAAAA,UAAAA,EAAAA,EAAWiD,EAAK7B,IAAK6B,EAAKG,QAASF,EACrC,IAEA,OACEG,EAAA,MAAA,CAAKjD,MAAOD,EAAWM,UAAWA,EAAUY,SAAA,CAC1CiC,EAACC,EAAkB,CACjBC,SAAUhD,EAAaqB,EAAeG,UACtChC,UAAWQ,EAAamC,EAAmBX,UAC3C3B,YAAaA,GAAe,WAC5BoD,WAAU,OAEZH,EAACI,EAAI,CACHC,SAAU7C,EAAYiB,QACtB6B,KAAK,SACLC,MAAOrC,EACPsC,aAAc/D,EAAQ,CAACA,GAASiC,UAChCc,QAASA,EACT1C,MAAKc,EAAA,CACH6C,UAAW,OACXC,gBAAiB,QACd5D,OAKb"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/table-title-tooltip/title-render.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\n\nexport type TableTitleTooltipProps = {\n title: string | ReactElement;\n tooltip: string | { icon?: ReactElement; content?: string; hoverArea?: 'icon' | 'all' };\n // 间隙,默认值:3\n gap?: number;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * title + tooltip\n * @param props\n * @returns\n */\nexport const TableTitleTooltip = (props: TableTitleTooltipProps) => {\n const tooltip = props.tooltip;\n const gap = isUndefinedOrNull(props.gap) ? 3 : props.gap;\n if (typeof tooltip === 'string') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip}>\n <span style={{ opacity: 0.7 }}>\n <QuestionCircleOutlined />\n </span>\n </Tooltip>\n </Space>\n );\n }\n const hoverArea = isUndefinedOrNull(tooltip.hoverArea) ? 'icon' : tooltip.hoverArea;\n if (hoverArea === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip.content}>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Tooltip>\n </Space>\n );\n }\n return (\n <Tooltip title={tooltip.content}>\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Space>\n </Tooltip>\n );\n};\n"],"names":["TableTitleTooltip","props","tooltip","gap","isUndefinedOrNull","_jsxs","Space","size","className","style","children","_jsx","title","Tooltip","opacity","_QuestionCircleOutlined","hoverArea","content","icon"],"mappings":";oNAmBaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAUD,EAAMC,QACtB,IAAMC,EAAMC,EAAkBH,EAAME,KAAO,EAAIF,EAAME,IACrD,UAAWD,IAAY,SAAU,CAC/B,OACEG,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQQ,SACtBC,EAAA,OAAA,CAAMF,MAAO,CAAEK,QAAS,IAAMJ,SAC5BC,EAAAI,EAAyB,UAKnC,CACA,IAAMC,EAAYZ,EAAkBF,EAAQc,WAAa,OAASd,EAAQc,UAC1E,GAAIA,IAAc,OAAQ,CACxB,OACEX,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BC,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAyB,CAAA,SAIxD,CACA,OACEJ,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BL,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAyB,CAAA,SAIxD"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/table-title-tooltip/title-render.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\n\nexport type TableTitleTooltipProps = {\n title: string | ReactElement;\n tooltip: string | { icon?: ReactElement; content: string; hoverArea?: 'icon' | 'all' };\n // 间隙,默认值:3\n gap?: number;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * title + tooltip\n * @deprecated 已过期,请使用 TipsWrapper 组件\n */\nexport const TableTitleTooltip = (props: TableTitleTooltipProps) => {\n const tooltip = props.tooltip;\n const gap = isUndefinedOrNull(props.gap) ? 3 : props.gap;\n if (typeof tooltip === 'string') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip}>\n <span style={{ opacity: 0.7 }}>\n <QuestionCircleOutlined />\n </span>\n </Tooltip>\n </Space>\n );\n }\n const hoverArea = isUndefinedOrNull(tooltip.hoverArea) ? 'icon' : tooltip.hoverArea;\n if (hoverArea === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <Tooltip title={tooltip.content}>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Tooltip>\n </Space>\n );\n }\n return (\n <Tooltip title={tooltip.content}>\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.title}</span>\n <span>{tooltip.icon || <QuestionCircleOutlined />}</span>\n </Space>\n </Tooltip>\n );\n};\n"],"names":["TableTitleTooltip","props","tooltip","gap","isUndefinedOrNull","_jsxs","Space","size","className","style","children","_jsx","title","Tooltip","opacity","_QuestionCircleOutlined","hoverArea","content","icon"],"mappings":";oNAkBaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAUD,EAAMC,QACtB,IAAMC,EAAMC,EAAkBH,EAAME,KAAO,EAAIF,EAAME,IACrD,UAAWD,IAAY,SAAU,CAC/B,OACEG,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQQ,SACtBC,EAAA,OAAA,CAAMF,MAAO,CAAEK,QAAS,IAAMJ,SAC5BC,EAAAI,EAAyB,UAKnC,CACA,IAAMC,EAAYZ,EAAkBF,EAAQc,WAAa,OAASd,EAAQc,UAC1E,GAAIA,IAAc,OAAQ,CACxB,OACEX,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BC,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAyB,CAAA,SAIxD,CACA,OACEJ,EAACE,EAAO,CAACD,MAAOV,EAAQe,QAAQP,SAC9BL,EAACC,EAAK,CAACC,KAAMJ,EAAKK,UAAWP,EAAMO,UAAWC,MAAOR,EAAMQ,MAAMC,UAC/DC,EAAA,OAAA,CAAAD,SAAOT,EAAMW,QACbD,EAAA,OAAA,CAAAD,SAAOR,EAAQgB,MAAQP,EAAAI,EAAyB,CAAA,SAIxD"}
File without changes
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ import './index.css';
3
+ /*! @flatjs/forge MIT @flatbiz/antd */
4
+ import{_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import i from"@ant-design/icons/es/icons/QuestionCircleOutlined";import{isUndefinedOrNull as l}from"@flatbiz/utils";import{Space as r,Tooltip as s,Popover as n}from"antd";import{Fragment as c}from"react";import{jsx as a,jsxs as t}from"react/jsx-runtime";var o=function o(p){var d=p.icon||a(i,{});var h=p.trigger||"icon";var y=l(p.gap)?3:p.gap;if(p.tipType==="tooltip"&&h==="icon"){return t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a(s,e({},p.tooltipProps,{children:a("span",{style:{opacity:.7},children:d})}))]})}if(p.tipType==="tooltip"&&h==="all"){return a(s,e({},p.tooltipProps,{children:t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a("span",{children:d})]})}))}if(p.tipType==="popover"&&h==="icon"){return t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a(n,e({},p.popoverProps,{children:a("span",{style:{opacity:.8},children:d})}))]})}if(p.tipType==="popover"&&h==="all"){return a(n,e({},p.popoverProps,{children:t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a("span",{style:{opacity:.8},children:d})]})}))}if(p.onClick&&h==="icon"){return t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a("span",{onClick:p.onClick,style:{opacity:.8},children:d})]})}if(p.onClick&&h==="all"){return t(r,{size:y,className:p.className,style:p.style,onClick:p.onClick,children:[a("span",{children:p.children}),a("span",{style:{opacity:.8},children:d})]})}if(p.icon){return t(r,{size:y,className:p.className,style:p.style,children:[a("span",{children:p.children}),a("span",{style:{opacity:.8},children:p.icon})]})}return a(c,{children:p.children})};export{o as TipsWrapper};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tips-wrapper/tips-wrapper.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Popover, PopoverProps, Space, Tooltip, TooltipProps } from 'antd';\nimport { Fragment, ReactNode, type CSSProperties, type ReactElement } from 'react';\n\nexport type TipsWrapperProps = {\n // 间隙,默认值:3\n gap?: number;\n className?: string;\n style?: CSSProperties;\n children?: ReactNode;\n icon?: ReactElement;\n /** Icon添加点击事件,设置hoverTips后失效 */\n onClick?: (event) => void;\n /**\n * 提示效果类型\n * ```\n * 1. popover 气泡卡片,内容通过popoverProps设置\n * 2. tooltip 文字提示,内容通过tooltipProps设置\n * ```\n */\n tipType?: 'popover' | 'tooltip';\n popoverProps?: PopoverProps;\n tooltipProps?: TooltipProps;\n trigger?: 'icon' | 'all';\n};\n\n/**\n * 为目标元素右侧添加Icon\n * ```\n * Icon有两种交互行为\n * 1. 鼠标悬浮显示提示效果;\n * 2. 为Icon添加点击事件\n *\n * 例如:\n * 1.\n * <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title:'说明文案' }}>ABC</TipsWrapper>\n * 2.\n * <TipsWrapper tipType=\"popover\" popoverProps={{ title:'说明标题', content:'说明内容' }}>ABC</TipsWrapper>\n * 3.\n * <TipsWrapper onClick={noop}>ABC</TipsWrapper>\n * ```\n */\nexport const TipsWrapper = (props: TipsWrapperProps) => {\n const icon = props.icon || <QuestionCircleOutlined />;\n const trigger = props.trigger || 'icon';\n const gap = isUndefinedOrNull(props.gap) ? 3 : props.gap;\n if (props.tipType === 'tooltip' && trigger === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <Tooltip {...props.tooltipProps}>\n <span style={{ opacity: 0.7 }}>{icon}</span>\n </Tooltip>\n </Space>\n );\n }\n if (props.tipType === 'tooltip' && trigger === 'all') {\n return (\n <Tooltip {...props.tooltipProps}>\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <span>{icon}</span>\n </Space>\n </Tooltip>\n );\n }\n\n if (props.tipType === 'popover' && trigger === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <Popover {...props.popoverProps}>\n <span style={{ opacity: 0.8 }}>{icon}</span>\n </Popover>\n </Space>\n );\n }\n if (props.tipType === 'popover' && trigger === 'all') {\n return (\n <Popover {...props.popoverProps}>\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <span style={{ opacity: 0.8 }}>{icon}</span>\n </Space>\n </Popover>\n );\n }\n\n if (props.onClick && trigger === 'icon') {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <span onClick={props.onClick} style={{ opacity: 0.8 }}>\n {icon}\n </span>\n </Space>\n );\n }\n if (props.onClick && trigger === 'all') {\n return (\n <Space size={gap} className={props.className} style={props.style} onClick={props.onClick}>\n <span>{props.children}</span>\n <span style={{ opacity: 0.8 }}>{icon}</span>\n </Space>\n );\n }\n if (props.icon) {\n return (\n <Space size={gap} className={props.className} style={props.style}>\n <span>{props.children}</span>\n <span style={{ opacity: 0.8 }}>{props.icon}</span>\n </Space>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n"],"names":["TipsWrapper","props","icon","_jsx","_QuestionCircleOutlined","trigger","gap","isUndefinedOrNull","tipType","_jsxs","Space","size","className","style","children","Tooltip","_extends","tooltipProps","opacity","Popover","popoverProps","onClick","Fragment"],"mappings":";+TA2CaA,EAAc,SAAdA,EAAeC,GAC1B,IAAMC,EAAOD,EAAMC,MAAQC,EAAAC,EAAA,CAAA,GAC3B,IAAMC,EAAUJ,EAAMI,SAAW,OACjC,IAAMC,EAAMC,EAAkBN,EAAMK,KAAO,EAAIL,EAAMK,IACrD,GAAIL,EAAMO,UAAY,WAAaH,IAAY,OAAQ,CACrD,OACEI,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAACY,EAAOC,EAAA,CAAA,EAAKf,EAAMgB,aAAY,CAAAH,SAC7BX,EAAA,OAAA,CAAMU,MAAO,CAAEK,QAAS,IAAMJ,SAAEZ,SAIxC,CACA,GAAID,EAAMO,UAAY,WAAaH,IAAY,MAAO,CACpD,OACEF,EAACY,EAAOC,EAAKf,CAAAA,EAAAA,EAAMgB,aAAY,CAAAH,SAC7BL,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAAA,OAAA,CAAAW,SAAOZ,SAIf,CAEA,GAAID,EAAMO,UAAY,WAAaH,IAAY,OAAQ,CACrD,OACEI,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAACgB,EAAOH,EAAA,CAAA,EAAKf,EAAMmB,aAAY,CAAAN,SAC7BX,EAAA,OAAA,CAAMU,MAAO,CAAEK,QAAS,IAAMJ,SAAEZ,SAIxC,CACA,GAAID,EAAMO,UAAY,WAAaH,IAAY,MAAO,CACpD,OACEF,EAACgB,EAAOH,EAAKf,CAAAA,EAAAA,EAAMmB,aAAY,CAAAN,SAC7BL,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAAA,OAAA,CAAMU,MAAO,CAAEK,QAAS,IAAMJ,SAAEZ,SAIxC,CAEA,GAAID,EAAMoB,SAAWhB,IAAY,OAAQ,CACvC,OACEI,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAAA,OAAA,CAAMkB,QAASpB,EAAMoB,QAASR,MAAO,CAAEK,QAAS,IAAMJ,SACnDZ,MAIT,CACA,GAAID,EAAMoB,SAAWhB,IAAY,MAAO,CACtC,OACEI,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAOQ,QAASpB,EAAMoB,QAAQP,UACvFX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAAA,OAAA,CAAMU,MAAO,CAAEK,QAAS,IAAMJ,SAAEZ,MAGtC,CACA,GAAID,EAAMC,KAAM,CACd,OACEO,EAACC,EAAK,CAACC,KAAML,EAAKM,UAAWX,EAAMW,UAAWC,MAAOZ,EAAMY,MAAMC,UAC/DX,EAAA,OAAA,CAAAW,SAAOb,EAAMa,WACbX,EAAA,OAAA,CAAMU,MAAO,CAAEK,QAAS,IAAMJ,SAAEb,EAAMC,SAG5C,CACA,OAAOC,EAACmB,EAAQ,CAAAR,SAAEb,EAAMa,UAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-responsive-point-21b8c601.js","sources":["@flatbiz/antd/src/fba-hooks/use-responsive-point.ts"],"sourcesContent":["import { Grid } from 'antd';\nimport { useMemo } from 'react';\n\n/**\n * 获取响应式节点\n */\nexport const useResponsivePoint = () => {\n const screens = Grid.useBreakpoint();\n return useMemo(() => {\n const filter = Object.keys(screens).filter((key) => {\n return screens[key] === true;\n });\n const order = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\n const targetIndex = order.findIndex((key) => filter.includes(key));\n return order[targetIndex] as string | undefined;\n }, [screens]);\n};\n"],"names":["useResponsivePoint","screens","Grid","useBreakpoint","useMemo","filter","Object","keys","key","order","targetIndex","findIndex","includes"],"mappings":";gEAMaA,EAAqB,SAArBA,IACX,IAAMC,EAAUC,EAAKC,gBACrB,OAAOC,GAAQ,WACb,IAAMC,EAASC,OAAOC,KAAKN,GAASI,QAAO,SAACG,GAC1C,OAAOP,EAAQO,KAAS,IAC1B,IACA,IAAMC,EAAQ,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAC9C,IAAMC,EAAcD,EAAME,WAAU,SAACH,GAAG,OAAKH,EAAOO,SAASJ,MAC7D,OAAOC,EAAMC,EACf,GAAG,CAACT,GACN"}
1
+ {"version":3,"file":"use-responsive-point-21b8c601.js","sources":["@flatbiz/antd/src/fba-hooks/use-responsive-point.ts"],"sourcesContent":["import { Grid } from 'antd';\nimport { useMemo } from 'react';\n\n/**\n * 获取响应式节点\n * xs < 576px\n * sm ≥ 576px\n * md ≥ 768px\n * lg ≥ 992px\n * xl ≥ 1200px\n * xxl ≥ 1600px\n */\nexport const useResponsivePoint = () => {\n const screens = Grid.useBreakpoint();\n return useMemo(() => {\n const filter = Object.keys(screens).filter((key) => {\n return screens[key] === true;\n });\n const order = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\n const targetIndex = order.findIndex((key) => filter.includes(key));\n return order[targetIndex] as string | undefined;\n }, [screens]);\n};\n"],"names":["useResponsivePoint","screens","Grid","useBreakpoint","useMemo","filter","Object","keys","key","order","targetIndex","findIndex","includes"],"mappings":";gEAYaA,EAAqB,SAArBA,IACX,IAAMC,EAAUC,EAAKC,gBACrB,OAAOC,GAAQ,WACb,IAAMC,EAASC,OAAOC,KAAKN,GAASI,QAAO,SAACG,GAC1C,OAAOP,EAAQO,KAAS,IAC1B,IACA,IAAMC,EAAQ,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAC9C,IAAMC,EAAcD,EAAME,WAAU,SAACH,GAAG,OAAKH,EAAOO,SAASJ,MAC7D,OAAOC,EAAMC,EACf,GAAG,CAACT,GACN"}