@webiny/ui 5.33.5 → 5.34.0-beta.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/Accordion/Accordion.js +1 -5
- package/Accordion/Accordion.js.map +1 -1
- package/Accordion/AccordionItem.d.ts +18 -2
- package/Accordion/AccordionItem.js +46 -48
- package/Accordion/AccordionItem.js.map +1 -1
- package/Accordion/AccordionItemActions.d.ts +8 -0
- package/Accordion/AccordionItemActions.js +36 -0
- package/Accordion/AccordionItemActions.js.map +1 -0
- package/Alert/Alert.d.ts +1 -1
- package/Alert/Alert.js +1 -1
- package/Alert/Alert.js.map +1 -1
- package/Button/Button.d.ts +30 -1
- package/Button/Button.js +2 -3
- package/Button/Button.js.map +1 -1
- package/CodeEditor/CodeEditor.d.ts +2 -0
- package/CodeEditor/CodeEditor.js +4 -0
- package/CodeEditor/CodeEditor.js.map +1 -1
- package/DataTable/DataTable.d.ts +22 -0
- package/DataTable/DataTable.js +162 -0
- package/DataTable/DataTable.js.map +1 -0
- package/DataTable/DataTable.stories.d.ts +1 -0
- package/DataTable/DataTable.stories.js +77 -0
- package/DataTable/DataTable.stories.js.map +1 -0
- package/DataTable/README.md +72 -0
- package/DataTable/index.d.ts +1 -0
- package/DataTable/index.js +18 -0
- package/DataTable/index.js.map +1 -0
- package/DataTable/styled.d.ts +2 -0
- package/DataTable/styled.js +18 -0
- package/DataTable/styled.js.map +1 -0
- package/DelayedOnChange/DelayedOnChange.d.ts +40 -0
- package/DelayedOnChange/DelayedOnChange.js +129 -0
- package/DelayedOnChange/DelayedOnChange.js.map +1 -0
- package/DelayedOnChange/index.d.ts +2 -0
- package/DelayedOnChange/index.js +23 -0
- package/DelayedOnChange/index.js.map +1 -0
- package/DelayedOnChange/withDelayedOnChange.d.ts +3 -0
- package/DelayedOnChange/withDelayedOnChange.js +37 -0
- package/DelayedOnChange/withDelayedOnChange.js.map +1 -0
- package/Dialog/Dialog.js +5 -2
- package/Dialog/Dialog.js.map +1 -1
- package/Image/Image.js +3 -1
- package/Image/Image.js.map +1 -1
- package/ImageUpload/styled.d.ts +3 -3
- package/Input/Input.d.ts +1 -1
- package/Input/Input.js.map +1 -1
- package/List/DataList/DataList.js +11 -52
- package/List/DataList/DataList.js.map +1 -1
- package/List/DataList/Loader.d.ts +2 -2
- package/List/DataList/Loader.js +35 -49
- package/List/DataList/Loader.js.map +1 -1
- package/Menu/Menu.js +5 -1
- package/Menu/Menu.js.map +1 -1
- package/Skeleton/README.md +21 -0
- package/Skeleton/Skeleton.d.ts +4 -0
- package/Skeleton/Skeleton.js +25 -0
- package/Skeleton/Skeleton.js.map +1 -0
- package/Skeleton/Skeleton.stories.d.ts +1 -0
- package/Skeleton/Skeleton.stories.js +28 -0
- package/Skeleton/Skeleton.stories.js.map +1 -0
- package/Skeleton/index.d.ts +1 -0
- package/Skeleton/index.js +18 -0
- package/Skeleton/index.js.map +1 -0
- package/Switch/Switch.d.ts +1 -1
- package/Switch/Switch.js.map +1 -1
- package/Tabs/Tab.d.ts +1 -0
- package/Tabs/Tab.js +4 -1
- package/Tabs/Tab.js.map +1 -1
- package/Tabs/Tabs.d.ts +1 -0
- package/Tabs/Tabs.js +8 -1
- package/Tabs/Tabs.js.map +1 -1
- package/Tags/Tags.d.ts +8 -15
- package/Tags/Tags.js +83 -112
- package/Tags/Tags.js.map +1 -1
- package/Typography/Typography.d.ts +2 -2
- package/Typography/Typography.js.map +1 -1
- package/package.json +19 -17
- package/styles.scss +2 -3
- package/types.d.ts +3 -3
- 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;
|
package/Dialog/Dialog.js.map
CHANGED
|
@@ -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
|
|
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
|
|
package/Image/Image.js.map
CHANGED
|
@@ -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":"
|
|
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"}
|
package/ImageUpload/styled.d.ts
CHANGED
|
@@ -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" |
|
|
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" |
|
|
16
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "theme"> & {
|
|
17
17
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
18
|
-
},
|
|
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;
|
package/Input/Input.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;;;AAuCA;AACA;AACA;AACA;AACA,IAAMA,iBAAiB,oBAAGC,YAAH,oIAAvB;AAMA;AACA;AACA;AACA;AAEA;;AACA,IAAMC,SAAS,GAAG,CACd,OADc,EAEd,MAFc,EAGd,MAHc,EAId,UAJc,EAKd,UALc,EAMd,aANc,EAOd,UAPc,EAQd,WARc,EASd,YATc,EAUd,SAVc,EAWd,SAXc,EAYd,WAZc,EAad,WAbc,EAcd,UAdc,EAed,WAfc,EAgBd,WAhBc,EAiBd,gBAjBc,CAAlB;;AAoBO,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EAChD,IAAMC,QAAQ,GAAG,IAAAC,kBAAA,EACb,UAACC,CAAD,EAA+C;IAC3C,IAAQF,QAAR,GAAkCD,KAAlC,CAAQC,QAAR;IAAA,IAAkBG,WAAlB,GAAkCJ,KAAlC,CAAkBI,WAAlB;;IACA,IAAI,CAACH,QAAL,EAAe;MACX;IACH,CAJ0C,CAM3C;;;IACAA,QAAQ,CAACG,WAAW,GAAGD,CAAH,GAAOA,CAAC,CAACE,MAAF,CAASC,KAA5B,CAAR;EACH,CATY,EAUb,CAACN,KAAK,CAACC,QAAP,EAAiBD,KAAK,CAACI,WAAvB,CAVa,CAAjB;EAaA,IAAMG,MAAM,GAAG,IAAAL,kBAAA;IAAA,kGACX,iBAAOC,CAAP;MAAA;MAAA;QAAA;UAAA;YAAA;cACYK,QADZ,GACiCR,KADjC,CACYQ,QADZ,EACsBD,MADtB,GACiCP,KADjC,CACsBO,MADtB;;cAAA,KAEQC,QAFR;gBAAA;gBAAA;cAAA;;cAGQ;cACA;cACAL,CAAC,CAACM,OAAF;cALR;cAAA,OAMcD,QAAQ,EANtB;;YAAA;cAQID,MAAM,IAAIA,MAAM,CAACJ,CAAD,CAAhB;;YARJ;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CADW;;IAAA;MAAA;IAAA;EAAA,KAWX,CAACH,KAAK,CAACQ,QAAP,EAAiBR,KAAK,CAACO,MAAvB,CAXW,CAAf;EAcA,IACIG,SADJ,GAYIV,KAZJ,CACIU,SADJ;EAAA,IAEIJ,KAFJ,GAYIN,KAZJ,CAEIM,KAFJ;EAAA,IAGIK,KAHJ,GAYIX,KAZJ,CAGIW,KAHJ;EAAA,IAIIC,WAJJ,GAYIZ,KAZJ,CAIIY,WAJJ;EAAA,IAKIC,WALJ,GAYIb,KAZJ,CAKIa,WALJ;EAAA,IAMIC,IANJ,GAYId,KAZJ,CAMIc,IANJ;EAAA,IAOIC,UAPJ,GAYIf,KAZJ,CAOIe,UAPJ;EAAA,IAQIC,IARJ,GAYIhB,KAZJ,CAQIgB,IARJ;EAAA,IASIC,YATJ,GAYIjB,KAZJ,CASIiB,YATJ;EAAA,IAUIC,OAVJ,GAYIlB,KAZJ,CAUIkB,OAVJ;EAAA,IAWOC,IAXP,0CAYInB,KAZJ;EAcA,IAAIoB,UAAU,GAAGd,KAAjB;;EACA,IAAIA,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAP,KAAiB,WAAvC,EAAoD;IAChDc,UAAU,GAAG,EAAb;EACH;;EAED,YAAmEL,UAAU,IAAI,EAAjF;EAAA,IAAiBM,iBAAjB,SAAQC,OAAR;EAAA,IAA6CC,iBAA7C,SAAoCC,OAApC;;EAEA,IAAMC,cAAc,GAAG,IAAAvB,kBAAA,EAAY,UAAAC,CAAC,EAAI;IACpC,IAAI,OAAOe,OAAP,KAAmB,UAAnB,IAAiCf,CAAC,CAACuB,GAAF,KAAU,OAA/C,EAAwD;MACpDR,OAAO;IACV;;IAED,IAAI,OAAOC,IAAI,CAACQ,SAAZ,KAA0B,UAA9B,EAA0C;MACtC,OAAOR,IAAI,CAACQ,SAAL,CAAexB,CAAf,CAAP;IACH;EACJ,CARsB,EAQpB,EARoB,CAAvB;EAUA,oBACI,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,oBAAD,oBACQ,IAAAyB,aAAA,EAAKT,IAAL,EAAWrB,SAAX,CADR;IAEI,SAAS,EAAE2B,cAFf;IAGI,SAAS,EAAEf,SAHf;IAII,QAAQ,EAAEmB,OAAO,CAACf,IAAD,CAJrB;IAKI,KAAK,EAAEM,UALX;IAMI,QAAQ,EAAEnB,QANd;IAOI,MAAM,EAAEM,MAPZ;IAQI,KAAK,EAAEI,KARX;IASI,IAAI,EAAEK,IATV;IAUI,WAAW,EAAG,CAACL,KAAD,IAAUE,WAAX,IAA2BiB,SAV5C;IAWI,YAAY,EAAEb,YAXlB;IAYI,IAAI,EAAEH,IAZV;IAaI,SAAS,EAAE,IAAAiB,mBAAA,EAAW,iBAAX,EAA8BnC,iBAA9B,CAbf;IAcI,eAAaI,KAAK,CAAC,aAAD;EAdtB,GADJ,EAkBKqB,iBAAiB,KAAK,KAAtB,iBACG,6BAAC,sCAAD;IAAoB,KAAK;EAAzB,GAA2BE,iBAA3B,CAnBR,EAqBKF,iBAAiB,KAAK,KAAtB,IAA+BT,WAA/B,iBACG,6BAAC,sCAAD,QAAqBA,WAArB,CAtBR,CADJ;AA2BH,CAtFM;;;AAwFPb,KAAK,CAACiC,YAAN,GAAqB;EAAE5B,WAAW,EAAE;AAAf,CAArB"}
|
|
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
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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: "
|
|
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(
|
|
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)
|
|
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
|
|
2
|
-
declare const Loader:
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
declare const Loader: () => ReactElement;
|
|
3
3
|
export default Loader;
|
package/List/DataList/Loader.js
CHANGED
|
@@ -11,62 +11,48 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
13
|
|
|
14
|
-
var
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
})(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
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
|
-
},
|
|
41
|
+
}, lines.map(function (line) {
|
|
59
42
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
60
|
-
key: "list-" +
|
|
61
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
62
|
-
|
|
63
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
})), /*#__PURE__*/_react.default.createElement(
|
|
68
|
-
|
|
69
|
-
|
|
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","
|
|
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 () {
|