@pnkx-lib/ui 1.9.178 → 1.9.180
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/dist/style.css +1 -1
- package/es/chunks/AntdIcon-B_SLhOJa.js +1211 -0
- package/es/chunks/_commonjsHelpers-BFTU3MAI.js +7 -0
- package/es/chunks/bundle-mjs-BME7zF0Z.js +2956 -0
- package/es/chunks/common-CocKiHtC.js +3 -0
- package/es/chunks/defineProperty-D53odpB3.js +50 -0
- package/es/chunks/get-C880miVG.js +1726 -0
- package/es/chunks/index-mzHK7Za8.js +90 -0
- package/es/chunks/index.esm-DPdCEbIy.js +2276 -0
- package/es/chunks/jsx-runtime-DFKOoQSG.js +430 -0
- package/es/chunks/layout-B04d5Lfr.js +6094 -0
- package/es/constants/index.js +38 -0
- package/es/fields/CascaderField.js +59 -0
- package/es/fields/Checkbox.js +56 -0
- package/es/fields/DatePicker.js +13030 -0
- package/es/fields/DateRangePicker.js +58 -0
- package/es/fields/Input.js +1379 -0
- package/es/fields/PnkxField.js +19 -0
- package/es/fields/Radio.js +56 -0
- package/es/fields/Select.js +61 -0
- package/es/fields/SliderRanger.js +58 -0
- package/es/fields/SliderSingle.js +58 -0
- package/es/fields/Switch.js +58 -0
- package/es/fields/Textarea.js +66 -0
- package/es/fields/TinyMCE.js +1969 -0
- package/es/fields/Upload.js +113 -0
- package/es/fields/index.js +13 -2
- package/es/hooks/index.js +2 -1
- package/es/hooks/useMessage.js +15 -0
- package/es/{chunks/useMessage-CUPcOtIS.js → hooks/useToast.js} +2 -14
- package/es/index.js +74 -4
- package/es/ui/Alert.js +8 -0
- package/es/ui/Anchor.js +9 -0
- package/es/ui/Appfix.js +8 -0
- package/es/ui/AutoComplete.js +8 -0
- package/es/ui/Badge.js +15 -0
- package/es/ui/BottomPagination.js +57 -0
- package/es/ui/Breadcrumb.js +9 -0
- package/es/ui/BreadcrumbHeading.js +54 -0
- package/es/ui/Button.js +8 -0
- package/es/ui/Card.js +8 -0
- package/es/ui/Cascader.js +21 -0
- package/es/ui/CategoryStatus.js +50 -0
- package/es/ui/Col.js +9 -0
- package/es/ui/Collapse.js +8 -0
- package/es/ui/ColorPicker.js +8 -0
- package/es/ui/ConfigProvider.js +11 -0
- package/es/ui/ConfirmModal.js +119 -0
- package/es/ui/Container.js +12 -0
- package/es/ui/Divider.js +8 -0
- package/es/ui/Drawer.js +19 -0
- package/es/ui/Dropdown.js +9 -0
- package/es/ui/Empty.js +8 -0
- package/es/ui/ErrorBoundary.js +81 -0
- package/es/ui/ErrorMessage.js +14 -0
- package/es/ui/Flex.js +9 -0
- package/es/ui/Footer.js +13 -0
- package/es/ui/Heading.js +67 -0
- package/es/ui/Image.js +8 -0
- package/es/ui/Label.js +14 -0
- package/es/ui/Layout.js +25 -0
- package/es/ui/Menu.js +24 -0
- package/es/ui/Modal.js +8 -0
- package/es/{chunks/PageNotFound-D6b4M484.js → ui/PageNotFound.js} +7 -1865
- package/es/ui/Pagination.js +10 -0
- package/es/ui/Popconfirm.js +8 -0
- package/es/ui/Popover.js +9 -0
- package/es/ui/QRCode.js +8 -0
- package/es/ui/Rate.js +8 -0
- package/es/ui/Result.js +8 -0
- package/es/ui/Row.js +9 -0
- package/es/ui/SearchFilterForm.js +87 -0
- package/es/ui/Segmented.js +8 -0
- package/es/ui/Sidebar.js +342 -0
- package/es/ui/Skeleton.js +34 -0
- package/es/ui/Space.js +11 -0
- package/es/ui/Spin.js +8 -0
- package/es/ui/Splitter.js +11 -0
- package/es/ui/Statistic.js +8 -0
- package/es/ui/Steps.js +11 -0
- package/es/ui/Tabs.js +78 -0
- package/es/ui/Tag.js +12 -0
- package/es/ui/Timeline.js +8 -0
- package/es/ui/Tooltip.js +8 -0
- package/es/ui/Tour.js +8 -0
- package/es/ui/Tree.js +8 -0
- package/es/ui/Typography.js +11 -0
- package/es/ui/UploadImage.js +116 -0
- package/es/ui/Watermark.js +28 -0
- package/es/ui/index.js +5235 -2
- package/package.json +31 -1
- package/types/components/ui/BulkActions/BulkAction.d.ts +1 -1
- package/types/components/ui/BulkActions/index.d.ts +1 -1
- package/types/components/ui/Table/ActionRowTable/index.d.ts +1 -1
- package/types/components/ui/Table/HeadingTable/components/GroupHeadingButton.d.ts +1 -1
- package/types/components/ui/Table/index.d.ts +1 -1
- package/types/fields/CascaderField.d.ts +2 -0
- package/types/fields/Checkbox.d.ts +2 -0
- package/types/fields/DatePicker.d.ts +2 -0
- package/types/fields/DateRangePicker.d.ts +2 -0
- package/types/fields/Input.d.ts +2 -0
- package/types/fields/PnkxField.d.ts +2 -0
- package/types/fields/Radio.d.ts +2 -0
- package/types/fields/Select.d.ts +2 -0
- package/types/fields/SliderRanger.d.ts +2 -0
- package/types/fields/SliderSingle.d.ts +2 -0
- package/types/fields/Switch.d.ts +2 -0
- package/types/fields/Textarea.d.ts +2 -0
- package/types/fields/TinyMCE.d.ts +2 -0
- package/types/fields/Upload.d.ts +2 -0
- package/types/fields/index.d.ts +2 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/hooks/useMessage.d.ts +2 -0
- package/types/hooks/useToast.d.ts +2 -0
- package/types/ui/Alert.d.ts +2 -0
- package/types/ui/Anchor.d.ts +2 -0
- package/types/ui/Appfix.d.ts +2 -0
- package/types/ui/AutoComplete.d.ts +2 -0
- package/types/ui/Badge.d.ts +2 -0
- package/types/ui/BottomPagination.d.ts +2 -0
- package/types/ui/Breadcrumb.d.ts +2 -0
- package/types/ui/BreadcrumbHeading.d.ts +2 -0
- package/types/ui/Button.d.ts +2 -0
- package/types/ui/Card.d.ts +2 -0
- package/types/ui/Cascader.d.ts +2 -0
- package/types/ui/CategoryStatus.d.ts +2 -0
- package/types/ui/Col.d.ts +2 -0
- package/types/ui/Collapse.d.ts +2 -0
- package/types/ui/ColorPicker.d.ts +2 -0
- package/types/ui/ConfigProvider.d.ts +2 -0
- package/types/ui/ConfirmModal.d.ts +2 -0
- package/types/ui/Container.d.ts +2 -0
- package/types/ui/Divider.d.ts +2 -0
- package/types/ui/Drawer.d.ts +2 -0
- package/types/ui/Dropdown.d.ts +2 -0
- package/types/ui/Empty.d.ts +2 -0
- package/types/ui/ErrorBoundary.d.ts +2 -0
- package/types/ui/ErrorMessage.d.ts +2 -0
- package/types/ui/Flex.d.ts +2 -0
- package/types/ui/Footer.d.ts +4 -0
- package/types/ui/Heading.d.ts +2 -0
- package/types/ui/Image.d.ts +2 -0
- package/types/ui/Label.d.ts +2 -0
- package/types/ui/Layout.d.ts +2 -0
- package/types/ui/Menu.d.ts +2 -0
- package/types/ui/Modal.d.ts +2 -0
- package/types/ui/PageNotFound.d.ts +2 -0
- package/types/ui/Pagination.d.ts +2 -0
- package/types/ui/Popconfirm.d.ts +2 -0
- package/types/ui/Popover.d.ts +2 -0
- package/types/ui/QRCode.d.ts +2 -0
- package/types/ui/Rate.d.ts +2 -0
- package/types/ui/Result.d.ts +2 -0
- package/types/ui/Row.d.ts +2 -0
- package/types/ui/SearchFilterForm.d.ts +2 -0
- package/types/ui/Segmented.d.ts +2 -0
- package/types/ui/Sidebar.d.ts +2 -0
- package/types/ui/Skeleton.d.ts +2 -0
- package/types/ui/Space.d.ts +2 -0
- package/types/ui/Spin.d.ts +2 -0
- package/types/ui/Splitter.d.ts +2 -0
- package/types/ui/Statistic.d.ts +2 -0
- package/types/ui/Steps.d.ts +2 -0
- package/types/ui/Tabs.d.ts +2 -0
- package/types/ui/Tag.d.ts +2 -0
- package/types/ui/Timeline.d.ts +2 -0
- package/types/ui/Tooltip.d.ts +2 -0
- package/types/ui/Tour.d.ts +2 -0
- package/types/ui/Tree.d.ts +2 -0
- package/types/ui/Typography.d.ts +2 -0
- package/types/ui/UploadImage.d.ts +2 -0
- package/types/ui/Watermark.d.ts +2 -0
- package/types/ui/index.d.ts +2 -0
- package/es/chunks/SliderRanger-BXe2Nxdo.js +0 -361
- package/es/chunks/UploadImage-x6lE6WbO.js +0 -61133
- package/types/App.d.ts +0 -6
- package/types/DemoInput/DemoInput.d.ts +0 -1
- package/types/DemoTable/FiltersCategoryDemo/components/RenderFilterFields.d.ts +0 -12
- package/types/DemoTable/FiltersCategoryDemo/components/TagsFilter.d.ts +0 -12
- package/types/DemoTable/FiltersCategoryDemo/index.d.ts +0 -8
- package/types/DemoTable/apiUser.d.ts +0 -30
- package/types/DemoTable/hooks/useConvertGroupButton.d.ts +0 -13
- package/types/DemoTable/index.d.ts +0 -2
- package/types/DemoTable/tabDemo.d.ts +0 -2
- package/types/assets/svg/404.d.ts +0 -2
- package/types/assets/svg/Flag.d.ts +0 -2
- package/types/assets/svg/Logout.d.ts +0 -2
- package/types/assets/svg/PageNotFoundIcon.d.ts +0 -3
- package/types/assets/svg/Search.d.ts +0 -2
- package/types/assets/svg/Setting.d.ts +0 -2
- package/types/component-test/category-city.d.ts +0 -2
- package/types/component-test/category-manager.d.ts +0 -2
- package/types/component-test/default-layout.d.ts +0 -6
- package/types/component-test/detail-user.d.ts +0 -2
- package/types/component-test/permistion-user.d.ts +0 -2
- package/types/component-test/user-list.d.ts +0 -2
- package/types/fields.d.ts +0 -2
- package/types/hooks.d.ts +0 -2
- package/types/interface/common.d.ts +0 -14
- package/types/interface/tab.d.ts +0 -5
- package/types/main.d.ts +0 -0
- package/types/stores/tabStore.d.ts +0 -6
- package/types/stories/Input.stories.d.ts +0 -6
- package/types/ui.d.ts +0 -2
- package/types/utils/router.d.ts +0 -35
- package/types/utils/timer.d.ts +0 -7
- package/types/vite-env.d.ts +0 -1
|
@@ -1,1865 +1,7 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { useLocation, Link, useNavigate } from 'react-router';
|
|
6
|
-
|
|
7
|
-
const Button = (props) => {
|
|
8
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { ...props });
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const CascaderField = (props) => {
|
|
12
|
-
const {
|
|
13
|
-
customStyleContainer,
|
|
14
|
-
customStyleCascader,
|
|
15
|
-
options = [],
|
|
16
|
-
...restProps
|
|
17
|
-
} = props;
|
|
18
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: customStyleContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
19
|
-
Cascader,
|
|
20
|
-
{
|
|
21
|
-
options,
|
|
22
|
-
className: customStyleCascader,
|
|
23
|
-
...restProps
|
|
24
|
-
}
|
|
25
|
-
) });
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const Modal = ({ children, ...rest }) => {
|
|
29
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Modal$1, { ...rest, children });
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// This icon file is generated automatically.
|
|
33
|
-
var DownOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" } }] }, "name": "down", "theme": "outlined" };
|
|
34
|
-
|
|
35
|
-
var DownOutlined = function DownOutlined(props, ref) {
|
|
36
|
-
return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
|
|
37
|
-
ref: ref,
|
|
38
|
-
icon: DownOutlined$1
|
|
39
|
-
}));
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
/** */
|
|
43
|
-
var RefIcon$3 = /*#__PURE__*/React.forwardRef(DownOutlined);
|
|
44
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
45
|
-
RefIcon$3.displayName = 'DownOutlined';
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// This icon file is generated automatically.
|
|
49
|
-
var FilterOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z" } }] }, "name": "filter", "theme": "outlined" };
|
|
50
|
-
|
|
51
|
-
var FilterOutlined = function FilterOutlined(props, ref) {
|
|
52
|
-
return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
|
|
53
|
-
ref: ref,
|
|
54
|
-
icon: FilterOutlined$1
|
|
55
|
-
}));
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/** */
|
|
59
|
-
var RefIcon$2 = /*#__PURE__*/React.forwardRef(FilterOutlined);
|
|
60
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
61
|
-
RefIcon$2.displayName = 'FilterOutlined';
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// This icon file is generated automatically.
|
|
65
|
-
var SearchOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z" } }] }, "name": "search", "theme": "outlined" };
|
|
66
|
-
|
|
67
|
-
var SearchOutlined = function SearchOutlined(props, ref) {
|
|
68
|
-
return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
|
|
69
|
-
ref: ref,
|
|
70
|
-
icon: SearchOutlined$1
|
|
71
|
-
}));
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/** */
|
|
75
|
-
var RefIcon$1 = /*#__PURE__*/React.forwardRef(SearchOutlined);
|
|
76
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
77
|
-
RefIcon$1.displayName = 'SearchOutlined';
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// This icon file is generated automatically.
|
|
81
|
-
var UpOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z" } }] }, "name": "up", "theme": "outlined" };
|
|
82
|
-
|
|
83
|
-
var UpOutlined = function UpOutlined(props, ref) {
|
|
84
|
-
return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
|
|
85
|
-
ref: ref,
|
|
86
|
-
icon: UpOutlined$1
|
|
87
|
-
}));
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
/** */
|
|
91
|
-
var RefIcon = /*#__PURE__*/React.forwardRef(UpOutlined);
|
|
92
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
93
|
-
RefIcon.displayName = 'UpOutlined';
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const SettingColumnItem = ({ lable, name, control }) => {
|
|
97
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full pt-2 pb-2 inline-flex", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
98
|
-
PnkxField,
|
|
99
|
-
{
|
|
100
|
-
label: lable,
|
|
101
|
-
component: Checkbox,
|
|
102
|
-
name,
|
|
103
|
-
control,
|
|
104
|
-
afterOnChange: () => {
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
) }, name);
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
const RestoreIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111
|
-
"path",
|
|
112
|
-
{
|
|
113
|
-
stroke,
|
|
114
|
-
fill,
|
|
115
|
-
strokeLinecap: "round",
|
|
116
|
-
strokeLinejoin: "round",
|
|
117
|
-
strokeWidth: 1.5,
|
|
118
|
-
d: "M3.405 6.611a8.824 8.824 0 0 1 7.64-4.388c3.701 0 6.87 2.269 8.179 5.486m-13.14 0h-4.41V3.32m16.92 12.069a8.824 8.824 0 0 1-7.64 4.388 8.822 8.822 0 0 1-8.178-5.486m13.14 0h4.41v4.389"
|
|
119
|
-
}
|
|
120
|
-
) });
|
|
121
|
-
|
|
122
|
-
const DragIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 18, height: 24, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
123
|
-
"path",
|
|
124
|
-
{
|
|
125
|
-
fill: fill || "#116DFF",
|
|
126
|
-
stroke,
|
|
127
|
-
fillRule: "evenodd",
|
|
128
|
-
d: "M6 1h2v2H6V1Zm0 5h2v2H6V6Zm4-5h2v2h-2V1Zm0 5h2v2h-2V6Zm-4 5h2v2H6v-2Zm4 0h2v2h-2v-2Zm-4 5h2v2H6v-2Zm4 0h2v2h-2v-2Zm-4 5h2v2H6v-2Zm4 0h2v2h-2v-2Z",
|
|
129
|
-
clipRule: "evenodd"
|
|
130
|
-
}
|
|
131
|
-
) });
|
|
132
|
-
|
|
133
|
-
const SettingIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
134
|
-
"svg",
|
|
135
|
-
{
|
|
136
|
-
width: "30",
|
|
137
|
-
height: "30",
|
|
138
|
-
viewBox: "0 0 30 30",
|
|
139
|
-
fill: "none",
|
|
140
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
141
|
-
...props,
|
|
142
|
-
children: [
|
|
143
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("rect", { x: "0.5", y: "0.5", width: "29", height: "29", rx: "14.5", fill: "white" }),
|
|
144
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
145
|
-
"rect",
|
|
146
|
-
{
|
|
147
|
-
x: "0.5",
|
|
148
|
-
y: "0.5",
|
|
149
|
-
width: "29",
|
|
150
|
-
height: "29",
|
|
151
|
-
rx: "14.5",
|
|
152
|
-
stroke: props?.stroke || "#D6E6FE"
|
|
153
|
-
}
|
|
154
|
-
),
|
|
155
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
156
|
-
"path",
|
|
157
|
-
{
|
|
158
|
-
d: "M16.0854 11C16.2913 10.4174 16.8469 10 17.5 10C18.1531 10 18.7087 10.4174 18.9146 11H21V12H18.9146C18.7087 12.5826 18.1531 13 17.5 13C16.8469 13 16.2913 12.5826 16.0854 12C15.6004 12 15.2368 12 14.9943 12C13.6622 12 11.6641 12 9 12V11C11.6611 11 13.6569 11 14.9874 11M17 11V12H18V11H17ZM17.5 18C18.1531 18 18.7087 18.4174 18.9146 19H21V20H18.9146C18.7087 20.5826 18.1531 21 17.5 21C16.8469 21 16.2913 20.5826 16.0854 20H9V19H16.0854C16.2913 18.4174 16.8469 18 17.5 18ZM17 19V20H18V19H17ZM21 15V16H13.9146C13.7087 16.5826 13.1531 17 12.5 17C11.8469 17 11.2913 16.5826 11.0854 16H9V15H11.0854C11.2913 14.4174 11.8469 14 12.5 14C13.1531 14 13.7087 14.4174 13.9146 15H21ZM12 15V16H13V15H12Z",
|
|
159
|
-
fill: props?.stroke || "#116DFF"
|
|
160
|
-
}
|
|
161
|
-
)
|
|
162
|
-
]
|
|
163
|
-
}
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
const SendApprovalIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
167
|
-
"path",
|
|
168
|
-
{
|
|
169
|
-
fill,
|
|
170
|
-
stroke,
|
|
171
|
-
strokeLinecap: "round",
|
|
172
|
-
strokeWidth: 1.714,
|
|
173
|
-
d: "M6.44 11h4.45m-4.584-.521L2.912 4.37c-.513-.922.474-1.953 1.419-1.481l14.304 7.15a1.073 1.073 0 0 1 0 1.92L4.33 19.11c-.945.472-1.932-.559-1.42-1.482l3.395-6.107c.18-.324.18-.718 0-1.042Z"
|
|
174
|
-
}
|
|
175
|
-
) });
|
|
176
|
-
|
|
177
|
-
const CancelSendApprovalIcon = ({ fill, stroke }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
178
|
-
"path",
|
|
179
|
-
{
|
|
180
|
-
fill,
|
|
181
|
-
stroke,
|
|
182
|
-
strokeLinecap: "round",
|
|
183
|
-
strokeWidth: 1.5,
|
|
184
|
-
d: "M12.829 7.343 9.17 14.657M20.143 11a9.143 9.143 0 1 1-18.286 0 9.143 9.143 0 0 1 18.286 0Z"
|
|
185
|
-
}
|
|
186
|
-
) });
|
|
187
|
-
|
|
188
|
-
const ApprovalIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
189
|
-
"path",
|
|
190
|
-
{
|
|
191
|
-
fill,
|
|
192
|
-
stroke,
|
|
193
|
-
strokeLinecap: "round",
|
|
194
|
-
strokeWidth: 1.714,
|
|
195
|
-
d: "m15.33 6.429-8.667 8.89a.827.827 0 0 1-1.19 0L1.856 11.61m9.618 3.707 8.668-8.89"
|
|
196
|
-
}
|
|
197
|
-
) });
|
|
198
|
-
|
|
199
|
-
const CancelApprovalIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
200
|
-
"path",
|
|
201
|
-
{
|
|
202
|
-
fill,
|
|
203
|
-
stroke,
|
|
204
|
-
strokeLinecap: "round",
|
|
205
|
-
strokeWidth: 1.5,
|
|
206
|
-
d: "M13.743 8.257 11 11m0 0-2.743 2.743M11 11l2.743 2.743M11 11 8.257 8.257M20.143 11a9.143 9.143 0 1 1-18.286 0 9.143 9.143 0 0 1 18.286 0Z"
|
|
207
|
-
}
|
|
208
|
-
) });
|
|
209
|
-
|
|
210
|
-
const RefuseApprovalIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: [
|
|
211
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("mask", { id: "a", fill: "#fff", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M11 2.086A8.914 8.914 0 1 0 19.914 11 8.924 8.924 0 0 0 11 2.086ZM18.543 11a7.505 7.505 0 0 1-1.75 4.824L6.176 5.206A7.543 7.543 0 0 1 18.543 11ZM3.457 11a7.505 7.505 0 0 1 1.75-4.824l10.617 10.618A7.544 7.544 0 0 1 3.457 11Z" }) }),
|
|
212
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
213
|
-
"path",
|
|
214
|
-
{
|
|
215
|
-
fill: "#fff",
|
|
216
|
-
d: "M11 2.086A8.914 8.914 0 1 0 19.914 11 8.924 8.924 0 0 0 11 2.086ZM18.543 11a7.505 7.505 0 0 1-1.75 4.824L6.176 5.206A7.543 7.543 0 0 1 18.543 11ZM3.457 11a7.505 7.505 0 0 1 1.75-4.824l10.617 10.618A7.544 7.544 0 0 1 3.457 11Z"
|
|
217
|
-
}
|
|
218
|
-
),
|
|
219
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
220
|
-
"path",
|
|
221
|
-
{
|
|
222
|
-
fill,
|
|
223
|
-
stroke,
|
|
224
|
-
d: "m11 2.086.002-1.714H11v1.714ZM19.914 11h1.715v-.002L19.914 11Zm-1.371 0-1.714.001h1.714Zm-1.75 4.824-1.212 1.212 1.325 1.325 1.202-1.437-1.315-1.1ZM6.176 5.206 5.08 3.888 3.635 5.089l1.329 1.329 1.212-1.212ZM3.457 11h1.714v-.002L3.457 11Zm1.75-4.824 1.212-1.212-1.325-1.325-1.202 1.437 1.315 1.1Zm10.617 10.618 1.096 1.318 1.445-1.201-1.329-1.329-1.212 1.212ZM11 2.086V.372c-2.102 0-4.157.623-5.905 1.79l.952 1.426L7 5.014A7.2 7.2 0 0 1 11 3.8V2.086ZM6.047 3.588l-.952-1.425a10.629 10.629 0 0 0-3.915 4.77l1.584.656 1.584.656A7.2 7.2 0 0 1 7 5.014l-.953-1.426Zm-3.283 4L1.18 6.934a10.629 10.629 0 0 0-.604 6.14l1.681-.334 1.681-.334a7.2 7.2 0 0 1 .41-4.16l-1.584-.656Zm-.507 5.151-1.681.335a10.628 10.628 0 0 0 2.908 5.442l1.213-1.212 1.212-1.213a7.2 7.2 0 0 1-1.97-3.686l-1.682.334Zm2.44 4.564-1.213 1.213a10.628 10.628 0 0 0 5.442 2.908l.335-1.68.334-1.682a7.201 7.201 0 0 1-3.686-1.97l-1.212 1.212Zm4.564 2.44-.335 1.681c2.062.41 4.2.2 6.141-.604l-.656-1.584-.656-1.584a7.2 7.2 0 0 1-4.16.41l-.334 1.681Zm5.15-.507.656 1.584a10.628 10.628 0 0 0 4.77-3.915l-1.425-.952L16.987 15a7.2 7.2 0 0 1-3.232 2.652l.656 1.584Zm4-3.283 1.426.952A10.628 10.628 0 0 0 21.63 11H18.2a7.2 7.2 0 0 1-1.213 4l1.425.953ZM19.915 11l1.715-.002a10.638 10.638 0 0 0-3.116-7.51L17.3 4.7l-1.213 1.212a7.21 7.21 0 0 1 2.112 5.09L19.914 11Zm-2.613-6.3 1.212-1.213A10.638 10.638 0 0 0 11.002.372L11 2.086 10.998 3.8a7.21 7.21 0 0 1 5.09 2.112L17.301 4.7Zm1.242 6.3-1.714.002a5.79 5.79 0 0 1-1.35 3.722l1.314 1.1 1.315 1.1a9.22 9.22 0 0 0 2.15-5.926L18.542 11Zm-1.75 4.824 1.213-1.212L7.388 3.994 6.176 5.206 4.964 6.418 15.58 17.036l1.212-1.212ZM6.176 5.206l1.096 1.318a5.828 5.828 0 0 1 2.985-1.3l-.219-1.7-.219-1.701a9.257 9.257 0 0 0-4.74 2.065l1.097 1.318Zm3.862-1.683.219 1.7a5.828 5.828 0 0 1 3.216.503l.727-1.552.728-1.552a9.257 9.257 0 0 0-5.109-.8l.22 1.701Zm4.162.651-.727 1.552a5.829 5.829 0 0 1 2.445 2.15l1.446-.92 1.447-.92a9.257 9.257 0 0 0-3.883-3.414L14.2 4.174Zm3.164 2.782-1.446.92c.594.934.91 2.018.91 3.125h1.715l1.714-.002a9.257 9.257 0 0 0-1.447-4.964l-1.446.92ZM3.457 11l1.714-.002a5.79 5.79 0 0 1 1.35-3.722l-1.314-1.1-1.315-1.1a9.22 9.22 0 0 0-2.15 5.926L3.458 11Zm1.75-4.824L3.994 7.388l10.618 10.618 1.212-1.212 1.212-1.212L6.42 4.964 5.207 6.176Zm10.617 10.618-1.096-1.318a5.828 5.828 0 0 1-2.985 1.3l.219 1.701.219 1.7a9.257 9.257 0 0 0 4.74-2.065l-1.097-1.318Zm-3.862 1.683-.219-1.7a5.829 5.829 0 0 1-3.216-.503L7.8 17.826l-.728 1.552a9.257 9.257 0 0 0 5.109.8l-.22-1.7Zm-4.162-.65.727-1.553a5.83 5.83 0 0 1-2.445-2.15l-1.446.92-1.447.92a9.257 9.257 0 0 0 3.883 3.414l.728-1.552Zm-3.164-2.782 1.446-.92a5.829 5.829 0 0 1-.91-3.126L3.456 11l-1.714.001a9.257 9.257 0 0 0 1.446 4.964l1.447-.92Z",
|
|
225
|
-
mask: "url(#a)"
|
|
226
|
-
}
|
|
227
|
-
)
|
|
228
|
-
] });
|
|
229
|
-
|
|
230
|
-
const ActivateIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 22, height: 22, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
231
|
-
"path",
|
|
232
|
-
{
|
|
233
|
-
fill,
|
|
234
|
-
stroke,
|
|
235
|
-
strokeLinecap: "round",
|
|
236
|
-
strokeWidth: 1.714,
|
|
237
|
-
d: "M14.657 8.257V6.43a3.657 3.657 0 0 0-6.076-2.743M7.526 19.229h6.948c1.024 0 1.536 0 1.927-.2.345-.175.624-.455.8-.799.199-.391.199-.903.199-1.927v-5.12c0-1.024 0-1.536-.2-1.928a1.83 1.83 0 0 0-.799-.799c-.39-.199-.903-.199-1.927-.199H7.526c-1.025 0-1.537 0-1.928.2a1.829 1.829 0 0 0-.799.798c-.2.392-.2.904-.2 1.928v5.12c0 1.024 0 1.536.2 1.927.175.344.455.624.8.8.39.198.902.198 1.927.198Z"
|
|
238
|
-
}
|
|
239
|
-
) });
|
|
240
|
-
|
|
241
|
-
const DeleteIcon = ({ stroke, fill = "#DD4338" }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 23, height: 24, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
242
|
-
"path",
|
|
243
|
-
{
|
|
244
|
-
fill,
|
|
245
|
-
stroke,
|
|
246
|
-
d: "m18.219 17.634.75.006-.75-.006ZM4.319 5.65a.75.75 0 1 0 0 1.5v-1.5Zm14.934 1.5a.75.75 0 0 0 0-1.5v1.5Zm-8.584 2.984a.75.75 0 1 0-1.5 0h1.5ZM9.17 17.6a.75.75 0 0 0 1.5 0h-1.5Zm5.234-7.466a.75.75 0 1 0-1.5 0h1.5Zm-1.5 7.466a.75.75 0 0 0 1.5 0h-1.5Zm5.416-11.2-.75-.006-.1 11.233.75.007.75.006.1-11.233-.75-.007Zm-3.833 14.934v-.75h-5.5v1.5h5.5v-.75ZM5.253 6.4h-.75v11.2h1.5V6.4h-.75Zm-.934 0v.75h.934v-1.5h-.934v.75Zm.934 0v.75h2.8v-1.5h-2.8v.75Zm2.8 0v.75h7.466v-1.5H8.053v.75Zm7.466 0v.75h2.8v-1.5h-2.8v.75Zm2.8 0v.75h.934v-1.5h-.934v.75ZM8.053 5.985h.75c0-1.338 1.25-2.568 2.983-2.568v-1.5c-2.39 0-4.483 1.74-4.483 4.068h.75Zm3.733-3.318v.75c1.733 0 2.983 1.23 2.983 2.568h1.5c0-2.327-2.092-4.068-4.483-4.068v.75ZM8.053 5.985h-.75V6.4h1.5v-.415h-.75Zm7.466 0h-.75V6.4h1.5v-.415h-.75ZM8.986 21.334v-.75A2.983 2.983 0 0 1 6.003 17.6h-1.5a4.483 4.483 0 0 0 4.483 4.484v-.75Zm9.233-3.7-.75-.007a2.983 2.983 0 0 1-2.983 2.957v1.5a4.483 4.483 0 0 0 4.483-4.444l-.75-.006Zm-8.3-7.5h-.75V17.6h1.5v-7.466h-.75Zm3.734 0h-.75V17.6h1.5v-7.466h-.75Z"
|
|
247
|
-
}
|
|
248
|
-
) });
|
|
249
|
-
|
|
250
|
-
const InActiveIcon = ({ stroke, fill }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
251
|
-
"svg",
|
|
252
|
-
{
|
|
253
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
254
|
-
width: 22,
|
|
255
|
-
height: 22,
|
|
256
|
-
fill: "none",
|
|
257
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
258
|
-
"path",
|
|
259
|
-
{
|
|
260
|
-
fill,
|
|
261
|
-
stroke,
|
|
262
|
-
strokeLinecap: "round",
|
|
263
|
-
strokeWidth: 1.714,
|
|
264
|
-
d: "M7.343 8.257V6.43a3.657 3.657 0 0 1 7.314 0v1.828M7.526 19.23h6.948c1.024 0 1.536 0 1.927-.2.345-.175.624-.455.8-.799.199-.391.199-.903.199-1.927v-5.12c0-1.024 0-1.536-.2-1.928a1.83 1.83 0 0 0-.799-.799c-.39-.199-.903-.199-1.927-.199H7.526c-1.025 0-1.537 0-1.928.2a1.829 1.829 0 0 0-.799.798c-.2.392-.2.904-.2 1.928v5.12c0 1.024 0 1.536.2 1.927.175.344.455.624.8.8.39.198.902.198 1.927.198Z"
|
|
265
|
-
}
|
|
266
|
-
)
|
|
267
|
-
}
|
|
268
|
-
);
|
|
269
|
-
|
|
270
|
-
const EditIcon = ({ stroke, fill = "#007BE5" }) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 14, height: 15, fill: "none", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
271
|
-
"path",
|
|
272
|
-
{
|
|
273
|
-
fill,
|
|
274
|
-
stroke,
|
|
275
|
-
d: "m1.177 11.137.711.237-.711-.237ZM1.8 9.264l-.712-.238.712.238Zm.644-1.043.53.53-.53-.53ZM8.667 2l-.53-.53.53.53ZM12 5.333l.53.53-.53-.53Zm-6.222 6.222-.53-.53.53.53Zm-1.042.644.237.711-.237-.711Zm-1.873.624.237.712-.237-.712Zm2.574-.95-.452-.598.452.599Zm-.263.163-.333-.672.333.672Zm7.629-9.11-.672.333.672-.333Zm0 1.48-.672-.333.672.333Zm-3.21-3.21.333.673-.333-.672Zm1.48 0-.333.673.333-.672Zm-9.11 7.63.673.333-.672-.333Zm.163-.263-.599-.452.6.452Zm-1.26 4.066-.706.252.706-.252Zm.505.505-.252.706.252-.706ZM8.364 2.303a.75.75 0 0 0-1.061 1.06l1.06-1.06Zm2.272 4.394a.75.75 0 0 0 1.061-1.06l-1.06 1.06ZM7 12.917a.75.75 0 0 0 0 1.5v-1.5Zm5.833 1.5a.75.75 0 0 0 0-1.5v1.5Zm-11.656-3.28.711.237.624-1.873-.711-.237-.712-.238L.465 10.9l.712.238ZM2.445 8.22l.53.53 6.222-6.22L8.667 2l-.53-.53-6.222 6.22.53.531ZM12 5.333l-.53-.53-6.222 6.221.53.53.53.53 6.222-6.22-.53-.53ZM4.736 12.2l-.237-.712-1.873.625.237.711.237.712 1.873-.625-.237-.711Zm1.042-.644-.53-.53c-.18.18-.222.219-.263.25l.452.599.451.598c.144-.108.269-.235.42-.387l-.53-.53Zm-1.042.644.237.711c.204-.068.373-.122.535-.202l-.334-.672-.333-.672c-.047.023-.1.043-.342.123l.237.712Zm.7-.325-.451-.6a.92.92 0 0 1-.144.09l.333.672.334.672c.134-.067.261-.146.38-.236l-.451-.598ZM12 2l-.53.53c.497.497.608.622.661.73l.672-.334.672-.333c-.19-.383-.533-.712-.945-1.124L12 2Zm0 3.333.53.53c.412-.411.755-.74.945-1.124l-.672-.333-.672-.333c-.053.107-.164.233-.661.73l.53.53Zm.803-2.407-.672.333a.917.917 0 0 1 0 .814l.672.333.672.333a2.417 2.417 0 0 0 0-2.146l-.672.333ZM8.667 2l.53.53c.497-.497.622-.608.73-.661l-.334-.672L9.26.525c-.383.19-.712.533-1.124.944l.53.53ZM12 2l.53-.53c-.411-.412-.74-.755-1.124-.945l-.333.672-.333.672c.107.053.232.164.73.661L12 2Zm-2.407-.803.333.672a.917.917 0 0 1 .814 0l.333-.672.333-.672a2.417 2.417 0 0 0-2.146 0l.333.672ZM1.801 9.264l.711.237c.081-.242.1-.295.124-.342l-.672-.333-.672-.334c-.08.161-.135.33-.203.534l.712.238Zm.644-1.043-.53-.53c-.152.152-.279.276-.388.42l.6.452.598.452a2.99 2.99 0 0 1 .25-.263l-.53-.53Zm-.481.605.672.333c.025-.05.055-.1.089-.144l-.599-.452-.599-.452c-.09.12-.168.247-.235.381l.672.334Zm-.787 2.31L.465 10.9c-.13.393-.246.737-.312 1.016-.063.267-.118.617.007.966l.706-.252.706-.252c.028.078-.007.088.041-.119.046-.196.135-.463.275-.884l-.711-.237Zm1.686 1.687-.237-.711c-.421.14-.688.228-.884.274-.208.049-.197.014-.12.041l-.251.707-.252.706c.349.124.698.07.966.007.278-.066.622-.181 1.015-.312l-.237-.712ZM.866 12.63l-.706.252c.16.447.511.8.96.96l.251-.707.252-.707a.083.083 0 0 1-.05-.05l-.707.252Zm6.967-9.796-.53.53 3.333 3.334.53-.53.531-.53-3.333-3.334-.53.53ZM7 13.666v.75h5.833v-1.5H7v.75Z"
|
|
276
|
-
}
|
|
277
|
-
) });
|
|
278
|
-
|
|
279
|
-
const SortableItem = ({
|
|
280
|
-
id,
|
|
281
|
-
children,
|
|
282
|
-
isLastIndex
|
|
283
|
-
}) => {
|
|
284
|
-
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id });
|
|
285
|
-
const style = {
|
|
286
|
-
transform: CSS.Transform.toString(transform),
|
|
287
|
-
transition
|
|
288
|
-
};
|
|
289
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
290
|
-
"div",
|
|
291
|
-
{
|
|
292
|
-
ref: setNodeRef,
|
|
293
|
-
style,
|
|
294
|
-
className: twMerge(
|
|
295
|
-
"flex items-center border-t-1 !border-t-[#F0F0F0] ",
|
|
296
|
-
isLastIndex ? "!border-b-1 !border-b-[#F0F0F0]" : ""
|
|
297
|
-
),
|
|
298
|
-
children: [
|
|
299
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "pl-2 pr-3.5 cursor-grab", ...attributes, ...listeners, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DragIcon, {}) }),
|
|
300
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children })
|
|
301
|
-
]
|
|
302
|
-
}
|
|
303
|
-
);
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
const SettingTable = (props) => {
|
|
307
|
-
const {
|
|
308
|
-
open,
|
|
309
|
-
setOpen,
|
|
310
|
-
title,
|
|
311
|
-
showSetting,
|
|
312
|
-
setDefaultSettingColumnItems,
|
|
313
|
-
defaultSettingColumnItems
|
|
314
|
-
} = props;
|
|
315
|
-
const { handleSubmit, control } = useForm();
|
|
316
|
-
const [columns, setColumns] = useState([]);
|
|
317
|
-
const handleCloseModal = () => {
|
|
318
|
-
setOpen(false);
|
|
319
|
-
};
|
|
320
|
-
const handleOkModal = () => {
|
|
321
|
-
setOpen(false);
|
|
322
|
-
};
|
|
323
|
-
const onSubmit = (data) => {
|
|
324
|
-
setOpen(false);
|
|
325
|
-
if (setDefaultSettingColumnItems) {
|
|
326
|
-
setDefaultSettingColumnItems(columns);
|
|
327
|
-
}
|
|
328
|
-
};
|
|
329
|
-
const handleDragEnd = (event) => {
|
|
330
|
-
const { active, over } = event;
|
|
331
|
-
if (!over || active.id === over.id) return;
|
|
332
|
-
const oldIndex = columns.findIndex((col) => col.key === active.id);
|
|
333
|
-
const newIndex = columns.findIndex((col) => col.key === over.id);
|
|
334
|
-
const newColumns = arrayMove(columns, oldIndex, newIndex);
|
|
335
|
-
setColumns(newColumns);
|
|
336
|
-
};
|
|
337
|
-
useEffect(() => {
|
|
338
|
-
setColumns(defaultSettingColumnItems);
|
|
339
|
-
}, [defaultSettingColumnItems]);
|
|
340
|
-
const titleHeader = () => {
|
|
341
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
342
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Cài đặt hiển thị bảng" }),
|
|
343
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[14px] text-[#5C657D] font-normal", children: "Chọn cột muốn hiển thị và kéo thả vị trí muốn hiển thị" })
|
|
344
|
-
] });
|
|
345
|
-
};
|
|
346
|
-
const footer = () => {
|
|
347
|
-
const handleCancel = () => {
|
|
348
|
-
if (setDefaultSettingColumnItems) {
|
|
349
|
-
setDefaultSettingColumnItems(defaultSettingColumnItems);
|
|
350
|
-
}
|
|
351
|
-
setColumns(defaultSettingColumnItems);
|
|
352
|
-
setOpen(false);
|
|
353
|
-
};
|
|
354
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-end items-end mt-3 pr-6", children: [
|
|
355
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
356
|
-
Button,
|
|
357
|
-
{
|
|
358
|
-
className: " !rounded-3xl !text-[#007BE5] !border-[#BDE3FF]",
|
|
359
|
-
onClick: handleCancel,
|
|
360
|
-
children: "Về chế độ mặc định"
|
|
361
|
-
}
|
|
362
|
-
),
|
|
363
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
364
|
-
Button,
|
|
365
|
-
{
|
|
366
|
-
className: "ml-2 !rounded-3xl !bg-[#007BE5] !text-[white] !border-[#007BE5]",
|
|
367
|
-
htmlType: "submit",
|
|
368
|
-
children: "Xác nhận"
|
|
369
|
-
}
|
|
370
|
-
)
|
|
371
|
-
] });
|
|
372
|
-
};
|
|
373
|
-
if (!showSetting) return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
|
|
374
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
375
|
-
Modal,
|
|
376
|
-
{
|
|
377
|
-
open,
|
|
378
|
-
title: title || titleHeader(),
|
|
379
|
-
closable: true,
|
|
380
|
-
onClose: handleCloseModal,
|
|
381
|
-
onOk: handleOkModal,
|
|
382
|
-
className: "setting-table-modal",
|
|
383
|
-
footer: null,
|
|
384
|
-
onCancel: handleCloseModal,
|
|
385
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit(onSubmit), children: [
|
|
386
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
387
|
-
DndContext,
|
|
388
|
-
{
|
|
389
|
-
collisionDetection: closestCenter,
|
|
390
|
-
onDragEnd: handleDragEnd,
|
|
391
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
392
|
-
SortableContext,
|
|
393
|
-
{
|
|
394
|
-
items: columns.map((item) => String(item.key)),
|
|
395
|
-
strategy: verticalListSortingStrategy,
|
|
396
|
-
children: columns.filter((i) => i.key).map((item, index) => {
|
|
397
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
398
|
-
SortableItem,
|
|
399
|
-
{
|
|
400
|
-
id: String(item.key),
|
|
401
|
-
isLastIndex: index === columns.length - 1,
|
|
402
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
403
|
-
SettingColumnItem,
|
|
404
|
-
{
|
|
405
|
-
lable: String(item.title),
|
|
406
|
-
control,
|
|
407
|
-
name: item.key
|
|
408
|
-
}
|
|
409
|
-
)
|
|
410
|
-
},
|
|
411
|
-
item.key
|
|
412
|
-
);
|
|
413
|
-
})
|
|
414
|
-
}
|
|
415
|
-
)
|
|
416
|
-
}
|
|
417
|
-
),
|
|
418
|
-
footer()
|
|
419
|
-
] })
|
|
420
|
-
}
|
|
421
|
-
);
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
const typeColorMap = {
|
|
425
|
-
error: "red",
|
|
426
|
-
info: "blue",
|
|
427
|
-
success: "green",
|
|
428
|
-
warning: "yellow"
|
|
429
|
-
};
|
|
430
|
-
const Badge = ({ type, children, customColor, ...rest }) => {
|
|
431
|
-
const color = type ? typeColorMap[type] : customColor;
|
|
432
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Badge$1, { color, ...rest, children });
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
const ButtonBadge = (props) => {
|
|
436
|
-
const { buttonItem, active, setFilters, filters } = props;
|
|
437
|
-
const handleClick = () => {
|
|
438
|
-
setFilters({ ...filters, status: buttonItem?.status });
|
|
439
|
-
};
|
|
440
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
441
|
-
Button,
|
|
442
|
-
{
|
|
443
|
-
className: twMerge(
|
|
444
|
-
"ml-1 mt-1 !rounded-[8px] !text-[12px]",
|
|
445
|
-
active ? "!border-[#007BE5] !bg-[#E5F4FF] !font-medium" : "!border-[white] !shadow-none"
|
|
446
|
-
),
|
|
447
|
-
onClick: handleClick,
|
|
448
|
-
children: [
|
|
449
|
-
buttonItem.label,
|
|
450
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
451
|
-
Badge,
|
|
452
|
-
{
|
|
453
|
-
showZero: true,
|
|
454
|
-
count: buttonItem?.quantity || 0,
|
|
455
|
-
color: `${active ? "#BDE3FF]" : "#EEEEF0"}`,
|
|
456
|
-
className: twMerge(
|
|
457
|
-
"!text-[#4D4D57] !rounded-[8px]",
|
|
458
|
-
active ? "customBadgeActive" : "customBadge"
|
|
459
|
-
)
|
|
460
|
-
}
|
|
461
|
-
)
|
|
462
|
-
]
|
|
463
|
-
}
|
|
464
|
-
);
|
|
465
|
-
};
|
|
466
|
-
const GroupHeadingButton = (props) => {
|
|
467
|
-
const { groupHeadingButtonItems, setFilters, filters } = props;
|
|
468
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pb-[15px]", children: groupHeadingButtonItems?.map((i, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
469
|
-
ButtonBadge,
|
|
470
|
-
{
|
|
471
|
-
buttonItem: i,
|
|
472
|
-
active: i?.status === filters?.status,
|
|
473
|
-
setFilters,
|
|
474
|
-
filters
|
|
475
|
-
},
|
|
476
|
-
index
|
|
477
|
-
)) });
|
|
478
|
-
};
|
|
479
|
-
|
|
480
|
-
const Breadcrumb = (props) => {
|
|
481
|
-
const { containerClassName, breadcrumbClassName, ...restProps } = props;
|
|
482
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb$1, { className: breadcrumbClassName, ...restProps }) });
|
|
483
|
-
};
|
|
484
|
-
|
|
485
|
-
const Heading = (props) => {
|
|
486
|
-
const { rightContent, children, noBreadcum, classNameWrapHeading, menu } = props;
|
|
487
|
-
//! State
|
|
488
|
-
const location = useLocation();
|
|
489
|
-
const pathUrl = location.pathname;
|
|
490
|
-
const breadcrumbsItem = [
|
|
491
|
-
{ title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/", children: "Trang chủ" }) }
|
|
492
|
-
];
|
|
493
|
-
function findBreadcrumbs(items, currentPath, trail = []) {
|
|
494
|
-
for (const item of items) {
|
|
495
|
-
if (!item || !item.path) continue;
|
|
496
|
-
if (currentPath === item.path) {
|
|
497
|
-
if (!Object.prototype.hasOwnProperty.call(item, "isShowLabel") || item.isShowLabel) {
|
|
498
|
-
return [...trail, { title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: item.path, children: item.name }) }];
|
|
499
|
-
}
|
|
500
|
-
return trail;
|
|
501
|
-
}
|
|
502
|
-
if (currentPath.startsWith(item.path)) {
|
|
503
|
-
const newTrail = [...trail];
|
|
504
|
-
if (!Object.prototype.hasOwnProperty.call(item, "isShowLabel") || item.isShowLabel) {
|
|
505
|
-
newTrail.push({
|
|
506
|
-
title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: item.path, children: item.name })
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
if (item.children && item.children.length > 0) {
|
|
510
|
-
const childTrail = findBreadcrumbs(
|
|
511
|
-
item.children,
|
|
512
|
-
currentPath,
|
|
513
|
-
newTrail
|
|
514
|
-
);
|
|
515
|
-
if (childTrail) return childTrail;
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
return null;
|
|
520
|
-
}
|
|
521
|
-
const dynamicBreadcrumbs = findBreadcrumbs(menu, pathUrl);
|
|
522
|
-
if (dynamicBreadcrumbs) {
|
|
523
|
-
breadcrumbsItem.push(...dynamicBreadcrumbs);
|
|
524
|
-
}
|
|
525
|
-
console.log("breadcrumbsItem table", breadcrumbsItem);
|
|
526
|
-
//! Function
|
|
527
|
-
//! Render
|
|
528
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
529
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
530
|
-
"div",
|
|
531
|
-
{
|
|
532
|
-
className: className(
|
|
533
|
-
"flex justify-between items-end",
|
|
534
|
-
classNameWrapHeading
|
|
535
|
-
),
|
|
536
|
-
children: [
|
|
537
|
-
!noBreadcum && /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { items: breadcrumbsItem }),
|
|
538
|
-
rightContent
|
|
539
|
-
]
|
|
540
|
-
}
|
|
541
|
-
),
|
|
542
|
-
children
|
|
543
|
-
] });
|
|
544
|
-
};
|
|
545
|
-
|
|
546
|
-
const IconSettingTable = (props) => {
|
|
547
|
-
const { showSetting, setOpenStting } = props;
|
|
548
|
-
if (showSetting) {
|
|
549
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-5 mr-3 ", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: "Cài đặt hiển thị bảng", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
550
|
-
SettingIcon,
|
|
551
|
-
{
|
|
552
|
-
className: "cursor-pointer",
|
|
553
|
-
onClick: () => setOpenStting(true)
|
|
554
|
-
}
|
|
555
|
-
) }) });
|
|
556
|
-
}
|
|
557
|
-
return null;
|
|
558
|
-
};
|
|
559
|
-
|
|
560
|
-
const Divider = ({ children, ...rest }) => {
|
|
561
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Divider$1, { ...rest, children });
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
const HeadingTable = (props) => {
|
|
565
|
-
const {
|
|
566
|
-
setOpenStting,
|
|
567
|
-
showSetting,
|
|
568
|
-
renderHeadingSearch,
|
|
569
|
-
rightHeadingContent,
|
|
570
|
-
menu,
|
|
571
|
-
groupHeadingButtonItems,
|
|
572
|
-
setFilters,
|
|
573
|
-
filters,
|
|
574
|
-
noBreadcum
|
|
575
|
-
} = props;
|
|
576
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
577
|
-
Heading,
|
|
578
|
-
{
|
|
579
|
-
menu,
|
|
580
|
-
classNameWrapHeading: "justify-between",
|
|
581
|
-
rightContent: rightHeadingContent && rightHeadingContent,
|
|
582
|
-
noBreadcum,
|
|
583
|
-
children: [
|
|
584
|
-
renderHeadingSearch && renderHeadingSearch(),
|
|
585
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { className: "!my-5 !mb-4" }),
|
|
586
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center", children: [
|
|
587
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
588
|
-
GroupHeadingButton,
|
|
589
|
-
{
|
|
590
|
-
groupHeadingButtonItems,
|
|
591
|
-
setFilters,
|
|
592
|
-
filters
|
|
593
|
-
}
|
|
594
|
-
),
|
|
595
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
596
|
-
IconSettingTable,
|
|
597
|
-
{
|
|
598
|
-
setOpenStting,
|
|
599
|
-
showSetting
|
|
600
|
-
}
|
|
601
|
-
) })
|
|
602
|
-
] })
|
|
603
|
-
]
|
|
604
|
-
}
|
|
605
|
-
);
|
|
606
|
-
};
|
|
607
|
-
|
|
608
|
-
const START_PAGE = 1;
|
|
609
|
-
const START_PAGE_SIZE = 10;
|
|
610
|
-
const PAGE_NUMBER = "page";
|
|
611
|
-
const PAGE_SIZE = "size";
|
|
612
|
-
const SORT = "sort";
|
|
613
|
-
var TypeActionRowTable = /* @__PURE__ */ ((TypeActionRowTable2) => {
|
|
614
|
-
TypeActionRowTable2["DELETE"] = "DELETE";
|
|
615
|
-
TypeActionRowTable2["EDIT"] = "EDIT";
|
|
616
|
-
TypeActionRowTable2["UNDO"] = "UNDO";
|
|
617
|
-
TypeActionRowTable2["CANCELUNDO"] = "CANCELUNDO";
|
|
618
|
-
TypeActionRowTable2["CHECKIN"] = "CHECKIN";
|
|
619
|
-
TypeActionRowTable2["PRINT"] = "PRINT";
|
|
620
|
-
TypeActionRowTable2["PAYMENT"] = "PAYMENT";
|
|
621
|
-
TypeActionRowTable2["PLAY"] = "PLAY";
|
|
622
|
-
TypeActionRowTable2["PAUSE"] = "PAUSE";
|
|
623
|
-
TypeActionRowTable2["DOWNLOAD"] = "DOWNLOAD";
|
|
624
|
-
TypeActionRowTable2["VIEW"] = "VIEW";
|
|
625
|
-
return TypeActionRowTable2;
|
|
626
|
-
})(TypeActionRowTable || {});
|
|
627
|
-
var TypeBulkActions = /* @__PURE__ */ ((TypeBulkActions2) => {
|
|
628
|
-
TypeBulkActions2["BULKACTION"] = "bulkaction";
|
|
629
|
-
TypeBulkActions2["DROPLIST"] = "droplist";
|
|
630
|
-
return TypeBulkActions2;
|
|
631
|
-
})(TypeBulkActions || {});
|
|
632
|
-
var TypeStatusTable = /* @__PURE__ */ ((TypeStatusTable2) => {
|
|
633
|
-
TypeStatusTable2["ALL"] = "ALL";
|
|
634
|
-
TypeStatusTable2[TypeStatusTable2["DRAFT"] = 0] = "DRAFT";
|
|
635
|
-
TypeStatusTable2[TypeStatusTable2["WAITING_APPROVAL"] = 1] = "WAITING_APPROVAL";
|
|
636
|
-
TypeStatusTable2[TypeStatusTable2["ACTIVE"] = 2] = "ACTIVE";
|
|
637
|
-
TypeStatusTable2[TypeStatusTable2["INACTIVE"] = 3] = "INACTIVE";
|
|
638
|
-
TypeStatusTable2[TypeStatusTable2["REJECTED"] = 4] = "REJECTED";
|
|
639
|
-
TypeStatusTable2[TypeStatusTable2["DELETED"] = 5] = "DELETED";
|
|
640
|
-
return TypeStatusTable2;
|
|
641
|
-
})(TypeStatusTable || {});
|
|
642
|
-
|
|
643
|
-
const BulkAction = ({
|
|
644
|
-
quantity = 0,
|
|
645
|
-
listIcon,
|
|
646
|
-
status,
|
|
647
|
-
setNotifyContent,
|
|
648
|
-
toggle
|
|
649
|
-
}) => {
|
|
650
|
-
//! State
|
|
651
|
-
//! Function
|
|
652
|
-
const IsShow = (arrStatus) => {
|
|
653
|
-
return arrStatus.includes(status);
|
|
654
|
-
};
|
|
655
|
-
//! Render
|
|
656
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full flex justify-center items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 px-[10px] py-3 bg-[#2561ED] rounded-lg w-fit", children: [
|
|
657
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-white px-3", children: [
|
|
658
|
-
"Đã chọn: ",
|
|
659
|
-
quantity
|
|
660
|
-
] }),
|
|
661
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-5 border-l border-white mx-1" }),
|
|
662
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center space-x-3", children: !lodashExports.isEmpty(listIcon) && listIcon?.map(
|
|
663
|
-
(item, index) => IsShow(item?.arrShow) && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: item?.title, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
664
|
-
"button",
|
|
665
|
-
{
|
|
666
|
-
className: "p-1 rounded-sm transition duration-200 cursor-pointer hover:bg-[#1B4ACB] hover:rounded-sm",
|
|
667
|
-
onClick: () => {
|
|
668
|
-
toggle();
|
|
669
|
-
setNotifyContent({
|
|
670
|
-
title: item?.title || "",
|
|
671
|
-
content: item?.content || "",
|
|
672
|
-
typeIcon: item?.typeIcon,
|
|
673
|
-
handleCancel: () => {
|
|
674
|
-
toggle();
|
|
675
|
-
},
|
|
676
|
-
handleSubmit: () => {
|
|
677
|
-
if (item?.action) {
|
|
678
|
-
item?.action();
|
|
679
|
-
}
|
|
680
|
-
toggle();
|
|
681
|
-
}
|
|
682
|
-
});
|
|
683
|
-
},
|
|
684
|
-
children: item.icon
|
|
685
|
-
},
|
|
686
|
-
index
|
|
687
|
-
) })
|
|
688
|
-
) })
|
|
689
|
-
] }) });
|
|
690
|
-
};
|
|
691
|
-
|
|
692
|
-
const ErrorConfirmIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
693
|
-
"svg",
|
|
694
|
-
{
|
|
695
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
696
|
-
width: 24,
|
|
697
|
-
height: 24,
|
|
698
|
-
fill: "none",
|
|
699
|
-
...props,
|
|
700
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
701
|
-
"path",
|
|
702
|
-
{
|
|
703
|
-
fill: props?.fill || "#FF4D4F",
|
|
704
|
-
d: "M12 1.5C6.202 1.5 1.5 6.202 1.5 12S6.202 22.5 12 22.5 22.5 17.798 22.5 12 17.798 1.5 12 1.5Zm3.877 14.49-1.547-.008L12 13.205 9.673 15.98l-1.55.007a.187.187 0 0 1-.187-.188c0-.044.016-.086.044-.122l3.05-3.633-3.05-3.63a.188.188 0 0 1 .143-.31l1.55.008L12 10.889l2.327-2.775 1.547-.007c.103 0 .188.082.188.188a.195.195 0 0 1-.045.121l-3.044 3.63 3.046 3.634a.188.188 0 0 1-.143.31Z"
|
|
705
|
-
}
|
|
706
|
-
)
|
|
707
|
-
}
|
|
708
|
-
);
|
|
709
|
-
|
|
710
|
-
const InfoConfirmIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
711
|
-
"svg",
|
|
712
|
-
{
|
|
713
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
714
|
-
width: 24,
|
|
715
|
-
height: 24,
|
|
716
|
-
fill: "none",
|
|
717
|
-
...props,
|
|
718
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
719
|
-
"path",
|
|
720
|
-
{
|
|
721
|
-
fill: props?.fill || "#1677FF",
|
|
722
|
-
stroke: props?.stroke,
|
|
723
|
-
d: "M12 1.5C6.202 1.5 1.5 6.202 1.5 12S6.202 22.5 12 22.5 22.5 17.798 22.5 12 17.798 1.5 12 1.5Zm.75 15.563a.188.188 0 0 1-.188.187h-1.124a.188.188 0 0 1-.188-.188v-6.375c0-.103.084-.187.188-.187h1.124c.104 0 .188.084.188.188v6.374ZM12 9a1.125 1.125 0 0 1 0-2.25A1.125 1.125 0 0 1 12 9Z"
|
|
724
|
-
}
|
|
725
|
-
)
|
|
726
|
-
}
|
|
727
|
-
);
|
|
728
|
-
|
|
729
|
-
const SuccessIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
730
|
-
"svg",
|
|
731
|
-
{
|
|
732
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
733
|
-
width: 24,
|
|
734
|
-
height: 24,
|
|
735
|
-
fill: "none",
|
|
736
|
-
...props,
|
|
737
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
738
|
-
"path",
|
|
739
|
-
{
|
|
740
|
-
fill: props?.fill || "#52C41A",
|
|
741
|
-
stroke: props?.stroke,
|
|
742
|
-
d: "M12 1.5C6.202 1.5 1.5 6.202 1.5 12S6.202 22.5 12 22.5 22.5 17.798 22.5 12 17.798 1.5 12 1.5Zm4.535 7.071L11.6 15.415a.745.745 0 0 1-1.212 0l-2.922-4.05a.188.188 0 0 1 .152-.298h1.1c.238 0 .466.115.606.312l1.67 2.316 3.684-5.11a.75.75 0 0 1 .607-.312h1.099c.152 0 .241.174.152.298Z"
|
|
743
|
-
}
|
|
744
|
-
)
|
|
745
|
-
}
|
|
746
|
-
);
|
|
747
|
-
|
|
748
|
-
const WarningConfrimIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
749
|
-
"svg",
|
|
750
|
-
{
|
|
751
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
752
|
-
width: 24,
|
|
753
|
-
height: 24,
|
|
754
|
-
fill: "none",
|
|
755
|
-
...props,
|
|
756
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
757
|
-
"path",
|
|
758
|
-
{
|
|
759
|
-
fill: props?.fill || "#FAAD14",
|
|
760
|
-
d: "M12 1.5C6.202 1.5 1.5 6.202 1.5 12S6.202 22.5 12 22.5 22.5 17.798 22.5 12 17.798 1.5 12 1.5Zm-.75 5.438c0-.104.084-.188.188-.188h1.124c.104 0 .188.084.188.188v6.375a.188.188 0 0 1-.188.187h-1.124a.188.188 0 0 1-.188-.188V6.939ZM12 17.25A1.125 1.125 0 0 1 12 15a1.125 1.125 0 0 1 0 2.25Z"
|
|
761
|
-
}
|
|
762
|
-
)
|
|
763
|
-
}
|
|
764
|
-
);
|
|
765
|
-
|
|
766
|
-
const ConfirmModal = ({
|
|
767
|
-
title,
|
|
768
|
-
content,
|
|
769
|
-
typeIcon,
|
|
770
|
-
titleCancelBtn = "Huỷ bỏ",
|
|
771
|
-
titleSubmitBtn = "Xác nhận",
|
|
772
|
-
handleCancel,
|
|
773
|
-
handleSubmit,
|
|
774
|
-
...restProps
|
|
775
|
-
}) => {
|
|
776
|
-
//! State
|
|
777
|
-
const IconType = () => {
|
|
778
|
-
switch (typeIcon) {
|
|
779
|
-
case "success":
|
|
780
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(SuccessIcon, {});
|
|
781
|
-
case "error":
|
|
782
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorConfirmIcon, {});
|
|
783
|
-
case "info":
|
|
784
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(InfoConfirmIcon, {});
|
|
785
|
-
case "warning":
|
|
786
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(WarningConfrimIcon, {});
|
|
787
|
-
}
|
|
788
|
-
};
|
|
789
|
-
//! Function
|
|
790
|
-
//! Render
|
|
791
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ...restProps, footer: null, closeIcon: null, width: 400, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
792
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-3", children: [
|
|
793
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-fit", children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconType, {}) }),
|
|
794
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
795
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-base font-semibold", children: title }),
|
|
796
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm", children: content })
|
|
797
|
-
] })
|
|
798
|
-
] }),
|
|
799
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2 w-full justify-end items-end pt-3", children: [
|
|
800
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { shape: "round", onClick: handleCancel, children: titleCancelBtn }),
|
|
801
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { shape: "round", type: "primary", onClick: handleSubmit, children: titleSubmitBtn })
|
|
802
|
-
] })
|
|
803
|
-
] }) });
|
|
804
|
-
};
|
|
805
|
-
|
|
806
|
-
var CATEGORY_LIST_ENUM = /* @__PURE__ */ ((CATEGORY_LIST_ENUM2) => {
|
|
807
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["DRAFT"] = 0] = "DRAFT";
|
|
808
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["WATING_APPROVAL"] = 1] = "WATING_APPROVAL";
|
|
809
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["ACTIVE"] = 2] = "ACTIVE";
|
|
810
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["INACTIVE"] = 3] = "INACTIVE";
|
|
811
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["REJECT"] = 4] = "REJECT";
|
|
812
|
-
CATEGORY_LIST_ENUM2[CATEGORY_LIST_ENUM2["DELETE"] = 5] = "DELETE";
|
|
813
|
-
return CATEGORY_LIST_ENUM2;
|
|
814
|
-
})(CATEGORY_LIST_ENUM || {});
|
|
815
|
-
const badgeStatusCategoryConfig = {
|
|
816
|
-
[0 /* DRAFT */]: { color: "bg-[#007BE5]", text: "Tạo mới" },
|
|
817
|
-
[1 /* WATING_APPROVAL */]: {
|
|
818
|
-
color: "bg-[#DA9438]",
|
|
819
|
-
text: "Chờ duyệt"
|
|
820
|
-
},
|
|
821
|
-
[2 /* ACTIVE */]: { color: "bg-[#27CD7F]", text: "Hoạt động" },
|
|
822
|
-
[3 /* INACTIVE */]: {
|
|
823
|
-
color: "bg-[#DD4338]",
|
|
824
|
-
text: "Ngừng hoạt động"
|
|
825
|
-
},
|
|
826
|
-
[4 /* REJECT */]: {
|
|
827
|
-
color: "bg-[#722ED1]",
|
|
828
|
-
text: "Từ chối duyệt"
|
|
829
|
-
},
|
|
830
|
-
[5 /* DELETE */]: {
|
|
831
|
-
color: "bg-[#B2B7C2]",
|
|
832
|
-
text: "Đã xóa"
|
|
833
|
-
}
|
|
834
|
-
};
|
|
835
|
-
const CategoryStatus = ({ status }) => {
|
|
836
|
-
//! State
|
|
837
|
-
const bagde = badgeStatusCategoryConfig[status];
|
|
838
|
-
//! Function
|
|
839
|
-
const ItemStatus = ({
|
|
840
|
-
color,
|
|
841
|
-
statusName
|
|
842
|
-
}) => {
|
|
843
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
844
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: twMerge("w-3 h-3 rounded-sm", color || "") }),
|
|
845
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-normal", children: statusName || "" })
|
|
846
|
-
] }) });
|
|
847
|
-
};
|
|
848
|
-
//! Render
|
|
849
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ItemStatus, { color: bagde?.color, statusName: bagde?.text });
|
|
850
|
-
};
|
|
851
|
-
|
|
852
|
-
const BulkActions = ({
|
|
853
|
-
quantity = 0,
|
|
854
|
-
handleRestore,
|
|
855
|
-
handleSendApproval,
|
|
856
|
-
handleCancelSendApproval,
|
|
857
|
-
handleRefuseApproval,
|
|
858
|
-
handleApproval,
|
|
859
|
-
handleCancelApproval,
|
|
860
|
-
handleDelete,
|
|
861
|
-
handleActivate,
|
|
862
|
-
handleInActivate,
|
|
863
|
-
status
|
|
864
|
-
}) => {
|
|
865
|
-
//! State
|
|
866
|
-
const listIcon = [
|
|
867
|
-
{
|
|
868
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RestoreIcon, { stroke: "white" }),
|
|
869
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(RestoreIcon, { stroke: "#0F1D40" }),
|
|
870
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(RestoreIcon, { stroke: "#B2B7C2" }),
|
|
871
|
-
action: handleRestore,
|
|
872
|
-
name: "Khôi phục",
|
|
873
|
-
typeIcon: "info",
|
|
874
|
-
title: "Xác nhận khôi phục",
|
|
875
|
-
content: "Bạn có chắc chắn muốn khôi phục không?",
|
|
876
|
-
arrShow: [CATEGORY_LIST_ENUM?.DELETE, CATEGORY_LIST_ENUM?.REJECT]
|
|
877
|
-
},
|
|
878
|
-
{
|
|
879
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(SendApprovalIcon, { stroke: "white" }),
|
|
880
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(SendApprovalIcon, { stroke: "#0F1D40" }),
|
|
881
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(SendApprovalIcon, { stroke: "#B2B7C2" }),
|
|
882
|
-
action: handleSendApproval,
|
|
883
|
-
name: "Gửi duyệt",
|
|
884
|
-
typeIcon: "info",
|
|
885
|
-
title: "Xác nhận gửi duyệt",
|
|
886
|
-
content: "Bạn có chắc chắn muốn gửi duyệt không?",
|
|
887
|
-
arrShow: [CATEGORY_LIST_ENUM?.DRAFT]
|
|
888
|
-
},
|
|
889
|
-
{
|
|
890
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelSendApprovalIcon, { stroke: "white" }),
|
|
891
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelSendApprovalIcon, { stroke: "#0F1D40" }),
|
|
892
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelSendApprovalIcon, { stroke: "#B2B7C2" }),
|
|
893
|
-
action: handleCancelSendApproval,
|
|
894
|
-
name: "Huỷ gửi duyệt",
|
|
895
|
-
typeIcon: "error",
|
|
896
|
-
title: "Xác nhận hủy gửi duyệt",
|
|
897
|
-
content: "Bạn có chắc chắn muốn hủy gửi duyệt không?",
|
|
898
|
-
arrShow: [CATEGORY_LIST_ENUM?.WATING_APPROVAL]
|
|
899
|
-
},
|
|
900
|
-
{
|
|
901
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefuseApprovalIcon, { stroke: "white" }),
|
|
902
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(RefuseApprovalIcon, { stroke: "#0F1D40" }),
|
|
903
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(RefuseApprovalIcon, { stroke: "#B2B7C2" }),
|
|
904
|
-
action: handleRefuseApproval,
|
|
905
|
-
name: "Từ chối duyệt",
|
|
906
|
-
typeIcon: "error",
|
|
907
|
-
title: "Xác nhận từ chối duyệt",
|
|
908
|
-
content: "Bạn có chắc chắn muốn từ chối duyệt không? Hành động này không thể hoàn tác.",
|
|
909
|
-
arrShow: [CATEGORY_LIST_ENUM?.WATING_APPROVAL]
|
|
910
|
-
},
|
|
911
|
-
{
|
|
912
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ApprovalIcon, { stroke: "white" }),
|
|
913
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(ApprovalIcon, { stroke: "#0F1D40" }),
|
|
914
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(ApprovalIcon, { stroke: "#B2B7C2" }),
|
|
915
|
-
action: handleApproval,
|
|
916
|
-
name: "Duyệt",
|
|
917
|
-
typeIcon: "info",
|
|
918
|
-
title: "Xác nhận duyệt",
|
|
919
|
-
content: "Bạn có chắc chắn muốn duyệt không?",
|
|
920
|
-
arrShow: [CATEGORY_LIST_ENUM?.WATING_APPROVAL]
|
|
921
|
-
},
|
|
922
|
-
{
|
|
923
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelApprovalIcon, { stroke: "white" }),
|
|
924
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelApprovalIcon, { stroke: "#0F1D40" }),
|
|
925
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(CancelApprovalIcon, { stroke: "#B2B7C2" }),
|
|
926
|
-
action: handleCancelApproval,
|
|
927
|
-
typeIcon: "error",
|
|
928
|
-
name: "Hủy duyệt",
|
|
929
|
-
title: "Xác nhận hủy duyệt",
|
|
930
|
-
content: "Bạn có chắc chắn muốn hủy duyệt không?",
|
|
931
|
-
arrShow: [CATEGORY_LIST_ENUM?.ACTIVE]
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteIcon, { fill: "white" }),
|
|
935
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteIcon, { fill: "#0F1D40" }),
|
|
936
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteIcon, { fill: "#B2B7C2" }),
|
|
937
|
-
action: handleDelete,
|
|
938
|
-
typeIcon: "error",
|
|
939
|
-
name: "Xoá",
|
|
940
|
-
title: "Xác nhận xóa",
|
|
941
|
-
content: "Bạn có chắc chắn muốn xóa không? Hành động này không thể hoàn tác.",
|
|
942
|
-
arrShow: [
|
|
943
|
-
CATEGORY_LIST_ENUM?.DRAFT,
|
|
944
|
-
CATEGORY_LIST_ENUM?.ACTIVE,
|
|
945
|
-
CATEGORY_LIST_ENUM?.INACTIVE
|
|
946
|
-
]
|
|
947
|
-
},
|
|
948
|
-
{
|
|
949
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ActivateIcon, { stroke: "white" }),
|
|
950
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(ActivateIcon, { stroke: "#0F1D40" }),
|
|
951
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(ActivateIcon, { stroke: "#B2B7C2" }),
|
|
952
|
-
action: handleActivate,
|
|
953
|
-
typeIcon: "info",
|
|
954
|
-
name: "Kích hoạt",
|
|
955
|
-
title: "Xác nhận kích hoạt",
|
|
956
|
-
content: "Bạn có chắc chắn muốn kích hoạt không?",
|
|
957
|
-
arrShow: [CATEGORY_LIST_ENUM?.INACTIVE]
|
|
958
|
-
},
|
|
959
|
-
{
|
|
960
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(InActiveIcon, { stroke: "white" }),
|
|
961
|
-
iconDropList: /* @__PURE__ */ jsxRuntimeExports.jsx(InActiveIcon, { stroke: "#0F1D40" }),
|
|
962
|
-
iconDisable: /* @__PURE__ */ jsxRuntimeExports.jsx(InActiveIcon, { stroke: "#B2B7C2" }),
|
|
963
|
-
action: handleInActivate,
|
|
964
|
-
name: "Vô hiệu hóa",
|
|
965
|
-
typeIcon: "info",
|
|
966
|
-
title: "Xác nhận vô hiệu hóa",
|
|
967
|
-
content: "Bạn có chắc chắn muốn vô hiệu hóa không?",
|
|
968
|
-
arrShow: [CATEGORY_LIST_ENUM?.ACTIVE]
|
|
969
|
-
}
|
|
970
|
-
];
|
|
971
|
-
const { open, shouldRender, toggle } = distExports.useToggle();
|
|
972
|
-
const [notifyContent, setNotifyContent] = useState({
|
|
973
|
-
title: "",
|
|
974
|
-
content: "",
|
|
975
|
-
typeIcon: "info",
|
|
976
|
-
handleCancel: () => {
|
|
977
|
-
},
|
|
978
|
-
handleSubmit: () => {
|
|
979
|
-
}
|
|
980
|
-
});
|
|
981
|
-
//! Function
|
|
982
|
-
//! Render
|
|
983
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
984
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
985
|
-
BulkAction,
|
|
986
|
-
{
|
|
987
|
-
listIcon,
|
|
988
|
-
quantity,
|
|
989
|
-
setNotifyContent,
|
|
990
|
-
toggle,
|
|
991
|
-
status
|
|
992
|
-
}
|
|
993
|
-
),
|
|
994
|
-
shouldRender && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
995
|
-
ConfirmModal,
|
|
996
|
-
{
|
|
997
|
-
title: notifyContent?.title,
|
|
998
|
-
content: notifyContent?.content,
|
|
999
|
-
typeIcon: notifyContent?.typeIcon,
|
|
1000
|
-
open,
|
|
1001
|
-
handleCancel: notifyContent?.handleCancel,
|
|
1002
|
-
handleSubmit: notifyContent?.handleSubmit
|
|
1003
|
-
}
|
|
1004
|
-
)
|
|
1005
|
-
] });
|
|
1006
|
-
};
|
|
1007
|
-
|
|
1008
|
-
const Table = ({
|
|
1009
|
-
dataSource = [],
|
|
1010
|
-
columns,
|
|
1011
|
-
loading = false,
|
|
1012
|
-
totalItems = 100,
|
|
1013
|
-
filters,
|
|
1014
|
-
onChangePage,
|
|
1015
|
-
onChangePageSize,
|
|
1016
|
-
onSort,
|
|
1017
|
-
rowsSelected,
|
|
1018
|
-
onSelect,
|
|
1019
|
-
onRowClick,
|
|
1020
|
-
rowKey = "id",
|
|
1021
|
-
titleSettingTableModal,
|
|
1022
|
-
showSetting,
|
|
1023
|
-
setColumns,
|
|
1024
|
-
renderHeadingSearch,
|
|
1025
|
-
rightHeadingContent,
|
|
1026
|
-
menu,
|
|
1027
|
-
groupHeadingButtonItems,
|
|
1028
|
-
showIndexColumn = true,
|
|
1029
|
-
setFilters,
|
|
1030
|
-
noBreadcum,
|
|
1031
|
-
bulkActionHandlers,
|
|
1032
|
-
...rest
|
|
1033
|
-
}) => {
|
|
1034
|
-
const status = filters?.status;
|
|
1035
|
-
//! State
|
|
1036
|
-
const [data, setData] = useState([]);
|
|
1037
|
-
const [openSetting, setOpenStting] = useState(false);
|
|
1038
|
-
const paginationConfig = {
|
|
1039
|
-
current: filters?.page,
|
|
1040
|
-
pageSize: filters?.size,
|
|
1041
|
-
total: totalItems,
|
|
1042
|
-
showSizeChanger: true,
|
|
1043
|
-
showQuickJumper: true,
|
|
1044
|
-
showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} items`,
|
|
1045
|
-
onChange: (page, pageSize) => {
|
|
1046
|
-
if (page !== filters.page) onChangePage(page);
|
|
1047
|
-
if (pageSize !== filters.size) onChangePageSize(pageSize);
|
|
1048
|
-
}
|
|
1049
|
-
};
|
|
1050
|
-
const rowSelection = {
|
|
1051
|
-
selectedRowKeys: rowsSelected,
|
|
1052
|
-
onChange: onSelect,
|
|
1053
|
-
getCheckboxProps: () => ({
|
|
1054
|
-
disabled: status === TypeStatusTable.ALL
|
|
1055
|
-
})
|
|
1056
|
-
};
|
|
1057
|
-
const startIndex = (filters.page - 1) * filters.size;
|
|
1058
|
-
const columnsWithIndex = showIndexColumn ? [
|
|
1059
|
-
{
|
|
1060
|
-
title: "STT",
|
|
1061
|
-
dataIndex: "index",
|
|
1062
|
-
key: "index",
|
|
1063
|
-
width: 70,
|
|
1064
|
-
align: "center",
|
|
1065
|
-
render: (_, __, index) => startIndex + index + 1
|
|
1066
|
-
},
|
|
1067
|
-
...columns
|
|
1068
|
-
] : columns;
|
|
1069
|
-
//! Function
|
|
1070
|
-
useEffect(() => {
|
|
1071
|
-
setData(Array.isArray(dataSource) ? dataSource : []);
|
|
1072
|
-
}, [JSON.stringify(dataSource)]);
|
|
1073
|
-
const handleTableChange = (pagination, filters2, sorter) => {
|
|
1074
|
-
if (sorter && onSort) {
|
|
1075
|
-
onSort(sorter);
|
|
1076
|
-
}
|
|
1077
|
-
};
|
|
1078
|
-
const handleOnClickRow = (record, onRowClick2) => (e) => {
|
|
1079
|
-
const target = e.target;
|
|
1080
|
-
if (target.closest("input") || // ⛔ Checkbox
|
|
1081
|
-
target.closest("button") || // ⛔ Button trong row
|
|
1082
|
-
target.closest("svg") || // ⛔ Icon
|
|
1083
|
-
target.closest(".ant-checkbox") || // ⛔ AntD checkbox
|
|
1084
|
-
target.closest("a")) {
|
|
1085
|
-
return;
|
|
1086
|
-
}
|
|
1087
|
-
onRowClick2?.(record);
|
|
1088
|
-
};
|
|
1089
|
-
//! Render
|
|
1090
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: twMerge(showSetting ? "relative" : ""), children: [
|
|
1091
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1092
|
-
HeadingTable,
|
|
1093
|
-
{
|
|
1094
|
-
rightHeadingContent,
|
|
1095
|
-
renderHeadingSearch,
|
|
1096
|
-
setOpenStting,
|
|
1097
|
-
showSetting,
|
|
1098
|
-
menu,
|
|
1099
|
-
groupHeadingButtonItems,
|
|
1100
|
-
setFilters,
|
|
1101
|
-
filters,
|
|
1102
|
-
noBreadcum
|
|
1103
|
-
}
|
|
1104
|
-
),
|
|
1105
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1106
|
-
Table$1,
|
|
1107
|
-
{
|
|
1108
|
-
rowKey,
|
|
1109
|
-
dataSource: data,
|
|
1110
|
-
columns: columnsWithIndex,
|
|
1111
|
-
pagination: !lodashExports.isEmpty(data) ? paginationConfig : false,
|
|
1112
|
-
loading,
|
|
1113
|
-
rowSelection: rowsSelected ? rowSelection : void 0,
|
|
1114
|
-
onChange: handleTableChange,
|
|
1115
|
-
onRow: (record) => ({
|
|
1116
|
-
onClick: handleOnClickRow(record, onRowClick)
|
|
1117
|
-
}),
|
|
1118
|
-
locale: {
|
|
1119
|
-
emptyText: /* @__PURE__ */ jsxRuntimeExports.jsx(EmptyTable, {})
|
|
1120
|
-
},
|
|
1121
|
-
rowClassName: (_, index) => `table-row-${index % 2 === 0 ? "even" : "odd"}`,
|
|
1122
|
-
...rest
|
|
1123
|
-
}
|
|
1124
|
-
),
|
|
1125
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1126
|
-
SettingTable,
|
|
1127
|
-
{
|
|
1128
|
-
open: openSetting,
|
|
1129
|
-
setOpen: setOpenStting,
|
|
1130
|
-
title: titleSettingTableModal,
|
|
1131
|
-
showSetting,
|
|
1132
|
-
defaultSettingColumnItems: columns,
|
|
1133
|
-
setDefaultSettingColumnItems: setColumns
|
|
1134
|
-
}
|
|
1135
|
-
),
|
|
1136
|
-
rowsSelected && !lodashExports.isEmpty(rowsSelected) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fixed bottom-1/100 left-1/2 -translate-x-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1137
|
-
BulkActions,
|
|
1138
|
-
{
|
|
1139
|
-
type: TypeBulkActions.BULKACTION,
|
|
1140
|
-
quantity: rowsSelected?.length,
|
|
1141
|
-
status,
|
|
1142
|
-
...bulkActionHandlers
|
|
1143
|
-
}
|
|
1144
|
-
) })
|
|
1145
|
-
] });
|
|
1146
|
-
};
|
|
1147
|
-
const EmptyTable = () => {
|
|
1148
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center text-center", children: [
|
|
1149
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: "https://i.ibb.co/39C3x4LZ/Component-1.png", alt: "no data" }),
|
|
1150
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-lg font-bold text-black", children: "Không có dữ liệu nào phù hợp" }),
|
|
1151
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-gray-500", children: "Kiểm tra lại bộ lọc hoặc thêm mới dữ liệu" })
|
|
1152
|
-
] });
|
|
1153
|
-
};
|
|
1154
|
-
|
|
1155
|
-
const Tabs = ({
|
|
1156
|
-
items,
|
|
1157
|
-
lazyRender = false,
|
|
1158
|
-
defaultActiveKey,
|
|
1159
|
-
...rest
|
|
1160
|
-
}) => {
|
|
1161
|
-
const { activeTabKey, setActiveTabKey } = useTabStore();
|
|
1162
|
-
const defaultKey = defaultActiveKey?.toString() || items[0]?.key;
|
|
1163
|
-
useEffect(() => {
|
|
1164
|
-
if (!activeTabKey && defaultKey) {
|
|
1165
|
-
setActiveTabKey(defaultKey);
|
|
1166
|
-
}
|
|
1167
|
-
}, [activeTabKey, defaultKey, setActiveTabKey]);
|
|
1168
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1169
|
-
Tabs$1,
|
|
1170
|
-
{
|
|
1171
|
-
items,
|
|
1172
|
-
destroyInactiveTabPane: lazyRender,
|
|
1173
|
-
activeKey: activeTabKey,
|
|
1174
|
-
defaultActiveKey,
|
|
1175
|
-
onChange: (key) => setActiveTabKey(key),
|
|
1176
|
-
...rest
|
|
1177
|
-
}
|
|
1178
|
-
);
|
|
1179
|
-
};
|
|
1180
|
-
|
|
1181
|
-
const renderInputs = (count) => Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton$1.Input, { size: "small", block: true, active: true }, index));
|
|
1182
|
-
const Skeleton = ({ type, skeletonButtonCount }) => {
|
|
1183
|
-
if (type === "table") {
|
|
1184
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1185
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1186
|
-
"div",
|
|
1187
|
-
{
|
|
1188
|
-
style: {
|
|
1189
|
-
display: "flex",
|
|
1190
|
-
alignItems: "center",
|
|
1191
|
-
width: "100%",
|
|
1192
|
-
marginBottom: 15
|
|
1193
|
-
},
|
|
1194
|
-
children: skeletonButtonCount && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Space, { children: renderInputs(skeletonButtonCount) }) })
|
|
1195
|
-
}
|
|
1196
|
-
),
|
|
1197
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Card$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Space, { direction: "vertical", size: "middle", style: { width: "100%" }, children: renderInputs(10) }) }),
|
|
1198
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { ...styles$1.rightAlign, marginTop: 20 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton$1.Input, { size: "small", active: true }) })
|
|
1199
|
-
] });
|
|
1200
|
-
}
|
|
1201
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Card$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "grid", rowGap: 8 }, children: renderInputs(3) }) });
|
|
1202
|
-
};
|
|
1203
|
-
const styles$1 = {
|
|
1204
|
-
rightAlign: {
|
|
1205
|
-
display: "flex",
|
|
1206
|
-
justifyContent: "flex-end",
|
|
1207
|
-
width: "100%"
|
|
1208
|
-
}
|
|
1209
|
-
};
|
|
1210
|
-
|
|
1211
|
-
const Popover = (props) => {
|
|
1212
|
-
const { containerClassName, popoverClassName, ...restProps } = props;
|
|
1213
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Popover$1, { className: popoverClassName, ...restProps }) });
|
|
1214
|
-
};
|
|
1215
|
-
|
|
1216
|
-
const SearchFiltersForm = ({
|
|
1217
|
-
initialValues,
|
|
1218
|
-
renderFilterFields,
|
|
1219
|
-
onSubmit,
|
|
1220
|
-
onReset,
|
|
1221
|
-
classNamesContainer,
|
|
1222
|
-
classNameWrapperForm,
|
|
1223
|
-
hideDefaultSubmit,
|
|
1224
|
-
hideResetButton
|
|
1225
|
-
}) => {
|
|
1226
|
-
const { control, handleSubmit, reset, setValue } = useForm({
|
|
1227
|
-
defaultValues: initialValues
|
|
1228
|
-
});
|
|
1229
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { className: classNameWrapperForm, onSubmit: handleSubmit(onSubmit), children: [
|
|
1230
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: classNamesContainer, children: renderFilterFields && renderFilterFields({
|
|
1231
|
-
control,
|
|
1232
|
-
setValue,
|
|
1233
|
-
handleSubmit: handleSubmit(onSubmit),
|
|
1234
|
-
reset
|
|
1235
|
-
}) }),
|
|
1236
|
-
!hideDefaultSubmit && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-end gap-2 mb-3", children: [
|
|
1237
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1238
|
-
Button,
|
|
1239
|
-
{
|
|
1240
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$1, {}),
|
|
1241
|
-
className: "px-3 py-1 ",
|
|
1242
|
-
color: "blue",
|
|
1243
|
-
variant: "solid",
|
|
1244
|
-
htmlType: "submit",
|
|
1245
|
-
children: "Tìm kiếm"
|
|
1246
|
-
}
|
|
1247
|
-
),
|
|
1248
|
-
!hideResetButton && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1249
|
-
Button,
|
|
1250
|
-
{
|
|
1251
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$2, {}),
|
|
1252
|
-
className: "px-3 py-1",
|
|
1253
|
-
onClick: () => {
|
|
1254
|
-
reset();
|
|
1255
|
-
onReset?.();
|
|
1256
|
-
},
|
|
1257
|
-
children: "Đặt lại"
|
|
1258
|
-
}
|
|
1259
|
-
)
|
|
1260
|
-
] })
|
|
1261
|
-
] });
|
|
1262
|
-
};
|
|
1263
|
-
|
|
1264
|
-
const Container = ({
|
|
1265
|
-
children,
|
|
1266
|
-
className,
|
|
1267
|
-
size
|
|
1268
|
-
}) => {
|
|
1269
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: twMerge(size, "mx-auto px-4 sm:px-6 lg:px-8", className), children });
|
|
1270
|
-
};
|
|
1271
|
-
|
|
1272
|
-
const Col = (props) => {
|
|
1273
|
-
const { colClassName, ...restProps } = props;
|
|
1274
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Col$1, { className: colClassName, ...restProps });
|
|
1275
|
-
};
|
|
1276
|
-
|
|
1277
|
-
const Row = (props) => {
|
|
1278
|
-
const { rowClassName, ...restProps } = props;
|
|
1279
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Row$1, { className: rowClassName, ...restProps });
|
|
1280
|
-
};
|
|
1281
|
-
|
|
1282
|
-
const Dropdown = (props) => {
|
|
1283
|
-
const { containerClassName, dropdownClassName, ...restProps } = props;
|
|
1284
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Dropdown$1, { className: dropdownClassName, ...restProps }) });
|
|
1285
|
-
};
|
|
1286
|
-
|
|
1287
|
-
const Flex = (props) => {
|
|
1288
|
-
const { containerClassName, flexClassName, ...restProps } = props;
|
|
1289
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Flex$1, { className: flexClassName, ...restProps }) });
|
|
1290
|
-
};
|
|
1291
|
-
|
|
1292
|
-
const PaginationComponent = (props) => {
|
|
1293
|
-
const { containerClassName, paginationClassName, ...restProps } = props;
|
|
1294
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Pagination$1, { className: paginationClassName, ...restProps }) });
|
|
1295
|
-
};
|
|
1296
|
-
const Pagination = PaginationComponent;
|
|
1297
|
-
|
|
1298
|
-
const logoHeaderText = "data:image/png;base64,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";
|
|
1299
|
-
|
|
1300
|
-
const defaultAvatar = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMvSURBVHgBtVdNTxNRFD1vijAUta1ugFVZ6FaIUZfi0pW4MNEV9RcA/0B+gfQXACs0MabiRuNCiSR+xEAxxA3ENjERwsIWlY/y0ee5M9M6pZ3pMJSTtH3zOnPPvefe+94bhQDIFXTcBPq1gTvQGDSApAbi8p8CihxntUIWZcz1JlQmiE3VlNDAiNIYrRAFQJ5Wp+jEdE9C5XFc4vVNPcLoHh2DsN4BjXGSTyEoMUkfa0aJFkApTHTH1FhT4rVNPUlPU2glKH1PTD10TxnuC4m05aQC2rRs1/jiYK2gU7yaxCmC6Rtj1U9UiUma5Ogth0mvh8raehARhSa94A1pvR2Nvr6EKtpSGxj2Iz0sAxe6gG7W91k29OEhQkE6hI+POk4w4qLOeREfkLQ3Rt9c1bC7D/za4lyIyCtRGz8Legg+0bZHakkF5hlb9jBwou4Xk4N+N5Y9CMISO+RDBhv8CpoQlw5q54rbQJuB0GCKbqr1oi40WxYlz1HK29EObO3a143yK3PyOZDi88m/5NkIshZLdHs09nvbVuAoqcge7QBWN4DFH6yLNv9UCKdiRZ8gWzbB+U7g5VfbKenzP1Tl3lWqs+dd+TJfREhUSZcoX2VxgT33fIG/ZuPitKQuy/blYVQkk9aBbkLqWHP/12Xa5PFovexycDD4PdeIOMpCml8B3nxjsWhrewtE6r5HijGzaN/rJud4SaTOHPHGivIZvd3Zt69fLwN/S5TSCEbqNiaLz6tlW/YKuCa9U3K86VTIWZUGO7IXWSDmkkjmhfhaErjUTU8XApC6IHmWNX7wMguuhHxPXPUZslOQIC2hS8vMLtWSOo6ji+2SZavMZo9HKjCcSv/43VJzuvp4gVFvlJB7v4L4OfNky6EfuLDkL5q4dXtA5a2FL8Go51cxfpqkgkgE40Iq4xrBnnzWcjoYwekgff+6qh4g6zI180lPscCG0UJQxekHN1TKPVe3xzg3pNE6pI+SNiQWiCRMtRxH8wiPIt8mxtzyuuHbFDMfeAg0kHKkTyIgobSn2Y6JuwPKcx8I3I1Pv+ghXbZOK3Jw6Mf/7VSM5/mZ44tbxmxD1o+wgn+8Lj0W61iuOwAAAABJRU5ErkJggg==";
|
|
1301
|
-
|
|
1302
|
-
const Sidebar = ({ children, menu, userInfo }) => {
|
|
1303
|
-
const navigate = useNavigate();
|
|
1304
|
-
const location = useLocation();
|
|
1305
|
-
const pathUrl = location.pathname;
|
|
1306
|
-
const [activeMainMenu, setActiveMainMenu] = useState("");
|
|
1307
|
-
const [openSubmenu, setOpenSubmenu] = useState(null);
|
|
1308
|
-
const [collapse, setCollapse] = useState(false);
|
|
1309
|
-
const [openSubCollapse, setOpenSubCollapse] = useState(false);
|
|
1310
|
-
const [valueSearch, setValueSearch] = useState("");
|
|
1311
|
-
const items = [
|
|
1312
|
-
{
|
|
1313
|
-
key: "1",
|
|
1314
|
-
label: "Hồ sơ"
|
|
1315
|
-
},
|
|
1316
|
-
{
|
|
1317
|
-
key: "4",
|
|
1318
|
-
label: "Cài đặt"
|
|
1319
|
-
},
|
|
1320
|
-
{
|
|
1321
|
-
key: "2",
|
|
1322
|
-
label: "Đăng xuất"
|
|
1323
|
-
}
|
|
1324
|
-
];
|
|
1325
|
-
const newMenu = menu?.filter((route) => route?.isShow)?.flatMap((route) => route?.children)?.filter(Boolean);
|
|
1326
|
-
const handleClickSubmenu = (item, menuDropdown) => {
|
|
1327
|
-
if (menuDropdown) {
|
|
1328
|
-
setOpenSubmenu((prev) => prev === item.name ? null : item.name);
|
|
1329
|
-
return;
|
|
1330
|
-
}
|
|
1331
|
-
navigate(item.path);
|
|
1332
|
-
};
|
|
1333
|
-
const handleClick = (itemPath) => {
|
|
1334
|
-
navigate(itemPath);
|
|
1335
|
-
};
|
|
1336
|
-
const Title = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(Flex$1, { align: "center", justify: "space-between", children: props.title });
|
|
1337
|
-
const renderItem = (title) => ({
|
|
1338
|
-
value: title,
|
|
1339
|
-
label: /* @__PURE__ */ jsxRuntimeExports.jsx(Flex$1, { align: "center", justify: "space-between", children: title })
|
|
1340
|
-
});
|
|
1341
|
-
const dataOption = newMenu.reduce((acc, itemMenu) => {
|
|
1342
|
-
const groupName = itemMenu.name;
|
|
1343
|
-
(itemMenu.children ?? []).forEach((itemChildren) => {
|
|
1344
|
-
(itemChildren.children ?? []).forEach((itemSub) => {
|
|
1345
|
-
let group = acc.find(
|
|
1346
|
-
(g) => g.label.props.title === groupName
|
|
1347
|
-
);
|
|
1348
|
-
if (!group) {
|
|
1349
|
-
group = {
|
|
1350
|
-
label: /* @__PURE__ */ jsxRuntimeExports.jsx(Title, { title: groupName }),
|
|
1351
|
-
options: []
|
|
1352
|
-
};
|
|
1353
|
-
acc.push(group);
|
|
1354
|
-
}
|
|
1355
|
-
group.options.push(renderItem(itemSub.name));
|
|
1356
|
-
});
|
|
1357
|
-
});
|
|
1358
|
-
return acc;
|
|
1359
|
-
}, []);
|
|
1360
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1361
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1362
|
-
Header,
|
|
1363
|
-
{
|
|
1364
|
-
style: {
|
|
1365
|
-
backgroundColor: "#FFFFFF",
|
|
1366
|
-
display: "flex",
|
|
1367
|
-
width: "100%",
|
|
1368
|
-
borderBottom: "1px solid white",
|
|
1369
|
-
boxShadow: "0 1px 1px rgba(0, 0, 0, 0.15)"
|
|
1370
|
-
},
|
|
1371
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-full flex justify-between", children: [
|
|
1372
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pt-4 ml-[-2rem]", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logoHeaderText, alt: "logo", width: 200 }) }),
|
|
1373
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-xl justify-center items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1374
|
-
AutoComplete$1,
|
|
1375
|
-
{
|
|
1376
|
-
classNames: {
|
|
1377
|
-
popup: { root: "certain-category-search-dropdown" }
|
|
1378
|
-
},
|
|
1379
|
-
popupMatchSelectWidth: 500,
|
|
1380
|
-
style: { width: 500 },
|
|
1381
|
-
options: dataOption ?? [],
|
|
1382
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1383
|
-
Input,
|
|
1384
|
-
{
|
|
1385
|
-
className: "h-[32px] !placeholder:bg-[#E7F0FF] !bg-[#E7F0FF] !border !border-[#BDE3FF]",
|
|
1386
|
-
placeholder: "Tìm kiếm...",
|
|
1387
|
-
iconStartInput: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-5 h-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(distExports$1.SearchIcon, { className: "w-5 text-[#116DFF]" }) })
|
|
1388
|
-
}
|
|
1389
|
-
)
|
|
1390
|
-
}
|
|
1391
|
-
) }),
|
|
1392
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-end items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("a", { onClick: (e) => e.preventDefault(), children: /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: "list-none cursor-pointer group flex items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1393
|
-
"div",
|
|
1394
|
-
{
|
|
1395
|
-
className: twMerge(
|
|
1396
|
-
collapse ? "" : "justify-center",
|
|
1397
|
-
" text-black flex items-center rounded-md gap-2"
|
|
1398
|
-
),
|
|
1399
|
-
children: [
|
|
1400
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Divider$1, { type: "vertical" }),
|
|
1401
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center text-black", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: defaultAvatar, alt: "default_avatar" }) }),
|
|
1402
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Admin" }),
|
|
1403
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Dropdown$1, { menu: { items }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(distExports$1.DownOutlinedIcon, { className: "w-6 h-6" }) })
|
|
1404
|
-
]
|
|
1405
|
-
}
|
|
1406
|
-
) }) }) })
|
|
1407
|
-
] })
|
|
1408
|
-
}
|
|
1409
|
-
),
|
|
1410
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex relative h-[calc(100vh-64px)] overflow-y-hidden", children: [
|
|
1411
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1412
|
-
"div",
|
|
1413
|
-
{
|
|
1414
|
-
onMouseEnter: () => {
|
|
1415
|
-
setCollapse(true);
|
|
1416
|
-
setValueSearch("");
|
|
1417
|
-
},
|
|
1418
|
-
onMouseLeave: () => setCollapse(false),
|
|
1419
|
-
className: twMerge(
|
|
1420
|
-
"flex flex-col gap-y-5 h-full bg-[#001523] transition-all z-50 duration-300",
|
|
1421
|
-
collapse ? "w-[255px]" : "w-[54px]",
|
|
1422
|
-
openSubCollapse && "absolute"
|
|
1423
|
-
),
|
|
1424
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx("nav", { className: twMerge("flex mt-2 flex-1 flex-col px-2"), children: /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { role: "list", className: twMerge("-mx-2 space-y-1 relative"), children: newMenu.flatMap((item) => {
|
|
1425
|
-
const isActiveMainMenu = activeMainMenu === item.path;
|
|
1426
|
-
const isActivePathUrl = pathUrl === item.path;
|
|
1427
|
-
const isActive = isActiveMainMenu || isActivePathUrl;
|
|
1428
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1429
|
-
"li",
|
|
1430
|
-
{
|
|
1431
|
-
className: twMerge(
|
|
1432
|
-
"relative cursor-pointer",
|
|
1433
|
-
isActive ? "px-2" : "ml-0 px-2"
|
|
1434
|
-
),
|
|
1435
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1436
|
-
"div",
|
|
1437
|
-
{
|
|
1438
|
-
className: twMerge(
|
|
1439
|
-
"relative group hover:text-black",
|
|
1440
|
-
!collapse && "hover:bg-[#FFFFFF] rounded-lg"
|
|
1441
|
-
),
|
|
1442
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1443
|
-
"a",
|
|
1444
|
-
{
|
|
1445
|
-
onClick: () => {
|
|
1446
|
-
setCollapse(false);
|
|
1447
|
-
setActiveMainMenu(item.path);
|
|
1448
|
-
setOpenSubCollapse(true);
|
|
1449
|
-
},
|
|
1450
|
-
className: twMerge(
|
|
1451
|
-
isActive ? "bg-[#FFFFFF] text-black" : "text-[#FFFFFF] hover:bg-[#FFFFFF] hover:text-black",
|
|
1452
|
-
"rounded-lg py-2 m-auto text-sm whitespace-nowrap max-w-2xl leading-6 font-semibold relative z-10",
|
|
1453
|
-
collapse ? "pl-4" : "justify-center",
|
|
1454
|
-
"flex items-center gap-2 rounded-lg"
|
|
1455
|
-
),
|
|
1456
|
-
children: [
|
|
1457
|
-
item.icon,
|
|
1458
|
-
collapse && item.name
|
|
1459
|
-
]
|
|
1460
|
-
}
|
|
1461
|
-
)
|
|
1462
|
-
}
|
|
1463
|
-
)
|
|
1464
|
-
},
|
|
1465
|
-
item.name
|
|
1466
|
-
);
|
|
1467
|
-
}) }) })
|
|
1468
|
-
}
|
|
1469
|
-
),
|
|
1470
|
-
openSubCollapse && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1471
|
-
"div",
|
|
1472
|
-
{
|
|
1473
|
-
className: twMerge(
|
|
1474
|
-
openSubCollapse ? "ml-10" : "ml-0",
|
|
1475
|
-
collapse ? "w-17" : "w-[250px]",
|
|
1476
|
-
"flex flex-col border-gray-200 bg-[#FFFFFF] shadow h-screen transition-all duration-300"
|
|
1477
|
-
),
|
|
1478
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1479
|
-
"nav",
|
|
1480
|
-
{
|
|
1481
|
-
className: twMerge(
|
|
1482
|
-
"flex flex-1 transition-all duration-300 flex-col"
|
|
1483
|
-
),
|
|
1484
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { role: "list", className: twMerge("cursor-pointer ml-[10px]"), children: newMenu?.map((sub) => {
|
|
1485
|
-
const isActiveMainMenu = activeMainMenu === sub.path;
|
|
1486
|
-
if (!isActiveMainMenu) return;
|
|
1487
|
-
return sub?.children?.map((itemSubMenu) => {
|
|
1488
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
|
|
1489
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1490
|
-
"a",
|
|
1491
|
-
{
|
|
1492
|
-
onClick: () => {
|
|
1493
|
-
handleClickSubmenu(itemSubMenu, itemSubMenu.isShow);
|
|
1494
|
-
},
|
|
1495
|
-
className: twMerge(
|
|
1496
|
-
itemSubMenu.path === pathUrl ? "bg-[#E7F0FF] text-[#007BE5]" : "",
|
|
1497
|
-
"group flex gap-x-3 select-none p-4 text-gray-700 hover:bg-[#E7F0FF] hover:text-[#007BE5] text-sm leading-6 transition-all duration-300 font-semibold items-center"
|
|
1498
|
-
),
|
|
1499
|
-
children: [
|
|
1500
|
-
itemSubMenu.icon,
|
|
1501
|
-
itemSubMenu.name,
|
|
1502
|
-
Array.isArray(itemSubMenu?.children) && itemSubMenu.children.length > 0 && itemSubMenu.isShow ? openSubmenu === itemSubMenu.name ? /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon, { className: "w-4 h-4 ml-auto" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$3, { className: "w-4 h-4 ml-auto" }) : null
|
|
1503
|
-
]
|
|
1504
|
-
}
|
|
1505
|
-
),
|
|
1506
|
-
itemSubMenu.isShow && openSubmenu === itemSubMenu.name && /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "pl-2 transition-all duration-300", children: itemSubMenu?.children?.map(
|
|
1507
|
-
(itemChildrenSubMenu) => {
|
|
1508
|
-
const itemFullPath = `/${itemSubMenu.path.replace(
|
|
1509
|
-
/^\//,
|
|
1510
|
-
""
|
|
1511
|
-
)}/${itemChildrenSubMenu.path.replace(
|
|
1512
|
-
/^\/|\/$/g,
|
|
1513
|
-
""
|
|
1514
|
-
)}`;
|
|
1515
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1516
|
-
"li",
|
|
1517
|
-
{
|
|
1518
|
-
onClick: () => handleClick(itemFullPath),
|
|
1519
|
-
className: twMerge(
|
|
1520
|
-
pathUrl.startsWith(itemFullPath) ? "bg-[#EEEEF0] text-black" : "",
|
|
1521
|
-
"text-xs hover:bg-[#EEEEF0] mr-8 transition-all duration-300 mt-2 rounded-md py-2 flex items-center gap-2 p-2"
|
|
1522
|
-
),
|
|
1523
|
-
children: [
|
|
1524
|
-
itemChildrenSubMenu.icon,
|
|
1525
|
-
itemChildrenSubMenu.name
|
|
1526
|
-
]
|
|
1527
|
-
},
|
|
1528
|
-
`${itemChildrenSubMenu.path}-${itemChildrenSubMenu.path}`
|
|
1529
|
-
);
|
|
1530
|
-
}
|
|
1531
|
-
) })
|
|
1532
|
-
] }, itemSubMenu.path);
|
|
1533
|
-
});
|
|
1534
|
-
}) })
|
|
1535
|
-
}
|
|
1536
|
-
)
|
|
1537
|
-
}
|
|
1538
|
-
),
|
|
1539
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1540
|
-
"div",
|
|
1541
|
-
{
|
|
1542
|
-
className: twMerge(
|
|
1543
|
-
collapse && openSubCollapse ? "ml-[7%]" : "",
|
|
1544
|
-
"flex-1 p-4 h-full overflow-y-auto scrollbar-none transition-all duration-300"
|
|
1545
|
-
),
|
|
1546
|
-
children
|
|
1547
|
-
}
|
|
1548
|
-
)
|
|
1549
|
-
] })
|
|
1550
|
-
] });
|
|
1551
|
-
};
|
|
1552
|
-
|
|
1553
|
-
const Tag = (props) => {
|
|
1554
|
-
const { children, ...rest } = props;
|
|
1555
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Tag$1, { ...rest, children: [
|
|
1556
|
-
" ",
|
|
1557
|
-
children
|
|
1558
|
-
] });
|
|
1559
|
-
};
|
|
1560
|
-
|
|
1561
|
-
const Alert = (props) => {
|
|
1562
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Alert$1, { ...props });
|
|
1563
|
-
};
|
|
1564
|
-
|
|
1565
|
-
const Drawer = ({ onSubmit, children, ...rest }) => {
|
|
1566
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1, { ...rest, children: onSubmit ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1567
|
-
"form",
|
|
1568
|
-
{
|
|
1569
|
-
id: "pnkx-form",
|
|
1570
|
-
onSubmit: (e) => {
|
|
1571
|
-
e.preventDefault();
|
|
1572
|
-
onSubmit?.(e);
|
|
1573
|
-
},
|
|
1574
|
-
method: "POST",
|
|
1575
|
-
children
|
|
1576
|
-
}
|
|
1577
|
-
) : children });
|
|
1578
|
-
};
|
|
1579
|
-
|
|
1580
|
-
const Popconfirm = ({ children, ...rest }) => {
|
|
1581
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Popconfirm$1, { ...rest, children });
|
|
1582
|
-
};
|
|
1583
|
-
|
|
1584
|
-
const QRCode = (props) => {
|
|
1585
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(QRCode$1, { ...props });
|
|
1586
|
-
};
|
|
1587
|
-
|
|
1588
|
-
const Result = ({ children, ...rest }) => {
|
|
1589
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Result$1, { ...rest, children });
|
|
1590
|
-
};
|
|
1591
|
-
|
|
1592
|
-
const Rate = (props) => {
|
|
1593
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Rate$1, { ...props });
|
|
1594
|
-
};
|
|
1595
|
-
|
|
1596
|
-
const Segmented = (props) => {
|
|
1597
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Segmented$1, { ...props });
|
|
1598
|
-
};
|
|
1599
|
-
|
|
1600
|
-
const Statistic = (props) => {
|
|
1601
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Statistic$1, { ...props });
|
|
1602
|
-
};
|
|
1603
|
-
|
|
1604
|
-
const Timeline = (props) => {
|
|
1605
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Timeline$1, { ...props });
|
|
1606
|
-
};
|
|
1607
|
-
|
|
1608
|
-
const Tour = (props) => {
|
|
1609
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Tour$1, { ...props });
|
|
1610
|
-
};
|
|
1611
|
-
|
|
1612
|
-
const Tree = (props) => {
|
|
1613
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Tree$1, { ...props });
|
|
1614
|
-
};
|
|
1615
|
-
|
|
1616
|
-
const Watermark = ({ ...rest }) => {
|
|
1617
|
-
const { Paragraph } = Typography;
|
|
1618
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Flex$1, { gap: "middle", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Watermark$1, { ...rest, children: [
|
|
1619
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { children: [
|
|
1620
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Paragraph, { children: "The light-speed iteration of the digital world makes products more complex. However, human consciousness and attention resources are limited. Facing this design contradiction, the pursuit of natural interaction will be the consistent direction of Ant Design." }),
|
|
1621
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Paragraph, { children: "Natural user cognition: According to cognitive psychology, about 80% of external information is obtained through visual channels. The most important visual elements in the interface design, including layout, colors, illustrations, icons, etc., should fully absorb the laws of nature, thereby reducing the user's cognitive cost and bringing authentic and smooth feelings. In some scenarios, opportunely adding other sensory channels such as hearing, touch can create a richer and more natural product experience." }),
|
|
1622
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Paragraph, { children: "Natural user behavior: In the interaction with the system, the designer should fully understand the relationship between users, system roles, and task objectives, and also contextually organize system functions and services. At the same time, a series of methods such as behavior analysis, artificial intelligence and sensors could be applied to assist users to make effective decisions and reduce extra operations of users, to save users' mental and physical resources and make human-computer interaction more natural." })
|
|
1623
|
-
] }),
|
|
1624
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1625
|
-
"img",
|
|
1626
|
-
{
|
|
1627
|
-
style: {
|
|
1628
|
-
zIndex: 10,
|
|
1629
|
-
width: "100%",
|
|
1630
|
-
maxWidth: 800,
|
|
1631
|
-
position: "relative"
|
|
1632
|
-
},
|
|
1633
|
-
src: "https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*zx7LTI_ECSAAAAAAAAAAAABkARQnAQ",
|
|
1634
|
-
alt: "img"
|
|
1635
|
-
}
|
|
1636
|
-
)
|
|
1637
|
-
] }) });
|
|
1638
|
-
};
|
|
1639
|
-
|
|
1640
|
-
const Anchor = (props) => {
|
|
1641
|
-
const { containerClassName, anchorClassName, ...restProps } = props;
|
|
1642
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Anchor$1, { className: anchorClassName, ...restProps }) });
|
|
1643
|
-
};
|
|
1644
|
-
|
|
1645
|
-
const Appfix = ({ children, ...rest }) => {
|
|
1646
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Affix, { ...rest, children });
|
|
1647
|
-
};
|
|
1648
|
-
|
|
1649
|
-
const AutoComplete = (props) => {
|
|
1650
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(AutoComplete$1, { ...props, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Input$1, {}) });
|
|
1651
|
-
};
|
|
1652
|
-
|
|
1653
|
-
const Collapse = (props) => {
|
|
1654
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapse$1, { ...props });
|
|
1655
|
-
};
|
|
1656
|
-
|
|
1657
|
-
const ColorPicker = (props) => {
|
|
1658
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ColorPicker$1, { ...props });
|
|
1659
|
-
};
|
|
1660
|
-
|
|
1661
|
-
const Empty = (props) => {
|
|
1662
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Empty$1, { ...props });
|
|
1663
|
-
};
|
|
1664
|
-
|
|
1665
|
-
const Image = (props) => {
|
|
1666
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Image$1, { ...props });
|
|
1667
|
-
};
|
|
1668
|
-
|
|
1669
|
-
class ErrorBoundaryClass extends Component {
|
|
1670
|
-
constructor(props) {
|
|
1671
|
-
super(props);
|
|
1672
|
-
this.state = {
|
|
1673
|
-
hasError: false,
|
|
1674
|
-
error: null,
|
|
1675
|
-
errorInfo: null
|
|
1676
|
-
};
|
|
1677
|
-
}
|
|
1678
|
-
static getDerivedStateFromError(error) {
|
|
1679
|
-
return { hasError: true, error, errorInfo: null };
|
|
1680
|
-
}
|
|
1681
|
-
componentDidCatch(error, errorInfo) {
|
|
1682
|
-
this.setState({
|
|
1683
|
-
hasError: true,
|
|
1684
|
-
error,
|
|
1685
|
-
errorInfo
|
|
1686
|
-
});
|
|
1687
|
-
console.error("Caught by ErrorBoundary:", error, errorInfo);
|
|
1688
|
-
}
|
|
1689
|
-
handleReload = () => {
|
|
1690
|
-
window.location.reload();
|
|
1691
|
-
};
|
|
1692
|
-
render() {
|
|
1693
|
-
const { hasError, error, errorInfo } = this.state;
|
|
1694
|
-
if (hasError) {
|
|
1695
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
1696
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { style: styles.title, children: "🚨 An unexpected error has occurred." }),
|
|
1697
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: styles.description, children: "Please refresh the page or contact support if the problem persists." }),
|
|
1698
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { style: styles.button, onClick: this.handleReload, children: "Reload Page" }),
|
|
1699
|
-
process.env.NODE_ENV === "development" && error && /* @__PURE__ */ jsxRuntimeExports.jsxs("details", { style: styles.details, children: [
|
|
1700
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { children: "View Error Details" }),
|
|
1701
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { children: error.toString() }),
|
|
1702
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("pre", { children: errorInfo?.componentStack })
|
|
1703
|
-
] })
|
|
1704
|
-
] });
|
|
1705
|
-
}
|
|
1706
|
-
return this.props.children;
|
|
1707
|
-
}
|
|
1708
|
-
}
|
|
1709
|
-
const ErrorBoundary = ErrorBoundaryClass;
|
|
1710
|
-
const styles = {
|
|
1711
|
-
container: {
|
|
1712
|
-
padding: "40px",
|
|
1713
|
-
textAlign: "center",
|
|
1714
|
-
fontFamily: "Arial, sans-serif",
|
|
1715
|
-
color: "#333"
|
|
1716
|
-
},
|
|
1717
|
-
title: {
|
|
1718
|
-
fontSize: "24px",
|
|
1719
|
-
color: "#e74c3c",
|
|
1720
|
-
marginBottom: "20px"
|
|
1721
|
-
},
|
|
1722
|
-
description: {
|
|
1723
|
-
fontSize: "16px",
|
|
1724
|
-
color: "#555",
|
|
1725
|
-
marginBottom: "20px"
|
|
1726
|
-
},
|
|
1727
|
-
button: {
|
|
1728
|
-
padding: "10px 20px",
|
|
1729
|
-
fontSize: "16px",
|
|
1730
|
-
cursor: "pointer",
|
|
1731
|
-
backgroundColor: "#3498db",
|
|
1732
|
-
color: "#fff",
|
|
1733
|
-
border: "none",
|
|
1734
|
-
borderRadius: "5px"
|
|
1735
|
-
},
|
|
1736
|
-
details: {
|
|
1737
|
-
marginTop: "20px",
|
|
1738
|
-
textAlign: "left",
|
|
1739
|
-
background: "#f4f4f4",
|
|
1740
|
-
padding: "15px",
|
|
1741
|
-
borderRadius: "5px",
|
|
1742
|
-
color: "#000"
|
|
1743
|
-
}
|
|
1744
|
-
};
|
|
1745
|
-
|
|
1746
|
-
const ActionRowTable = ({
|
|
1747
|
-
type,
|
|
1748
|
-
contentTooltip,
|
|
1749
|
-
handleClick
|
|
1750
|
-
}) => {
|
|
1751
|
-
//! State
|
|
1752
|
-
const {
|
|
1753
|
-
shouldRender: shouldRenderDelete,
|
|
1754
|
-
open: openDelete,
|
|
1755
|
-
toggle: toggleDelete
|
|
1756
|
-
} = distExports.useToggle();
|
|
1757
|
-
//! Function
|
|
1758
|
-
const handleDelete = () => {
|
|
1759
|
-
handleClick?.();
|
|
1760
|
-
toggleDelete();
|
|
1761
|
-
};
|
|
1762
|
-
const renderAction = () => {
|
|
1763
|
-
switch (type) {
|
|
1764
|
-
case TypeActionRowTable.EDIT:
|
|
1765
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: contentTooltip, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1766
|
-
Button,
|
|
1767
|
-
{
|
|
1768
|
-
onClick: handleClick,
|
|
1769
|
-
type: "text",
|
|
1770
|
-
className: "cursor-pointer",
|
|
1771
|
-
shape: "circle",
|
|
1772
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(EditIcon, { fill: "#007BE5" })
|
|
1773
|
-
}
|
|
1774
|
-
) }) });
|
|
1775
|
-
case TypeActionRowTable.DELETE:
|
|
1776
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: contentTooltip, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1777
|
-
Button,
|
|
1778
|
-
{
|
|
1779
|
-
onClick: toggleDelete,
|
|
1780
|
-
type: "text",
|
|
1781
|
-
className: "cursor-pointer",
|
|
1782
|
-
shape: "circle",
|
|
1783
|
-
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteIcon, { fill: "#DD4338" })
|
|
1784
|
-
}
|
|
1785
|
-
) });
|
|
1786
|
-
}
|
|
1787
|
-
};
|
|
1788
|
-
//! Render
|
|
1789
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
1790
|
-
shouldRenderDelete && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1791
|
-
ConfirmModal,
|
|
1792
|
-
{
|
|
1793
|
-
title: "Xác nhận xóa",
|
|
1794
|
-
content: "Bạn có chắc chắn muốn xóa không? Hành động này không thể hoàn tác.",
|
|
1795
|
-
typeIcon: "error",
|
|
1796
|
-
open: openDelete,
|
|
1797
|
-
handleCancel: toggleDelete,
|
|
1798
|
-
handleSubmit: handleDelete
|
|
1799
|
-
}
|
|
1800
|
-
),
|
|
1801
|
-
renderAction()
|
|
1802
|
-
] });
|
|
1803
|
-
};
|
|
1804
|
-
|
|
1805
|
-
const BreadcrumbHeading = (props) => {
|
|
1806
|
-
const { menu, customBreadcum } = props;
|
|
1807
|
-
const location = useLocation();
|
|
1808
|
-
const pathUrl = location.pathname;
|
|
1809
|
-
const breadcrumbsItem = [
|
|
1810
|
-
{ title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/", children: "Trang chủ" }) }
|
|
1811
|
-
];
|
|
1812
|
-
function findBreadcrumbs(items, currentPath, trail = []) {
|
|
1813
|
-
for (const item of items) {
|
|
1814
|
-
if (!item || !item.path) continue;
|
|
1815
|
-
if (currentPath === item.path) {
|
|
1816
|
-
if (!Object.prototype.hasOwnProperty.call(item, "isShowLabel") || item.isShowLabel) {
|
|
1817
|
-
return [...trail, { title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: item.path, children: item.name }) }];
|
|
1818
|
-
}
|
|
1819
|
-
return trail;
|
|
1820
|
-
}
|
|
1821
|
-
if (currentPath.startsWith(item.path)) {
|
|
1822
|
-
const newTrail = [...trail];
|
|
1823
|
-
if (!Object.prototype.hasOwnProperty.call(item, "isShowLabel") || item.isShowLabel) {
|
|
1824
|
-
newTrail.push({
|
|
1825
|
-
title: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: item.path, children: item.name })
|
|
1826
|
-
});
|
|
1827
|
-
}
|
|
1828
|
-
if (item.children && item.children.length > 0) {
|
|
1829
|
-
const childTrail = findBreadcrumbs(
|
|
1830
|
-
item.children,
|
|
1831
|
-
currentPath,
|
|
1832
|
-
newTrail
|
|
1833
|
-
);
|
|
1834
|
-
if (childTrail) return childTrail;
|
|
1835
|
-
}
|
|
1836
|
-
}
|
|
1837
|
-
}
|
|
1838
|
-
return null;
|
|
1839
|
-
}
|
|
1840
|
-
const dynamicBreadcrumbs = findBreadcrumbs(menu, pathUrl);
|
|
1841
|
-
if (dynamicBreadcrumbs) {
|
|
1842
|
-
breadcrumbsItem.push(...dynamicBreadcrumbs);
|
|
1843
|
-
}
|
|
1844
|
-
const dataBreadcum = [
|
|
1845
|
-
...breadcrumbsItem,
|
|
1846
|
-
...customBreadcum ?? []
|
|
1847
|
-
];
|
|
1848
|
-
console.log("dataBreadcum", dataBreadcum);
|
|
1849
|
-
//! Render
|
|
1850
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: className("flex justify-between items-end"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { items: dataBreadcum }) });
|
|
1851
|
-
};
|
|
1852
|
-
|
|
1853
|
-
const Card = ({ children, ...rest }) => {
|
|
1854
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Card$1, { ...rest, children });
|
|
1855
|
-
};
|
|
1856
|
-
|
|
1857
|
-
const ConfigProvider = ({
|
|
1858
|
-
children,
|
|
1859
|
-
...rest
|
|
1860
|
-
}) => {
|
|
1861
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ConfigProvider$1, { ...rest, children });
|
|
1862
|
-
};
|
|
1
|
+
import { j as jsxRuntimeExports } from '../chunks/jsx-runtime-DFKOoQSG.js';
|
|
2
|
+
import { Typography } from './Typography.js';
|
|
3
|
+
import { Container } from './Container.js';
|
|
4
|
+
import { useNavigate } from 'react-router';
|
|
1863
5
|
|
|
1864
6
|
const PageNotFoundIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1865
7
|
"svg",
|
|
@@ -2357,8 +499,8 @@ const PageNotFound = ({ path = "/" }) => {
|
|
|
2357
499
|
className: "min-h-screen flex justify-center items-center",
|
|
2358
500
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col md:flex-row items-end-safe md:space-y-0 md:space-x-4", children: [
|
|
2359
501
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center md:text-left", children: [
|
|
2360
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography
|
|
2361
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography
|
|
502
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Title, { className: "text-xs", level: 2, children: "Oops! Trang không tồn tại" }),
|
|
503
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Typography.Paragraph, { className: "min-w-fit text-gray-500 pb-15", children: [
|
|
2362
504
|
"Chúng tôi không thể tìm thấy trang mà bạn đang",
|
|
2363
505
|
/* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
|
|
2364
506
|
"tìm kiếm. Nó có thể đã được di chuyển, đổi tên,",
|
|
@@ -2380,4 +522,4 @@ const PageNotFound = ({ path = "/" }) => {
|
|
|
2380
522
|
);
|
|
2381
523
|
};
|
|
2382
524
|
|
|
2383
|
-
export {
|
|
525
|
+
export { PageNotFound };
|