@popmenu/ordering-ui 0.77.0 → 0.78.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.
package/build/index.js CHANGED
@@ -20,7 +20,7 @@ require('@material-ui/core/CardHeader');
20
20
  require('@material-ui/core/CardMedia');
21
21
  var MuiCheckbox = require('@material-ui/core/Checkbox');
22
22
  var FormControlLabel = require('@material-ui/core/FormControlLabel');
23
- var MuiChip = require('@material-ui/core/Chip');
23
+ require('@material-ui/core/Chip');
24
24
  require('@material-ui/core/Collapse');
25
25
  require('@material-ui/core/Dialog');
26
26
  require('@material-ui/core/DialogActions');
@@ -83,7 +83,6 @@ var CardActionArea__default = /*#__PURE__*/_interopDefaultLegacy(CardActionArea)
83
83
  var CardContent__default = /*#__PURE__*/_interopDefaultLegacy(CardContent);
84
84
  var MuiCheckbox__default = /*#__PURE__*/_interopDefaultLegacy(MuiCheckbox);
85
85
  var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
86
- var MuiChip__default = /*#__PURE__*/_interopDefaultLegacy(MuiChip);
87
86
  var MuiIconButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiIconButton);
88
87
  var MuiRadio__default = /*#__PURE__*/_interopDefaultLegacy(MuiRadio);
89
88
  var MuiSwitch__default = /*#__PURE__*/_interopDefaultLegacy(MuiSwitch);
@@ -187,77 +186,6 @@ function __rest(s, e) {
187
186
  return t;
188
187
  }
189
188
 
190
- var _g$1n;
191
-
192
- function _extends$2r() { _extends$2r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2r.apply(this, arguments); }
193
-
194
- function SvgCheckCircle(props) {
195
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2r({
196
- viewBox: "0 0 16 16",
197
- fill: "none",
198
- strokeLinecap: "round",
199
- strokeLinejoin: "round",
200
- width: "1em",
201
- height: "1em"
202
- }, props), _g$1n || (_g$1n = /*#__PURE__*/React__namespace.createElement("g", {
203
- stroke: "currentColor"
204
- }, /*#__PURE__*/React__namespace.createElement("path", {
205
- d: "M14.667 7.387V8a6.667 6.667 0 11-3.954-6.093"
206
- }), /*#__PURE__*/React__namespace.createElement("path", {
207
- d: "M14.667 2.667L8 9.34l-2-2"
208
- }))));
209
- }
210
-
211
- var _g$1l$1, _defs$J$1;
212
-
213
- function _extends$2o$1() { _extends$2o$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2o$1.apply(this, arguments); }
214
-
215
- function SvgXCircle$1(props) {
216
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2o$1({
217
- viewBox: "0 0 16 16",
218
- fill: "none",
219
- strokeLinecap: "round",
220
- strokeLinejoin: "round",
221
- width: "1em",
222
- height: "1em"
223
- }, props), _g$1l$1 || (_g$1l$1 = /*#__PURE__*/React__namespace.createElement("g", {
224
- clipPath: "url(#x-circle_svg__clip0_8_6136)",
225
- stroke: "currentColor"
226
- }, /*#__PURE__*/React__namespace.createElement("path", {
227
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM10 6l-4 4m0-4l4 4"
228
- }))), _defs$J$1 || (_defs$J$1 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
229
- id: "x-circle_svg__clip0_8_6136"
230
- }, /*#__PURE__*/React__namespace.createElement("path", {
231
- fill: "currentColor",
232
- d: "M0 0h16v16H0z"
233
- })))));
234
- }
235
-
236
- var _g$1c, _defs$D;
237
-
238
- function _extends$2c() { _extends$2c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2c.apply(this, arguments); }
239
-
240
- function SvgInfo(props) {
241
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2c({
242
- viewBox: "0 0 16 16",
243
- fill: "none",
244
- strokeLinecap: "round",
245
- strokeLinejoin: "round",
246
- width: "1em",
247
- height: "1em"
248
- }, props), _g$1c || (_g$1c = /*#__PURE__*/React__namespace.createElement("g", {
249
- clipPath: "url(#info_svg__clip0_8_5377)",
250
- stroke: "currentColor"
251
- }, /*#__PURE__*/React__namespace.createElement("path", {
252
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zm0-4V8m0-2.667h.007"
253
- }))), _defs$D || (_defs$D = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
254
- id: "info_svg__clip0_8_5377"
255
- }, /*#__PURE__*/React__namespace.createElement("path", {
256
- fill: "currentColor",
257
- d: "M0 0h16v16H0z"
258
- })))));
259
- }
260
-
261
189
  var _path$M;
