@popmenu/ordering-ui 0.156.1 → 0.158.0

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.
@@ -6,6 +6,7 @@ const useDishModifierCardStyles = makeStyles((theme) => ({
6
6
  flexDirection: 'column',
7
7
  padding: theme.spacing(2.5),
8
8
  color: `${theme.palette.grey[900]} !important`,
9
+ width: '100%',
9
10
  },
10
11
  card: {
11
12
  borderRadius: '8px',
@@ -91,9 +92,11 @@ const useCheckboxModifierFormStyles = makeStyles((theme) => ({
91
92
  const useLabelStyles = makeStyles((theme) => ({
92
93
  label: {
93
94
  margin: theme.spacing(0.5, 0),
95
+ minWidth: 0,
94
96
  },
95
97
  selectedLabel: {
96
98
  margin: theme.spacing(0.5, 0),
99
+ minWidth: 0,
97
100
  },
98
101
  disabled: {
99
102
  color: theme.palette.grey[500],
@@ -103,6 +106,10 @@ const useLabelStyles = makeStyles((theme) => ({
103
106
  },
104
107
  selectedSummary: {
105
108
  color: theme.palette.grey[700],
109
+ overflow: 'hidden',
110
+ overflowWrap: 'anywhere',
111
+ whiteSpace: 'normal',
112
+ wordBreak: 'break-word',
106
113
  },
107
114
  selectedSummaryInlineRow: {
108
115
  alignItems: 'center',
@@ -127,11 +134,16 @@ const useLabelStyles = makeStyles((theme) => ({
127
134
  fontWeight: theme.typography.fontWeightRegular,
128
135
  lineHeight: 1.2,
129
136
  overflow: 'hidden',
130
- textOverflow: 'ellipsis',
131
- whiteSpace: 'nowrap',
137
+ overflowWrap: 'anywhere',
138
+ whiteSpace: 'normal',
139
+ wordBreak: 'break-word',
140
+ },
141
+ disabledText: {
142
+ color: theme.palette.grey[500],
132
143
  },
133
144
  selectedSummaryIcon: {
134
145
  color: theme.palette.success.main,
146
+ flexShrink: 0,
135
147
  },
136
148
  }));
137
149
  const useOptionsStyles = makeStyles((theme) => ({
@@ -144,6 +156,7 @@ const useOptionsStyles = makeStyles((theme) => ({
144
156
  inlineOptions: {
145
157
  alignItems: 'center',
146
158
  display: 'inline-flex',
159
+ flexShrink: 0,
147
160
  justifyContent: 'center',
148
161
  height: 'auto',
149
162
  marginBottom: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"DishModifierCard.styles.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/DishModifierCard.styles.ts"],"sourcesContent":["import { makeStyles, Theme } from '@material-ui/core'\n\nexport const useDishModifierCardStyles = makeStyles<Theme>((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2.5),\n color: `${theme.palette.grey[900]} !important`,\n },\n card: {\n borderRadius: '8px',\n border: '1px solid var(--surfaces-card-stroke, #E0E0E0)',\n },\n error: {\n color: theme.palette.error.main,\n },\n helperText: {\n color: theme.palette.grey[700],\n },\n optionalStatusTag: {\n '& > div': {\n backgroundColor: theme.palette.grey[300],\n },\n },\n name: {\n fontSize: '1rem',\n fontWeight: 500,\n marginBottom: theme.spacing(2),\n },\n}))\n\nexport const useRadioModifierFormStyles = makeStyles<Theme>((theme) => ({\n radioGroup: {\n gap: theme.spacing(1.5),\n },\n label: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n radio: {\n fontSize: '1rem',\n padding: 'unset',\n marginRight: theme.spacing(-0.25),\n\n '&.Mui-checked': {\n color: theme.palette.info.main,\n },\n },\n hideRadio: {\n display: 'none',\n },\n root: {\n justifyContent: 'space-between',\n margin: 0,\n width: '100%',\n\n '& > :last-child': {\n flex: 1,\n },\n },\n}))\n\nexport const useCheckboxModifierFormStyles = makeStyles<Theme>((theme) => ({\n formGroup: {\n gap: theme.spacing(1.5),\n },\n label: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n checkbox: {\n color: theme.palette.grey[700],\n fontSize: '1rem',\n marginRight: theme.spacing(-0.25),\n padding: 'unset',\n\n '&.Mui-checked': {\n color: theme.palette.info.main,\n },\n },\n hideCheckbox: {\n display: 'none',\n },\n root: {\n margin: 0,\n width: '100%',\n\n '& > :last-child': {\n flex: 1,\n },\n },\n}))\n\nexport const useLabelStyles = makeStyles<Theme>((theme) => ({\n label: {\n margin: theme.spacing(0.5, 0),\n },\n selectedLabel: {\n margin: theme.spacing(0.5, 0),\n },\n disabled: {\n color: theme.palette.grey[500],\n },\n price: {\n color: theme.palette.grey[700],\n },\n selectedSummary: {\n color: theme.palette.grey[700],\n },\n selectedSummaryInlineRow: {\n alignItems: 'center',\n color: theme.palette.grey[700],\n columnGap: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: theme.spacing(1),\n minHeight: theme.spacing(2.5),\n width: '100%',\n },\n selectedSummaryPrimary: {\n alignItems: 'center',\n columnGap: theme.spacing(1),\n display: 'flex',\n flex: 1,\n minWidth: 0,\n },\n selectedSummaryPrimaryText: {\n color: theme.palette.grey[700],\n fontSize: '0.75rem',\n fontWeight: theme.typography.fontWeightRegular,\n lineHeight: 1.2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n selectedSummaryIcon: {\n color: theme.palette.success.main,\n },\n}))\n\nexport const useOptionsStyles = makeStyles<Theme>((theme) => ({\n options: {\n color: theme.palette.info.main,\n marginBottom: theme.spacing(1.5),\n minWidth: 'unset',\n padding: 0,\n },\n inlineOptions: {\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n height: 'auto',\n marginBottom: 0,\n minHeight: 'unset',\n paddingBottom: 0,\n paddingLeft: '10px',\n paddingRight: 0,\n paddingTop: 0,\n '& .MuiTypography-root': {\n fontSize: '0.75rem',\n lineHeight: 1.2,\n },\n },\n}))\n"],"names":[],"mappings":";;AAEa,MAAA,yBAAyB,GAAG,UAAU,CAAQ,CAAC,KAAK,MAAM;AACrE,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3B,KAAK,EAAE,CAAG,EAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAa,WAAA,CAAA;AAC/C,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,MAAM,EAAE,gDAAgD;AACzD,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;AAChC,KAAA;AACD,IAAA,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,SAAS,EAAE;YACT,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,KAAA;AACF,CAAA,CAAC;AAEW,MAAA,0BAA0B,GAAG,UAAU,CAAQ,CAAC,KAAK,MAAM;AACtE,IAAA,UAAU,EAAE;AACV,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAEjC,QAAA,eAAe,EAAE;AACf,YAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,MAAM;AAChB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,KAAK,EAAE,MAAM;AAEb,QAAA,iBAAiB,EAAE;AACjB,YAAA,IAAI,EAAE,CAAC;AACR,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEW,MAAA,6BAA6B,GAAG,UAAU,CAAQ,CAAC,KAAK,MAAM;AACzE,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACjC,QAAA,OAAO,EAAE,OAAO;AAEhB,QAAA,eAAe,EAAE;AACf,YAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,OAAO,EAAE,MAAM;AAChB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,KAAK,EAAE,MAAM;AAEb,QAAA,iBAAiB,EAAE;AACjB,YAAA,IAAI,EAAE,CAAC;AACR,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEW,MAAA,cAAc,GAAG,UAAU,CAAQ,CAAC,KAAK,MAAM;AAC1D,IAAA,KAAK,EAAE;QACL,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9B,KAAA;AACD,IAAA,aAAa,EAAE;QACb,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9B,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,KAAA;AACD,IAAA,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,KAAA;AACD,IAAA,eAAe,EAAE;QACf,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,KAAA;AACD,IAAA,wBAAwB,EAAE;AACxB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACD,IAAA,sBAAsB,EAAE;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,0BAA0B,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB;AAC9C,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,UAAU,EAAE,QAAQ;AACrB,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAClC,KAAA;AACF,CAAA,CAAC;AAEW,MAAA,gBAAgB,GAAG,UAAU,CAAQ,CAAC,KAAK,MAAM;AAC5D,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,QAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,uBAAuB,EAAE;AACvB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;;;"}
1
+ {"version":3,"file":"DishModifierCard.styles.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/DishModifierCard.styles.ts"],"sourcesContent":["import { makeStyles, Theme } from '@material-ui/core'\n\nexport const useDishModifierCardStyles = makeStyles<Theme>((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2.5),\n color: `${theme.palette.grey[900]} !important`,\n width: '100%',\n },\n card: {\n borderRadius: '8px',\n border: '1px solid var(--surfaces-card-stroke, #E0E0E0)',\n },\n error: {\n color: theme.palette.error.main,\n },\n helperText: {\n color: theme.palette.grey[700],\n },\n optionalStatusTag: {\n '& > div': {\n backgroundColor: theme.palette.grey[300],\n },\n },\n name: {\n fontSize: '1rem',\n fontWeight: 500,\n marginBottom: theme.spacing(2),\n },\n}))\n\nexport const useRadioModifierFormStyles = makeStyles<Theme>((theme) => ({\n radioGroup: {\n gap: theme.spacing(1.5),\n },\n label: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n radio: {\n fontSize: '1rem',\n padding: 'unset',\n marginRight: theme.spacing(-0.25),\n\n '&.Mui-checked': {\n color: theme.palette.info.main,\n },\n },\n hideRadio: {\n display: 'none',\n },\n root: {\n justifyContent: 'space-between',\n margin: 0,\n width: '100%',\n\n '& > :last-child': {\n flex: 1,\n },\n },\n}))\n\nexport const useCheckboxModifierFormStyles = makeStyles<Theme>((theme) => ({\n formGroup: {\n gap: theme.spacing(1.5),\n },\n label: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n checkbox: {\n color: theme.palette.grey[700],\n fontSize: '1rem',\n marginRight: theme.spacing(-0.25),\n padding: 'unset',\n\n '&.Mui-checked': {\n color: theme.palette.info.main,\n },\n },\n hideCheckbox: {\n display: 'none',\n },\n root: {\n margin: 0,\n width: '100%',\n\n '& > :last-child': {\n flex: 1,\n },\n },\n}))\n\nexport const useLabelStyles = makeStyles<Theme>((theme) => ({\n label: {\n margin: theme.spacing(0.5, 0),\n minWidth: 0,\n },\n selectedLabel: {\n margin: theme.spacing(0.5, 0),\n minWidth: 0,\n },\n disabled: {\n color: theme.palette.grey[500],\n },\n price: {\n color: theme.palette.grey[700],\n },\n selectedSummary: {\n color: theme.palette.grey[700],\n overflow: 'hidden',\n overflowWrap: 'anywhere',\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n },\n selectedSummaryInlineRow: {\n alignItems: 'center',\n color: theme.palette.grey[700],\n columnGap: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: theme.spacing(1),\n minHeight: theme.spacing(2.5),\n width: '100%',\n },\n selectedSummaryPrimary: {\n alignItems: 'center',\n columnGap: theme.spacing(1),\n display: 'flex',\n flex: 1,\n minWidth: 0,\n },\n selectedSummaryPrimaryText: {\n color: theme.palette.grey[700],\n fontSize: '0.75rem',\n fontWeight: theme.typography.fontWeightRegular,\n lineHeight: 1.2,\n overflow: 'hidden',\n overflowWrap: 'anywhere',\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n },\n disabledText: {\n color: theme.palette.grey[500],\n },\n selectedSummaryIcon: {\n color: theme.palette.success.main,\n flexShrink: 0,\n },\n}))\n\nexport const useOptionsStyles = makeStyles<Theme>((theme) => ({\n options: {\n color: theme.palette.info.main,\n marginBottom: theme.spacing(1.5),\n minWidth: 'unset',\n padding: 0,\n },\n inlineOptions: {\n alignItems: 'center',\n display: 'inline-flex',\n flexShrink: 0,\n justifyContent: 'center',\n height: 'auto',\n marginBottom: 0,\n minHeight: 'unset',\n paddingBottom: 0,\n paddingLeft: '10px',\n paddingRight: 0,\n paddingTop: 0,\n '& .MuiTypography-root': {\n fontSize: '0.75rem',\n lineHeight: 1.2,\n },\n },\n}))\n"],"names":[],"mappings":"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"}
@@ -73,9 +73,11 @@ export type NestedModsV2DishModifierCardProps = {
73
73
  }>;
74
74
  /** Optional feature-gated options for nested modifier controls */
75
75
  modifierControlsOptions?: ModifierControlsOptions;
76
+ /** Optional slot rendered directly after a modifier row, keyed by the parent modifier id */
77
+ renderAfterModifier?: (modifierId: number) => React.ReactNode;
76
78
  /** Removes the card border and border-radius, for use inside a container that provides its own card styling */
77
79
  disableCardStyle?: boolean;
78
80
  /** Hides the group name heading, useful when the name is already shown by a parent container */
79
81
  hideName?: boolean;
80
82
  };
81
- export type ModifierOptionsControlProps = Pick<NestedModsV2DishModifierCardProps, 'value' | 'modifiers' | 'isOutOfStock' | 'isRequired' | 'onChange' | 'disableNewSelections' | 'type' | 'messages' | 'handleOptionsClick' | 'aggregatePrice' | 'selectionQuantity' | 'name' | 'modifierControlsOptions'>;
83
+ export type ModifierOptionsControlProps = Pick<NestedModsV2DishModifierCardProps, 'value' | 'modifiers' | 'isOutOfStock' | 'isRequired' | 'onChange' | 'disableNewSelections' | 'type' | 'messages' | 'handleOptionsClick' | 'aggregatePrice' | 'selectionQuantity' | 'name' | 'modifierControlsOptions' | 'renderAfterModifier'>;
@@ -14,13 +14,13 @@ const Label = (props) => {
14
14
  const numericPrice = price ? parseFloat(price.replace(/[^0-9.-]/g, '')) : NaN;
15
15
  const shouldHidePrice = hidePrice || !price || numericPrice === 0 || isNaN(numericPrice);
16
16
  const showSelectedSummary = Boolean(enableSelectedModifierStyles && isSelected && selectedSummary);
17
- return (React__default.createElement(Box, { display: "flex", flexDirection: "column", className: classNames({ [classes.label]: !showSelectedSummary, [classes.selectedLabel]: showSelectedSummary }) },
17
+ return (React__default.createElement(Box, { display: "flex", flexDirection: "column", style: { flex: 1, minWidth: 0 }, className: classNames({ [classes.label]: !showSelectedSummary, [classes.selectedLabel]: showSelectedSummary }) },
18
18
  React__default.createElement(Box, { display: "flex", alignItems: "center", gridGap: 8 },
19
19
  React__default.createElement(Typography, { className: classNames({
20
20
  [classes.disabled]: disabled,
21
21
  }) }, name)),
22
22
  !shouldHidePrice && (React__default.createElement(Typography, { className: classNames({ [classes.price]: !disabled }, { [classes.disabled]: disabled }) }, `+ ${price}`)),
23
- showSelectedSummary && React__default.createElement(Typography, { className: classes.selectedSummary }, selectedSummary)));
23
+ showSelectedSummary && (React__default.createElement(Typography, { className: classNames(classes.selectedSummary, { [classes.disabledText]: disabled }) }, selectedSummary))));
24
24
  };
25
25
  const Options = (props) => {
26
26
  const { handleOptionsClick, actionLabel, hidden = false, inline = false } = props;
@@ -34,6 +34,9 @@ const Options = (props) => {
34
34
  !inline && React__default.createElement(Icon, { icon: ChevronRight }))));
35
35
  };
36
36
  const getIsSelected = (modifierId, value) => value.some((modifierValue) => modifierValue.modifierId === modifierId && modifierValue.quantity > 0);
37
+ const getIsModifierDisabled = (modifier, props, isSelected) => Boolean(props.isOutOfStock ||
38
+ modifier.outOfStock ||
39
+ (!isSelected && props.disableNewSelections && props.type !== 'singleSelect'));
37
40
  const getActionLabel = (isSelected, props) => props.modifierControlsOptions?.showUpdateButton && isSelected ? 'UPDATE' : 'OPTIONS';
38
41
  const shouldHideNestedOptionsButton = (isSelected, props) => Boolean(props.modifierControlsOptions?.hideNestedOptionsButton ||
39
42
  (props.modifierControlsOptions?.enableSelectedModifierStyles && !isSelected));
@@ -48,7 +51,7 @@ const getModifierActionState = (modifier, isSelected, props) => ({
48
51
  selectedSummary: props.modifierControlsOptions?.selectedNestedSummaryByModifierId?.[modifier.id],
49
52
  });
50
53
  const NestedModifierActions = (props) => {
51
- const { modifier, handleOptionsClick, state, renderRegularButton = true } = props;
54
+ const { modifier, handleOptionsClick, state, disabled = false, renderRegularButton = true } = props;
52
55
  const labelClasses = useLabelStyles();
53
56
  if (!modifier.hasModifiers || modifier.outOfStock)
54
57
  return null;
@@ -56,7 +59,7 @@ const NestedModifierActions = (props) => {
56
59
  state.showInlineAction && state.selectedSummary && (React__default.createElement(Box, { className: labelClasses.selectedSummaryInlineRow },
57
60
  React__default.createElement(Box, { className: labelClasses.selectedSummaryPrimary },
58
61
  React__default.createElement(Icon, { icon: CheckCircle, size: "medium", className: labelClasses.selectedSummaryIcon }),
59
- React__default.createElement(Typography, { variant: "caption", className: labelClasses.selectedSummaryPrimaryText }, state.selectedSummary)),
62
+ React__default.createElement(Typography, { variant: "caption", className: classNames(labelClasses.selectedSummaryPrimaryText, { [labelClasses.disabledText]: disabled }) }, state.selectedSummary)),
60
63
  React__default.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id), actionLabel: state.actionLabel, inline: true, hidden: state.shouldHideNestedOptions }))),
61
64
  renderRegularButton && (React__default.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id), actionLabel: state.actionLabel, hidden: state.shouldHideNestedOptions || (state.showInlineAction && Boolean(state.selectedSummary)) }))));
62
65
  };
@@ -79,16 +82,19 @@ const SingleSelectModifierControl = (props) => {
79
82
  };
80
83
  return (React__default.createElement(FormControl, { fullWidth: true },
81
84
  React__default.createElement(RadioGroup, { className: radioClasses.radioGroup, "aria-label": name }, modifiers.map((modifier) => {
82
- const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props);
85
+ const isSelected = getIsSelected(modifier.id, value);
86
+ const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected);
87
+ const modifierActionState = getModifierActionState(modifier, isSelected, props);
83
88
  return (React__default.createElement(Box, { key: modifier.id },
84
89
  React__default.createElement(FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React__default.createElement(Radio, { checked: value[0]?.modifierId === modifier.id, className: classNames({
85
90
  [radioClasses.hideRadio]: modifier.outOfStock,
86
91
  [radioClasses.radio]: !modifier.outOfStock,
87
92
  }), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier), required: isRequired }), label: React__default.createElement(Box, { className: radioClasses.label },
88
- React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
93
+ React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isModifierDisabled, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
89
94
  modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
90
95
  React__default.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
91
- React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState })));
96
+ React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, disabled: isModifierDisabled }),
97
+ props.renderAfterModifier?.(modifier.id)));
92
98
  }))));
