@webiny/ui 5.33.5 → 5.34.0-beta.1

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.
Files changed (80) hide show
  1. package/Accordion/Accordion.js +1 -5
  2. package/Accordion/Accordion.js.map +1 -1
  3. package/Accordion/AccordionItem.d.ts +18 -2
  4. package/Accordion/AccordionItem.js +46 -48
  5. package/Accordion/AccordionItem.js.map +1 -1
  6. package/Accordion/AccordionItemActions.d.ts +8 -0
  7. package/Accordion/AccordionItemActions.js +36 -0
  8. package/Accordion/AccordionItemActions.js.map +1 -0
  9. package/Alert/Alert.d.ts +1 -1
  10. package/Alert/Alert.js +1 -1
  11. package/Alert/Alert.js.map +1 -1
  12. package/Button/Button.d.ts +30 -1
  13. package/Button/Button.js +2 -3
  14. package/Button/Button.js.map +1 -1
  15. package/CodeEditor/CodeEditor.d.ts +2 -0
  16. package/CodeEditor/CodeEditor.js +4 -0
  17. package/CodeEditor/CodeEditor.js.map +1 -1
  18. package/DataTable/DataTable.d.ts +22 -0
  19. package/DataTable/DataTable.js +162 -0
  20. package/DataTable/DataTable.js.map +1 -0
  21. package/DataTable/DataTable.stories.d.ts +1 -0
  22. package/DataTable/DataTable.stories.js +77 -0
  23. package/DataTable/DataTable.stories.js.map +1 -0
  24. package/DataTable/README.md +72 -0
  25. package/DataTable/index.d.ts +1 -0
  26. package/DataTable/index.js +18 -0
  27. package/DataTable/index.js.map +1 -0
  28. package/DataTable/styled.d.ts +2 -0
  29. package/DataTable/styled.js +18 -0
  30. package/DataTable/styled.js.map +1 -0
  31. package/DelayedOnChange/DelayedOnChange.d.ts +40 -0
  32. package/DelayedOnChange/DelayedOnChange.js +129 -0
  33. package/DelayedOnChange/DelayedOnChange.js.map +1 -0
  34. package/DelayedOnChange/index.d.ts +2 -0
  35. package/DelayedOnChange/index.js +23 -0
  36. package/DelayedOnChange/index.js.map +1 -0
  37. package/DelayedOnChange/withDelayedOnChange.d.ts +3 -0
  38. package/DelayedOnChange/withDelayedOnChange.js +37 -0
  39. package/DelayedOnChange/withDelayedOnChange.js.map +1 -0
  40. package/Dialog/Dialog.js +5 -2
  41. package/Dialog/Dialog.js.map +1 -1
  42. package/Image/Image.js +3 -1
  43. package/Image/Image.js.map +1 -1
  44. package/ImageUpload/styled.d.ts +3 -3
  45. package/Input/Input.d.ts +1 -1
  46. package/Input/Input.js.map +1 -1
  47. package/List/DataList/DataList.js +11 -52
  48. package/List/DataList/DataList.js.map +1 -1
  49. package/List/DataList/Loader.d.ts +2 -2
  50. package/List/DataList/Loader.js +35 -49
  51. package/List/DataList/Loader.js.map +1 -1
  52. package/Menu/Menu.js +5 -1
  53. package/Menu/Menu.js.map +1 -1
  54. package/Skeleton/README.md +21 -0
  55. package/Skeleton/Skeleton.d.ts +4 -0
  56. package/Skeleton/Skeleton.js +25 -0
  57. package/Skeleton/Skeleton.js.map +1 -0
  58. package/Skeleton/Skeleton.stories.d.ts +1 -0
  59. package/Skeleton/Skeleton.stories.js +28 -0
  60. package/Skeleton/Skeleton.stories.js.map +1 -0
  61. package/Skeleton/index.d.ts +1 -0
  62. package/Skeleton/index.js +18 -0
  63. package/Skeleton/index.js.map +1 -0
  64. package/Switch/Switch.d.ts +1 -1
  65. package/Switch/Switch.js.map +1 -1
  66. package/Tabs/Tab.d.ts +1 -0
  67. package/Tabs/Tab.js +4 -1
  68. package/Tabs/Tab.js.map +1 -1
  69. package/Tabs/Tabs.d.ts +1 -0
  70. package/Tabs/Tabs.js +8 -1
  71. package/Tabs/Tabs.js.map +1 -1
  72. package/Tags/Tags.d.ts +8 -15
  73. package/Tags/Tags.js +83 -112
  74. package/Tags/Tags.js.map +1 -1
  75. package/Typography/Typography.d.ts +2 -2
  76. package/Typography/Typography.js.map +1 -1
  77. package/package.json +19 -17
  78. package/styles.scss +2 -3
  79. package/types.d.ts +3 -3
  80. package/types.js.map +1 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = withDelayedOnChange;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _DelayedOnChange = _interopRequireDefault(require("./DelayedOnChange"));
