@pointcloud/pcloud-components 1.0.6 → 1.0.8

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.
@@ -2,11 +2,11 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["inputSearch"];
6
- import React, { useState, useRef, useImperativeHandle, useContext } from 'react';
7
- import { Input, Button, Collapse } from 'antd';
5
+ var _excluded = ["inputSearch", "placeholder"];
6
+ import React, { useState, useImperativeHandle, useContext, useMemo, useCallback } from 'react';
7
+ import { Input, Button, Collapse, Row } from 'antd';
8
8
  import classNames from 'classnames';
9
- import FormFilter from "./FormFilter";
9
+ import DForm from "../DForm";
10
10
  import { ConfigContext } from "../ConfigProvider";
11
11
  import "./styles/index.less";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -16,13 +16,15 @@ var AdvancedFilter = function AdvancedFilter(props) {
16
16
  right = props.right,
17
17
  _props$inputProps = props.inputProps,
18
18
  inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
19
- formItemConfig = props.formItemConfig,
19
+ items = props.items,
20
20
  fRef = props.fRef,
21
21
  icon = props.icon,
22
22
  onValuesChange = props.onValuesChange,
23
23
  onSearch = props.onSearch,
24
24
  onReset = props.onReset;
25
25
  var inputSearch = inputProps.inputSearch,
26
+ _inputProps$placehold = inputProps.placeholder,
27
+ placeholder = _inputProps$placehold === void 0 ? '请输入关键字查询' : _inputProps$placehold,
26
28
  otherInputProps = _objectWithoutProperties(inputProps, _excluded);
27
29
  var _useContext = useContext(ConfigContext),
28
30
  prefixCls = _useContext.prefixCls,
@@ -37,30 +39,40 @@ var AdvancedFilter = function AdvancedFilter(props) {
37
39
  _useState4 = _slicedToArray(_useState3, 2),
38
40
  inputValue = _useState4[0],
39
41
  setInputValue = _useState4[1];
40
- var inputRef = useRef(null);
41
- var formRef = useRef(null);
42
- var resetFields = function resetFields() {
43
- var _formRef$current;
42
+ var inputRef = React.useRef(null);
43
+ var _DForm$useForm = DForm.useForm(),
44
+ _DForm$useForm2 = _slicedToArray(_DForm$useForm, 1),
45
+ form = _DForm$useForm2[0];
46
+ var resetFields = useCallback(function () {
44
47
  setInputValue('');
45
- formRef === null || formRef === void 0 || (_formRef$current = formRef.current) === null || _formRef$current === void 0 || _formRef$current.resetFields();
46
- };
48
+ form.resetFields();
49
+ }, [form]);
47
50
  useImperativeHandle(fRef, function () {
48
- var _formRef$current2;
49
51
  return {
50
52
  resetFields: resetFields,
51
- form: (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.form
53
+ form: form
52
54
  };
53
55
  });
54
- var handleSearch = function handleSearch(values) {
56
+ var handleSearch = useCallback(function (values) {
55
57
  var _inputRef$current;
56
58
  var value = inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || (_inputRef$current = _inputRef$current.input) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value;
57
59
  onSearch === null || onSearch === void 0 || onSearch(_objectSpread(_objectSpread({}, values), _defineProperty({}, inputProps.name, value)));
58
- };
59
- var _inputSearch = function _inputSearch(v) {
60
+ }, [inputProps.name, onSearch]);
61
+ var _inputSearch = useCallback(function (v) {
60
62
  if (typeof inputSearch === 'function') {
61
63
  inputSearch(_defineProperty({}, inputProps.name, v));
62
64
  }
63
- };
65
+ }, [inputSearch, inputProps.name]);
66
+ var handleValuesChange = useCallback(function (changedValues, allValues) {
67
+ onValuesChange === null || onValuesChange === void 0 || onValuesChange(allValues);
68
+ }, [onValuesChange]);
69
+ var handleReset = useCallback(function () {
70
+ form.resetFields();
71
+ onReset === null || onReset === void 0 || onReset();
72
+ }, [form, onReset]);
73
+ var dFormItems = useMemo(function () {
74
+ return items || [];
75
+ }, [items]);
64
76
  return /*#__PURE__*/_jsx(Collapse, {
65
77
  className: wrapperClass,
66
78
  activeKey: panelVisible ? '1' : 'none',
@@ -92,7 +104,8 @@ var AdvancedFilter = function AdvancedFilter(props) {
92
104
  onValuesChange === null || onValuesChange === void 0 || onValuesChange(e.target.value);
93
105
  },
94
106
  onSearch: _inputSearch,
95
- value: inputValue
107
+ value: inputValue,
108
+ placeholder: placeholder
96
109
  }, otherInputProps)), /*#__PURE__*/_jsxs(Button, {
97
110
  type: "primary",
98
111
  className: "button",
@@ -114,14 +127,28 @@ var AdvancedFilter = function AdvancedFilter(props) {
114
127
  children: [/*#__PURE__*/_jsx("span", {
115
128
  className: "icon"
116
129
  }), " \u67E5\u8BE2\u6761\u4EF6"]
117
- }), /*#__PURE__*/_jsx("div", {
130
+ }), /*#__PURE__*/_jsxs("div", {
118
131
  className: "search-content",
119
- children: /*#__PURE__*/_jsx(FormFilter, {
120
- formRef: formRef,
121
- formItemConfig: formItemConfig,
122
- onSearch: handleSearch,
123
- onReset: onReset
124
- })
132
+ children: [/*#__PURE__*/_jsx(DForm, {
133
+ form: form,
134
+ layout: "inline",
135
+ items: dFormItems,
136
+ onFinish: handleSearch,
137
+ onValuesChange: handleValuesChange,
138
+ onReset: handleReset
139
+ }), /*#__PURE__*/_jsxs(Row, {
140
+ className: "search-btn",
141
+ children: [/*#__PURE__*/_jsx(Button, {
142
+ type: "primary",
143
+ onClick: function onClick() {
144
+ return form.submit();
145
+ },
146
+ children: "\u67E5\u8BE2"
147
+ }), /*#__PURE__*/_jsx(Button, {
148
+ onClick: handleReset,
149
+ children: "\u91CD\u7F6E"
150
+ })]
151
+ })]
125
152
  })]
126
153
  }, "1")
127
154
  });
@@ -1,94 +1,27 @@
1
1
  import React from 'react';
2
2
  import type { InputProps as AntdInputProps } from 'antd';