93
99
  };
94
100
  const QuantityButtonControl = (props) => {
@@ -112,18 +118,20 @@ const QuantityButtonControl = (props) => {
112
118
  React__default.createElement(FormGroup, { className: radioClasses.radioGroup, "aria-label": name }, modifiers.map((modifier) => {
113
119
  const selectedModifier = value.find((v) => v.modifierId === modifier.id && v.quantity > 0);
114
120
  const isSelected = Boolean(selectedModifier);
121
+ const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected);
115
122
  const modifierActionState = getModifierActionState(modifier, isSelected, props);
116
123
  return (React__default.createElement(Box, { key: modifier.id },
117
124
  React__default.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" },
118
- React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
125
+ React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isModifierDisabled, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
119
126
  modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
120
127
  React__default.createElement(StatusTag, { color: "warning", label: props.messages.outOfStockText, variant: "outlined", size: "md" }))),
121
128
  !modifier.outOfStock && (React__default.createElement(QuantityPicker, { incrementButtonTitle: `Add ${modifier.name}`, decrementButtonTitle: `Remove ${modifier.name}`, id: `${modifier.id}-quantity-picker`, variation: "modifierCount", value: selectedModifier?.quantity ?? 0, min: 0, max: isSingleSelect ? 1 : undefined, preventManualChange: true, disableIncrement: !isSingleSelect && disableNewSelections, onChange: makeHandleChange(modifier, isSelected), disabled: isOutOfStock || modifier.outOfStock, name: modifier.name }))),
122
- React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, renderRegularButton: false })));
129
+ React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, disabled: isModifierDisabled, renderRegularButton: false }),
130
+ props.renderAfterModifier?.(modifier.id)));
123
131
  }))));