15
+
16
+ var _excluded = ["value", "onChange"];
17
+
18
+ function withDelayedOnChange() {
19
+ return function decorator(Component) {
20
+ return function WithDelayedOnChange(props) {
21
+ var value = props.value,
22
+ onChange = props.onChange,
23
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
24
+ return /*#__PURE__*/_react.default.createElement(_DelayedOnChange.default, {
25
+ value: value,
26
+ onChange: onChange
27
+ }, function (_ref) {
28
+ var value = _ref.value,
29
+ onChange = _ref.onChange;
30
+ return /*#__PURE__*/_react.default.createElement(Component, Object.assign({}, rest, {
31
+ value: value,
32
+ onChange: onChange
33
+ }));
34
+ });
35
+ };
36
+ };
37
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["withDelayedOnChange","decorator","Component","WithDelayedOnChange","props","value","onChange","rest"],"sources":["withDelayedOnChange.tsx"],"sourcesContent":["import React from \"react\";\nimport Delayed, { DelayedOnChangeProps } from \"./DelayedOnChange\";\n\nexport default function withDelayedOnChange() {\n return function decorator(Component: React.FC<DelayedOnChangeProps>) {\n return function WithDelayedOnChange(props: DelayedOnChangeProps) {\n const { value, onChange, ...rest } = props;\n return (\n <Delayed value={value} onChange={onChange}>\n {({ value, onChange }) => (\n <Component {...rest} value={value} onChange={onChange} />\n )}\n </Delayed>\n );\n };\n };\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;AAEe,SAASA,mBAAT,GAA+B;EAC1C,OAAO,SAASC,SAAT,CAAmBC,SAAnB,EAA8D;IACjE,OAAO,SAASC,mBAAT,CAA6BC,KAA7B,EAA0D;MAC7D,IAAQC,KAAR,GAAqCD,KAArC,CAAQC,KAAR;MAAA,IAAeC,QAAf,GAAqCF,KAArC,CAAeE,QAAf;MAAA,IAA4BC,IAA5B,0CAAqCH,KAArC;MACA,oBACI,6BAAC,wBAAD;QAAS,KAAK,EAAEC,KAAhB;QAAuB,QAAQ,EAAEC;MAAjC,GACK;QAAA,IAAGD,KAAH,QAAGA,KAAH;QAAA,IAAUC,QAAV,QAAUA,QAAV;QAAA,oBACG,6BAAC,SAAD,oBAAeC,IAAf;UAAqB,KAAK,EAAEF,KAA5B;UAAmC,QAAQ,EAAEC;QAA7C,GADH;MAAA,CADL,CADJ;IAOH,CATD;EAUH,CAXD;AAYH"}
package/Dialog/Dialog.js CHANGED
@@ -27,6 +27,8 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
27
27
 
28
28
  var _dialog = require("@rmwc/dialog");
29
29
 
30
+ var _emotion = require("emotion");
31
+
30
32
  var _Helpers = require("../Helpers");
31
33
 
32
34
  var _excluded = ["children"];
@@ -93,12 +95,13 @@ var DialogContent = function DialogContent(props) {
93
95
  };
94
96
 
95
97
  exports.DialogContent = DialogContent;
96
-
98
+ var addMargin = /*#__PURE__*/(0, _emotion.css)("button:last-of-type{margin-left:8px;}label:addMargin;");
97
99
  /**
98
100
  * Can be used to show accept and cancel buttons.
99
101
  */
102
+
100
103
  var DialogActions = function DialogActions(props) {
101
- return /*#__PURE__*/_react.default.createElement(_dialog.DialogActions, (0, _Helpers.getClasses)(props, "webiny-ui-dialog__actions"));
104
+ return /*#__PURE__*/_react.default.createElement(_dialog.DialogActions, (0, _Helpers.getClasses)(props, [addMargin, "webiny-ui-dialog__actions"]));
102
105
  };
103
106
 
104
107
  exports.DialogActions = DialogActions;
@@ -1 +1 @@
1
- {"version":3,"names":["Dialog","props","container","document","getElementById","createElement","setAttribute","body","appendChild","children","ReactDOM","createPortal","getClasses","React","Component","DialogTitle","DialogContent","DialogActions","DialogButton","DialogCancel","DialogAccept"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {\n Dialog as RmwcDialog,\n DialogProps as RmwcDialogProps,\n DialogOnCloseEventT,\n DialogContent as RmwcDialogContent,\n DialogContentProps as RmwcDialogContentProps,\n DialogTitle as RmwcDialogTitle,\n DialogTitleProps as RmwcDialogTitleProps,\n DialogActions as RmwcDialogActions,\n DialogActionsProps as RmwcDialogActionsProps,\n DialogButton as RmwcDialogButton,\n DialogButtonProps as RmwcDialogButtonProps\n} from \"@rmwc/dialog\";\nimport { getClasses } from \"~/Helpers\";\n\nexport type DialogOnClose = (event: DialogOnCloseEventT) => void;\n\nexport interface DialogProps extends RmwcDialogProps {\n className?: string;\n\n // Component's custom in-line styles.\n style?: React.CSSProperties;\n\n // If true, dialog will be permanently fixed inside of a view (works for temporary and persistent modes).\n open?: boolean;\n\n onClose?: (evt: DialogOnCloseEventT) => void;\n\n preventOutsideDismiss?: boolean;\n}\n\nexport class Dialog extends React.Component<DialogProps> {\n container: HTMLElement;\n\n constructor(props: DialogProps) {\n super(props);\n /**\n * We can safely cast\n */\n this.container = document.getElementById(\"dialog-container\") as HTMLElement;\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"dialog-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const { children, ...props } = this.props;\n const container = this.container;\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <RmwcDialog {...getClasses(props, \"webiny-ui-dialog\")}>{children}</RmwcDialog>,\n container\n );\n }\n}\n\nexport interface DialogTitleProps extends RmwcDialogTitleProps {\n /**\n * Title text.\n */\n children: React.ReactNode[] | React.ReactNode;\n}\n\n/**\n * Dialog's header, which can accept DialogHeaderTitle component or any other set of components.\n */\nexport const DialogTitle: React.FC<DialogTitleProps> = props => (\n <RmwcDialogTitle {...getClasses(props, \"webiny-ui-dialog__title\")} />\n);\n\nexport type DialogContentProps = RmwcDialogContentProps & {\n /**\n * Dialog content.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n className?: string;\n};\n\n/**\n * A simple component for showing dialog's body.\n */\nexport const DialogContent: React.FC<DialogContentProps> = props => (\n <RmwcDialogContent {...getClasses(props, \"webiny-ui-dialog__content\")} />\n);\n\nexport interface DialogActionsProps extends RmwcDialogActionsProps {\n /**\n * Action buttons.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n // Dialog component's custom in-line styles.\n style?: React.CSSProperties;\n}\n\n/**\n * Can be used to show accept and cancel buttons.\n */\nexport const DialogActions: React.FC<DialogActionsProps> = props => (\n <RmwcDialogActions {...getClasses(props, \"webiny-ui-dialog__actions\")} />\n);\n\ninterface DialogButtonProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n\n className?: string;\n}\n\n/**\n * Use this to show a simple button.\n */\nexport const DialogButton: React.FC<DialogButtonProps> = props => (\n <RmwcDialogButton {...getClasses(props, \"webiny-ui-dialog__button\")} />\n);\n\ninterface DialogCancelProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogCancel: React.FC<DialogCancelProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--cancel\")}\n action=\"close\"\n data-testid=\"dialog-cancel\"\n >\n {props.children}\n </DialogButton>\n );\n};\n\ninterface DialogAcceptProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogAccept: React.FC<DialogAcceptProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--accept\")}\n action=\"accept\"\n data-testid=\"dialog-accept\"\n >\n {props.children}\n </DialogButton>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAaA;;;;IAkBaA,M;;;;;EAGT,gBAAYC,KAAZ,EAAgC;IAAA;;IAAA;IAC5B,0BAAMA,KAAN;IACA;AACR;AACA;;IAJoC;IAK5B,MAAKC,SAAL,GAAiBC,QAAQ,CAACC,cAAT,CAAwB,kBAAxB,CAAjB;;IAEA,IAAI,CAAC,MAAKF,SAAV,EAAqB;MACjB,MAAKA,SAAL,GAAiBC,QAAQ,CAACE,aAAT,CAAuB,KAAvB,CAAjB;;MACA,MAAKH,SAAL,CAAeI,YAAf,CAA4B,IAA5B,EAAkC,kBAAlC;;MACA,IAAMJ,SAAS,GAAG,MAAKA,SAAvB;MACAC,QAAQ,CAACI,IAAT,IAAiBJ,QAAQ,CAACI,IAAT,CAAcC,WAAd,CAA0BN,SAA1B,CAAjB;IACH;;IAZ2B;EAa/B;;;;WAED,kBAAyB;MACrB,kBAA+B,KAAKD,KAApC;MAAA,IAAQQ,QAAR,eAAQA,QAAR;MAAA,IAAqBR,KAArB;MACA,IAAMC,SAAS,GAAG,KAAKA,SAAvB,CAFqB,CAIrB;;MACA,oBAAOQ,iBAAA,CAASC,YAAT,eACH,6BAAC,cAAD,EAAgB,IAAAC,mBAAA,EAAWX,KAAX,EAAkB,kBAAlB,CAAhB,EAAwDQ,QAAxD,CADG,EAEHP,SAFG,CAAP;IAIH;;;EA3BuBW,cAAA,CAAMC,S;;;;AAqClC;AACA;AACA;AACO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAAAd,KAAK;EAAA,oBACxD,6BAAC,mBAAD,EAAqB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,yBAAlB,CAArB,CADwD;AAAA,CAArD;;;;AAaP;AACA;AACA;AACO,IAAMe,aAA2C,GAAG,SAA9CA,aAA8C,CAAAf,KAAK;EAAA,oBAC5D,6BAAC,qBAAD,EAAuB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2BAAlB,CAAvB,CAD4D;AAAA,CAAzD;;;;AAcP;AACA;AACA;AACO,IAAMgB,aAA2C,GAAG,SAA9CA,aAA8C,CAAAhB,KAAK;EAAA,oBAC5D,6BAAC,qBAAD,EAAuB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2BAAlB,CAAvB,CAD4D;AAAA,CAAzD;;;;AAaP;AACA;AACA;AACO,IAAMiB,YAAyC,GAAG,SAA5CA,YAA4C,CAAAjB,KAAK;EAAA,oBAC1D,6BAAC,oBAAD,EAAsB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,0BAAlB,CAAtB,CAD0D;AAAA,CAAvD;;;;AAWP;AACA;AACA;AACO,IAAMkB,YAAyC,GAAG,SAA5CA,YAA4C,CAAAlB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAD,oBACQ,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2DAAlB,CADR;IAEI,MAAM,EAAC,OAFX;IAGI,eAAY;EAHhB,IAKKA,KAAK,CAACQ,QALX,CADJ;AASH,CAVM;;;;AAmBP;AACA;AACA;AACO,IAAMW,YAAyC,GAAG,SAA5CA,YAA4C,CAAAnB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAD,oBACQ,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2DAAlB,CADR;IAEI,MAAM,EAAC,QAFX;IAGI,eAAY;EAHhB,IAKKA,KAAK,CAACQ,QALX,CADJ;AASH,CAVM"}
1
+ {"version":3,"names":["Dialog","props","container","document","getElementById","createElement","setAttribute","body","appendChild","children","ReactDOM","createPortal","getClasses","React","Component","DialogTitle","DialogContent","addMargin","css","DialogActions","DialogButton","DialogCancel","DialogAccept"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {\n Dialog as RmwcDialog,\n DialogProps as RmwcDialogProps,\n DialogOnCloseEventT,\n DialogContent as RmwcDialogContent,\n DialogContentProps as RmwcDialogContentProps,\n DialogTitle as RmwcDialogTitle,\n DialogTitleProps as RmwcDialogTitleProps,\n DialogActions as RmwcDialogActions,\n DialogActionsProps as RmwcDialogActionsProps,\n DialogButton as RmwcDialogButton,\n DialogButtonProps as RmwcDialogButtonProps\n} from \"@rmwc/dialog\";\nimport { css } from \"emotion\";\nimport { getClasses } from \"~/Helpers\";\n\nexport type DialogOnClose = (event: DialogOnCloseEventT) => void;\n\nexport interface DialogProps extends RmwcDialogProps {\n className?: string;\n\n // Component's custom in-line styles.\n style?: React.CSSProperties;\n\n // If true, dialog will be permanently fixed inside of a view (works for temporary and persistent modes).\n open?: boolean;\n\n onClose?: (evt: DialogOnCloseEventT) => void;\n\n preventOutsideDismiss?: boolean;\n}\n\nexport class Dialog extends React.Component<DialogProps> {\n container: HTMLElement;\n\n constructor(props: DialogProps) {\n super(props);\n /**\n * We can safely cast\n */\n this.container = document.getElementById(\"dialog-container\") as HTMLElement;\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"dialog-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const { children, ...props } = this.props;\n const container = this.container;\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <RmwcDialog {...getClasses(props, \"webiny-ui-dialog\")}>{children}</RmwcDialog>,\n container\n );\n }\n}\n\nexport interface DialogTitleProps extends RmwcDialogTitleProps {\n /**\n * Title text.\n */\n children: React.ReactNode[] | React.ReactNode;\n}\n\n/**\n * Dialog's header, which can accept DialogHeaderTitle component or any other set of components.\n */\nexport const DialogTitle: React.FC<DialogTitleProps> = props => (\n <RmwcDialogTitle {...getClasses(props, \"webiny-ui-dialog__title\")} />\n);\n\nexport type DialogContentProps = RmwcDialogContentProps & {\n /**\n * Dialog content.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n className?: string;\n};\n\n/**\n * A simple component for showing dialog's body.\n */\nexport const DialogContent: React.FC<DialogContentProps> = props => (\n <RmwcDialogContent {...getClasses(props, \"webiny-ui-dialog__content\")} />\n);\n\nexport interface DialogActionsProps extends RmwcDialogActionsProps {\n /**\n * Action buttons.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n // Dialog component's custom in-line styles.\n style?: React.CSSProperties;\n}\n\nconst addMargin = css`\n button:last-of-type {\n margin-left: 8px;\n }\n`;\n\n/**\n * Can be used to show accept and cancel buttons.\n */\nexport const DialogActions: React.FC<DialogActionsProps> = props => (\n <RmwcDialogActions {...getClasses(props, [addMargin, \"webiny-ui-dialog__actions\"])} />\n);\n\ninterface DialogButtonProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n\n className?: string;\n}\n\n/**\n * Use this to show a simple button.\n */\nexport const DialogButton: React.FC<DialogButtonProps> = props => (\n <RmwcDialogButton {...getClasses(props, \"webiny-ui-dialog__button\")} />\n);\n\ninterface DialogCancelProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogCancel: React.FC<DialogCancelProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--cancel\")}\n action=\"close\"\n data-testid=\"dialog-cancel\"\n >\n {props.children}\n </DialogButton>\n );\n};\n\ninterface DialogAcceptProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogAccept: React.FC<DialogAcceptProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--accept\")}\n action=\"accept\"\n data-testid=\"dialog-accept\"\n >\n {props.children}\n </DialogButton>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAaA;;AACA;;;;IAkBaA,M;;;;;EAGT,gBAAYC,KAAZ,EAAgC;IAAA;;IAAA;IAC5B,0BAAMA,KAAN;IACA;AACR;AACA;;IAJoC;IAK5B,MAAKC,SAAL,GAAiBC,QAAQ,CAACC,cAAT,CAAwB,kBAAxB,CAAjB;;IAEA,IAAI,CAAC,MAAKF,SAAV,EAAqB;MACjB,MAAKA,SAAL,GAAiBC,QAAQ,CAACE,aAAT,CAAuB,KAAvB,CAAjB;;MACA,MAAKH,SAAL,CAAeI,YAAf,CAA4B,IAA5B,EAAkC,kBAAlC;;MACA,IAAMJ,SAAS,GAAG,MAAKA,SAAvB;MACAC,QAAQ,CAACI,IAAT,IAAiBJ,QAAQ,CAACI,IAAT,CAAcC,WAAd,CAA0BN,SAA1B,CAAjB;IACH;;IAZ2B;EAa/B;;;;WAED,kBAAyB;MACrB,kBAA+B,KAAKD,KAApC;MAAA,IAAQQ,QAAR,eAAQA,QAAR;MAAA,IAAqBR,KAArB;MACA,IAAMC,SAAS,GAAG,KAAKA,SAAvB,CAFqB,CAIrB;;MACA,oBAAOQ,iBAAA,CAASC,YAAT,eACH,6BAAC,cAAD,EAAgB,IAAAC,mBAAA,EAAWX,KAAX,EAAkB,kBAAlB,CAAhB,EAAwDQ,QAAxD,CADG,EAEHP,SAFG,CAAP;IAIH;;;EA3BuBW,cAAA,CAAMC,S;;;;AAqClC;AACA;AACA;AACO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAAAd,KAAK;EAAA,oBACxD,6BAAC,mBAAD,EAAqB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,yBAAlB,CAArB,CADwD;AAAA,CAArD;;;;AAaP;AACA;AACA;AACO,IAAMe,aAA2C,GAAG,SAA9CA,aAA8C,CAAAf,KAAK;EAAA,oBAC5D,6BAAC,qBAAD,EAAuB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2BAAlB,CAAvB,CAD4D;AAAA,CAAzD;;;AAcP,IAAMgB,SAAS,oBAAGC,YAAH,0DAAf;AAMA;AACA;AACA;;AACO,IAAMC,aAA2C,GAAG,SAA9CA,aAA8C,CAAAlB,KAAK;EAAA,oBAC5D,6BAAC,qBAAD,EAAuB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,CAACgB,SAAD,EAAY,2BAAZ,CAAlB,CAAvB,CAD4D;AAAA,CAAzD;;;;AAaP;AACA;AACA;AACO,IAAMG,YAAyC,GAAG,SAA5CA,YAA4C,CAAAnB,KAAK;EAAA,oBAC1D,6BAAC,oBAAD,EAAsB,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,0BAAlB,CAAtB,CAD0D;AAAA,CAAvD;;;;AAWP;AACA;AACA;AACO,IAAMoB,YAAyC,GAAG,SAA5CA,YAA4C,CAAApB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAD,oBACQ,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2DAAlB,CADR;IAEI,MAAM,EAAC,OAFX;IAGI,eAAY;EAHhB,IAKKA,KAAK,CAACQ,QALX,CADJ;AASH,CAVM;;;;AAmBP;AACA;AACA;AACO,IAAMa,YAAyC,GAAG,SAA5CA,YAA4C,CAAArB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAD,oBACQ,IAAAW,mBAAA,EAAWX,KAAX,EAAkB,2DAAlB,CADR;IAEI,MAAM,EAAC,QAFX;IAGI,eAAY;EAHhB,IAKKA,KAAK,CAACQ,QALX,CADJ;AASH,CAVM"}
package/Image/Image.js CHANGED
@@ -9,10 +9,12 @@ exports.Image = void 0;
9
9
 
10
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
 
12
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
13
+
12
14
  var _react = _interopRequireDefault(require("react"));
13
15
 
14
16
  var Image = function Image(_ref) {
15
- var rest = Object.assign({}, _ref);
17
+ var rest = Object.assign({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
16
18
  var finalProps = (0, _objectSpread2.default)({}, rest);
17
19
  var srcSet = finalProps.srcSet;
18
20
 
@@ -1 +1 @@
1
- {"version":3,"names":["Image","rest","finalProps","srcSet","Object","keys","map","key","join"],"sources":["Image.tsx"],"sourcesContent":["import React from \"react\";\n\n// Accepts all props that a normal <img> element would accept.\ninterface Props\n extends React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n [key: string]: any;\n}\n\nconst Image: React.FC<Props> = ({ ...rest }) => {\n const finalProps = { ...rest };\n const srcSet = finalProps.srcSet;\n if (srcSet && typeof srcSet === \"object\") {\n finalProps.srcSet = Object.keys(srcSet)\n .map(key => `${srcSet[key]} ${key}`)\n .join(\", \");\n }\n\n return <img {...finalProps} />;\n};\n\nexport { Image };\n"],"mappings":";;;;;;;;;;;AAAA;;AAQA,IAAMA,KAAsB,GAAG,SAAzBA,KAAyB,OAAiB;EAAA,IAAXC,IAAW;EAC5C,IAAMC,UAAU,mCAAQD,IAAR,CAAhB;EACA,IAAME,MAAM,GAAGD,UAAU,CAACC,MAA1B;;EACA,IAAIA,MAAM,IAAI,OAAOA,MAAP,KAAkB,QAAhC,EAA0C;IACtCD,UAAU,CAACC,MAAX,GAAoBC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACfG,GADe,CACX,UAAAC,GAAG;MAAA,iBAAOJ,MAAM,CAACI,GAAD,CAAb,cAAsBA,GAAtB;IAAA,CADQ,EAEfC,IAFe,CAEV,IAFU,CAApB;EAGH;;EAED,oBAAO,oCAASN,UAAT,CAAP;AACH,CAVD"}
1
+ {"version":3,"names":["Image","rest","finalProps","srcSet","Object","keys","map","key","join"],"sources":["Image.tsx"],"sourcesContent":["import React from \"react\";\n\n// Accepts all props that a normal <img> element would accept.\ninterface Props\n extends React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n [key: string]: any;\n}\n\nconst Image: React.FC<Props> = ({ ...rest }) => {\n const finalProps = { ...rest };\n const srcSet = finalProps.srcSet;\n if (srcSet && typeof srcSet === \"object\") {\n finalProps.srcSet = Object.keys(srcSet)\n .map(key => `${srcSet[key]} ${key}`)\n .join(\", \");\n }\n\n return <img {...finalProps} />;\n};\n\nexport { Image };\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAQA,IAAMA,KAAsB,GAAG,SAAzBA,KAAyB,OAAiB;EAAA,IAAXC,IAAW;EAC5C,IAAMC,UAAU,mCAAQD,IAAR,CAAhB;EACA,IAAME,MAAM,GAAGD,UAAU,CAACC,MAA1B;;EACA,IAAIA,MAAM,IAAI,OAAOA,MAAP,KAAkB,QAAhC,EAA0C;IACtCD,UAAU,CAACC,MAAX,GAAoBC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACfG,GADe,CACX,UAAAC,GAAG;MAAA,iBAAOJ,MAAM,CAACI,GAAD,CAAb,cAAsBA,GAAtB;IAAA,CADQ,EAEfC,IAFe,CAEV,IAFU,CAApB;EAGH;;EAED,oBAAO,oCAASN,UAAT,CAAP;AACH,CAVD"}
@@ -7,15 +7,15 @@ export declare const AddImageWrapperRound: import("@emotion/styled-base").Styled
7
7
  theme?: object | undefined;
8
8
  } & {
9
9
  children?: import("react").ReactNode;
10
- }, "key" | "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
10
+ }, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "theme"> & {
11
11
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
12
12
  }, Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
13
13
  theme?: object | undefined;
14
14
  } & {
15
15
  children?: import("react").ReactNode;
16
- }, "key" | "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
16
+ }, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "theme"> & {
17
17
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
18
- }, "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
18
+ }, keyof import("react").HTMLAttributes<HTMLDivElement> | "theme">, object>;
19
19
  export declare const RemoveImage: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
20
20
  export declare const EditImage: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
21
21
  export declare const ImagePreviewWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
package/Input/Input.d.ts CHANGED
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import { TextFieldProps } from "@rmwc/textfield";
4
4
  import { FormComponentProps } from "../types";
5
5
  import { ReactElement } from "react";
6
- export declare type InputProps = FormComponentProps & TextFieldProps & {
6
+ export declare type InputProps<TValue = any> = FormComponentProps<TValue> & TextFieldProps & {
7
7
  autoComplete?: string;
8
8
  rawOnChange?: boolean;
9
9
  autoFocus?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":["webinyInputStyles","css","rmwcProps","Input","props","onChange","useCallback","e","rawOnChange","target","value","onBlur","validate","persist","autoFocus","label","description","placeholder","rows","validation","icon","trailingIcon","onEnter","rest","inputValue","validationIsValid","isValid","validationMessage","message","inputOnKeyDown","key","onKeyDown","pick","Boolean","undefined","classNames","defaultProps"],"sources":["Input.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { TextField, TextFieldProps } from \"@rmwc/textfield\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport pick from \"lodash/pick\";\nimport { FormComponentProps } from \"~/types\";\nimport { ReactElement } from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\n\nexport type InputProps = FormComponentProps &\n TextFieldProps & {\n // Should this input be filled with browser values\n autoComplete?: string;\n\n // If true, will pass native `event` to the `onChange` callback\n rawOnChange?: boolean;\n\n // Auto-focus input\n autoFocus?: boolean;\n\n // Input placeholder\n placeholder?: string;\n\n // Description beneath the input.\n description?: string | ReactElement;\n\n // Converts input into a text area with given number of rows.\n rows?: number;\n\n maxLength?: number;\n\n // A callback that is executed when input focus is lost.\n onBlur?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n onKeyDown?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n // A callback that gets triggered when the user presses the \"Enter\" key.\n onEnter?: () => any;\n\n // CSS class name\n className?: string;\n\n // For testing purposes.\n \"data-testid\"?: string;\n };\n\n/**\n * fix label position when autofilled\n * @type {string}\n */\nconst webinyInputStyles = css`\n .mdc-text-field__input:-webkit-autofill + .mdc-floating-label {\n transform: translateY(-106%) scale(0.75);\n }\n`;\n\n/**\n * Use Input component to store short string values, like first name, last name, e-mail etc.\n * Additionally, with rows prop, it can also be turned into a text area, to store longer strings.\n */\n\n// IconProps directly passed to RMWC\nconst rmwcProps = [\n \"label\",\n \"type\",\n \"step\",\n \"disabled\",\n \"readOnly\",\n \"placeholder\",\n \"outlined\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"onFocus\",\n \"rootProps\",\n \"fullwidth\",\n \"inputRef\",\n \"className\",\n \"maxLength\",\n \"characterCount\"\n];\n\nexport const Input: React.FC<InputProps> = props => {\n const onChange = useCallback(\n (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { onChange, rawOnChange } = props;\n if (!onChange) {\n return;\n }\n\n // @ts-ignore\n onChange(rawOnChange ? e : e.target.value);\n },\n [props.onChange, props.rawOnChange]\n );\n\n const onBlur = useCallback(\n async (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { validate, onBlur } = props;\n if (validate) {\n // Since we are accessing event in an async operation, we need to persist it.\n // See https://reactjs.org/docs/events.html#event-pooling.\n e.persist();\n await validate();\n }\n onBlur && onBlur(e);\n },\n [props.validate, props.onBlur]\n );\n\n const {\n autoFocus,\n value,\n label,\n description,\n placeholder,\n rows,\n validation,\n icon,\n trailingIcon,\n onEnter,\n ...rest\n } = props;\n\n let inputValue = value;\n if (value === null || typeof value === \"undefined\") {\n inputValue = \"\";\n }\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n const inputOnKeyDown = useCallback(e => {\n if (typeof onEnter === \"function\" && e.key === \"Enter\") {\n onEnter();\n }\n\n if (typeof rest.onKeyDown === \"function\") {\n return rest.onKeyDown(e);\n }\n }, []);\n\n return (\n <React.Fragment>\n <TextField\n {...pick(rest, rmwcProps)}\n onKeyDown={inputOnKeyDown}\n autoFocus={autoFocus}\n textarea={Boolean(rows)}\n value={inputValue}\n onChange={onChange}\n onBlur={onBlur}\n label={label}\n icon={icon}\n placeholder={(!label && placeholder) || undefined}\n trailingIcon={trailingIcon}\n rows={rows}\n className={classNames(\"webiny-ui-input\", webinyInputStyles)}\n data-testid={props[\"data-testid\"]}\n />\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </React.Fragment>\n );\n};\n\nInput.defaultProps = { rawOnChange: false };\n"],"mappings":"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"}
1
+ {"version":3,"names":["webinyInputStyles","css","rmwcProps","Input","props","onChange","useCallback","e","rawOnChange","target","value","onBlur","validate","persist","autoFocus","label","description","placeholder","rows","validation","icon","trailingIcon","onEnter","rest","inputValue","validationIsValid","isValid","validationMessage","message","inputOnKeyDown","key","onKeyDown","pick","Boolean","undefined","classNames","defaultProps"],"sources":["Input.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { TextField, TextFieldProps } from \"@rmwc/textfield\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport pick from \"lodash/pick\";\nimport { FormComponentProps } from \"~/types\";\nimport { ReactElement } from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\n\nexport type InputProps<TValue = any> = FormComponentProps<TValue> &\n TextFieldProps & {\n // Should this input be filled with browser values\n autoComplete?: string;\n\n // If true, will pass native `event` to the `onChange` callback\n rawOnChange?: boolean;\n\n // Auto-focus input\n autoFocus?: boolean;\n\n // Input placeholder\n placeholder?: string;\n\n // Description beneath the input.\n description?: string | ReactElement;\n\n // Converts input into a text area with given number of rows.\n rows?: number;\n\n maxLength?: number;\n\n // A callback that is executed when input focus is lost.\n onBlur?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n onKeyDown?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n // A callback that gets triggered when the user presses the \"Enter\" key.\n onEnter?: () => any;\n\n // CSS class name\n className?: string;\n\n // For testing purposes.\n \"data-testid\"?: string;\n };\n\n/**\n * fix label position when autofilled\n * @type {string}\n */\nconst webinyInputStyles = css`\n .mdc-text-field__input:-webkit-autofill + .mdc-floating-label {\n transform: translateY(-106%) scale(0.75);\n }\n`;\n\n/**\n * Use Input component to store short string values, like first name, last name, e-mail etc.\n * Additionally, with rows prop, it can also be turned into a text area, to store longer strings.\n */\n\n// IconProps directly passed to RMWC\nconst rmwcProps = [\n \"label\",\n \"type\",\n \"step\",\n \"disabled\",\n \"readOnly\",\n \"placeholder\",\n \"outlined\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"onFocus\",\n \"rootProps\",\n \"fullwidth\",\n \"inputRef\",\n \"className\",\n \"maxLength\",\n \"characterCount\"\n];\n\nexport const Input: React.FC<InputProps> = props => {\n const onChange = useCallback(\n (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { onChange, rawOnChange } = props;\n if (!onChange) {\n return;\n }\n\n // @ts-ignore\n onChange(rawOnChange ? e : e.target.value);\n },\n [props.onChange, props.rawOnChange]\n );\n\n const onBlur = useCallback(\n async (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { validate, onBlur } = props;\n if (validate) {\n // Since we are accessing event in an async operation, we need to persist it.\n // See https://reactjs.org/docs/events.html#event-pooling.\n e.persist();\n await validate();\n }\n onBlur && onBlur(e);\n },\n [props.validate, props.onBlur]\n );\n\n const {\n autoFocus,\n value,\n label,\n description,\n placeholder,\n rows,\n validation,\n icon,\n trailingIcon,\n onEnter,\n ...rest\n } = props;\n\n let inputValue = value;\n if (value === null || typeof value === \"undefined\") {\n inputValue = \"\";\n }\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n const inputOnKeyDown = useCallback(e => {\n if (typeof onEnter === \"function\" && e.key === \"Enter\") {\n onEnter();\n }\n\n if (typeof rest.onKeyDown === \"function\") {\n return rest.onKeyDown(e);\n }\n }, []);\n\n return (\n <React.Fragment>\n <TextField\n {...pick(rest, rmwcProps)}\n onKeyDown={inputOnKeyDown}\n autoFocus={autoFocus}\n textarea={Boolean(rows)}\n value={inputValue}\n onChange={onChange}\n onBlur={onBlur}\n label={label}\n icon={icon}\n placeholder={(!label && placeholder) || undefined}\n trailingIcon={trailingIcon}\n rows={rows}\n className={classNames(\"webiny-ui-input\", webinyInputStyles)}\n data-testid={props[\"data-testid\"]}\n />\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </React.Fragment>\n );\n};\n\nInput.defaultProps = { rawOnChange: false };\n"],"mappings":"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"}
@@ -29,8 +29,6 @@ var _Checkbox = require("../../Checkbox");
29
29
 
30
30
  var _Menu = require("../../Menu");
31
31
 
32
- var _Grid = require("../../Grid");
33
-
34
32
  var _icons = require("./icons");
35
33
 
36
34
  var _ = require("..");
@@ -101,21 +99,16 @@ var ListContainer = /*#__PURE__*/(0, _styled.default)("div", {
101
99
  }
102
100
  }
103
101
  });
104
- var listHeader = /*#__PURE__*/(0, _emotion.css)({
105
- borderBottom: "1px solid var(--mdc-theme-on-background)",
106
- color: "var(--mdc-theme-text-primary-on-background)",
107
- width: "100%"
108
- }, "label:listHeader;");
109
- var listSubHeader = /*#__PURE__*/(0, _emotion.css)({
110
- width: "100%",
111
- "&.mdc-layout-grid": {
112
- borderBottom: "1px solid var(--mdc-theme-on-background)",
113
- padding: "10px 24px 10px 12px",
114
- color: "var(--mdc-theme-text-primary-on-background)"
115
- }
116
- }, "label:listSubHeader;");
102
+ var ListHeader = /*#__PURE__*/(0, _styled.default)("div", {
103
+ label: "ListHeader",
104
+ target: "e14cccao1"
105
+ })("border-bottom:1px solid var(--mdc-theme-on-background);color:var(--mdc-theme-text-primary-on-background);display:flex;justify-content:space-between;align-items:center;padding:0 24px;max-height:85px;min-height:85px;");
106
+ var ListSubHeader = /*#__PURE__*/(0, _styled.default)("div", {
107
+ label: "ListSubHeader",
108
+ target: "e14cccao2"
109
+ })("display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid var(--mdc-theme-on-background);");
117
110
  var ListHeaderItem = /*#__PURE__*/(0, _styled.default)("div", {
118
- target: "e14cccao1",
111
+ target: "e14cccao3",
119
112
  label: "ListHeaderItem"
120
113
  })({
121
114
  display: "inline-block",
@@ -125,13 +118,6 @@ var ListHeaderItem = /*#__PURE__*/(0, _styled.default)("div", {
125
118
  pointerEvents: "none"
126
119
  }
127
120
  });
128
- var listTitle = /*#__PURE__*/(0, _emotion.css)({
129
- display: "flex",
130
- alignItems: "center"
131
- }, "label:listTitle;");
132
- var listActions = /*#__PURE__*/(0, _emotion.css)({
133
- textAlign: "right"
134
- }, "label:listActions;");
135
121
  var scrollList = /*#__PURE__*/(0, _emotion.css)({
136
122
  overflow: "auto",
137
123
  height: "calc(100vh - 235px)"
@@ -263,16 +249,6 @@ var Pagination = function Pagination(props) {
263
249
  }))));
264
250
  };
265
251
 
266
- var Search = function Search(props) {
267
- if (!props.search) {
268
- return null;
269
- }
270
-
271
- return /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
272
- span: 7
273
- }, /*#__PURE__*/_react.default.cloneElement(props.search, props));
274
- };
275
-
276
252
  var DataList = function DataList(props) {
277
253
  var render = null;
278
254
 
@@ -286,29 +262,12 @@ var DataList = function DataList(props) {
286
262
  }
287
263
 
288
264
  var showOptions = props.showOptions || {};
289
- var listHeaderActionsCellSpan = props.actions ? 7 : 0;
290
- var listHeaderTitleCellSpan = 12 - listHeaderActionsCellSpan;
291
265
  return /*#__PURE__*/_react.default.createElement(_DataListModalOverlay.DataListModalOverlayProvider, null, /*#__PURE__*/_react.default.createElement(ListContainer, {
292
266
  className: "webiny-data-list",
293
267
  "data-testid": "ui.list.data-list"
294
- }, (props.title || props.actions) && /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
295
- className: listHeader
296
- }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
297
- span: listHeaderTitleCellSpan,
298
- className: listTitle
299
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
268
+ }, (props.title || props.actions) && /*#__PURE__*/_react.default.createElement(ListHeader, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
300
269
  use: "headline5"
301
- }, props.title)), props.actions && /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
302
- span: listHeaderActionsCellSpan,
303
- className: listActions
304
- }, props.actions)), Object.keys(showOptions).length > 0 && /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
305
- className: listSubHeader
306
- }, /*#__PURE__*/_react.default.createElement(Search, props), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
307
- span: props.search ? 5 : 12,
308
- style: {
309
- justifySelf: "end"
310
- }
311
- }, /*#__PURE__*/_react.default.createElement(MultiSelectAll, props), showOptions.refresh && /*#__PURE__*/_react.default.createElement(RefreshButton, props), showOptions.pagination && /*#__PURE__*/_react.default.createElement(Pagination, props), showOptions.sorters && /*#__PURE__*/_react.default.createElement(Sorters, props), showOptions.filters && /*#__PURE__*/_react.default.createElement(Filters, props), props.modalOverlayAction ? /*#__PURE__*/_react.default.createElement(ListHeaderItem, null, props.modalOverlayAction) : null, /*#__PURE__*/_react.default.createElement(MultiSelectActions, props))), /*#__PURE__*/_react.default.createElement("div", {
270
+ }, props.title), props.actions), Object.keys(showOptions).length > 0 && /*#__PURE__*/_react.default.createElement(ListSubHeader, null, props.search ? /*#__PURE__*/_react.default.cloneElement(props.search, props) : null, /*#__PURE__*/_react.default.createElement(MultiSelectAll, props), showOptions.refresh && /*#__PURE__*/_react.default.createElement(RefreshButton, props), showOptions.pagination && /*#__PURE__*/_react.default.createElement(Pagination, props), showOptions.sorters && /*#__PURE__*/_react.default.createElement(Sorters, props), showOptions.filters && /*#__PURE__*/_react.default.createElement(Filters, props), props.modalOverlayAction ? /*#__PURE__*/_react.default.createElement(ListHeaderItem, null, props.modalOverlayAction) : null, /*#__PURE__*/_react.default.createElement(MultiSelectActions, props)), /*#__PURE__*/_react.default.createElement("div", {
312
271
  className: (0, _classnames.default)(dataListContent, "webiny-data-list__content")
313
272
  }, props.subHeader, render, props.modalOverlay)));
