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((event) => {
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 = (event) => {
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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ar-design",
3
- "version": "0.4.29",
3
+ "version": "0.4.31",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",