124
132
  };
125
133
  const MultipleSelectControl = (props) => {
126
- const { modifiers, value, isOutOfStock, onChange, disableNewSelections, handleOptionsClick, aggregatePrice } = props;
134
+ const { modifiers, value, onChange, handleOptionsClick, aggregatePrice } = props;
127
135
  const classes = useCheckboxModifierFormStyles();
128
136
  const makeHandleChange = (modifier) => () => {
129
137
  const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id));
@@ -141,13 +149,16 @@ const MultipleSelectControl = (props) => {
141
149
  };
142
150
  return (React__default.createElement(FormControl, { fullWidth: true },
143
151
  React__default.createElement(FormGroup, { className: classes.formGroup }, modifiers.map((modifier) => {
144
- const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props);
152
+ const isSelected = getIsSelected(modifier.id, value);
153
+ const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected);
154
+ const modifierActionState = getModifierActionState(modifier, isSelected, props);
145
155
  return (React__default.createElement(Box, { key: modifier.id },
146
- React__default.createElement(FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some((v) => v.modifierId === modifier.id), onChange: makeHandleChange(modifier), control: React__default.createElement(Checkbox, { className: classNames({ [classes.hideCheckbox]: modifier.outOfStock }, { [classes.checkbox]: !modifier.outOfStock }), disabled: isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections) }), label: React__default.createElement(Box, { className: classes.label },
147
- React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
156
+ React__default.createElement(FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some((v) => v.modifierId === modifier.id), onChange: makeHandleChange(modifier), control: React__default.createElement(Checkbox, { className: classNames({ [classes.hideCheckbox]: modifier.outOfStock }, { [classes.checkbox]: !modifier.outOfStock }), disabled: isModifierDisabled }), label: React__default.createElement(Box, { className: classes.label },
157
+ React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isModifierDisabled, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
148
158
  modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
149
159
  React__default.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
150
- React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState })));
160
+ React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, disabled: isModifierDisabled }),
161
+ props.renderAfterModifier?.(modifier.id)));
151
162
  }))));
