@cloudtower/eagle 0.27.53 → 0.27.55
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/cjs/UIKitProvider/index.js +77 -0
- package/dist/cjs/core/AccordionCard/index.js +59 -0
- package/dist/cjs/core/Alert/index.js +80 -0
- package/dist/cjs/core/Arch/index.js +17 -0
- package/dist/cjs/core/Badge/index.js +51 -0
- package/dist/cjs/core/BaseIcon/index.js +76 -0
- package/dist/cjs/core/Bit/index.js +40 -0
- package/dist/cjs/core/BitPerSecond/index.js +40 -0
- package/dist/cjs/core/Bps/index.js +40 -0
- package/dist/cjs/core/Breadcrumb/index.js +58 -0
- package/dist/cjs/core/Button/HoverableElement.js +14 -0
- package/dist/cjs/core/Button/index.js +89 -0
- package/dist/cjs/core/ButtonGroup/index.js +110 -0
- package/dist/cjs/core/Byte/index.js +49 -0
- package/dist/cjs/core/Calendar/index.js +25 -0
- package/dist/cjs/core/Card/CardBody.js +12 -0
- package/dist/cjs/core/Card/CardTitle.js +12 -0
- package/dist/cjs/core/Card/CardWrapper.js +55 -0
- package/dist/cjs/core/Card/index.js +94 -0
- package/dist/cjs/core/Cascader/cascader.style.js +23 -0
- package/dist/cjs/core/Cascader/cascader.widget.js +86 -0
- package/dist/cjs/core/Cascader/index.js +74 -0
- package/dist/cjs/core/Checkbox/checkbox.style.js +5 -0
- package/dist/cjs/core/Checkbox/index.js +53 -0
- package/dist/cjs/core/DetailCard/index.js +23 -0
- package/dist/cjs/core/DonutChart/index.js +167 -0
- package/dist/cjs/core/DropdownMenu/index.js +66 -0
- package/dist/cjs/core/Empty/index.js +11 -0
- package/dist/cjs/core/ExpandableList/ExpandIcon.js +17 -0
- package/dist/cjs/core/ExpandableList/ExpandableContainer.js +17 -0
- package/dist/cjs/core/ExpandableList/ExpandableItem.js +48 -0
- package/dist/cjs/core/ExpandableList/RoundOrder.js +22 -0
- package/dist/cjs/core/FailedLoad/index.js +32 -0
- package/dist/cjs/core/Fields/FieldsBoolean/index.js +47 -0
- package/dist/cjs/core/Fields/FieldsDateTime/index.js +24 -0
- package/dist/cjs/core/Fields/FieldsDateTimeRange/index.js +50 -0
- package/dist/cjs/core/Fields/FieldsEnum/index.js +60 -0
- package/dist/cjs/core/Fields/FieldsFloat/index.js +60 -0
- package/dist/cjs/core/Fields/FieldsInt/index.js +78 -0
- package/dist/cjs/core/Fields/FieldsInteger/index.js +57 -0
- package/dist/cjs/core/Fields/FieldsString/index.js +116 -0
- package/dist/cjs/core/Fields/FieldsTextArea/index.js +64 -0
- package/dist/cjs/core/Fields/FieldsTimePicker/index.js +54 -0
- package/dist/cjs/core/Fields/index.js +28 -0
- package/dist/cjs/core/Form/index.js +10 -0
- package/dist/cjs/core/FormItem/index.js +38 -0
- package/dist/cjs/core/Frequency/index.js +40 -0
- package/dist/cjs/core/Icon/index.js +117 -0
- package/dist/cjs/core/Input/index.js +66 -0
- package/dist/cjs/core/InputGroup/index.js +14 -0
- package/dist/cjs/core/InputInteger/formatterInteger.js +15 -0
- package/dist/cjs/core/InputInteger/index.js +97 -0
- package/dist/cjs/core/InputNumber/index.js +90 -0
- package/dist/cjs/core/InputTagItem/index.js +12 -0
- package/dist/cjs/core/KitStoreProvider/index.js +23 -0
- package/dist/cjs/core/Link/index.js +56 -0
- package/dist/cjs/core/Loading/index.js +33 -0
- package/dist/cjs/core/Loading/style.js +11 -0
- package/dist/cjs/core/Metric/metric.js +21 -0
- package/dist/cjs/core/Modal/index.js +214 -0
- package/dist/cjs/core/ModalStack/index.js +47 -0
- package/dist/cjs/core/Overflow/index.js +117 -0
- package/dist/cjs/core/Pagination/index.js +120 -0
- package/dist/cjs/core/ParrotTrans/index.js +28 -0
- package/dist/cjs/core/Percent/index.js +41 -0
- package/dist/cjs/core/Progress/index.js +25 -0
- package/dist/cjs/core/Radio/index.js +142 -0
- package/dist/cjs/core/SearchInput/index.js +50 -0
- package/dist/cjs/core/Second/index.js +43 -0
- package/dist/cjs/core/SegmentControl/index.js +43 -0
- package/dist/cjs/core/Select/index.js +140 -0
- package/dist/cjs/core/SimplePagination/index.js +90 -0
- package/dist/cjs/core/Speed/index.js +40 -0
- package/dist/cjs/core/StatusCapsule/index.js +100 -0
- package/dist/cjs/core/StepProgress/index.js +44 -0
- package/dist/cjs/core/Steps/index.js +126 -0
- package/dist/cjs/core/Steps/style.js +13 -0
- package/dist/cjs/core/Styled/index.js +57 -0
- package/dist/cjs/core/Switch/index.js +61 -0
- package/dist/cjs/core/Table/TableWidget.js +47 -0
- package/dist/cjs/core/Table/common.js +46 -0
- package/dist/cjs/core/Table/index.js +112 -0
- package/dist/cjs/core/TableForm/AddRowButton.js +108 -0
- package/dist/cjs/core/TableForm/Columns/AffixColumn.js +48 -0
- package/dist/cjs/core/TableForm/Columns/CheckboxColumn.js +35 -0
- package/dist/cjs/core/TableForm/Columns/FormItem.js +20 -0
- package/dist/cjs/core/TableForm/Columns/InputColumn.js +117 -0
- package/dist/cjs/core/TableForm/Columns/TextColumn.js +44 -0
- package/dist/cjs/core/TableForm/Columns/index.js +24 -0
- package/dist/cjs/core/TableForm/TableFormBodyCell.js +165 -0
- package/dist/cjs/core/TableForm/TableFormBodyRows.js +215 -0
- package/dist/cjs/core/TableForm/TableFormHeaderCell.js +93 -0
- package/dist/cjs/core/TableForm/index.js +187 -0
- package/dist/cjs/core/TableForm/style.js +35 -0
- package/dist/cjs/core/TableForm/types.js +10 -0
- package/dist/cjs/core/TableForm/utils.js +36 -0
- package/dist/cjs/core/Tag/SplitTag.js +64 -0
- package/dist/cjs/core/Tag/const.js +12 -0
- package/dist/cjs/core/Tag/index.js +96 -0
- package/dist/cjs/core/Tag/style.js +14 -0
- package/dist/cjs/core/TextArea/index.js +72 -0
- package/dist/cjs/core/Time/index.js +31 -0
- package/dist/cjs/core/TimePicker/index.js +66 -0
- package/dist/cjs/core/TimeZoneSelect/index.js +165 -0
- package/dist/cjs/core/Token/index.js +86 -0
- package/dist/cjs/core/Token/style.js +5 -0
- package/dist/cjs/core/Tooltip/index.js +89 -0
- package/dist/cjs/core/Truncate/index.js +49 -0
- package/dist/cjs/core/Typo/index.js +130 -0
- package/dist/cjs/core/antd.js +208 -0
- package/dist/cjs/core/message/index.js +203 -0
- package/dist/cjs/core/message-group/index.js +147 -0
- package/dist/cjs/coreX/BarChart/index.js +39 -0
- package/dist/cjs/coreX/BatchOperation/index.js +149 -0
- package/dist/cjs/coreX/ChartWithTooltip/index.js +154 -0
- package/dist/cjs/coreX/Counting/index.js +22 -0
- package/dist/cjs/coreX/CronCalendar/index.js +105 -0
- package/dist/cjs/coreX/CronPlan/index.js +462 -0
- package/dist/cjs/coreX/DateRangePicker/AbsoluteDate.js +179 -0
- package/dist/cjs/coreX/DateRangePicker/Calendar.js +286 -0
- package/dist/cjs/coreX/DateRangePicker/DateRangePicker.style.js +84 -0
- package/dist/cjs/coreX/DateRangePicker/InputTime.js +151 -0
- package/dist/cjs/coreX/DateRangePicker/RelativeTime.js +53 -0
- package/dist/cjs/coreX/DateRangePicker/common.js +195 -0
- package/dist/cjs/coreX/DateRangePicker/index.js +331 -0
- package/dist/cjs/coreX/DeprecatedDonutChart/index.js +39 -0
- package/dist/cjs/coreX/DropdownTransition/index.js +73 -0
- package/dist/cjs/coreX/GoBackButton/index.js +45 -0
- package/dist/cjs/coreX/I18nNameTag/index.js +37 -0
- package/dist/cjs/coreX/NamesTooltip/index.js +34 -0
- package/dist/cjs/coreX/OverflowTooltip/index.js +92 -0
- package/dist/cjs/coreX/SidebarSubtitle/index.js +13 -0
- package/dist/cjs/coreX/SortableList/index.js +33 -0
- package/dist/cjs/coreX/SummaryTable/index.js +113 -0
- package/dist/cjs/coreX/SwitchWithText/index.js +59 -0
- package/dist/cjs/coreX/TabMenu/index.js +152 -0
- package/dist/cjs/coreX/TruncatedTextWithTooltip/index.js +69 -0
- package/dist/cjs/coreX/UnitWithChart/index.js +118 -0
- package/dist/cjs/coreX/common/getCalendarTitle.js +26 -0
- package/dist/cjs/hooks/useElementIntersectionRatio.js +30 -0
- package/dist/cjs/hooks/useElementResize.js +69 -0
- package/dist/cjs/hooks/useElementsSize.js +58 -0
- package/dist/cjs/hooks/useMemoCompare.js +17 -0
- package/dist/cjs/hooks/useParrotTranslation.js +13 -0
- package/dist/cjs/index.js +120 -0
- package/dist/cjs/spec/type.js +9 -0
- package/dist/{umd → cjs}/stats1.html +1 -1
- package/dist/cjs/store/chart.js +65 -0
- package/dist/cjs/store/index.js +48 -0
- package/dist/cjs/store/modal.js +67 -0
- package/dist/cjs/styles/token/color.js +273 -0
- package/dist/cjs/utils/constants.js +8 -0
- package/dist/cjs/utils/cron-time.js +450 -0
- package/dist/cjs/utils/dom.js +16 -0
- package/dist/cjs/utils/icon.js +22 -0
- package/dist/cjs/utils/isEmpty.js +12 -0
- package/dist/cjs/utils/time.js +86 -0
- package/dist/cjs/utils/tower.js +188 -0
- package/dist/components.css +3101 -2209
- package/dist/esm/UIKitProvider/index.js +71 -0
- package/dist/esm/core/AccordionCard/index.js +57 -0
- package/dist/esm/core/Alert/index.js +78 -0
- package/dist/esm/core/Arch/index.js +15 -0
- package/dist/esm/core/Badge/index.js +49 -0
- package/dist/esm/core/BaseIcon/index.js +74 -0
- package/dist/esm/core/Bit/index.js +38 -0
- package/dist/esm/core/BitPerSecond/index.js +38 -0
- package/dist/esm/core/Bps/index.js +38 -0
- package/dist/esm/core/Breadcrumb/index.js +53 -0
- package/dist/esm/core/Button/HoverableElement.js +12 -0
- package/dist/esm/core/Button/index.js +87 -0
- package/dist/esm/core/ButtonGroup/index.js +105 -0
- package/dist/esm/core/Byte/index.js +47 -0
- package/dist/esm/core/Calendar/index.js +23 -0
- package/dist/esm/core/Card/CardBody.js +10 -0
- package/dist/esm/core/Card/CardTitle.js +10 -0
- package/dist/esm/core/Card/CardWrapper.js +53 -0
- package/dist/esm/core/Card/index.js +92 -0
- package/dist/esm/core/Cascader/cascader.style.js +12 -0
- package/dist/esm/core/Cascader/cascader.widget.js +79 -0
- package/dist/esm/core/Cascader/index.js +72 -0
- package/dist/esm/core/Checkbox/checkbox.style.js +3 -0
- package/dist/esm/core/Checkbox/index.js +51 -0
- package/dist/esm/core/DetailCard/index.js +21 -0
- package/dist/esm/core/DonutChart/index.js +161 -0
- package/dist/esm/core/DropdownMenu/index.js +61 -0
- package/dist/esm/core/Empty/index.js +9 -0
- package/dist/esm/core/ExpandableList/ExpandIcon.js +15 -0
- package/dist/esm/core/ExpandableList/ExpandableContainer.js +15 -0
- package/dist/esm/core/ExpandableList/ExpandableItem.js +46 -0
- package/dist/esm/core/ExpandableList/RoundOrder.js +20 -0
- package/dist/esm/core/FailedLoad/index.js +30 -0
- package/dist/esm/core/Fields/FieldsBoolean/index.js +45 -0
- package/dist/esm/core/Fields/FieldsDateTime/index.js +22 -0
- package/dist/esm/core/Fields/FieldsDateTimeRange/index.js +48 -0
- package/dist/esm/core/Fields/FieldsEnum/index.js +58 -0
- package/dist/esm/core/Fields/FieldsFloat/index.js +58 -0
- package/dist/esm/core/Fields/FieldsInt/index.js +76 -0
- package/dist/esm/core/Fields/FieldsInteger/index.js +55 -0
- package/dist/esm/core/Fields/FieldsString/index.js +114 -0
- package/dist/esm/core/Fields/FieldsTextArea/index.js +62 -0
- package/dist/esm/core/Fields/FieldsTimePicker/index.js +52 -0
- package/dist/esm/core/Fields/index.js +26 -0
- package/dist/esm/core/Form/index.js +8 -0
- package/dist/esm/core/FormItem/index.js +36 -0
- package/dist/esm/core/Frequency/index.js +38 -0
- package/dist/esm/core/Icon/index.js +115 -0
- package/dist/esm/core/Input/index.js +64 -0
- package/dist/esm/core/InputGroup/index.js +12 -0
- package/dist/esm/core/InputInteger/formatterInteger.js +13 -0
- package/dist/esm/core/InputInteger/index.js +92 -0
- package/dist/esm/core/InputNumber/index.js +85 -0
- package/dist/esm/core/InputTagItem/index.js +10 -0
- package/dist/esm/core/KitStoreProvider/index.js +17 -0
- package/dist/esm/core/Link/index.js +54 -0
- package/dist/esm/core/Loading/index.js +31 -0
- package/dist/esm/core/Loading/style.js +6 -0
- package/dist/esm/core/Metric/metric.js +19 -0
- package/dist/esm/core/Modal/index.js +212 -0
- package/dist/esm/core/ModalStack/index.js +45 -0
- package/dist/esm/core/Overflow/index.js +112 -0
- package/dist/esm/core/Pagination/index.js +115 -0
- package/dist/esm/core/ParrotTrans/index.js +26 -0
- package/dist/esm/core/Percent/index.js +39 -0
- package/dist/esm/core/Progress/index.js +23 -0
- package/dist/esm/core/Radio/index.js +136 -0
- package/dist/esm/core/SearchInput/index.js +48 -0
- package/dist/esm/core/Second/index.js +41 -0
- package/dist/esm/core/SegmentControl/index.js +41 -0
- package/dist/esm/core/Select/index.js +138 -0
- package/dist/esm/core/SimplePagination/index.js +88 -0
- package/dist/esm/core/Speed/index.js +38 -0
- package/dist/esm/core/StatusCapsule/index.js +94 -0
- package/dist/esm/core/StepProgress/index.js +42 -0
- package/dist/esm/core/Steps/index.js +124 -0
- package/dist/esm/core/Steps/style.js +7 -0
- package/dist/esm/core/Styled/index.js +45 -0
- package/dist/esm/core/Switch/index.js +59 -0
- package/dist/esm/core/Table/TableWidget.js +44 -0
- package/dist/esm/core/Table/common.js +44 -0
- package/dist/esm/core/Table/index.js +104 -0
- package/dist/esm/core/TableForm/AddRowButton.js +106 -0
- package/dist/esm/core/TableForm/Columns/AffixColumn.js +46 -0
- package/dist/esm/core/TableForm/Columns/CheckboxColumn.js +32 -0
- package/dist/esm/core/TableForm/Columns/FormItem.js +18 -0
- package/dist/esm/core/TableForm/Columns/InputColumn.js +114 -0
- package/dist/esm/core/TableForm/Columns/TextColumn.js +41 -0
- package/dist/esm/core/TableForm/Columns/index.js +21 -0
- package/dist/esm/core/TableForm/TableFormBodyCell.js +163 -0
- package/dist/esm/core/TableForm/TableFormBodyRows.js +213 -0
- package/dist/esm/core/TableForm/TableFormHeaderCell.js +91 -0
- package/dist/esm/core/TableForm/index.js +185 -0
- package/dist/esm/core/TableForm/style.js +27 -0
- package/dist/esm/core/TableForm/types.js +8 -0
- package/dist/esm/core/TableForm/utils.js +32 -0
- package/dist/esm/core/Tag/SplitTag.js +62 -0
- package/dist/esm/core/Tag/const.js +10 -0
- package/dist/esm/core/Tag/index.js +91 -0
- package/dist/esm/core/Tag/style.js +9 -0
- package/dist/esm/core/TextArea/index.js +70 -0
- package/dist/esm/core/Time/index.js +29 -0
- package/dist/esm/core/TimePicker/index.js +64 -0
- package/dist/esm/core/TimeZoneSelect/index.js +163 -0
- package/dist/esm/core/Token/index.js +81 -0
- package/dist/esm/core/Token/style.js +3 -0
- package/dist/esm/core/Tooltip/index.js +87 -0
- package/dist/esm/core/Truncate/index.js +47 -0
- package/dist/esm/core/Typo/index.js +128 -0
- package/dist/esm/core/antd.js +205 -0
- package/dist/esm/core/message/index.js +179 -0
- package/dist/esm/core/message-group/index.js +143 -0
- package/dist/esm/coreX/BarChart/index.js +34 -0
- package/dist/esm/coreX/BatchOperation/index.js +144 -0
- package/dist/esm/coreX/ChartWithTooltip/index.js +149 -0
- package/dist/esm/coreX/Counting/index.js +20 -0
- package/dist/esm/coreX/CronCalendar/index.js +103 -0
- package/dist/esm/coreX/CronPlan/index.js +457 -0
- package/dist/esm/coreX/DateRangePicker/AbsoluteDate.js +177 -0
- package/dist/esm/coreX/DateRangePicker/Calendar.js +284 -0
- package/dist/esm/coreX/DateRangePicker/DateRangePicker.style.js +77 -0
- package/dist/esm/coreX/DateRangePicker/InputTime.js +149 -0
- package/dist/esm/coreX/DateRangePicker/RelativeTime.js +51 -0
- package/dist/esm/coreX/DateRangePicker/common.js +183 -0
- package/dist/esm/coreX/DateRangePicker/index.js +325 -0
- package/dist/esm/coreX/DeprecatedDonutChart/index.js +37 -0
- package/dist/esm/coreX/DropdownTransition/index.js +71 -0
- package/dist/esm/coreX/GoBackButton/index.js +43 -0
- package/dist/esm/coreX/I18nNameTag/index.js +35 -0
- package/dist/esm/coreX/NamesTooltip/index.js +32 -0
- package/dist/esm/coreX/OverflowTooltip/index.js +90 -0
- package/dist/esm/coreX/SidebarSubtitle/index.js +11 -0
- package/dist/esm/coreX/SortableList/index.js +31 -0
- package/dist/esm/coreX/SummaryTable/index.js +108 -0
- package/dist/esm/coreX/SwitchWithText/index.js +57 -0
- package/dist/esm/coreX/TabMenu/index.js +150 -0
- package/dist/esm/coreX/TruncatedTextWithTooltip/index.js +67 -0
- package/dist/esm/coreX/UnitWithChart/index.js +113 -0
- package/dist/esm/coreX/common/getCalendarTitle.js +24 -0
- package/dist/esm/hooks/useElementIntersectionRatio.js +28 -0
- package/dist/esm/hooks/useElementResize.js +67 -0
- package/dist/esm/hooks/useElementsSize.js +56 -0
- package/dist/esm/hooks/useMemoCompare.js +15 -0
- package/dist/esm/hooks/useParrotTranslation.js +11 -0
- package/dist/esm/index.js +34 -10233
- package/dist/esm/spec/type.js +7 -0
- package/dist/esm/stats1.html +1 -1
- package/dist/esm/store/chart.js +62 -0
- package/dist/esm/store/index.js +37 -0
- package/dist/esm/store/modal.js +63 -0
- package/dist/esm/styles/token/color.js +271 -0
- package/dist/esm/utils/constants.js +5 -0
- package/dist/esm/utils/cron-time.js +448 -0
- package/dist/esm/utils/dom.js +14 -0
- package/dist/esm/utils/icon.js +20 -0
- package/dist/esm/utils/isEmpty.js +10 -0
- package/dist/esm/utils/time.js +76 -0
- package/dist/esm/utils/tower.js +173 -0
- package/dist/src/index.d.ts +0 -1
- package/dist/style.css +2011 -2011
- package/dist/token.css +209 -415
- package/package.json +8 -6
- package/dist/src/styles/token/token.d.ts +0 -1
- package/dist/umd/index.js +0 -10322
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useState, useRef, useMemo, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function canScroll(el, direction = "vertical") {
|
|
4
|
+
const overflow = window.getComputedStyle(el).getPropertyValue("overflow");
|
|
5
|
+
if (overflow === "hidden")
|
|
6
|
+
return false;
|
|
7
|
+
if (direction === "vertical") {
|
|
8
|
+
return el.scrollHeight > el.clientHeight;
|
|
9
|
+
} else if (direction === "horizontal") {
|
|
10
|
+
return el.scrollWidth > el.clientWidth;
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const useTableBodyHasScrollBar = (tableBodyEl, data) => {
|
|
15
|
+
const [hasScrollBar, setHasScrollBar] = useState(false);
|
|
16
|
+
const antTableBodyRef = useRef();
|
|
17
|
+
const observeTableBodyResize = useMemo(
|
|
18
|
+
() => new ResizeObserver((entries) => {
|
|
19
|
+
const target = entries[0].target;
|
|
20
|
+
if (target) {
|
|
21
|
+
setHasScrollBar(canScroll(target));
|
|
22
|
+
}
|
|
23
|
+
}),
|
|
24
|
+
[]
|
|
25
|
+
);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
var _a;
|
|
28
|
+
const tableWrapper = (_a = tableBodyEl == null ? void 0 : tableBodyEl.current) == null ? void 0 : _a.querySelector(".ant-table-body");
|
|
29
|
+
if (tableWrapper) {
|
|
30
|
+
if (antTableBodyRef.current) {
|
|
31
|
+
observeTableBodyResize.unobserve(antTableBodyRef.current);
|
|
32
|
+
}
|
|
33
|
+
antTableBodyRef.current = tableWrapper;
|
|
34
|
+
setHasScrollBar(canScroll(antTableBodyRef.current));
|
|
35
|
+
observeTableBodyResize.observe(antTableBodyRef.current);
|
|
36
|
+
}
|
|
37
|
+
return () => {
|
|
38
|
+
observeTableBodyResize.disconnect();
|
|
39
|
+
};
|
|
40
|
+
}, [tableBodyEl, data, observeTableBodyResize]);
|
|
41
|
+
return hasScrollBar;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { useTableBodyHasScrollBar };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { cx } from '@linaria/core';
|
|
2
|
+
import Loading from '../Loading/index.js';
|
|
3
|
+
import { useTableBodyHasScrollBar } from './common.js';
|
|
4
|
+
import { ColumnTitle, TableLoading } from './TableWidget.js';
|
|
5
|
+
import { Table as Table$1 } from 'antd';
|
|
6
|
+
import cs from 'classnames';
|
|
7
|
+
import React__default, { useRef, useMemo } from 'react';
|
|
8
|
+
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __defProps = Object.defineProperties;
|
|
11
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
12
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value
|
|
20
|
+
}) : obj[key] = value;
|
|
21
|
+
var __spreadValues = (a, b) => {
|
|
22
|
+
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
23
|
+
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
24
|
+
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
25
|
+
}
|
|
26
|
+
return a;
|
|
27
|
+
};
|
|
28
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
29
|
+
const TableContainerStyle = "tc97u5y";
|
|
30
|
+
const tableStyleCover = "tfzf37v";
|
|
31
|
+
const Table = props => {
|
|
32
|
+
const {
|
|
33
|
+
loading,
|
|
34
|
+
error,
|
|
35
|
+
dataSource,
|
|
36
|
+
columns,
|
|
37
|
+
onSorterChange,
|
|
38
|
+
onRowClick,
|
|
39
|
+
rowClassName,
|
|
40
|
+
scroll,
|
|
41
|
+
bordered,
|
|
42
|
+
components,
|
|
43
|
+
rowSelection,
|
|
44
|
+
empty,
|
|
45
|
+
tableLayout = "fixed",
|
|
46
|
+
initLoading,
|
|
47
|
+
rowKey,
|
|
48
|
+
wrapper,
|
|
49
|
+
pagination,
|
|
50
|
+
onRow
|
|
51
|
+
} = props;
|
|
52
|
+
const orderRef = useRef(null);
|
|
53
|
+
const hasScrollBard = useTableBodyHasScrollBar(wrapper, dataSource);
|
|
54
|
+
const _columns = useMemo(() => columns.map(column => {
|
|
55
|
+
const _column = __spreadValues({}, column);
|
|
56
|
+
if (_column.sorter && typeof _column.title !== "function") {
|
|
57
|
+
_column.title = /* @__PURE__ */React__default.createElement(ColumnTitle, {
|
|
58
|
+
title: column.title,
|
|
59
|
+
sortOrder: column.sortOrder
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (_column.align === "right") {
|
|
63
|
+
_column.className = _column.className ? `${_column.className} align-right` : "align-right";
|
|
64
|
+
}
|
|
65
|
+
return _column;
|
|
66
|
+
}), [columns]);
|
|
67
|
+
return /* @__PURE__ */React__default.createElement("div", {
|
|
68
|
+
className: cx(TableContainerStyle, "table-container", !hasScrollBard && "no-scroll-bar")
|
|
69
|
+
}, /* @__PURE__ */React__default.createElement(Table$1, {
|
|
70
|
+
className: cs(tableStyleCover, !(dataSource == null ? void 0 : dataSource.length) && "empty-table", initLoading && "table-init-loading", rowSelection && "has-selection"),
|
|
71
|
+
bordered,
|
|
72
|
+
loading: {
|
|
73
|
+
spinning: loading,
|
|
74
|
+
indicator: initLoading ? /* @__PURE__ */React__default.createElement(TableLoading, null) : /* @__PURE__ */React__default.createElement(Loading, null)
|
|
75
|
+
},
|
|
76
|
+
locale: {
|
|
77
|
+
emptyText: error || /* @__PURE__ */React__default.createElement(React__default.Fragment, null, loading ? "" : empty)
|
|
78
|
+
},
|
|
79
|
+
dataSource: dataSource || [],
|
|
80
|
+
pagination: pagination || false,
|
|
81
|
+
columns: _columns,
|
|
82
|
+
components,
|
|
83
|
+
rowKey: rowKey || "id",
|
|
84
|
+
tableLayout: (dataSource == null ? void 0 : dataSource.length) ? tableLayout : "auto",
|
|
85
|
+
size: "small",
|
|
86
|
+
onChange: (_, filters, sorter) => {
|
|
87
|
+
if (!(sorter instanceof Array)) {
|
|
88
|
+
orderRef.current = sorter.order || (orderRef.current === "ascend" ? "descend" : "ascend");
|
|
89
|
+
onSorterChange == null ? void 0 : onSorterChange(orderRef.current, sorter.columnKey);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
onRow: (record, index) => __spreadValues({
|
|
93
|
+
onClick: evt => onRowClick == null ? void 0 : onRowClick(record, index, evt)
|
|
94
|
+
}, onRow == null ? void 0 : onRow(record, index)),
|
|
95
|
+
rowClassName,
|
|
96
|
+
scroll,
|
|
97
|
+
rowSelection: rowSelection && __spreadProps(__spreadValues({}, rowSelection), {
|
|
98
|
+
columnWidth: 32
|
|
99
|
+
}),
|
|
100
|
+
showSorterTooltip: false
|
|
101
|
+
}));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export { ColumnTitle, TableLoading, Table as default, tableStyleCover, useTableBodyHasScrollBar };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { PlusAddCreateNew16SecondaryIcon } from '@cloudtower/icons-react';
|
|
2
|
+
import { cx } from '@linaria/core';
|
|
3
|
+
import Button from '../Button/index.js';
|
|
4
|
+
import { AddRowButtonWrapper } from './style.js';
|
|
5
|
+
import { genEmptyRow } from './utils.js';
|
|
6
|
+
import { Typo } from '../Typo/index.js';
|
|
7
|
+
import useParrotTranslation from '../../hooks/useParrotTranslation.js';
|
|
8
|
+
import React__default, { useMemo } from 'react';
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __defProps = Object.defineProperties;
|
|
12
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
13
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
14
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
16
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
17
|
+
var __spreadValues = (a, b) => {
|
|
18
|
+
for (var prop in b || (b = {}))
|
|
19
|
+
if (__hasOwnProp.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
if (__getOwnPropSymbols)
|
|
22
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
23
|
+
if (__propIsEnum.call(b, prop))
|
|
24
|
+
__defNormalProp(a, prop, b[prop]);
|
|
25
|
+
}
|
|
26
|
+
return a;
|
|
27
|
+
};
|
|
28
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
29
|
+
var __objRest = (source, exclude) => {
|
|
30
|
+
var target = {};
|
|
31
|
+
for (var prop in source)
|
|
32
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
if (source != null && __getOwnPropSymbols)
|
|
35
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
36
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
37
|
+
target[prop] = source[prop];
|
|
38
|
+
}
|
|
39
|
+
return target;
|
|
40
|
+
};
|
|
41
|
+
const AddRowButton = (props) => {
|
|
42
|
+
const {
|
|
43
|
+
config: { maximum, className, CustomizedButton, buttonProps, text },
|
|
44
|
+
columns,
|
|
45
|
+
updateData,
|
|
46
|
+
data
|
|
47
|
+
} = props;
|
|
48
|
+
const { t } = useParrotTranslation();
|
|
49
|
+
const _a = buttonProps || {}, {
|
|
50
|
+
disabled: disabledFromProp,
|
|
51
|
+
onClick
|
|
52
|
+
} = _a, restButtonProps = __objRest(_a, [
|
|
53
|
+
"disabled",
|
|
54
|
+
"onClick"
|
|
55
|
+
]);
|
|
56
|
+
const onAdd = (e, data2) => {
|
|
57
|
+
const newData = [...data2];
|
|
58
|
+
const newRow = genEmptyRow(columns);
|
|
59
|
+
newData.push(newRow);
|
|
60
|
+
updateData(newData);
|
|
61
|
+
onClick == null ? void 0 : onClick(e);
|
|
62
|
+
};
|
|
63
|
+
const disabled = useMemo(
|
|
64
|
+
() => disabledFromProp || typeof maximum === "number" && maximum <= data.length,
|
|
65
|
+
[maximum, data.length, disabledFromProp]
|
|
66
|
+
);
|
|
67
|
+
const CustomizedButtonText = useMemo(() => {
|
|
68
|
+
if (!text)
|
|
69
|
+
return null;
|
|
70
|
+
if (typeof text === "string")
|
|
71
|
+
return text;
|
|
72
|
+
return text();
|
|
73
|
+
}, [text]);
|
|
74
|
+
if (!columns.length) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return CustomizedButton ? /* @__PURE__ */ React__default.createElement(CustomizedButton, __spreadValues({}, props)) : /* @__PURE__ */ React__default.createElement(AddRowButtonWrapper, { className }, /* @__PURE__ */ React__default.createElement(
|
|
78
|
+
Button,
|
|
79
|
+
__spreadProps(__spreadValues({}, restButtonProps), {
|
|
80
|
+
type: restButtonProps.type || "ordinary",
|
|
81
|
+
size: restButtonProps.size || "small",
|
|
82
|
+
prefixIcon: restButtonProps.prefixIcon || /* @__PURE__ */ React__default.createElement(PlusAddCreateNew16SecondaryIcon, null),
|
|
83
|
+
className: cx(Typo.Label.l3_regular, restButtonProps.className),
|
|
84
|
+
onClick: (e) => {
|
|
85
|
+
onAdd(e, data);
|
|
86
|
+
},
|
|
87
|
+
disabled
|
|
88
|
+
}),
|
|
89
|
+
CustomizedButtonText || t("components.add")
|
|
90
|
+
), typeof maximum === "number" ? /* @__PURE__ */ React__default.createElement(
|
|
91
|
+
"span",
|
|
92
|
+
{
|
|
93
|
+
className: cx(
|
|
94
|
+
Typo.Label.l4_regular,
|
|
95
|
+
"maximum-desc",
|
|
96
|
+
disabled && "disabled"
|
|
97
|
+
)
|
|
98
|
+
},
|
|
99
|
+
t("components.maximum_row_count_desc", {
|
|
100
|
+
count: maximum
|
|
101
|
+
})
|
|
102
|
+
) : null);
|
|
103
|
+
};
|
|
104
|
+
var AddRowButton$1 = AddRowButton;
|
|
105
|
+
|
|
106
|
+
export { AddRowButton$1 as default };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Space, Input } from 'antd';
|
|
2
|
+
import React__default, { useState, useCallback } from 'react';
|
|
3
|
+
import useParrotTranslation from '../../../hooks/useParrotTranslation.js';
|
|
4
|
+
|
|
5
|
+
const AffixColumnHeaderCell = ({ data, column, onChange, onBlur }) => {
|
|
6
|
+
const [suffix, setSuffix] = useState("");
|
|
7
|
+
const [prefix, setPrefix] = useState("");
|
|
8
|
+
const { t } = useParrotTranslation();
|
|
9
|
+
const onPrefixChange = useCallback(
|
|
10
|
+
(e) => {
|
|
11
|
+
const newPrefix = e.target.value;
|
|
12
|
+
setPrefix(newPrefix);
|
|
13
|
+
onChange(newPrefix + suffix);
|
|
14
|
+
},
|
|
15
|
+
[suffix, onChange]
|
|
16
|
+
);
|
|
17
|
+
const onSuffixChange = useCallback(
|
|
18
|
+
(e) => {
|
|
19
|
+
const newSuffix = e.target.value;
|
|
20
|
+
setSuffix(newSuffix);
|
|
21
|
+
onChange(prefix + newSuffix);
|
|
22
|
+
},
|
|
23
|
+
[prefix, onChange]
|
|
24
|
+
);
|
|
25
|
+
return /* @__PURE__ */ React__default.createElement(Space, null, !column.disablePrefix ? /* @__PURE__ */ React__default.createElement(
|
|
26
|
+
Input,
|
|
27
|
+
{
|
|
28
|
+
value: prefix,
|
|
29
|
+
placeholder: t("components.prefix"),
|
|
30
|
+
size: "small",
|
|
31
|
+
onChange: onPrefixChange,
|
|
32
|
+
onBlur
|
|
33
|
+
}
|
|
34
|
+
) : void 0, !column.disableSuffix ? /* @__PURE__ */ React__default.createElement(
|
|
35
|
+
Input,
|
|
36
|
+
{
|
|
37
|
+
value: suffix,
|
|
38
|
+
placeholder: t("components.suffix"),
|
|
39
|
+
size: "small",
|
|
40
|
+
onChange: onSuffixChange,
|
|
41
|
+
onBlur
|
|
42
|
+
}
|
|
43
|
+
) : void 0);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { AffixColumnHeaderCell };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React__default, { useCallback } from 'react';
|
|
2
|
+
import Checkbox from '../../Checkbox/index.js';
|
|
3
|
+
|
|
4
|
+
const CheckboxColumnHeaderCell = ({ onChange }) => {
|
|
5
|
+
const _onChange = useCallback(
|
|
6
|
+
(e) => {
|
|
7
|
+
onChange(e.target.checked, true);
|
|
8
|
+
},
|
|
9
|
+
[onChange]
|
|
10
|
+
);
|
|
11
|
+
return /* @__PURE__ */ React__default.createElement(Checkbox, { onChange: _onChange });
|
|
12
|
+
};
|
|
13
|
+
const CheckboxColumnBodyCell = ({ data, column, index, onChange }) => {
|
|
14
|
+
const value = data[index][column.key] === void 0 ? column.defaultValue : data[index][column.key];
|
|
15
|
+
const _onChange = useCallback(
|
|
16
|
+
(e) => {
|
|
17
|
+
onChange(e.target.checked);
|
|
18
|
+
},
|
|
19
|
+
[onChange]
|
|
20
|
+
);
|
|
21
|
+
const defaultChecked = column.defaultValue;
|
|
22
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
23
|
+
Checkbox,
|
|
24
|
+
{
|
|
25
|
+
checked: value,
|
|
26
|
+
onChange: _onChange,
|
|
27
|
+
defaultChecked
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { CheckboxColumnBodyCell, CheckboxColumnHeaderCell };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Form } from 'antd';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
|
|
4
|
+
const FormItemStyle = "f16blduf";
|
|
5
|
+
const FormItem = props => {
|
|
6
|
+
const {
|
|
7
|
+
validateStatus,
|
|
8
|
+
message,
|
|
9
|
+
children
|
|
10
|
+
} = props;
|
|
11
|
+
return /* @__PURE__ */React__default.createElement(Form.Item, {
|
|
12
|
+
className: FormItemStyle,
|
|
13
|
+
validateStatus,
|
|
14
|
+
help: validateStatus && message ? message : void 0
|
|
15
|
+
}, children);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { FormItem };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons';
|
|
2
|
+
import React__default, { useState, useEffect } from 'react';
|
|
3
|
+
import Input from '../../Input/index.js';
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defProps = Object.defineProperties;
|
|
7
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
const InputPassword = (props) => {
|
|
25
|
+
const [showPassword, setShowPassword] = useState(false);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (props.visible !== void 0) {
|
|
28
|
+
setShowPassword(props.visible);
|
|
29
|
+
}
|
|
30
|
+
}, [props.visible]);
|
|
31
|
+
const toggleShowPassword = () => {
|
|
32
|
+
var _a;
|
|
33
|
+
setShowPassword(!showPassword);
|
|
34
|
+
(_a = props == null ? void 0 : props.onVisibleChange) == null ? void 0 : _a.call(props, !showPassword);
|
|
35
|
+
};
|
|
36
|
+
const inputType = showPassword ? "text" : "password";
|
|
37
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
38
|
+
Input,
|
|
39
|
+
__spreadProps(__spreadValues({}, props), {
|
|
40
|
+
type: inputType,
|
|
41
|
+
suffix: showPassword ? /* @__PURE__ */ React__default.createElement(
|
|
42
|
+
EyeOutlined,
|
|
43
|
+
{
|
|
44
|
+
className: "ant-input-password-icon",
|
|
45
|
+
onClick: toggleShowPassword
|
|
46
|
+
}
|
|
47
|
+
) : /* @__PURE__ */ React__default.createElement(
|
|
48
|
+
EyeInvisibleOutlined,
|
|
49
|
+
{
|
|
50
|
+
className: "ant-input-password-icon",
|
|
51
|
+
onClick: toggleShowPassword
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
})
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
const CustomInput = (props) => {
|
|
58
|
+
if (props.type === "password") {
|
|
59
|
+
return /* @__PURE__ */ React__default.createElement(InputPassword, __spreadValues({}, props));
|
|
60
|
+
}
|
|
61
|
+
return /* @__PURE__ */ React__default.createElement(Input, __spreadValues({}, props));
|
|
62
|
+
};
|
|
63
|
+
const InputColumnHeaderCell = ({ disabled, column, onChange, onBlur, onVisibleChange }) => {
|
|
64
|
+
const _onChange = (e) => {
|
|
65
|
+
const newValue = e.target.value;
|
|
66
|
+
onChange(newValue);
|
|
67
|
+
};
|
|
68
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
69
|
+
CustomInput,
|
|
70
|
+
{
|
|
71
|
+
type: column.type,
|
|
72
|
+
placeholder: column.placeholder,
|
|
73
|
+
disabled,
|
|
74
|
+
size: "small",
|
|
75
|
+
onChange: _onChange,
|
|
76
|
+
onBlur,
|
|
77
|
+
onVisibleChange
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
const InputColumnBodyCell = ({
|
|
82
|
+
data,
|
|
83
|
+
latestData,
|
|
84
|
+
column,
|
|
85
|
+
index,
|
|
86
|
+
disabled,
|
|
87
|
+
onChange,
|
|
88
|
+
onBlur,
|
|
89
|
+
visible,
|
|
90
|
+
error
|
|
91
|
+
}) => {
|
|
92
|
+
const placeHolderValue = column.type === "password" ? "" : latestData[index][column.key];
|
|
93
|
+
const _onChange = (e) => {
|
|
94
|
+
const newValue = e.target.value;
|
|
95
|
+
onChange(newValue);
|
|
96
|
+
};
|
|
97
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
98
|
+
CustomInput,
|
|
99
|
+
{
|
|
100
|
+
size: "small",
|
|
101
|
+
value: data[index][column.key],
|
|
102
|
+
type: column.type,
|
|
103
|
+
defaultValue: column.defaultValue,
|
|
104
|
+
disabled,
|
|
105
|
+
placeholder: placeHolderValue || column.placeholder,
|
|
106
|
+
onChange: _onChange,
|
|
107
|
+
onBlur,
|
|
108
|
+
visible,
|
|
109
|
+
error
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export { InputColumnBodyCell, InputColumnHeaderCell };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { cx } from '@linaria/core';
|
|
2
|
+
import React__default, { useMemo } from 'react';
|
|
3
|
+
import { Typo } from '../../Typo/index.js';
|
|
4
|
+
import { SubtitleStyle, BodyCellTextStyle, BodyCellTextWrapper } from '../style.js';
|
|
5
|
+
|
|
6
|
+
const TextColumnHeaderCell = ({
|
|
7
|
+
column
|
|
8
|
+
}) => {
|
|
9
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
10
|
+
"p",
|
|
11
|
+
{
|
|
12
|
+
className: cx(Typo.Label.l4_regular, SubtitleStyle, column.subTitleColor)
|
|
13
|
+
},
|
|
14
|
+
column.subTitle
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
const TextColumnBodyCell = ({ data, column, index }) => {
|
|
18
|
+
const text = column.displayText || data[index][column.key];
|
|
19
|
+
const CellDescription = useMemo(() => {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const Result = (_b = (_a = column.renderDescription) == null ? void 0 : _a.call(column, {
|
|
22
|
+
rowIndex: index,
|
|
23
|
+
rowData: data[index]
|
|
24
|
+
})) != null ? _b : null;
|
|
25
|
+
return typeof Result === "string" ? /* @__PURE__ */ React__default.createElement("p", { className: cx(Typo.Label.l4_regular, "cell-description") }, Result) : Result;
|
|
26
|
+
}, [index, data, column]);
|
|
27
|
+
const Text = useMemo(
|
|
28
|
+
() => /* @__PURE__ */ React__default.createElement("p", { className: cx(Typo.Label.l3_regular, BodyCellTextStyle) }, text),
|
|
29
|
+
[text]
|
|
30
|
+
);
|
|
31
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
32
|
+
BodyCellTextWrapper,
|
|
33
|
+
{
|
|
34
|
+
className: !!CellDescription ? "with-description" : void 0
|
|
35
|
+
},
|
|
36
|
+
Text,
|
|
37
|
+
CellDescription
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { TextColumnBodyCell, TextColumnHeaderCell };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AffixColumnHeaderCell } from './AffixColumn.js';
|
|
2
|
+
import { CheckboxColumnHeaderCell, CheckboxColumnBodyCell } from './CheckboxColumn.js';
|
|
3
|
+
import { InputColumnHeaderCell, InputColumnBodyCell } from './InputColumn.js';
|
|
4
|
+
import { TextColumnHeaderCell, TextColumnBodyCell } from './TextColumn.js';
|
|
5
|
+
|
|
6
|
+
const ColumnHeaderImpls = {
|
|
7
|
+
text: TextColumnHeaderCell,
|
|
8
|
+
input: InputColumnHeaderCell,
|
|
9
|
+
password: InputColumnHeaderCell,
|
|
10
|
+
affix: AffixColumnHeaderCell,
|
|
11
|
+
checkbox: CheckboxColumnHeaderCell
|
|
12
|
+
};
|
|
13
|
+
const ColumnBodyImpls = {
|
|
14
|
+
text: TextColumnBodyCell,
|
|
15
|
+
input: InputColumnBodyCell,
|
|
16
|
+
password: InputColumnBodyCell,
|
|
17
|
+
affix: InputColumnBodyCell,
|
|
18
|
+
checkbox: CheckboxColumnBodyCell
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { ColumnBodyImpls, ColumnHeaderImpls };
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { cx } from '@linaria/core';
|
|
2
|
+
import { ColumnBodyImpls } from './Columns/index.js';
|
|
3
|
+
import { FormItem } from './Columns/FormItem.js';
|
|
4
|
+
import { ValidateTriggerType } from './types.js';
|
|
5
|
+
import { Typo } from '../Typo/index.js';
|
|
6
|
+
import React__default, { useState, useEffect, useCallback, useMemo } from 'react';
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __defProps = Object.defineProperties;
|
|
10
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
11
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __spreadValues = (a, b) => {
|
|
16
|
+
for (var prop in b || (b = {}))
|
|
17
|
+
if (__hasOwnProp.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
if (__getOwnPropSymbols)
|
|
20
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
+
if (__propIsEnum.call(b, prop))
|
|
22
|
+
__defNormalProp(a, prop, b[prop]);
|
|
23
|
+
}
|
|
24
|
+
return a;
|
|
25
|
+
};
|
|
26
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
27
|
+
const TableFormBodyCell = (props) => {
|
|
28
|
+
const {
|
|
29
|
+
column,
|
|
30
|
+
index: rowIndex,
|
|
31
|
+
data,
|
|
32
|
+
latestData,
|
|
33
|
+
validateTriggerType,
|
|
34
|
+
isRowError,
|
|
35
|
+
getRowValidateResult,
|
|
36
|
+
disabled,
|
|
37
|
+
onChange,
|
|
38
|
+
onBlur,
|
|
39
|
+
validateAll,
|
|
40
|
+
error
|
|
41
|
+
} = props;
|
|
42
|
+
const [validateResult, setValidateResult] = useState();
|
|
43
|
+
const [isTouched, setIsTouched] = useState(false);
|
|
44
|
+
const width = typeof column.width === "number" ? column.width + "px" : column.width;
|
|
45
|
+
const isCellErrorStyle = Boolean((validateResult == null ? void 0 : validateResult.isError) || isRowError);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (isTouched)
|
|
48
|
+
setValidateResult(
|
|
49
|
+
error ? {
|
|
50
|
+
msg: error,
|
|
51
|
+
isError: true
|
|
52
|
+
} : void 0
|
|
53
|
+
);
|
|
54
|
+
}, [error, isTouched]);
|
|
55
|
+
const triggerValidate = useCallback(
|
|
56
|
+
(currentValue) => {
|
|
57
|
+
var _a;
|
|
58
|
+
const value = currentValue != null ? currentValue : data[rowIndex][column.key];
|
|
59
|
+
const rowData = __spreadProps(__spreadValues({}, data[rowIndex]), { [column.key]: value });
|
|
60
|
+
const rowValidateRes = getRowValidateResult(rowData);
|
|
61
|
+
if (rowValidateRes) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (column.validator) {
|
|
65
|
+
const result = (_a = column.validator) == null ? void 0 : _a.call(column, {
|
|
66
|
+
value,
|
|
67
|
+
rowIndex,
|
|
68
|
+
rowData: data[rowIndex]
|
|
69
|
+
});
|
|
70
|
+
const isError = result ? typeof result === "string" : false;
|
|
71
|
+
setValidateResult({ msg: result || "", isError });
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
[data, rowIndex, column, getRowValidateResult]
|
|
76
|
+
);
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
if (validateAll) {
|
|
79
|
+
setIsTouched(true);
|
|
80
|
+
triggerValidate();
|
|
81
|
+
}
|
|
82
|
+
}, [validateAll, triggerValidate, setIsTouched]);
|
|
83
|
+
const _onChange = (value, data2) => {
|
|
84
|
+
const newData = data2.map(
|
|
85
|
+
(row, i) => i === rowIndex ? __spreadProps(__spreadValues({}, row), { [column.key]: value }) : row
|
|
86
|
+
);
|
|
87
|
+
onChange == null ? void 0 : onChange(newData, rowIndex, column.key);
|
|
88
|
+
if (validateTriggerType === ValidateTriggerType.Normal && isTouched || validateTriggerType === ValidateTriggerType.Aggressive) {
|
|
89
|
+
triggerValidate(value);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const _onBlur = useCallback(() => {
|
|
93
|
+
setIsTouched(true);
|
|
94
|
+
triggerValidate();
|
|
95
|
+
onBlur == null ? void 0 : onBlur(data, rowIndex, column.key);
|
|
96
|
+
}, [rowIndex, column, onBlur, data, triggerValidate, setIsTouched]);
|
|
97
|
+
const renderDefaultComponent = () => {
|
|
98
|
+
if (!column.type)
|
|
99
|
+
return null;
|
|
100
|
+
const CellComponent = ColumnBodyImpls[column.type];
|
|
101
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
102
|
+
CellComponent,
|
|
103
|
+
{
|
|
104
|
+
disabled,
|
|
105
|
+
data,
|
|
106
|
+
index: rowIndex,
|
|
107
|
+
latestData,
|
|
108
|
+
column,
|
|
109
|
+
visible: props.visible,
|
|
110
|
+
error: isCellErrorStyle,
|
|
111
|
+
onChange: (val) => {
|
|
112
|
+
_onChange(val, data);
|
|
113
|
+
},
|
|
114
|
+
onBlur: _onBlur
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
};
|
|
118
|
+
const Cell = column.render ? column.render({
|
|
119
|
+
isHeader: false,
|
|
120
|
+
disabled,
|
|
121
|
+
placeholder: props.placeholderValue || latestData[rowIndex][column.key],
|
|
122
|
+
value: data[rowIndex][column.key],
|
|
123
|
+
onChange: (val) => {
|
|
124
|
+
_onChange(val, data);
|
|
125
|
+
},
|
|
126
|
+
onBlur: _onBlur,
|
|
127
|
+
rowIndex,
|
|
128
|
+
error: isCellErrorStyle
|
|
129
|
+
}) : renderDefaultComponent();
|
|
130
|
+
const CellDescription = useMemo(() => {
|
|
131
|
+
var _a;
|
|
132
|
+
if (column.type === "text")
|
|
133
|
+
return null;
|
|
134
|
+
const Result = ((_a = column.renderDescription) == null ? void 0 : _a.call(column, {
|
|
135
|
+
rowIndex,
|
|
136
|
+
rowData: data[rowIndex],
|
|
137
|
+
latestData
|
|
138
|
+
})) || null;
|
|
139
|
+
return typeof Result === "string" ? /* @__PURE__ */ React__default.createElement("p", { className: cx(Typo.Label.l4_regular, "cell-description") }, Result) : Result;
|
|
140
|
+
}, [rowIndex, data, latestData, column]);
|
|
141
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
142
|
+
"div",
|
|
143
|
+
{
|
|
144
|
+
className: cx("eagle-table-form-cell", `align-${column.align || "left"}`),
|
|
145
|
+
style: {
|
|
146
|
+
maxWidth: column.width ? width : "",
|
|
147
|
+
minWidth: column.width ? width : "",
|
|
148
|
+
visibility: column.hidden ? "hidden" : "visible"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
/* @__PURE__ */ React__default.createElement(
|
|
152
|
+
FormItem,
|
|
153
|
+
{
|
|
154
|
+
validateStatus: isCellErrorStyle ? "error" : "",
|
|
155
|
+
message: isRowError ? "" : validateResult == null ? void 0 : validateResult.msg
|
|
156
|
+
},
|
|
157
|
+
Cell
|
|
158
|
+
),
|
|
159
|
+
CellDescription
|
|
160
|
+
);
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export { TableFormBodyCell };
|