314
273
  };
@@ -1 +1 @@
1
- {"version":3,"names":["ListContainer","styled","position","height","paddingBottom","paddingTop","borderBottom","padding","minHeight","display","marginRight","width","margin","alignItems","justifyContent","flexDirection","boxSizing","whiteSpace","marginTop","marginBottom","textAlign","listHeader","css","color","listSubHeader","ListHeaderItem","verticalAlign","opacity","pointerEvents","listTitle","listActions","scrollList","overflow","dataListContent","MultiSelectAll","props","multiSelectActions","isAllMultiSelected","isNoneMultiSelected","multiSelectAll","data","MultiSelectActions","RefreshButton","refresh","Sorters","sorters","map","sorter","label","setSorters","value","Filters","filters","Pagination","pagination","setNextPage","classNames","disabled","hasPreviousPage","setPreviousPage","hasNextPage","Array","isArray","perPageOptions","setPerPage","perPage","Search","search","React","cloneElement","DataList","render","loading","loader","isEmpty","noData","ch","children","showOptions","listHeaderActionsCellSpan","actions","listHeaderTitleCellSpan","title","Object","keys","length","justifySelf","modalOverlayAction","subHeader","modalOverlay","defaultProps","meta","setPage","noop","ScrollList","className"],"sources":["DataList.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport classNames from \"classnames\";\nimport Loader from \"./Loader\";\nimport NoData from \"./NoData\";\nimport { Typography } from \"~/Typography\";\nimport { css } from \"emotion\";\nimport noop from \"lodash/noop\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport { Checkbox } from \"../../Checkbox\";\nimport { Menu, MenuItem } from \"../../Menu\";\nimport { Grid, Cell } from \"../../Grid\";\n\nimport {\n RefreshIcon,\n SortIcon,\n FilterIcon,\n PreviousPageIcon,\n NextPageIcon,\n OptionsIcon\n} from \"./icons\";\nimport { List, ListItem, ListProps } from \"..\";\nimport { DataListModalOverlayProvider } from \"./DataListModalOverlay\";\nimport { PaginationProp, SortersProp } from \"./types\";\n\nconst ListContainer = styled(\"div\")({\n position: \"relative\",\n height: \"100%\",\n \".mdc-list\": {\n paddingBottom: 0,\n paddingTop: 0\n },\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 20px 10px 20px\",\n height: \"auto\",\n minHeight: 40,\n \".mdc-list-item__text, .mdc-list-item__secondary-text, .webiny-list-text-overline\": {\n display: \"block\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n },\n \".mdc-list-item__text\": {\n width: \"100%\",\n margin: \"-20px 0\",\n padding: \"20px 0\"\n },\n \".mdc-list-item__meta\": {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n flexDirection: \"column\",\n position: \"relative\",\n padding: \"5px 0\",\n boxSizing: \"border-box\",\n height: \"100%\",\n whiteSpace: \"nowrap\",\n marginTop: -10,\n marginBottom: -10,\n \".webiny-list-actions\": {\n display: \"none\"\n },\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n //position: 'absolute',\n width: \"100%\",\n textAlign: \"right\"\n },\n \".webiny-list-top-caption\": {\n marginBottom: 20\n }\n },\n \"&:hover\": {\n \".mdc-list-item__meta\": {\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n display: \"none\"\n },\n \".webiny-list-actions\": {\n display: \"flex\",\n height: \"100%\",\n alignItems: \"center\"\n }\n }\n }\n }\n});\n\nconst listHeader = css({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n width: \"100%\"\n});\n\nconst listSubHeader = css({\n width: \"100%\",\n \"&.mdc-layout-grid\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 24px 10px 12px\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst ListHeaderItem = styled(\"div\")({\n display: \"inline-block\",\n verticalAlign: \"middle\",\n \"&.disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst listTitle = css({\n display: \"flex\",\n alignItems: \"center\"\n});\n\nconst listActions = css({\n textAlign: \"right\"\n});\n\nconst scrollList = css({\n overflow: \"auto\",\n height: \"calc(100vh - 235px)\"\n});\n\nconst dataListContent = css({\n position: \"relative\",\n height: \"100%\",\n overflow: \"auto\"\n});\n\n// This was copied from \"./types\" so that it can be outputted in docs.\ninterface DataListProps {\n // Pass a function to take full control of list render.\n children?: ((props: any) => React.ReactNode) | null;\n\n // A title of paginated list.\n title?: React.ReactNode;\n\n // FormData that needs to be shown in the list.\n data?: Record<string, any>[] | null;\n\n // A callback that must refresh current view by repeating the previous query.\n refresh?: (() => void) | null;\n\n // If true, Loader component will be shown, disallowing any interaction.\n loading?: boolean;\n\n // Provide a custom loader. Shown while the content is loading.\n loader?: React.ReactNode;\n\n // Provide a custom no data component. Shown while there is no data to be shown.\n noData?: React.ReactNode;\n\n // Provide all pagination data, options and callbacks here.\n pagination?: PaginationProp;\n\n // Triggered once a sorter has been selected.\n setSorters?: Function | null;\n\n // Provide all sorters options and callbacks here.\n sorters?: SortersProp | null;\n\n // Provide actions that will be shown in the top right corner (eg. export or import actions).\n actions?: React.ReactNode;\n\n // Provide filters that will be shown in the top left corner (eg. filter by category or status).\n filters?: React.ReactNode;\n\n // Provide actions that can be executed on one or more multi-selected list items (eg. export or delete).\n multiSelectActions?: React.ReactNode;\n\n // Provide callback that will be executed once user selects all list items.\n multiSelectAll?: (value: boolean, data: Record<string, any>[] | null) => void;\n\n // Callback which returns true if all items were selected, otherwise returns false.\n isAllMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n // Callback which returns true if none of the items were selected, otherwise returns false.\n isNoneMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n showOptions?: {\n refresh?: boolean;\n pagination?: boolean;\n filters?: boolean;\n sorters?: boolean;\n [key: string]: any;\n };\n\n // Provide search UI that will be shown in the top left corner.\n search?: React.ReactElement;\n // Provide simple modal UI that will be shown over the list content.\n modalOverlay?: React.ReactElement;\n // Provide an action element that handle toggling the \"Modal overlay\".\n modalOverlayAction?: React.ReactElement;\n // Provide additional UI for list sub-header.\n subHeader?: React.ReactElement;\n\n meta?: Record<string, any> | null;\n\n setPage?: ((page: string) => void) | null;\n\n setPerPage?: ((page: string) => void) | null;\n\n perPageOptions?: number[];\n}\n\nconst MultiSelectAll: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n /**\n * We can safely cast because we have defaults.\n */\n const { isAllMultiSelected, isNoneMultiSelected, multiSelectAll, data } =\n props as Required<DataListProps>;\n\n return (\n <React.Fragment>\n {typeof multiSelectAll === \"function\" && (\n <ListHeaderItem>\n <Checkbox\n indeterminate={!isAllMultiSelected(data) && !isNoneMultiSelected(data)}\n value={isAllMultiSelected(data)}\n onClick={() => {\n multiSelectAll(!isAllMultiSelected(data), data);\n }}\n />\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst MultiSelectActions: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n\n return <ListHeaderItem>{multiSelectActions}</ListHeaderItem>;\n};\n\nconst RefreshButton: React.FC<DataListProps> = props => {\n const refresh = props.refresh;\n if (!refresh) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <RefreshIcon onClick={() => refresh()} />\n </ListHeaderItem>\n );\n};\n\nconst Sorters: React.FC<DataListProps> = props => {\n const sorters = props.sorters;\n if (!sorters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<SortIcon />}>\n {sorters.map(sorter => (\n <MenuItem\n key={sorter.label}\n onClick={() => {\n if (sorters && props.setSorters) {\n props.setSorters(sorter.value);\n }\n }}\n >\n {sorter.label}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n );\n};\n\nconst Filters: React.FC<DataListProps> = props => {\n const filters = props.filters;\n if (!filters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<FilterIcon />}>{filters}</Menu>\n </ListHeaderItem>\n );\n};\n\nconst Pagination: React.FC<DataListProps> = props => {\n const { pagination } = props;\n if (!pagination) {\n return null;\n }\n\n return (\n <React.Fragment>\n {pagination.setNextPage && (\n <React.Fragment>\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasPreviousPage\n })}\n >\n <PreviousPageIcon\n onClick={() => {\n if (pagination.setPreviousPage && pagination.hasPreviousPage) {\n pagination.setPreviousPage();\n }\n }}\n />\n </ListHeaderItem>\n\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasNextPage\n })}\n >\n <NextPageIcon\n onClick={() => {\n if (pagination.setNextPage && pagination.hasNextPage) {\n pagination.setNextPage();\n }\n }}\n />\n </ListHeaderItem>\n </React.Fragment>\n )}\n\n {Array.isArray(pagination.perPageOptions) && pagination.setPerPage && (\n <ListHeaderItem>\n <Menu handle={<OptionsIcon />}>\n {pagination.setPerPage &&\n pagination.perPageOptions.map(perPage => (\n <MenuItem\n key={perPage}\n onClick={() =>\n pagination.setPerPage && pagination.setPerPage(perPage)\n }\n >\n {perPage}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst Search: React.FC<DataListProps> = props => {\n if (!props.search) {\n return null;\n }\n return <Cell span={7}>{React.cloneElement(props.search, props)}</Cell>;\n};\n\nexport const DataList: React.FC<DataListProps> = props => {\n let render: React.ReactNode | null = null;\n\n if (props.loading) {\n render = props.loader;\n } else if (isEmpty(props.data)) {\n render = props.noData;\n } else {\n const ch = props.children;\n render = typeof ch === \"function\" ? ch(props) : null;\n }\n\n const showOptions = props.showOptions || {};\n\n const listHeaderActionsCellSpan = props.actions ? 7 : 0;\n const listHeaderTitleCellSpan = 12 - listHeaderActionsCellSpan;\n\n return (\n <DataListModalOverlayProvider>\n <ListContainer className={\"webiny-data-list\"} data-testid={\"ui.list.data-list\"}>\n {(props.title || props.actions) && (\n <Grid className={listHeader}>\n <Cell span={listHeaderTitleCellSpan} className={listTitle}>\n <Typography use=\"headline5\">{props.title}</Typography>\n </Cell>\n {props.actions && (\n <Cell span={listHeaderActionsCellSpan} className={listActions}>\n {props.actions}\n </Cell>\n )}\n </Grid>\n )}\n\n {Object.keys(showOptions).length > 0 && (\n <Grid className={listSubHeader}>\n <Search {...props} />\n <Cell span={props.search ? 5 : 12} style={{ justifySelf: \"end\" }}>\n <MultiSelectAll {...props} />\n {showOptions.refresh && <RefreshButton {...props} />}\n {showOptions.pagination && <Pagination {...props} />}\n {showOptions.sorters && <Sorters {...props} />}\n {showOptions.filters && <Filters {...props} />}\n {props.modalOverlayAction ? (\n <ListHeaderItem>{props.modalOverlayAction}</ListHeaderItem>\n ) : null}\n <MultiSelectActions {...props} />\n </Cell>\n </Grid>\n )}\n\n <div className={classNames(dataListContent, \"webiny-data-list__content\")}>\n {props.subHeader}\n {render}\n {props.modalOverlay}\n </div>\n </ListContainer>\n </DataListModalOverlayProvider>\n );\n};\n\nDataList.defaultProps = {\n children: null,\n title: null,\n data: null,\n meta: null,\n loading: false,\n refresh: () => {\n return void 0;\n },\n setPage: null,\n setPerPage: null,\n perPageOptions: [10, 25, 50],\n filters: null,\n sorters: null,\n setSorters: null,\n actions: null,\n multiSelectAll: noop,\n isAllMultiSelected: () => false,\n isNoneMultiSelected: () => false,\n loader: <Loader />,\n noData: <NoData />,\n showOptions: {\n refresh: true,\n pagination: true,\n sorters: true,\n filters: true\n }\n};\n\nexport interface ScrollListProps extends ListProps {\n children: React.ReactElement<typeof ListItem>[];\n}\n\nexport const ScrollList: React.FC<ScrollListProps> = props => {\n return (\n <List {...props} className={classNames(props.className, scrollList)}>\n {props.children}\n </List>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["ListContainer","styled","position","height","paddingBottom","paddingTop","borderBottom","padding","minHeight","display","marginRight","width","margin","alignItems","justifyContent","flexDirection","boxSizing","whiteSpace","marginTop","marginBottom","textAlign","ListHeader","ListSubHeader","ListHeaderItem","verticalAlign","opacity","pointerEvents","scrollList","css","overflow","dataListContent","MultiSelectAll","props","multiSelectActions","isAllMultiSelected","isNoneMultiSelected","multiSelectAll","data","MultiSelectActions","RefreshButton","refresh","Sorters","sorters","map","sorter","label","setSorters","value","Filters","filters","Pagination","pagination","setNextPage","classNames","disabled","hasPreviousPage","setPreviousPage","hasNextPage","Array","isArray","perPageOptions","setPerPage","perPage","DataList","render","loading","loader","isEmpty","noData","ch","children","showOptions","title","actions","Object","keys","length","search","React","cloneElement","modalOverlayAction","subHeader","modalOverlay","defaultProps","meta","setPage","noop","ScrollList","className"],"sources":["DataList.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport classNames from \"classnames\";\nimport Loader from \"./Loader\";\nimport NoData from \"./NoData\";\nimport { Typography } from \"~/Typography\";\nimport { css } from \"emotion\";\nimport noop from \"lodash/noop\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { Checkbox } from \"../../Checkbox\";\nimport { Menu, MenuItem } from \"~/Menu\";\n\nimport {\n RefreshIcon,\n SortIcon,\n FilterIcon,\n PreviousPageIcon,\n NextPageIcon,\n OptionsIcon\n} from \"./icons\";\nimport { List, ListItem, ListProps } from \"..\";\nimport { DataListModalOverlayProvider } from \"./DataListModalOverlay\";\nimport { PaginationProp, SortersProp } from \"./types\";\n\nconst ListContainer = styled(\"div\")({\n position: \"relative\",\n height: \"100%\",\n \".mdc-list\": {\n paddingBottom: 0,\n paddingTop: 0\n },\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 20px 10px 20px\",\n height: \"auto\",\n minHeight: 40,\n \".mdc-list-item__text, .mdc-list-item__secondary-text, .webiny-list-text-overline\": {\n display: \"block\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n },\n \".mdc-list-item__text\": {\n width: \"100%\",\n margin: \"-20px 0\",\n padding: \"20px 0\"\n },\n \".mdc-list-item__meta\": {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n flexDirection: \"column\",\n position: \"relative\",\n padding: \"5px 0\",\n boxSizing: \"border-box\",\n height: \"100%\",\n whiteSpace: \"nowrap\",\n marginTop: -10,\n marginBottom: -10,\n \".webiny-list-actions\": {\n display: \"none\"\n },\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n //position: 'absolute',\n width: \"100%\",\n textAlign: \"right\"\n },\n \".webiny-list-top-caption\": {\n marginBottom: 20\n }\n },\n \"&:hover\": {\n \".mdc-list-item__meta\": {\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n display: \"none\"\n },\n \".webiny-list-actions\": {\n display: \"flex\",\n height: \"100%\",\n alignItems: \"center\"\n }\n }\n }\n }\n});\n\nconst ListHeader = styled.div`\n border-bottom: 1px solid var(--mdc-theme-on-background);\n color: var(--mdc-theme-text-primary-on-background);\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 24px;\n max-height: 85px;\n min-height: 85px;\n`;\n\nconst ListSubHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px;\n border-bottom: 1px solid var(--mdc-theme-on-background);\n`;\n\nconst ListHeaderItem = styled(\"div\")({\n display: \"inline-block\",\n verticalAlign: \"middle\",\n \"&.disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst scrollList = css({\n overflow: \"auto\",\n height: \"calc(100vh - 235px)\"\n});\n\nconst dataListContent = css({\n position: \"relative\",\n height: \"100%\",\n overflow: \"auto\"\n});\n\n// This was copied from \"./types\" so that it can be outputted in docs.\ninterface DataListProps {\n // Pass a function to take full control of list render.\n children?: ((props: any) => React.ReactNode) | null;\n\n // A title of paginated list.\n title?: React.ReactNode;\n\n // FormData that needs to be shown in the list.\n data?: Record<string, any>[] | null;\n\n // A callback that must refresh current view by repeating the previous query.\n refresh?: (() => void) | null;\n\n // If true, Loader component will be shown, disallowing any interaction.\n loading?: boolean;\n\n // Provide a custom loader. Shown while the content is loading.\n loader?: React.ReactNode;\n\n // Provide a custom no data component. Shown while there is no data to be shown.\n noData?: React.ReactNode;\n\n // Provide all pagination data, options and callbacks here.\n pagination?: PaginationProp;\n\n // Triggered once a sorter has been selected.\n setSorters?: Function | null;\n\n // Provide all sorters options and callbacks here.\n sorters?: SortersProp | null;\n\n // Provide actions that will be shown in the top right corner (eg. export or import actions).\n actions?: React.ReactNode;\n\n // Provide filters that will be shown in the top left corner (eg. filter by category or status).\n filters?: React.ReactNode;\n\n // Provide actions that can be executed on one or more multi-selected list items (eg. export or delete).\n multiSelectActions?: React.ReactNode;\n\n // Provide callback that will be executed once user selects all list items.\n multiSelectAll?: (value: boolean, data: Record<string, any>[] | null) => void;\n\n // Callback which returns true if all items were selected, otherwise returns false.\n isAllMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n // Callback which returns true if none of the items were selected, otherwise returns false.\n isNoneMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n showOptions?: {\n refresh?: boolean;\n pagination?: boolean;\n filters?: boolean;\n sorters?: boolean;\n [key: string]: any;\n };\n\n // Provide search UI that will be shown in the top left corner.\n search?: React.ReactElement;\n // Provide simple modal UI that will be shown over the list content.\n modalOverlay?: React.ReactElement;\n // Provide an action element that handle toggling the \"Modal overlay\".\n modalOverlayAction?: React.ReactElement;\n // Provide additional UI for list sub-header.\n subHeader?: React.ReactElement;\n\n meta?: Record<string, any> | null;\n\n setPage?: ((page: string) => void) | null;\n\n setPerPage?: ((page: string) => void) | null;\n\n perPageOptions?: number[];\n}\n\nconst MultiSelectAll: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n /**\n * We can safely cast because we have defaults.\n */\n const { isAllMultiSelected, isNoneMultiSelected, multiSelectAll, data } =\n props as Required<DataListProps>;\n\n return (\n <React.Fragment>\n {typeof multiSelectAll === \"function\" && (\n <ListHeaderItem>\n <Checkbox\n indeterminate={!isAllMultiSelected(data) && !isNoneMultiSelected(data)}\n value={isAllMultiSelected(data)}\n onClick={() => {\n multiSelectAll(!isAllMultiSelected(data), data);\n }}\n />\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst MultiSelectActions: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n\n return <ListHeaderItem>{multiSelectActions}</ListHeaderItem>;\n};\n\nconst RefreshButton: React.FC<DataListProps> = props => {\n const refresh = props.refresh;\n if (!refresh) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <RefreshIcon onClick={() => refresh()} />\n </ListHeaderItem>\n );\n};\n\nconst Sorters: React.FC<DataListProps> = props => {\n const sorters = props.sorters;\n if (!sorters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<SortIcon />}>\n {sorters.map(sorter => (\n <MenuItem\n key={sorter.label}\n onClick={() => {\n if (sorters && props.setSorters) {\n props.setSorters(sorter.value);\n }\n }}\n >\n {sorter.label}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n );\n};\n\nconst Filters: React.FC<DataListProps> = props => {\n const filters = props.filters;\n if (!filters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<FilterIcon />}>{filters}</Menu>\n </ListHeaderItem>\n );\n};\n\nconst Pagination: React.FC<DataListProps> = props => {\n const { pagination } = props;\n if (!pagination) {\n return null;\n }\n\n return (\n <React.Fragment>\n {pagination.setNextPage && (\n <React.Fragment>\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasPreviousPage\n })}\n >\n <PreviousPageIcon\n onClick={() => {\n if (pagination.setPreviousPage && pagination.hasPreviousPage) {\n pagination.setPreviousPage();\n }\n }}\n />\n </ListHeaderItem>\n\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasNextPage\n })}\n >\n <NextPageIcon\n onClick={() => {\n if (pagination.setNextPage && pagination.hasNextPage) {\n pagination.setNextPage();\n }\n }}\n />\n </ListHeaderItem>\n </React.Fragment>\n )}\n\n {Array.isArray(pagination.perPageOptions) && pagination.setPerPage && (\n <ListHeaderItem>\n <Menu handle={<OptionsIcon />}>\n {pagination.setPerPage &&\n pagination.perPageOptions.map(perPage => (\n <MenuItem\n key={perPage}\n onClick={() =>\n pagination.setPerPage && pagination.setPerPage(perPage)\n }\n >\n {perPage}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nexport const DataList: React.FC<DataListProps> = props => {\n let render: React.ReactNode | null = null;\n\n if (props.loading) {\n render = props.loader;\n } else if (isEmpty(props.data)) {\n render = props.noData;\n } else {\n const ch = props.children;\n render = typeof ch === \"function\" ? ch(props) : null;\n }\n\n const showOptions = props.showOptions || {};\n\n return (\n <DataListModalOverlayProvider>\n <ListContainer className={\"webiny-data-list\"} data-testid={\"ui.list.data-list\"}>\n {(props.title || props.actions) && (\n <ListHeader>\n <Typography use=\"headline5\">{props.title}</Typography>\n {props.actions}\n </ListHeader>\n )}\n\n {Object.keys(showOptions).length > 0 && (\n <ListSubHeader>\n {props.search ? React.cloneElement(props.search, props) : null}\n <MultiSelectAll {...props} />\n {showOptions.refresh && <RefreshButton {...props} />}\n {showOptions.pagination && <Pagination {...props} />}\n {showOptions.sorters && <Sorters {...props} />}\n {showOptions.filters && <Filters {...props} />}\n {props.modalOverlayAction ? (\n <ListHeaderItem>{props.modalOverlayAction}</ListHeaderItem>\n ) : null}\n <MultiSelectActions {...props} />\n </ListSubHeader>\n )}\n\n <div className={classNames(dataListContent, \"webiny-data-list__content\")}>\n {props.subHeader}\n {render}\n {props.modalOverlay}\n </div>\n </ListContainer>\n </DataListModalOverlayProvider>\n );\n};\n\nDataList.defaultProps = {\n children: null,\n title: null,\n data: null,\n meta: null,\n loading: false,\n refresh: () => {\n return void 0;\n },\n setPage: null,\n setPerPage: null,\n perPageOptions: [10, 25, 50],\n filters: null,\n sorters: null,\n setSorters: null,\n actions: null,\n multiSelectAll: noop,\n isAllMultiSelected: () => false,\n isNoneMultiSelected: () => false,\n loader: <Loader />,\n noData: <NoData />,\n showOptions: {\n refresh: true,\n pagination: true,\n sorters: true,\n filters: true\n }\n};\n\nexport interface ScrollListProps extends ListProps {\n children: React.ReactElement<typeof ListItem>[];\n}\n\nexport const ScrollList: React.FC<ScrollListProps> = props => {\n return (\n <List {...props} className={classNames(props.className, scrollList)}>\n {props.children}\n </List>\n );\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import React from "react";
2
- declare const Loader: React.FC;
1
+ import { ReactElement } from "react";
2
+ declare const Loader: () => ReactElement;
3
3
  export default Loader;
@@ -11,62 +11,48 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _styled = _interopRequireDefault(require("@emotion/styled"));
13
13
 
14
- var _reactLoadingSkeleton = _interopRequireDefault(require("react-loading-skeleton"));
14
+ var _Skeleton = require("../../Skeleton");
15
15
 
16
- /**
17
- * Package react-loading-skeleton does not have types.
18
- */
19
- // @ts-ignore
20
16
  var LoaderUl = /*#__PURE__*/(0, _styled.default)("ul", {
21
- target: "e1nb7uzc0",
22
- label: "LoaderUl"
23
- })({
24
- listStyle: "none",
25
- padding: "10px 20px",
26
- "li > div": {
27
- display: "inline-block",
28
- verticalAlign: "middle",
29
- ".react-loading-skeleton": {
30
- backgroundColor: "var(--mdc-theme-background)",
31
- backgroundImage: "linear-gradient(90deg, var(--mdc-theme-background), var(--mdc-theme-surface), var(--mdc-theme-background))"
32
- }
33
- },
34
- ".graphic": {
35
- fontSize: 36,
36
- width: 36
37
- },
38
- ".data": {
39
- width: "calc(-36px + 75%)",
40
- marginLeft: 10
41
- },
42
- ".actions": {
43
- width: "calc(-36px + 25%)",
44
- marginLeft: 10,
45
- textAlign: "right",
46
- "> div": {
47
- display: "inline-block",
48
- fontSize: 24,
49
- marginLeft: 10,
50
- width: 24
51
- }
52
- }
53
- });
17
+ label: "LoaderUl",
18
+ target: "e1nb7uzc0"
19
+ })("list-style:none;padding:24px 20px;");
20
+ var LoaderWrapper = /*#__PURE__*/(0, _styled.default)("div", {
21
+ label: "LoaderWrapper",
22
+ target: "e1nb7uzc1"
23
+ })("margin-bottom:16px;display:flex;width:100%;align-items:center;justify-content:space-around;");
24
+ var Graphic = /*#__PURE__*/(0, _styled.default)("div", {
25
+ label: "Graphic",
26
+ target: "e1nb7uzc2"
27
+ })("width:36px;");
28
+ var Data = /*#__PURE__*/(0, _styled.default)("div", {
29
+ label: "Data",
30
+ target: "e1nb7uzc3"
31
+ })("width:calc(-42px + 75%);.data-skeleton-container{height:36px;display:flex;flex-direction:column;justify-content:space-between;}");
32
+ var Actions = /*#__PURE__*/(0, _styled.default)("div", {
33
+ label: "Actions",
34
+ target: "e1nb7uzc4"
35
+ })("width:calc(-42px + 25%);margin-left:10px;text-align:right;.actions-skeleton-container{height:24px;display:flex;justify-content:end;}.actions-skeleton{width:24px;height:24px;margin-left:16px;}");
54
36
 