152
163
  };
153
164
  const MultipleQuantitySelectControl = (props) => {
@@ -165,13 +176,14 @@ const MultipleQuantitySelectControl = (props) => {
165
176
  return (React__default.createElement(FormControl, { fullWidth: true },
166
177
  React__default.createElement(FormGroup, null, modifiers.map((modifier) => {
167
178
  const modifierActionState = getModifierActionState(modifier, modifier.quantity > 0, props);
179
+ const isModifierDisabled = getIsModifierDisabled(modifier, props, modifierActionState.isSelected);
168
180
  return (React__default.createElement(Box, { key: modifier.id, style: { justifyContent: 'space-between', flexDirection: 'column' }, display: "flex" },
169
181
  React__default.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" },
170
- React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
182
+ React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isModifierDisabled, hidePrice: modifier.hidePrice, isSelected: modifierActionState.isSelected, enableSelectedModifierStyles: props.modifierControlsOptions?.enableSelectedModifierStyles, selectedSummary: modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary }),
171
183
  modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
172
184
  React__default.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" }))),
173
185
  !modifier.outOfStock && (React__default.createElement(QuantityPicker, { incrementButtonTitle: `Add ${modifier.name}`, decrementButtonTitle: `Remove ${modifier.name}`, id: `${modifier.id}-quantity-picker`, variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock, name: modifier.name }))),
174
- React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, renderRegularButton: false }),
186
+ React__default.createElement(NestedModifierActions, { modifier: modifier, handleOptionsClick: handleOptionsClick, state: modifierActionState, disabled: isModifierDisabled, renderRegularButton: false }),
175
187
  React__default.createElement(Box, { display: "flex", alignItems: "flex-start", gridGap: 4 },
176
188
  modifier.hasModifiers && !modifier.outOfStock && (React__default.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id), actionLabel: modifierActionState.actionLabel, hidden: modifierActionState.shouldHideNestedOptions ||
177
189
  (modifierActionState.showInlineAction && Boolean(modifierActionState.selectedSummary)) })),
@@ -182,7 +194,8 @@ const MultipleQuantitySelectControl = (props) => {
182
194
  selectionQuantity[modifier.id].currentSelectionCount,
183
195
  "/",
184
196
  selectionQuantity[modifier.id].requiredSelectionCount,
185
- " selected")))));
197
+ " selected"))),
198
+ props.renderAfterModifier?.(modifier.id)));
186
199
  }))));
187
200
  };