3
- export type FormItemType = 'input' | 'inputNumber' | 'radio' | 'select' | 'checkbox' | 'datePicker' | 'rangePicker' | 'switch' | 'treeSelect';
4
- export interface FormItem {
5
- /**
6
- * @description 筛选项label文字
7
- */
8
- label?: string;
9
- /**
10
- * @description 筛选项字段名
11
- */
12
- name: string;
13
- /**
14
- * @description 筛选项类型
15
- */
16
- type: FormItemType;
17
- /**
18
- * @description 筛选项placeholder
19
- */
20
- placeholder?: string;
21
- /**
22
- * @description 筛选项的配置项(select|treeSelect时可用)
23
- */
24
- options?: any[];
25
- /**
26
- * @description 筛选项的格式化配置(rangePicker|datePicker时可用)
27
- */
28
- format?: string;
29
- }
3
+ import type { DItemProps } from '../DForm';
30
4
  export interface FormProps {
31
- /**
32
- * @description 筛选项配置
33
- */
34
- formItemConfig: FormItem[];
35
- /**
36
- * @description 筛选项值变更时触发
37
- */
5
+ items?: DItemProps[];
38
6
  onValuesChange?: (_values: any) => void;
39
- /**
40
- * @description 点击查询按钮时触发
41
- */
42
7
  onSearch?: (_v: any) => void;
43
- /**
44
- * @description 点击重置按钮时触发
45
- */
46
8
  onReset?: () => void;
47
9
  }
48
10
  export interface FProps extends FormProps {
49
- /**
50
- * @description 显示查询/重置按钮
51
- * @default true
52
- */
53
11
  showButton?: boolean;
54
- /**
55
- * @description 筛选项表单的Ref
56
- */
57
12
  formRef?: any;
58
13
  }
59
14
  export interface InputProps extends AntdInputProps {
60
- /**
61
- * @description input检索框回车时或点击检索图标时触发
62
- */
63
15
  inputSearch?: (_v: any) => void;
64
16
  }
65
17
  export interface FilterProps extends FormProps {
66
- /**
67
- * @description 左侧渲染区
68
- */
69
18
  left?: React.ReactNode;
70
- /**
71
- * @description 右侧渲染区
72
- */
73
19
  right?: React.ReactNode;
74
- /**
75
- * @description input检索框props
76
- */
77
20
  inputProps: InputProps;
78
- /**
79
- * @description children
80
- */
81
21
  children?: React.ReactNode;
82
- /**
83
- * @description 表单引用ref值
84
- */
85
22
  fRef?: any;
86
- /**
87
- * @description 筛选文字按钮图标
88
- */
89
23
  icon?: React.ReactNode;
90
24
  }
91
25
  export type AdvancedFilterProps = FilterProps;
92
26
  export type FormFilterProps = FProps;
93
- export type FotmItemProps = FormItem;
94
27
  export type InputSearchProps = InputProps;
@@ -12,10 +12,6 @@
12
12
  cursor: auto !important;
13
13
  }
14
14
 
15
- .ant-collapse-content-box {
16
- padding: 0;
17
- }
18
-
19
15
  .search-header {
20
16
  display: flex;
21
17
  width: 100%;
@@ -25,42 +21,6 @@
25
21
  overflow: hidden;
26
22
  white-space: no-wrap;
27
23
  text-overflow: ellipsis;
28
-
29
- :global {
30
- .ant-radio-wrapper:first-child {
31
- border-left: 1px solid #d9d9d9;
32
- border-radius: 5px 0 0 5px;
33
- }
34
-
35
- .ant-radio-wrapper:last-child {
36
- border-radius: 0 5px 5px 0;
37
- }
38
-
39
- .ant-radio-wrapper {
40
- margin-right: 0;
41
- padding: 4px 6px;
42
- border: 1px solid #d9d9d9;
43
- border-top-width: 1px;
44
- border-left: 1px solid #fff;
45
- border-left-width: 1px;
46
-
47
- .ant-radio {
48
- display: none;
49
- }
50
- }
51
-
52
- .ant-radio-wrapper:hover {
53
- color: #1890ff;
54
- }
55
-
56
- .ant-radio-wrapper-checked {
57
- z-index: 1;
58
- color: #1890ff;
59
- background: #fff;
60
- border: 1px solid #1890ff;
61
- border-left: 1px solid #1890ff !important;
62
- }
63
- }
64
24
  }
65
25
 