55
37
  var Loader = function Loader() {
38
+ var lines = Array.from(Array(5).keys());
56
39
  return /*#__PURE__*/_react.default.createElement(LoaderUl, {
57
40
  "data-testid": "default-data-list.loading"
58
- }, [1, 2, 3, 4, 5].map(function (item) {
41
+ }, lines.map(function (line) {
59
42
  return /*#__PURE__*/_react.default.createElement("li", {
60
- key: "list-" + item
61
- }, /*#__PURE__*/_react.default.createElement("div", {
62
- className: "graphic"
63
- }, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null)), /*#__PURE__*/_react.default.createElement("div", {
64
- className: "data"
65
- }, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
66
- count: 2
67
- })), /*#__PURE__*/_react.default.createElement("div", {
68
- className: "actions"
69
- }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null))));
43
+ key: "list-" + line
44
+ }, /*#__PURE__*/_react.default.createElement(LoaderWrapper, null, /*#__PURE__*/_react.default.createElement(Graphic, null, /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, {
45
+ height: 36
46
+ })), /*#__PURE__*/_react.default.createElement(Data, null, /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, {
47
+ inline: true,
48
+ count: 2,
49
+ containerClassName: "data-skeleton-container"
50
+ })), /*#__PURE__*/_react.default.createElement(Actions, null, /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, {
51
+ inline: true,
52
+ count: 2,
53
+ className: "actions-skeleton",
54
+ containerClassName: "actions-skeleton-container"
55
+ }))));
70
56
  }));