188
201
  const ModifierControls = (props) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ModifierControls.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/ModifierControls.tsx"],"sourcesContent":["import {\n Box,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n Radio,\n RadioGroup,\n Typography,\n} from '@material-ui/core'\nimport { Icon } from '@popmenu/common-ui'\nimport { CheckCircle, ChevronRight } from '@popmenu/web-icons'\nimport classNames from 'classnames'\nimport React from 'react'\nimport { Button } from '../Button'\nimport type { QuantityChangeEvent } from '../QuantityPicker'\nimport { QuantityPicker } from '../QuantityPicker'\nimport { StatusTag } from '../StatusTag'\nimport {\n useCheckboxModifierFormStyles,\n useLabelStyles,\n useOptionsStyles,\n useRadioModifierFormStyles,\n} from './DishModifierCard.styles'\nimport { Modifier, ModifierOptionsControlProps } from './DishModifierCardProps'\n\nconst Label = (props: {\n name: string\n price: string\n disabled?: boolean\n hidePrice?: boolean\n isSelected?: boolean\n selectedSummary?: string\n enableSelectedModifierStyles?: boolean\n}) => {\n const {\n name,\n price,\n disabled = false,\n hidePrice = false,\n isSelected = false,\n selectedSummary,\n enableSelectedModifierStyles = false,\n } = props\n const classes = useLabelStyles()\n const numericPrice = price ? parseFloat(price.replace(/[^0-9.-]/g, '')) : NaN\n const shouldHidePrice = hidePrice || !price || numericPrice === 0 || isNaN(numericPrice)\n const showSelectedSummary = Boolean(enableSelectedModifierStyles && isSelected && selectedSummary)\n\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n className={classNames({ [classes.label]: !showSelectedSummary, [classes.selectedLabel]: showSelectedSummary })}\n >\n <Box display=\"flex\" alignItems=\"center\" gridGap={8}>\n <Typography\n className={classNames({\n [classes.disabled]: disabled,\n })}\n >\n {name}\n </Typography>\n </Box>\n {!shouldHidePrice && (\n <Typography className={classNames({ [classes.price]: !disabled }, { [classes.disabled]: disabled })}>\n {`+ ${price}`}\n </Typography>\n )}\n {showSelectedSummary && <Typography className={classes.selectedSummary}>{selectedSummary}</Typography>}\n </Box>\n )\n}\n\nconst Options = (props: {\n handleOptionsClick: () => void\n actionLabel: 'OPTIONS' | 'UPDATE'\n hidden?: boolean\n inline?: boolean\n}) => {\n const { handleOptionsClick, actionLabel, hidden = false, inline = false } = props\n const classes = useOptionsStyles()\n const displayActionLabel = inline ? (actionLabel === 'UPDATE' ? 'Update' : 'Options') : actionLabel\n if (hidden) return null\n\n return (\n <Box>\n <Button\n variation=\"none\"\n className={classNames(classes.options, { [classes.inlineOptions]: inline })}\n onClick={handleOptionsClick}\n >\n <Typography variant=\"caption\">{displayActionLabel}</Typography>\n {!inline && <Icon icon={ChevronRight} />}\n </Button>\n </Box>\n )\n}\n\nconst getIsSelected = (modifierId: number, value: ModifierOptionsControlProps['value']) =>\n value.some((modifierValue) => modifierValue.modifierId === modifierId && modifierValue.quantity > 0)\n\nconst getActionLabel = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n props.modifierControlsOptions?.showUpdateButton && isSelected ? 'UPDATE' : 'OPTIONS'\n\nconst shouldHideNestedOptionsButton = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n props.modifierControlsOptions?.hideNestedOptionsButton ||\n (props.modifierControlsOptions?.enableSelectedModifierStyles && !isSelected),\n )\n\nconst shouldShowInlineAction = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n isSelected &&\n props.modifierControlsOptions?.enableSelectedModifierStyles &&\n !props.modifierControlsOptions?.hideNestedOptionsButton,\n )\n\nconst getModifierActionState = (\n modifier: Modifier,\n isSelected: boolean,\n props: ModifierOptionsControlProps,\n): {\n isSelected: boolean\n shouldHideNestedOptions: boolean\n showInlineAction: boolean\n actionLabel: 'OPTIONS' | 'UPDATE'\n selectedSummary?: string\n} => ({\n isSelected,\n shouldHideNestedOptions: shouldHideNestedOptionsButton(isSelected, props),\n showInlineAction: shouldShowInlineAction(isSelected, props),\n actionLabel: getActionLabel(isSelected, props),\n selectedSummary: props.modifierControlsOptions?.selectedNestedSummaryByModifierId?.[modifier.id],\n})\n\nconst NestedModifierActions = (props: {\n modifier: Modifier\n handleOptionsClick: (id: number) => void\n state: ReturnType<typeof getModifierActionState>\n renderRegularButton?: boolean\n}) => {\n const { modifier, handleOptionsClick, state, renderRegularButton = true } = props\n const labelClasses = useLabelStyles()\n\n if (!modifier.hasModifiers || modifier.outOfStock) return null\n\n return (\n <>\n {state.showInlineAction && state.selectedSummary && (\n <Box className={labelClasses.selectedSummaryInlineRow}>\n <Box className={labelClasses.selectedSummaryPrimary}>\n <Icon icon={CheckCircle} size=\"medium\" className={labelClasses.selectedSummaryIcon} />\n <Typography variant=\"caption\" className={labelClasses.selectedSummaryPrimaryText}>\n {state.selectedSummary}\n </Typography>\n </Box>\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n inline\n hidden={state.shouldHideNestedOptions}\n />\n </Box>\n )}\n {renderRegularButton && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n hidden={state.shouldHideNestedOptions || (state.showInlineAction && Boolean(state.selectedSummary))}\n />\n )}\n </>\n )\n}\n\nconst SingleSelectModifierControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, isRequired } = props\n const radioClasses = useRadioModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => (e: React.ChangeEvent<HTMLInputElement>) => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: true,\n modifierId: Number(e.target.value),\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: 1,\n })\n }\n return (\n <FormControl fullWidth>\n <RadioGroup className={radioClasses.radioGroup} aria-label={name}>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={radioClasses.root}\n control={\n <Radio\n checked={value[0]?.modifierId === modifier.id}\n className={classNames({\n [radioClasses.hideRadio]: modifier.outOfStock,\n [radioClasses.radio]: !modifier.outOfStock,\n })}\n disabled={isOutOfStock || modifier.outOfStock}\n onChange={makeHandleChange(modifier)}\n required={isRequired}\n />\n }\n label={\n <Box className={radioClasses.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n />\n </Box>\n )\n })}\n </RadioGroup>\n </FormControl>\n )\n}\n\nconst QuantityButtonControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, disableNewSelections } =\n props\n const radioClasses = useRadioModifierFormStyles()\n const isSingleSelect = props.type === 'singleSelect'\n\n const makeHandleChange =\n (modifier: Modifier, isSelected: boolean) => (_e: unknown, customEvent: QuantityChangeEvent) => {\n if (!isSelected && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: isSingleSelect,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: isSingleSelect && customEvent.quantity > 0 ? 1 : customEvent.quantity,\n })\n }\n\n return (\n <FormControl fullWidth>\n <FormGroup className={radioClasses.radioGroup} aria-label={name}>\n {modifiers.map((modifier) => {\n const selectedModifier = value.find((v) => v.modifierId === modifier.id && v.quantity > 0)\n const isSelected = Boolean(selectedModifier)\n const modifierActionState = getModifierActionState(modifier, isSelected, props)\n\n return (\n <Box key={modifier.id}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label={props.messages.outOfStockText} variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n {!modifier.outOfStock && (\n <QuantityPicker\n incrementButtonTitle={`Add ${modifier.name}`}\n decrementButtonTitle={`Remove ${modifier.name}`}\n id={`${modifier.id}-quantity-picker`}\n variation=\"modifierCount\"\n value={selectedModifier?.quantity ?? 0}\n min={0}\n max={isSingleSelect ? 1 : undefined}\n preventManualChange={true}\n disableIncrement={!isSingleSelect && disableNewSelections}\n onChange={makeHandleChange(modifier, isSelected)}\n disabled={isOutOfStock || modifier.outOfStock}\n name={modifier.name}\n />\n )}\n </Box>\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n renderRegularButton={false}\n />\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\n\nconst MultipleSelectControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, value, isOutOfStock, onChange, disableNewSelections, handleOptionsClick, aggregatePrice } = props\n const classes = useCheckboxModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => () => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: isModifierInValue ? 0 : 1,\n })\n }\n\n return (\n <FormControl fullWidth>\n <FormGroup className={classes.formGroup}>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={classes.root}\n checked={value.some((v) => v.modifierId === modifier.id)}\n onChange={makeHandleChange(modifier)}\n control={\n <Checkbox\n className={classNames(\n { [classes.hideCheckbox]: modifier.outOfStock },\n { [classes.checkbox]: !modifier.outOfStock },\n )}\n disabled={isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections)}\n />\n }\n label={\n <Box className={classes.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n />\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\nconst MultipleQuantitySelectControl = (props: ModifierOptionsControlProps) => {\n const {\n modifiers,\n isOutOfStock,\n onChange,\n disableNewSelections,\n handleOptionsClick,\n selectionQuantity,\n aggregatePrice,\n } = props\n const makeHandleChange = (modifier: Modifier) => (_e: unknown, customEvent: QuantityChangeEvent) => {\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: customEvent.quantity,\n })\n }\n return (\n <FormControl fullWidth>\n <FormGroup>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, modifier.quantity > 0, props)\n return (\n <Box key={modifier.id} style={{ justifyContent: 'space-between', flexDirection: 'column' }} display=\"flex\">\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n {!modifier.outOfStock && (\n <QuantityPicker\n incrementButtonTitle={`Add ${modifier.name}`}\n decrementButtonTitle={`Remove ${modifier.name}`}\n id={`${modifier.id}-quantity-picker`}\n variation=\"modifierCount\"\n value={modifier.quantity}\n disableIncrement={disableNewSelections}\n preventManualChange={true}\n onChange={makeHandleChange(modifier)}\n disabled={isOutOfStock || modifier.outOfStock}\n name={modifier.name}\n />\n )}\n </Box>\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n renderRegularButton={false}\n />\n <Box display=\"flex\" alignItems=\"flex-start\" gridGap={4}>\n {modifier.hasModifiers && !modifier.outOfStock && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={modifierActionState.actionLabel}\n hidden={\n modifierActionState.shouldHideNestedOptions ||\n (modifierActionState.showInlineAction && Boolean(modifierActionState.selectedSummary))\n }\n />\n )}\n {selectionQuantity[modifier.id] &&\n selectionQuantity[modifier.id].requiredSelectionCount > 0 &&\n selectionQuantity[modifier.id].requiredSelectionCount !==\n selectionQuantity[modifier.id].currentSelectionCount && (\n <Typography variant=\"caption\" color=\"error\">\n {selectionQuantity[modifier.id].currentSelectionCount}/\n {selectionQuantity[modifier.id].requiredSelectionCount} selected\n </Typography>\n )}\n </Box>\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\n\nexport const ModifierControls = (props: ModifierOptionsControlProps) => {\n switch (props.type) {\n case 'singleSelect':\n if (props.modifierControlsOptions?.selectionControlVariant === 'quantityButtons') {\n return <QuantityButtonControl {...props} />\n }\n return <SingleSelectModifierControl {...props} />\n case 'multipleSelect':\n if (props.modifierControlsOptions?.selectionControlVariant === 'quantityButtons') {\n return <QuantityButtonControl {...props} />\n }\n return <MultipleSelectControl {...props} />\n case 'multipleQuantitySelect':\n return <MultipleQuantitySelectControl {...props} />\n default:\n return null\n }\n}\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"ModifierControls.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/ModifierControls.tsx"],"sourcesContent":["import {\n Box,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n Radio,\n RadioGroup,\n Typography,\n} from '@material-ui/core'\nimport { Icon } from '@popmenu/common-ui'\nimport { CheckCircle, ChevronRight } from '@popmenu/web-icons'\nimport classNames from 'classnames'\nimport React from 'react'\nimport { Button } from '../Button'\nimport type { QuantityChangeEvent } from '../QuantityPicker'\nimport { QuantityPicker } from '../QuantityPicker'\nimport { StatusTag } from '../StatusTag'\nimport {\n useCheckboxModifierFormStyles,\n useLabelStyles,\n useOptionsStyles,\n useRadioModifierFormStyles,\n} from './DishModifierCard.styles'\nimport { Modifier, ModifierOptionsControlProps } from './DishModifierCardProps'\n\nconst Label = (props: {\n name: string\n price: string\n disabled?: boolean\n hidePrice?: boolean\n isSelected?: boolean\n selectedSummary?: string\n enableSelectedModifierStyles?: boolean\n}) => {\n const {\n name,\n price,\n disabled = false,\n hidePrice = false,\n isSelected = false,\n selectedSummary,\n enableSelectedModifierStyles = false,\n } = props\n const classes = useLabelStyles()\n const numericPrice = price ? parseFloat(price.replace(/[^0-9.-]/g, '')) : NaN\n const shouldHidePrice = hidePrice || !price || numericPrice === 0 || isNaN(numericPrice)\n const showSelectedSummary = Boolean(enableSelectedModifierStyles && isSelected && selectedSummary)\n\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n style={{ flex: 1, minWidth: 0 }}\n className={classNames({ [classes.label]: !showSelectedSummary, [classes.selectedLabel]: showSelectedSummary })}\n >\n <Box display=\"flex\" alignItems=\"center\" gridGap={8}>\n <Typography\n className={classNames({\n [classes.disabled]: disabled,\n })}\n >\n {name}\n </Typography>\n </Box>\n {!shouldHidePrice && (\n <Typography className={classNames({ [classes.price]: !disabled }, { [classes.disabled]: disabled })}>\n {`+ ${price}`}\n </Typography>\n )}\n {showSelectedSummary && (\n <Typography className={classNames(classes.selectedSummary, { [classes.disabledText]: disabled })}>\n {selectedSummary}\n </Typography>\n )}\n </Box>\n )\n}\n\nconst Options = (props: {\n handleOptionsClick: () => void\n actionLabel: 'OPTIONS' | 'UPDATE'\n hidden?: boolean\n inline?: boolean\n}) => {\n const { handleOptionsClick, actionLabel, hidden = false, inline = false } = props\n const classes = useOptionsStyles()\n const displayActionLabel = inline ? (actionLabel === 'UPDATE' ? 'Update' : 'Options') : actionLabel\n if (hidden) return null\n\n return (\n <Box>\n <Button\n variation=\"none\"\n className={classNames(classes.options, { [classes.inlineOptions]: inline })}\n onClick={handleOptionsClick}\n >\n <Typography variant=\"caption\">{displayActionLabel}</Typography>\n {!inline && <Icon icon={ChevronRight} />}\n </Button>\n </Box>\n )\n}\n\nconst getIsSelected = (modifierId: number, value: ModifierOptionsControlProps['value']) =>\n value.some((modifierValue) => modifierValue.modifierId === modifierId && modifierValue.quantity > 0)\n\nconst getIsModifierDisabled = (modifier: Modifier, props: ModifierOptionsControlProps, isSelected: boolean) =>\n Boolean(\n props.isOutOfStock ||\n modifier.outOfStock ||\n (!isSelected && props.disableNewSelections && props.type !== 'singleSelect'),\n )\n\nconst getActionLabel = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n props.modifierControlsOptions?.showUpdateButton && isSelected ? 'UPDATE' : 'OPTIONS'\n\nconst shouldHideNestedOptionsButton = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n props.modifierControlsOptions?.hideNestedOptionsButton ||\n (props.modifierControlsOptions?.enableSelectedModifierStyles && !isSelected),\n )\n\nconst shouldShowInlineAction = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n isSelected &&\n props.modifierControlsOptions?.enableSelectedModifierStyles &&\n !props.modifierControlsOptions?.hideNestedOptionsButton,\n )\n\nconst getModifierActionState = (\n modifier: Modifier,\n isSelected: boolean,\n props: ModifierOptionsControlProps,\n): {\n isSelected: boolean\n shouldHideNestedOptions: boolean\n showInlineAction: boolean\n actionLabel: 'OPTIONS' | 'UPDATE'\n selectedSummary?: string\n} => ({\n isSelected,\n shouldHideNestedOptions: shouldHideNestedOptionsButton(isSelected, props),\n showInlineAction: shouldShowInlineAction(isSelected, props),\n actionLabel: getActionLabel(isSelected, props),\n selectedSummary: props.modifierControlsOptions?.selectedNestedSummaryByModifierId?.[modifier.id],\n})\n\nconst NestedModifierActions = (props: {\n modifier: Modifier\n handleOptionsClick: (id: number) => void\n state: ReturnType<typeof getModifierActionState>\n disabled?: boolean\n renderRegularButton?: boolean\n}) => {\n const { modifier, handleOptionsClick, state, disabled = false, renderRegularButton = true } = props\n const labelClasses = useLabelStyles()\n\n if (!modifier.hasModifiers || modifier.outOfStock) return null\n\n return (\n <>\n {state.showInlineAction && state.selectedSummary && (\n <Box className={labelClasses.selectedSummaryInlineRow}>\n <Box className={labelClasses.selectedSummaryPrimary}>\n <Icon icon={CheckCircle} size=\"medium\" className={labelClasses.selectedSummaryIcon} />\n <Typography\n variant=\"caption\"\n className={classNames(labelClasses.selectedSummaryPrimaryText, { [labelClasses.disabledText]: disabled })}\n >\n {state.selectedSummary}\n </Typography>\n </Box>\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n inline\n hidden={state.shouldHideNestedOptions}\n />\n </Box>\n )}\n {renderRegularButton && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n hidden={state.shouldHideNestedOptions || (state.showInlineAction && Boolean(state.selectedSummary))}\n />\n )}\n </>\n )\n}\n\nconst SingleSelectModifierControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, isRequired } = props\n const radioClasses = useRadioModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => (e: React.ChangeEvent<HTMLInputElement>) => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: true,\n modifierId: Number(e.target.value),\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: 1,\n })\n }\n return (\n <FormControl fullWidth>\n <RadioGroup className={radioClasses.radioGroup} aria-label={name}>\n {modifiers.map((modifier) => {\n const isSelected = getIsSelected(modifier.id, value)\n const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected)\n const modifierActionState = getModifierActionState(modifier, isSelected, props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={radioClasses.root}\n control={\n <Radio\n checked={value[0]?.modifierId === modifier.id}\n className={classNames({\n [radioClasses.hideRadio]: modifier.outOfStock,\n [radioClasses.radio]: !modifier.outOfStock,\n })}\n disabled={isOutOfStock || modifier.outOfStock}\n onChange={makeHandleChange(modifier)}\n required={isRequired}\n />\n }\n label={\n <Box className={radioClasses.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isModifierDisabled}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n disabled={isModifierDisabled}\n />\n {props.renderAfterModifier?.(modifier.id)}\n </Box>\n )\n })}\n </RadioGroup>\n </FormControl>\n )\n}\n\nconst QuantityButtonControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, disableNewSelections } =\n props\n const radioClasses = useRadioModifierFormStyles()\n const isSingleSelect = props.type === 'singleSelect'\n\n const makeHandleChange =\n (modifier: Modifier, isSelected: boolean) => (_e: unknown, customEvent: QuantityChangeEvent) => {\n if (!isSelected && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: isSingleSelect,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: isSingleSelect && customEvent.quantity > 0 ? 1 : customEvent.quantity,\n })\n }\n\n return (\n <FormControl fullWidth>\n <FormGroup className={radioClasses.radioGroup} aria-label={name}>\n {modifiers.map((modifier) => {\n const selectedModifier = value.find((v) => v.modifierId === modifier.id && v.quantity > 0)\n const isSelected = Boolean(selectedModifier)\n const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected)\n const modifierActionState = getModifierActionState(modifier, isSelected, props)\n\n return (\n <Box key={modifier.id}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isModifierDisabled}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label={props.messages.outOfStockText} variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n {!modifier.outOfStock && (\n <QuantityPicker\n incrementButtonTitle={`Add ${modifier.name}`}\n decrementButtonTitle={`Remove ${modifier.name}`}\n id={`${modifier.id}-quantity-picker`}\n variation=\"modifierCount\"\n value={selectedModifier?.quantity ?? 0}\n min={0}\n max={isSingleSelect ? 1 : undefined}\n preventManualChange={true}\n disableIncrement={!isSingleSelect && disableNewSelections}\n onChange={makeHandleChange(modifier, isSelected)}\n disabled={isOutOfStock || modifier.outOfStock}\n name={modifier.name}\n />\n )}\n </Box>\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n disabled={isModifierDisabled}\n renderRegularButton={false}\n />\n {props.renderAfterModifier?.(modifier.id)}\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\n\nconst MultipleSelectControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, value, onChange, handleOptionsClick, aggregatePrice } = props\n const classes = useCheckboxModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => () => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: isModifierInValue ? 0 : 1,\n })\n }\n\n return (\n <FormControl fullWidth>\n <FormGroup className={classes.formGroup}>\n {modifiers.map((modifier) => {\n const isSelected = getIsSelected(modifier.id, value)\n const isModifierDisabled = getIsModifierDisabled(modifier, props, isSelected)\n const modifierActionState = getModifierActionState(modifier, isSelected, props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={classes.root}\n checked={value.some((v) => v.modifierId === modifier.id)}\n onChange={makeHandleChange(modifier)}\n control={\n <Checkbox\n className={classNames(\n { [classes.hideCheckbox]: modifier.outOfStock },\n { [classes.checkbox]: !modifier.outOfStock },\n )}\n disabled={isModifierDisabled}\n />\n }\n label={\n <Box className={classes.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isModifierDisabled}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n disabled={isModifierDisabled}\n />\n {props.renderAfterModifier?.(modifier.id)}\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\nconst MultipleQuantitySelectControl = (props: ModifierOptionsControlProps) => {\n const {\n modifiers,\n isOutOfStock,\n onChange,\n disableNewSelections,\n handleOptionsClick,\n selectionQuantity,\n aggregatePrice,\n } = props\n const makeHandleChange = (modifier: Modifier) => (_e: unknown, customEvent: QuantityChangeEvent) => {\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: customEvent.quantity,\n })\n }\n return (\n <FormControl fullWidth>\n <FormGroup>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, modifier.quantity > 0, props)\n const isModifierDisabled = getIsModifierDisabled(modifier, props, modifierActionState.isSelected)\n return (\n <Box key={modifier.id} style={{ justifyContent: 'space-between', flexDirection: 'column' }} display=\"flex\">\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isModifierDisabled}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n {!modifier.outOfStock && (\n <QuantityPicker\n incrementButtonTitle={`Add ${modifier.name}`}\n decrementButtonTitle={`Remove ${modifier.name}`}\n id={`${modifier.id}-quantity-picker`}\n variation=\"modifierCount\"\n value={modifier.quantity}\n disableIncrement={disableNewSelections}\n preventManualChange={true}\n onChange={makeHandleChange(modifier)}\n disabled={isOutOfStock || modifier.outOfStock}\n name={modifier.name}\n />\n )}\n </Box>\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n disabled={isModifierDisabled}\n renderRegularButton={false}\n />\n <Box display=\"flex\" alignItems=\"flex-start\" gridGap={4}>\n {modifier.hasModifiers && !modifier.outOfStock && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={modifierActionState.actionLabel}\n hidden={\n modifierActionState.shouldHideNestedOptions ||\n (modifierActionState.showInlineAction && Boolean(modifierActionState.selectedSummary))\n }\n />\n )}\n {selectionQuantity[modifier.id] &&\n selectionQuantity[modifier.id].requiredSelectionCount > 0 &&\n selectionQuantity[modifier.id].requiredSelectionCount !==\n selectionQuantity[modifier.id].currentSelectionCount && (\n <Typography variant=\"caption\" color=\"error\">\n {selectionQuantity[modifier.id].currentSelectionCount}/\n {selectionQuantity[modifier.id].requiredSelectionCount} selected\n </Typography>\n )}\n </Box>\n {props.renderAfterModifier?.(modifier.id)}\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\n\nexport const ModifierControls = (props: ModifierOptionsControlProps) => {\n switch (props.type) {\n case 'singleSelect':\n if (props.modifierControlsOptions?.selectionControlVariant === 'quantityButtons') {\n return <QuantityButtonControl {...props} />\n }\n return <SingleSelectModifierControl {...props} />\n case 'multipleSelect':\n if (props.modifierControlsOptions?.selectionControlVariant === 'quantityButtons') {\n return <QuantityButtonControl {...props} />\n }\n return <MultipleSelectControl {...props} />\n case 'multipleQuantitySelect':\n return <MultipleQuantitySelectControl {...props} />\n default:\n return null\n }\n}\n"],"names":["React"],"mappings":"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"}