66
26
  .right {
@@ -100,10 +60,8 @@
100
60
  .title {
101
61
  display: flex;
102
62
  align-items: center;
103
- margin: 0 10px;
104
63
  padding-bottom: 10px;
105
64
  font-weight: bold;
106
- border-bottom: 1px solid #f0f0f0;
107
65
 
108
66
  span.icon {
109
67
  width: 4px;
@@ -115,23 +73,6 @@
115
73
  }
116
74
 
117
75
  .search-content {
118
- .filter-row {
119
- display: flex;
120
- flex-wrap: wrap;
121
- width: 100%;
122
- padding: 10px;
123
- }
124
-
125
- .filter-col {
126
- height: 30px;
127
- margin-bottom: 10px;
128
- line-height: 30px;
129
- }
130
-
131
- .filter-col .ant-picker {
132
- width: 100%;
133
- }
134
-
135
76
  .search-btn {
136
77
  justify-content: center;
137
78
 
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type ModalFuncProps, type ButtonProps } from 'antd';
3
3
  import { type DFormProps } from '../DForm';
4
- import { DTableSourceProps, type DTableProps } from '../DTable';
4
+ import { type DTableSourceProps, type DTableProps } from '../DTable';
5
5
  import type { DModalProps } from '../DModal/interface';
6
6
  import './index.less';
7
7
  export type RefreshStrategy = {
@@ -14,7 +14,7 @@ export type CRUDRefProps = {
14
14
  /** 刷新表格数据 */
15
15
  refresh: (_strategy?: RefreshStrategy) => void;
16
16
  getSelectedRows: () => {
17
- selectedRowKeys: any[];
17
+ selectedRowKeys: string[];
18
18
  selectedRows: any[];
19
19
  };
20
20
  getSearchValues: () => Record<string, any>;
@@ -23,6 +23,7 @@ export type CRUDRefProps = {
23
23
  openDeleteModal: (_record?: any) => void;
24
24
  openDetailModal: (_record?: any) => void;
25
25
  };
26
+ export type MoreActionColumnRender<T = Record<string, any>> = (_text: any, _record: T) => React.ReactNode;
26
27
  export type CRUDProps = {
27
28
  className?: string;
28
29
  style?: React.CSSProperties;
@@ -31,7 +32,9 @@ export type CRUDProps = {
31
32
  immediate?: boolean;
32
33
  };
33
34
  /** 表格配置 */
34
- tableProps: DTableProps;
35
+ tableProps: DTableProps & {
36
+ moreActionColumn?: MoreActionColumnRender;
37
+ };
35
38
  /** 新增/编辑表单配置 */
36
39
  modalFormProps?: {
37
40
  /** 表单配置 */
@@ -70,6 +73,7 @@ export type CRUDProps = {
70
73
  viewButtonText?: string;
71
74
  /** 行查看按钮配置 */
72
75
  viewButtonProps?: ButtonProps;
76
+ /** 更多操作列自定义渲染,参数为(text, record),返回ReactNode */
73
77
  /** 自定义操作栏 */
74
78
  actionBar?: React.ReactNode;
75
79
  /** 数据刷新回调 */
@@ -9,8 +9,8 @@ var _excluded = ["immediate"],
9
9
  _excluded2 = ["columns", "extraParams"];
10
10
  import React, { useMemo, useState, useContext, useCallback, useRef, forwardRef, useImperativeHandle, useEffect } from 'react';
11
11
  import classNames from 'classnames';
12
- import { Button } from 'antd';
13
- import { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined } from '@ant-design/icons';
12
+ import { Button, Popover } from 'antd';
13
+ import { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, MoreOutlined } from '@ant-design/icons';
14
14
  import { ConfigContext } from "../ConfigProvider";
15
15
  import { SearchButtons } from "./config";
16
16
  import DForm from "../DForm";
@@ -193,7 +193,7 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
193
193
  });
194
194
  }, [deleteRefreshStrategy.keepSearchValues, deleteRefreshStrategy.keepPage]);
195
195
  var mergedFormProps = useMemo(function () {
196
- var _restSearchFormProps$;
196
+ var _restSearchFormProps$, _restSearchFormProps$2;
197
197
  if (!searchFormProps) return {};
198
198
  var immediate = searchFormProps.immediate,
199
199
  restSearchFormProps = _objectWithoutProperties(searchFormProps, _excluded);
@@ -202,9 +202,10 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
202
202
  });
203
203
  var searchBtns = immediate || isExistFormButton ? [] : SearchButtons;
204
204
  return _objectSpread(_objectSpread({}, restSearchFormProps), {}, {
205
+ layout: (_restSearchFormProps$2 = restSearchFormProps.layout) !== null && _restSearchFormProps$2 !== void 0 ? _restSearchFormProps$2 : 'inline',
205
206
  items: [].concat(_toConsumableArray((searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps['items']) || []), _toConsumableArray(searchBtns))
206
207
  });
207
- }, [searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.immediate, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.items, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.initialValues]);
208
+ }, [searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.immediate, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.items, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.initialValues, searchFormProps === null || searchFormProps === void 0 ? void 0 : searchFormProps.layout]);
208
209
  var isNeedRefreshToPage = useCallback(function () {
209
210
  var _tableRef$current, _tableRef$current$get;
210
211
  var deletedCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
@@ -503,7 +504,6 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
503
504
  };
504
505
  }(), [detailApi]);
505
506
  var actionColumn = useMemo(function () {
506
- // 捕获当前的API方法引用,避免闭包问题
507
507
  var currentHandleEdit = handleEdit;
508
508
  var currentHandleDelete = handleDelete;
509
509
  var currentHandleView = handleView;
@@ -538,10 +538,20 @@ var forwardCRUD = /*#__PURE__*/forwardRef(function (props, ref) {
538
538
  size: "small"
539
539
  }, viewButtonProps), {}, {
540
540
  children: viewButtonText
541
- }))]
541
+ })), (tableProps === null || tableProps === void 0 ? void 0 : tableProps.moreActionColumn) && /*#__PURE__*/_jsx(Popover, {
542
+ trigger: "click",
543
+ placement: "bottomRight",
544
+ content: tableProps === null || tableProps === void 0 ? void 0 : tableProps.moreActionColumn(_text, record),
545
+ children: /*#__PURE__*/_jsx(Button, {
546
+ type: "link",
547
+ icon: /*#__PURE__*/_jsx(MoreOutlined, {}),
548
+ size: "small",
549
+ children: "\u66F4\u591A"
550
+ })
551
+ })]
542
552
  });
543
553
  };