71
57
  };
72
58
 
@@ -1 +1 @@
1
- {"version":3,"names":["LoaderUl","styled","listStyle","padding","display","verticalAlign","backgroundColor","backgroundImage","fontSize","width","marginLeft","textAlign","Loader","map","item"],"sources":["Loader.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\n/**\n * Package react-loading-skeleton does not have types.\n */\n// @ts-ignore\nimport Skeleton from \"react-loading-skeleton\";\n\nconst LoaderUl = styled(\"ul\")({\n listStyle: \"none\",\n padding: \"10px 20px\",\n \"li > div\": {\n display: \"inline-block\",\n verticalAlign: \"middle\",\n \".react-loading-skeleton\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n backgroundImage:\n \"linear-gradient(90deg, var(--mdc-theme-background), var(--mdc-theme-surface), var(--mdc-theme-background))\"\n }\n },\n \".graphic\": {\n fontSize: 36,\n width: 36\n },\n \".data\": {\n width: \"calc(-36px + 75%)\",\n marginLeft: 10\n },\n \".actions\": {\n width: \"calc(-36px + 25%)\",\n marginLeft: 10,\n textAlign: \"right\",\n \"> div\": {\n display: \"inline-block\",\n fontSize: 24,\n marginLeft: 10,\n width: 24\n }\n }\n});\n\nconst Loader: React.FC = () => (\n <LoaderUl data-testid={\"default-data-list.loading\"}>\n {[1, 2, 3, 4, 5].map(item => (\n <li key={\"list-\" + item}>\n <div className=\"graphic\">\n <Skeleton />\n </div>\n <div className=\"data\">\n <Skeleton count={2} />\n </div>\n <div className=\"actions\">\n <div>\n <Skeleton />\n </div>\n <div>\n <Skeleton />\n </div>\n </div>\n </li>\n ))}\n </LoaderUl>\n);\n\nexport default Loader;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAKA;;AAJA;AACA;AACA;AACA;AAGA,IAAMA,QAAQ,oBAAGC,eAAH,EAAU,IAAV;EAAA;EAAA;AAAA,GAAgB;EAC1BC,SAAS,EAAE,MADe;EAE1BC,OAAO,EAAE,WAFiB;EAG1B,YAAY;IACRC,OAAO,EAAE,cADD;IAERC,aAAa,EAAE,QAFP;IAGR,2BAA2B;MACvBC,eAAe,EAAE,6BADM;MAEvBC,eAAe,EACX;IAHmB;EAHnB,CAHc;EAY1B,YAAY;IACRC,QAAQ,EAAE,EADF;IAERC,KAAK,EAAE;EAFC,CAZc;EAgB1B,SAAS;IACLA,KAAK,EAAE,mBADF;IAELC,UAAU,EAAE;EAFP,CAhBiB;EAoB1B,YAAY;IACRD,KAAK,EAAE,mBADC;IAERC,UAAU,EAAE,EAFJ;IAGRC,SAAS,EAAE,OAHH;IAIR,SAAS;MACLP,OAAO,EAAE,cADJ;MAELI,QAAQ,EAAE,EAFL;MAGLE,UAAU,EAAE,EAHP;MAILD,KAAK,EAAE;IAJF;EAJD;AApBc,CAAhB,CAAd;;AAiCA,IAAMG,MAAgB,GAAG,SAAnBA,MAAmB;EAAA,oBACrB,6BAAC,QAAD;IAAU,eAAa;EAAvB,GACK,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgBC,GAAhB,CAAoB,UAAAC,IAAI;IAAA,oBACrB;MAAI,GAAG,EAAE,UAAUA;IAAnB,gBACI;MAAK,SAAS,EAAC;IAAf,gBACI,6BAAC,6BAAD,OADJ,CADJ,eAII;MAAK,SAAS,EAAC;IAAf,gBACI,6BAAC,6BAAD;MAAU,KAAK,EAAE;IAAjB,EADJ,CAJJ,eAOI;MAAK,SAAS,EAAC;IAAf,gBACI,uDACI,6BAAC,6BAAD,OADJ,CADJ,eAII,uDACI,6BAAC,6BAAD,OADJ,CAJJ,CAPJ,CADqB;EAAA,CAAxB,CADL,CADqB;AAAA,CAAzB;;eAuBeF,M"}
1
+ {"version":3,"names":["LoaderUl","styled","LoaderWrapper","Graphic","Data","Actions","Loader","lines","Array","from","keys","map","line"],"sources":["Loader.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { Skeleton } from \"~/Skeleton\";\n\nconst LoaderUl = styled(\"ul\")`\n list-style: none;\n padding: 24px 20px;\n`;\n\nconst LoaderWrapper = styled(\"div\")`\n margin-bottom: 16px;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-around;\n`;\n\nconst Graphic = styled(\"div\")`\n width: 36px;\n`;\n\nconst Data = styled(\"div\")`\n width: calc(-42px + 75%);\n\n .data-skeleton-container {\n height: 36px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n`;\n\nconst Actions = styled(\"div\")`\n width: calc(-42px + 25%);\n margin-left: 10px;\n text-align: right;\n\n .actions-skeleton-container {\n height: 24px;\n display: flex;\n justify-content: end;\n }\n\n .actions-skeleton {\n width: 24px;\n height: 24px;\n margin-left: 16px;\n }\n`;\n\nconst Loader = (): ReactElement => {\n const lines = Array.from(Array(5).keys());\n\n return (\n <LoaderUl data-testid={\"default-data-list.loading\"}>\n {lines.map(line => (\n <li key={\"list-\" + line}>\n <LoaderWrapper>\n <Graphic>\n <Skeleton height={36} />\n </Graphic>\n <Data>\n <Skeleton\n inline={true}\n count={2}\n containerClassName={\"data-skeleton-container\"}\n />\n </Data>\n <Actions>\n <Skeleton\n inline={true}\n count={2}\n className={\"actions-skeleton\"}\n containerClassName={\"actions-skeleton-container\"}\n />\n </Actions>\n </LoaderWrapper>\n </li>\n ))}\n </LoaderUl>\n );\n};\n\nexport default Loader;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA,IAAMA,QAAQ,oBAAGC,eAAH,EAAU,IAAV;EAAA;EAAA;AAAA,wCAAd;AAKA,IAAMC,aAAa,oBAAGD,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,iGAAnB;AAQA,IAAME,OAAO,oBAAGF,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,iBAAb;AAIA,IAAMG,IAAI,oBAAGH,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,qIAAV;AAWA,IAAMI,OAAO,oBAAGJ,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,qMAAb;;AAkBA,IAAMK,MAAM,GAAG,SAATA,MAAS,GAAoB;EAC/B,IAAMC,KAAK,GAAGC,KAAK,CAACC,IAAN,CAAWD,KAAK,CAAC,CAAD,CAAL,CAASE,IAAT,EAAX,CAAd;EAEA,oBACI,6BAAC,QAAD;IAAU,eAAa;EAAvB,GACKH,KAAK,CAACI,GAAN,CAAU,UAAAC,IAAI;IAAA,oBACX;MAAI,GAAG,EAAE,UAAUA;IAAnB,gBACI,6BAAC,aAAD,qBACI,6BAAC,OAAD,qBACI,6BAAC,kBAAD;MAAU,MAAM,EAAE;IAAlB,EADJ,CADJ,eAII,6BAAC,IAAD,qBACI,6BAAC,kBAAD;MACI,MAAM,EAAE,IADZ;MAEI,KAAK,EAAE,CAFX;MAGI,kBAAkB,EAAE;IAHxB,EADJ,CAJJ,eAWI,6BAAC,OAAD,qBACI,6BAAC,kBAAD;MACI,MAAM,EAAE,IADZ;MAEI,KAAK,EAAE,CAFX;MAGI,SAAS,EAAE,kBAHf;MAII,kBAAkB,EAAE;IAJxB,EADJ,CAXJ,CADJ,CADW;EAAA,CAAd,CADL,CADJ;AA4BH,CA/BD;;eAiCeN,M"}
package/Menu/Menu.js CHANGED
@@ -79,7 +79,11 @@ var Menu = /*#__PURE__*/function (_React$Component) {
79
79
  className: _this.props.className,
80
80
  onClose: _this.closeMenu,
81
81
  onSelect: _this.props.onSelect,
82
- renderToPortal: true
82
+ renderToPortal: true,
83
+ style: {
84
+ zIndex: 99
85
+ } // Fixes Menu in Drawers
86
+
83
87
  }, _this.props.children);
84
88
  });
85
89
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCustomContent", function () {