@popmenu/dashboard 0.44.0 → 0.45.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
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- require('@material-ui/lab/Alert');
7
6
  var core = require('@material-ui/core');
7
+ require('@material-ui/lab/Alert');
8
8
  require('@material-ui/core/AppBar');
9
9
  var MuiAvatar = require('@material-ui/core/Avatar');
10
10
  var styles = require('@material-ui/core/styles');
@@ -169,19 +169,19 @@ function __rest(s, e) {
169
169
  return t;
170
170
  }
171
171
 
172
- var _path$F;
172
+ var _path$E;
173
173
 
174
- function _extends$1s() { _extends$1s = 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$1s.apply(this, arguments); }
174
+ function _extends$1t() { _extends$1t = 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$1t.apply(this, arguments); }
175
175
 
176
176
  function SvgUser(props) {
177
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1s({
177
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1t({
178
178
  viewBox: "0 0 16 16",
179
179
  fill: "none",
180
180
  strokeLinecap: "round",
181
181
  strokeLinejoin: "round",
182
182
  width: "1em",
183
183
  height: "1em"
184
- }, props), _path$F || (_path$F = /*#__PURE__*/React__namespace.createElement("path", {
184
+ }, props), _path$E || (_path$E = /*#__PURE__*/React__namespace.createElement("path", {
185
185
  d: "M13.333 14v-1.333A2.667 2.667 0 0010.667 10H5.333a2.667 2.667 0 00-2.666 2.667V14M8 7.333A2.667 2.667 0 108 2a2.667 2.667 0 000 5.333z",
186
186
  stroke: "currentColor"
187
187
  })));
@@ -824,6 +824,66 @@ core.makeStyles(function (theme) { return ({
824
824
  },
825
825
  }); });
826
826
 
827
+ var _path$16;
828
+
829
+ 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); }
830
+
831
+ function SvgChevronDown(props) {
832
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2r({
833
+ viewBox: "0 0 16 16",
834
+ fill: "none",
835
+ strokeLinecap: "round",
836
+ strokeLinejoin: "round",
837
+ width: "1em",
838
+ height: "1em"
839
+ }, props), _path$16 || (_path$16 = /*#__PURE__*/React__namespace.createElement("path", {
840
+ d: "M4 6l4 4 4-4",
841
+ stroke: "currentColor"
842
+ })));
843
+ }
844
+
845
+ var _g$P;
846
+
847
+ function _extends$1v() { _extends$1v = 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$1v.apply(this, arguments); }
848
+
849
+ function SvgTrend(props) {
850
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1v({
851
+ viewBox: "0 0 16 16",
852
+ fill: "none",
853
+ strokeLinecap: "round",
854
+ strokeLinejoin: "round",
855
+ width: "1em",
856
+ height: "1em"
857
+ }, props), _g$P || (_g$P = /*#__PURE__*/React__namespace.createElement("g", {
858
+ stroke: "currentColor"
859
+ }, /*#__PURE__*/React__namespace.createElement("path", {
860
+ d: "M15.333 4L9 10.333 5.667 7l-5 5"
861
+ }), /*#__PURE__*/React__namespace.createElement("path", {
862
+ d: "M11.333 4h4v4"
863
+ }))));
864
+ }
865
+
866
+ var _g$O;
867
+
868
+ function _extends$1u() { _extends$1u = 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$1u.apply(this, arguments); }
869
+
870
+ function SvgTrendDown(props) {
871
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1u({
872
+ viewBox: "0 0 16 16",
873
+ fill: "none",
874
+ strokeLinecap: "round",
875
+ strokeLinejoin: "round",
876
+ width: "1em",
877
+ height: "1em"
878
+ }, props), _g$O || (_g$O = /*#__PURE__*/React__namespace.createElement("g", {
879
+ stroke: "currentColor"
880
+ }, /*#__PURE__*/React__namespace.createElement("path", {
881
+ d: "M15.333 12L9 5.667 5.667 9l-5-5"
882
+ }), /*#__PURE__*/React__namespace.createElement("path", {
883
+ d: "M11.333 12h4V8"
884
+ }))));
885
+ }
886
+
827
887
  var useLeaderboardStyles = core.makeStyles(function (theme) { return ({
828
888
  root: {
829
889
  '& >:nth-child(even) > li': {
@@ -837,6 +897,17 @@ var useLeaderboardListItemStyles = core.makeStyles(function (theme) { return ({
837
897
  textDecoration: 'none',
838
898
  },
839
899
  }); });
900
+ var useLeaderboardFilterStyles = core.makeStyles(function (theme) { return ({
901
+ filterWrapper: {
902
+ alignItems: 'center',
903
+ cursor: 'pointer',
904
+ display: 'flex',
905
+ },
906
+ text: {
907
+ fontSize: '12px',
908
+ paddingRight: theme.spacing(1),
909
+ },
910
+ }); });
840
911
  var useMoreLinkStyles = core.makeStyles(function (theme) { return ({
841
912
  link: {
842
913
  color: theme.palette.info.main,
@@ -845,16 +916,17 @@ var useMoreLinkStyles = core.makeStyles(function (theme) { return ({
845
916
  }); });
846
917
 
847
918
  var Leaderboard = function (props) {
848
- var data = props.data, EmptyState = props.EmptyState, title = props.title, moreLink = props.moreLink, subtitle = props.subtitle;
919
+ var data = props.data, EmptyState = props.EmptyState, filterProps = props.filterProps, title = props.title, moreLink = props.moreLink, subtitle = props.subtitle;
849
920
  var classes = useLeaderboardStyles(props);
850
921
  var isEmpty = data.length === 0;
851
922
  var slicedData = data.slice(0, 5);
852
923
  var isOverflow = data.length > 5;
853
- var showMoreButton = !isEmpty && isOverflow;
924
+ var showMoreButton = !isEmpty && ((moreLink === null || moreLink === void 0 ? void 0 : moreLink.show) || isOverflow);
854
925
  return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column" },
855
926
  React__default['default'].createElement(core.Box, { alignItems: "left" },
856
- React__default['default'].createElement(Typography, { variant: "h4" }, title),
857
- React__default['default'].createElement(Typography, { variant: "body2" }, subtitle)),
927
+ React__default['default'].createElement(Typography, { variant: "h5" }, title),
928
+ React__default['default'].createElement(Typography, { className: classes.text }, subtitle),
929
+ filterProps && React__default['default'].createElement(LeaderboardFilter, __assign$1({}, filterProps))),
858
930
  !isEmpty ? (React__default['default'].createElement(List__default['default'], { classes: classes }, slicedData.map(function (itemProps, index) { return (React__default['default'].createElement(LeaderboardListItem, __assign$1({ key: "tile-list-item-" + index }, itemProps))); }))) : (EmptyState),
859
931
  moreLink && showMoreButton && React__default['default'].createElement(MoreLink, { text: moreLink.text, to: moreLink.to })));
860
932
  };
@@ -869,6 +941,38 @@ var LeaderboardListItem = function (props) {
869
941
  React__default['default'].createElement(Avatar, __assign$1({}, image), ItemIcon && React__default['default'].createElement(Icon, { icon: ItemIcon })))),
870
942
  React__default['default'].createElement(ListItemText__default['default'], { primary: title, secondary: subtitle }))));
871
943
  };
944
+ var LeaderboardFilter = function (props) {
945
+ var onChange = props.onChange, options = props.options, text = props.text;
946
+ var classes = useLeaderboardFilterStyles(props);
947
+ var _a = React.useState(false), open = _a[0], setOpen = _a[1];
948
+ var _b = React.useState(null), menuAnchor = _b[0], setMenuAnchor = _b[1];
949
+ var _c = React.useState(null), selection = _c[0], setSelection = _c[1];
950
+ var handleOpen = function (event) {
951
+ setMenuAnchor(event.currentTarget);
952
+ setOpen(true);
953
+ };
954
+ var handleClose = function () {
955
+ setMenuAnchor(null);
956
+ setOpen(false);
957
+ };
958
+ var handleSelection = function (label, value) {
959
+ if (typeof onChange === 'function') {
960
+ onChange(value);
961
+ }
962
+ setSelection(label);
963
+ handleClose();
964
+ };
965
+ if (options.length < 1)
966
+ return null;
967
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
968
+ React__default['default'].createElement(core.Box, { className: classes.filterWrapper, pt: 1, onClick: handleOpen },
969
+ React__default['default'].createElement(Typography, { className: classes.text }, selection || text),
970
+ React__default['default'].createElement(Icon, { icon: SvgChevronDown })),
971
+ React__default['default'].createElement(core.Menu, { anchorEl: menuAnchor, onClose: handleClose, open: open }, options.map(function (_a) {
972
+ var label = _a.label, value = _a.value;
973
+ return (React__default['default'].createElement(core.MenuItem, { key: value, onClick: function () { return handleSelection(label, value); } }, label));
974
+ }))));
975
+ };
872
976
  var MoreLink = function (props) {
873
977
  var text = props.text, to = props.to;
874
978
  var classes = useMoreLinkStyles(props);
@@ -901,48 +1005,6 @@ var LeaderboardTile = function (props) {
901
1005
  React__default['default'].createElement(Leaderboard, __assign$1({}, restProps))));
