sag_components 2.0.0-beta333 → 2.0.0-beta335

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
@@ -644,6 +644,26 @@ const ChervronLeftIcon = _ref => {
644
644
  }));
645
645
  };
646
646
 
647
+ const CalendarIcon = _ref => {
648
+ let {
649
+ clicked,
650
+ width = "14",
651
+ height = "14",
652
+ fill = "#212121",
653
+ color
654
+ } = _ref;
655
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
656
+ width: width,
657
+ height: height,
658
+ viewBox: "0 0 11 12",
659
+ fill: "none",
660
+ xmlns: "http://www.w3.org/2000/svg"
661
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
662
+ d: "M2.625 0C2.8125 0 3 0.1875 3 0.375V1.5H7.5V0.375C7.5 0.1875 7.66406 0 7.875 0C8.0625 0 8.25 0.1875 8.25 0.375V1.5H9C9.82031 1.5 10.5 2.17969 10.5 3V3.75V4.5V10.5C10.5 11.3438 9.82031 12 9 12H1.5C0.65625 12 0 11.3438 0 10.5V4.5V3.75V3C0 2.17969 0.65625 1.5 1.5 1.5H2.25V0.375C2.25 0.1875 2.41406 0 2.625 0ZM9.75 4.5H7.3125V6.1875H9.75V4.5ZM9.75 6.9375H7.3125V8.8125H9.75V6.9375ZM9.75 9.5625H7.3125V11.25H9C9.39844 11.25 9.75 10.9219 9.75 10.5V9.5625ZM6.5625 8.8125V6.9375H3.9375V8.8125H6.5625ZM3.9375 9.5625V11.25H6.5625V9.5625H3.9375ZM3.1875 8.8125V6.9375H0.75V8.8125H3.1875ZM0.75 9.5625V10.5C0.75 10.9219 1.07812 11.25 1.5 11.25H3.1875V9.5625H0.75ZM0.75 6.1875H3.1875V4.5H0.75V6.1875ZM3.9375 6.1875H6.5625V4.5H3.9375V6.1875ZM9 2.25H1.5C1.07812 2.25 0.75 2.60156 0.75 3V3.75H9.75V3C9.75 2.60156 9.39844 2.25 9 2.25Z",
663
+ fill: color || fill
664
+ }));
665
+ };
666
+
647
667
  const Button$1 = props => {
648
668
  const {
649
669
  text = "",
@@ -690,14 +710,15 @@ const Button$1 = props => {
690
710
  plus: Plus,
691
711
  left: ChervronLeftIcon,
692
712
  right: ChervronRightIcon,
693
- vicon: VIcon
713
+ vicon: VIcon,
714
+ calendar: CalendarIcon
694
715
  };
695
716
  const getIcon = icon => {
696
717
  if (!icon || icon === "none") return null;
697
718
  const IconComponent = iconMap[icon.toLowerCase()];
698
719
  const iconProps = {
699
- height: "16px",
700
- width: "16px",
720
+ height: icon.toLowerCase() === "calendar" ? "14" : "16px",
721
+ width: icon.toLowerCase() === "calendar" ? "14" : "16px",
701
722
  color: disabled ? disabledTextColor || "#B1B1B1" : hover ? hoverTextColor || (type === "secondary" ? "#229E38" : "#ffffff") : textColor || (type === "secondary" ? "#212121" : "#ffffff"),
702
723
  fill: disabled ? disabledTextColor || "#B1B1B1" : hover ? hoverTextColor || (type === "secondary" ? "#229E38" : "#ffffff") : textColor || (type === "secondary" ? "#212121" : "#ffffff")
703
724
  };
@@ -10192,7 +10213,8 @@ const DatePicker = ({
10192
10213
  selectedColor,
10193
10214
  hoverColor,
10194
10215
  inRangeColor,
10195
- clearButtonColor
10216
+ clearButtonColor,
10217
+ showClearButton
10196
10218
  }) => {
10197
10219
  const [startDate, setStartDate] = React$1.useState(null);
10198
10220
  const [endDate, setEndDate] = React$1.useState(null);
@@ -10303,7 +10325,7 @@ const DatePicker = ({
10303
10325
  return /*#__PURE__*/React__default["default"].createElement(DateCell$2, {
10304
10326
  key: date.toISOString()
10305
10327
  });
10306
- })), /*#__PURE__*/React__default["default"].createElement(DatePickerFooter, null, /*#__PURE__*/React__default["default"].createElement(ClearButton$1, {
10328
+ })), /*#__PURE__*/React__default["default"].createElement(DatePickerFooter, null, showClearButton && /*#__PURE__*/React__default["default"].createElement(ClearButton$1, {
10307
10329
  clearButtonColor: clearButtonColor,
10308
10330
  onClick: clearSelection
10309
10331
  }, "Clear")));
@@ -10332,7 +10354,9 @@ const RangePicker = _ref => {
10332
10354
  hoverColor,
10333
10355
  inRangeColor,
10334
10356
  clearButtonColor,
10335
- calendarIconColor
10357
+ calendarIconColor,
10358
+ showClearButton,
10359
+ showOpenIcon
10336
10360
  } = _ref;
10337
10361
  const [isFocused, setIsFocused] = React$1.useState(false);
10338
10362
  const [isOpen, setIsOpen] = React$1.useState(false);
@@ -10447,7 +10471,7 @@ const RangePicker = _ref => {
10447
10471
  }), /*#__PURE__*/React__default["default"].createElement(CalendarDiv$3, {
10448
10472
  className: "CalendarDiv",
10449
10473
  onClick: toggleDatePicker
10450
- }, isOpen === true ? /*#__PURE__*/React__default["default"].createElement(CalendarInOpen, {
10474
+ }, isOpen && showOpenIcon ? /*#__PURE__*/React__default["default"].createElement(CalendarInOpen, {
10451
10475
  className: "CalendarInOpen",
10452
10476
  fill: calendarIconColor
10453
10477
  }) : /*#__PURE__*/React__default["default"].createElement(Calendar, {
@@ -10468,7 +10492,8 @@ const RangePicker = _ref => {
10468
10492
  selectedColor: selectedColor,
10469
10493
  hoverColor: hoverColor,
10470
10494
  inRangeColor: inRangeColor,
10471
- clearButtonColor: clearButtonColor
10495
+ clearButtonColor: clearButtonColor,
10496
+ showClearButton: showClearButton
10472
10497
  })));
10473
10498
  };
10474
10499
  RangePicker.propTypes = {
@@ -10490,7 +10515,9 @@ RangePicker.propTypes = {
10490
10515
  hoverColor: PropTypes.string,
10491
10516
  inRangeColor: PropTypes.string,
10492
10517
  clearButtonColor: PropTypes.string,
10493
- calendarIconColor: PropTypes.string
10518
+ calendarIconColor: PropTypes.string,
10519
+ showClearButton: PropTypes.bool,
10520
+ showOpenIcon: PropTypes.bool
10494
10521
  };
10495
10522
 
10496
10523
  // Adding defaultProps
@@ -10510,7 +10537,9 @@ RangePicker.defaultProps = {
10510
10537
  hoverColor: '#f4faf5',
10511
10538
  inRangeColor: '#effef2',
10512
10539
  clearButtonColor: '#568202',
10513
- calendarIconColor: '#568202'
10540
+ calendarIconColor: '#568202',
10541
+ showClearButton: true,
10542
+ showOpenIcon: true
10514
10543
  };
10515
10544
 
10516
10545
  /* eslint-disable no-nested-ternary */
@@ -10773,23 +10802,24 @@ const QuarterPopupPicker = ({
10773
10802
  };
10774
10803
 
10775
10804
  /* eslint-disable import/no-extraneous-dependencies */
10776
- const QuarterPicker = ({
10777
- availableQuarters,
10778
- // ["Q1-2024"]
10779
- label,
10780
- onChange,
10781
- borderRadius,
10782
- required,
10783
- width,
10784
- height,
10785
- placeholder,
10786
- disabled,
10787
- borderColor,
10788
- borderColorFocus,
10789
- textColor,
10790
- selectedValue,
10791
- startYear
10792
- }) => {
10805
+ const QuarterPicker = _ref => {
10806
+ let {
10807
+ availableQuarters,
10808
+ // ["Q1-2024"]
10809
+ label,
10810
+ onChange,
10811
+ borderRadius,
10812
+ required,
10813
+ width,
10814
+ height,
10815
+ placeholder,
10816
+ disabled,
10817
+ borderColor,
10818
+ borderColorFocus,
10819
+ textColor,
10820
+ selectedValue,
10821
+ startYear
10822
+ } = _ref;
10793
10823
  const [isFocused, setIsFocused] = React$1.useState(false);
10794
10824
  const [isOpen, setIsOpen] = React$1.useState(false);
10795
10825
  const [value, setValue] = React$1.useState('');
@@ -11231,22 +11261,23 @@ const MonthPopupPicker = ({
11231
11261
  };
11232
11262
 
11233
11263
  /* eslint-disable import/no-extraneous-dependencies */
11234
- const MonthPicker = ({
11235
- availableMonths,
11236
- label,
11237
- onChange,
11238
- borderRadius,
11239
- required,
11240
- width,
11241
- height,
11242
- placeholder,
11243
- disabled,
11244
- borderColor,
11245
- borderColorFocus,
11246
- textColor,
11247
- selectedValue,
11248
- startYear
11249
- }) => {
11264
+ const MonthPicker = _ref => {
11265
+ let {
11266
+ availableMonths,
11267
+ label,
11268
+ onChange,
11269
+ borderRadius,
11270
+ required,
11271
+ width,
11272
+ height,
11273
+ placeholder,
11274
+ disabled,
11275
+ borderColor,
11276
+ borderColorFocus,
11277
+ textColor,
11278
+ selectedValue,
11279
+ startYear
11280
+ } = _ref;
11250
11281
  const [isFocused, setIsFocused] = React$1.useState(false);
11251
11282
  const [isOpen, setIsOpen] = React$1.useState(false);
11252
11283
  const [value, setValue] = React$1.useState('');
@@ -24365,23 +24396,24 @@ const DeleteIcon = styled__default["default"].div`
24365
24396
  position: absolute;
24366
24397
  `;
24367
24398
 
24368
- const QuickFilterDropdownSingle = ({
24369
- label,
24370
- hoverColor,
24371
- options,
24372
- selectedValue,
24373
- placeHolder,
24374
- optionHoverColor = '#edf6ff',
24375
- selectedOptionColor = "#C7E4FF",
24376
- onChange,
24377
- disabled,
24378
- width,
24379
- error,
24380
- errorMessage,
24381
- xIconShow,
24382
- labelColor,
24383
- showLabelOnTop
24384
- }) => {
24399
+ const QuickFilterDropdownSingle = _ref => {
24400
+ let {
24401
+ label,
24402
+ hoverColor,
24403
+ options,
24404
+ selectedValue,
24405
+ placeHolder,
24406
+ optionHoverColor = '#edf6ff',
24407
+ selectedOptionColor = "#C7E4FF",
24408
+ onChange,
24409
+ disabled,
24410
+ width,
24411
+ error,
24412
+ errorMessage,
24413
+ xIconShow,
24414
+ labelColor,
24415
+ showLabelOnTop
24416
+ } = _ref;
24385
24417
  const [isFocused, setIsFocused] = React$1.useState(false);
24386
24418
  const [showOptions, setShowOptions] = React$1.useState(false);
24387
24419
  const [inputValue, setInputValue] = React$1.useState("");
@@ -24839,26 +24871,27 @@ const IconContainer$2 = styled__default["default"].div`
24839
24871
  cursor: pointer;
24840
24872
  `;
24841
24873
 
24842
- const QuickFilterDropdownMultiSelection = ({
24843
- label,
24844
- labelEmptyValue,
24845
- options,
24846
- selectedValue,
24847
- placeHolder,
24848
- onChange,
24849
- required,
24850
- disabled,
24851
- width,
24852
- height,
24853
- error,
24854
- errorMessage,
24855
- labelColor,
24856
- optionHoverColor = '#edf6ff',
24857
- xIconShow,
24858
- checkBoxColor,
24859
- showLabelOnTop,
24860
- dropdownHeight
24861
- }) => {
24874
+ const QuickFilterDropdownMultiSelection = _ref => {
24875
+ let {
24876
+ label,
24877
+ labelEmptyValue,
24878
+ options,
24879
+ selectedValue,
24880
+ placeHolder,
24881
+ onChange,
24882
+ required,
24883
+ disabled,
24884
+ width,
24885
+ height,
24886
+ error,
24887
+ errorMessage,
24888
+ labelColor,
24889
+ optionHoverColor = '#edf6ff',
24890
+ xIconShow,
24891
+ checkBoxColor,
24892
+ showLabelOnTop,
24893
+ dropdownHeight
24894
+ } = _ref;
24862
24895
  const [isFocused, setIsFocused] = React$1.useState(false);
24863
24896
  const [showOptions, setShowOptions] = React$1.useState(false);
24864
24897
  const [inputValue, setInputValue] = React$1.useState('');
@@ -36409,9 +36442,9 @@ const ToggleSlider = styled__default["default"].span`
36409
36442
  }
36410
36443
  `;
36411
36444
 
36412
- /**
36413
- * ToggleSwitch component for on/off states.
36414
- * Supports small/large sizes and disabled state.
36445
+ /**
36446
+ * ToggleSwitch component for on/off states.
36447
+ * Supports small/large sizes and disabled state.
36415
36448
  */
36416
36449
  function ToggleSwitch(_ref) {
36417
36450
  let {
@@ -37357,6 +37390,16 @@ const Loader = styled__default["default"].span`
37357
37390
  animation: ${rotation} 1.5s infinite ease;
37358
37391
  transform: translateZ(0);
37359
37392
  `;
37393
+ const DirtyFieldsCounter = styled__default["default"].div`
37394
+ font-family: 'Poppins', sans-serif;
37395
+ font-size: 14px;
37396
+ font-weight: 500;
37397
+ color: ${({
37398
+ $dirty
37399
+ }) => $dirty ? '#EF4444' : '#1f7677'};
37400
+ padding: 6px 16px;
37401
+ text-align: left;
37402
+ `;
37360
37403
  const LoaderWrapper = styled__default["default"].div`
37361
37404
  position: absolute;
37362
37405
  top: 50%;
@@ -41687,7 +41730,12 @@ const TableHeader = ({
41687
41730
  style: {
41688
41731
  accentColor: '#066768'
41689
41732
  }
41690
- }), column.title && /*#__PURE__*/React__default["default"].createElement(ColumnLabel, null, column.title), (column.filter || column.sort) && /*#__PURE__*/React__default["default"].createElement(ColumnActions, null, column.sort && /*#__PURE__*/React__default["default"].createElement(IconButton, {
41733
+ }), column.title && /*#__PURE__*/React__default["default"].createElement(ColumnLabel, null, column.title, column.required && /*#__PURE__*/React__default["default"].createElement("span", {
41734
+ style: {
41735
+ color: '#EF4444',
41736
+ marginLeft: '5px'
41737
+ }
41738
+ }, "*")), (column.filter || column.sort) && /*#__PURE__*/React__default["default"].createElement(ColumnActions, null, column.sort && /*#__PURE__*/React__default["default"].createElement(IconButton, {
41691
41739
  ref: el => iconRefs.current[`sort-${column.key}`] = el,
41692
41740
  onClick: () => handleSort(column.key),
41693
41741
  onMouseEnter: () => setFocusedSort(column.key),
@@ -41902,6 +41950,10 @@ const TableCell = styled__default["default"].td`
41902
41950
  position: relative;
41903
41951
  `}
41904
41952
 
41953
+ ${props => props.$editable && `
41954
+ overflow: visible;
41955
+ `}
41956
+
41905
41957
  /* CSS-only tooltip */
41906
41958
  &[data-tooltip]:hover::before {
41907
41959
  content: attr(data-tooltip);
@@ -41955,6 +42007,31 @@ const TableCell = styled__default["default"].td`
41955
42007
  }
41956
42008
  }
41957
42009
 
42010
+ input {
42011
+ display: block;
42012
+ }
42013
+
42014
+ input[type="number"]::-webkit-inner-spin-button,
42015
+ input[type="number"]::-webkit-outer-spin-button {
42016
+ -webkit-appearance: none;
42017
+ margin: 0;
42018
+ }
42019
+
42020
+ input[type="number"] {
42021
+ -moz-appearance: textfield;
42022
+ }
42023
+
42024
+ input:hover:not(:focus) {
42025
+ border: 1px solid rgba(0, 0, 0, 0.6) !important;
42026
+ border-radius: 4px;
42027
+ }
42028
+
42029
+ input:focus {
42030
+ border: 2px solid #212121 !important;
42031
+ border-radius: 4px;
42032
+ outline: none !important;
42033
+ }
42034
+
41958
42035
  ${props => {
41959
42036
  switch (props.$fieldType) {
41960
42037
  case "currency":
@@ -42525,6 +42602,137 @@ const PencilButton = styled__default["default"].button`
42525
42602
  pointer-events: none;
42526
42603
  }
42527
42604
  `;
42605
+ const NotAvailableIconButton = styled__default["default"].button`
42606
+ position: absolute;
42607
+ right: 4px;
42608
+ top: 0;
42609
+ bottom: 0;
42610
+ margin-top: auto;
42611
+ margin-bottom: auto;
42612
+ height: fit-content;
42613
+ background: transparent;
42614
+ border: none;
42615
+ cursor: pointer;
42616
+ padding: 2px;
42617
+ display: flex;
42618
+ align-items: center;
42619
+ justify-content: center;
42620
+ color: #8B8989;
42621
+ opacity: 0;
42622
+ transition: opacity 0.15s ease, color 0.15s ease;
42623
+
42624
+ &:hover {
42625
+ color: #EF4444;
42626
+ }
42627
+
42628
+ &::before {
42629
+ content: 'Mark as N/A';
42630
+ position: absolute;
42631
+ bottom: calc(100% + 12px);
42632
+ left: 50%;
42633
+ transform: translateX(-50%);
42634
+ background: white;
42635
+ color: #212121;
42636
+ padding: 4px 8px;
42637
+ border-radius: 4px;
42638
+ font-size: 12px;
42639
+ font-family: 'Poppins', sans-serif;
42640
+ font-weight: 400;
42641
+ white-space: nowrap;
42642
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
42643
+ opacity: 0;
42644
+ pointer-events: none;
42645
+ transition: opacity 0.15s ease;
42646
+ z-index: 1000;
42647
+ }
42648
+
42649
+ &::after {
42650
+ content: '';
42651
+ position: absolute;
42652
+ bottom: calc(100% + 7px);
42653
+ left: 50%;
42654
+ width: 10px;
42655
+ height: 10px;
42656
+ background: white;
42657
+ transform: translateX(-50%) rotate(45deg);
42658
+ opacity: 0;
42659
+ pointer-events: none;
42660
+ transition: opacity 0.15s ease;
42661
+ z-index: 1001;
42662
+ }
42663
+
42664
+ &:hover::before,
42665
+ &:hover::after {
42666
+ opacity: 1;
42667
+ }
42668
+ `;
42669
+ const NotAvailableCellWrapper = styled__default["default"].div`
42670
+ position: relative;
42671
+ display: flex;
42672
+ align-items: center;
42673
+ width: 100%;
42674
+
42675
+ &:hover ${NotAvailableIconButton} {
42676
+ opacity: 1;
42677
+ }
42678
+ `;
42679
+ const NotAvailableText = styled__default["default"].div`
42680
+ position: relative;
42681
+ width: 100%;
42682
+ color: #8B8989;
42683
+ font-family: inherit;
42684
+ font-size: inherit;
42685
+ line-height: normal;
42686
+ cursor: pointer;
42687
+ padding: 1px 2px;
42688
+ border: 1px solid transparent;
42689
+ border-radius: 4px;
42690
+
42691
+ &:hover {
42692
+ border-color: rgba(0, 0, 0, 0.6);
42693
+ }
42694
+
42695
+ &::before {
42696
+ content: 'Click to make required again';
42697
+ position: absolute;
42698
+ bottom: calc(100% + 12px);
42699
+ left: 50%;
42700
+ transform: translateX(-50%);
42701
+ background: white;
42702
+ color: #212121;
42703
+ padding: 4px 8px;
42704
+ border-radius: 4px;
42705
+ font-size: 12px;
42706
+ font-family: 'Poppins', sans-serif;
42707
+ font-weight: 400;
42708
+ white-space: nowrap;
42709
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
42710
+ opacity: 0;
42711
+ pointer-events: none;
42712
+ transition: opacity 0.15s ease;
42713
+ z-index: 1000;
42714
+ }
42715
+
42716
+ &::after {
42717
+ content: '';
42718
+ position: absolute;
42719
+ bottom: calc(100% + 7px);
42720
+ left: 50%;
42721
+ width: 10px;
42722
+ height: 10px;
42723
+ background: white;
42724
+ transform: translateX(-50%) rotate(45deg);
42725
+ opacity: 0;
42726
+ pointer-events: none;
42727
+ transition: opacity 0.15s ease;
42728
+ z-index: 1001;
42729
+ }
42730
+
42731
+ &:hover::before,
42732
+ &:hover::after {
42733
+ opacity: 1;
42734
+ }
42735
+ `;
42528
42736
 
42529
42737
  // MessageBox.styles.js
42530
42738
  const ModalOverlay = styled__default["default"].div`
@@ -43265,7 +43473,8 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
43265
43473
  onHeroClick = () => {},
43266
43474
  onEditableClick = () => {},
43267
43475
  isEditMode = false,
43268
- editRowIndex = -1
43476
+ editRowIndex = -1,
43477
+ markAllNotValidFields = false
43269
43478
  }, ref) => {
43270
43479
  if (!Array.isArray(data) || !Array.isArray(columns)) {
43271
43480
  console.warn("TableBody: Invalid data or columns prop");
@@ -43282,6 +43491,20 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
43282
43491
  const [hasInitialValue, setHasInitialValue] = React$1.useState(false);
43283
43492
  const [shimmerRowIndex, setShimmerRowIndex] = React$1.useState(-1);
43284
43493
  const [shimmerStartTime, setShimmerStartTime] = React$1.useState(null);
43494
+ const [notAvailableFields, setNotAvailableFields] = React$1.useState(() => {
43495
+ const initial = {};
43496
+ data.forEach(row => {
43497
+ columns.forEach(col => {
43498
+ if (col.allowNotAvailable && col.notAvailableValue !== undefined && row[col.key] === col.notAvailableValue) {
43499
+ initial[row.id] = {
43500
+ ...(initial[row.id] ?? {}),
43501
+ [col.key]: true
43502
+ };
43503
+ }
43504
+ });
43505
+ });
43506
+ return initial;
43507
+ });
43285
43508
  const getNestedValue = (obj, path) => {
43286
43509
  if (!path || typeof path !== 'string') return undefined;
43287
43510
  return path.split('.').reduce((current, key) => {
@@ -44101,6 +44324,14 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
44101
44324
  key: `invalid-${columnIndex}`
44102
44325
  }, "Invalid Column");
44103
44326
  }
44327
+ if (column.groupBreak && rowIndex > 0 && data[rowIndex - 1][column.key] === row[column.key]) {
44328
+ return /*#__PURE__*/React__default["default"].createElement(TableCell, {
44329
+ key: `${column.key}-${rowIndex}`,
44330
+ $fieldType: column.fieldType?.toLowerCase(),
44331
+ $minWidth: column.minWidth,
44332
+ $maxWidth: column.maxWidth
44333
+ });
44334
+ }
44104
44335
  let value, formattedValue, fieldTooltip;
44105
44336
  try {
44106
44337
  value = column.key.includes('.') ? getNestedValue(row, column.key) : row[column.key];
@@ -44119,7 +44350,7 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
44119
44350
  return /*#__PURE__*/React__default["default"].createElement(TableCell, {
44120
44351
  key: `${column.key}-${rowIndex}`,
44121
44352
  ref: el => {
44122
- if (isTextBasedField && el && formattedValue) {
44353
+ if (isTextBasedField && el && formattedValue && !column.editable) {
44123
44354
  const hasOverflow = shouldShowTooltip(el);
44124
44355
  const tooltipTextToShow = hasOverflow ? String(formattedValue) : fieldTooltip;
44125
44356
  if (tooltipTextToShow) {
@@ -44147,12 +44378,61 @@ const TableBody = /*#__PURE__*/React$1.forwardRef(({
44147
44378
  }
44148
44379
  },
44149
44380
  $fieldType: fieldType,
44381
+ $editable: !!column.editable,
44150
44382
  $color: column.color,
44151
44383
  $minWidth: column.minWidth,
44152
44384
  $maxWidth: column.maxWidth
44153
44385
  }, fieldTooltip && !isTextBasedField ? /*#__PURE__*/React__default["default"].createElement(CellContentWrapper, {
44154
44386
  ref: el => applyTooltip(el, fieldTooltip)
44155
- }, renderCellContent(formattedValue, isTextBasedField, shouldShimmer)) : renderCellContent(formattedValue, isTextBasedField, shouldShimmer));
44387
+ }, renderCellContent(formattedValue, isTextBasedField, shouldShimmer)) : column.groupBreak ? /*#__PURE__*/React__default["default"].createElement("strong", null, renderCellContent(formattedValue, isTextBasedField, shouldShimmer)) : column.editable && column.allowNotAvailable ? /*#__PURE__*/React__default["default"].createElement(NotAvailableCellWrapper, null, notAvailableFields[row.id]?.[column.key] ? /*#__PURE__*/React__default["default"].createElement(NotAvailableText, {
44388
+ onClick: () => {
44389
+ setNotAvailableFields(prev => ({
44390
+ ...prev,
44391
+ [row.id]: {
44392
+ ...(prev[row.id] ?? {}),
44393
+ [column.key]: false
44394
+ }
44395
+ }));
44396
+ column.onNotAvailableChange?.(row, false);
44397
+ }
44398
+ }, "N/A") : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, column.renderEditableCell?.(rowIndex, row, {
44399
+ markAllNotValidFields
44400
+ }), /*#__PURE__*/React__default["default"].createElement(NotAvailableIconButton, {
44401
+ type: "button",
44402
+ onClick: e => {
44403
+ e.stopPropagation();
44404
+ setNotAvailableFields(prev => ({
44405
+ ...prev,
44406
+ [row.id]: {
44407
+ ...(prev[row.id] ?? {}),
44408
+ [column.key]: true
44409
+ }
44410
+ }));
44411
+ column.onNotAvailableChange?.(row, true);
44412
+ }
44413
+ }, /*#__PURE__*/React__default["default"].createElement("svg", {
44414
+ width: "14",
44415
+ height: "14",
44416
+ viewBox: "0 0 14 14",
44417
+ fill: "none",
44418
+ xmlns: "http://www.w3.org/2000/svg"
44419
+ }, /*#__PURE__*/React__default["default"].createElement("circle", {
44420
+ cx: "7",
44421
+ cy: "7",
44422
+ r: "6",
44423
+ stroke: "currentColor",
44424
+ strokeWidth: "1.5"
44425
+ }), /*#__PURE__*/React__default["default"].createElement("line", {
44426
+ x1: "2.5",
44427
+ y1: "11.5",
44428
+ x2: "11.5",
44429
+ y2: "2.5",
44430
+ stroke: "currentColor",
44431
+ strokeWidth: "1.5",
44432
+ strokeLinecap: "round"
44433
+ }))))) : column.editable && column.renderEditableCell ? column.renderEditableCell(rowIndex, row, {
44434
+ markAllNotValidFields
44435
+ }) : renderCellContent(formattedValue, isTextBasedField, shouldShimmer));
44156
44436
  })), expandable && expandedRows[rowIndex] && /*#__PURE__*/React__default["default"].createElement(ExpandedRow, {
44157
44437
  $expandedBackgroundColor: expandedBackgroundColor
44158
44438
  }, /*#__PURE__*/React__default["default"].createElement(TableCell, {
@@ -47807,7 +48087,10 @@ const Table = props => {
47807
48087
  showFooter = false,
47808
48088
  total,
47809
48089
  rowLabel = "",
47810
- footerRight = null
48090
+ footerRight = null,
48091
+ showDirtyFieldsCounter = false,
48092
+ dirtyFieldsCount = 0,
48093
+ markAllNotValidFields = false
47811
48094
  } = props;
47812
48095
  const scrollWrapperRef = React$1.useRef(null);
47813
48096
  const tableBodyRef = React$1.useRef(null);
@@ -47964,7 +48247,8 @@ const Table = props => {
47964
48247
  onHeroClick: onHeroClick,
47965
48248
  onEditableClick: onEditableClick,
47966
48249
  isEditMode: isEditMode,
47967
- editRowIndex: editRowIndex
48250
+ editRowIndex: editRowIndex,
48251
+ markAllNotValidFields: markAllNotValidFields
47968
48252
  })), data.length === 0 && /*#__PURE__*/React__default["default"].createElement(NoEventsParent, null, /*#__PURE__*/React__default["default"].createElement(NoEventsWrapper, null, showNoDataInSearch ? getNoDataSearchIcon(noDataSearchIcon) : getNoDataIcon(noDataIcon)), /*#__PURE__*/React__default["default"].createElement(NoEventsMessage, {
47969
48253
  titleSize: titleSize,
47970
48254
  subTitleSize: subTitleSize
@@ -47994,9 +48278,10 @@ const Table = props => {
47994
48278
  total: total,
47995
48279
  rowLabel: rowLabel,
47996
48280
  isLoading: isLoading,
47997
- isLoadingText: isLoadingText,
47998
- footerRight: footerRight
47999
- }))));
48281
+ isLoadingText: isLoadingText
48282
+ }), showDirtyFieldsCounter && (dirtyFieldsCount > 0 ? /*#__PURE__*/React__default["default"].createElement(DirtyFieldsCounter, {
48283
+ $dirty: true
48284
+ }, dirtyFieldsCount, " field", dirtyFieldsCount !== 1 ? 's' : '', " modified") : /*#__PURE__*/React__default["default"].createElement(DirtyFieldsCounter, null, "\u2713 All values complete")))));
48000
48285
  };
48001
48286
  Table.displayName = "Table";
48002
48287
 
@@ -59523,25 +59808,28 @@ const LinkText = styled__default["default"].span`
59523
59808
  `;
59524
59809
 
59525
59810
  // OkCircleIcon.jsx
59526
- const OkCircleIcon = ({
59527
- width = '40',
59528
- height = '40',
59529
- color = '#519595'
59530
- }) => /*#__PURE__*/React__default["default"].createElement("svg", {
59531
- width: width,
59532
- height: height,
59533
- viewBox: "0 0 40 40",
59534
- fill: "none",
59535
- xmlns: "http://www.w3.org/2000/svg"
59536
- }, /*#__PURE__*/React__default["default"].createElement("rect", {
59537
- width: "40",
59538
- height: "40",
59539
- rx: "20",
59540
- fill: color
59541
- }), /*#__PURE__*/React__default["default"].createElement("path", {
59542
- d: "M20.0176 12.6875C17.3809 12.6875 14.9902 14.0938 13.6543 16.3438C12.3535 18.6289 12.3535 21.4062 13.6543 23.6562C14.9902 25.9414 17.3809 27.3125 20.0176 27.3125C22.6191 27.3125 25.0098 25.9414 26.3457 23.6562C27.6465 21.4062 27.6465 18.6289 26.3457 16.3438C25.0098 14.0938 22.6191 12.6875 20.0176 12.6875ZM20.0176 29C16.7832 29 13.8301 27.3125 12.2129 24.5C10.5957 21.7227 10.5957 18.3125 12.2129 15.5C13.8301 12.7227 16.7832 11 20.0176 11C23.2168 11 26.1699 12.7227 27.7871 15.5C29.4043 18.3125 29.4043 21.7227 27.7871 24.5C26.1699 27.3125 23.2168 29 20.0176 29ZM23.9902 18.3477L19.4902 22.8477C19.1387 23.1992 18.6113 23.1992 18.2949 22.8477L16.0449 20.5977C15.6934 20.2812 15.6934 19.7539 16.0449 19.4375C16.3613 19.0859 16.8887 19.0859 17.2402 19.4375L18.8926 21.0898L22.7949 17.1875C23.1113 16.8359 23.6387 16.8359 23.9902 17.1875C24.3066 17.5039 24.3066 18.0312 23.9902 18.3477Z",
59543
- fill: "white"
59544
- }));
59811
+ const OkCircleIcon = _ref => {
59812
+ let {
59813
+ width = '40',
59814
+ height = '40',
59815
+ color = '#519595'
59816
+ } = _ref;
59817
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
59818
+ width: width,
59819
+ height: height,
59820
+ viewBox: "0 0 40 40",
59821
+ fill: "none",
59822
+ xmlns: "http://www.w3.org/2000/svg"
59823
+ }, /*#__PURE__*/React__default["default"].createElement("rect", {
59824
+ width: "40",
59825
+ height: "40",
59826
+ rx: "20",
59827
+ fill: color
59828
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
59829
+ d: "M20.0176 12.6875C17.3809 12.6875 14.9902 14.0938 13.6543 16.3438C12.3535 18.6289 12.3535 21.4062 13.6543 23.6562C14.9902 25.9414 17.3809 27.3125 20.0176 27.3125C22.6191 27.3125 25.0098 25.9414 26.3457 23.6562C27.6465 21.4062 27.6465 18.6289 26.3457 16.3438C25.0098 14.0938 22.6191 12.6875 20.0176 12.6875ZM20.0176 29C16.7832 29 13.8301 27.3125 12.2129 24.5C10.5957 21.7227 10.5957 18.3125 12.2129 15.5C13.8301 12.7227 16.7832 11 20.0176 11C23.2168 11 26.1699 12.7227 27.7871 15.5C29.4043 18.3125 29.4043 21.7227 27.7871 24.5C26.1699 27.3125 23.2168 29 20.0176 29ZM23.9902 18.3477L19.4902 22.8477C19.1387 23.1992 18.6113 23.1992 18.2949 22.8477L16.0449 20.5977C15.6934 20.2812 15.6934 19.7539 16.0449 19.4375C16.3613 19.0859 16.8887 19.0859 17.2402 19.4375L18.8926 21.0898L22.7949 17.1875C23.1113 16.8359 23.6387 16.8359 23.9902 17.1875C24.3066 17.5039 24.3066 18.0312 23.9902 18.3477Z",
59830
+ fill: "white"
59831
+ }));
59832
+ };
59545
59833
 
59546
59834
  // ToasterMessageBox.jsx
59547
59835
  const ToasterMessageBox = _ref => {