sag_components 2.0.0-beta273 → 2.0.0-beta275

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/index.js CHANGED
@@ -10591,23 +10591,24 @@ const QuarterPopupPicker = ({
10591
10591
  };
10592
10592
 
10593
10593
  /* eslint-disable import/no-extraneous-dependencies */
10594
- const QuarterPicker = ({
10595
- availableQuarters,
10596
- // ["Q1-2024"]
10597
- label,
10598
- onChange,
10599
- borderRadius,
10600
- required,
10601
- width,
10602
- height,
10603
- placeholder,
10604
- disabled,
10605
- borderColor,
10606
- borderColorFocus,
10607
- textColor,
10608
- selectedValue,
10609
- startYear
10610
- }) => {
10594
+ const QuarterPicker = _ref => {
10595
+ let {
10596
+ availableQuarters,
10597
+ // ["Q1-2024"]
10598
+ label,
10599
+ onChange,
10600
+ borderRadius,
10601
+ required,
10602
+ width,
10603
+ height,
10604
+ placeholder,
10605
+ disabled,
10606
+ borderColor,
10607
+ borderColorFocus,
10608
+ textColor,
10609
+ selectedValue,
10610
+ startYear
10611
+ } = _ref;
10611
10612
  const [isFocused, setIsFocused] = React$1.useState(false);
10612
10613
  const [isOpen, setIsOpen] = React$1.useState(false);
10613
10614
  const [value, setValue] = React$1.useState('');
@@ -11049,22 +11050,23 @@ const MonthPopupPicker = ({
11049
11050
  };
11050
11051
 
11051
11052
  /* eslint-disable import/no-extraneous-dependencies */
11052
- const MonthPicker = ({
11053
- availableMonths,
11054
- label,
11055
- onChange,
11056
- borderRadius,
11057
- required,
11058
- width,
11059
- height,
11060
- placeholder,
11061
- disabled,
11062
- borderColor,
11063
- borderColorFocus,
11064
- textColor,
11065
- selectedValue,
11066
- startYear
11067
- }) => {
11053
+ const MonthPicker = _ref => {
11054
+ let {
11055
+ availableMonths,
11056
+ label,
11057
+ onChange,
11058
+ borderRadius,
11059
+ required,
11060
+ width,
11061
+ height,
11062
+ placeholder,
11063
+ disabled,
11064
+ borderColor,
11065
+ borderColorFocus,
11066
+ textColor,
11067
+ selectedValue,
11068
+ startYear
11069
+ } = _ref;
11068
11070
  const [isFocused, setIsFocused] = React$1.useState(false);
11069
11071
  const [isOpen, setIsOpen] = React$1.useState(false);
11070
11072
  const [value, setValue] = React$1.useState('');
@@ -36125,15 +36127,19 @@ const ToggleInput = styled__default["default"].input`
36125
36127
  const ToggleSlider = styled__default["default"].span`
36126
36128
  display: block;
36127
36129
  position: relative;
36128
- background: ${({
36129
- checked,
36130
- disabled
36131
- }) => checked ? "#006d6a" : disabled ? "#B1B1B1" : "#D0D0D0"};
36130
+ background: ${_ref => {
36131
+ let {
36132
+ checked,
36133
+ disabled
36134
+ } = _ref;
36135
+ return checked ? "#006d6a" : disabled ? "#B1B1B1" : "#D0D0D0";
36136
+ }};
36132
36137
  border-radius: 999px;
36133
36138
  transition: background 0.2s;
36134
- ${({
36135
- size
36136
- }) => {
36139
+ ${_ref2 => {
36140
+ let {
36141
+ size
36142
+ } = _ref2;
36137
36143
  switch (size) {
36138
36144
  case "s":
36139
36145
  return styled.css`width: 40px; height: 20px;`;
@@ -36149,14 +36155,18 @@ const ToggleSlider = styled__default["default"].span`
36149
36155
  left: 3px;
36150
36156
  top: 50%;
36151
36157
  transform: translateY(-50%);
36152
- background: ${({
36153
- disabled
36154
- }) => disabled ? "#D0D0D0" : "#fff"};
36158
+ background: ${_ref3 => {
36159
+ let {
36160
+ disabled
36161
+ } = _ref3;
36162
+ return disabled ? "#D0D0D0" : "#fff";
36163
+ }};
36155
36164
  border-radius: 50%;
36156
36165
  transition: left 0.2s, width 0.2s, height 0.2s;
36157
- ${({
36158
- size
36159
- }) => {
36166
+ ${_ref4 => {
36167
+ let {
36168
+ size
36169
+ } = _ref4;
36160
36170
  switch (size) {
36161
36171
  case "s":
36162
36172
  return styled.css`width: 14px; height: 14px;`;
@@ -36166,10 +36176,11 @@ const ToggleSlider = styled__default["default"].span`
36166
36176
  return styled.css`width: 20px; height: 20px;`;
36167
36177
  }
36168
36178
  }}
36169
- left: ${({
36170
- checked,
36171
- size
36172
- }) => {
36179
+ left: ${_ref5 => {
36180
+ let {
36181
+ checked,
36182
+ size
36183
+ } = _ref5;
36173
36184
  if (!checked) return "3px";
36174
36185
  switch (size) {
36175
36186
  case "s":
@@ -36183,9 +36194,9 @@ const ToggleSlider = styled__default["default"].span`
36183
36194
  }
36184
36195
  `;
36185
36196
 
36186
- /**
36187
- * ToggleSwitch component for on/off states.
36188
- * Supports small/large sizes and disabled state.
36197
+ /**
36198
+ * ToggleSwitch component for on/off states.
36199
+ * Supports small/large sizes and disabled state.
36189
36200
  */
36190
36201
  function ToggleSwitch(_ref) {
36191
36202
  let {
@@ -40853,7 +40864,21 @@ const SortIcon = ({
40853
40864
  }));
40854
40865
  };
40855
40866
 
40856
- // TableHeader.jsx
40867
+ // TableHeader.jsx - Updated with debounce
40868
+
40869
+ // Inline debounce hook
40870
+ const useDebounce = (value, delay = 1500) => {
40871
+ const [debouncedValue, setDebouncedValue] = React$1.useState(value);
40872
+ React$1.useEffect(() => {
40873
+ const handler = setTimeout(() => {
40874
+ setDebouncedValue(value);
40875
+ }, delay);
40876
+ return () => {
40877
+ clearTimeout(handler);
40878
+ };
40879
+ }, [value, delay]);
40880
+ return debouncedValue;
40881
+ };
40857
40882
  const TableHeader = ({
40858
40883
  columns,
40859
40884
  onSort,
@@ -40864,7 +40889,8 @@ const TableHeader = ({
40864
40889
  expandable = false,
40865
40890
  onHeaderCheckboxClick = () => {},
40866
40891
  headerCheckboxStates = {},
40867
- resetFiltersKey = 0 // NEW: Add this prop
40892
+ resetFiltersKey = 0,
40893
+ debounceDelay = 500 // NEW: Add debounce delay prop (default 500ms)
40868
40894
  }) => {
40869
40895
  const [focusedFilter, setFocusedFilter] = React$1.useState(null);
40870
40896
  const [focusedSort, setFocusedSort] = React$1.useState(null);
@@ -40874,17 +40900,21 @@ const TableHeader = ({
40874
40900
  top: 0,
40875
40901
  left: 0
40876
40902
  });
40903
+
40904
+ // Internal state that updates immediately (for UI responsiveness)
40877
40905
  const [filterState, setFilterState] = React$1.useState({});
40878
40906
  const [filterSelections, setFilterSelections] = React$1.useState({});
40879
40907
  const [activeSortColumn, setActiveSortColumn] = React$1.useState(null);
40880
40908
  const [activeSortValue, setActiveSortValue] = React$1.useState(null);
40909
+
40910
+ // Debounced values (these will be passed to parent after delay)
40911
+ const debouncedFilterState = useDebounce(filterState, debounceDelay);
40881
40912
  const iconRefs = React$1.useRef({});
40882
40913
  const popupRef = React$1.useRef(null);
40883
40914
 
40884
- // NEW: Reset internal state when resetFiltersKey changes
40915
+ // Reset internal state when resetFiltersKey changes
40885
40916
  React$1.useEffect(() => {
40886
40917
  if (resetFiltersKey > 0) {
40887
- // Reset filter selections to default (all selected)
40888
40918
  const resetSelections = {};
40889
40919
  columns.forEach(column => {
40890
40920
  if (column.filter && column.filterOptions) {
@@ -40900,15 +40930,9 @@ const TableHeader = ({
40900
40930
  }
40901
40931
  });
40902
40932
  setFilterSelections(resetSelections);
40903
-
40904
- // Reset filter state
40905
40933
  setFilterState({});
40906
-
40907
- // Reset sort state
40908
40934
  setActiveSortColumn(null);
40909
40935
  setActiveSortValue(null);
40910
-
40911
- // Close any open popups
40912
40936
  setVisibleFilterPopWrapper(null);
40913
40937
  setVisibleSortPopWrapper(null);
40914
40938
  }
@@ -40951,6 +40975,14 @@ const TableHeader = ({
40951
40975
  return hasChanges ? newSelections : prevSelections;
40952
40976
  });
40953
40977
  }, [columns]);
40978
+
40979
+ // 🎯 KEY CHANGE: Use debounced value to trigger parent callback
40980
+ React$1.useEffect(() => {
40981
+ // Only call onFilter if there's actual filter data
40982
+ if (Object.keys(debouncedFilterState).length > 0) {
40983
+ onFilter(debouncedFilterState);
40984
+ }
40985
+ }, [debouncedFilterState, onFilter]);
40954
40986
  const isFilterInDefaultState = columnKey => {
40955
40987
  const filterData = filterState[columnKey];
40956
40988
  if (!filterData) {
@@ -41043,11 +41075,6 @@ const TableHeader = ({
41043
41075
  setVisibleSortPopWrapper(prevKey => prevKey === key ? null : key);
41044
41076
  setVisibleFilterPopWrapper(null);
41045
41077
  };
41046
- React$1.useEffect(() => {
41047
- if (Object.keys(filterState).length > 0) {
41048
- onFilter(filterState);
41049
- }
41050
- }, [filterState]);
41051
41078
  const handleFilter = key => {
41052
41079
  const iconElement = iconRefs.current[`filter-${key}`];
41053
41080
  if (iconElement) {
@@ -41077,6 +41104,9 @@ const TableHeader = ({
41077
41104
  onSort(columnKey, null);
41078
41105
  }
41079
41106
  };
41107
+
41108
+ // 🎯 Filter changes update immediately in UI (filterState)
41109
+ // But parent callback is triggered only after debounce
41080
41110
  const handleFilterSelectionChange = (columnKey, selectionData) => {
41081
41111
  setFilterSelections(prev => {
41082
41112
  const updated = {
@@ -41085,6 +41115,8 @@ const TableHeader = ({
41085
41115
  };
41086
41116
  return updated;
41087
41117
  });
41118
+
41119
+ // Update internal state immediately for responsive UI
41088
41120
  setFilterState(prev => ({
41089
41121
  ...prev,
41090
41122
  [columnKey]: selectionData.filterData
@@ -41221,6 +41253,7 @@ const TableHeader = ({
41221
41253
  placeholder: column.key === 'EventCode' ? 'Enter Event ID' : 'Search..',
41222
41254
  fieldHeight: "40px",
41223
41255
  onTyping: value => {
41256
+ // Update internal state immediately
41224
41257
  setFilterState(prev => ({
41225
41258
  ...prev,
41226
41259
  [key]: value
@@ -41255,6 +41288,7 @@ const TableHeader = ({
41255
41288
  fields: currentFilterState.fields
41256
41289
  } : null,
41257
41290
  onApply: data => {
41291
+ // Update internal state immediately
41258
41292
  setFilterState(prev => ({
41259
41293
  ...prev,
41260
41294
  [key]: data
@@ -47074,6 +47108,8 @@ const Table = props => {
47074
47108
  return /*#__PURE__*/React__default["default"].createElement(NoEvents, null);
47075
47109
  case "Upc":
47076
47110
  return /*#__PURE__*/React__default["default"].createElement(NoUpcIcon, null);
47111
+ case "Ntt":
47112
+ return /*#__PURE__*/React__default["default"].createElement(NothingToTrackIcon, null);
47077
47113
  default:
47078
47114
  return null;
47079
47115
  }