sag_components 2.0.0-beta107 → 2.0.0-beta108

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
@@ -2202,7 +2202,9 @@ const Tooltip$2 = props => {
2202
2202
  content = 'Tooltip content',
2203
2203
  direction = 'top',
2204
2204
  delay = '400',
2205
- topFactor = -1.8
2205
+ topFactor = -1.8,
2206
+ hideTooltip = false,
2207
+ className
2206
2208
  } = props;
2207
2209
  let timeout;
2208
2210
  const [active, setActive] = React$1.useState(false);
@@ -2216,12 +2218,12 @@ const Tooltip$2 = props => {
2216
2218
  setActive(false);
2217
2219
  };
2218
2220
  return /*#__PURE__*/React__default["default"].createElement(TooltipContainer$4, {
2219
- className: "tooltip-container"
2221
+ className: className
2220
2222
  }, /*#__PURE__*/React__default["default"].createElement(TooltipWrapper$2, {
2221
2223
  className: "tooltip-wrapper",
2222
2224
  onMouseEnter: showTip,
2223
2225
  onMouseLeave: hideTip
2224
- }, children, active && /*#__PURE__*/React__default["default"].createElement(TooltipTip$1, {
2226
+ }, children, active && !hideTooltip && /*#__PURE__*/React__default["default"].createElement(TooltipTip$1, {
2225
2227
  className: `controls ${direction || 'top'}`,
2226
2228
  topFactor: topFactor
2227
2229
  }, content)));
@@ -8518,6 +8520,16 @@ const DropdownWrapper$2 = styled__default["default"].div`
8518
8520
  font-weight: 400;
8519
8521
  font-size: 14px;
8520
8522
  border-radius: 10px;
8523
+ &::before {
8524
+ content: '';
8525
+ position: absolute;
8526
+ top: 100%;
8527
+ left: 0;
8528
+ right: 0;
8529
+ height: 2px; // Creates invisible bridge for hover
8530
+ z-index: 99;
8531
+ pointer-events: none;
8532
+ }
8521
8533
  `;
8522
8534
  const Label$7 = styled__default["default"].label`
8523
8535
  font-size: ${props => props.isFocused || props.hasValue ? '14px' : '14px'};
@@ -8602,23 +8614,28 @@ const StyledInput$8 = styled__default["default"].input`
8602
8614
  `;
8603
8615
  const OptionsContainer$7 = styled__default["default"].div`
8604
8616
  margin: 0;
8605
- top: 100%;
8617
+ position: absolute;
8618
+ ${props => props.showabove ? `
8619
+ bottom: 100%;
8620
+ ` : `
8621
+ top: 100%;
8622
+ `}
8606
8623
  left: 0;
8607
8624
  z-index: 100;
8608
- width: 100%;
8625
+ width: 100%;
8609
8626
  background-color: #fff;
8610
8627
  display: ${props => props.showoptions && props.filteredoptions?.length > 0 ? 'block' : 'none'};
8611
8628
  `;
8612
8629
  const OptionsSubContainer$3 = styled__default["default"].ul`
8630
+ position: relative;
8631
+ z-index: 101;
8632
+ top: 100%;
8633
+ /* left: 0; */
8613
8634
  ${scrollableStyles$d}
8614
8635
  list-style: none;
8615
8636
  font-weight: 400;
8616
8637
  margin: 0;
8617
8638
  padding: 8px 12px;
8618
- position: absolute;
8619
- top: 100%;
8620
- left: 0;
8621
- z-index: 101;
8622
8639
  width: calc(100% - 23px);
8623
8640
  border-radius: 4px;
8624
8641
  background-color: white;
@@ -8657,7 +8674,6 @@ const IconContainer$5 = styled__default["default"].div`
8657
8674
  cursor: pointer;
8658
8675
  `;
8659
8676
 
8660
- /* eslint-disable react/prop-types */
8661
8677
  const DropdownSingleNew = ({
8662
8678
  label,
8663
8679
  labelEmptyValue,
@@ -8678,6 +8694,7 @@ const DropdownSingleNew = ({
8678
8694
  }) => {
8679
8695
  const [isFocused, setIsFocused] = React$1.useState(false);
8680
8696
  const [showOptions, setShowOptions] = React$1.useState(false);
8697
+ const [showAbove, setShowAbove] = React$1.useState(false);
8681
8698
  const [inputValue, setInputValue] = React$1.useState("");
8682
8699
  const [selectedOptions, setSelectedOptions] = React$1.useState([]);
8683
8700
  const [hoverInputContainer, setHoverInputContainer] = React$1.useState(false);
@@ -8701,6 +8718,22 @@ const DropdownSingleNew = ({
8701
8718
  }
8702
8719
  break;
8703
8720
  }
8721
+
8722
+ // Calculate position when showOptions changes
8723
+ React$1.useEffect(() => {
8724
+ if (showOptions && containerRef.current) {
8725
+ const rect = containerRef.current.getBoundingClientRect();
8726
+ const windowHeight = window.innerHeight;
8727
+ const dropdownHeight = Math.min(filteredOptions.length * 40 + 20, 240); // Estimate dropdown height
8728
+
8729
+ // Check if dropdown would go off-screen at bottom
8730
+ const spaceBelow = windowHeight - rect.bottom;
8731
+ const spaceAbove = rect.top;
8732
+
8733
+ // Show above if there's not enough space below and there's more space above
8734
+ setShowAbove(spaceBelow < dropdownHeight && spaceAbove > spaceBelow);
8735
+ }
8736
+ }, [showOptions, filteredOptions.length]);
8704
8737
  React$1.useEffect(() => {
8705
8738
  if (selectedValue) {
8706
8739
  setSelectedOptions(selectedValue);
@@ -8712,11 +8745,15 @@ const DropdownSingleNew = ({
8712
8745
  }
8713
8746
  }, [isFocused]);
8714
8747
  React$1.useEffect(() => {
8715
- if (!hoverInputContainer && !hoverOptionsContainer) {
8716
- setIsFocused(false);
8717
- setShowOptions(false);
8718
- }
8719
- }, [hoverInputContainer, hoverOptionsContainer]);
8748
+ // Add a small delay to prevent dropdown from closing when moving between input and options
8749
+ const timer = setTimeout(() => {
8750
+ if (!hoverInputContainer && !hoverOptionsContainer && !isFocused) {
8751
+ setShowOptions(false);
8752
+ }
8753
+ }, 100); // 100ms delay allows smooth transition
8754
+
8755
+ return () => clearTimeout(timer);
8756
+ }, [hoverInputContainer, hoverOptionsContainer, isFocused]);
8720
8757
  const toggleOption = option => {
8721
8758
  if (disabled) return;
8722
8759
  const newDropdownedOptions = [option];
@@ -8859,11 +8896,13 @@ const DropdownSingleNew = ({
8859
8896
  onMouseEnter: () => setHoverOptionsContainer(true),
8860
8897
  onMouseLeave: () => setHoverOptionsContainer(false),
8861
8898
  showoptions: showOptions,
8899
+ showabove: showAbove,
8862
8900
  disabled: disabled,
8863
8901
  filteredoptions: filteredOptions
8864
8902
  }, /*#__PURE__*/React__default["default"].createElement(OptionsSubContainer$3, {
8865
8903
  className: "OptionsSubContainer",
8866
8904
  showoptions: showOptions,
8905
+ showabove: showAbove,
8867
8906
  disabled: disabled,
8868
8907
  filteredoptions: filteredOptions
8869
8908
  }, filteredOptions.map(option => /*#__PURE__*/React__default["default"].createElement(OptionItem$3, {
@@ -8873,46 +8912,6 @@ const DropdownSingleNew = ({
8873
8912
  selected: isDropdowned(option)
8874
8913
  }, option.label)))));
8875
8914
  };
8876
- DropdownSingleNew.propTypes = {
8877
- placeHolder: PropTypes.string,
8878
- label: PropTypes.string,
8879
- labelEmptyValue: PropTypes.string,
8880
- labelColor: PropTypes.string,
8881
- required: PropTypes.bool,
8882
- width: PropTypes.string,
8883
- disabled: PropTypes.bool,
8884
- error: PropTypes.bool,
8885
- errorMessage: "",
8886
- options: PropTypes.arrayOf(PropTypes.shape({
8887
- value: PropTypes.string,
8888
- label: PropTypes.string
8889
- })),
8890
- selectedValue: PropTypes.arrayOf(PropTypes.shape({
8891
- value: PropTypes.string,
8892
- label: PropTypes.string
8893
- })),
8894
- xIconShow: PropTypes.bool,
8895
- onChange: PropTypes.func,
8896
- showLabelOnTop: PropTypes.bool
8897
- };
8898
- DropdownSingleNew.defaultProps = {
8899
- placeHolder: "Type To Search",
8900
- label: "Label",
8901
- labelEmptyValue: "All Labels",
8902
- labelColor: "#066768",
8903
- required: true,
8904
- width: "300px",
8905
- disabled: false,
8906
- error: false,
8907
- errorMessage: "",
8908
- options: [],
8909
- selectedValue: [],
8910
- xIconShow: true,
8911
- onChange: () => {},
8912
- showLabelOnTop: true,
8913
- orderBy: "asc",
8914
- elementType: "number"
8915
- };
8916
8915
 
8917
8916
  const CheckBoxCheckedIcon = ({
8918
8917
  clicked,
@@ -8980,6 +8979,16 @@ const DropdownWrapper$1 = styled__default["default"].div`
8980
8979
  font-weight: 400;
8981
8980
  font-size: 14px;
8982
8981
  border-radius: 10px;
8982
+ &::before {
8983
+ content: '';
8984
+ position: absolute;
8985
+ top: 100%;
8986
+ left: 0;
8987
+ right: 0;
8988
+ height: 2px; // Creates invisible bridge for hover
8989
+ z-index: 99;
8990
+ pointer-events: none;
8991
+ }
8983
8992
  `;
8984
8993
  const Label$6 = styled__default["default"].label`
8985
8994
  font-size: ${props => props.isFocused || props.hasValue ? '14px' : '14px'};
@@ -9065,7 +9074,12 @@ const StyledInput$7 = styled__default["default"].input`
9065
9074
  `;
9066
9075
  const OptionsContainer$6 = styled__default["default"].div`
9067
9076
  margin: 0;
9068
- top: 100%;
9077
+ position: absolute;
9078
+ ${props => props.showabove ? `
9079
+ bottom: 100%;
9080
+ ` : `
9081
+ top: 100%;
9082
+ `}
9069
9083
  left: 0;
9070
9084
  z-index: 100;
9071
9085
  width: 100%;
@@ -9073,17 +9087,16 @@ const OptionsContainer$6 = styled__default["default"].div`
9073
9087
  display: ${props => props.showoptions && props.filteredoptions?.length > 0 ? 'block' : 'none'};
9074
9088
  `;
9075
9089
  const OptionsSubContainer$2 = styled__default["default"].ul`
9090
+ position: relative;
9091
+ z-index: 101;
9092
+ top: 100%;
9093
+ /* left: 0; */
9076
9094
  ${scrollableStyles$c}
9077
9095
  list-style: none;
9078
9096
  font-weight: 400;
9079
9097
  margin: 0;
9080
9098
  padding: 8px 12px;
9081
- position: absolute;
9082
- top: 100%;
9083
- left: 0;
9084
- z-index: 101;
9085
9099
  width: calc(100% - 23px);
9086
- font-family: Poppins;
9087
9100
  border-radius: 4px;
9088
9101
  background-color: #fff;
9089
9102
  display: ${props => props.showoptions && props.filteredoptions?.length > 0 ? 'block' : 'none'};
@@ -9100,7 +9113,6 @@ const OptionItem$2 = styled__default["default"].li`
9100
9113
  padding: 10px;
9101
9114
  cursor: pointer;
9102
9115
  color: #212121;
9103
- font-family: Poppins;
9104
9116
  font-size: 14px;
9105
9117
  font-style: normal;
9106
9118
  font-weight: 400;
@@ -9172,6 +9184,7 @@ const DropdownMultiNew = ({
9172
9184
  }) => {
9173
9185
  const [isFocused, setIsFocused] = React$1.useState(false);
9174
9186
  const [showOptions, setShowOptions] = React$1.useState(false);
9187
+ const [showAbove, setShowAbove] = React$1.useState(false);
9175
9188
  const [inputValue, setInputValue] = React$1.useState("");
9176
9189
  const [selectedOptions, setSelectedOptions] = React$1.useState([]);
9177
9190
  const [hoverInputContainer, setHoverInputContainer] = React$1.useState(false);
@@ -9195,6 +9208,22 @@ const DropdownMultiNew = ({
9195
9208
  }
9196
9209
  break;
9197
9210
  }
9211
+
9212
+ // Calculate position when showOptions changes
9213
+ React$1.useEffect(() => {
9214
+ if (showOptions && containerRef.current) {
9215
+ const rect = containerRef.current.getBoundingClientRect();
9216
+ const windowHeight = window.innerHeight;
9217
+ const dropdownHeight = Math.min(filteredOptions.length * 40 + 20, 240); // Estimate dropdown height
9218
+
9219
+ // Check if dropdown would go off-screen at bottom
9220
+ const spaceBelow = windowHeight - rect.bottom;
9221
+ const spaceAbove = rect.top;
9222
+
9223
+ // Show above if there's not enough space below and there's more space above
9224
+ setShowAbove(spaceBelow < dropdownHeight && spaceAbove > spaceBelow);
9225
+ }
9226
+ }, [showOptions, filteredOptions.length]);
9198
9227
  React$1.useEffect(() => {
9199
9228
  if (selectedValue) {
9200
9229
  setSelectedOptions(selectedValue);
@@ -9377,11 +9406,13 @@ const DropdownMultiNew = ({
9377
9406
  onMouseEnter: () => setHoverOptionsContainer(true),
9378
9407
  onMouseLeave: () => setHoverOptionsContainer(false),
9379
9408
  showoptions: showOptions,
9409
+ showabove: showAbove,
9380
9410
  disabled: disabled,
9381
9411
  filteredoptions: filteredOptions
9382
9412
  }, /*#__PURE__*/React__default["default"].createElement(OptionsSubContainer$2, {
9383
9413
  className: "OptionsSubContainer",
9384
9414
  showoptions: showOptions,
9415
+ showabove: showAbove,
9385
9416
  disabled: disabled,
9386
9417
  filteredoptions: filteredOptions
9387
9418
  }, filteredOptions.map(option => /*#__PURE__*/React__default["default"].createElement(OptionItem$2, {
@@ -9401,48 +9432,6 @@ const DropdownMultiNew = ({
9401
9432
  color: disabled ? "#888" : "#212121"
9402
9433
  })), option.label)))));
9403
9434
  };
9404
- DropdownMultiNew.propTypes = {
9405
- placeHolder: PropTypes.string,
9406
- label: PropTypes.string,
9407
- labelEmptyValue: PropTypes.string,
9408
- labelColor: PropTypes.string,
9409
- checkBoxColor: PropTypes.string,
9410
- required: PropTypes.bool,
9411
- width: PropTypes.string,
9412
- disabled: PropTypes.bool,
9413
- error: PropTypes.bool,
9414
- errorMessage: "",
9415
- options: PropTypes.arrayOf(PropTypes.shape({
9416
- value: PropTypes.string,
9417
- label: PropTypes.string
9418
- })),
9419
- selectedValue: PropTypes.arrayOf(PropTypes.shape({
9420
- value: PropTypes.string,
9421
- label: PropTypes.string
9422
- })),
9423
- onChange: PropTypes.func,
9424
- xIconShow: PropTypes.bool,
9425
- showLabelOnTop: PropTypes.bool
9426
- };
9427
- DropdownMultiNew.defaultProps = {
9428
- placeHolder: "Type To Search",
9429
- label: "Label",
9430
- labelEmptyValue: "All Labels",
9431
- labelColor: "#066768",
9432
- checkBoxColor: "#229E38",
9433
- required: true,
9434
- width: "300px",
9435
- disabled: false,
9436
- error: false,
9437
- errorMessage: "",
9438
- options: [],
9439
- selectedValue: [],
9440
- xIconShow: true,
9441
- onChange: () => {},
9442
- showLabelOnTop: true,
9443
- orderBy: "asc",
9444
- elementType: "number"
9445
- };
9446
9435
 
9447
9436
  const DropdownMain = styled__default["default"].div`
9448
9437
  position: relative;
@@ -23914,21 +23903,22 @@ const DeleteIcon = styled__default["default"].div`
23914
23903
  position: absolute;
23915
23904
  `;
23916
23905
 
23917
- const QuickFilterDropdownSingle = ({
23918
- label,
23919
- hoverColor,
23920
- options,
23921
- selectedValue,
23922
- placeHolder,
23923
- onChange,
23924
- disabled,
23925
- width,
23926
- error,
23927
- errorMessage,
23928
- xIconShow,
23929
- labelColor,
23930
- showLabelOnTop
23931
- }) => {
23906
+ const QuickFilterDropdownSingle = _ref => {
23907
+ let {
23908
+ label,
23909
+ hoverColor,
23910
+ options,
23911
+ selectedValue,
23912
+ placeHolder,
23913
+ onChange,
23914
+ disabled,
23915
+ width,
23916
+ error,
23917
+ errorMessage,
23918
+ xIconShow,
23919
+ labelColor,
23920
+ showLabelOnTop
23921
+ } = _ref;
23932
23922
  const [isFocused, setIsFocused] = React$1.useState(false);
23933
23923
  const [showOptions, setShowOptions] = React$1.useState(false);
23934
23924
  const [inputValue, setInputValue] = React$1.useState("");
@@ -41546,6 +41536,11 @@ const ButtonContainer$1 = styled__default["default"].div`
41546
41536
  flex-direction: column;
41547
41537
  gap: 5px;
41548
41538
  margin-top: 16px;
41539
+ .ButtonContainer {
41540
+ label {
41541
+ white-space: nowrap;
41542
+ }
41543
+ }
41549
41544
  `;
41550
41545
  const Container$1 = styled__default["default"].div`
41551
41546
  display: flex;
@@ -41922,7 +41917,7 @@ const NewSubitemList = props => {
41922
41917
  onBack,
41923
41918
  handleSubitemDetail,
41924
41919
  itemAndPackage,
41925
- onTrashClick,
41920
+ onTrashClick = () => {},
41926
41921
  linkColor
41927
41922
  } = props;
41928
41923
  const vendorItems = itemAndPackage.find(i => i.name === vendor.name).packages || [];
@@ -42092,11 +42087,9 @@ const NegotiatedTextarea = styled__default["default"].textarea`
42092
42087
  width: 90%;
42093
42088
  min-height: 220px;
42094
42089
  margin-top: 8px;
42095
-
42096
42090
  border: 1px solid #e3e4e5;
42097
42091
  border-radius: 12px;
42098
42092
  padding: 16px;
42099
- font-family: Poppins;
42100
42093
  font-size: 15px;
42101
42094
  resize: vertical;
42102
42095
  background: #fff;
@@ -42124,13 +42117,23 @@ const NewSubitem = ({
42124
42117
  const [negotiatedComponent, setNegotiatedComponent] = React$1.useState("Scale");
42125
42118
 
42126
42119
  // Form state
42127
- const isApplyEnabled = negotiatedBrands.trim().length > 0;
42120
+ const isApplyEnabled = negotiatedBrands.trim().length > 2;
42128
42121
  React$1.useEffect(() => {
42129
42122
  if (!packageObject) return;
42130
42123
  if (!packageObject.brands) return;
42131
42124
  setNegotiatedBrands(packageObject.brands);
42132
42125
  setNegotiatedComponent(packageObject.component);
42133
42126
  }, [packageObject]);
42127
+ React$1.useEffect(() => {
42128
+ // Log all props to the console
42129
+ console.log({
42130
+ packageObject,
42131
+ vendor,
42132
+ onBack,
42133
+ addNewPackage,
42134
+ linkColor
42135
+ });
42136
+ }, []);
42134
42137
  return /*#__PURE__*/React__default["default"].createElement(NewSubitemContainer, null, /*#__PURE__*/React__default["default"].createElement(Header, null, /*#__PURE__*/React__default["default"].createElement(BackButton, {
42135
42138
  onClick: onBack
42136
42139
  }, /*#__PURE__*/React__default["default"].createElement(ArrowLeftIcon, null)), /*#__PURE__*/React__default["default"].createElement(BackTitle, null, vendor.name)), /*#__PURE__*/React__default["default"].createElement(SelectionTitle, null, "Add Package"), /*#__PURE__*/React__default["default"].createElement(ButtonsContainer, null, /*#__PURE__*/React__default["default"].createElement(Button$1, {
@@ -42161,13 +42164,7 @@ const NewSubitem = ({
42161
42164
  onChange: e => setNegotiatedBrands(e.target.value),
42162
42165
  required: true,
42163
42166
  placeholder: "Specify by text the participated brands, divided by commas"
42164
- })), /*#__PURE__*/React__default["default"].createElement(NegotiatedContainer, null, /*#__PURE__*/React__default["default"].createElement(AddNegotiatedBrand, {
42165
- style: {
42166
- fontWeight: 500,
42167
- fontFamily: "Poppins",
42168
- fontSize: 15
42169
- }
42170
- }, "Component ", /*#__PURE__*/React__default["default"].createElement("span", {
42167
+ })), /*#__PURE__*/React__default["default"].createElement(NegotiatedContainer, null, /*#__PURE__*/React__default["default"].createElement(AddNegotiatedBrand, null, "Component ", /*#__PURE__*/React__default["default"].createElement("span", {
42171
42168
  style: {
42172
42169
  color: "red"
42173
42170
  }
@@ -50854,1038 +50851,17 @@ const ItemManagerPanel = _ref => {
50854
50851
  height = "100%",
50855
50852
  onSendForms = () => {},
50856
50853
  editMode = true,
50857
- itemAndPackage = [{
50858
- name: "3M",
50859
- packages: [{
50860
- brands: "Pepssi, Cola",
50861
- component: "Scale"
50862
- }]
50863
- }, {
50864
- name: "4C FOODS CORP",
50865
- packages: [{
50866
- brands: "Tide, Ariel",
50867
- component: "Scale"
50868
- }]
50869
- }, {
50870
- name: "8 TRACK FOODS INC",
50871
- packages: null
50872
- }, {
50873
- name: "88 ACRES",
50874
- packages: null
50875
- }, {
50876
- name: "8TH AVENUE FOOD & PROVISIONS INC",
50877
- packages: null
50878
- }, {
50879
- name: "A GAME BEVERAGES LLC",
50880
- packages: null
50881
- }, {
50882
- name: "A LOACKER LTD",
50883
- packages: null
50884
- }, {
50885
- name: "A P DEAUVILLE",
50886
- packages: null
50887
- }, {
50888
- name: "AB WORLD FOODS",
50889
- packages: null
50890
- }, {
50891
- name: "ABBOTT LABS INC",
50892
- packages: null
50893
- }, {
50894
- name: "ABBVIE",
50895
- packages: null
50896
- }, {
50897
- name: "ABF",
50898
- packages: null
50899
- }, {
50900
- name: "AC FOODS",
50901
- packages: null
50902
- }, {
50903
- name: "ACH FOODS",
50904
- packages: null
50905
- }, {
50906
- name: "ACME SMOKED FISH",
50907
- packages: null
50908
- }, {
50909
- name: "ADVANCEPIERRE FOODS",
50910
- packages: null
50911
- }, {
50912
- name: "ADVANTAGE SOLUTIONS",
50913
- packages: null
50914
- }, {
50915
- name: "AGRI MARK FARMERS CO OP",
50916
- packages: null
50917
- }, {
50918
- name: "AGROS NOVA LTD",
50919
- packages: null
50920
- }, {
50921
- name: "AHIMSA COMPANIES",
50922
- packages: null
50923
- }, {
50924
- name: "AINSWORTH",
50925
- packages: null
50926
- }, {
50927
- name: "AJ LETIZIO-TWO RIVERS",
50928
- packages: null
50929
- }, {
50930
- name: "AJINOMOTO CO INC",
50931
- packages: null
50932
- }, {
50933
- name: "ALANRIC FOOD DIST INC",
50934
- packages: null
50935
- }, {
50936
- name: "ALBANESE CONFECTIONERY GRP INC",
50937
- packages: null
50938
- }, {
50939
- name: "ALCON EYE CARE",
50940
- packages: null
50941
- }, {
50942
- name: "ALEN USA",
50943
- packages: null
50944
- }, {
50945
- name: "ALEXIA FOODS",
50946
- packages: null
50947
- }, {
50948
- name: "ALFRED RITTER GMBH & CO KG",
50949
- packages: null
50950
- }, {
50951
- name: "ALKALINE88 LLC",
50952
- packages: null
50953
- }, {
50954
- name: "ALOHA",
50955
- packages: null
50956
- }, {
50957
- name: "ALPHA FOODS INC",
50958
- packages: null
50959
- }, {
50960
- name: "ALTER ECO",
50961
- packages: null
50962
- }, {
50963
- name: "ALWAYS FRESH FARMS",
50964
- packages: null
50965
- }, {
50966
- name: "AMERICAN BEVERAGE MARKETERS",
50967
- packages: null
50968
- }, {
50969
- name: "AMERICAN GREETINGS CORP",
50970
- packages: null
50971
- }, {
50972
- name: "AMERICAN HALAL CO INC",
50973
- packages: null
50974
- }, {
50975
- name: "AMERICAN LICORICE CO",
50976
- packages: null
50977
- }, {
50978
- name: "AMERICAN PET NUTRITION INC",
50979
- packages: null
50980
- }, {
50981
- name: "AMOROSOS BAKERY",
50982
- packages: null
50983
- }, {
50984
- name: "AMPLIFY SNACKS",
50985
- packages: null
50986
- }, {
50987
- name: "AMYS KITCHEN INC",
50988
- packages: null
50989
- }, {
50990
- name: "ANDERSON MAPLE SYRUP CO",
50991
- packages: null
50992
- }, {
50993
- name: "ANDRE PROST INC",
50994
- packages: null
50995
- }, {
50996
- name: "ANDROS FOODS USA INC",
50997
- packages: null
50998
- }, {
50999
- name: "ANDYS SEASONING INC",
51000
- packages: null
51001
- }, {
51002
- name: "ANIMATED BRANDS",
51003
- packages: null
51004
- }, {
51005
- name: "APPLE & EVE INC",
51006
- packages: null
51007
- }, {
51008
- name: "AQUA VITEA LLC",
51009
- packages: null
51010
- }, {
51011
- name: "ARCA CONTINENTAL",
51012
- packages: null
51013
- }, {
51014
- name: "ARIZONA BEVERAGES",
51015
- packages: null
51016
- }, {
51017
- name: "ARIZONA CANNING",
51018
- packages: null
51019
- }, {
51020
- name: "ARTISAN CHEF MANUFACTURING CO",
51021
- packages: null
51022
- }, {
51023
- name: "ARTISAN TROPIC",
51024
- packages: null
51025
- }, {
51026
- name: "ASHOC",
51027
- packages: null
51028
- }, {
51029
- name: "ASPIRE BVRG CO",
51030
- packages: null
51031
- }, {
51032
- name: "ASR GRP",
51033
- packages: null
51034
- }, {
51035
- name: "ASSOCIATED BRITISH FOODS PLC",
51036
- packages: null
51037
- }, {
51038
- name: "ATEECO INC",
51039
- packages: null
51040
- }, {
51041
- name: "ATHENS BAKING CO LLC",
51042
- packages: null
51043
- }, {
51044
- name: "ATK FOODS",
51045
- packages: null
51046
- }, {
51047
- name: "ATLANTIC NATURAL FOODS LLC",
51048
- packages: null
51049
- }, {
51050
- name: "AUGUSTAS CREATIONS",
51051
- packages: null
51052
- }, {
51053
- name: "AUNT KITTYS FOODS",
51054
- packages: null
51055
- }, {
51056
- name: "AUNT SUES RAW HONEY",
51057
- packages: null
51058
- }, {
51059
- name: "AVOCADOS FROM MEXICO",
51060
- packages: null
51061
- }, {
51062
- name: "B&B PECAN PROCESSORS",
51063
- packages: null
51064
- }, {
51065
- name: "B&G FOODS INC",
51066
- packages: null
51067
- }, {
51068
- name: "B.S.A. INTERNATIONAL S.A.",
51069
- packages: null
51070
- }, {
51071
- name: "B2Z PRODS INC",
51072
- packages: null
51073
- }, {
51074
- name: "BACHANS SPECIALTY FOODS LLC",
51075
- packages: null
51076
- }, {
51077
- name: "BACK TO NATURE",
51078
- packages: null
51079
- }, {
51080
- name: "BADIA SPICES INC",
51081
- packages: null
51082
- }, {
51083
- name: "BAKER MILLS",
51084
- packages: null
51085
- }, {
51086
- name: "BALL CORP",
51087
- packages: null
51088
- }, {
51089
- name: "BANG ENERGY",
51090
- packages: null
51091
- }, {
51092
- name: "BANTAM BAGELS",
51093
- packages: null
51094
- }, {
51095
- name: "BARCEL",
51096
- packages: null
51097
- }, {
51098
- name: "BARD VALLEY MEDJOOL DATE",
51099
- packages: null
51100
- }, {
51101
- name: "BARILLA AMERICA INC BARILLA GER FRATELLI",
51102
- packages: null
51103
- }, {
51104
- name: "BARKMAN HONEY LLC",
51105
- packages: null
51106
- }, {
51107
- name: "BARNIES COFFEE KITCHEN",
51108
- packages: null
51109
- }, {
51110
- name: "BAR-S FOODS",
51111
- packages: null
51112
- }, {
51113
- name: "BAY VALLEY FOODS",
51114
- packages: null
51115
- }, {
51116
- name: "BAYER AG",
51117
- packages: null
51118
- }, {
51119
- name: "BAZOOKA CANDY BRANDS",
51120
- packages: null
51121
- }, {
51122
- name: "BEANITOS",
51123
- packages: null
51124
- }, {
51125
- name: "BEECH-NUT",
51126
- packages: null
51127
- }, {
51128
- name: "BEIERSDORF INC",
51129
- packages: null
51130
- }, {
51131
- name: "BEL BRANDS",
51132
- packages: null
51133
- }, {
51134
- name: "BELGIOIOSO CHEESE",
51135
- packages: null
51136
- }, {
51137
- name: "BELL & EVANS CO",
51138
- packages: null
51139
- }, {
51140
- name: "BELL CARTER FOODS INC",
51141
- packages: null
51142
- }, {
51143
- name: "BELLISIO FOODS",
51144
- packages: null
51145
- }, {
51146
- name: "BERKSHIRE HATHAWAY INC",
51147
- packages: null
51148
- }, {
51149
- name: "BERNATELLOS PIZZA INC",
51150
- packages: null
51151
- }, {
51152
- name: "BETTER FOODS JEYER LLC",
51153
- packages: null
51154
- }, {
51155
- name: "BETTYS & TAYLORS OF HARROGATE",
51156
- packages: null
51157
- }, {
51158
- name: "BEVCO",
51159
- packages: null
51160
- }, {
51161
- name: "BEYOND BETTER FOODS LLC",
51162
- packages: null
51163
- }, {
51164
- name: "BEYOND MEAT INC",
51165
- packages: null
51166
- }, {
51167
- name: "BIC USA INC",
51168
- packages: null
51169
- }, {
51170
- name: "BIC WORLD",
51171
- packages: null
51172
- }, {
51173
- name: "BIG EASY BLENDS LLC",
51174
- packages: null
51175
- }, {
51176
- name: "BIG HEART PET",
51177
- packages: null
51178
- }, {
51179
- name: "BIG MOZZ INC",
51180
- packages: null
51181
- }, {
51182
- name: "BIG RUSS BEER CHEESE",
51183
- packages: null
51184
- }, {
51185
- name: "BIG SHOW FOODS INC",
51186
- packages: null
51187
- }, {
51188
- name: "BIG TREE FARMS",
51189
- packages: null
51190
- }, {
51191
- name: "BING BEVERAGE",
51192
- packages: null
51193
- }, {
51194
- name: "BIOSTEEL",
51195
- packages: null
51196
- }, {
51197
- name: "BITCHIN SAUCE",
51198
- packages: null
51199
- }, {
51200
- name: "BLACK RIFLE COFFEE CO",
51201
- packages: null
51202
- }, {
51203
- name: "BLACKBEARD BEVERAGE",
51204
- packages: null
51205
- }, {
51206
- name: "BLACKHAWK",
51207
- packages: null
51208
- }, {
51209
- name: "BLUE DIAMOND GROWERS",
51210
- packages: null
51211
- }, {
51212
- name: "BLUE DOG BAKERY",
51213
- packages: null
51214
- }, {
51215
- name: "BLUE NORTHERN FOODS",
51216
- packages: null
51217
- }, {
51218
- name: "BLUE RHINO",
51219
- packages: null
51220
- }, {
51221
- name: "BLUEBERRY COUNCIL",
51222
- packages: null
51223
- }, {
51224
- name: "BLUETRITON BRANDS",
51225
- packages: null
51226
- }, {
51227
- name: "BNRG",
51228
- packages: null
51229
- }, {
51230
- name: "BOARDWALK FROZEN TREATS LLC",
51231
- packages: null
51232
- }, {
51233
- name: "BOBS RED MILL NTRL FOODS",
51234
- packages: null
51235
- }, {
51236
- name: "BODYARMOR",
51237
- packages: null
51238
- }, {
51239
- name: "BOLTHOUSE",
51240
- packages: null
51241
- }, {
51242
- name: "BONA",
51243
- packages: null
51244
- }, {
51245
- name: "BONOLIO",
51246
- packages: null
51247
- }, {
51248
- name: "BORDEN",
51249
- packages: null
51250
- }, {
51251
- name: "BORGES USA STAR FINE FOODS INC",
51252
- packages: null
51253
- }, {
51254
- name: "BOTANICAL FOODS CO",
51255
- packages: null
51256
- }, {
51257
- name: "BOTTICELLI FOOD CORP",
51258
- packages: null
51259
- }, {
51260
- name: "BOWERY FARMING",
51261
- packages: null
51262
- }, {
51263
- name: "BOWMAN ANDROS",
51264
- packages: null
51265
- }, {
51266
- name: "BOYLAN BOTTLING CO INC",
51267
- packages: null
51268
- }, {
51269
- name: "BRADSHAW HOME",
51270
- packages: null
51271
- }, {
51272
- name: "BRAGG LIVE FOOD PRODS INC",
51273
- packages: null
51274
- }, {
51275
- name: "BRASWELL FOODS",
51276
- packages: null
51277
- }, {
51278
- name: "BREW DR",
51279
- packages: null
51280
- }, {
51281
- name: "BRIDGFORD FOODS CORP",
51282
- packages: null
51283
- }, {
51284
- name: "BRIGHT FARMS INC",
51285
- packages: null
51286
- }, {
51287
- name: "BRITVIC WORLDWIDE BRANDS LTD",
51288
- packages: null
51289
- }, {
51290
- name: "BROWNE DRUG COMPANY",
51291
- packages: null
51292
- }, {
51293
- name: "BROWNIE BRITTLE",
51294
- packages: null
51295
- }, {
51296
- name: "BRU BOTTLING INC",
51297
- packages: null
51298
- }, {
51299
- name: "BRYNWOOD PARTNERS",
51300
- packages: null
51301
- }, {
51302
- name: "BS GRILLIN COMPANY",
51303
- packages: null
51304
- }, {
51305
- name: "BUBBAS SWEET NECTAR",
51306
- packages: null
51307
- }, {
51308
- name: "BUDDY FRUITS",
51309
- packages: null
51310
- }, {
51311
- name: "BUMBLE BEE SEAFOOD CO.",
51312
- packages: null
51313
- }, {
51314
- name: "BUONA FOODS INC",
51315
- packages: null
51316
- }, {
51317
- name: "BUSH BROTHERS & CO",
51318
- packages: null
51319
- }, {
51320
- name: "BUTLER HOME PRODUCTS",
51321
- packages: null
51322
- }, {
51323
- name: "BUTTERBALL",
51324
- packages: null
51325
- }, {
51326
- name: "BUTTERFLY EQUITY",
51327
- packages: null
51328
- }, {
51329
- name: "CA FORTUNE",
51330
- packages: null
51331
- }, {
51332
- name: "CA WALNUT COUNCIL",
51333
- packages: null
51334
- }, {
51335
- name: "CAB ENTERPRISES",
51336
- packages: null
51337
- }, {
51338
- name: "CABOT CREAMERY INC",
51339
- packages: null
51340
- }, {
51341
- name: "CACIQUE FOODS LLC",
51342
- packages: null
51343
- }, {
51344
- name: "CALABRO CHEESE CORP",
51345
- packages: null
51346
- }, {
51347
- name: "CALBEE NORTH AMERICA LLC",
51348
- packages: null
51349
- }, {
51350
- name: "CALICO BRANDS INC",
51351
- packages: null
51352
- }, {
51353
- name: "CALIFIA FARMS LLC",
51354
- packages: null
51355
- }, {
51356
- name: "CALIFORNIA GRAPE COMMISSION",
51357
- packages: null
51358
- }, {
51359
- name: "CALIFORNIA OLIVE RANCH INC",
51360
- packages: null
51361
- }, {
51362
- name: "CALIFORNIA TABLE GRAPE COMMISSION",
51363
- packages: null
51364
- }, {
51365
- name: "CALISE SONS BAKERY INC",
51366
- packages: null
51367
- }, {
51368
- name: "CAMELLIA",
51369
- packages: null
51370
- }, {
51371
- name: "CAMERONS COFFEE",
51372
- packages: null
51373
- }, {
51374
- name: "CAMPBELL SOUP CO",
51375
- packages: null
51376
- }, {
51377
- name: "CAPE COD CAFE",
51378
- packages: null
51379
- }, {
51380
- name: "CAPE COD SELECT",
51381
- packages: null
51382
- }, {
51383
- name: "CAPITAL CITY PRODUCE",
51384
- packages: null
51385
- }, {
51386
- name: "CARBONE FINE FOOD LLC",
51387
- packages: null
51388
- }, {
51389
- name: "CARGILL INC",
51390
- packages: null
51391
- }, {
51392
- name: "CARL BUDDIG & CO",
51393
- packages: null
51394
- }, {
51395
- name: "CARLYLE GROUP LP",
51396
- packages: null
51397
- }, {
51398
- name: "CARMICHAELS HONEY LLC",
51399
- packages: null
51400
- }, {
51401
- name: "CAROLINA BREWERY",
51402
- packages: null
51403
- }, {
51404
- name: "CAROLINA NUT COMPANY",
51405
- packages: null
51406
- }, {
51407
- name: "CARTERS",
51408
- packages: null
51409
- }, {
51410
- name: "CASA VISCO",
51411
- packages: null
51412
- }, {
51413
- name: "CASARO",
51414
- packages: null
51415
- }, {
51416
- name: "CASCADIAN",
51417
- packages: null
51418
- }, {
51419
- name: "CASPERS ICE CREAM CO INC",
51420
- packages: null
51421
- }, {
51422
- name: "CATALINA SNACKS INC",
51423
- packages: null
51424
- }, {
51425
- name: "CAULIPOWER",
51426
- packages: null
51427
- }, {
51428
- name: "CEC ENTERTAINMENT INC",
51429
- packages: null
51430
- }, {
51431
- name: "CEDARS MEDITERRANEAN FOODS INC",
51432
- packages: null
51433
- }, {
51434
- name: "CELSIUS HOLDINGS",
51435
- packages: null
51436
- }, {
51437
- name: "CENTRAL GARDEN & PET",
51438
- packages: null
51439
- }, {
51440
- name: "CENTURY SNACKS LLC",
51441
- packages: null
51442
- }, {
51443
- name: "CERELIA BAKERY USA",
51444
- packages: null
51445
- }, {
51446
- name: "CEVES BEVERAGES",
51447
- packages: null
51448
- }, {
51449
- name: "CF SAUER COMPANY",
51450
- packages: null
51451
- }, {
51452
- name: "CHALLENGE DAIRY PRODS INC",
51453
- packages: null
51454
- }, {
51455
- name: "CHAMELEON COLD BREW LLC",
51456
- packages: null
51457
- }, {
51458
- name: "CHARLES & ALICE INC",
51459
- packages: null
51460
- }, {
51461
- name: "CHARLESTON BVRG CO LLC",
51462
- packages: null
51463
- }, {
51464
- name: "CHAROEN POKPHAND",
51465
- packages: null
51466
- }, {
51467
- name: "CHATTEM",
51468
- packages: null
51469
- }, {
51470
- name: "CHEDDIES",
51471
- packages: null
51472
- }, {
51473
- name: "CHEFLER FOODS",
51474
- packages: null
51475
- }, {
51476
- name: "CHELSEA MILLING CO",
51477
- packages: null
51478
- }, {
51479
- name: "CHERIBUNDI INC",
51480
- packages: null
51481
- }, {
51482
- name: "CHICKEN OF THE SEA",
51483
- packages: null
51484
- }, {
51485
- name: "CHILEAN CHERRIES",
51486
- packages: null
51487
- }, {
51488
- name: "CHIQUITA BRANDS LLC",
51489
- packages: null
51490
- }, {
51491
- name: "CHO AMERICA",
51492
- packages: null
51493
- }, {
51494
- name: "CHOBANI INC",
51495
- packages: null
51496
- }, {
51497
- name: "CHOCOLAT FREY AG",
51498
- packages: null
51499
- }, {
51500
- name: "CHOICE CANNING CO",
51501
- packages: null
51502
- }, {
51503
- name: "CHOLULA BRANDS",
51504
- packages: null
51505
- }, {
51506
- name: "CHURCH & DWIGHT CO INC",
51507
- packages: null
51508
- }, {
51509
- name: "CINCINNATI SEAFOOD IMP",
51510
- packages: null
51511
- }, {
51512
- name: "CITRUS WORLD INC",
51513
- packages: null
51514
- }, {
51515
- name: "CJ CHEILJEDANG CORP",
51516
- packages: null
51517
- }, {
51518
- name: "CJ FOODS INC",
51519
- packages: null
51520
- }, {
51521
- name: "CLASSIC COOKING INC",
51522
- packages: null
51523
- }, {
51524
- name: "CLAVEL CORP",
51525
- packages: null
51526
- }, {
51527
- name: "CLEAN CAUSE",
51528
- packages: null
51529
- }, {
51530
- name: "CLEARLY CANADIAN BVRG CORP",
51531
- packages: null
51532
- }, {
51533
- name: "CLEMENS FOOD GRP",
51534
- packages: null
51535
- }, {
51536
- name: "CLEVELAND KITCHEN",
51537
- packages: null
51538
- }, {
51539
- name: "CLIF BAR & CO",
51540
- packages: null
51541
- }, {
51542
- name: "CLOROX CO",
51543
- packages: null
51544
- }, {
51545
- name: "COBRAM ESTATE PTY LTD",
51546
- packages: null
51547
- }, {
51548
- name: "COCA COLA CO",
51549
- packages: null
51550
- }, {
51551
- name: "COLAVITA USA",
51552
- packages: null
51553
- }, {
51554
- name: "COLGATE PALMOLIVE CO",
51555
- packages: null
51556
- }, {
51557
- name: "COMBE INC",
51558
- packages: null
51559
- }, {
51560
- name: "COMMUNITY COFFEE CO INC",
51561
- packages: null
51562
- }, {
51563
- name: "COMPLETELY FRESH FOODS",
51564
- packages: null
51565
- }, {
51566
- name: "CONAGRA BRANDS",
51567
- packages: null
51568
- }, {
51569
- name: "CONAIR CORP",
51570
- packages: null
51571
- }, {
51572
- name: "CONCORD PREMIUM MEATS",
51573
- packages: null
51574
- }, {
51575
- name: "CONGO BRANDS",
51576
- packages: null
51577
- }, {
51578
- name: "CONSERVE ITALIA",
51579
- packages: null
51580
- }, {
51581
- name: "CONSORZIO CASALASCO DEL POMODORO",
51582
- packages: null
51583
- }, {
51584
- name: "CONSTELLATION BRANDS INC",
51585
- packages: null
51586
- }, {
51587
- name: "CONTINENTAL MILLS",
51588
- packages: null
51589
- }, {
51590
- name: "COOPER STREET COOKIES LLC",
51591
- packages: null
51592
- }, {
51593
- name: "COPPER MOON COFFEE LLC",
51594
- packages: null
51595
- }, {
51596
- name: "CORE NUTRITION LLC",
51597
- packages: null
51598
- }, {
51599
- name: "CORMAN USA INC",
51600
- packages: null
51601
- }, {
51602
- name: "COTY",
51603
- packages: null
51604
- }, {
51605
- name: "CR BRANDS INC",
51606
- packages: null
51607
- }, {
51608
- name: "CRAVE BETTER FOODS LLC",
51609
- packages: null
51610
- }, {
51611
- name: "CREATIVE SNACKS",
51612
- packages: null
51613
- }, {
51614
- name: "CRISPY GREEN INC",
51615
- packages: null
51616
- }, {
51617
- name: "CROFTERS FOOD LTD",
51618
- packages: null
51619
- }, {
51620
- name: "CROSSINGWELL CONSUMER HEALTH",
51621
- packages: null
51622
- }, {
51623
- name: "CRYSTAL FARMS",
51624
- packages: null
51625
- }, {
51626
- name: "CSM BAKERY PRODS NORTH AMERICA",
51627
- packages: null
51628
- }, {
51629
- name: "CUMBERLAND PACKING CORP",
51630
- packages: null
51631
- }, {
51632
- name: "CURATION FOODS INC",
51633
- packages: null
51634
- }, {
51635
- name: "CUSTOM BAKEHOUSE",
51636
- packages: null
51637
- }, {
51638
- name: "CVC CAPITAL PARTNERS",
51639
- packages: null
51640
- }, {
51641
- name: "DAILY HARVEST",
51642
- packages: null
51643
- }, {
51644
- name: "DAIRY FARMERS OF AMERICA",
51645
- packages: null
51646
- }, {
51647
- name: "DAISY BRAND",
51648
- packages: null
51649
- }, {
51650
- name: "DAIYA FOODS INC",
51651
- packages: null
51652
- }, {
51653
- name: "DAKOTA GROWERS PASTA COMPANY",
51654
- packages: null
51655
- }, {
51656
- name: "DAN OS SEASONING",
51657
- packages: null
51658
- }, {
51659
- name: "DANSONS INC",
51660
- packages: null
51661
- }, {
51662
- name: "DAYKA & HACKETT LLC",
51663
- packages: null
51664
- }, {
51665
- name: "DD & B SOLUTIONS LLC",
51666
- packages: null
51667
- }, {
51668
- name: "DE NIGRIS",
51669
- packages: null
51670
- }, {
51671
- name: "DEAN FOODS",
51672
- packages: null
51673
- }, {
51674
- name: "DECAS CRANBERRY PRODS INC",
51675
- packages: null
51676
- }, {
51677
- name: "DECAS FARMS",
51678
- packages: null
51679
- }, {
51680
- name: "DEEP FOODS INC",
51681
- packages: null
51682
- }, {
51683
- name: "DEL GROSSO FOODS INC",
51684
- packages: null
51685
- }, {
51686
- name: "DEL MONTE FRESH PRODUCE INC",
51687
- packages: null
51688
- }, {
51689
- name: "DEL REAL FOODS",
51690
- packages: null
51691
- }, {
51692
- name: "DEL SOL FOOD CO",
51693
- packages: null
51694
- }, {
51695
- name: "DELIZZA PATISSERIE NV",
51696
- packages: null
51697
- }, {
51698
- name: "DEMAKES ENT INC",
51699
- packages: null
51700
- }, {
51701
- name: "DEMETS",
51702
- packages: null
51703
- }, {
51704
- name: "DEOLEO",
51705
- packages: null
51706
- }, {
51707
- name: "DEWAFLEBAKKERS",
51708
- packages: null
51709
- }, {
51710
- name: "DEWEYS BAKERY",
51711
- packages: null
51712
- }, {
51713
- name: "DIABOLO BEVERAGES",
51714
- packages: null
51715
- }, {
51716
- name: "DIAMOND FOODS LLC",
51717
- packages: null
51718
- }, {
51719
- name: "DIANAS BANANAS INC",
51720
- packages: null
51721
- }, {
51722
- name: "DIANES KITCHEN",
51723
- packages: null
51724
- }, {
51725
- name: "DIEFFENBACHS POTATO CHIPS INC",
51726
- packages: null
51727
- }, {
51728
- name: "DIETZ & WATSON INC",
51729
- packages: null
51730
- }, {
51731
- name: "DOLE FOOD CO INC",
51732
- packages: null
51733
- }, {
51734
- name: "DOLE INTL HOLDINGS INC",
51735
- packages: null
51736
- }, {
51737
- name: "DONGWON IND",
51738
- packages: null
51739
- }, {
51740
- name: "DOT FOODS",
51741
- packages: null
51742
- }, {
51743
- name: "DR BRONNERS MAGIC SOAPS",
51744
- packages: null
51745
- }, {
51746
- name: "DR HAROLD KATZ LLC",
51747
- packages: null
51748
- }, {
51749
- name: "DR OETKER USA",
51750
- packages: null
51751
- }, {
51752
- name: "DR PRAEGERS SENSIBLE FOODS",
51753
- packages: null
51754
- }, {
51755
- name: "DRIP DROP INC",
51756
- packages: null
51757
- }, {
51758
- name: "DRISCOLL STRAWBERRY ASSN INC",
51759
- packages: null
51760
- }, {
51761
- name: "DUBRETON INC",
51762
- packages: null
51763
- }, {
51764
- name: "DUDA FARM FRESH FOODS",
51765
- packages: null
51766
- }, {
51767
- name: "DUDE PRODS",
51768
- packages: null
51769
- }, {
51770
- name: "DUKE FOODS",
51771
- packages: null
51772
- }, {
51773
- name: "DURACELL",
51774
- packages: null
51775
- }, {
51776
- name: "DURAFLAME INC",
51777
- packages: null
51778
- }, {
51779
- name: "DYLA LLC",
51780
- packages: null
51781
- }, {
51782
- name: "EAGLE BRANDS",
51783
- packages: null
51784
- }, {
51785
- name: "EAGLE FAMILY FOODS INC",
51786
- packages: null
51787
- }, {
51788
- name: "EARTHLY TREATS",
51789
- packages: null
51790
- }, {
51791
- name: "EARTHS OWN FOOD",
51792
- packages: null
51793
- }, {
51794
- name: "EAST COAST FRESH CUTS",
51795
- packages: null
51796
- }, {
51797
- name: "EAST WEST TEA CO LLC",
51798
- packages: null
51799
- }, {
51800
- name: "EAT THE CHANGE INC",
51801
- packages: null
51802
- }, {
51803
- name: "EBRO FOODS INC",
51804
- packages: null
51805
- }, {
51806
- name: "ECO SOUL",
51807
- packages: null
51808
- }, {
51809
- name: "EDGEWELL PERSONAL CARE",
51810
- packages: null
51811
- }, {
51812
- name: "EGGLANDS BEST LLC",
51813
- packages: null
51814
- }, {
51815
- name: "EGGLIFE FOODS",
51816
- packages: null
51817
- }, {
51818
- name: "EGGLIFE LLC",
51819
- packages: null
51820
- }, {
51821
- name: "EKATERRA",
51822
- packages: null
51823
- }, {
51824
- name: "EL TERRIFICO TAMALE",
51825
- packages: null
51826
- }, {
51827
- name: "ELEEO BRANDS LLC",
51828
- packages: null
51829
- }, {
51830
- name: "ELIDA",
51831
- packages: null
51832
- }, {
51833
- name: "EMERGY INC",
51834
- packages: null
51835
- }, {
51836
- name: "EMERSON HEALTHCARE",
51837
- packages: null
51838
- }, {
51839
- name: "EMPIRE",
51840
- packages: null
51841
- }, {
51842
- name: "EMPRESAS TAJIN",
51843
- packages: null
51844
- }, {
51845
- name: "ENDANGERED SPECIES CHOCOLATE LLC",
51846
- packages: null
51847
- }, {
51848
- name: "ENERGIZER HOLDINGS INC",
51849
- packages: null
51850
- }, {
51851
- name: "ENJOY LIFE",
51852
- packages: null
51853
- }, {
51854
- name: "ENVIROCON TECH INC",
51855
- packages: null
51856
- }, {
51857
- name: "EPICUREAN",
51858
- packages: null
51859
- }, {
51860
- name: "EQT",
51861
- packages: null
51862
- }, {
51863
- name: "ETERNAL BVRG",
51864
- packages: null
51865
- }, {
51866
- name: "EVANS FOOD GROUP LTD",
51867
- packages: null
51868
- }, {
51869
- name: "EVERGREEN ENT INC",
51870
- packages: null
51871
- }, {
51872
- name: "EVIVE",
51873
- packages: null
51874
- }, {
51875
- name: "EZAKI GLICO USA - POCKY",
51876
- packages: null
51877
- }],
50854
+ itemAndPackage = [],
51878
50855
  setItemAndPackage,
51879
50856
  linkColor = "#212121",
51880
50857
  backgroundColor = 'white',
51881
50858
  onDelete = () => {}
51882
50859
  } = _ref;
51883
- const [screen, setScreen] = React$1.useState(undefined); // 'list' | 'subitem'
50860
+ const [screen, setScreen] = React$1.useState("initial");
51884
50861
  const [selectedVendor, setSelectedVendor] = React$1.useState(null);
51885
50862
  const [selectedPackage, setSelectedPackage] = React$1.useState(null);
51886
- const handleShowVendorSelection = () => setScreen("list");
51887
- const handleBackToList = () => setScreen("subitem");
51888
50863
  const handleVendorClick = vendor => {
50864
+ // console.log("Vendor clicked:", vendor);
51889
50865
  setSelectedVendor(vendor);
51890
50866
  setScreen("subitem");
51891
50867
  };
@@ -51915,9 +50891,6 @@ const ItemManagerPanel = _ref => {
51915
50891
  const handleBackToDefault = () => {
51916
50892
  setScreen("");
51917
50893
  };
51918
- const handleSubitemDetail = () => {
51919
- setScreen("subitemdetail");
51920
- };
51921
50894
  if (screen === "subitem") {
51922
50895
  return /*#__PURE__*/React__default["default"].createElement(Card, {
51923
50896
  width: width,
@@ -51928,8 +50901,9 @@ const ItemManagerPanel = _ref => {
51928
50901
  setSelectedPackage: setSelectedPackage,
51929
50902
  vendor: selectedVendor,
51930
50903
  itemAndPackage: itemAndPackage,
51931
- onBack: handleBackToList,
51932
- handleSubitemDetail: handleSubitemDetail
50904
+ onBack: () => setScreen("initial"),
50905
+ onTrashClick: () => onDeleteInner(selectedVendor),
50906
+ handleSubitemDetail: () => setScreen("subitemdetail")
51933
50907
  }));
51934
50908
  }
51935
50909
  if (screen === "confirmation") {
@@ -51969,7 +50943,7 @@ const ItemManagerPanel = _ref => {
51969
50943
  vendor: selectedVendor,
51970
50944
  itemAndPackage: itemAndPackage,
51971
50945
  addNewPackage: addNewPackage,
51972
- onBack: handleBackToList
50946
+ onBack: () => setScreen("subitem")
51973
50947
  }));
51974
50948
  }
51975
50949
  if (screen === "list") {
@@ -51983,47 +50957,48 @@ const ItemManagerPanel = _ref => {
51983
50957
  onVendorClick: handleVendorClick
51984
50958
  }));
51985
50959
  }
51986
-
51987
- // Default panel
51988
- return /*#__PURE__*/React__default["default"].createElement(Card, {
51989
- width: width,
51990
- height: height,
51991
- backgroundColor: backgroundColor
51992
- }, /*#__PURE__*/React__default["default"].createElement(Container$1, null, /*#__PURE__*/React__default["default"].createElement(TitleContainer, null, /*#__PURE__*/React__default["default"].createElement(SectionTitle$1, null, "Vendors"), /*#__PURE__*/React__default["default"].createElement(SubtitleContainer, null, /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).length.toString(), " ", "Vendors", " "), /*#__PURE__*/React__default["default"].createElement("span", null, "\xB7"), /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).reduce((acc, item) => acc + (item.packages ? item.packages.length : 0), 0), " ", "Packages"))), editMode && /*#__PURE__*/React__default["default"].createElement(ButtonContainer$1, null, /*#__PURE__*/React__default["default"].createElement(Button$1, {
51993
- leftIcon: "Fly",
51994
- onClick: () => setScreen("confirmation"),
51995
- rightIcon: "none",
51996
- size: "small",
51997
- text: "Send Forms",
51998
- type: "secondary",
51999
- borderRadius: "8px"
52000
- }), /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).length.toString(), " ", "Vendors", " "))), /*#__PURE__*/React__default["default"].createElement(AddButtonContainer$1, null, /*#__PURE__*/React__default["default"].createElement(LinkButton, {
52001
- leftIcon: "Plus",
52002
- onClick: handleShowVendorSelection,
52003
- rightIcon: "none",
52004
- size: "small",
52005
- text: "First Vendor",
52006
- type: "primary",
52007
- textColor: linkColor
52008
- })), /*#__PURE__*/React__default["default"].createElement(VendorList$2, null, itemAndPackage.filter(item => item.packages !== null).map((item, idx) => /*#__PURE__*/React__default["default"].createElement(VendorItem$1, {
52009
- onClick: e => {
52010
- handleVendorClick(item);
52011
- },
52012
- key: idx
52013
- }, /*#__PURE__*/React__default["default"].createElement(DotContainer, null, item.packages.length === 0 && /*#__PURE__*/React__default["default"].createElement(RedDot, null)), /*#__PURE__*/React__default["default"].createElement(LineContainer, null, /*#__PURE__*/React__default["default"].createElement(VendorNameAndPackagesContainer$1, null, /*#__PURE__*/React__default["default"].createElement(VendorName$2, null, item.name), item.packages.length === 0 && /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, "No Packages"), item.packages.length > 0 && /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, item.packages.length, " Packages Sent")), /*#__PURE__*/React__default["default"].createElement(VendorChevron$1, null, /*#__PURE__*/React__default["default"].createElement(ArrowRightFullIcon, null))), /*#__PURE__*/React__default["default"].createElement(Trash$1, {
52014
- className: "trash-icon",
52015
- onClick: e => {
52016
- onDelete(item);
52017
- }
52018
- }, /*#__PURE__*/React__default["default"].createElement("svg", {
52019
- width: "14",
52020
- height: "18",
52021
- viewBox: "0 0 14 18",
52022
- fill: "none",
52023
- xmlns: "http://www.w3.org/2000/svg"
52024
- }, /*#__PURE__*/React__default["default"].createElement("path", {
52025
- d: "M1 16C1 17.1 1.9 18 3 18H11C12.1 18 13 17.1 13 16V4H1V16ZM14 1H10.5L9.5 0H4.5L3.5 1H0V3H14V1Z"
52026
- })))))));
50960
+ if (screen === "initial") {
50961
+ return /*#__PURE__*/React__default["default"].createElement(Card, {
50962
+ width: width,
50963
+ height: height,
50964
+ backgroundColor: backgroundColor
50965
+ }, /*#__PURE__*/React__default["default"].createElement(Container$1, null, /*#__PURE__*/React__default["default"].createElement(TitleContainer, null, /*#__PURE__*/React__default["default"].createElement(SectionTitle$1, null, "Vendors"), /*#__PURE__*/React__default["default"].createElement(SubtitleContainer, null, /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).length.toString(), " ", "Vendors", " "), /*#__PURE__*/React__default["default"].createElement("span", null, "\xB7"), /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).reduce((acc, item) => acc + (item.packages ? item.packages.length : 0), 0), " ", "Packages"))), editMode && /*#__PURE__*/React__default["default"].createElement(ButtonContainer$1, null, /*#__PURE__*/React__default["default"].createElement(Button$1, {
50966
+ leftIcon: "Fly",
50967
+ onClick: () => setScreen("confirmation"),
50968
+ rightIcon: "none",
50969
+ size: "small",
50970
+ text: "Send Forms",
50971
+ type: "secondary",
50972
+ borderRadius: "8px"
50973
+ }), /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, itemAndPackage.filter(item => item.packages !== null).length.toString(), " ", "Vendors", " "))), /*#__PURE__*/React__default["default"].createElement(AddButtonContainer$1, null, /*#__PURE__*/React__default["default"].createElement(LinkButton, {
50974
+ leftIcon: "Plus",
50975
+ onClick: () => setScreen("list"),
50976
+ rightIcon: "none",
50977
+ size: "small",
50978
+ text: "First Vendor",
50979
+ type: "primary",
50980
+ textColor: linkColor
50981
+ })), /*#__PURE__*/React__default["default"].createElement(VendorList$2, null, itemAndPackage.filter(item => item.packages !== null).map((item, idx) => /*#__PURE__*/React__default["default"].createElement(VendorItem$1, {
50982
+ key: idx
50983
+ }, /*#__PURE__*/React__default["default"].createElement(DotContainer, null, item.packages.length === 0 && /*#__PURE__*/React__default["default"].createElement(RedDot, null)), /*#__PURE__*/React__default["default"].createElement(LineContainer, {
50984
+ onClick: e => {
50985
+ handleVendorClick(item);
50986
+ }
50987
+ }, /*#__PURE__*/React__default["default"].createElement(VendorNameAndPackagesContainer$1, null, /*#__PURE__*/React__default["default"].createElement(VendorName$2, null, item.name), item.packages.length === 0 && /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, "No Packages"), item.packages.length > 0 && /*#__PURE__*/React__default["default"].createElement(Subtitle$1, null, item.packages.length, " Packages Sent")), /*#__PURE__*/React__default["default"].createElement(VendorChevron$1, null, /*#__PURE__*/React__default["default"].createElement(ArrowRightFullIcon, null))), /*#__PURE__*/React__default["default"].createElement(Trash$1, {
50988
+ className: "trash-icon",
50989
+ onClick: item => {
50990
+ onDelete(item);
50991
+ }
50992
+ }, /*#__PURE__*/React__default["default"].createElement("svg", {
50993
+ width: "14",
50994
+ height: "18",
50995
+ viewBox: "0 0 14 18",
50996
+ fill: "none",
50997
+ xmlns: "http://www.w3.org/2000/svg"
50998
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
50999
+ d: "M1 16C1 17.1 1.9 18 3 18H11C12.1 18 13 17.1 13 16V4H1V16ZM14 1H10.5L9.5 0H4.5L3.5 1H0V3H14V1Z"
51000
+ })))))));
51001
+ }
52027
51002
  };
52028
51003
 
52029
51004
  const Overlay = styled__default["default"].div`
@@ -52108,13 +51083,13 @@ const scrollableStyles = `
52108
51083
  const DropdownContainer = styled__default["default"].div`
52109
51084
  position: relative;
52110
51085
  width: ${props => props.width || '100%'};
52111
- min-width: 320px;
51086
+ /* min-width: 320px; */
52112
51087
  max-width: 600px;
52113
51088
  font-family: "Poppins", sans-serif;
52114
51089
  `;
52115
51090
  const DropdownButton = styled__default["default"].button`
52116
51091
  width: 100%;
52117
- min-width: 320px;
51092
+ /* min-width: 320px; */
52118
51093
  max-width: 600px;
52119
51094
  background: #fff;
52120
51095
  border: 1px solid #8B8989;
@@ -52140,7 +51115,7 @@ const DropdownList = styled__default["default"].ul`
52140
51115
  margin: 0;
52141
51116
  padding: 8px 0;
52142
51117
  width: ${props => props.width || '100%'};
52143
- min-width: 320px;
51118
+ /* min-width: 320px; */
52144
51119
  max-width: 600px;
52145
51120
  max-height: ${props => props.dropdownMaxHeight || '400px'};
52146
51121
  overflow-y: auto;
@@ -52205,7 +51180,7 @@ styled__default["default"].div`
52205
51180
  box-shadow: 0 2px 12px rgba(0,0,0,0.12);
52206
51181
  padding: 8px 12px;
52207
51182
  font-size: 13px;
52208
- max-width: 320px;
51183
+ /* max-width: 320px; */
52209
51184
  white-space: pre-line;
52210
51185
  `;
52211
51186
 
@@ -52246,17 +51221,17 @@ const FieldRow = styled__default["default"].div`
52246
51221
  border-bottom: 1px solid #D9D9D9;
52247
51222
  `;
52248
51223
  const Label = styled__default["default"].label`
52249
- font-size: 15px;
52250
- color: #222;
52251
- min-width: 38px;
51224
+ font-size: 14px;
51225
+ color: #212121;
52252
51226
  `;
52253
51227
  const Input = styled__default["default"].input`
52254
- width: 60px;
51228
+ width: 64px;
52255
51229
  padding: 7px 8px;
52256
51230
  border-radius: 7px;
52257
- border: 1.5px solid #ccc;
52258
- font-size: 16px;
51231
+ border: 1px solid #ccc;
51232
+ font-size: 14px;
52259
51233
  outline: none;
51234
+ box-sizing: border-box;
52260
51235
  background-color: #F7F8FA;
52261
51236
  transition: border 0.18s;
52262
51237
  ${props => props.error && `
@@ -52315,7 +51290,10 @@ const OverlayTemplateDialog = ({
52315
51290
  const [touched, setTouched] = React$1.useState(() => params.map(() => false));
52316
51291
  if (!open) return null;
52317
51292
  const errors = fields.map((val, idx) => touched[idx] ? validateField(val, params[idx]) : null);
52318
- const isValid = errors.every(e => !e);
51293
+
51294
+ // Check if all fields are filled and valid
51295
+ const allFieldsFilled = fields.every(field => field !== '' && field !== null && field !== undefined);
51296
+ const isValid = allFieldsFilled && errors.every(e => !e);
52319
51297
  const handleChange = (idx, val) => {
52320
51298
  setFields(prev => prev.map((f, i) => i === idx ? val : f));
52321
51299
  };
@@ -52339,10 +51317,16 @@ const OverlayTemplateDialog = ({
52339
51317
  if (isValid) onApply(fields);
52340
51318
  }
52341
51319
  }, /*#__PURE__*/React__default["default"].createElement(FieldRow, null, params.map((param, idx) => /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
52342
- key: param.label
51320
+ key: `${param.label}-${idx}`
52343
51321
  }, /*#__PURE__*/React__default["default"].createElement(Label, {
52344
51322
  htmlFor: `param-${idx}`
52345
- }, param.label), /*#__PURE__*/React__default["default"].createElement(Input, {
51323
+ }, param.label), /*#__PURE__*/React__default["default"].createElement("div", {
51324
+ style: {
51325
+ display: 'flex',
51326
+ alignItems: 'center',
51327
+ gap: '4px'
51328
+ }
51329
+ }, /*#__PURE__*/React__default["default"].createElement(Input, {
52346
51330
  id: `param-${idx}`,
52347
51331
  type: "number",
52348
51332
  value: fields[idx],
@@ -52351,6 +51335,20 @@ const OverlayTemplateDialog = ({
52351
51335
  onBlur: () => handleBlur(idx),
52352
51336
  min: 0,
52353
51337
  max: param.type === 'percent' ? 100 : undefined
51338
+ }), param.suffix && /*#__PURE__*/React__default["default"].createElement("span", {
51339
+ style: {
51340
+ color: '#212121',
51341
+ fontSize: '14px',
51342
+ whiteSpace: 'nowrap'
51343
+ }
51344
+ }, param.suffix)), errors[idx] && /*#__PURE__*/React__default["default"].createElement("span", {
51345
+ style: {
51346
+ color: 'red',
51347
+ fontSize: '12px',
51348
+ gridColumn: '1 / -1',
51349
+ marginTop: '-8px',
51350
+ marginBottom: '8px'
51351
+ }
52354
51352
  })))), /*#__PURE__*/React__default["default"].createElement(Actions, null, /*#__PURE__*/React__default["default"].createElement(Button$1, {
52355
51353
  text: "Cancel",
52356
51354
  borderRadius: "8px",
@@ -52365,15 +51363,13 @@ const OverlayTemplateDialog = ({
52365
51363
  }), /*#__PURE__*/React__default["default"].createElement(Button$1, {
52366
51364
  text: "Apply",
52367
51365
  borderRadius: "8px",
52368
- backgroundColor: isValid ? buttonColor : buttonColor,
51366
+ backgroundColor: buttonColor,
52369
51367
  textColor: "#fff",
52370
- borderColor: isValid ? buttonColor : buttonColor,
51368
+ borderColor: buttonColor,
52371
51369
  hoverTextColor: "#fff",
52372
- hoverBackgroundColor: isValid ? buttonHoverColor : buttonHoverColor,
52373
- hoverBorderColor: isValid ? buttonHoverColor : buttonHoverColor,
51370
+ hoverBackgroundColor: buttonHoverColor,
51371
+ hoverBorderColor: buttonHoverColor,
52374
51372
  disabledTextColor: "#fff",
52375
- disabledBackgroundColor: buttonColor,
52376
- disabledBorderColor: buttonColor,
52377
51373
  fontSize: "16px",
52378
51374
  padding: "8px 22px",
52379
51375
  disabled: !isValid,
@@ -52389,7 +51385,8 @@ OverlayTemplateDialog.propTypes = {
52389
51385
  template: PropTypes.object,
52390
51386
  params: PropTypes.arrayOf(PropTypes.shape({
52391
51387
  label: PropTypes.string.isRequired,
52392
- type: PropTypes.oneOf(['number', 'percent']).isRequired
51388
+ type: PropTypes.oneOf(['number', 'percent']).isRequired,
51389
+ suffix: PropTypes.string
52393
51390
  })).isRequired,
52394
51391
  buttonColor: PropTypes.string,
52395
51392
  buttonHoverColor: PropTypes.string
@@ -52415,6 +51412,7 @@ const OverlayDropdown = _ref => {
52415
51412
  const [hoveredText, setHoveredText] = React$1.useState(null);
52416
51413
  const [templateDialog, setTemplateDialog] = React$1.useState(null);
52417
51414
  const [dropdownPosition, setDropdownPosition] = React$1.useState('below');
51415
+ const [lastDefinedGroup, setLastDefinedGroup] = React$1.useState(null);
52418
51416
  const buttonRef = React$1.useRef(null);
52419
51417
  const dropdownRef = React$1.useRef(null);
52420
51418
  const containerRef = React$1.useRef(null);
@@ -52457,9 +51455,19 @@ const OverlayDropdown = _ref => {
52457
51455
  }
52458
51456
  }, [open, dropdownMaxHeight]);
52459
51457
 
51458
+ // Combine original data with "Last defined by you" group
51459
+ const getDataWithLastDefined = () => {
51460
+ const combinedData = [...data];
51461
+ if (lastDefinedGroup) {
51462
+ combinedData.unshift(lastDefinedGroup);
51463
+ }
51464
+ return combinedData;
51465
+ };
51466
+
52460
51467
  // Find selected item across all groups
52461
51468
  const findSelectedItem = () => {
52462
- for (const group of data) {
51469
+ const allData = getDataWithLastDefined();
51470
+ for (const group of allData) {
52463
51471
  if (group.items) {
52464
51472
  const found = group.items.find(item => item.value === value);
52465
51473
  if (found) return found;
@@ -52475,33 +51483,112 @@ const OverlayDropdown = _ref => {
52475
51483
  if (text.length > 66) return text.slice(0, 66) + '...';
52476
51484
  return text;
52477
51485
  };
52478
-
52479
- // Template parameters for templateType === 2
52480
51486
  const getTemplateParams = label => {
51487
+ if (!label) return [];
51488
+
51489
+ // Pattern 1: "Buy X & Get Y% Off" - X and Y must be standalone capital letters
51490
+ // Using word boundaries for better browser compatibility
51491
+ const buyGetOffPattern = /^(.*?)\bX\b(.*?)\bY\b(.*)$/;
51492
+ const buyGetOffMatch = label.match(buyGetOffPattern);
51493
+ if (buyGetOffMatch) {
51494
+ const [, beforeX, betweenXY, afterY] = buyGetOffMatch;
51495
+ return [{
51496
+ label: beforeX.trim(),
51497
+ // "Buy "
51498
+ type: 'number',
51499
+ suffix: ''
51500
+ }, {
51501
+ label: betweenXY.trim(),
51502
+ // " & Get "
51503
+ type: 'number',
51504
+ suffix: afterY.trim() // " % Off"
51505
+ }];
51506
+ }
51507
+
51508
+ // Pattern 2: Single variable patterns - X or Y must be standalone capital letters
51509
+ const singleVariablePattern = /^(.*?)\b([XY])\b(.*)$/;
51510
+ const singleVariableMatch = label.match(singleVariablePattern);
51511
+ if (singleVariableMatch) {
51512
+ const [, beforeVar, variable, afterVar] = singleVariableMatch;
51513
+ return [{
51514
+ label: beforeVar.trim(),
51515
+ // "Buy "
51516
+ type: 'number',
51517
+ suffix: afterVar.trim() // " of item(s), Get Free Item"
51518
+ }];
51519
+ }
51520
+
51521
+ // Fallback: if no pattern matches, treat as single input
52481
51522
  return [{
52482
- label: 'Value 1',
52483
- type: 'number'
52484
- }, {
52485
- label: 'Value 2',
52486
- type: 'number'
51523
+ label: 'Value',
51524
+ type: 'number',
51525
+ suffix: ''
52487
51526
  }];
52488
51527
  };
51528
+ const generateFinalSentence = (template, values) => {
51529
+ let sentence = template.label;
51530
+
51531
+ // Pattern 1: "Buy X & Get Y% Off" - X and Y must be standalone capital letters
51532
+ const buyGetOffPattern = /^(.*?)\bX\b(.*?)\bY\b(.*)$/;
51533
+ const buyGetOffMatch = sentence.match(buyGetOffPattern);
51534
+ if (buyGetOffMatch && values.length >= 2) {
51535
+ const [, beforeX, betweenXY, afterY] = buyGetOffMatch;
51536
+ return beforeX + values[0] + betweenXY + values[1] + afterY;
51537
+ }
51538
+
51539
+ // Pattern 2: Single variable patterns - X or Y must be standalone capital letters
51540
+ const singleVariablePattern = /^(.*?)\b([XY])\b(.*)$/;
51541
+ const singleVariableMatch = sentence.match(singleVariablePattern);
51542
+ if (singleVariableMatch && values.length >= 1) {
51543
+ const [, beforeVar, variable, afterVar] = singleVariableMatch;
51544
+ return beforeVar + values[0] + afterVar;
51545
+ }
51546
+
51547
+ // Fallback
51548
+ return sentence;
51549
+ };
52489
51550
  const handleTemplateApply = fields => {
52490
51551
  if (templateDialog && onSelectClick) {
52491
- const result = {
51552
+ const finalSentence = generateFinalSentence(templateDialog.item, fields);
51553
+
51554
+ // Create new item for "Last defined by you" group
51555
+ const newItem = {
52492
51556
  ...templateDialog.item,
51557
+ label: finalSentence,
51558
+ value: `last_defined_${Date.now()}`,
51559
+ // Unique value
52493
51560
  overlayCode: templateDialog.group.overlayCode,
52494
51561
  overlayName: templateDialog.group.overlayName,
52495
51562
  templateType: templateDialog.group.templateType,
52496
51563
  appliedValues: fields
52497
51564
  };
51565
+
51566
+ // Update "Last defined by you" group - add to existing or create new
51567
+ if (lastDefinedGroup) {
51568
+ // Add to existing group
51569
+ setLastDefinedGroup({
51570
+ ...lastDefinedGroup,
51571
+ items: [newItem, ...lastDefinedGroup.items] // Add new item at the beginning
51572
+ });
51573
+ } else {
51574
+ // Create new group
51575
+ setLastDefinedGroup({
51576
+ overlayCode: 'last_defined',
51577
+ overlayName: 'Last defined by you',
51578
+ templateType: 1,
51579
+ items: [newItem]
51580
+ });
51581
+ }
52498
51582
  setTemplateDialog(null);
52499
- onSelectClick(result);
51583
+
51584
+ // Select the new item
51585
+ onSelectClick(newItem);
52500
51586
  }
52501
51587
  };
52502
51588
  const toggleDropdown = () => {
52503
51589
  setOpen(prev => !prev);
52504
51590
  };
51591
+ const dataToRender = getDataWithLastDefined();
52505
51592
  return /*#__PURE__*/React__default["default"].createElement(DropdownContainer, {
52506
51593
  width: width,
52507
51594
  ref: containerRef
@@ -52532,7 +51619,7 @@ const OverlayDropdown = _ref => {
52532
51619
  dropdownMaxHeight: dropdownMaxHeight,
52533
51620
  width: width,
52534
51621
  position: dropdownPosition
52535
- }, data.map((group, groupIndex) => group.items && group.items.length > 0 && /*#__PURE__*/React__default["default"].createElement("div", {
51622
+ }, dataToRender.map((group, groupIndex) => group.items && group.items.length > 0 && /*#__PURE__*/React__default["default"].createElement("div", {
52536
51623
  key: group.overlayCode
52537
51624
  }, /*#__PURE__*/React__default["default"].createElement(SectionTitle, null, group.overlayName), group.items.map(item => /*#__PURE__*/React__default["default"].createElement(DropdownItem, {
52538
51625
  key: item.value,