@@ -30,7 +30,7 @@ const getStatusTagProps = (props) => {
30
30
  return { color, label, variant };
31
31
  };
32
32
  const NestedModsV2DishModifierCard = (props) => {
33
- const { aggregatePrice, name, disableNewSelections, modifiers, value, messages, onChange, type, error, isOutOfStock, isRequired, handleOptionsClick, selectionQuantity, modifierControlsOptions, disableCardStyle = false, hideName = false, } = props;
33
+ const { aggregatePrice, name, disableNewSelections, modifiers, value, messages, onChange, type, error, isOutOfStock, isRequired, handleOptionsClick, selectionQuantity, modifierControlsOptions, renderAfterModifier, disableCardStyle = false, hideName = false, } = props;
34
34
  const classes = useDishModifierCardStyles();
35
35
  return (React__default.createElement(Box, { className: classNames(classes.root, { [classes.card]: !disableCardStyle }) },
36
36
  React__default.createElement(Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
@@ -39,7 +39,7 @@ const NestedModsV2DishModifierCard = (props) => {
39
39
  !isOutOfStock && (React__default.createElement(Typography, { variant: "subtitle1", className: classNames({ [classes.error]: error, [classes.helperText]: !error }) }, messages.helperText))),
40
40
  !hideName && (React__default.createElement(Typography, { component: "h3", className: classes.name }, name)),
41
41
  React__default.createElement(Box, null,
42
- React__default.createElement(ModifierControls, { name: name, value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, isRequired: isRequired, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice, selectionQuantity: selectionQuantity, modifierControlsOptions: modifierControlsOptions }))));
42
+ React__default.createElement(ModifierControls, { name: name, value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, isRequired: isRequired, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice, selectionQuantity: selectionQuantity, modifierControlsOptions: modifierControlsOptions, renderAfterModifier: renderAfterModifier }))));
43
43
  };