262
190
 
263
191
  function _extends$1L() { _extends$1L = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1L.apply(this, arguments); }
@@ -276,49 +204,6 @@ function SvgUser(props) {
276
204
  })));
277
205
  }
278
206
 
279
- var _g$Y, _defs$u;
280
-
281
- function _extends$1H() { _extends$1H = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1H.apply(this, arguments); }
282
-
283
- function SvgError(props) {
284
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1H({
285
- viewBox: "0 0 16 16",
286
- fill: "none",
287
- strokeLinecap: "round",
288
- strokeLinejoin: "round",
289
- width: "1em",
290
- height: "1em"
291
- }, props), _g$Y || (_g$Y = /*#__PURE__*/React__namespace.createElement("g", {
292
- clipPath: "url(#error_svg__clip0_8_5411)",
293
- stroke: "currentColor"
294
- }, /*#__PURE__*/React__namespace.createElement("path", {
295
- d: "M5.24 1.333h5.52l3.907 3.907v5.52l-3.907 3.907H5.24L1.333 10.76V5.24L5.24 1.333zm2.76 4V8m0 2.666h.008"
296
- }))), _defs$u || (_defs$u = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
297
- id: "error_svg__clip0_8_5411"
298
- }, /*#__PURE__*/React__namespace.createElement("path", {
299
- fill: "currentColor",
300
- d: "M0 0h16v16H0z"
301
- })))));
302
- }
303
-
304
- var _path$J;
305
-
306
- function _extends$1G() { _extends$1G = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1G.apply(this, arguments); }
307
-
308
- function SvgWarning(props) {
309
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1G({
310
- viewBox: "0 0 16 16",
311
- fill: "none",
312
- strokeLinecap: "round",
313
- strokeLinejoin: "round",
314
- width: "1em",
315
- height: "1em"
316
- }, props), _path$J || (_path$J = /*#__PURE__*/React__namespace.createElement("path", {
317
- d: "M6.86 2.573L1.213 12a1.334 1.334 0 001.14 2h11.294a1.332 1.332 0 001.14-2L9.14 2.573a1.333 1.333 0 00-2.28 0v0zM8 6v2.667m0 2.667h.007",
318
- stroke: "currentColor"
319
- })));
320
- }
321
-
322
207
  var useIconStyles = core.makeStyles(function (_a) {
323
208
  var spacing = _a.spacing, palette = _a.palette;
324
209
  var getFontSize = function (_a) {
@@ -626,7 +511,7 @@ var getBorder = function (theme) { return function (props) {
626
511
  }
627
512
  return borderColor;
628
513
  }; };
629
- var useChipStyles = styles.makeStyles(function (theme) { return ({
514
+ styles.makeStyles(function (theme) { return ({
630
515
  root: {
631
516
  background: getBackground(theme),
632
517
  color: getColor(theme),
@@ -643,21 +528,6 @@ var useChipStyles = styles.makeStyles(function (theme) { return ({
643
528
  },
644
529
  }); });
645
530
 
646
- var IconDictionary = {
647
- error: SvgError,
648
- info: SvgInfo,
649
- success: SvgCheckCircle,
650
- warning: SvgWarning,
651
- };
652
- var Chip = function (props) {
653
- var severity = props.severity, restProps = __rest(props, ["severity"]);
654
- var classes = useChipStyles(props);
655
- var icon = severity ? React__default['default'].createElement(IconDictionary[severity]) : undefined;
656
- var deleteIcon = React__default['default'].createElement(SvgXCircle$1);
657
- return React__default['default'].createElement(MuiChip__default['default'], __assign({ classes: classes, icon: icon, deleteIcon: deleteIcon }, restProps));
658
- };
659
- Chip.displayName = 'Chip';
660
-
661
531
  var defaultTypographyProps = {
662
532
  variant: 'body1',
663
533
  };
@@ -828,7 +698,7 @@ Link.defaultProps = {
828
698
  };
829
699
  Link.displayName = 'Link';
830
700
 
831
- var useStyles = core.makeStyles(function (_a) {
701
+ var useStyles$1 = core.makeStyles(function (_a) {
832
702
  var spacing = _a.spacing;
833
703
  return ({
834
704
  root: {
@@ -842,7 +712,7 @@ var useStyles = core.makeStyles(function (_a) {
842
712
  });
843
713
  var Paper = React.forwardRef(function (props, ref) {
844
714
  var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
845
- var classes = useStyles(props);
715
+ var classes = useStyles$1(props);
846
716
  return React__default['default'].createElement(core.Paper, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
847
717
  });
848
718
  Paper.displayName = 'Paper';
@@ -1444,6 +1314,9 @@ var useDishCheckoutCardStyles = styles.makeStyles(function (theme) { return ({
1444
1314
  height: theme.spacing(2.5),
1445
1315
  color: theme.palette.info.main,
1446
1316
  },
1317
+ editButton: {
1318
+ color: theme.palette.info.main,
1319
+ },
1447
1320
  price: {
1448
1321
  fontSize: '18px',
1449
1322
  },
@@ -1493,7 +1366,7 @@ var DishCheckoutCard = function (props) {
1493
1366
  specialInstructions,
1494
1367
  "\"")),
1495
1368
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 1, height: "100%" },
1496
- React__default['default'].createElement(Button$1, { variant: "text", onClick: onEdit }, "Edit"),
1369
+ React__default['default'].createElement(Button$1, { className: classes.editButton, variant: "text", onClick: onEdit }, "Edit"),
1497
1370
  React__default['default'].createElement(IconButton, { onClick: onDelete },
1498
1371
  React__default['default'].createElement(Icon, { icon: SvgTrash, className: classes.deleteIcon })))),
1499
1372
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 16, alignItems: "center" },
@@ -1841,6 +1714,12 @@ var MenuDropdown = function (props) {
1841
1714
  }, className: classes.select }, menuOptions.map(function (option, index) { return (React__default['default'].createElement(core.MenuItem, { key: index, value: option.id }, option.name)); }))));
1842
1715
  };
1843
1716
 
1717
+ var useMenuFilterStyles = styles.makeStyles(function () { return ({
1718
+ triggerLabel: {
1719
+ whiteSpace: 'nowrap',
1720
+ },
1721
+ }); });
1722
+
1844
1723
  var _path;
1845
1724
 
1846
1725
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -1857,74 +1736,40 @@ function SvgLeafIcon(props) {
1857
1736
  })));
1858
1737
  }
1859
1738
 
1860
- var useMenuFilterStyles = styles.makeStyles(function (theme) { return ({
1861
- chipButton: {
1862
- position: 'static',
1863
- },
1864
- container: {
1865
- alignItems: 'center',
1866
- display: 'flex',
1867
- flexWrap: 'wrap',
1868
- gridGap: theme.spacing(0.5),
1869
- },
1870
- filterButton: {
1871
- maxHeight: theme.spacing(4.5),
1872
- position: 'static',
1873
- textTransform: 'none',
1874
- },
1875
- tagText: {
1876
- color: theme.palette.grey[900],
1877
- },
1878
- }); });
1879
-
1880
1739
  var MenuFilter = function (props) {
1881
- var filterOptions = props.filterOptions, onFilter = props.onFilter, activeFilters = props.activeFilters;
1882
- var _a = React.useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
1883
- var open = Boolean(anchorEl);
1884
- var hasActiveFilters = activeFilters.length > 0;
1885
- var allFiltersActive = filterOptions.length === 0;
1740
+ var options = props.options, onChange = props.onChange, value = props.value, _a = props.triggerLabel, triggerLabel = _a === void 0 ? 'Add Filter' : _a, _b = props.noOptionsLabel, noOptionsLabel = _b === void 0 ? 'All filters have been added' : _b;
1741
+ var triggerId = 'menu-filter-trigger';
1742
+ var popoverId = 'menu-filter-popover';
1886
1743
  var classes = useMenuFilterStyles();
1887
- var handleChange = function (event) {
1888
- onFilter({ target: { value: event.currentTarget.value } });
1744
+ var _c = React.useState(null), anchorEl = _c[0], setAnchorEl = _c[1];
1745
+ var open = Boolean(anchorEl);
1746
+ var optionIds = options.map(function (opt) { return opt.id; });
1747
+ var valueIds = value.map(function (val) { return val.id; });
1748
+ var availableIds = optionIds.filter(function (optionId) { return !valueIds.includes(optionId); });
1749
+ var availableFilters = options.filter(function (opt) { return availableIds.includes(opt.id); });
1750
+ var allFiltersSelected = availableFilters.length === 0;
1751
+ var handleChange = function (value, event) {
1752
+ onChange(value, event);
1889
1753
  setAnchorEl(null);
1890
1754
  };
1891
- var handleClick = function (event) {
1755
+ var handleTriggerClick = function (event) {
1892
1756
  setAnchorEl(event.currentTarget);
1893
1757
  };
1894
1758
  var handleClose = function () {
1895
1759
  setAnchorEl(null);
1896
1760
  };
1897
- var handleChipDelete = function (filterId) {
1898
- onFilter({ target: { value: filterId } });
1899
- setAnchorEl(null);
1900
- };
1901
- return (React__default['default'].createElement(core.Box, { display: "flex" },
1902
- React__default['default'].createElement(core.Box, { className: classes.container },
1903
- React__default['default'].createElement(core.Button, { id: "menu-filter-button", "aria-controls": open ? 'filter-menu' : undefined, "aria-haspopup": "true", "aria-expanded": open ? 'true' : undefined, onClick: handleClick, size: "small", className: classes.filterButton },
1904
- React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", padding: 1 },
1905
- React__default['default'].createElement(Icon, { icon: SvgLeafIcon }),
1906
- React__default['default'].createElement(core.Box, { marginLeft: 1 },
1907
- React__default['default'].createElement(Typography, { variant: "caption", color: "info.light" }, "Add Filter")))),
1908
- hasActiveFilters &&
1909
- activeFilters.map(function (filter, index) { return (React__default['default'].createElement(Chip, { key: index, onClick: function () { return handleChipDelete(filter.id); }, className: classes.chipButton, label: React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center" },
1910
- React__default['default'].createElement(core.Box, { marginLeft: -0.75, marginRight: 0.75 },
1911
- React__default['default'].createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr)),
1912
- React__default['default'].createElement(Typography, { className: classes.tagText, variant: "caption" }, filter.name),
1913
- React__default['default'].createElement(core.Box, { display: "flex", marginLeft: 0.75, marginRight: -0.75 },
1914
- React__default['default'].createElement(Icon, { icon: SvgXCircle, size: "large", color: "#9E9E9E" }))) })); })),
1915
- React__default['default'].createElement(core.Menu, { id: "menu-filter-menu", anchorEl: anchorEl, open: open, onClose: handleClose, MenuListProps: {
1916
- 'aria-labelledby': 'menu-filter-button',
1917
- } },
1918
- !allFiltersActive &&
1919
- filterOptions.map(function (option, index) {
1920
- return (React__default['default'].createElement(core.MenuItem, { key: index, value: option.id, onClick: handleChange },
1921
- React__default['default'].createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
1922
- React__default['default'].createElement(core.Box, { ml: 1 }, option.name)));
1923
- }),
1924
- allFiltersActive && (React__default['default'].createElement(core.MenuItem, { onClick: handleClose },
1761
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
1762
+ React__default['default'].createElement(core.Button, { id: triggerId, "aria-controls": popoverId, "aria-haspopup": "true", "aria-expanded": open, onClick: handleTriggerClick, size: "small", startIcon: React__default['default'].createElement(SvgLeafIcon, null), classes: { label: classes.triggerLabel } }, triggerLabel),
1763
+ React__default['default'].createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose },
1764
+ availableFilters.map(function (option, index) {
1765
+ return (React__default['default'].createElement(core.MenuItem, { key: index, value: option.id, onClick: function (event) { return handleChange(option, event); } },
1766
+ React__default['default'].createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
1767
+ React__default['default'].createElement(core.Box, { ml: 1 }, option.name)));
1768
+ }),
1769
+ allFiltersSelected && (React__default['default'].createElement(core.MenuItem, { onClick: handleClose },
1925
1770
  React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", alignItems: "center" },
1926
1771
  React__default['default'].createElement(Icon, { icon: SvgTag, color: "#9E9E9E", size: "large" }),
1927
- React__default['default'].createElement(Typography, { variant: "body1", color: "grey.500" }, "All filters have been added")))))));
1772
+ React__default['default'].createElement(Typography, { variant: "body1", color: "grey.500" }, noOptionsLabel)))))));
1928
1773
  };