544
- }, [handleEdit, handleDelete, handleView, showEdit, showDelete, showView, editButtonText, deleteButtonText, viewButtonText]);
554
+ }, [handleEdit, handleDelete, handleView, showEdit, showDelete, showView, editButtonText, deleteButtonText, viewButtonText, tableProps === null || tableProps === void 0 ? void 0 : tableProps.moreActionColumn]);
545
555
  var tablePropsWithSearch = useMemo(function () {
546
556
  var _ref6 = tableProps || {},
547
557
  _ref6$columns = _ref6.columns,
@@ -2,16 +2,17 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["formItemProps", "label", "name", "renderType", "render", "children"];
4
4
  import React from 'react';
5
+ import { Form } from 'antd';
5
6
  import itemsRender from "./itemsRender";
6
- import { Fragment as _Fragment } from "react/jsx-runtime";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { Fragment as _Fragment } from "react/jsx-runtime";
8
9
  function DItem(props) {
9
- // @ts-ignore
10
10
  var formItemProps = props.formItemProps,
11
11
  _props$label = props.label,
12
12
  label = _props$label === void 0 ? '' : _props$label,
13
13
  name = props.name,
14
- renderType = props.renderType,
14
+ _props$renderType = props.renderType,
15
+ renderType = _props$renderType === void 0 ? '' : _props$renderType,
15
16
  render = props.render,
16
17
  children = props.children,
17
18
  otherProps = _objectWithoutProperties(props, _excluded);
@@ -19,6 +20,17 @@ function DItem(props) {
19
20
  label: label,
20
21
  name: name
21
22
  }, formItemProps);
23
+ var hasShouldUpdate = typeof (formItemProps === null || formItemProps === void 0 ? void 0 : formItemProps.shouldUpdate) !== 'undefined';
24
+ if (['custom', 'other'].includes(renderType) && hasShouldUpdate) {
25
+ return /*#__PURE__*/_jsx(Form.Item, {
26
+ noStyle: true,
27
+ shouldUpdate: formItemProps.shouldUpdate,
28
+ children: function children(form) {
29
+ var renderResult = render ? render(otherProps, _formItemProps, props, form) : null;
30
+ return renderResult;
31
+ }
32
+ });
33
+ }
22
34
  if (renderType === 'custom') {
23
35
  return render ? /*#__PURE__*/_jsx(_Fragment, {
24
36
  children: render(otherProps, _formItemProps, props)
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { InputProps, InputNumberProps, AutoCompleteProps, CascaderProps, SelectProps, TreeSelectProps, DatePickerProps, TimePickerProps, MentionProps, CheckboxProps, RadioProps, RateProps, SliderSingleProps, SwitchProps, TransferProps, UploadProps, ButtonProps, DividerProps, FormItemProps, RadioGroupProps, ColProps } from 'antd';
2
+ import { InputProps, InputNumberProps, AutoCompleteProps, CascaderProps, SelectProps, TreeSelectProps, DatePickerProps, TimePickerProps, MentionProps, CheckboxProps, RadioProps, RateProps, SliderSingleProps, SwitchProps, TransferProps, UploadProps, ButtonProps, DividerProps, FormItemProps, RadioGroupProps, ColProps, FormInstance } from 'antd';
3
3
  import { PasswordProps, TextAreaProps } from 'antd/lib/input';
4
4
  import { RangePickerProps } from 'antd/lib/date-picker';
5
5
  import { CheckboxGroupProps } from 'antd/lib/checkbox';
@@ -112,6 +112,7 @@ export type DItemProps = {
112
112
  grid?: Omit<ColProps, 'prefixCls'>;
113
113
  };
114
114
  children?: ReactNode;
115
- render?: any;
115
+ render?: (_props: any, _formItemProps: FormItemProps, _allProps?: DItemProps, _form?: FormInstance) => ReactNode;
116
+ } & {
116
117
  [key: string]: any;
117
118
  };
@@ -39,7 +39,7 @@ declare const renderMap: {
39
39
  switch: (props: SwitchProps, formItemProps: FormItemProps) => import("react/jsx-runtime").JSX.Element;
40
40
  transfer: (props: TransferProps<any>, formItemProps: FormItemProps, label: DItemBaseProps['label'], render: TransferProps<any>['render']) => import("react/jsx-runtime").JSX.Element;
41
41
  upload: (props: UploadProps, formItemProps: FormItemProps, label: DItemBaseProps['label'], render: () => void, children: UploadProps['children']) => import("react/jsx-runtime").JSX.Element;
42
- dUpload: (props: DUploadProps, formItemProps: FormItemProps, render: (props: any) => ReactNode, children: DUploadProps['children']) => import("react/jsx-runtime").JSX.Element;
42
+ dUpload: (props: DUploadProps, formItemProps: FormItemProps, render: (_props: any) => ReactNode, children: DUploadProps['children']) => import("react/jsx-runtime").JSX.Element;
43
43
  button: (props: ButtonProps, formItemProps: FormItemProps, label: DItemBaseProps['label']) => import("react/jsx-runtime").JSX.Element;
44
44
  divider: (props: DividerProps, formItemProps: FormItemProps, label: DItemBaseProps['label']) => import("react/jsx-runtime").JSX.Element;
45
45
  other: (formItemProps: FormItemProps, children: ReactNode) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  export { default as LabelValue } from './LabelValue';
2
2
  export type { LabelValueProps } from './LabelValue/interface';
3
3
  export { default as AdvancedFilter } from './AdvancedFilter';
4
- export type { AdvancedFilterProps, FormFilterProps, FotmItemProps, InputSearchProps } from './AdvancedFilter/interface';
4
+ export type { AdvancedFilterProps, FormFilterProps, InputSearchProps } from './AdvancedFilter/interface';
5
5
  export { default as AuthComponent } from './AuthComponent';
6
6
  export type { AuthComponentProps } from './AuthComponent/interface';
7
7
  export { default as ErrorBoundary } from './ErrorBoundary';
@@ -65,6 +65,6 @@ export type { AnimatedScrollListProps } from './AnimatedScrollList/interface';
65
65
  export { default as DRangePicker } from './DRangePicker';
66
66
  export type { DRangePickerProps } from './DRangePicker/interface';
67
67
  export { default as CRUD } from './CRUD';
68
- export { type CRUDProps, type CRUDRefProps } from './CRUD';
68
+ export { type CRUDProps, type CRUDRefProps, type MoreActionColumnRender } from './CRUD';
69
69
  export { default as DynamicFormItem } from './DynamicFormItem';
70
70
  export type { DynamicFormItemProps } from './DynamicFormItem';
@@ -1 +1 @@
1
- .pui-label-value{display:inline-flex}.pui-label-value span:first-child{max-width:120px;padding-right:4px;white-space:nowrap}.pui-label-value span:last-child{flex:1 1}.pui-label-value span:last-child.no-wrap{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pui-search-filter{align-items:center;background-color:#fff;margin-top:10px;width:100%}.pui-search-filter span.ant-collapse-header-text{cursor:auto!important;display:inline-block;width:100%}.pui-search-filter .ant-collapse-content-box{padding:0}.pui-search-filter .search-header{display:flex;width:100%}.pui-search-filter .search-header .left{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:no-wrap}.pui-search-filter .search-header .left :global .ant-radio-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:5px 0 0 5px}.pui-search-filter .search-header .left :global .ant-radio-wrapper:last-child{border-radius:0 5px 5px 0}.pui-search-filter .search-header .left :global .ant-radio-wrapper{border:1px solid #d9d9d9;border-left-color:#fff;margin-right:0;padding:4px 6px}.pui-search-filter .search-header .left :global .ant-radio-wrapper .ant-radio{display:none}.pui-search-filter .search-header .left :global .ant-radio-wrapper:hover{color:#1890ff}.pui-search-filter .search-header .left :global .ant-radio-wrapper-checked{background:#fff;border:1px solid #1890ff;border-left:1px solid #1890ff!important;color:#1890ff;z-index:1}.pui-search-filter .search-header .right{display:flex;justify-content:center}.pui-search-filter .search-header .right .input{border-radius:4px;width:200px}.pui-search-filter .search-header .right .button{margin-left:10px}.pui-search-filter .search-header .right .button:active,.pui-search-filter .search-header .right .button:focus,.pui-search-filter .search-header .right .button:hover{border-color:transparent}.pui-search-filter .search-header .right .button .icon{margin-left:8px;transition:transform .4s}.pui-search-filter .search-header .right .button .icon.down{transform:rotate(180deg)}.pui-search-filter .search-header .right .button .icon.up{transform:rotate(0deg)}.pui-search-filter .title{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-weight:700;margin:0 10px;padding-bottom:10px}.pui-search-filter .title span.icon{background-color:#1890ff;border-radius:2px;height:16px;margin-right:6px;width:4px}.pui-search-filter .search-content .filter-row{display:flex;flex-wrap:wrap;padding:10px;width:100%}.pui-search-filter .search-content .filter-col{height:30px;line-height:30px;margin-bottom:10px}.pui-search-filter .search-content .filter-col .ant-picker{width:100%}.pui-search-filter .search-content .search-btn{justify-content:center}.pui-search-filter .search-content .search-btn>button{margin:0 5px}.pui-error-boundary{align-items:center;background-color:#dd7f7f;border-radius:10px;display:flex;flex-direction:column;justify-content:center;margin:20px;padding:15px;width:auto}.pui-error-boundary .error-text{margin-top:20px}.pui-error-boundary .error-refresh{background-color:#4593ef;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;height:40px;line-height:40px;text-align:center;width:140px}.pui-error-boundary .errorDetiles .detilesLink{color:blue}.pui-error-boundary .errorDetiles .errordetails{background-color:#ccc6be;border:1px solid #777;border-radius:5px;color:#777;font-size:80%;padding:10px}.pui-picture-card{display:inline-block;padding:10px;transition:box-shadow .3s linear}.pui-picture-card .info{margin-top:10px}.pui-picture-card-bordered{border:1px solid rgba(0,0,0,.06)}.pui-picture-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);cursor:pointer}.pui-picture-card.horizontal{display:flex;justify-content:space-around}.pui-loading .mask{background:rgba(0,0,0,.3);height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:100000}.pui-loading .loading{background:hsla(0,0%,100%,.9);border-radius:10px;box-shadow:3px 3px 3px rgba(0,0,0,.2);left:50%;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:100001}.pui-loading.body-container .loading,.pui-loading.body-container .mask{position:fixed}.pui-nodata{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.pui-nodata .not-data-image{display:block;height:100px}.pui-nodata .no-data-text{color:#000;display:inline-block;font-size:14px;font-weight:400;margin-top:5px;opacity:.65;text-align:center;width:100%}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar{height:8px;width:8px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.5);border-radius:8px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-track{border-radius:2px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-corner{background-color:#f1f1f1}.pui-tree-select-dropdown .ant-select-tree-node-content-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pui-tree-select-dropdown .ant-select-tree-node-content-wrapper .ant-select-tree-title{overflow:hidden}.pui-upload .preview .ant-upload-list-item-actions a[target=_blank][rel="noopener noreferrer"]{opacity:1!important;pointer-events:auto!important}.pui-upload .ant-upload-list.ant-upload-list-picture-card .ant-upload-span .ant-upload-list-item-thumbnail{height:46px}.pui-upload .ant-upload-list.ant-upload-list-picture-card .ant-upload-span .ant-upload-list-item-name{display:inline;display:initial;position:absolute}.pui-table .ant-spin-container,.pui-table .ant-spin-nested-loading,.pui-table .ant-table-container,.pui-table .ant-table-content{height:100%}.pui-table .ant-spin-container,.pui-table .ant-table-container{display:flex;flex-direction:column;overflow:hidden}.pui-table .ant-table{flex:1 1;overflow:hidden}.pui-table .ant-table-body{overflow-y:auto}.pui-table .ant-table-body .ant-table-tbody>tr>td.ant-table-cell.d-table-cell-wrap{white-space:normal}.pui-table .ant-table-body::-webkit-scrollbar{height:8px;width:4px}.pui-table .ant-table-body::-webkit-scrollbar-thumb{background-color:#0084ff}.pui-table .ant-table-body::-webkit-scrollbar-track{background-color:#f1f1f1;border-radius:2px}.pui-table .ant-table-body::-webkit-scrollbar-corner{background-color:#f1f1f1}.pui-table .ant-spin-nested-loading>div>.ant-spin{max-height:none}.pui-table .ant-pagination-total-text span{color:#40a9ff;font-weight:700}.pui-ip-address{border:1px solid #d9d9d9;border-radius:2px;display:inline-block;transition:all .3s}.pui-ip-address.small{height:24px}.pui-ip-address.large{padding:6.5px 10px}.pui-ip-address.middle{padding:4px 10px}.pui-ip-address.disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.pui-ip-address.disabled:hover{border-color:#d9d9d9}.pui-ip-address:hover{border-color:#4d90ff}.pui-ip-address:focus-within{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.pui-ip-address input{font-feature-settings:"tnum","tnum";background:none;border:none;box-sizing:border-box;color:#000000d9;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0;outline:0;padding:0;position:relative;text-align:center}.pui-ip-address input[disabled]{color:inherit;cursor:not-allowed}.pui-ip-address input[type=number]{appearance:textfield}.pui-ip-address input[type=number]::-webkit-inner-spin-button,.pui-ip-address input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.pui-range-picker-left .ant-picker-panel-container,.pui-range-picker-right .ant-picker-panel-container{display:flex}.pui-range-picker-left .ant-picker-footer,.pui-range-picker-right .ant-picker-footer{flex:1 1;min-width:40px}.pui-range-picker-left .ant-picker-ranges,.pui-range-picker-right .ant-picker-ranges{display:flex;flex-direction:column}.pui-range-picker-left .ant-picker-preset .ant-tag,.pui-range-picker-right .ant-picker-preset .ant-tag{margin-right:0}.pui-range-picker-left .ant-picker-panel-container{flex-direction:row-reverse}.pui-form .form-wrapper>.ant-form-item{margin-bottom:24px;margin-right:0;min-height:32px}.pui-form .ant-input-number,.pui-form .ant-picker{width:100%}.pui-form.ant-form-horizontal .form-wrapper>.ant-form-item:last-child,.pui-form.ant-form-vertical .form-wrapper>.ant-form-item:last-child{margin-bottom:0}.pui-form.ant-form-horizontal .ant-form-item-label{min-width:80px}.pui-form.ant-form-inline .form-wrapper,.pui-form.ant-form-inline.inlineVertical .form-wrapper{align-items:flex-end;display:flex;flex:1 1;flex-wrap:wrap;height:min-content}.pui-form.ant-form-inline .form-wrapper>.ant-form-item,.pui-form.ant-form-inline.inlineVertical .form-wrapper>.ant-form-item{padding-right:16px}.pui-form.ant-form-inline.inlineVertical .ant-form-item-row{flex-direction:column}.pui-form.ant-form-inline.inlineVertical .ant-form-item-row .ant-form-item-label{text-align:left}.pui-form.ant-form-inline.inlineVertical .grid-row{flex:1 1}.pui-modal-container .ant-modal-wrap .ant-modal{height:100%;max-width:none}.pui-modal-container .ant-modal-wrap .ant-modal .ant-modal-content{height:100%;width:100%}.pui-absolute-modal-container .ant-modal-wrap,.pui-fixed-modal-container .ant-modal-wrap{position:fixed}.pui-relative-modal-container .ant-modal-wrap{position:absolute}.pui-color-picker .sketch-picker{box-shadow:none!important;padding:0!important}.trigger{border:5px solid #fff;border-radius:2px;box-shadow:0 0 2px #000;cursor:pointer;display:inline-block;height:26px;width:60px}.pui-typewriter-text{font-feature-settings:none;display:inline-block;font-variant-ligatures:none;min-height:1em;position:relative}.pui-typewriter-text-cursor{animation-fill-mode:both;animation-iteration-count:infinite;animation-name:pc-typewriter-cursor-blink;animation-timing-function:step-end;display:inline-block;margin-left:4px}@keyframes pc-typewriter-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.pui-infinite-scroll-wrapper .ant-list .ant-row{margin-right:0!important}.scroll-container{overflow-x:hidden;overflow-y:auto;position:relative}.scroll-container .backtop{right:50px}.scroll-container .up{background:#007aff;border-radius:3px;color:#fff;text-align:center}.toolbar{background-color:rgba(0,0,0,.5);color:#fff;justify-content:center}.toolbar,.toolbar button{align-items:center;display:flex}.toolbar button{background-color:transparent;border-width:0;cursor:pointer}.toolbar button:hover{background-color:#0074d9}.toolbar .icon>path{fill:#fff}.pui-signature-pad{align-items:center;display:flex;flex-direction:column;justify-content:center;position:relative}.pui-signature-pad-canvas{border:1px solid #d9d9d9;border-radius:4px}.pui-signature-pad-toolbar{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;text-align:center}.pui-signature-pad-button{background-color:#fff;border:1px solid #1677ff;border-radius:4px;color:#1677ff;cursor:pointer;height:32px;min-width:64px;padding:4px 16px;transition:all .3s}.pui-signature-pad-button:hover{background-color:#f0f5ff}.pui-signature-pad-button:last-child{background-color:#1677ff;color:#fff}.pui-signature-pad-button:last-child:hover{background-color:#4096ff}.pui-context-menu{animation:contextmenu-show .2s ease-out forwards;background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);min-width:120px;opacity:0;padding:4px 0;transform:scale(.8);transform-origin:top left}.pui-context-menu-item{align-items:center;color:rgba(0,0,0,.88);cursor:pointer;display:flex;gap:8px;padding:5px 12px;transition:all .3s;-ms-user-select:none;user-select:none}.pui-context-menu-item:hover{background:rgba(0,0,0,.04)}.pui-context-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.pui-context-menu-item-disabled:hover{background:none}.pui-context-menu-item-divider{background:#f0f0f0;height:1px;margin:4px 0}@keyframes contextmenu-show{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.pui-org-tree{align-items:center;display:flex;height:100%;justify-content:center;overflow:auto;position:relative;width:100%}.pui-org-tree .org-tree-node-label{cursor:pointer}.pui-animated-scroll-list{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.pui-animated-scroll-list-header{flex-shrink:0}.pui-animated-scroll-list-body{overflow:hidden;position:relative}.pui-animated-scroll-list-content{position:relative}.pui-crud{display:flex;flex-direction:column;height:100%;overflow:hidden}.pui-crud.fullscreen{background-color:#fff;inset:0;padding:10px;position:fixed;z-index:10000}.pui-crud-action-tool-bar{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.pui-crud-action-bar,.pui-crud-tool-bar{align-items:center;display:flex;gap:8px;justify-content:flex-start}.pui-crud .tool-icon{border:1px solid #e3e3e3;border-radius:50%;cursor:pointer;font-size:15px;padding:5px}.pui-crud .tool-icon:hover{border-color:#2e4dd9;color:#2e4dd9}.pui-crud .tool-icon.rotating{animation:rotating .5s linear}.pui-crud .column-setting-popup .ant-popover-title{padding-left:10px;padding-right:10px}.pui-crud .column-setting-popup .ant-popover-inner-content{padding:8px 0 4px;width:100%}.pui-crud .column-setting-popup .column-setting-title{align-items:center;display:flex;justify-content:space-between}.pui-crud .column-setting-popup .column-setting-list{display:flex;flex-direction:column;list-style:none;margin-bottom:0;max-height:300px;overflow-y:auto;padding:5px 0;padding-inline-start:0}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar{width:5px}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar-track{border-radius:3px}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar-thumb{background:#8b8b8b;border-radius:3px;width:5px}.pui-crud .column-setting-popup .column-setting-item{align-items:center;border-radius:4px;display:flex;margin-bottom:2px;min-height:32px;padding:8px 10px;-ms-user-select:none;user-select:none}.pui-crud .column-setting-popup .column-setting-item:hover{background-color:#f5f5f5}.pui-crud .column-setting-popup .column-drag-handle{align-items:center;color:#666;cursor:move;display:flex;margin-right:8px}.pui-crud .column-setting-popup .column-setting-footer{border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;padding-top:4px}.pui-crud .pui-form{overflow:hidden;transition:all .3s ease-in-out}.pui-crud .pui-form.visible{max-height:300px}.pui-crud .pui-form.hidden{max-height:0}.pui-crud-table{flex:1 1;overflow:hidden}.pui-crud-modalform-view .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dynamic-form-item{align-items:flex-start;display:flex;gap:8px;margin-bottom:8px;width:100%}.dynamic-form-item .ant-form-item{flex:1 1;margin-bottom:0}.dynamic-form-item .ant-btn-link{flex-shrink:0}.dynamic-form-item.single .ant-space-item:first-of-type{display:flex;flex:1 1}.dynamic-form-item~.dynamic-form-item .ant-col.ant-form-item-label{visibility:hidden}
1
+ .pui-label-value{display:inline-flex}.pui-label-value span:first-child{max-width:120px;padding-right:4px;white-space:nowrap}.pui-label-value span:last-child{flex:1 1}.pui-label-value span:last-child.no-wrap{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar{height:8px;width:8px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.5);border-radius:8px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-track{border-radius:2px}.pui-cascader-dropdown .ant-cascader-menu::-webkit-scrollbar-corner{background-color:#f1f1f1}.pui-tree-select-dropdown .ant-select-tree-node-content-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pui-tree-select-dropdown .ant-select-tree-node-content-wrapper .ant-select-tree-title{overflow:hidden}.pui-upload .preview .ant-upload-list-item-actions a[target=_blank][rel="noopener noreferrer"]{opacity:1!important;pointer-events:auto!important}.pui-upload .ant-upload-list.ant-upload-list-picture-card .ant-upload-span .ant-upload-list-item-thumbnail{height:46px}.pui-upload .ant-upload-list.ant-upload-list-picture-card .ant-upload-span .ant-upload-list-item-name{display:inline;display:initial;position:absolute}.pui-ip-address{border:1px solid #d9d9d9;border-radius:2px;display:inline-block;transition:all .3s}.pui-ip-address.small{height:24px}.pui-ip-address.large{padding:6.5px 10px}.pui-ip-address.middle{padding:4px 10px}.pui-ip-address.disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.pui-ip-address.disabled:hover{border-color:#d9d9d9}.pui-ip-address:hover{border-color:#4d90ff}.pui-ip-address:focus-within{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.pui-ip-address input{font-feature-settings:"tnum","tnum";background:none;border:none;box-sizing:border-box;color:#000000d9;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0;outline:0;padding:0;position:relative;text-align:center}.pui-ip-address input[disabled]{color:inherit;cursor:not-allowed}.pui-ip-address input[type=number]{appearance:textfield}.pui-ip-address input[type=number]::-webkit-inner-spin-button,.pui-ip-address input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.pui-range-picker-left .ant-picker-panel-container,.pui-range-picker-right .ant-picker-panel-container{display:flex}.pui-range-picker-left .ant-picker-footer,.pui-range-picker-right .ant-picker-footer{flex:1 1;min-width:40px}.pui-range-picker-left .ant-picker-ranges,.pui-range-picker-right .ant-picker-ranges{display:flex;flex-direction:column}.pui-range-picker-left .ant-picker-preset .ant-tag,.pui-range-picker-right .ant-picker-preset .ant-tag{margin-right:0}.pui-range-picker-left .ant-picker-panel-container{flex-direction:row-reverse}.pui-form .form-wrapper>.ant-form-item{margin-bottom:24px;margin-right:0;min-height:32px}.pui-form .ant-input-number,.pui-form .ant-picker{width:100%}.pui-form.ant-form-horizontal .form-wrapper>.ant-form-item:last-child,.pui-form.ant-form-vertical .form-wrapper>.ant-form-item:last-child{margin-bottom:0}.pui-form.ant-form-horizontal .ant-form-item-label{min-width:80px}.pui-form.ant-form-inline .form-wrapper,.pui-form.ant-form-inline.inlineVertical .form-wrapper{align-items:flex-end;display:flex;flex:1 1;flex-wrap:wrap;height:min-content}.pui-form.ant-form-inline .form-wrapper>.ant-form-item,.pui-form.ant-form-inline.inlineVertical .form-wrapper>.ant-form-item{padding-right:16px}.pui-form.ant-form-inline.inlineVertical .ant-form-item-row{flex-direction:column}.pui-form.ant-form-inline.inlineVertical .ant-form-item-row .ant-form-item-label{text-align:left}.pui-form.ant-form-inline.inlineVertical .grid-row{flex:1 1}.pui-search-filter{align-items:center;background-color:#fff;margin-top:10px;width:100%}.pui-search-filter span.ant-collapse-header-text{cursor:auto!important;display:inline-block;width:100%}.pui-search-filter .search-header{display:flex;width:100%}.pui-search-filter .search-header .left{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:no-wrap}.pui-search-filter .search-header .right{display:flex;justify-content:center}.pui-search-filter .search-header .right .input{border-radius:4px;width:200px}.pui-search-filter .search-header .right .button{margin-left:10px}.pui-search-filter .search-header .right .button:active,.pui-search-filter .search-header .right .button:focus,.pui-search-filter .search-header .right .button:hover{border-color:transparent}.pui-search-filter .search-header .right .button .icon{margin-left:8px;transition:transform .4s}.pui-search-filter .search-header .right .button .icon.down{transform:rotate(180deg)}.pui-search-filter .search-header .right .button .icon.up{transform:rotate(0deg)}.pui-search-filter .title{align-items:center;display:flex;font-weight:700;padding-bottom:10px}.pui-search-filter .title span.icon{background-color:#1890ff;border-radius:2px;height:16px;margin-right:6px;width:4px}.pui-search-filter .search-content .search-btn{justify-content:center}.pui-search-filter .search-content .search-btn>button{margin:0 5px}.pui-error-boundary{align-items:center;background-color:#dd7f7f;border-radius:10px;display:flex;flex-direction:column;justify-content:center;margin:20px;padding:15px;width:auto}.pui-error-boundary .error-text{margin-top:20px}.pui-error-boundary .error-refresh{background-color:#4593ef;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;height:40px;line-height:40px;text-align:center;width:140px}.pui-error-boundary .errorDetiles .detilesLink{color:blue}.pui-error-boundary .errorDetiles .errordetails{background-color:#ccc6be;border:1px solid #777;border-radius:5px;color:#777;font-size:80%;padding:10px}.pui-picture-card{display:inline-block;padding:10px;transition:box-shadow .3s linear}.pui-picture-card .info{margin-top:10px}.pui-picture-card-bordered{border:1px solid rgba(0,0,0,.06)}.pui-picture-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);cursor:pointer}.pui-picture-card.horizontal{display:flex;justify-content:space-around}.pui-loading .mask{background:rgba(0,0,0,.3);height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:100000}.pui-loading .loading{background:hsla(0,0%,100%,.9);border-radius:10px;box-shadow:3px 3px 3px rgba(0,0,0,.2);left:50%;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:100001}.pui-loading.body-container .loading,.pui-loading.body-container .mask{position:fixed}.pui-nodata{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.pui-nodata .not-data-image{display:block;height:100px}.pui-nodata .no-data-text{color:#000;display:inline-block;font-size:14px;font-weight:400;margin-top:5px;opacity:.65;text-align:center;width:100%}.pui-table .ant-spin-container,.pui-table .ant-spin-nested-loading,.pui-table .ant-table-container,.pui-table .ant-table-content{height:100%}.pui-table .ant-spin-container,.pui-table .ant-table-container{display:flex;flex-direction:column;overflow:hidden}.pui-table .ant-table{flex:1 1;overflow:hidden}.pui-table .ant-table-body{overflow-y:auto}.pui-table .ant-table-body .ant-table-tbody>tr>td.ant-table-cell.d-table-cell-wrap{white-space:normal}.pui-table .ant-table-body::-webkit-scrollbar{height:8px;width:4px}.pui-table .ant-table-body::-webkit-scrollbar-thumb{background-color:#0084ff}.pui-table .ant-table-body::-webkit-scrollbar-track{background-color:#f1f1f1;border-radius:2px}.pui-table .ant-table-body::-webkit-scrollbar-corner{background-color:#f1f1f1}.pui-table .ant-spin-nested-loading>div>.ant-spin{max-height:none}.pui-table .ant-pagination-total-text span{color:#40a9ff;font-weight:700}.pui-modal-container .ant-modal-wrap .ant-modal{height:100%;max-width:none}.pui-modal-container .ant-modal-wrap .ant-modal .ant-modal-content{height:100%;width:100%}.pui-absolute-modal-container .ant-modal-wrap,.pui-fixed-modal-container .ant-modal-wrap{position:fixed}.pui-relative-modal-container .ant-modal-wrap{position:absolute}.pui-color-picker .sketch-picker{box-shadow:none!important;padding:0!important}.trigger{border:5px solid #fff;border-radius:2px;box-shadow:0 0 2px #000;cursor:pointer;display:inline-block;height:26px;width:60px}.pui-typewriter-text{font-feature-settings:none;display:inline-block;font-variant-ligatures:none;min-height:1em;position:relative}.pui-typewriter-text-cursor{animation-fill-mode:both;animation-iteration-count:infinite;animation-name:pc-typewriter-cursor-blink;animation-timing-function:step-end;display:inline-block;margin-left:4px}@keyframes pc-typewriter-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.pui-infinite-scroll-wrapper .ant-list .ant-row{margin-right:0!important}.scroll-container{overflow-x:hidden;overflow-y:auto;position:relative}.scroll-container .backtop{right:50px}.scroll-container .up{background:#007aff;border-radius:3px;color:#fff;text-align:center}.toolbar{background-color:rgba(0,0,0,.5);color:#fff;justify-content:center}.toolbar,.toolbar button{align-items:center;display:flex}.toolbar button{background-color:transparent;border-width:0;cursor:pointer}.toolbar button:hover{background-color:#0074d9}.toolbar .icon>path{fill:#fff}.pui-signature-pad{align-items:center;display:flex;flex-direction:column;justify-content:center;position:relative}.pui-signature-pad-canvas{border:1px solid #d9d9d9;border-radius:4px}.pui-signature-pad-toolbar{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;text-align:center}.pui-signature-pad-button{background-color:#fff;border:1px solid #1677ff;border-radius:4px;color:#1677ff;cursor:pointer;height:32px;min-width:64px;padding:4px 16px;transition:all .3s}.pui-signature-pad-button:hover{background-color:#f0f5ff}.pui-signature-pad-button:last-child{background-color:#1677ff;color:#fff}.pui-signature-pad-button:last-child:hover{background-color:#4096ff}.pui-context-menu{animation:contextmenu-show .2s ease-out forwards;background:#fff;border:1px solid #f0f0f0;border-radius:1px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);min-width:120px;opacity:0;padding:4px 0;transform:scale(.8);transform-origin:top left}.pui-context-menu-item{align-items:center;color:rgba(0,0,0,.88);cursor:pointer;display:flex;gap:8px;padding:5px 12px;transition:all .3s;-ms-user-select:none;user-select:none}.pui-context-menu-item:hover{background:rgba(0,0,0,.04)}.pui-context-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.pui-context-menu-item-disabled:hover{background:none}.pui-context-menu-item-divider{background:#f0f0f0;height:1px;margin:4px 0}@keyframes contextmenu-show{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.pui-org-tree{align-items:center;display:flex;height:100%;justify-content:center;overflow:auto;position:relative;width:100%}.pui-org-tree .org-tree-node-label{cursor:pointer}.pui-animated-scroll-list{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.pui-animated-scroll-list-header{flex-shrink:0}.pui-animated-scroll-list-body{overflow:hidden;position:relative}.pui-animated-scroll-list-content{position:relative}.pui-crud{display:flex;flex-direction:column;height:100%;overflow:hidden}.pui-crud.fullscreen{background-color:#fff;inset:0;padding:10px;position:fixed;z-index:10000}.pui-crud-action-tool-bar{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.pui-crud-action-bar,.pui-crud-tool-bar{align-items:center;display:flex;gap:8px;justify-content:flex-start}.pui-crud .tool-icon{border:1px solid #e3e3e3;border-radius:50%;cursor:pointer;font-size:15px;padding:5px}.pui-crud .tool-icon:hover{border-color:#2e4dd9;color:#2e4dd9}.pui-crud .tool-icon.rotating{animation:rotating .5s linear}.pui-crud .column-setting-popup .ant-popover-title{padding-left:10px;padding-right:10px}.pui-crud .column-setting-popup .ant-popover-inner-content{padding:8px 0 4px;width:100%}.pui-crud .column-setting-popup .column-setting-title{align-items:center;display:flex;justify-content:space-between}.pui-crud .column-setting-popup .column-setting-list{display:flex;flex-direction:column;list-style:none;margin-bottom:0;max-height:300px;overflow-y:auto;padding:5px 0;padding-inline-start:0}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar{width:5px}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar-track{border-radius:3px}.pui-crud .column-setting-popup .column-setting-list::-webkit-scrollbar-thumb{background:#8b8b8b;border-radius:3px;width:5px}.pui-crud .column-setting-popup .column-setting-item{align-items:center;border-radius:4px;display:flex;margin-bottom:2px;min-height:32px;padding:8px 10px;-ms-user-select:none;user-select:none}.pui-crud .column-setting-popup .column-setting-item:hover{background-color:#f5f5f5}.pui-crud .column-setting-popup .column-drag-handle{align-items:center;color:#666;cursor:move;display:flex;margin-right:8px}.pui-crud .column-setting-popup .column-setting-footer{border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;padding-top:4px}.pui-crud .pui-form{overflow:hidden;transition:all .3s ease-in-out}.pui-crud .pui-form.visible{max-height:300px}.pui-crud .pui-form.hidden{max-height:0}.pui-crud-table{flex:1 1;overflow:hidden}.pui-crud-modalform-view .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dynamic-form-item{align-items:flex-start;display:flex;gap:8px;margin-bottom:8px;width:100%}.dynamic-form-item .ant-form-item{flex:1 1;margin-bottom:0}.dynamic-form-item .ant-btn-link{flex-shrink:0}.dynamic-form-item.single .ant-space-item:first-of-type{display:flex;flex:1 1}.dynamic-form-item~.dynamic-form-item .ant-col.ant-form-item-label{visibility:hidden}