@webiny/ui 0.0.0-unstable.5e7233243f → 0.0.0-unstable.fcdad0bc61
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/AccordionItem.js +1 -1
- package/Accordion/AccordionItem.js.map +1 -1
- package/Button/Button.js +2 -3
- package/Button/Button.js.map +1 -1
- package/DataTable/DataTable.d.ts +20 -0
- package/DataTable/DataTable.js +157 -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 +1 -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/Image/Image.js +3 -1
- package/Image/Image.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/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/package.json +18 -17
- package/styles.scss +2 -3
|
@@ -136,7 +136,7 @@ var AccordionItem = function AccordionItem(props) {
|
|
|
136
136
|
})), /*#__PURE__*/_react.default.createElement(TitleContent, {
|
|
137
137
|
className: "webiny-ui-accordion-item__title"
|
|
138
138
|
}, /*#__PURE__*/_react.default.createElement(ListItemTitle, null, props.title), props.description && /*#__PURE__*/_react.default.createElement(ListItemDescription, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
139
|
-
use: "
|
|
139
|
+
use: "body2"
|
|
140
140
|
}, props.description))), /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
141
141
|
icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
|
|
142
142
|
}))), /*#__PURE__*/_react.default.createElement(_Transition.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Content","styled","width","borderRight","borderBottom","borderLeft","boxSizing","listItem","css","padding","cursor","marginRight","ListItemTitle","fontWeight","marginBottom","ListItemDescription","TitleContent","display","flexDirection","openedState","backgroundColor","duration","defaultStyle","transition","opacity","height","pointerEvents","overflow","transitionStyles","entering","entered","exiting","AccordionItem","props","useState","open","setState","toggleState","useCallback","useEffect","classNames","className","icon","iconClassName","title","description","state","children"],"sources":["AccordionItem.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { ListItem, ListItemGraphic, ListItemMeta } from \"../List\";\nimport Transition from \"react-transition-group/Transition\";\nimport { Icon } from \"~/Icon\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Typography } from \"~/Typography\";\n\nimport { ReactComponent as UpArrow } from \"./icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownArrow } from \"./icons/round-keyboard_arrow_down-24px.svg\";\nimport classNames from \"classnames\";\n\nconst Content = styled(\"div\")({\n width: \"100%\",\n borderRight: \"1px solid var(--mdc-theme-background)\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n borderLeft: \"1px solid var(--mdc-theme-background)\",\n boxSizing: \"border-box\"\n});\n\nconst listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nconst ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nconst ListItemDescription = styled(\"div\")({});\n\nconst TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst openedState = css({\n backgroundColor: \"var(--mdc-theme-on-background)\"\n});\n\nconst duration = 150;\nconst defaultStyle = {\n transition: `all ${duration}ms ease-in-out`,\n opacity: 0,\n height: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\"\n};\n\ntype TransitionStylesState = \"entering\" | \"entered\" | \"exiting\";\n\n/**\n * We are casting pointerEvents as any because csstype does not have PointerEvents exported. Or at least, that is the error.\n */\nconst transitionStyles = {\n entering: {\n opacity: 0,\n height: 0,\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n entered: {\n opacity: 1,\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n exiting: {\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n }\n};\n\nexport interface AccordionItemProps {\n /**\n * Left side icon\n */\n icon?: React.ReactElement | null;\n\n /**\n * Accordion title\n */\n title?: React.ReactNode;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Append a class name\n */\n className?: string;\n\n /**\n * Render item opened by default\n */\n open?: boolean;\n /**\n * For testing purpose\n */\n \"data-testid\"?: string;\n /**\n * Append a class name to Icon\n */\n iconClassName?: string;\n}\n\nconst AccordionItem: React.FC<AccordionItemProps> = props => {\n const [open, setState] = useState<boolean>(props.open ? props.open : false);\n\n const toggleState = useCallback(() => {\n setState(!open);\n }, [open]);\n\n useEffect(() => {\n setState(props.open ? true : false);\n }, [props.open]);\n\n return (\n <div className={classNames(\"webiny-ui-accordion-item\", props.className)}>\n <ListItem\n className={classNames(\n listItem,\n { [openedState]: open },\n \"webiny-ui-accordion-item__list-item\"\n )}\n onClick={toggleState}\n data-testid={props[\"data-testid\"]}\n >\n {props.icon && (\n <ListItemGraphic>\n <Icon icon={props.icon} className={props.iconClassName} />\n </ListItemGraphic>\n )}\n\n <TitleContent className=\"webiny-ui-accordion-item__title\">\n <ListItemTitle>{props.title}</ListItemTitle>\n {props.description && (\n <ListItemDescription>\n <Typography use={\"
|
|
1
|
+
{"version":3,"names":["Content","styled","width","borderRight","borderBottom","borderLeft","boxSizing","listItem","css","padding","cursor","marginRight","ListItemTitle","fontWeight","marginBottom","ListItemDescription","TitleContent","display","flexDirection","openedState","backgroundColor","duration","defaultStyle","transition","opacity","height","pointerEvents","overflow","transitionStyles","entering","entered","exiting","AccordionItem","props","useState","open","setState","toggleState","useCallback","useEffect","classNames","className","icon","iconClassName","title","description","state","children"],"sources":["AccordionItem.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { ListItem, ListItemGraphic, ListItemMeta } from \"../List\";\nimport Transition from \"react-transition-group/Transition\";\nimport { Icon } from \"~/Icon\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Typography } from \"~/Typography\";\n\nimport { ReactComponent as UpArrow } from \"./icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownArrow } from \"./icons/round-keyboard_arrow_down-24px.svg\";\nimport classNames from \"classnames\";\n\nconst Content = styled(\"div\")({\n width: \"100%\",\n borderRight: \"1px solid var(--mdc-theme-background)\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n borderLeft: \"1px solid var(--mdc-theme-background)\",\n boxSizing: \"border-box\"\n});\n\nconst listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nconst ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nconst ListItemDescription = styled(\"div\")({});\n\nconst TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst openedState = css({\n backgroundColor: \"var(--mdc-theme-on-background)\"\n});\n\nconst duration = 150;\nconst defaultStyle = {\n transition: `all ${duration}ms ease-in-out`,\n opacity: 0,\n height: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\"\n};\n\ntype TransitionStylesState = \"entering\" | \"entered\" | \"exiting\";\n\n/**\n * We are casting pointerEvents as any because csstype does not have PointerEvents exported. Or at least, that is the error.\n */\nconst transitionStyles = {\n entering: {\n opacity: 0,\n height: 0,\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n entered: {\n opacity: 1,\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n exiting: {\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n }\n};\n\nexport interface AccordionItemProps {\n /**\n * Left side icon\n */\n icon?: React.ReactElement | null;\n\n /**\n * Accordion title\n */\n title?: React.ReactNode;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Append a class name\n */\n className?: string;\n\n /**\n * Render item opened by default\n */\n open?: boolean;\n /**\n * For testing purpose\n */\n \"data-testid\"?: string;\n /**\n * Append a class name to Icon\n */\n iconClassName?: string;\n}\n\nconst AccordionItem: React.FC<AccordionItemProps> = props => {\n const [open, setState] = useState<boolean>(props.open ? props.open : false);\n\n const toggleState = useCallback(() => {\n setState(!open);\n }, [open]);\n\n useEffect(() => {\n setState(props.open ? true : false);\n }, [props.open]);\n\n return (\n <div className={classNames(\"webiny-ui-accordion-item\", props.className)}>\n <ListItem\n className={classNames(\n listItem,\n { [openedState]: open },\n \"webiny-ui-accordion-item__list-item\"\n )}\n onClick={toggleState}\n data-testid={props[\"data-testid\"]}\n >\n {props.icon && (\n <ListItemGraphic>\n <Icon icon={props.icon} className={props.iconClassName} />\n </ListItemGraphic>\n )}\n\n <TitleContent className=\"webiny-ui-accordion-item__title\">\n <ListItemTitle>{props.title}</ListItemTitle>\n {props.description && (\n <ListItemDescription>\n <Typography use={\"body2\"}>{props.description}</Typography>\n </ListItemDescription>\n )}\n </TitleContent>\n <ListItemMeta>\n <Icon icon={!open ? <DownArrow /> : <UpArrow />} />\n </ListItemMeta>\n </ListItem>\n <Transition in={open} timeout={duration}>\n {(state: TransitionStylesState) => (\n <Content\n style={{ ...defaultStyle, ...transitionStyles[state] }}\n className=\"webiny-ui-accordion-item__content\"\n >\n {props.children}\n </Content>\n )}\n </Transition>\n </div>\n );\n};\n\nexport { AccordionItem };\n"],"mappings":"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"}
|
package/Button/Button.js
CHANGED
|
@@ -23,7 +23,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
23
23
|
|
|
24
24
|
var _Button = require("./Button.styles");
|
|
25
25
|
|
|
26
|
-
var _excluded = ["disabled", "
|
|
26
|
+
var _excluded = ["disabled", "label", "icon", "onClick", "small", "ripple", "className"];
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Shows a default button, used typically when action is not of high priority.
|
|
@@ -119,12 +119,11 @@ exports.ButtonSecondary = ButtonSecondary;
|
|
|
119
119
|
*/
|
|
120
120
|
var ButtonFloating = function ButtonFloating(props) {
|
|
121
121
|
var disabled = props.disabled,
|
|
122
|
+
label = props.label,
|
|
122
123
|
icon = props.icon,
|
|
123
124
|
onClick = props.onClick,
|
|
124
125
|
_props$small3 = props.small,
|
|
125
126
|
small = _props$small3 === void 0 ? false : _props$small3,
|
|
126
|
-
_props$label = props.label,
|
|
127
|
-
label = _props$label === void 0 ? null : _props$label,
|
|
128
127
|
_props$ripple4 = props.ripple,
|
|
129
128
|
ripple = _props$ripple4 === void 0 ? true : _props$ripple4,
|
|
130
129
|
_props$className4 = props.className,
|
package/Button/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ButtonDefault","props","disabled","onClick","children","small","ripple","className","style","classNames","ButtonPrimary","flat","ButtonSecondary","webinyButtonStyles","ButtonFloating","
|
|
1
|
+
{"version":3,"names":["ButtonDefault","props","disabled","onClick","children","small","ripple","className","style","classNames","ButtonPrimary","flat","ButtonSecondary","webinyButtonStyles","ButtonFloating","label","icon","rest","ButtonIcon"],"sources":["Button.tsx"],"sourcesContent":["import React from \"react\";\nimport * as RmwcButton from \"@rmwc/button\";\nimport { Fab, FabProps } from \"@rmwc/fab\";\nimport { Icon, IconProps } from \"../Icon/Icon\";\nimport classNames from \"classnames\";\nimport { SyntheticEvent } from \"react\";\nimport { webinyButtonStyles } from \"./Button.styles\";\nexport interface ButtonProps {\n // Make button flat (only applicable to Primary button).\n flat?: boolean;\n\n // Make button smaller.\n small?: boolean;\n\n // onClick handler.\n onClick?: (event: React.MouseEvent<any, MouseEvent>) => void | null;\n\n // Label and optionally an icon (using Button.Icon component).\n children?: React.ReactNode;\n\n // Show ripple effect on button click. Default: true\n ripple?: boolean;\n\n className?: string;\n\n disabled?: boolean;\n\n style?: { [key: string]: any };\n\n // For testing purposes.\n \"data-testid\"?: string;\n}\n\n/**\n * Shows a default button, used typically when action is not of high priority.\n */\nexport const ButtonDefault: React.FC<ButtonProps> = props => {\n const { disabled, onClick, children, small, ripple = true, className = \"\", style } = props;\n\n return (\n <RmwcButton.Button\n style={style}\n disabled={disabled}\n dense={small}\n onClick={onClick}\n ripple={ripple}\n className={classNames(\"webiny-ui-button\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows primary button, eg. for submitting forms.\n */\nexport const ButtonPrimary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n flat = false,\n ripple = true,\n style = {},\n className = null\n } = props;\n return (\n <RmwcButton.Button\n raised={!flat}\n dense={small}\n disabled={disabled}\n unelevated={flat}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\"webiny-ui-button webiny-ui-button--primary\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows a secondary button - eg. for doing a reset on a form.\n */\nexport const ButtonSecondary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n ripple = true,\n className = null,\n style = {}\n } = props;\n\n return (\n <RmwcButton.Button\n disabled={disabled}\n outlined\n dense={small}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\n \"webiny-ui-button webiny-ui-button--secondary\",\n webinyButtonStyles,\n className\n )}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\nexport type ButtonFloatingProps = ButtonProps &\n FabProps & {\n label?: React.ReactNode;\n icon?: React.ReactNode;\n onMouseDown?: (e: SyntheticEvent) => void;\n onMouseUp?: (e: SyntheticEvent) => void;\n };\n\n/**\n * A floating button, shown on the side of the screen, typically used for creating new content or accessing settings.\n */\nexport const ButtonFloating: React.FC<ButtonFloatingProps> = props => {\n const {\n disabled,\n label,\n icon,\n onClick,\n small = false,\n ripple = true,\n className = null,\n ...rest\n } = props;\n return (\n <Fab\n data-testid={props[\"data-testid\"]}\n disabled={disabled}\n mini={small}\n onClick={onClick}\n label={label}\n ripple={ripple}\n icon={icon}\n className={classNames(\"webiny-ui-button--floating\", className)}\n {...rest}\n />\n );\n};\n\n/**\n * Shows an icon, suitable to be shown inside of a button.\n */\nexport const ButtonIcon: React.FC<IconProps> = props => <Icon {...props} />;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DataTableCellProps } from "@rmwc/data-table";
|
|
3
|
+
import "@rmwc/data-table/data-table.css";
|
|
4
|
+
interface Column<T> {
|
|
5
|
+
header: string | number | JSX.Element;
|
|
6
|
+
cell?: (row: T) => string | number | JSX.Element;
|
|
7
|
+
meta?: DataTableCellProps;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare type Columns<T> = {
|
|
11
|
+
[P in keyof T]?: Column<T>;
|
|
12
|
+
};
|
|
13
|
+
interface Props<T> {
|
|
14
|
+
columns: Columns<T>;
|
|
15
|
+
data: T[];
|
|
16
|
+
onSelectRow?: (rows: T[] | []) => void;
|
|
17
|
+
loadingInitial?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const DataTable: <T>({ data, columns, onSelectRow, loadingInitial }: Props<T>) => JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.DataTable = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _dataTable = require("@rmwc/data-table");
|
|
21
|
+
|
|
22
|
+
var _reactTable = require("@tanstack/react-table");
|
|
23
|
+
|
|
24
|
+
var _Checkbox = require("../Checkbox");
|
|
25
|
+
|
|
26
|
+
var _Skeleton = require("../Skeleton");
|
|
27
|
+
|
|
28
|
+
require("@rmwc/data-table/data-table.css");
|
|
29
|
+
|
|
30
|
+
var _styled = require("./styled");
|
|
31
|
+
|
|
32
|
+
var defineColumns = function defineColumns(columns, onSelectRow, loadingInitial) {
|
|
33
|
+
return (0, _react.useMemo)(function () {
|
|
34
|
+
var columnsList = Object.keys(columns).map(function (key) {
|
|
35
|
+
return (0, _objectSpread2.default)({
|
|
36
|
+
id: key
|
|
37
|
+
}, columns[key]);
|
|
38
|
+
});
|
|
39
|
+
var defaults = columnsList.map(function (column) {
|
|
40
|
+
var id = column.id,
|
|
41
|
+
_header = column.header,
|
|
42
|
+
meta = column.meta,
|
|
43
|
+
_cell = column.cell;
|
|
44
|
+
return {
|
|
45
|
+
accessorKey: id,
|
|
46
|
+
header: function header() {
|
|
47
|
+
return _header;
|
|
48
|
+
},
|
|
49
|
+
cell: function cell(info) {
|
|
50
|
+
if (_cell && typeof _cell === "function") {
|
|
51
|
+
return _cell(info.row.original);
|
|
52
|
+
} else {
|
|
53
|
+
return info.getValue();
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
meta: meta
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
var select = !!onSelectRow ? [{
|
|
60
|
+
id: "datatable-select-column",
|
|
61
|
+
header: function header(_ref) {
|
|
62
|
+
var table = _ref.table;
|
|
63
|
+
return !loadingInitial && /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
64
|
+
indeterminate: table.getIsSomeRowsSelected(),
|
|
65
|
+
value: table.getIsAllRowsSelected(),
|
|
66
|
+
onChange: function onChange(e) {
|
|
67
|
+
return table.toggleAllPageRowsSelected(e);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
cell: function cell(_ref2) {
|
|
72
|
+
var row = _ref2.row;
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
74
|
+
indeterminate: row.getIsSomeSelected(),
|
|
75
|
+
value: row.getIsSelected(),
|
|
76
|
+
onChange: row.getToggleSelectedHandler()
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
meta: {
|
|
80
|
+
hasFormControl: true,
|
|
81
|
+
className: "datatable-select-column"
|
|
82
|
+
}
|
|
83
|
+
}] : [];
|
|
84
|
+
return [].concat(select, (0, _toConsumableArray2.default)(defaults)).map(function (column) {
|
|
85
|
+
if (loadingInitial) {
|
|
86
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, column), {}, {
|
|
87
|
+
cell: function cell() {
|
|
88
|
+
return /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, null);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return column;
|
|
94
|
+
});
|
|
95
|
+
}, [columns, onSelectRow, loadingInitial]);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
var defineData = function defineData(data, loadingInitial) {
|
|
99
|
+
return (0, _react.useMemo)(function () {
|
|
100
|
+
if (loadingInitial) {
|
|
101
|
+
return Array(10).fill({});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return data;
|
|
105
|
+
}, [data, loadingInitial]);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var DataTable = function DataTable(_ref3) {
|
|
109
|
+
var data = _ref3.data,
|
|
110
|
+
columns = _ref3.columns,
|
|
111
|
+
onSelectRow = _ref3.onSelectRow,
|
|
112
|
+
loadingInitial = _ref3.loadingInitial;
|
|
113
|
+
|
|
114
|
+
var _React$useState = _react.default.useState({}),
|
|
115
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
116
|
+
rowSelection = _React$useState2[0],
|
|
117
|
+
setRowSelection = _React$useState2[1];
|
|
118
|
+
|
|
119
|
+
var table = (0, _reactTable.useReactTable)({
|
|
120
|
+
data: defineData(data, loadingInitial),
|
|
121
|
+
columns: defineColumns(columns, onSelectRow, loadingInitial),
|
|
122
|
+
getCoreRowModel: (0, _reactTable.getCoreRowModel)(),
|
|
123
|
+
state: {
|
|
124
|
+
rowSelection: rowSelection
|
|
125
|
+
},
|
|
126
|
+
enableRowSelection: !!onSelectRow,
|
|
127
|
+
onRowSelectionChange: setRowSelection
|
|
128
|
+
});
|
|
129
|
+
(0, _react.useEffect)(function () {
|
|
130
|
+
if (onSelectRow && typeof onSelectRow === "function") {
|
|
131
|
+
var dataSelected = table.getSelectedRowModel().flatRows.map(function (row) {
|
|
132
|
+
return row.original;
|
|
133
|
+
});
|
|
134
|
+
onSelectRow(dataSelected);
|
|
135
|
+
}
|
|
136
|
+
}, [rowSelection]);
|
|
137
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Table, null, /*#__PURE__*/_react.default.createElement(_dataTable.DataTableContent, null, /*#__PURE__*/_react.default.createElement(_dataTable.DataTableHead, null, table.getHeaderGroups().map(function (headerGroup) {
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_dataTable.DataTableRow, {
|
|
139
|
+
key: headerGroup.id
|
|
140
|
+
}, headerGroup.headers.map(function (header) {
|
|
141
|
+
return /*#__PURE__*/_react.default.createElement(_dataTable.DataTableHeadCell, Object.assign({
|
|
142
|
+
key: header.id
|
|
143
|
+
}, header.column.columnDef.meta), header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext()));
|
|
144
|
+
}));
|
|
145
|
+
})), /*#__PURE__*/_react.default.createElement(_dataTable.DataTableBody, null, table.getRowModel().rows.map(function (row) {
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement(_dataTable.DataTableRow, {
|
|
147
|
+
key: row.id,
|
|
148
|
+
selected: rowSelection.hasOwnProperty(row.index)
|
|
149
|
+
}, row.getVisibleCells().map(function (cell) {
|
|
150
|
+
return /*#__PURE__*/_react.default.createElement(_dataTable.DataTableCell, Object.assign({
|
|
151
|
+
key: cell.id
|
|
152
|
+
}, cell.column.columnDef.meta), (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext()));
|
|
153
|
+
}));
|
|
154
|
+
}))));
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
exports.DataTable = DataTable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["defineColumns","columns","onSelectRow","loadingInitial","useMemo","columnsList","Object","keys","map","key","id","defaults","column","header","meta","cell","accessorKey","info","row","original","getValue","select","table","getIsSomeRowsSelected","getIsAllRowsSelected","e","toggleAllPageRowsSelected","getIsSomeSelected","getIsSelected","getToggleSelectedHandler","hasFormControl","className","defineData","data","Array","fill","DataTable","React","useState","rowSelection","setRowSelection","useReactTable","getCoreRowModel","state","enableRowSelection","onRowSelectionChange","useEffect","dataSelected","getSelectedRowModel","flatRows","getHeaderGroups","headerGroup","headers","columnDef","isPlaceholder","flexRender","getContext","getRowModel","rows","hasOwnProperty","index","getVisibleCells"],"sources":["DataTable.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport {\n DataTableContent,\n DataTableHead,\n DataTableRow,\n DataTableHeadCell,\n DataTableBody,\n DataTableCell,\n DataTableCellProps\n} from \"@rmwc/data-table\";\n\nimport { flexRender, getCoreRowModel, useReactTable, ColumnDef } from \"@tanstack/react-table\";\n\nimport { Checkbox } from \"~/Checkbox\";\nimport { Skeleton } from \"~/Skeleton\";\n\nimport \"@rmwc/data-table/data-table.css\";\nimport { Table } from \"./styled\";\n\ninterface Column<T> {\n /*\n * Column header component.\n */\n header: string | number | JSX.Element;\n /*\n * Cell renderer, receives the full row and returns the value to render inside the cell.\n */\n cell?: (row: T) => string | number | JSX.Element;\n /*\n * Additional props to add to both header and row cells. Refer to RMWC documentation.\n */\n meta?: DataTableCellProps;\n /*\n * Column class names.\n */\n className?: string;\n}\n\nexport type Columns<T> = {\n [P in keyof T]?: Column<T>;\n};\n\ninterface Props<T> {\n /*\n * Columns definition.\n */\n columns: Columns<T>;\n /*\n * Data to display into DataTable body.\n */\n data: T[];\n /*\n * Callback that receives the selected rows.\n */\n onSelectRow?: (rows: T[] | []) => void;\n /*\n * Render the skeleton state at the initial data loading.\n */\n loadingInitial?: boolean;\n}\n\nconst defineColumns = <T,>(\n columns: Props<T>[\"columns\"],\n onSelectRow: Props<T>[\"onSelectRow\"],\n loadingInitial: Props<T>[\"loadingInitial\"]\n): ColumnDef<T>[] =>\n useMemo(() => {\n const columnsList = Object.keys(columns).map(key => ({\n id: key,\n ...columns[key as keyof typeof columns]\n }));\n\n const defaults: ColumnDef<T>[] = columnsList.map(column => {\n const { id, header, meta, cell } = column;\n\n return {\n accessorKey: id,\n header: () => header,\n cell: info => {\n if (cell && typeof cell === \"function\") {\n return cell(info.row.original);\n } else {\n return info.getValue();\n }\n },\n meta\n };\n });\n\n const select: ColumnDef<T>[] = !!onSelectRow\n ? [\n {\n id: \"datatable-select-column\",\n header: ({ table }) =>\n !loadingInitial && (\n <Checkbox\n indeterminate={table.getIsSomeRowsSelected()}\n value={table.getIsAllRowsSelected()}\n onChange={e => table.toggleAllPageRowsSelected(e)}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n indeterminate={row.getIsSomeSelected()}\n value={row.getIsSelected()}\n onChange={row.getToggleSelectedHandler()}\n />\n ),\n meta: {\n hasFormControl: true,\n className: \"datatable-select-column\"\n }\n }\n ]\n : [];\n\n return [...select, ...defaults].map(column => {\n if (loadingInitial) {\n return {\n ...column,\n cell: () => <Skeleton />\n };\n }\n\n return column;\n });\n }, [columns, onSelectRow, loadingInitial]);\n\nconst defineData = <T,>(\n data: Props<T>[\"data\"],\n loadingInitial: Props<T>[\"loadingInitial\"]\n): T[] => {\n return useMemo(() => {\n if (loadingInitial) {\n return Array(10).fill({});\n }\n return data;\n }, [data, loadingInitial]);\n};\n\nexport const DataTable = <T,>({ data, columns, onSelectRow, loadingInitial }: Props<T>) => {\n const [rowSelection, setRowSelection] = React.useState({});\n\n const table = useReactTable({\n data: defineData(data, loadingInitial),\n columns: defineColumns(columns, onSelectRow, loadingInitial),\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection\n },\n enableRowSelection: !!onSelectRow,\n onRowSelectionChange: setRowSelection\n });\n\n useEffect(() => {\n if (onSelectRow && typeof onSelectRow === \"function\") {\n const dataSelected = table.getSelectedRowModel().flatRows.map(row => row.original);\n onSelectRow(dataSelected);\n }\n }, [rowSelection]);\n\n return (\n <Table>\n <DataTableContent>\n <DataTableHead>\n {table.getHeaderGroups().map(headerGroup => (\n <DataTableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => (\n <DataTableHeadCell\n key={header.id}\n {...header.column.columnDef.meta}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </DataTableHeadCell>\n ))}\n </DataTableRow>\n ))}\n </DataTableHead>\n <DataTableBody>\n {table.getRowModel().rows.map(row => (\n <DataTableRow\n key={row.id}\n selected={rowSelection.hasOwnProperty(row.index)}\n >\n {row.getVisibleCells().map(cell => (\n <DataTableCell key={cell.id} {...cell.column.columnDef.meta}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </DataTableCell>\n ))}\n </DataTableRow>\n ))}\n </DataTableBody>\n </DataTableContent>\n </Table>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@storybook/react");
|
|
8
|
+
|
|
9
|
+
var _Story = require("@webiny/storybook-utils/Story");
|
|
10
|
+
|
|
11
|
+
var _README = _interopRequireDefault(require("./../DataTable/README.md"));
|
|
12
|
+
|
|
13
|
+
var _DataTable = require("./DataTable");
|
|
14
|
+
|
|
15
|
+
var story = (0, _react2.storiesOf)("Components/DataTable", module);
|
|
16
|
+
story.add("usage", function () {
|
|
17
|
+
var data = [{
|
|
18
|
+
name: "Page 1",
|
|
19
|
+
createdBy: "John Doe",
|
|
20
|
+
lastModified: "3 days ago",
|
|
21
|
+
status: "Draft"
|
|
22
|
+
}, {
|
|
23
|
+
name: "Page 2",
|
|
24
|
+
createdBy: "John Doe",
|
|
25
|
+
lastModified: "1 day ago",
|
|
26
|
+
status: "Published"
|
|
27
|
+
}, {
|
|
28
|
+
name: "Page 3",
|
|
29
|
+
createdBy: "John Doe",
|
|
30
|
+
lastModified: "1 hour ago",
|
|
31
|
+
status: "Published"
|
|
32
|
+
}];
|
|
33
|
+
var columns = {
|
|
34
|
+
name: {
|
|
35
|
+
header: "Title"
|
|
36
|
+
},
|
|
37
|
+
createdBy: {
|
|
38
|
+
header: "Author",
|
|
39
|
+
cell: function cell(row) {
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement("em", null, row.createdBy.toUpperCase());
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
lastModified: {
|
|
44
|
+
header: "Last Modified"
|
|
45
|
+
},
|
|
46
|
+
status: {
|
|
47
|
+
header: "Status",
|
|
48
|
+
meta: {
|
|
49
|
+
alignEnd: true
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(_Story.Story, null, /*#__PURE__*/_react.default.createElement(_Story.StoryReadme, null, _README.default), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
54
|
+
title: "A simple DataTable."
|
|
55
|
+
}, /*#__PURE__*/_react.default.createElement(_DataTable.DataTable, {
|
|
56
|
+
data: data,
|
|
57
|
+
columns: columns
|
|
58
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
59
|
+
title: "DataTable with selectable rows"
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement(_DataTable.DataTable, {
|
|
61
|
+
data: data,
|
|
62
|
+
columns: columns,
|
|
63
|
+
onSelectRow: function onSelectRow(row) {
|
|
64
|
+
return console.log("Do whatever you like with the selected row data", row);
|
|
65
|
+
}
|
|
66
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
67
|
+
title: "DataTable at initial loading state"
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(_DataTable.DataTable, {
|
|
69
|
+
data: data,
|
|
70
|
+
columns: columns,
|
|
71
|
+
loadingInitial: true
|
|
72
|
+
})));
|
|
73
|
+
}, {
|
|
74
|
+
info: {
|
|
75
|
+
propTables: [_DataTable.DataTable]
|
|
76
|
+
}
|
|
77
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","data","name","createdBy","lastModified","status","columns","header","cell","row","toUpperCase","meta","alignEnd","readme","console","log","info","propTables","DataTable"],"sources":["DataTable.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../DataTable/README.md\";\nimport { Columns, DataTable } from \"./DataTable\";\n\nconst story = storiesOf(\"Components/DataTable\", module);\n\ninterface Entry {\n name: string;\n createdBy: string;\n lastModified: string;\n status: string;\n}\n\nstory.add(\n \"usage\",\n () => {\n const data: Entry[] = [\n {\n name: \"Page 1\",\n createdBy: \"John Doe\",\n lastModified: \"3 days ago\",\n status: \"Draft\"\n },\n {\n name: \"Page 2\",\n createdBy: \"John Doe\",\n lastModified: \"1 day ago\",\n status: \"Published\"\n },\n {\n name: \"Page 3\",\n createdBy: \"John Doe\",\n lastModified: \"1 hour ago\",\n status: \"Published\"\n }\n ];\n\n const columns: Columns<Entry> = {\n name: {\n header: \"Title\"\n },\n createdBy: {\n header: \"Author\",\n cell: row => <em>{row.createdBy.toUpperCase()}</em>\n },\n lastModified: {\n header: \"Last Modified\"\n },\n status: {\n header: \"Status\",\n meta: {\n alignEnd: true\n }\n }\n };\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple DataTable.\"}>\n <DataTable data={data} columns={columns} />\n </StorySandbox>\n <StorySandbox title={\"DataTable with selectable rows\"}>\n <DataTable\n data={data}\n columns={columns}\n onSelectRow={row =>\n console.log(\"Do whatever you like with the selected row data\", row)\n }\n />\n </StorySandbox>\n <StorySandbox title={\"DataTable at initial loading state\"}>\n <DataTable data={data} columns={columns} loadingInitial={true} />\n </StorySandbox>\n </Story>\n );\n },\n {\n info: {\n propTables: [DataTable]\n }\n }\n);\n"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAA,EAAU,sBAAV,EAAkCC,MAAlC,CAAd;AASAF,KAAK,CAACG,GAAN,CACI,OADJ,EAEI,YAAM;EACF,IAAMC,IAAa,GAAG,CAClB;IACIC,IAAI,EAAE,QADV;IAEIC,SAAS,EAAE,UAFf;IAGIC,YAAY,EAAE,YAHlB;IAIIC,MAAM,EAAE;EAJZ,CADkB,EAOlB;IACIH,IAAI,EAAE,QADV;IAEIC,SAAS,EAAE,UAFf;IAGIC,YAAY,EAAE,WAHlB;IAIIC,MAAM,EAAE;EAJZ,CAPkB,EAalB;IACIH,IAAI,EAAE,QADV;IAEIC,SAAS,EAAE,UAFf;IAGIC,YAAY,EAAE,YAHlB;IAIIC,MAAM,EAAE;EAJZ,CAbkB,CAAtB;EAqBA,IAAMC,OAAuB,GAAG;IAC5BJ,IAAI,EAAE;MACFK,MAAM,EAAE;IADN,CADsB;IAI5BJ,SAAS,EAAE;MACPI,MAAM,EAAE,QADD;MAEPC,IAAI,EAAE,cAAAC,GAAG;QAAA,oBAAI,yCAAKA,GAAG,CAACN,SAAJ,CAAcO,WAAd,EAAL,CAAJ;MAAA;IAFF,CAJiB;IAQ5BN,YAAY,EAAE;MACVG,MAAM,EAAE;IADE,CARc;IAW5BF,MAAM,EAAE;MACJE,MAAM,EAAE,QADJ;MAEJI,IAAI,EAAE;QACFC,QAAQ,EAAE;MADR;IAFF;EAXoB,CAAhC;EAmBA,oBACI,6BAAC,YAAD,qBACI,6BAAC,kBAAD,QAAcC,eAAd,CADJ,eAEI,6BAAC,mBAAD;IAAc,KAAK,EAAE;EAArB,gBACI,6BAAC,oBAAD;IAAW,IAAI,EAAEZ,IAAjB;IAAuB,OAAO,EAAEK;EAAhC,EADJ,CAFJ,eAKI,6BAAC,mBAAD;IAAc,KAAK,EAAE;EAArB,gBACI,6BAAC,oBAAD;IACI,IAAI,EAAEL,IADV;IAEI,OAAO,EAAEK,OAFb;IAGI,WAAW,EAAE,qBAAAG,GAAG;MAAA,OACZK,OAAO,CAACC,GAAR,CAAY,iDAAZ,EAA+DN,GAA/D,CADY;IAAA;EAHpB,EADJ,CALJ,eAcI,6BAAC,mBAAD;IAAc,KAAK,EAAE;EAArB,gBACI,6BAAC,oBAAD;IAAW,IAAI,EAAER,IAAjB;IAAuB,OAAO,EAAEK,OAAhC;IAAyC,cAAc,EAAE;EAAzD,EADJ,CAdJ,CADJ;AAoBH,CA/DL,EAgEI;EACIU,IAAI,EAAE;IACFC,UAAU,EAAE,CAACC,oBAAD;EADV;AADV,CAhEJ"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# DataTable
|
|
2
|
+
|
|
3
|
+
### Design
|
|
4
|
+
|
|
5
|
+
https://material.io/components/data-tables
|
|
6
|
+
|
|
7
|
+
### Description
|
|
8
|
+
|
|
9
|
+
Use `DataTable` components to display sets of data across rows and columns.
|
|
10
|
+
|
|
11
|
+
### Usage
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { DataTable, Columns } from "@webiny/ui/DataTable";
|
|
15
|
+
|
|
16
|
+
// Declare the data structure.
|
|
17
|
+
interface Entry {
|
|
18
|
+
name: string;
|
|
19
|
+
createdBy: string;
|
|
20
|
+
lastModified: string;
|
|
21
|
+
status: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Define the data you want to display.
|
|
25
|
+
const data: Entry[] = [
|
|
26
|
+
{
|
|
27
|
+
name: "Page 1",
|
|
28
|
+
createdBy: "John Doe",
|
|
29
|
+
lastModified: "3 days ago",
|
|
30
|
+
status: "Draft"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "Page 2",
|
|
34
|
+
createdBy: "John Doe",
|
|
35
|
+
lastModified: "1 day ago",
|
|
36
|
+
status: "Published"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "Page 3",
|
|
40
|
+
createdBy: "John Doe",
|
|
41
|
+
lastModified: "1 hour ago",
|
|
42
|
+
status: "Published"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
// Define the columns structure for your table.
|
|
47
|
+
const columns: Columns<Entry> = {
|
|
48
|
+
name: {
|
|
49
|
+
header: "Title"
|
|
50
|
+
},
|
|
51
|
+
createdBy: {
|
|
52
|
+
header: "Author",
|
|
53
|
+
cell: row => <em>{row.createdBy.toUpperCase()}</em>
|
|
54
|
+
},
|
|
55
|
+
lastModified: {
|
|
56
|
+
header: "Last Modified"
|
|
57
|
+
},
|
|
58
|
+
status: {
|
|
59
|
+
header: "Status",
|
|
60
|
+
meta: {
|
|
61
|
+
alignEnd: true
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
...
|
|
67
|
+
|
|
68
|
+
// Use the <DataTable /> component within your code.
|
|
69
|
+
return(
|
|
70
|
+
<DataTable data={data} columns={columns} />
|
|
71
|
+
)
|
|
72
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DataTable";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _DataTable = require("./DataTable");
|
|
8
|
+
|
|
9
|
+
Object.keys(_DataTable).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _DataTable[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _DataTable[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./DataTable\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Table: import("@emotion/styled-base").StyledComponent<{}, Pick<{}, never>, object>;
|
|
@@ -0,0 +1,18 @@
|
|
|
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.Table = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var _dataTable = require("@rmwc/data-table");
|
|
13
|
+
|
|
14
|
+
var Table = /*#__PURE__*/(0, _styled.default)(_dataTable.DataTable, {
|
|
15
|
+
label: "Table",
|
|
16
|
+
target: "er5nqo40"
|
|
17
|
+
})("width:100%;th,td{vertical-align:middle;}.datatable-select-column{width:56px;}");
|
|
18
|
+
exports.Table = Table;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Table","styled","RmwcDataTable"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nimport { DataTable as RmwcDataTable } from \"@rmwc/data-table\";\n\nexport const Table = styled(RmwcDataTable)`\n width: 100%;\n\n th,\n td {\n vertical-align: middle;\n }\n\n .datatable-select-column {\n width: 56px;\n }\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,IAAMA,KAAK,oBAAGC,eAAH,EAAUC,oBAAV;EAAA;EAAA;AAAA,mFAAX"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import React from "react";
|
|
3
|
+
interface ApplyValueCb {
|
|
4
|
+
(value: string, cb: (value: string) => void): void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* This component is used to wrap Input and Textarea components to optimize form re-render.
|
|
8
|
+
* These 2 are the only components that trigger form model change on each character input.
|
|
9
|
+
* This means, whenever you type a letter an entire form re-renders.
|
|
10
|
+
* On complex forms you will feel and see a significant delay if this component is not used.
|
|
11
|
+
*
|
|
12
|
+
* The logic behind this component is to serve as a middleware between Form and Input/Textarea, and only notify form of a change when
|
|
13
|
+
* a user stops typing for given period of time (400ms by default).
|
|
14
|
+
*/
|
|
15
|
+
interface OnChangeCallable {
|
|
16
|
+
(value: string, cb?: ApplyValueCb): void;
|
|
17
|
+
}
|
|
18
|
+
interface OnBlurCallable {
|
|
19
|
+
(ev: React.SyntheticEvent): void;
|
|
20
|
+
}
|
|
21
|
+
interface OnKeyDownCallable {
|
|
22
|
+
(ev: React.KeyboardEvent<HTMLInputElement>): void;
|
|
23
|
+
}
|
|
24
|
+
interface ChildrenCallableParams {
|
|
25
|
+
value: string;
|
|
26
|
+
onChange: OnChangeCallable;
|
|
27
|
+
}
|
|
28
|
+
interface ChildrenCallable {
|
|
29
|
+
(params: ChildrenCallableParams): React.ReactElement;
|
|
30
|
+
}
|
|
31
|
+
export interface DelayedOnChangeProps {
|
|
32
|
+
value?: string;
|
|
33
|
+
delay?: number;
|
|
34
|
+
onChange?: OnChangeCallable;
|
|
35
|
+
onBlur?: OnBlurCallable;
|
|
36
|
+
onKeyDown?: OnKeyDownCallable;
|
|
37
|
+
children: React.ReactNode | ChildrenCallable;
|
|
38
|
+
}
|
|
39
|
+
export declare const DelayedOnChange: React.FC<DelayedOnChangeProps>;
|
|
40
|
+
export default DelayedOnChange;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = exports.DelayedOnChange = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _excluded = ["children"];
|
|
21
|
+
|
|
22
|
+
var emptyFunction = function emptyFunction() {
|
|
23
|
+
return undefined;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var DelayedOnChange = function DelayedOnChange(_ref) {
|
|
27
|
+
var children = _ref.children,
|
|
28
|
+
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
29
|
+
var onChange = other.onChange,
|
|
30
|
+
_other$delay = other.delay,
|
|
31
|
+
delay = _other$delay === void 0 ? 400 : _other$delay,
|
|
32
|
+
initialValue = other.value;
|
|
33
|
+
|
|
34
|
+
var _useState = (0, _react.useState)(initialValue),
|
|
35
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
36
|
+
value = _useState2[0],
|
|
37
|
+
setValue = _useState2[1]; // Sync state and props
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
if (initialValue !== value) {
|
|
42
|
+
setValue(initialValue);
|
|
43
|
+
}
|
|
44
|
+
}, [initialValue]);
|
|
45
|
+
|
|
46
|
+
var localTimeout = _react.default.useRef(null);
|
|
47
|
+
|
|
48
|
+
var applyValue = function applyValue(value) {
|
|
49
|
+
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : emptyFunction;
|
|
50
|
+
localTimeout.current && clearTimeout(localTimeout.current);
|
|
51
|
+
localTimeout.current = null;
|
|
52
|
+
|
|
53
|
+
if (!onChange) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
onChange(value, callback);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var onChangeLocal = _react.default.useCallback(function (value) {
|
|
61
|
+
setValue(value);
|
|
62
|
+
}, []); // this is fired upon change value state
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
var onValueStateChanged = function onValueStateChanged(nextValue) {
|
|
66
|
+
localTimeout.current && clearTimeout(localTimeout.current);
|
|
67
|
+
localTimeout.current = null;
|
|
68
|
+
localTimeout.current = setTimeout(function () {
|
|
69
|
+
return applyValue(nextValue);
|
|
70
|
+
}, delay);
|
|
71
|
+
}; // need to clear the timeout when unmounting the component
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
(0, _react.useEffect)(function () {
|
|
75
|
+
return function () {
|
|
76
|
+
if (!localTimeout.current) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
clearTimeout(localTimeout.current);
|
|
81
|
+
localTimeout.current = null;
|
|
82
|
+
};
|
|
83
|
+
}, []);
|
|
84
|
+
(0, _react.useEffect)(function () {
|
|
85
|
+
onValueStateChanged(value || "");
|
|
86
|
+
}, [value]);
|
|
87
|
+
var newProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, other), {}, {
|
|
88
|
+
value: value || "",
|
|
89
|
+
onChange: onChangeLocal
|
|
90
|
+
});
|
|
91
|
+
var renderProp = typeof children === "function" ? children : null;
|
|
92
|
+
var child = renderProp ? renderProp(newProps) : /*#__PURE__*/_react.default.cloneElement(children, newProps);
|
|
93
|
+
var props = (0, _objectSpread2.default)({}, child.props);
|
|
94
|
+
var realOnKeyDown = props.onKeyDown || emptyFunction;
|
|
95
|
+
var realOnBlur = props.onBlur || emptyFunction; // Need to apply value if input lost focus
|
|
96
|
+
|
|
97
|
+
var onBlur = function onBlur(ev) {
|
|
98
|
+
ev.persist();
|
|
99
|
+
applyValue(ev.target.value, function () {
|
|
100
|
+
return realOnBlur(ev);
|
|
101
|
+
});
|
|
102
|
+
}; // Need to listen for TAB key to apply new value immediately, without delay. Otherwise validation will be triggered with old value.
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
var onKeyDown = function onKeyDown(ev) {
|
|
106
|
+
ev.persist();
|
|
107
|
+
|
|
108
|
+
if (ev.key === "Tab") {
|
|
109
|
+
applyValue(ev.target.value, function () {
|
|
110
|
+
return realOnKeyDown(ev);
|
|
111
|
+
});
|
|
112
|
+
} else if (ev.key === "Enter" && props["data-on-enter"]) {
|
|
113
|
+
applyValue(ev.target.value, function () {
|
|
114
|
+
return realOnKeyDown(ev);
|
|
115
|
+
});
|
|
116
|
+
} else {
|
|
117
|
+
realOnKeyDown(ev);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
return /*#__PURE__*/_react.default.cloneElement(child, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
|
122
|
+
onBlur: onBlur,
|
|
123
|
+
onKeyDown: onKeyDown
|
|
124
|
+
}));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
exports.DelayedOnChange = DelayedOnChange;
|
|
128
|
+
var _default = DelayedOnChange;
|
|
129
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["emptyFunction","undefined","DelayedOnChange","children","other","onChange","delay","initialValue","value","useState","setValue","useEffect","localTimeout","React","useRef","applyValue","callback","current","clearTimeout","onChangeLocal","useCallback","onValueStateChanged","nextValue","setTimeout","newProps","renderProp","child","cloneElement","props","realOnKeyDown","onKeyDown","realOnBlur","onBlur","ev","persist","target","key"],"sources":["DelayedOnChange.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nconst emptyFunction = (): undefined => {\n return undefined;\n};\n\ninterface ApplyValueCb {\n (value: string, cb: (value: string) => void): void;\n}\n/**\n * This component is used to wrap Input and Textarea components to optimize form re-render.\n * These 2 are the only components that trigger form model change on each character input.\n * This means, whenever you type a letter an entire form re-renders.\n * On complex forms you will feel and see a significant delay if this component is not used.\n *\n * The logic behind this component is to serve as a middleware between Form and Input/Textarea, and only notify form of a change when\n * a user stops typing for given period of time (400ms by default).\n */\ninterface OnChangeCallable {\n (value: string, cb?: ApplyValueCb): void;\n}\ninterface OnBlurCallable {\n (ev: React.SyntheticEvent): void;\n}\ninterface OnKeyDownCallable {\n (ev: React.KeyboardEvent<HTMLInputElement>): void;\n}\ninterface ChildrenCallableParams {\n value: string;\n onChange: OnChangeCallable;\n}\ninterface ChildrenCallable {\n (params: ChildrenCallableParams): React.ReactElement;\n}\nexport interface DelayedOnChangeProps {\n value?: string;\n delay?: number;\n onChange?: OnChangeCallable;\n onBlur?: OnBlurCallable;\n onKeyDown?: OnKeyDownCallable;\n children: React.ReactNode | ChildrenCallable;\n}\nexport const DelayedOnChange: React.FC<DelayedOnChangeProps> = ({ children, ...other }) => {\n const { onChange, delay = 400, value: initialValue } = other;\n const [value, setValue] = useState<string | undefined>(initialValue);\n // Sync state and props\n useEffect(() => {\n if (initialValue !== value) {\n setValue(initialValue);\n }\n }, [initialValue]);\n\n const localTimeout = React.useRef<number | null>(null);\n\n const applyValue = (value: string, callback: ApplyValueCb = emptyFunction) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n if (!onChange) {\n return;\n }\n onChange(value, callback);\n };\n\n const onChangeLocal = React.useCallback((value: string) => {\n setValue(value);\n }, []);\n\n // this is fired upon change value state\n const onValueStateChanged = (nextValue: string) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n localTimeout.current = setTimeout(() => applyValue(nextValue), delay) as unknown as number;\n };\n\n // need to clear the timeout when unmounting the component\n useEffect(() => {\n return () => {\n if (!localTimeout.current) {\n return;\n }\n clearTimeout(localTimeout.current);\n localTimeout.current = null;\n };\n }, []);\n\n useEffect(() => {\n onValueStateChanged(value || \"\");\n }, [value]);\n\n const newProps = {\n ...other,\n value: value || \"\",\n onChange: onChangeLocal\n };\n\n const renderProp = typeof children === \"function\" ? (children as ChildrenCallable) : null;\n const child = renderProp\n ? renderProp(newProps)\n : React.cloneElement(children as unknown as React.ReactElement, newProps);\n\n const props = { ...child.props };\n const realOnKeyDown = props.onKeyDown || emptyFunction;\n const realOnBlur = props.onBlur || emptyFunction;\n\n // Need to apply value if input lost focus\n const onBlur: OnBlurCallable = ev => {\n ev.persist();\n applyValue((ev.target as HTMLInputElement).value, () => realOnBlur(ev));\n };\n\n // Need to listen for TAB key to apply new value immediately, without delay. Otherwise validation will be triggered with old value.\n const onKeyDown: OnKeyDownCallable = ev => {\n ev.persist();\n if (ev.key === \"Tab\") {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else if (ev.key === \"Enter\" && props[\"data-on-enter\"]) {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else {\n realOnKeyDown(ev);\n }\n };\n\n return React.cloneElement(child, { ...props, onBlur, onKeyDown });\n};\n\nexport default DelayedOnChange;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "DelayedOnChange", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _DelayedOnChange.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "withDelayedOnChange", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _withDelayedOnChange.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var _DelayedOnChange = _interopRequireDefault(require("./DelayedOnChange"));
|
|
22
|
+
|
|
23
|
+
var _withDelayedOnChange = _interopRequireDefault(require("./withDelayedOnChange"));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as DelayedOnChange } from \"./DelayedOnChange\";\nexport { default as withDelayedOnChange } from \"./withDelayedOnChange\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA"}
|
|
@@ -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/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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Skeleton
|
|
2
|
+
|
|
3
|
+
### Additional information
|
|
4
|
+
|
|
5
|
+
[https://www.npmjs.com/package/react-loading-skeleton](https://www.npmjs.com/package/react-loading-skeleton)
|
|
6
|
+
|
|
7
|
+
### Description
|
|
8
|
+
|
|
9
|
+
`Skeleton` component is used to render animated loading skeletons within Webiny.
|
|
10
|
+
|
|
11
|
+
### Usage
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
import { Skeleton } from "@webiny/ui/Skeleton";
|
|
15
|
+
|
|
16
|
+
...
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Skeleton />
|
|
20
|
+
)
|
|
21
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.Skeleton = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _reactLoadingSkeleton = _interopRequireWildcard(require("react-loading-skeleton"));
|
|
15
|
+
|
|
16
|
+
require("react-loading-skeleton/dist/skeleton.css");
|
|
17
|
+
|
|
18
|
+
var Skeleton = function Skeleton(props) {
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.SkeletonTheme, {
|
|
20
|
+
baseColor: "var(--mdc-theme-background)",
|
|
21
|
+
highlightColor: "var(--mdc-theme-surface)"
|
|
22
|
+
}, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, props));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.Skeleton = Skeleton;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Skeleton","props"],"sources":["Skeleton.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport ReactLoadingSkeleton, { SkeletonProps, SkeletonTheme } from \"react-loading-skeleton\";\n\nimport \"react-loading-skeleton/dist/skeleton.css\";\n\nexport const Skeleton = (props: SkeletonProps): ReactElement => {\n return (\n <SkeletonTheme\n baseColor={\"var(--mdc-theme-background)\"}\n highlightColor={\"var(--mdc-theme-surface)\"}\n >\n <ReactLoadingSkeleton {...props} />\n </SkeletonTheme>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAwC;EAC5D,oBACI,6BAAC,mCAAD;IACI,SAAS,EAAE,6BADf;IAEI,cAAc,EAAE;EAFpB,gBAII,6BAAC,6BAAD,EAA0BA,KAA1B,CAJJ,CADJ;AAQH,CATM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@storybook/react");
|
|
8
|
+
|
|
9
|
+
var _Story = require("@webiny/storybook-utils/Story");
|
|
10
|
+
|
|
11
|
+
var _README = _interopRequireDefault(require("./../Skeleton/README.md"));
|
|
12
|
+
|
|
13
|
+
var _Skeleton = require("./Skeleton");
|
|
14
|
+
|
|
15
|
+
var story = (0, _react2.storiesOf)("Components/Skeleton", module);
|
|
16
|
+
story.add("usage", function () {
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(_Story.Story, null, /*#__PURE__*/_react.default.createElement(_Story.StoryReadme, null, _README.default), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
18
|
+
title: "A simple loading Skeleton, single line"
|
|
19
|
+
}, /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, null)), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
20
|
+
title: "A loading Skeleton, with 3 lines"
|
|
21
|
+
}, /*#__PURE__*/_react.default.createElement(_Skeleton.Skeleton, {
|
|
22
|
+
count: 3
|
|
23
|
+
})));
|
|
24
|
+
}, {
|
|
25
|
+
info: {
|
|
26
|
+
propTables: [_Skeleton.Skeleton]
|
|
27
|
+
}
|
|
28
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Skeleton"],"sources":["Skeleton.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../Skeleton/README.md\";\nimport { Skeleton } from \"./Skeleton\";\n\nconst story = storiesOf(\"Components/Skeleton\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple loading Skeleton, single line\"}>\n <Skeleton />\n </StorySandbox>\n <StorySandbox title={\"A loading Skeleton, with 3 lines\"}>\n <Skeleton count={3} />\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Skeleton] } }\n);\n"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAA,EAAU,qBAAV,EAAiCC,MAAjC,CAAd;AAEAF,KAAK,CAACG,GAAN,CACI,OADJ,EAEI,YAAM;EACF,oBACI,6BAAC,YAAD,qBACI,6BAAC,kBAAD,QAAcC,eAAd,CADJ,eAEI,6BAAC,mBAAD;IAAc,KAAK,EAAE;EAArB,gBACI,6BAAC,kBAAD,OADJ,CAFJ,eAKI,6BAAC,mBAAD;IAAc,KAAK,EAAE;EAArB,gBACI,6BAAC,kBAAD;IAAU,KAAK,EAAE;EAAjB,EADJ,CALJ,CADJ;AAWH,CAdL,EAeI;EAAEC,IAAI,EAAE;IAAEC,UAAU,EAAE,CAACC,kBAAD;EAAd;AAAR,CAfJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Skeleton";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _Skeleton = require("./Skeleton");
|
|
8
|
+
|
|
9
|
+
Object.keys(_Skeleton).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _Skeleton[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _Skeleton[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Skeleton\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/ui",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.fcdad0bc61",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,13 +14,14 @@
|
|
|
14
14
|
],
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@babel/runtime": "7.
|
|
17
|
+
"@babel/runtime": "7.19.0",
|
|
18
18
|
"@editorjs/editorjs": "2.25.0",
|
|
19
19
|
"@emotion/core": "10.3.1",
|
|
20
20
|
"@emotion/styled": "10.3.0",
|
|
21
21
|
"@rmwc/button": "7.0.3",
|
|
22
22
|
"@rmwc/checkbox": "7.0.3",
|
|
23
23
|
"@rmwc/chip": "7.0.3",
|
|
24
|
+
"@rmwc/data-table": "7.0.3",
|
|
24
25
|
"@rmwc/dialog": "7.0.3",
|
|
25
26
|
"@rmwc/drawer": "7.0.3",
|
|
26
27
|
"@rmwc/elevation": "7.0.3",
|
|
@@ -39,9 +40,10 @@
|
|
|
39
40
|
"@rmwc/textfield": "7.0.3",
|
|
40
41
|
"@rmwc/top-app-bar": "7.0.3",
|
|
41
42
|
"@rmwc/typography": "7.0.3",
|
|
42
|
-
"@svgr/webpack": "6.
|
|
43
|
+
"@svgr/webpack": "6.4.0",
|
|
44
|
+
"@tanstack/react-table": "8.5.22",
|
|
43
45
|
"brace": "0.11.1",
|
|
44
|
-
"classnames": "2.3.
|
|
46
|
+
"classnames": "2.3.2",
|
|
45
47
|
"cropperjs": "1.5.12",
|
|
46
48
|
"dot-prop-immutable": "2.1.1",
|
|
47
49
|
"downshift": "2.2.3",
|
|
@@ -58,33 +60,32 @@
|
|
|
58
60
|
"react-color": "2.19.3",
|
|
59
61
|
"react-columned": "1.1.3",
|
|
60
62
|
"react-custom-scrollbars": "4.2.1",
|
|
61
|
-
"react-loading-skeleton": "
|
|
63
|
+
"react-loading-skeleton": "3.1.0",
|
|
62
64
|
"react-spinner-material": "1.1.4",
|
|
63
65
|
"react-transition-group": "4.4.5",
|
|
64
66
|
"shortid": "2.2.16"
|
|
65
67
|
},
|
|
66
68
|
"devDependencies": {
|
|
67
|
-
"@babel/cli": "^7.
|
|
68
|
-
"@babel/core": "^7.
|
|
69
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
70
|
-
"@babel/preset-env": "^7.
|
|
71
|
-
"@babel/preset-typescript": "^7.
|
|
69
|
+
"@babel/cli": "^7.19.3",
|
|
70
|
+
"@babel/core": "^7.19.3",
|
|
71
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
72
|
+
"@babel/preset-env": "^7.19.4",
|
|
73
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
72
74
|
"@storybook/addon-info": "^5.2.8",
|
|
73
75
|
"@storybook/addon-knobs": "^5.0.5",
|
|
74
76
|
"@storybook/addon-links": "^5.0.5",
|
|
75
77
|
"@storybook/react": "^5.2.8",
|
|
76
78
|
"@testing-library/react": "^12.1.2",
|
|
77
|
-
"@types/classnames": "^2.2.7",
|
|
78
79
|
"@types/nprogress": "^0.2.0",
|
|
79
80
|
"@types/rc-tooltip": "^3.7.2",
|
|
80
81
|
"@types/react-custom-scrollbars": "^4.0.10",
|
|
81
82
|
"@types/react-transition-group": "^4.4.4",
|
|
82
83
|
"@types/shortid": "^0.0.29",
|
|
83
|
-
"@webiny/cli": "^0.0.0-unstable.
|
|
84
|
-
"@webiny/form": "^0.0.0-unstable.
|
|
85
|
-
"@webiny/project-utils": "^0.0.0-unstable.
|
|
86
|
-
"@webiny/storybook-utils": "^0.0.0-unstable.
|
|
87
|
-
"@webiny/validation": "^0.0.0-unstable.
|
|
84
|
+
"@webiny/cli": "^0.0.0-unstable.fcdad0bc61",
|
|
85
|
+
"@webiny/form": "^0.0.0-unstable.fcdad0bc61",
|
|
86
|
+
"@webiny/project-utils": "^0.0.0-unstable.fcdad0bc61",
|
|
87
|
+
"@webiny/storybook-utils": "^0.0.0-unstable.fcdad0bc61",
|
|
88
|
+
"@webiny/validation": "^0.0.0-unstable.fcdad0bc61",
|
|
88
89
|
"babel-loader": "^8.0.0-beta.6",
|
|
89
90
|
"babel-plugin-emotion": "^9.2.8",
|
|
90
91
|
"execa": "^5.0.0",
|
|
@@ -130,5 +131,5 @@
|
|
|
130
131
|
]
|
|
131
132
|
}
|
|
132
133
|
},
|
|
133
|
-
"gitHead": "
|
|
134
|
+
"gitHead": "40d639c3665e384a5e2d26674d43ce26f3295e8c"
|
|
134
135
|
}
|
package/styles.scss
CHANGED
|
@@ -11,9 +11,8 @@ $webiny-theme-light-text-primary-on-background: rgba(0, 0, 0, 0.87);
|
|
|
11
11
|
$webiny-theme-light-text-secondary-on-background: rgba(0, 0, 0, 0.54);
|
|
12
12
|
$webiny-theme-light-text-hint-on-dark: rgba(255, 255, 255, 0.5);
|
|
13
13
|
$webiny-theme-light-caret-down: url("data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.54%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E");
|
|
14
|
-
|
|
15
|
-
// webiny typography
|
|
16
14
|
$webiny-theme-typography-font-family: "Source Sans Pro" !default;
|
|
15
|
+
$webiny-theme-typography-subtitle2-font-weight: 600 !default;
|
|
17
16
|
|
|
18
17
|
$mdc-theme-primary: $webiny-theme-light-primary;
|
|
19
18
|
$mdc-theme-on-primary: $webiny-theme-light-on-primary;
|
|
@@ -29,7 +28,7 @@ $mdc-theme-text-hint-on-dark: $webiny-theme-light-text-hint-on-dark;
|
|
|
29
28
|
$mdc-typography-font-family: $webiny-theme-typography-font-family;
|
|
30
29
|
|
|
31
30
|
@import "material-components-web/material-components-web.scss";
|
|
32
|
-
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700");
|
|
31
|
+
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700|Open+Sans:300,400,600,700|Source+Code+Pro:400,700");
|
|
33
32
|
|
|
34
33
|
/*
|
|
35
34
|
Fix for select box appearance. For some reason browser prefix css attributes are striped away.
|