1929
1774
 
1930
1775
  var useQuantityPickerStyles = styles.makeStyles(function (theme) { return ({
@@ -2040,6 +1885,30 @@ var SelectableChipGroup = function (props) {
2040
1885
  React__default['default'].createElement(core.Box, { minWidth: "1px" })));
2041
1886
  };
2042
1887
 
1888
+ var useStyles = core.makeStyles(function (_a) {
1889
+ var spacing = _a.spacing;
1890
+ return ({
1891
+ root: {
1892
+ padding: spacing(0.5, 0),
1893
+ height: 'unset',
1894
+ borderRadius: 4,
1895
+ },
1896
+ label: {
1897
+ paddingLeft: 8,
1898
+ display: 'flex',
1899
+ gridGap: 8,
1900
+ alignItems: 'center',
1901
+ },
1902
+ });
1903
+ });
1904
+ var SelectedMenuFiltersList = function (props) {
1905
+ var filters = props.filters, onChipClick = props.onChipClick;
1906
+ var classes = useStyles();
1907
+ return (React__default['default'].createElement(React__default['default'].Fragment, null, filters.map(function (filter, index) { return (React__default['default'].createElement(core.Chip, { key: filter.name + "-" + index, classes: classes, deleteIcon: React__default['default'].createElement(SvgXCircle, null), onDelete: function (event) { return onChipClick(filter, event); }, label: React__default['default'].createElement(React__default['default'].Fragment, null,
1908
+ React__default['default'].createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr),
1909
+ React__default['default'].createElement(core.Typography, { variant: "caption" }, filter.name)) })); })));
1910
+ };
1911
+
2043
1912
  var palette = {
2044
1913
  primary: {
2045
1914
  light: '#7B7FA3',
@@ -2169,6 +2038,7 @@ exports.ReactionCounter = ReactionCounter;
2169
2038
  exports.ReactionCounterGroup = ReactionCounterGroup;
2170
2039
  exports.SelectableChip = SelectableChip;
2171
2040
  exports.SelectableChipGroup = SelectableChipGroup;
2041
+ exports.SelectedMenuFiltersList = SelectedMenuFiltersList;
2172
2042
  exports.StatusTag = StatusTag;
2173
2043
  exports.orderingTheme = orderingTheme;
2174
2044
  Object.keys(core).forEach(function (k) {