902
1006
  };
903
1007
 
904
- var _g$P;
905
-
906
- function _extends$1v() { _extends$1v = 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$1v.apply(this, arguments); }
907
-
908
- function SvgTrend(props) {
909
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1v({
910
- viewBox: "0 0 16 16",
911
- fill: "none",
912
- strokeLinecap: "round",
913
- strokeLinejoin: "round",
914
- width: "1em",
915
- height: "1em"
916
- }, props), _g$P || (_g$P = /*#__PURE__*/React__namespace.createElement("g", {
917
- stroke: "currentColor"
918
- }, /*#__PURE__*/React__namespace.createElement("path", {
919
- d: "M15.333 4L9 10.333 5.667 7l-5 5"
920
- }), /*#__PURE__*/React__namespace.createElement("path", {
921
- d: "M11.333 4h4v4"
922
- }))));
923
- }
924
-
925
- var _g$O;
926
-
927
- function _extends$1u() { _extends$1u = 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$1u.apply(this, arguments); }
928
-
929
- function SvgTrendDown(props) {
930
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1u({
931
- viewBox: "0 0 16 16",
932
- fill: "none",
933
- strokeLinecap: "round",
934
- strokeLinejoin: "round",
935
- width: "1em",
936
- height: "1em"
937
- }, props), _g$O || (_g$O = /*#__PURE__*/React__namespace.createElement("g", {
938
- stroke: "currentColor"
939
- }, /*#__PURE__*/React__namespace.createElement("path", {
940
- d: "M15.333 12L9 5.667 5.667 9l-5-5"
941
- }), /*#__PURE__*/React__namespace.createElement("path", {
942
- d: "M11.333 12h4V8"
943
- }))));
944
- }
945
-
946
1008
  var useKpiMetricStyles = core.makeStyles(function (theme) { return ({
947
1009
  iconContainer: {
948
1010
  fontSize: theme.spacing(3),