ar-design 0.4.29 → 0.4.31
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.
|
@@ -174,6 +174,10 @@
|
|
|
174
174
|
align-items: center;
|
|
175
175
|
gap: 0.5rem;
|
|
176
176
|
min-width: 100%;
|
|
177
|
+
|
|
178
|
+
> .ar-date-picker {
|
|
179
|
+
width: 100%;
|
|
180
|
+
}
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
}
|
|
@@ -375,7 +379,7 @@
|
|
|
375
379
|
}
|
|
376
380
|
|
|
377
381
|
> span {
|
|
378
|
-
position: sticky;
|
|
382
|
+
/* position: sticky; */
|
|
379
383
|
left: 0.5rem;
|
|
380
384
|
}
|
|
381
385
|
}
|
|
@@ -18,6 +18,7 @@ import PropertiesPopup from "./PropertiesPopup";
|
|
|
18
18
|
import { ExtractKey } from "./Helpers";
|
|
19
19
|
import Header from "./header/Header";
|
|
20
20
|
import TBody from "./body/TBody";
|
|
21
|
+
import DatePicker from "../../form/date-picker";
|
|
21
22
|
const filterOption = [
|
|
22
23
|
{ value: FilterOperator.Contains, text: "İçerir" },
|
|
23
24
|
{ value: FilterOperator.DoesNotContains, text: "İçermez" },
|
|
@@ -165,8 +166,7 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
165
166
|
setIsMobile(window.innerWidth <= 768);
|
|
166
167
|
};
|
|
167
168
|
}, []);
|
|
168
|
-
const handleSearch = useCallback((
|
|
169
|
-
const { name, value } = event.target;
|
|
169
|
+
const handleSearch = useCallback((name, value, dataType) => {
|
|
170
170
|
const operator = filterPopupOption?.key == name
|
|
171
171
|
? filterPopupOption.option?.value
|
|
172
172
|
: FilterOperator.Contains;
|
|
@@ -180,7 +180,7 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
180
180
|
}));
|
|
181
181
|
if (pagination)
|
|
182
182
|
pagination.onChange?.(1, selectedPerPage);
|
|
183
|
-
}, 750);
|
|
183
|
+
}, dataType === "date" ? 0 : 750);
|
|
184
184
|
}
|
|
185
185
|
else {
|
|
186
186
|
setSearchedText((prev) => {
|
|
@@ -194,7 +194,6 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
194
194
|
return _state;
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
|
-
event.target.value = value;
|
|
198
197
|
setCurrentPage(1);
|
|
199
198
|
}, [filterPopupOption]);
|
|
200
199
|
const handleCheckboxChange = useCallback(async (event) => {
|
|
@@ -221,8 +220,7 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
221
220
|
const value = Array.isArray(searchedText?.[key])
|
|
222
221
|
? "" // veya ihtiyacına göre birleştirme yap: searchedText[key].map(v => v.value).join(", ").
|
|
223
222
|
: searchedText?.[key]?.value;
|
|
224
|
-
const handleChange = (
|
|
225
|
-
const { value } = event.target;
|
|
223
|
+
const handleChange = (value) => {
|
|
226
224
|
const input = _searchTextInputs.current[index ?? 0];
|
|
227
225
|
if (input) {
|
|
228
226
|
const event = new Event("input", { bubbles: true });
|
|
@@ -240,7 +238,7 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
240
238
|
setFilterPopupOption({ key: c.key, option: option });
|
|
241
239
|
}, placeholder: "Ko\u015Ful" })),
|
|
242
240
|
React.createElement(Column, { size: 12 },
|
|
243
|
-
React.createElement(Input, { value: value ?? "", onChange: handleChange, placeholder: "Ara" }))));
|
|
241
|
+
React.createElement(Input, { value: value ?? "", onChange: (event) => handleChange(event.target.value), placeholder: "Ara" }))));
|
|
244
242
|
case "object":
|
|
245
243
|
case "boolean":
|
|
246
244
|
return (React.createElement(Row, null,
|
|
@@ -626,8 +624,8 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
626
624
|
className: `${_className.map((c) => c).join(" ")}`,
|
|
627
625
|
}), ...(c.config?.sticky && {
|
|
628
626
|
"data-sticky-position": c.config.sticky,
|
|
629
|
-
}) }, c.key && (React.createElement("div", { className: "filter-field" },
|
|
630
|
-
React.createElement(Input, { ref: (element) => (_searchTextInputs.current[cIndex] = element), variant: c.key && !c.filters ? "outlined" : "filled", style: { height: "2rem" }, value: (config.isServerSide ? ssrValue : csrValue) ?? "", name: key, onInput: handleSearch, disabled: !c.key || !!c.filters }),
|
|
627
|
+
}) }, c.key && (React.createElement("div", { className: "filter-field" }, c.filterDataType === "date" ? (React.createElement(DatePicker, { value: (config.isServerSide ? ssrValue : csrValue) ?? "", name: key, onChange: (value) => handleSearch(key, value, c.filterDataType), style: { height: "2rem" }, config: { isClock: true, isFooterButton: true, locale: config.locale }, disabled: !c.key || !!c.filters })) : (React.createElement(React.Fragment, null,
|
|
628
|
+
React.createElement(Input, { ref: (element) => (_searchTextInputs.current[cIndex] = element), variant: c.key && !c.filters ? "outlined" : "filled", style: { height: "2rem" }, value: (config.isServerSide ? ssrValue : csrValue) ?? "", name: key, onInput: (event) => handleSearch(event.currentTarget.name, event.currentTarget.value), disabled: !c.key || !!c.filters }),
|
|
631
629
|
React.createElement("span", { ref: (element) => (_filterButton.current[cIndex] = element), onClick: (event) => {
|
|
632
630
|
event.stopPropagation();
|
|
633
631
|
// Temizlik...
|
|
@@ -646,14 +644,14 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
|
|
|
646
644
|
dataType = "string";
|
|
647
645
|
setFilterButtonCoordinate({ x: coordinateX, y: coordinateY });
|
|
648
646
|
setFilterCurrentColumn(c);
|
|
649
|
-
setFilterCurrentDataType(dataType);
|
|
647
|
+
setFilterCurrentDataType(c.filterDataType ?? dataType);
|
|
650
648
|
setFilterCurrentIndex(cIndex);
|
|
651
649
|
setOpenFilter(true);
|
|
652
|
-
handleFilterPopupContent(c, dataType, cIndex);
|
|
650
|
+
handleFilterPopupContent(c, c.filterDataType ?? dataType, cIndex);
|
|
653
651
|
} },
|
|
654
652
|
React.createElement(Button, { variant: "borderless", icon: {
|
|
655
653
|
element: React.createElement(ARIcon, { size: 24, icon: "Filter", fill: "var(--dark)", strokeWidth: 0 }),
|
|
656
|
-
} }))))));
|
|
654
|
+
} }))))))));
|
|
657
655
|
})))),
|
|
658
656
|
React.createElement("tbody", { ref: _tBody },
|
|
659
657
|
React.createElement(TBody, { data: getData, columns: columns, refs: { _checkboxItems: _checkboxItems, _selectionItems: _selectionItems }, states: {
|
|
@@ -25,6 +25,7 @@ export type MenuProps = {
|
|
|
25
25
|
};
|
|
26
26
|
export type MenuItemVariants = "vertical" | "horizontal";
|
|
27
27
|
export type MenuItemType = "group" | "divider";
|
|
28
|
+
export type FilterDataType = "string" | "number" | "date" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
|
|
28
29
|
export type TableColumnType<T> = {
|
|
29
30
|
title: string;
|
|
30
31
|
key?: keyof T | {
|
|
@@ -32,6 +33,7 @@ export type TableColumnType<T> = {
|
|
|
32
33
|
nestedKey: string;
|
|
33
34
|
};
|
|
34
35
|
filters?: Option[];
|
|
36
|
+
filterDataType?: FilterDataType;
|
|
35
37
|
render?: (item: T) => React.ReactNode;
|
|
36
38
|
editable?: {
|
|
37
39
|
type: "string" | "number" | "decimal" | "input-formatted-decimal" | "date-picker" | "single-select" | "multiple-select";
|