@flatbiz/antd 4.2.55 → 4.2.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-operate/index.css +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate-81d86480.js +3 -0
- package/esm/button-operate-81d86480.js.map +1 -0
- package/esm/{cell-render-2a3743af.js → cell-render-927ade58.js} +2 -2
- package/esm/{cell-render-2a3743af.js.map → cell-render-927ade58.js.map} +1 -1
- package/esm/create-drawer-wrapper-model/index.js.map +1 -1
- package/esm/create-modal-wrapper-model/index.js.map +1 -1
- package/esm/drag-collapse/index.css +1 -1
- package/esm/drag-collapse/index.js +1 -3
- package/esm/drag-collapse-24ccfe8c.js +3 -0
- package/esm/drag-collapse-24ccfe8c.js.map +1 -0
- package/esm/drag-collapse-433fb1e0.js +3 -0
- package/esm/drag-collapse-433fb1e0.js.map +1 -0
- package/esm/drag-collapse-form-list/index.css +1 -0
- package/esm/drag-collapse-form-list/index.js +6 -0
- package/esm/drawer-wrapper-9af2f178.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.css +1 -0
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper-016a83b6.js +3 -0
- package/esm/dropdown-menu-wrapper-016a83b6.js.map +1 -0
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table-392040f7.js +3 -0
- package/esm/{editable-table-53686ef4.js.map → editable-table-392040f7.js.map} +1 -1
- package/esm/editor-wrapper-ff6e75b7.js.map +1 -1
- package/esm/form-item-group/index.js +1 -1
- package/esm/index.js +2 -3
- package/esm/modal-wrapper-ff8df98b.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/tabs-wrapper-0a2da713.js.map +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +105 -111
- package/package.json +5 -2
- package/esm/button-operate-fb40320e.js +0 -3
- package/esm/button-operate-fb40320e.js.map +0 -1
- package/esm/drag-collapse-8d751c2b.js +0 -3
- package/esm/drag-collapse-8d751c2b.js.map +0 -1
- package/esm/drag-drop/index.css +0 -1
- package/esm/drag-drop/index.js +0 -6
- package/esm/drag-drop/index.js.map +0 -1
- package/esm/drag-drop-multi/index.css +0 -0
- package/esm/drag-drop-multi/index.js +0 -5
- package/esm/drag-drop-multi-e8cae136.js +0 -3
- package/esm/drag-drop-multi-e8cae136.js.map +0 -1
- package/esm/dropdown-menu-wrapper-98347af8.js +0 -3
- package/esm/dropdown-menu-wrapper-98347af8.js.map +0 -1
- package/esm/droppable-item-708ec229.js +0 -3
- package/esm/droppable-item-708ec229.js.map +0 -1
- package/esm/editable-table-53686ef4.js +0 -3
- /package/esm/{drag-drop-multi → drag-collapse-form-list}/index.js.map +0 -0
package/index.d.ts
CHANGED
|
@@ -3,14 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
import { API, ModelType } from '@dimjs/model';
|
|
5
5
|
import { DateFormatType, TAny, TNoopDefine, TPlainObject } from '@flatbiz/utils';
|
|
6
|
-
import { DraggableChildrenFn, DropResult, DroppableProvided, DroppableStateSnapshot, ResponderProvided } from '@hello-pangea/dnd';
|
|
7
6
|
import { IAllProps } from '@tinymce/tinymce-react';
|
|
8
|
-
import { ButtonProps, CascaderProps, CheckboxProps, CollapseProps, DrawerProps, DropdownProps, FormInstance, FormItemProps, InputNumberProps, InputProps, ModalProps, PaginationProps, PopconfirmProps, RadioGroupProps, RowProps, SelectProps, SpaceProps, SwitchProps, TableProps, TabsProps, TagProps, TimePickerProps, TimeRangePickerProps, TooltipProps, TreeProps, TreeSelectProps, UploadProps } from 'antd';
|
|
7
|
+
import { ButtonProps, CascaderProps, CheckboxProps, CollapseProps, DrawerProps, DropdownProps, FormInstance, FormItemProps, FormListFieldData, FormListOperation, InputNumberProps, InputProps, ModalProps, PaginationProps, PopconfirmProps, RadioGroupProps, RowProps, SelectProps, SpaceProps, SwitchProps, TableProps, TabsProps, TagProps, TimePickerProps, TimeRangePickerProps, TooltipProps, TreeProps, TreeSelectProps, UploadProps } from 'antd';
|
|
9
8
|
import { ConfigProviderProps } from 'antd/es/config-provider';
|
|
10
9
|
import { PickerDateProps } from 'antd/es/date-picker/generatePicker';
|
|
10
|
+
import { FormListProps } from 'antd/es/form';
|
|
11
11
|
import { CheckboxGroupProps } from 'antd/lib/checkbox';
|
|
12
12
|
import { RangePickerDateProps } from 'antd/lib/date-picker/generatePicker';
|
|
13
|
-
import { FormListFieldData, FormListOperation, FormListProps } from 'antd/lib/form/FormList';
|
|
14
13
|
import { SearchProps, TextAreaProps } from 'antd/lib/input';
|
|
15
14
|
import { ColumnsType } from 'antd/lib/table';
|
|
16
15
|
import { UploadChangeParam } from 'antd/lib/upload';
|
|
@@ -116,6 +115,27 @@ export declare const dialogModal: {
|
|
|
116
115
|
*/
|
|
117
116
|
close: () => void;
|
|
118
117
|
};
|
|
118
|
+
export interface DropdownMenuItem extends ButtonProps {
|
|
119
|
+
text?: string | ReactElement;
|
|
120
|
+
color?: string;
|
|
121
|
+
onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;
|
|
122
|
+
permission?: string;
|
|
123
|
+
needConfirm?: boolean;
|
|
124
|
+
confirmMessage?: string;
|
|
125
|
+
hidden?: boolean;
|
|
126
|
+
confirmModalProps?: DialogModalProps;
|
|
127
|
+
}
|
|
128
|
+
export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
|
|
129
|
+
menuList: Array<DropdownMenuItem | null>;
|
|
130
|
+
isFixed?: boolean;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* DropdownMenuWrapper
|
|
134
|
+
* 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能
|
|
135
|
+
* @param props
|
|
136
|
+
* @returns
|
|
137
|
+
*/
|
|
138
|
+
export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => JSX.Element;
|
|
119
139
|
export interface ButtonOperateItem extends ButtonWrapperProps {
|
|
120
140
|
hidden?: boolean;
|
|
121
141
|
/** hover 提示文字 */
|
|
@@ -152,9 +172,11 @@ export interface ButtonOperateProps {
|
|
|
152
172
|
/** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */
|
|
153
173
|
gap?: number;
|
|
154
174
|
style?: CSSProperties;
|
|
175
|
+
/** 折叠合拢属性 */
|
|
176
|
+
dropdownMenuProps?: Omit<DropdownMenuWrapperProps, "menuList">;
|
|
155
177
|
}
|
|
156
178
|
export declare const ButtonOperateItemContent: (props: Pick<ButtonOperateItem, "hoverTips" | "tipsType"> & {
|
|
157
|
-
|
|
179
|
+
content: ReactNode;
|
|
158
180
|
}) => JSX.Element;
|
|
159
181
|
/**
|
|
160
182
|
* 按钮组合处理组件
|
|
@@ -306,7 +328,7 @@ export interface DrawerActionsParamType {
|
|
|
306
328
|
* drawer弹窗模型
|
|
307
329
|
* @param key 唯一值必传
|
|
308
330
|
* @returns
|
|
309
|
-
* @deprecated 废弃 DrawerWrapper
|
|
331
|
+
* @deprecated 废弃 DrawerWrapper 4.3.0版本移除
|
|
310
332
|
*
|
|
311
333
|
* ```
|
|
312
334
|
* 使用方式
|
|
@@ -335,7 +357,7 @@ export interface ModalActionsParamType {
|
|
|
335
357
|
/**
|
|
336
358
|
* modal弹窗模型
|
|
337
359
|
* @param key 唯一值必传
|
|
338
|
-
* @deprecated 废弃 ModalWrapper
|
|
360
|
+
* @deprecated 废弃 ModalWrapper 4.3.0版本移除
|
|
339
361
|
*
|
|
340
362
|
* ```
|
|
341
363
|
* 使用方式
|
|
@@ -576,6 +598,8 @@ export type DragCollapseItem = {
|
|
|
576
598
|
content: ReactElement;
|
|
577
599
|
};
|
|
578
600
|
export type DragCollapseProps = {
|
|
601
|
+
className?: string;
|
|
602
|
+
style?: CSSProperties;
|
|
579
603
|
/** 面板数据 */
|
|
580
604
|
items: DragCollapseItem[];
|
|
581
605
|
/** 拖拽面板回调 */
|
|
@@ -600,85 +624,72 @@ export type DragCollapseProps = {
|
|
|
600
624
|
dragIcon?: ReactElement;
|
|
601
625
|
/** 切换面板的回调 */
|
|
602
626
|
onChange?: (activeKey?: DragCollapseItemKey | DragCollapseItemKey[]) => void;
|
|
603
|
-
className?: string;
|
|
604
|
-
style?: CSSProperties;
|
|
605
627
|
};
|
|
606
628
|
/**
|
|
607
629
|
* 可拖拽 折叠面板
|
|
608
|
-
* @
|
|
630
|
+
* @param props
|
|
631
|
+
* @returns
|
|
609
632
|
*/
|
|
610
633
|
export declare const DragCollapse: (props: DragCollapseProps) => JSX.Element;
|
|
611
|
-
export type
|
|
612
|
-
/**
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
/**
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
children: ReactElement;
|
|
629
|
-
/** 是否禁用拖拽节点 */
|
|
630
|
-
isDragDisabled?: boolean;
|
|
631
|
-
dragCancelMove?: boolean;
|
|
632
|
-
component?: boolean;
|
|
633
|
-
className?: string;
|
|
634
|
+
export type DragCollapseFormListHeaderProps = {
|
|
635
|
+
/** Form.List item fieldData */
|
|
636
|
+
formListFieldData: FormListFieldData;
|
|
637
|
+
/** 当前阶段 完整 formItem name */
|
|
638
|
+
formStageCompleteName: string | number | (string | number)[];
|
|
639
|
+
/** Form.List 操作项 */
|
|
640
|
+
operation: FormListOperation;
|
|
641
|
+
uid: string | number;
|
|
642
|
+
};
|
|
643
|
+
export type DragCollapseFormListContentProps = {
|
|
644
|
+
/** Form.List item fieldData */
|
|
645
|
+
formListFieldData: FormListFieldData;
|
|
646
|
+
/** 当前阶段 完整 formItem name */
|
|
647
|
+
formStageCompleteName: string | number | (string | number)[];
|
|
648
|
+
/** Form.List 操作项 */
|
|
649
|
+
operation: FormListOperation;
|
|
650
|
+
uid: string | number;
|
|
634
651
|
};
|
|
635
|
-
export type
|
|
636
|
-
/** 拖拽范围ID */
|
|
637
|
-
droppableId: string;
|
|
638
|
-
children: (dropProvided: DroppableProvided, dropSnapshot: DroppableStateSnapshot) => ReactElement;
|
|
639
|
-
/** 拖拽方向 */
|
|
640
|
-
direction?: "horizontal" | "vertical";
|
|
641
|
-
/** 拖拽范围禁止 */
|
|
642
|
-
isDropDisabled?: boolean;
|
|
652
|
+
export type DragCollapseFormListProps = {
|
|
643
653
|
className?: string;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
*/
|
|
658
|
-
|
|
659
|
-
/**
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
654
|
+
style?: CSSProperties;
|
|
655
|
+
/** formList name */
|
|
656
|
+
formListName: string | number | (string | number)[];
|
|
657
|
+
/** 拖拽面板回调 */
|
|
658
|
+
onDropChange?: (items: TPlainObject[]) => void;
|
|
659
|
+
/** 手风琴模式,只允许单个内容区域展开 */
|
|
660
|
+
accordion?: boolean;
|
|
661
|
+
/** 当前激活 tab 面板的key */
|
|
662
|
+
activeKey?: number | number[];
|
|
663
|
+
/** 所有子面板是否可折叠或指定可折叠触发区域,可选: header | icon | disabled */
|
|
664
|
+
collapsible?: CollapseProps["collapsible"];
|
|
665
|
+
/** 初始化选中面板的 key */
|
|
666
|
+
defaultActiveKey?: number[];
|
|
667
|
+
/** 自定义切换图标 */
|
|
668
|
+
expandIcon?: CollapseProps["expandIcon"];
|
|
669
|
+
/** 设置图标位置,可选:start | end */
|
|
670
|
+
expandIconPosition?: CollapseProps["expandIconPosition"];
|
|
671
|
+
/** 设置折叠面板大小 */
|
|
672
|
+
size?: CollapseProps["size"];
|
|
673
|
+
/** 设置拖拽图标 */
|
|
674
|
+
dragIcon?: ReactElement;
|
|
675
|
+
/** 切换面板的回调 */
|
|
676
|
+
onChange?: (activeKey?: number | string | (number | string)[]) => void;
|
|
677
|
+
/** 禁用拖拽,拖拽图标隐藏 */
|
|
678
|
+
dragDisabled?: boolean;
|
|
679
|
+
/** 折叠面板 header 渲染 */
|
|
680
|
+
header: (data: DragCollapseFormListHeaderProps) => ReactElement;
|
|
681
|
+
/** 折叠面板 content 渲染 */
|
|
682
|
+
content: (data: DragCollapseFormListContentProps) => ReactElement;
|
|
683
|
+
/** 设置面板禁止拖拽 */
|
|
684
|
+
getItemDragDisabled?: (uid: string | number, index: number) => boolean;
|
|
671
685
|
};
|
|
672
686
|
/**
|
|
673
|
-
*
|
|
674
|
-
* @param props
|
|
675
|
-
* @returns
|
|
687
|
+
* 可拖拽 折叠面板+FormList
|
|
676
688
|
* ```
|
|
677
|
-
* 1.
|
|
678
|
-
* 2. uidFieldKey dataList数组对象中唯一值字段key
|
|
689
|
+
* 1. FormList数组中必须要有 uid 唯一值字段
|
|
679
690
|
* ```
|
|
680
691
|
*/
|
|
681
|
-
export declare const
|
|
692
|
+
export declare const DragCollapseFormList: (props: DragCollapseFormListProps) => JSX.Element;
|
|
682
693
|
export interface DrawerOperationProps {
|
|
683
694
|
loading?: boolean;
|
|
684
695
|
okText?: string;
|
|
@@ -707,7 +718,7 @@ declare const DrawerWrapperContent: (props: {
|
|
|
707
718
|
declare const DrawerWrapperFooter: (props: any) => JSX.Element;
|
|
708
719
|
/**
|
|
709
720
|
* 弹窗机制
|
|
710
|
-
* @deprecated 已过时
|
|
721
|
+
* @deprecated 已过时 4.3.0版本移除;请使用 dialogDrawer.open
|
|
711
722
|
* ```
|
|
712
723
|
* 1. 默认 destroyOnClose = true
|
|
713
724
|
* 2. 默认 forceRender = false
|
|
@@ -720,27 +731,6 @@ declare const DrawerWrapperFooter: (props: any) => JSX.Element;
|
|
|
720
731
|
* ```
|
|
721
732
|
*/
|
|
722
733
|
export declare const DrawerWrapper: FC<DrawerWrapperProps> & DrawerWrapperStaticMethods;
|
|
723
|
-
export interface DropdownMenuItem extends ButtonProps {
|
|
724
|
-
text?: string | ReactElement;
|
|
725
|
-
color?: string;
|
|
726
|
-
onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;
|
|
727
|
-
permission?: string;
|
|
728
|
-
needConfirm?: boolean;
|
|
729
|
-
confirmMessage?: string;
|
|
730
|
-
hidden?: boolean;
|
|
731
|
-
confirmModalProps?: DialogModalProps;
|
|
732
|
-
}
|
|
733
|
-
export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
|
|
734
|
-
menuList: Array<DropdownMenuItem | null>;
|
|
735
|
-
isFixed?: boolean;
|
|
736
|
-
}
|
|
737
|
-
/**
|
|
738
|
-
* DropdownMenuWrapper
|
|
739
|
-
* 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能
|
|
740
|
-
* @param props
|
|
741
|
-
* @returns
|
|
742
|
-
*/
|
|
743
|
-
export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => JSX.Element;
|
|
744
734
|
export type TDynamicNodeProps = {
|
|
745
735
|
className?: string;
|
|
746
736
|
getContainer?: HTMLElement | (() => HTMLElement) | string;
|
|
@@ -804,7 +794,7 @@ export type EasyTableProps = {
|
|
|
804
794
|
initialValues?: TPlainObject;
|
|
805
795
|
/**
|
|
806
796
|
* 分页初始化参数,默认值: pageSize = 10
|
|
807
|
-
* @deprecated 已过时
|
|
797
|
+
* @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值
|
|
808
798
|
*/
|
|
809
799
|
initialPaginationParams?: {
|
|
810
800
|
pageSize?: number;
|
|
@@ -966,7 +956,7 @@ export declare const EasyTable: import("react").ForwardRefExoticComponent<EasyTa
|
|
|
966
956
|
*/
|
|
967
957
|
Table: (props: EasyTableTableProps) => JSX.Element;
|
|
968
958
|
/**
|
|
969
|
-
* @deprecated 已过时
|
|
959
|
+
* @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable
|
|
970
960
|
*/
|
|
971
961
|
useEasyTablRef: () => import("react").MutableRefObject<EasyTableRefApi>;
|
|
972
962
|
/** 在 EasyTable子组件内才可使用 */
|
|
@@ -1315,7 +1305,7 @@ export type EditableTableColumn = Omit<ColumnsType["0"], "render"> & {
|
|
|
1315
1305
|
}) => ReactElement | null;
|
|
1316
1306
|
};
|
|
1317
1307
|
export type EditableTableProps = {
|
|
1318
|
-
name:
|
|
1308
|
+
name: EditableTableName;
|
|
1319
1309
|
/**
|
|
1320
1310
|
* ```
|
|
1321
1311
|
* antd table属性
|
|
@@ -1351,7 +1341,7 @@ export type EditorWrapperProps = {
|
|
|
1351
1341
|
};
|
|
1352
1342
|
/**
|
|
1353
1343
|
* 富文本编辑器,配置参考tinymce
|
|
1354
|
-
* @deprecated 已过时
|
|
1344
|
+
* @deprecated 已过时 4.3.0版本移除,请使用 RichTextEditor 组件
|
|
1355
1345
|
* @param props
|
|
1356
1346
|
* @returns
|
|
1357
1347
|
* ```
|
|
@@ -1729,7 +1719,7 @@ declare const ModalWrapperContent: (props: {
|
|
|
1729
1719
|
declare const ModalWrapperFooter: (props: any) => JSX.Element;
|
|
1730
1720
|
/**
|
|
1731
1721
|
* 弹窗机制
|
|
1732
|
-
* @deprecated 已过时
|
|
1722
|
+
* @deprecated 已过时 4.3.0版本移除,后面版本会移除;请使用 dialogModal.open
|
|
1733
1723
|
* ```
|
|
1734
1724
|
* 1. 默认 destroyOnClose = true
|
|
1735
1725
|
* 2. 默认 forceRender = false
|
|
@@ -2269,7 +2259,7 @@ export declare const tableCellRender: {
|
|
|
2269
2259
|
extraContentRender: (handle: (item: TPlainObject) => TableColumnIconRenderProps) => (value: TAny, item: TPlainObject) => any;
|
|
2270
2260
|
/**
|
|
2271
2261
|
* table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始
|
|
2272
|
-
* @deprecated 已过时
|
|
2262
|
+
* @deprecated 已过时 4.3.0版本移除,请使用 serialNumberCell
|
|
2273
2263
|
*/
|
|
2274
2264
|
indexCell: (pageNo?: number, pageSize?: number) => (_value: any, _record: any, index: number) => number;
|
|
2275
2265
|
/**
|
|
@@ -2373,7 +2363,7 @@ export declare const TableTitleTooltip: (props: TableTitleTooltipProps) => JSX.E
|
|
|
2373
2363
|
export type TabsWrapperProps = TabsProps & {
|
|
2374
2364
|
/**
|
|
2375
2365
|
* Tabs Header 提供 Sticky 效果,默认值:true
|
|
2376
|
-
* @deprecated 已废弃
|
|
2366
|
+
* @deprecated 已废弃 4.3.0版本移除,请使用 isFixed 属性
|
|
2377
2367
|
*/
|
|
2378
2368
|
isSticky?: boolean;
|
|
2379
2369
|
/**
|
|
@@ -2716,22 +2706,16 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
2716
2706
|
loadDataFlag?: boolean;
|
|
2717
2707
|
/**
|
|
2718
2708
|
* 菜单结构类型 tile/平铺 fold/折叠;默认:fold
|
|
2709
|
+
* @deprecated 已过期 4.3.0版本移除,请使用 menus
|
|
2719
2710
|
* ```
|
|
2720
2711
|
* 自定义设置 titleRender 后失效
|
|
2721
2712
|
* ```
|
|
2722
2713
|
*/
|
|
2723
2714
|
menuLayoutType?: "tile" | "fold";
|
|
2724
|
-
/**
|
|
2725
|
-
* 菜单触发类型,默认:click
|
|
2726
|
-
* ```
|
|
2727
|
-
* 自定义设置 titleRender 后失效
|
|
2728
|
-
* ```
|
|
2729
|
-
*/
|
|
2730
|
-
menuTriggerType?: "click" | "hover";
|
|
2731
2715
|
/**
|
|
2732
2716
|
* 获取菜单类别
|
|
2733
2717
|
* @param dataItem
|
|
2734
|
-
* @deprecated 已过期
|
|
2718
|
+
* @deprecated 已过期 4.3.0版本移除,请使用 menus
|
|
2735
2719
|
* @returns
|
|
2736
2720
|
* ```
|
|
2737
2721
|
* 1. menuLayoutType = tile 无效
|
|
@@ -2741,11 +2725,20 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
2741
2725
|
getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];
|
|
2742
2726
|
/**
|
|
2743
2727
|
* 根据 menuLayoutType 类型赋值
|
|
2728
|
+
* @deprecated 已过期 4.3.0版本移除,请使用 menuOptions
|
|
2744
2729
|
*/
|
|
2745
2730
|
menuOptions?: {
|
|
2746
2731
|
tile?: (dataItem: TPlainObject) => ButtonOperateProps;
|
|
2747
2732
|
fold?: (dataItem: TPlainObject) => DropdownMenuItem[];
|
|
2748
2733
|
};
|
|
2734
|
+
/**
|
|
2735
|
+
* 菜单触发类型,默认:click
|
|
2736
|
+
* ```
|
|
2737
|
+
* 自定义设置 titleRender 后失效
|
|
2738
|
+
* ```
|
|
2739
|
+
*/
|
|
2740
|
+
menuTriggerType?: "click" | "hover";
|
|
2741
|
+
menus?: (dataItem: any) => ButtonOperateProps;
|
|
2749
2742
|
showSearch?: boolean;
|
|
2750
2743
|
onSearchValueChange?: (searchValue?: string) => void;
|
|
2751
2744
|
searchPlaceholder?: string;
|
|
@@ -2870,12 +2863,13 @@ export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit
|
|
|
2870
2863
|
checkableResponseParentNode?: boolean | undefined;
|
|
2871
2864
|
loadDataFlag?: boolean | undefined;
|
|
2872
2865
|
menuLayoutType?: "tile" | "fold" | undefined;
|
|
2873
|
-
menuTriggerType?: "click" | "hover" | undefined;
|
|
2874
2866
|
getMenuOptions?: ((dataItem: import("@flatbiz/utils").TPlainObject) => ButtonOperateItem[] | DropdownMenuItem[]) | undefined;
|
|
2875
2867
|
menuOptions?: {
|
|
2876
2868
|
tile?: ((dataItem: import("@flatbiz/utils").TPlainObject) => ButtonOperateProps) | undefined;
|
|
2877
2869
|
fold?: ((dataItem: import("@flatbiz/utils").TPlainObject) => DropdownMenuItem[]) | undefined;
|
|
2878
2870
|
} | undefined;
|
|
2871
|
+
menuTriggerType?: "click" | "hover" | undefined;
|
|
2872
|
+
menus?: ((dataItem: any) => ButtonOperateProps) | undefined;
|
|
2879
2873
|
showSearch?: boolean | undefined;
|
|
2880
2874
|
onSearchValueChange?: ((searchValue?: string | undefined) => void) | undefined;
|
|
2881
2875
|
searchPlaceholder?: string | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flatbiz/antd",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.57",
|
|
4
4
|
"description": "flat-biz ui components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -59,7 +59,10 @@
|
|
|
59
59
|
"dequal": "^2.0.3",
|
|
60
60
|
"pubsub-js": "^1.9.4",
|
|
61
61
|
"@tinymce/tinymce-react": "^4.3.0",
|
|
62
|
-
"@
|
|
62
|
+
"@dnd-kit/core": "^6.0.8",
|
|
63
|
+
"@dnd-kit/modifiers": "^6.0.1",
|
|
64
|
+
"@dnd-kit/sortable": "^7.0.2",
|
|
65
|
+
"@dnd-kit/utilities": "^3.2.1"
|
|
63
66
|
},
|
|
64
67
|
"gitHead": "4378d433b73ee28fd7cb4c64bed8571f993eb5a9"
|
|
65
68
|
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as p,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as v,useState as h,isValidElement as g,useMemo as T,createElement as y}from"react";import{B as j}from"./button-wrapper-125fce50.js";import{D as k}from"./dropdown-menu-wrapper-98347af8.js";import{f as C}from"./fba-utils-f9e11d02.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(p,{content:e.hoverTips,zIndex:1e3,children:P("span",{children:e.children})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P("span",{children:e.children})})}return P(v,{children:e.children})};var B=function p(c){var v=h(false),B=v[0],I=v[1];var z=a.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){I(true);return i.finally((function(){I(false)}))}return}));var F=c.operateList.filter((function(r){if(!r)return false;if(g(r)){var e,i;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var n=(i=r.props)==null?void 0:i["v-permission"];if(s(n)){return C.hasPermission(n)}return true}if(t(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var M=T((function(){return F.filter((function(r){if(g(r)){return true}return!r["isFold"]}))}),[F]);var N=T((function(){var r=F.filter((function(r){if(g(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var n=e({},r);delete n.isFold;i.push(n)}));return i}),[F]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:o("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:n(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,n){if(r&&g(r)){return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r},n)}var o=r.text,t=r.onClick,s=r.needConfirm,l=r.confirmMessage,a=r.popconfirmProps,p=r.hoverTips,c=i(r,w);var f=r.type||"link";if(s&&!c.disabled){var u=!!r.color?false:true;return y(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:l,onConfirm:z.bind(null,r),key:n,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}},onCancel:function r(e){e==null?void 0:e.stopPropagation()}}),P(j,e({danger:u},c,{onClick:function r(e){e.stopPropagation()},type:f,children:P(x,{hoverTips:p,tipsType:r.tipsType,children:o},n)})))}return y(j,e({loadingPosition:"center"},c,{type:f,onClick:function r(e){e.stopPropagation();return t==null?void 0:t(e)},key:n}),P(x,{hoverTips:p,tipsType:r.tipsType,children:o}))})),N.length>0?P(k,{menuList:N,children:P(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:P(r,{})})}):null]}))})};B.defaultProps={split:true};export{x as B,B as a};
|
|
3
|
-
//# sourceMappingURL=button-operate-fb40320e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-operate-fb40320e.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n hidden?: boolean;\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: string;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.children}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.children}</span>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n {item}\n </ButtonOperateItemContent>\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={type}\n >\n <ButtonOperateItemContent hoverTips={hoverTips} tipsType={item.tipsType} key={index}>\n {text}\n </ButtonOperateItemContent>\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent hoverTips={hoverTips} tipsType={item.tipsType}>\n {text}\n </ButtonOperateItemContent>\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as n}from"@dimjs/utils/cjs/array";import i from"@ant-design/icons/es/icons/DragOutlined";import{hooks as a}from"@wove/react/cjs/hooks";import{FlexLayout as o}from"@flatbiz/antd";import{toArray as r}from"@flatbiz/utils";import{Collapse as t}from"antd";import{useState as c,useEffect as l}from"react";import{DragDrop as s}from"./drag-drop/index.js";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsx as f,jsxs as m}from"react/jsx-runtime";var u=function u(p){var h=c([]),g=h[0],v=h[1];var y=a.useCallbackRef((function(e){p.onDropChange(e)}));d.useEffectCustom((function(){var e=r(p.defaultActiveKey);if(!p.activeKey&&e.length>0){v(e)}}),[p.defaultActiveKey]);l((function(){v(r(p.activeKey))}),[p.activeKey]);var k=function e(n){var a=p.dragIcon?p.dragIcon:f(i,{});return p.hideDragIcon?n.content:m(o,{fullIndex:1,direction:"horizontal",children:[f("span",{style:{display:"inline-block",marginRight:5},children:a}),f("span",{children:n.content})]})};var x=a.useCallbackRef((function(e){var i=[];if(p.accordion){if(g[0]&&g[0]===e){i=[]}else{i=[e]}}else{var a=g.includes(e);if(a){n.arrayRemove(g,e);i=[].concat(g)}else{i=g.concat(e)}}v(i);if(p.accordion){p.onChange==null?void 0:p.onChange(i.length?i[0]:undefined)}else{p.onChange==null?void 0:p.onChange(i.length?i:undefined)}}));return f(s,{onDragEnd:y,dataList:p.items,uidFieldKey:"key",className:e("drag-collapse-wrapper",p.className),style:p.style,children:function e(n){var i=g.includes(n.key);return f(t,{activeKey:i?n.key:undefined,accordion:true,className:"drag-collapse",collapsible:p.collapsible,expandIcon:p.expandIcon,expandIconPosition:p.expandIconPosition,size:p.size,onChange:x.bind(null,n.key),children:f(t.Panel,{header:k(n),children:f("div",{style:{padding:"10px"},children:n.content})},n.key)})}})};export{u as D};
|
|
3
|
-
//# sourceMappingURL=drag-collapse-8d751c2b.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drag-collapse-8d751c2b.js","sources":["@flatbiz/antd/src/drag-collapse/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { array, classNames } from '@dimjs/utils';\nimport { FlexLayout } from '@flatbiz/antd';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Collapse, CollapseProps } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, useEffect, useState } from 'react';\nimport { DragDrop } from '../drag-drop';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\ntype DragCollapseItemKey = number | string;\ntype DragCollapseItem = { key: DragCollapseItemKey; header: ReactNode; content: ReactElement };\ntype DragCollapseProps = {\n /** 面板数据 */\n items: DragCollapseItem[];\n /** 拖拽面板回调 */\n onDropChange: (items: DragCollapseItem[]) => void;\n /** 手风琴模式,只允许单个内容区域展开 */\n accordion?: boolean;\n /** 当前激活 tab 面板的key */\n activeKey?: DragCollapseItemKey | DragCollapseItemKey[];\n /** 所有子面板是否可折叠或指定可折叠触发区域,可选: header | icon | disabled */\n collapsible?: CollapseProps['collapsible'];\n /** 初始化选中面板的 key */\n defaultActiveKey?: DragCollapseItemKey[];\n /** 自定义切换图标\t */\n expandIcon?: CollapseProps['expandIcon'];\n /** 设置图标位置,可选:start | end */\n expandIconPosition?: CollapseProps['expandIconPosition'];\n /** 设置折叠面板大小\t */\n size?: CollapseProps['size'];\n /** 隐藏拖拽图标,默认不隐藏 */\n hideDragIcon?: boolean;\n /** 设置拖拽图标 */\n dragIcon?: ReactElement;\n /** 切换面板的回调\t */\n onChange?: (activeKey?: DragCollapseItemKey | DragCollapseItemKey[]) => void;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * 可拖拽 折叠面板\n * @demo https://fex.qa.tcshuke.com/docs/admin/main/move/sort\n */\nexport const DragCollapse = (props: DragCollapseProps) => {\n const [dragActiveKeys, setDragActiveKeys] = useState<DragCollapseItemKey[]>([]);\n const onDragEnd = hooks.useCallbackRef((dataList) => {\n props.onDropChange(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setDragActiveKeys(defaultActiveKeys as DragCollapseItemKey[]);\n }\n }, [props.defaultActiveKey]);\n\n useEffect(() => {\n setDragActiveKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const header = (item: DragCollapseItem) => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.hideDragIcon ? (\n item.content\n ) : (\n <FlexLayout fullIndex={1} direction=\"horizontal\">\n <span style={{ display: 'inline-block', marginRight: 5 }}>{dragIcon}</span>\n <span>{item.content}</span>\n </FlexLayout>\n );\n };\n\n const onChange = hooks.useCallbackRef((key: DragCollapseItemKey) => {\n let dragActiveKeysNew: DragCollapseItemKey[] = [];\n if (props.accordion) {\n if (dragActiveKeys[0] && dragActiveKeys[0] === key) {\n dragActiveKeysNew = [];\n } else {\n dragActiveKeysNew = [key];\n }\n } else {\n const has = dragActiveKeys.includes(key);\n if (has) {\n array.arrayRemove(dragActiveKeys, key);\n dragActiveKeysNew = [...dragActiveKeys];\n } else {\n dragActiveKeysNew = dragActiveKeys.concat(key);\n }\n }\n setDragActiveKeys(dragActiveKeysNew);\n if (props.accordion) {\n props.onChange?.(dragActiveKeysNew.length ? dragActiveKeysNew[0] : undefined);\n } else {\n props.onChange?.(dragActiveKeysNew.length ? dragActiveKeysNew : undefined);\n }\n });\n\n return (\n <DragDrop\n onDragEnd={onDragEnd}\n dataList={props.items}\n uidFieldKey=\"key\"\n className={classNames('drag-collapse-wrapper', props.className)}\n style={props.style}\n >\n {(item) => {\n const isActive = dragActiveKeys.includes(item.key);\n return (\n <Collapse\n activeKey={isActive ? item.key : undefined}\n accordion\n className=\"drag-collapse\"\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={onChange.bind(null, item.key)}\n >\n <Collapse.Panel header={header(item)} key={item.key}>\n <div style={{ padding: '10px' }}>{item.content}</div>\n </Collapse.Panel>\n </Collapse>\n );\n }}\n </DragDrop>\n );\n};\n"],"names":["DragCollapse","props","_useState","useState","dragActiveKeys","setDragActiveKeys","onDragEnd","_hooks","useCallbackRef","dataList","onDropChange","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","activeKey","length","useEffect","header","item","dragIcon","_jsx","_DragOutlined","hideDragIcon","content","_jsxs","FlexLayout","fullIndex","direction","children","style","display","marginRight","onChange","key","dragActiveKeysNew","accordion","has","includes","_array","arrayRemove","concat","undefined","DragDrop","items","uidFieldKey","className","_classNames","isActive","Collapse","collapsible","expandIcon","expandIconPosition","size","bind","Panel","padding"],"mappings":";wgBA8CaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAAC,EAA4CC,EAAgC,IAArEC,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GACxC,IAAMI,EAAYC,EAAMC,gBAAe,SAACC,GACtCR,EAAMS,aAAaD,EACrB,IAEAE,EAASC,iBAAgB,WACvB,IAAMC,EAAoBC,EAAQb,EAAMc,kBACxC,IAAKd,EAAMe,WAAaH,EAAkBI,OAAS,EAAG,CACpDZ,EAAkBQ,EACpB,CACF,GAAG,CAACZ,EAAMc,mBAEVG,GAAU,WACRb,EAAkBS,EAAQb,EAAMe,WAClC,GAAG,CAACf,EAAMe,YAEV,IAAMG,EAAS,SAATA,EAAUC,GACd,IAAMC,EAAWpB,EAAMoB,SAAWpB,EAAMoB,SAAWC,EAAAC,EAAgB,CAAA,GACnE,OAAOtB,EAAMuB,aACXJ,EAAKK,QAELC,EAACC,EAAU,CAACC,UAAW,EAAGC,UAAU,aAAYC,UAC9CR,EAAA,OAAA,CAAMS,MAAO,CAAEC,QAAS,eAAgBC,YAAa,GAAIH,SAAET,IAC3DC,EAAA,OAAA,CAAAQ,SAAOV,EAAKK,cAKlB,IAAMS,EAAW3B,EAAMC,gBAAe,SAAC2B,GACrC,IAAIC,EAA2C,GAC/C,GAAInC,EAAMoC,UAAW,CACnB,GAAIjC,EAAe,IAAMA,EAAe,KAAO+B,EAAK,CAClDC,EAAoB,EACtB,KAAO,CACLA,EAAoB,CAACD,EACvB,CACF,KAAO,CACL,IAAMG,EAAMlC,EAAemC,SAASJ,GACpC,GAAIG,EAAK,CACPE,EAAMC,YAAYrC,EAAgB+B,GAClCC,EAAiBM,GAAAA,OAAOtC,EAC1B,KAAO,CACLgC,EAAoBhC,EAAesC,OAAOP,EAC5C,CACF,CACA9B,EAAkB+B,GAClB,GAAInC,EAAMoC,UAAW,CACnBpC,EAAMiC,UAAQ,UAAA,EAAdjC,EAAMiC,SAAWE,EAAkBnB,OAASmB,EAAkB,GAAKO,UACrE,KAAO,CACL1C,EAAMiC,UAANjC,UAAAA,EAAAA,EAAMiC,SAAWE,EAAkBnB,OAASmB,EAAoBO,UAClE,CACF,IAEA,OACErB,EAACsB,EAAQ,CACPtC,UAAWA,EACXG,SAAUR,EAAM4C,MAChBC,YAAY,MACZC,UAAWC,EAAW,wBAAyB/C,EAAM8C,WACrDhB,MAAO9B,EAAM8B,MAAMD,SAElB,SAAAA,EAACV,GACA,IAAM6B,EAAW7C,EAAemC,SAASnB,EAAKe,KAC9C,OACEb,EAAC4B,EAAQ,CACPlC,UAAWiC,EAAW7B,EAAKe,IAAMQ,UACjCN,UAAS,KACTU,UAAU,gBACVI,YAAalD,EAAMkD,YACnBC,WAAYnD,EAAMmD,WAClBC,mBAAoBpD,EAAMoD,mBAC1BC,KAAMrD,EAAMqD,KACZpB,SAAUA,EAASqB,KAAK,KAAMnC,EAAKe,KAAKL,SAExCR,EAAC4B,EAASM,MAAK,CAACrC,OAAQA,EAAOC,GAAMU,SACnCR,EAAA,MAAA,CAAKS,MAAO,CAAE0B,QAAS,QAAS3B,SAAEV,EAAKK,WADEL,EAAKe,MAKtD,GAGN"}
|
package/esm/drag-drop/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.droppable-item-horizontal{display:flex}
|
package/esm/drag-drop/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
import './../fba-utils/index.css';
|
|
3
|
-
import './index.css';
|
|
4
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{f as r}from"../fba-utils-f9e11d02.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{arrayReorder as a}from"@flatbiz/utils";import{DragDropContext as t}from"@hello-pangea/dnd";import{Fragment as o}from"react";import{D as n,a as d}from"../droppable-item-708ec229.js";import{jsx as s,jsxs as l}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../_rollupPluginBabelHelpers-1f4d8910.js";var m=function r(m){var p=i.useCallbackRef((function(r,e){if(!r.destination){return}if(r.destination.index===r.source.index){return}var i=a(m.dataList,r.source.index,r.destination.index);m.onDragEnd(i,r,e)}));var c=i.useId(undefined,"droppable");return s("div",{className:e("drag-drop",m.className),style:m.style,children:s(t,{onDragEnd:p,children:s(n,{droppableId:c,direction:m.direction,children:function r(e){return l(o,{children:[m.dataList.map((function(r,e){var i=""+r[m.uidFieldKey];return s(d,{draggableId:i,index:e,children:m.children(r,e)},i)})),e.placeholder]})}})})})};var p=r.attachPropertiesToComponent(m,{DraggableItem:d,DroppableItem:n});export{p as DragDrop};
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-drop/drag-drop.tsx","@flatbiz/antd/src/drag-drop/index.ts"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { arrayReorder, TAny } from '@flatbiz/utils';\nimport {\n DragDropContext,\n DroppableProvided,\n DropResult,\n OnDragEndResponder,\n ResponderProvided,\n} from '@hello-pangea/dnd';\nimport { hooks } from '@wove/react';\nimport { CSSProperties, Fragment, ReactElement } from 'react';\nimport { DraggableItem } from './draggable-item';\nimport { DroppableItem } from './droppable-item';\n\nexport type DragDropProps<T> = {\n /** dataList数组对象中唯一值字段key */\n uidFieldKey: string;\n dataList: T[];\n children: (item: T, index: number) => ReactElement;\n /** 拖拽方向 */\n direction?: 'horizontal' | 'vertical';\n /** 拖拽结束回调 */\n onDragEnd: (dataList: T[], result: DropResult, provided: ResponderProvided) => void;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * 拖拽(单个)\n * @param props\n * @returns\n * ```\n * 1. dataList数组中必须要有唯一值字段\n * 2. uidFieldKey dataList数组对象中唯一值字段key\n * ```\n */\nexport const DragDrop = <T extends object = TAny>(props: DragDropProps<T>) => {\n const onDragEnd: OnDragEndResponder = hooks.useCallbackRef((result, provided) => {\n if (!result.destination) {\n return;\n }\n if (result.destination.index === result.source.index) {\n return;\n }\n const sortDataList = arrayReorder(props.dataList, result.source.index, result.destination.index);\n props.onDragEnd(sortDataList as T[], result, provided);\n });\n\n const uid = hooks.useId(undefined, 'droppable');\n\n return (\n <div className={classNames('drag-drop', props.className)} style={props.style}>\n <DragDropContext onDragEnd={onDragEnd}>\n <DroppableItem droppableId={uid} direction={props.direction}>\n {(dropProvided: DroppableProvided) => {\n return (\n <Fragment>\n {props.dataList.map((item, index) => {\n const draggableId = `${item[props.uidFieldKey]}`;\n return (\n <DraggableItem draggableId={draggableId} key={draggableId} index={index}>\n {props.children(item, index)}\n </DraggableItem>\n );\n })}\n {dropProvided.placeholder}\n </Fragment>\n );\n }}\n </DroppableItem>\n </DragDropContext>\n </div>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { DragDrop as DragDropInner } from './drag-drop';\nimport { DraggableItem } from './draggable-item';\nimport { DroppableItem } from './droppable-item';\nimport './style.less';\n\nexport const DragDrop = fbaUtils.attachPropertiesToComponent(DragDropInner, {\n /**\n * 拖拽节点\n * @demo https://fex.qa.tcshuke.com/docs/admin/main/move/sort\n * ```\n * 1. index 为索引值,从0开始递增,必须正确传递\n * 2. droppableIndex 为父节点 DroppableItem 的索引值\n * 3. 当 DraggableItem处在map循环中注意事项\n * A. 如果为跟节点 key 赋值要与 draggableId 相同\n * ```\n */\n DraggableItem: DraggableItem,\n /**\n * 拖拽范围设置\n * @demo https://fex.qa.tcshuke.com/docs/admin/main/move/sort\n */\n DroppableItem: DroppableItem,\n});\n"],"names":["DragDrop","props","onDragEnd","_hooks","useCallbackRef","result","provided","destination","index","source","sortDataList","arrayReorder","dataList","uid","useId","undefined","_jsx","className","_classNames","style","children","DragDropContext","DroppableItem","droppableId","direction","dropProvided","_jsxs","Fragment","map","item","draggableId","uidFieldKey","DraggableItem","placeholder","fbaUtils","attachPropertiesToComponent","DragDropInner"],"mappings":";qdAoCO,IAAMA,EAAW,SAAXA,EAAqCC,GAChD,IAAMC,EAAgCC,EAAMC,gBAAe,SAACC,EAAQC,GAClE,IAAKD,EAAOE,YAAa,CACvB,MACF,CACA,GAAIF,EAAOE,YAAYC,QAAUH,EAAOI,OAAOD,MAAO,CACpD,MACF,CACA,IAAME,EAAeC,EAAaV,EAAMW,SAAUP,EAAOI,OAAOD,MAAOH,EAAOE,YAAYC,OAC1FP,EAAMC,UAAUQ,EAAqBL,EAAQC,EAC/C,IAEA,IAAMO,EAAMV,EAAMW,MAAMC,UAAW,aAEnC,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAW,YAAajB,EAAMgB,WAAYE,MAAOlB,EAAMkB,MAAMC,SAC3EJ,EAACK,EAAe,CAACnB,UAAWA,EAAUkB,SACpCJ,EAACM,EAAa,CAACC,YAAaV,EAAKW,UAAWvB,EAAMuB,UAAUJ,SACzD,SAAAA,EAACK,GACA,OACEC,EAACC,EAAQ,CAAAP,SAAA,CACNnB,EAAMW,SAASgB,KAAI,SAACC,EAAMrB,GACzB,IAAMsB,EAAiBD,GAAAA,EAAK5B,EAAM8B,aAClC,OACEf,EAACgB,EAAa,CAACF,YAAaA,EAA+BtB,MAAOA,EAAMY,SACrEnB,EAAMmB,SAASS,EAAMrB,IADsBsB,EAIlD,IACCL,EAAaQ,cAGpB,OAKV,ECnEO,IAAMjC,EAAWkC,EAASC,4BAA4BC,EAAe,CAW1EJ,cAAeA,EAKfV,cAAeA"}
|
|
File without changes
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
import './index.css';
|
|
3
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
export{D as DragDropMulti}from"../drag-drop-multi-e8cae136.js";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"@hello-pangea/dnd";import"react";import"../droppable-item-708ec229.js";import"@dimjs/utils/cjs/class-names";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"react/jsx-runtime";
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{hooks as r}from"@wove/react/cjs/hooks";import{arrayReorder as a}from"@flatbiz/utils";import{DragDropContext as t}from"@hello-pangea/dnd";import{Fragment as i}from"react";import{D as e,a as d}from"./droppable-item-708ec229.js";import{jsx as n,jsxs as o}from"react/jsx-runtime";var s=function s(l){var p=r.useCallbackRef((function(r,t){if(!r.destination){return}var i=r.destination.droppableId;var e=i.split("-");var d=Number(e[1]);var n=r.destination.index;var o=r.source.droppableId;e=o.split("-");var s=Number(e[1]);var p=r.source.index;if(d===s){l.dataList[d]=a(l.dataList[d],p,n);l.onDragEnd(l.dataList,r,t);return}var c=l.dataList[s];var u=l.dataList[d];u.splice(n,0,c[p]);c.splice(p,1);l.dataList[s]=c;l.dataList[d]=u;l.onDragEnd(l.dataList,r,t)}));return n(t,{onDragEnd:p,children:l.dataList.map((function(r,a){return n(e,{droppableId:"droppable-"+a,direction:l.direction,children:function a(t){return o(i,{children:[r.map((function(r,a){return n(d,{draggableId:r[l.uidFieldKey],index:a,children:l.children(r,a)},r[l.uidFieldKey])})),t.placeholder]})}},a)}))})};export{s as D};
|
|
3
|
-
//# sourceMappingURL=drag-drop-multi-e8cae136.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drag-drop-multi-e8cae136.js","sources":["@flatbiz/antd/src/drag-drop-multi/drag-drop-multi.tsx"],"sourcesContent":["import { arrayReorder, TAny } from '@flatbiz/utils';\nimport {\n DragDropContext,\n DroppableProvided,\n DropResult,\n OnDragEndResponder,\n ResponderProvided,\n} from '@hello-pangea/dnd';\nimport { hooks } from '@wove/react';\nimport { Fragment, ReactElement } from 'react';\nimport { DraggableItem } from '../drag-drop/draggable-item';\nimport { DroppableItem } from '../drag-drop/droppable-item';\n\nexport type DragDropMultiProps<T> = {\n uidFieldKey: string;\n dataList: T[][];\n children: (item: T, index: number) => ReactElement;\n direction?: 'horizontal' | 'vertical';\n onDragEnd: (dataList: T[][], result: DropResult, provided: ResponderProvided) => void;\n};\n\n/**\n * 拖拽(多个)\n * @param props\n * @returns\n * ```\n * 1. dataList数组中必须要有唯一值字段\n * 2. uidFieldKey dataList数组对象中唯一值字段key\n * ```\n */\nexport const DragDropMulti = <T extends object = TAny>(props: DragDropMultiProps<T>) => {\n const onDragEnd: OnDragEndResponder = hooks.useCallbackRef((result, provided) => {\n if (!result.destination) {\n return;\n }\n const targetDroppableId = result.destination.droppableId;\n let tempList = targetDroppableId.split('-');\n const targetRowIndex = Number(tempList[1]);\n const targetRowCellIndex = result.destination.index;\n\n const sourceDroppableId = result.source.droppableId;\n tempList = sourceDroppableId.split('-');\n const sourceRowIndex = Number(tempList[1]);\n const sourceRowCellIndex = result.source.index;\n\n if (targetRowIndex === sourceRowIndex) {\n props.dataList[targetRowIndex] = arrayReorder(\n props.dataList[targetRowIndex],\n sourceRowCellIndex,\n targetRowCellIndex,\n );\n props.onDragEnd(props.dataList, result, provided);\n return;\n }\n const sourceList = props.dataList[sourceRowIndex];\n const targetList = props.dataList[targetRowIndex];\n targetList.splice(targetRowCellIndex, 0, sourceList[sourceRowCellIndex]);\n sourceList.splice(sourceRowCellIndex, 1);\n props.dataList[sourceRowIndex] = sourceList;\n props.dataList[targetRowIndex] = targetList;\n props.onDragEnd(props.dataList, result, provided);\n });\n\n return (\n <DragDropContext onDragEnd={onDragEnd}>\n {props.dataList.map((item, index) => {\n return (\n <DroppableItem droppableId={`droppable-${index}`} direction={props.direction} key={index}>\n {(dropProvided: DroppableProvided) => {\n return (\n <Fragment>\n {item.map((innerItem, innerIndex) => (\n <DraggableItem\n draggableId={innerItem[props.uidFieldKey]}\n key={innerItem[props.uidFieldKey]}\n index={innerIndex}\n >\n {props.children(innerItem, innerIndex)}\n </DraggableItem>\n ))}\n {dropProvided.placeholder}\n </Fragment>\n );\n }}\n </DroppableItem>\n );\n })}\n </DragDropContext>\n );\n};\n"],"names":["DragDropMulti","props","onDragEnd","_hooks","useCallbackRef","result","provided","destination","targetDroppableId","droppableId","tempList","split","targetRowIndex","Number","targetRowCellIndex","index","sourceDroppableId","source","sourceRowIndex","sourceRowCellIndex","dataList","arrayReorder","sourceList","targetList","splice","_jsx","DragDropContext","children","map","item","DroppableItem","direction","dropProvided","_jsxs","Fragment","innerItem","innerIndex","DraggableItem","draggableId","uidFieldKey","placeholder"],"mappings":";+RA8BaA,EAAgB,SAAhBA,EAA0CC,GACrD,IAAMC,EAAgCC,EAAMC,gBAAe,SAACC,EAAQC,GAClE,IAAKD,EAAOE,YAAa,CACvB,MACF,CACA,IAAMC,EAAoBH,EAAOE,YAAYE,YAC7C,IAAIC,EAAWF,EAAkBG,MAAM,KACvC,IAAMC,EAAiBC,OAAOH,EAAS,IACvC,IAAMI,EAAqBT,EAAOE,YAAYQ,MAE9C,IAAMC,EAAoBX,EAAOY,OAAOR,YACxCC,EAAWM,EAAkBL,MAAM,KACnC,IAAMO,EAAiBL,OAAOH,EAAS,IACvC,IAAMS,EAAqBd,EAAOY,OAAOF,MAEzC,GAAIH,IAAmBM,EAAgB,CACrCjB,EAAMmB,SAASR,GAAkBS,EAC/BpB,EAAMmB,SAASR,GACfO,EACAL,GAEFb,EAAMC,UAAUD,EAAMmB,SAAUf,EAAQC,GACxC,MACF,CACA,IAAMgB,EAAarB,EAAMmB,SAASF,GAClC,IAAMK,EAAatB,EAAMmB,SAASR,GAClCW,EAAWC,OAAOV,EAAoB,EAAGQ,EAAWH,IACpDG,EAAWE,OAAOL,EAAoB,GACtClB,EAAMmB,SAASF,GAAkBI,EACjCrB,EAAMmB,SAASR,GAAkBW,EACjCtB,EAAMC,UAAUD,EAAMmB,SAAUf,EAAQC,EAC1C,IAEA,OACEmB,EAACC,EAAe,CAACxB,UAAWA,EAAUyB,SACnC1B,EAAMmB,SAASQ,KAAI,SAACC,EAAMd,GACzB,OACEU,EAACK,EAAa,CAACrB,yBAA0BM,EAASgB,UAAW9B,EAAM8B,UAAUJ,SAC1E,SAAAA,EAACK,GACA,OACEC,EAACC,EAAQ,CAAAP,SAAA,CACNE,EAAKD,KAAI,SAACO,EAAWC,GAAU,OAC9BX,EAACY,EAAa,CACZC,YAAaH,EAAUlC,EAAMsC,aAE7BxB,MAAOqB,EAAWT,SAEjB1B,EAAM0B,SAASQ,EAAWC,IAHtBD,EAAUlC,EAAMsC,aAIP,IAEjBP,EAAaQ,cAGpB,GAhBiFzB,OAsB7F"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import e from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{_ as r,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as n}from"@wove/react/cjs/hooks";import{Dropdown as i}from"antd";import{Fragment as t,useMemo as a,createElement as l}from"react";import{B as s}from"./button-wrapper-125fce50.js";import{d as f}from"./dialog-confirm-74fc9337.js";import{f as d}from"./fba-utils-f9e11d02.js";import{F as m}from"./flex-layout-8d2b668b.js";import{jsxs as c,jsx as u}from"react/jsx-runtime";function p(e){var r=true;var o=false;while(r){if(e.tagName==="HTML"||e.tagName==="BODY"){r=false;o=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){o=true;r=false}else{if(!e||!e.parentNode){r=false}else{e=e.parentNode}}}}return o}var v=["menuList"],g=["text","color","permission","needConfirm","confirmMessage","hidden","type","style","confirmModalProps"];var y=function y(h){var C=h.menuList,k=r(h,v);var P=n.useId(undefined,"DropdownMenuWrapper");var x=n.useCallbackRef((function(r,n){n.stopPropagation();if(r.needConfirm){var i;f.open(o({title:c(m,{direction:"horizontal",fullIndex:1,gap:8,children:[u(e,{style:{color:"#faad14"}}),u("span",{children:r.text})]}),content:u(t,{children:r.confirmMessage}),onOk:(i=r.onClick)==null?void 0:i.bind(null,n),okButtonProps:{loadingPosition:"center"}},r.confirmModalProps));return Promise.resolve()}return r.onClick==null?void 0:r.onClick(n)}));var M=document.querySelector("."+P);var b=a((function(){if(h.isFixed||M&&p(M)){return undefined}return M}),[h.isFixed,M]);var j=a((function(){var e=[];C.filter(Boolean).forEach((function(n,i){if(!n)return;var t=n.text,a=n.color,f=n.permission,m=n.needConfirm,c=n.confirmMessage,u=n.hidden,p=n.type,v=n.style,y=n.confirmModalProps,h=r(n,g);if(u)return;if(f&&!d.hasPermission(f))return;var C=a?o({color:a},v):v;var k=p||"link";e.push({key:i,label:l(s,o({loadingPosition:"center",size:"small"},h,{type:k,style:C,key:i,onClick:x.bind(null,o({},n,{needConfirm:m,confirmMessage:c,confirmModalProps:y}))}),t)})}));return e}),[C,x]);return u("div",{className:P,style:{position:"relative"},children:u(i,o({trigger:(k==null?void 0:k.trigger)||["hover"],getPopupContainer:b?function(){return M}:undefined,arrow:{pointAtCenter:true}},k,{overlayStyle:o({zIndex:9},k.overlayStyle),menu:{items:j},children:h.children}))})};export{y as D};
|
|
3
|
-
//# sourceMappingURL=dropdown-menu-wrapper-98347af8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-wrapper-98347af8.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.text}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n color,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n style,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const newStyle = color ? { color, ...style } : style;\n const buttonType = type || 'link';\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n {...otherProps}\n type={buttonType}\n style={newStyle}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={clsName} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","stopPropagation","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","text","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","newStyle","buttonType","push","key","label","_createElement","ButtonWrapper","size","className","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{Draggable as a,Droppable as i}from"@hello-pangea/dnd";import{cloneElement as n}from"react";import{jsx as d}from"react/jsx-runtime";var l=function i(l){return d(a,{draggableId:l.draggableId,index:l.index,isDragDisabled:l.isDragDisabled,children:function a(i,s){var o=r({},i.draggableProps,i.dragHandleProps,{ref:i.innerRef,className:e("draggable-item",{"draggable-item-dragging":s.isDragging},l.className)});if(l.dragCancelMove){o.style={}}if(l.component===false){return n(l.children,o)}return d("div",r({},o,{children:l.children}))}})};var s=function r(a){var n=a.direction||"vertical";return d(i,{droppableId:a.droppableId,direction:n,renderClone:a.renderClone,isDropDisabled:a.isDropDisabled,type:a.type,children:function r(i,l){return d("div",{ref:i.innerRef,className:e("droppable-item","droppable-item-"+n,{"droppable-item-draggingOver":l.isDraggingOver},a.className),children:a.children(i,l)})}})};export{s as D,l as a};
|
|
3
|
-
//# sourceMappingURL=droppable-item-708ec229.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"droppable-item-708ec229.js","sources":["@flatbiz/antd/src/drag-drop/draggable-item.tsx","@flatbiz/antd/src/drag-drop/droppable-item.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Draggable, DraggableProvided, DraggableStateSnapshot } from '@hello-pangea/dnd';\nimport { cloneElement, ReactElement } from 'react';\n\nexport type DraggableItemProps = {\n /** 拖拽节点ID */\n draggableId: string;\n /** 拖拽节点数组索引 */\n index: number;\n children: ReactElement;\n /** 是否禁用拖拽节点 */\n isDragDisabled?: boolean;\n // 拖动取消移动\n dragCancelMove?: boolean;\n // 设置 DraggableItem 渲染元素,为 false 则不创建 DOM 节点\n component?: boolean;\n className?: string;\n};\n\n/**\n * 拖拽节点\n * @param props\n * @returns\n * ```\n * 1. index 为索引值,从0开始递增,必须正确传递\n * 2. droppableIndex 为父节点 DroppableItem 的索引值\n * 3. 当 DraggableItem处在map循环中注意事项\n * A. 如果为跟节点 key 赋值要与 draggableId 相同\n * ```\n */\nexport const DraggableItem = (props: DraggableItemProps) => {\n return (\n <Draggable draggableId={props.draggableId} index={props.index} isDragDisabled={props.isDragDisabled}>\n {(dragProvided: DraggableProvided, dragSnapshot: DraggableStateSnapshot) => {\n const params = {\n ...dragProvided.draggableProps,\n ...dragProvided.dragHandleProps,\n ref: dragProvided.innerRef,\n className: classNames(\n 'draggable-item',\n { 'draggable-item-dragging': dragSnapshot.isDragging },\n props.className,\n ),\n };\n if (props.dragCancelMove) {\n params.style = {};\n }\n if (props.component === false) {\n return cloneElement(props.children, params);\n }\n return <div {...params}>{props.children}</div>;\n }}\n </Draggable>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { DraggableChildrenFn, Droppable, DroppableProvided, DroppableStateSnapshot } from '@hello-pangea/dnd';\nimport { ReactElement } from 'react';\n\nexport type DroppableItemProps = {\n /** 拖拽范围ID */\n droppableId: string;\n children: (dropProvided: DroppableProvided, dropSnapshot: DroppableStateSnapshot) => ReactElement;\n /** 拖拽方向 */\n direction?: 'horizontal' | 'vertical';\n /** 拖拽范围禁止 */\n isDropDisabled?: boolean;\n className?: string;\n renderClone?: DraggableChildrenFn;\n type?: string;\n};\n\n/**\n * 拖拽范围设置\n * @param props\n * @returns\n */\nexport const DroppableItem = (props: DroppableItemProps) => {\n const direction = props.direction || 'vertical';\n return (\n <Droppable\n droppableId={props.droppableId}\n direction={direction}\n renderClone={props.renderClone}\n isDropDisabled={props.isDropDisabled}\n type={props.type}\n >\n {(dropProvided: DroppableProvided, dropSnapshot: DroppableStateSnapshot) => (\n <div\n ref={dropProvided.innerRef}\n className={classNames(\n 'droppable-item',\n `droppable-item-${direction}`,\n {\n 'droppable-item-draggingOver': dropSnapshot.isDraggingOver,\n },\n props.className,\n )}\n >\n {props.children(dropProvided, dropSnapshot)}\n </div>\n )}\n </Droppable>\n );\n};\n"],"names":["DraggableItem","props","_jsx","Draggable","draggableId","index","isDragDisabled","children","dragProvided","dragSnapshot","params","_extends","draggableProps","dragHandleProps","ref","innerRef","className","_classNames","isDragging","dragCancelMove","style","component","cloneElement","DroppableItem","direction","Droppable","droppableId","renderClone","isDropDisabled","type","dropProvided","dropSnapshot","isDraggingOver"],"mappings":";oQA8BaA,EAAgB,SAAhBA,EAAiBC,GAC5B,OACEC,EAACC,EAAS,CAACC,YAAaH,EAAMG,YAAaC,MAAOJ,EAAMI,MAAOC,eAAgBL,EAAMK,eAAeC,SACjG,SAAAA,EAACC,EAAiCC,GACjC,IAAMC,EAAMC,EACPH,CAAAA,EAAAA,EAAaI,eACbJ,EAAaK,gBAAe,CAC/BC,IAAKN,EAAaO,SAClBC,UAAWC,EACT,iBACA,CAAE,0BAA2BR,EAAaS,YAC1CjB,EAAMe,aAGV,GAAIf,EAAMkB,eAAgB,CACxBT,EAAOU,MAAQ,EACjB,CACA,GAAInB,EAAMoB,YAAc,MAAO,CAC7B,OAAOC,EAAarB,EAAMM,SAAUG,EACtC,CACA,OAAOR,EAAA,MAAAS,EAAA,CAAA,EAASD,EAAM,CAAAH,SAAGN,EAAMM,WACjC,GAGN,MChCagB,EAAgB,SAAhBA,EAAiBtB,GAC5B,IAAMuB,EAAYvB,EAAMuB,WAAa,WACrC,OACEtB,EAACuB,EAAS,CACRC,YAAazB,EAAMyB,YACnBF,UAAWA,EACXG,YAAa1B,EAAM0B,YACnBC,eAAgB3B,EAAM2B,eACtBC,KAAM5B,EAAM4B,KAAKtB,SAEhB,SAAAA,EAACuB,EAAiCC,GAAoC,OACrE7B,EAAA,MAAA,CACEY,IAAKgB,EAAaf,SAClBC,UAAWC,EACT,iBAAgB,kBACEO,EAClB,CACE,8BAA+BO,EAAaC,gBAE9C/B,EAAMe,WACNT,SAEDN,EAAMM,SAASuB,EAAcC,IAC1B,GAId"}
|