44
44
  NestedModsV2DishModifierCard.displayName = 'NestedModsV2DishModifierCard';
45
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"NestedModsV2DishModifierCard.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.tsx"],"sourcesContent":["import { Box, Typography } from '@popmenu/common-ui'\nimport React from 'react'\n\nimport classNames from 'classnames'\nimport type { StatusTagProps } from '../StatusTag'\nimport { StatusTag } from '../StatusTag'\nimport { useDishModifierCardStyles } from './DishModifierCard.styles'\nimport { NestedModsV2DishModifierCardProps } from './DishModifierCardProps'\nimport { ModifierControls } from './ModifierControls'\n\nconst getStatusTagProps = (props: NestedModsV2DishModifierCardProps): StatusTagProps => {\n const { messages, error, isRequired, isOutOfStock } = props\n const { optionalText, outOfStockText, requiredText } = messages\n\n let color: StatusTagProps['color'] = 'default'\n switch (true) {\n case error:\n color = 'error'\n break\n case isOutOfStock:\n color = 'warning'\n break\n }\n\n let label: string = optionalText\n switch (true) {\n case isOutOfStock:\n label = outOfStockText\n break\n case isRequired:\n label = requiredText\n break\n }\n\n const variant = isRequired || isOutOfStock ? 'outlined' : 'filled'\n return { color, label, variant }\n}\n\nexport const NestedModsV2DishModifierCard = (props: NestedModsV2DishModifierCardProps) => {\n const {\n aggregatePrice,\n name,\n disableNewSelections,\n modifiers,\n value,\n messages,\n onChange,\n type,\n error,\n isOutOfStock,\n isRequired,\n handleOptionsClick,\n selectionQuantity,\n modifierControlsOptions,\n disableCardStyle = false,\n hideName = false,\n } = props\n const classes = useDishModifierCardStyles()\n\n return (\n <Box className={classNames(classes.root, { [classes.card]: !disableCardStyle })}>\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n width=\"100%\"\n alignItems=\"center\"\n height=\"fit-content\"\n marginBottom={2}\n >\n <Box className={classNames({ [classes.optionalStatusTag]: !isRequired && !isOutOfStock })}>\n <StatusTag {...getStatusTagProps(props)} />\n </Box>\n {!isOutOfStock && (\n <Typography\n variant=\"subtitle1\"\n className={classNames({ [classes.error]: error, [classes.helperText]: !error })}\n >\n {messages.helperText}\n </Typography>\n )}\n </Box>\n {!hideName && (\n <Typography component=\"h3\" className={classes.name}>\n {name}\n </Typography>\n )}\n <Box>\n <ModifierControls\n name={name}\n value={value}\n modifiers={modifiers}\n isOutOfStock={isOutOfStock}\n isRequired={isRequired}\n onChange={onChange}\n disableNewSelections={disableNewSelections}\n type={type}\n messages={messages}\n handleOptionsClick={handleOptionsClick}\n aggregatePrice={aggregatePrice}\n selectionQuantity={selectionQuantity}\n modifierControlsOptions={modifierControlsOptions}\n />\n </Box>\n </Box>\n )\n}\n\nNestedModsV2DishModifierCard.displayName = 'NestedModsV2DishModifierCard'\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"NestedModsV2DishModifierCard.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.tsx"],"sourcesContent":["import { Box, Typography } from '@popmenu/common-ui'\nimport React from 'react'\n\nimport classNames from 'classnames'\nimport type { StatusTagProps } from '../StatusTag'\nimport { StatusTag } from '../StatusTag'\nimport { useDishModifierCardStyles } from './DishModifierCard.styles'\nimport { NestedModsV2DishModifierCardProps } from './DishModifierCardProps'\nimport { ModifierControls } from './ModifierControls'\n\nconst getStatusTagProps = (props: NestedModsV2DishModifierCardProps): StatusTagProps => {\n const { messages, error, isRequired, isOutOfStock } = props\n const { optionalText, outOfStockText, requiredText } = messages\n\n let color: StatusTagProps['color'] = 'default'\n switch (true) {\n case error:\n color = 'error'\n break\n case isOutOfStock:\n color = 'warning'\n break\n }\n\n let label: string = optionalText\n switch (true) {\n case isOutOfStock:\n label = outOfStockText\n break\n case isRequired:\n label = requiredText\n break\n }\n\n const variant = isRequired || isOutOfStock ? 'outlined' : 'filled'\n return { color, label, variant }\n}\n\nexport const NestedModsV2DishModifierCard = (props: NestedModsV2DishModifierCardProps) => {\n const {\n aggregatePrice,\n name,\n disableNewSelections,\n modifiers,\n value,\n messages,\n onChange,\n type,\n error,\n isOutOfStock,\n isRequired,\n handleOptionsClick,\n selectionQuantity,\n modifierControlsOptions,\n renderAfterModifier,\n disableCardStyle = false,\n hideName = false,\n } = props\n const classes = useDishModifierCardStyles()\n\n return (\n <Box className={classNames(classes.root, { [classes.card]: !disableCardStyle })}>\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n width=\"100%\"\n alignItems=\"center\"\n height=\"fit-content\"\n marginBottom={2}\n >\n <Box className={classNames({ [classes.optionalStatusTag]: !isRequired && !isOutOfStock })}>\n <StatusTag {...getStatusTagProps(props)} />\n </Box>\n {!isOutOfStock && (\n <Typography\n variant=\"subtitle1\"\n className={classNames({ [classes.error]: error, [classes.helperText]: !error })}\n >\n {messages.helperText}\n </Typography>\n )}\n </Box>\n {!hideName && (\n <Typography component=\"h3\" className={classes.name}>\n {name}\n </Typography>\n )}\n <Box>\n <ModifierControls\n name={name}\n value={value}\n modifiers={modifiers}\n isOutOfStock={isOutOfStock}\n isRequired={isRequired}\n onChange={onChange}\n disableNewSelections={disableNewSelections}\n type={type}\n messages={messages}\n handleOptionsClick={handleOptionsClick}\n aggregatePrice={aggregatePrice}\n selectionQuantity={selectionQuantity}\n modifierControlsOptions={modifierControlsOptions}\n renderAfterModifier={renderAfterModifier}\n />\n </Box>\n </Box>\n )\n}\n\nNestedModsV2DishModifierCard.displayName = 'NestedModsV2DishModifierCard'\n"],"names":["React"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popmenu/ordering-ui",
3
- "version": "0.156.1",
3
+ "version": "0.158.0",
4
4
  "license": "MIT",
5
5
  "author": "Popmenu Design System Team",
6
6
  "description": "React components specifically for the popmenu Online Ordering web app.",
@@ -32,5 +32,5 @@
32
32
  "react": "18.x || 19.x"
33
33
  },
34
34
  "sideEffects": false,
35
- "gitHead": "f5b220e12514904a3b1abff75da4f86659d18ef4"
35
+ "gitHead": "e9d12129da7b810c07819d041b21c6656a71abb9"
36
36
  }