flipper-ui 0.26.12 → 0.26.14
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/core/DataTable/DataTable.d.ts +4 -0
- package/core/DataTable/DataTable.js +13 -4
- package/core/DataTable/DataTableQueryPaginated.d.ts +4 -0
- package/core/DataTable/DataTableQueryPaginated.js +8 -2
- package/core/DataTable/Rows.d.ts +2 -1
- package/core/DataTable/Rows.js +34 -4
- package/core/DataTable/types.d.ts +7 -2
- package/core/DataTable/types.js +3 -2
- package/core/DataTable/useRowsState.d.ts +1 -1
- package/core/DataTable/useRowsState.js +4 -2
- package/core/ExpansionPanel.d.ts +9 -2
- package/core/ExpansionPanel.js +40 -2
- package/core/TextField.d.ts +10 -1
- package/core/TextField.js +22 -2
- package/core/types.d.ts +3 -0
- package/package.json +1 -1
- package/stories/DataTable.stories.js +279 -2
- package/stories/ExpansionPanel.stories.js +53 -2
|
@@ -51,6 +51,10 @@ export declare type DataTableProps<D extends Data, V extends StackView = Record<
|
|
|
51
51
|
* A React MutableRefObject for the row controller
|
|
52
52
|
*/
|
|
53
53
|
controllerRef?: MutableRefObject<DataTableController<D, V> | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Initialize with hidden values
|
|
56
|
+
*/
|
|
57
|
+
hidden?: boolean;
|
|
54
58
|
/**
|
|
55
59
|
* Custom rowViews used as a Stac
|
|
56
60
|
*/
|
|
@@ -69,7 +69,8 @@ var DataTable = function DataTable(props) {
|
|
|
69
69
|
componentForEmpty = props.componentForEmpty,
|
|
70
70
|
bodyStyle = props.bodyStyle,
|
|
71
71
|
headStyle = props.headStyle,
|
|
72
|
-
hiddenRowHeight = props.hiddenRowHeight
|
|
72
|
+
hiddenRowHeight = props.hiddenRowHeight,
|
|
73
|
+
hidden = props.hidden;
|
|
73
74
|
var _useState5 = (0, _react.useState)(),
|
|
74
75
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
75
76
|
newRow = _useState6[0],
|
|
@@ -84,7 +85,7 @@ var DataTable = function DataTable(props) {
|
|
|
84
85
|
}
|
|
85
86
|
return sliceData(data, page, rowsPerPage);
|
|
86
87
|
}, [pagination.disabled, data, rowsPerPage, page, newRow]);
|
|
87
|
-
var _useRowsState = (0, _useRowsState2.useRowsState)(rows, newRow),
|
|
88
|
+
var _useRowsState = (0, _useRowsState2.useRowsState)(rows, hidden, newRow),
|
|
88
89
|
getRowState = _useRowsState.getRowState,
|
|
89
90
|
setEditableRowState = _useRowsState.setEditableRowState,
|
|
90
91
|
setRowState = _useRowsState.setRowState,
|
|
@@ -104,6 +105,12 @@ var DataTable = function DataTable(props) {
|
|
|
104
105
|
});
|
|
105
106
|
setNewRow(undefined);
|
|
106
107
|
},
|
|
108
|
+
hideRow: function hideRow(id) {
|
|
109
|
+
setRowState(id, {
|
|
110
|
+
mode: _types.RowMode.Hide
|
|
111
|
+
});
|
|
112
|
+
setNewRow(undefined);
|
|
113
|
+
},
|
|
107
114
|
addRow: function addRow(partial) {
|
|
108
115
|
setPage(0);
|
|
109
116
|
setNewRow(partial);
|
|
@@ -136,7 +143,8 @@ var DataTable = function DataTable(props) {
|
|
|
136
143
|
var rowState = getRowState(row.id);
|
|
137
144
|
var lastView = (rowState === null || rowState === void 0 ? void 0 : rowState.stackView) && (0, _last["default"])(rowState.stackView);
|
|
138
145
|
var view = lastView && (rowViews === null || rowViews === void 0 ? void 0 : rowViews[lastView]);
|
|
139
|
-
var
|
|
146
|
+
var primaryView = hidden ? _types.RowMode.Hide : _types.RowMode.View;
|
|
147
|
+
var mode = (rowState === null || rowState === void 0 ? void 0 : rowState.mode) || primaryView;
|
|
140
148
|
return /*#__PURE__*/_react["default"].createElement(_TableRow["default"], {
|
|
141
149
|
key: row.id,
|
|
142
150
|
"data-id": row.id,
|
|
@@ -151,10 +159,11 @@ var DataTable = function DataTable(props) {
|
|
|
151
159
|
data: row,
|
|
152
160
|
errors: errors,
|
|
153
161
|
mode: mode,
|
|
162
|
+
isHidden: hidden,
|
|
154
163
|
onUpdate: setEditableRowState(row.id)
|
|
155
164
|
}));
|
|
156
165
|
});
|
|
157
|
-
}, [rows, getRowState, onRowClick, setEditableRowState, errors, rowViews, bodyRowStyle, columns]);
|
|
166
|
+
}, [rows, getRowState, onRowClick, setEditableRowState, errors, rowViews, bodyRowStyle, columns, hidden]);
|
|
158
167
|
var columnsList = (0, _react.useMemo)(function () {
|
|
159
168
|
return columns.map(function (column) {
|
|
160
169
|
return /*#__PURE__*/_react["default"].createElement(_TableCell["default"], {
|
|
@@ -71,6 +71,10 @@ export declare type DataTableProps<D extends Data, V extends StackView = Record<
|
|
|
71
71
|
* A React MutableRefObject for the row controller
|
|
72
72
|
*/
|
|
73
73
|
controllerRef?: MutableRefObject<DataTableController<D, V> | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Initialize with hidden values
|
|
76
|
+
*/
|
|
77
|
+
hidden?: boolean;
|
|
74
78
|
/**
|
|
75
79
|
* Custom rowViews used as a Stac
|
|
76
80
|
*/
|
|
@@ -61,7 +61,8 @@ var DataTableQueryPaginated = function DataTableQueryPaginated(props) {
|
|
|
61
61
|
componentForEmpty = props.componentForEmpty,
|
|
62
62
|
bodyStyle = props.bodyStyle,
|
|
63
63
|
headStyle = props.headStyle,
|
|
64
|
-
hiddenRowHeight = props.hiddenRowHeight
|
|
64
|
+
hiddenRowHeight = props.hiddenRowHeight,
|
|
65
|
+
hidden = props.hidden;
|
|
65
66
|
var _useState = (0, _react.useState)(),
|
|
66
67
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
67
68
|
newRow = _useState2[0],
|
|
@@ -72,7 +73,7 @@ var DataTableQueryPaginated = function DataTableQueryPaginated(props) {
|
|
|
72
73
|
}
|
|
73
74
|
return data;
|
|
74
75
|
}, [pagination.disabled, data]);
|
|
75
|
-
var _useRowsState = (0, _useRowsState2.useRowsState)(rows, newRow),
|
|
76
|
+
var _useRowsState = (0, _useRowsState2.useRowsState)(rows, hidden, newRow),
|
|
76
77
|
getRowState = _useRowsState.getRowState,
|
|
77
78
|
setEditableRowState = _useRowsState.setEditableRowState,
|
|
78
79
|
setRowState = _useRowsState.setRowState,
|
|
@@ -92,6 +93,11 @@ var DataTableQueryPaginated = function DataTableQueryPaginated(props) {
|
|
|
92
93
|
});
|
|
93
94
|
setNewRow(undefined);
|
|
94
95
|
},
|
|
96
|
+
hideRow: function hideRow(id) {
|
|
97
|
+
setRowState(id, {
|
|
98
|
+
mode: _types.RowMode.Hide
|
|
99
|
+
});
|
|
100
|
+
},
|
|
95
101
|
addRow: function addRow(partial) {
|
|
96
102
|
handleChangePerPage(0);
|
|
97
103
|
setNewRow(partial);
|
package/core/DataTable/Rows.d.ts
CHANGED
|
@@ -4,9 +4,10 @@ declare type StatefulRowProps<D extends Data> = {
|
|
|
4
4
|
mode: RowMode;
|
|
5
5
|
errors?: Errors<D>;
|
|
6
6
|
columns: ColumnSpec<D>[];
|
|
7
|
+
isHidden?: boolean;
|
|
7
8
|
onUpdate?(partial: Partial<Data>): void;
|
|
8
9
|
};
|
|
9
|
-
export declare const StatefulRow: <D extends Data>({ data, mode, errors, columns, onUpdate }: StatefulRowProps<D>) => JSX.Element;
|
|
10
|
+
export declare const StatefulRow: <D extends Data>({ data, mode, errors, columns, onUpdate, isHidden }: StatefulRowProps<D>) => JSX.Element;
|
|
10
11
|
declare type NewRowProps<D extends Data> = {
|
|
11
12
|
data: PartialData<D>;
|
|
12
13
|
errors?: Errors<D>;
|
package/core/DataTable/Rows.js
CHANGED
|
@@ -35,6 +35,7 @@ var renderEditMode = function renderEditMode(column, row, updateRow, errors) {
|
|
|
35
35
|
var hasError = errors === null || errors === void 0 ? void 0 : (_errors$row$id = errors[row.id]) === null || _errors$row$id === void 0 ? void 0 : _errors$row$id.has(column.field);
|
|
36
36
|
if (column.renderCell) {
|
|
37
37
|
var _value = row[column.field];
|
|
38
|
+
console.log('renderCell', _value);
|
|
38
39
|
return column.renderCell({
|
|
39
40
|
data: row,
|
|
40
41
|
rowMode: _types.RowMode.Edit,
|
|
@@ -87,7 +88,7 @@ var renderEditMode = function renderEditMode(column, row, updateRow, errors) {
|
|
|
87
88
|
}
|
|
88
89
|
});
|
|
89
90
|
};
|
|
90
|
-
var
|
|
91
|
+
var renderHidenMode = function renderHidenMode(column, row) {
|
|
91
92
|
var _column$getValue;
|
|
92
93
|
if (column.type === 'actions') {
|
|
93
94
|
return column.renderCell({
|
|
@@ -99,18 +100,38 @@ var renderViewMode = function renderViewMode(column, row) {
|
|
|
99
100
|
if (column.renderCell) {
|
|
100
101
|
return column.renderCell({
|
|
101
102
|
data: row,
|
|
102
|
-
rowMode: _types.RowMode.
|
|
103
|
+
rowMode: _types.RowMode.Hide,
|
|
103
104
|
value: rawValue
|
|
104
105
|
});
|
|
105
106
|
}
|
|
106
107
|
return ((_column$getValue = column.getValue) === null || _column$getValue === void 0 ? void 0 : _column$getValue.call(column, rawValue)) || rawValue;
|
|
107
108
|
};
|
|
109
|
+
var renderViewMode = function renderViewMode(column, row) {
|
|
110
|
+
var _column$getValue2;
|
|
111
|
+
var isHidden = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
112
|
+
if (column.type === 'actions') {
|
|
113
|
+
return column.renderCell({
|
|
114
|
+
data: row,
|
|
115
|
+
rowMode: isHidden ? _types.RowMode.Hide : _types.RowMode.View
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
var rawValue = row[column.field];
|
|
119
|
+
if (column.renderCell) {
|
|
120
|
+
return column.renderCell({
|
|
121
|
+
data: row,
|
|
122
|
+
rowMode: _types.RowMode.View,
|
|
123
|
+
value: rawValue
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return ((_column$getValue2 = column.getValue) === null || _column$getValue2 === void 0 ? void 0 : _column$getValue2.call(column, rawValue)) || rawValue;
|
|
127
|
+
};
|
|
108
128
|
var StatefulRow = function StatefulRow(_ref) {
|
|
109
129
|
var data = _ref.data,
|
|
110
130
|
mode = _ref.mode,
|
|
111
131
|
errors = _ref.errors,
|
|
112
132
|
columns = _ref.columns,
|
|
113
|
-
onUpdate = _ref.onUpdate
|
|
133
|
+
onUpdate = _ref.onUpdate,
|
|
134
|
+
isHidden = _ref.isHidden;
|
|
114
135
|
var _useState = (0, _react.useState)(function () {
|
|
115
136
|
return data;
|
|
116
137
|
}),
|
|
@@ -125,12 +146,21 @@ var StatefulRow = function StatefulRow(_ref) {
|
|
|
125
146
|
patch[field] = value;
|
|
126
147
|
onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(patch);
|
|
127
148
|
}, []);
|
|
149
|
+
var getCorrectViewMode = function getCorrectViewMode(column, mode, isEditable) {
|
|
150
|
+
if (mode === _types.RowMode.Edit && isEditable) {
|
|
151
|
+
return renderEditMode(column, editableState, partialUpdate, errors);
|
|
152
|
+
}
|
|
153
|
+
if (mode === _types.RowMode.View) {
|
|
154
|
+
return renderViewMode(column, data, isHidden);
|
|
155
|
+
}
|
|
156
|
+
return renderHidenMode(column, data);
|
|
157
|
+
};
|
|
128
158
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, columns.map(function (column) {
|
|
129
159
|
return /*#__PURE__*/_react["default"].createElement(_TableCell["default"], {
|
|
130
160
|
align: column.align,
|
|
131
161
|
key: column.title,
|
|
132
162
|
style: column.cellStyle
|
|
133
|
-
},
|
|
163
|
+
}, getCorrectViewMode(column, mode, isEditable(column)));
|
|
134
164
|
}));
|
|
135
165
|
};
|
|
136
166
|
exports.StatefulRow = StatefulRow;
|
|
@@ -60,8 +60,9 @@ export declare type RowAction<D> = {
|
|
|
60
60
|
data: D;
|
|
61
61
|
};
|
|
62
62
|
export declare enum RowMode {
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
Hide = 0,
|
|
64
|
+
View = 1,
|
|
65
|
+
Edit = 2
|
|
65
66
|
}
|
|
66
67
|
export declare type RowState<D extends Data, S extends StackView> = {
|
|
67
68
|
mode: RowMode;
|
|
@@ -82,6 +83,10 @@ export declare type DataTableController<D extends Data, V extends StackView> = {
|
|
|
82
83
|
* Actives the view mode for a row
|
|
83
84
|
*/
|
|
84
85
|
viewRow(id: Identifier): void;
|
|
86
|
+
/**
|
|
87
|
+
* Hides the view mode for a row
|
|
88
|
+
*/
|
|
89
|
+
hideRow(id: Identifier): void;
|
|
85
90
|
/**
|
|
86
91
|
* Adds a new row on the DataTable
|
|
87
92
|
*/
|
package/core/DataTable/types.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.RowMode = void 0;
|
|
|
7
7
|
var RowMode;
|
|
8
8
|
exports.RowMode = RowMode;
|
|
9
9
|
(function (RowMode) {
|
|
10
|
-
RowMode[RowMode["
|
|
11
|
-
RowMode[RowMode["
|
|
10
|
+
RowMode[RowMode["Hide"] = 0] = "Hide";
|
|
11
|
+
RowMode[RowMode["View"] = 1] = "View";
|
|
12
|
+
RowMode[RowMode["Edit"] = 2] = "Edit";
|
|
12
13
|
})(RowMode || (exports.RowMode = RowMode = {}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Data, Identifier, RowState } from './types';
|
|
2
|
-
export declare const useRowsState: <D extends Data, V extends Record<string, unknown>>(rows: D[], newRow?: Partial<D> | undefined) => {
|
|
2
|
+
export declare const useRowsState: <D extends Data, V extends Record<string, unknown>>(rows: D[], isHidden?: boolean, newRow?: Partial<D> | undefined) => {
|
|
3
3
|
getRowState: (id: Identifier) => RowState<D, V> | undefined;
|
|
4
4
|
setEditableRowState: (id: Identifier) => (patch: Partial<D>) => void;
|
|
5
5
|
setRowState: (id: Identifier, partial: Partial<RowState<D, V>>) => void;
|
|
@@ -14,7 +14,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
14
14
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
15
15
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
16
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
-
var useRowsState = function useRowsState(rows
|
|
17
|
+
var useRowsState = function useRowsState(rows) {
|
|
18
|
+
var isHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
19
|
+
var newRow = arguments.length > 2 ? arguments[2] : undefined;
|
|
18
20
|
var _useState = (0, _react.useState)(function () {
|
|
19
21
|
return {
|
|
20
22
|
internal: new Map()
|
|
@@ -38,7 +40,7 @@ var useRowsState = function useRowsState(rows, newRow) {
|
|
|
38
40
|
} else {
|
|
39
41
|
nextState.set(row.id, {
|
|
40
42
|
editableState: {},
|
|
41
|
-
mode: _types.RowMode.View,
|
|
43
|
+
mode: isHidden ? _types.RowMode.Hide : _types.RowMode.View,
|
|
42
44
|
stackView: [],
|
|
43
45
|
currentState: row
|
|
44
46
|
});
|
package/core/ExpansionPanel.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { PaperProps } from './Paper';
|
|
3
|
-
|
|
3
|
+
import { HTMLElementWithDataCy } from './types';
|
|
4
|
+
export interface ExpansionPanelProps extends PaperProps {
|
|
4
5
|
actions?: ReactNode;
|
|
5
6
|
defaultExpanded?: boolean;
|
|
6
7
|
details?: ReactNode;
|
|
@@ -11,10 +12,16 @@ interface ExpansionPanelProps extends PaperProps {
|
|
|
11
12
|
summaryStyle?: object;
|
|
12
13
|
detailsStyle?: object;
|
|
13
14
|
actionsStyle?: object;
|
|
15
|
+
editStyle?: React.CSSProperties;
|
|
16
|
+
headerProps?: HTMLElementWithDataCy<HTMLDivElement>;
|
|
14
17
|
helperIcon?: React.ReactNode;
|
|
18
|
+
editable?: boolean;
|
|
19
|
+
editing?: boolean;
|
|
15
20
|
helperButtonPosition?: 'left' | 'right';
|
|
16
21
|
onHelperClick?: () => void;
|
|
22
|
+
onEditClick?: () => void;
|
|
23
|
+
onSaveClick?: () => void;
|
|
17
24
|
onChange?: (event?: React.ChangeEvent<Record<string, unknown>>, expanded?: boolean) => void;
|
|
18
25
|
}
|
|
19
|
-
declare const ExpansionPanel: ({ actions, details, expandIcon, margin, padding, style, summary, summaryStyle, detailsStyle, actionsStyle, onHelperClick, helperIcon, helperButtonPosition, ...otherProps }: ExpansionPanelProps) => JSX.Element;
|
|
26
|
+
declare const ExpansionPanel: ({ actions, details, expandIcon, margin, padding, style, summary, summaryStyle, detailsStyle, actionsStyle, editStyle, onHelperClick, onEditClick, onSaveClick, helperIcon, editable, editing, headerProps, helperButtonPosition, ...otherProps }: ExpansionPanelProps) => JSX.Element;
|
|
20
27
|
export default ExpansionPanel;
|
package/core/ExpansionPanel.js
CHANGED
|
@@ -16,7 +16,7 @@ var _ExpansionPanelSummary = _interopRequireDefault(require("@material-ui/core/E
|
|
|
16
16
|
var _react = _interopRequireDefault(require("react"));
|
|
17
17
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
18
18
|
var _TextField = require("./TextField");
|
|
19
|
-
var _excluded = ["actions", "details", "expandIcon", "margin", "padding", "style", "summary", "summaryStyle", "detailsStyle", "actionsStyle", "onHelperClick", "helperIcon", "helperButtonPosition"];
|
|
19
|
+
var _excluded = ["actions", "details", "expandIcon", "margin", "padding", "style", "summary", "summaryStyle", "detailsStyle", "actionsStyle", "editStyle", "onHelperClick", "onEditClick", "onSaveClick", "helperIcon", "editable", "editing", "headerProps", "helperButtonPosition"];
|
|
20
20
|
var _templateObject;
|
|
21
21
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
22
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -32,21 +32,59 @@ var ExpansionPanel = function ExpansionPanel(_ref) {
|
|
|
32
32
|
summaryStyle = _ref.summaryStyle,
|
|
33
33
|
detailsStyle = _ref.detailsStyle,
|
|
34
34
|
actionsStyle = _ref.actionsStyle,
|
|
35
|
+
editStyle = _ref.editStyle,
|
|
35
36
|
onHelperClick = _ref.onHelperClick,
|
|
37
|
+
onEditClick = _ref.onEditClick,
|
|
38
|
+
onSaveClick = _ref.onSaveClick,
|
|
36
39
|
helperIcon = _ref.helperIcon,
|
|
40
|
+
editable = _ref.editable,
|
|
41
|
+
editing = _ref.editing,
|
|
42
|
+
headerProps = _ref.headerProps,
|
|
37
43
|
_ref$helperButtonPosi = _ref.helperButtonPosition,
|
|
38
44
|
helperButtonPosition = _ref$helperButtonPosi === void 0 ? 'right' : _ref$helperButtonPosi,
|
|
39
45
|
otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
46
|
+
if (editable) {
|
|
47
|
+
if (!onSaveClick) {
|
|
48
|
+
throw new Error('onSaveClick is required when editable is true');
|
|
49
|
+
}
|
|
50
|
+
if (!onEditClick) {
|
|
51
|
+
throw new Error('onEditClick is required when editable is true');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
40
54
|
var handleClick = function handleClick(event) {
|
|
41
55
|
if (onHelperClick) {
|
|
42
56
|
event.stopPropagation();
|
|
43
57
|
onHelperClick();
|
|
44
58
|
}
|
|
45
59
|
};
|
|
60
|
+
var handleEditClick = function handleEditClick(event) {
|
|
61
|
+
if (onEditClick) {
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
onEditClick();
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
var handleSaveClick = function handleSaveClick(event) {
|
|
67
|
+
if (onSaveClick) {
|
|
68
|
+
event.stopPropagation();
|
|
69
|
+
onSaveClick();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
46
72
|
var renderHelper = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, onHelperClick && /*#__PURE__*/_react["default"].createElement(_TextField.HelperBox, {
|
|
47
73
|
helperIcon: helperIcon,
|
|
48
74
|
onHelperClick: handleClick
|
|
49
75
|
}));
|
|
76
|
+
var renderEdit = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, editable && /*#__PURE__*/_react["default"].createElement(_TextField.EditBox, {
|
|
77
|
+
editing: !!editing,
|
|
78
|
+
style: editStyle,
|
|
79
|
+
onEditClick: handleEditClick,
|
|
80
|
+
onSaveClick: handleSaveClick,
|
|
81
|
+
saveButtonProps: {
|
|
82
|
+
'data-cy': 'save-button'
|
|
83
|
+
},
|
|
84
|
+
editButtonProps: {
|
|
85
|
+
'data-cy': 'edit-button'
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
50
88
|
return /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], (0, _extends2["default"])({}, otherProps, {
|
|
51
89
|
style: _objectSpread({
|
|
52
90
|
margin: margin,
|
|
@@ -55,7 +93,7 @@ var ExpansionPanel = function ExpansionPanel(_ref) {
|
|
|
55
93
|
}), summary && /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
|
|
56
94
|
expandIcon: expandIcon,
|
|
57
95
|
style: summaryStyle
|
|
58
|
-
}, /*#__PURE__*/_react["default"].createElement(ExpansionPanelHeaderWrapper,
|
|
96
|
+
}, /*#__PURE__*/_react["default"].createElement(ExpansionPanelHeaderWrapper, headerProps, helperButtonPosition === 'left' && renderHelper, summary, renderEdit, helperButtonPosition === 'right' && renderHelper)), details && /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], {
|
|
59
97
|
style: detailsStyle
|
|
60
98
|
}, details), actions && /*#__PURE__*/_react["default"].createElement(_ExpansionPanelActions["default"], {
|
|
61
99
|
style: actionsStyle
|
package/core/TextField.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { ChangeEvent, KeyboardEvent, FocusEvent, ReactNode, MouseEvent } from 'react';
|
|
2
|
-
import { DefaultProps } from './types';
|
|
2
|
+
import { DefaultProps, HTMLElementWithDataCy } from './types';
|
|
3
3
|
export interface TextFieldProps extends DefaultProps {
|
|
4
4
|
autoComplete?: string;
|
|
5
5
|
autoFocus?: boolean;
|
|
@@ -26,6 +26,7 @@ export interface TextFieldProps extends DefaultProps {
|
|
|
26
26
|
rowsMax?: string | number;
|
|
27
27
|
helperText?: ReactNode;
|
|
28
28
|
helperIcon?: ReactNode;
|
|
29
|
+
showEdit?: boolean;
|
|
29
30
|
hasClear?: boolean;
|
|
30
31
|
onClear?: () => void;
|
|
31
32
|
onHelperClick?: () => void;
|
|
@@ -38,9 +39,17 @@ export interface TextFieldProps extends DefaultProps {
|
|
|
38
39
|
interface IHelperProps extends Pick<TextFieldProps, 'helperIcon'> {
|
|
39
40
|
onHelperClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
40
41
|
}
|
|
42
|
+
interface IEditProps extends Pick<TextFieldProps, 'showEdit' | 'style'> {
|
|
43
|
+
editing: boolean;
|
|
44
|
+
onEditClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
45
|
+
onSaveClick: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
46
|
+
editButtonProps?: Partial<Omit<HTMLElementWithDataCy<HTMLButtonElement>, 'color'>>;
|
|
47
|
+
saveButtonProps?: Partial<Omit<HTMLElementWithDataCy<HTMLButtonElement>, 'color'>>;
|
|
48
|
+
}
|
|
41
49
|
export declare const TextFieldWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
42
50
|
export declare const StaticTextFieldWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
43
51
|
export declare const useStyles: (props?: any) => Record<"input" | "outlinedInput" | "outlinedLabel" | "outlinedMultiline" | "iconOutlined", string>;
|
|
44
52
|
export declare const HelperBox: (props: IHelperProps) => JSX.Element;
|
|
53
|
+
export declare const EditBox: (props: IEditProps) => JSX.Element;
|
|
45
54
|
declare const TextField: ({ margin, padding, style, error, variant, InputLabelProps, InputProps, SelectProps, autoComplete, onHelperClick, helperIcon, fullWidth, hasClear, onClear, ...otherProps }: TextFieldProps) => JSX.Element;
|
|
46
55
|
export default TextField;
|
package/core/TextField.js
CHANGED
|
@@ -4,10 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useStyles = exports["default"] = exports.TextFieldWrapper = exports.StaticTextFieldWrapper = exports.HelperBox = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
exports.useStyles = exports["default"] = exports.TextFieldWrapper = exports.StaticTextFieldWrapper = exports.HelperBox = exports.EditBox = void 0;
|
|
9
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
12
12
|
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
|
|
13
13
|
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
@@ -16,6 +16,8 @@ var _styles = require("@material-ui/core/styles");
|
|
|
16
16
|
var _react = _interopRequireDefault(require("react"));
|
|
17
17
|
var _Clear = _interopRequireDefault(require("@material-ui/icons/Clear"));
|
|
18
18
|
var _Help = _interopRequireDefault(require("@material-ui/icons/Help"));
|
|
19
|
+
var _Edit = _interopRequireDefault(require("@material-ui/icons/Edit"));
|
|
20
|
+
var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
|
|
19
21
|
var _IconButton2 = _interopRequireDefault(require("./IconButton"));
|
|
20
22
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
21
23
|
var _excluded = ["margin", "padding", "style", "error", "variant", "InputLabelProps", "InputProps", "SelectProps", "autoComplete", "onHelperClick", "helperIcon", "fullWidth", "hasClear", "onClear"];
|
|
@@ -59,6 +61,24 @@ var HelperBox = function HelperBox(props) {
|
|
|
59
61
|
})));
|
|
60
62
|
};
|
|
61
63
|
exports.HelperBox = HelperBox;
|
|
64
|
+
var EditBox = function EditBox(props) {
|
|
65
|
+
if (props.editing) {
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(_IconButton2["default"], (0, _extends2["default"])({}, props.saveButtonProps, {
|
|
67
|
+
padding: "6px 2px",
|
|
68
|
+
onClick: props.onSaveClick
|
|
69
|
+
}), /*#__PURE__*/_react["default"].createElement(_Save["default"], {
|
|
70
|
+
fontSize: "small"
|
|
71
|
+
}));
|
|
72
|
+
} else {
|
|
73
|
+
return /*#__PURE__*/_react["default"].createElement(_IconButton2["default"], (0, _extends2["default"])({}, props.editButtonProps, {
|
|
74
|
+
padding: "6px 2px",
|
|
75
|
+
onClick: props.onEditClick
|
|
76
|
+
}), /*#__PURE__*/_react["default"].createElement(_Edit["default"], {
|
|
77
|
+
fontSize: "small"
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.EditBox = EditBox;
|
|
62
82
|
var renderEndAdornment = function renderEndAdornment(onClear) {
|
|
63
83
|
return /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
|
|
64
84
|
position: "end"
|
package/core/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.NoPagination = exports.NoHeader = exports.Empty = exports.Default = exports.Crud = void 0;
|
|
8
|
+
exports["default"] = exports.NoPagination = exports.NoHeader = exports.Empty = exports.Default = exports.CrudWithHidden = exports.Crud = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -21,6 +21,9 @@ var _Edit = _interopRequireDefault(require("@material-ui/icons/Edit"));
|
|
|
21
21
|
var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
|
|
22
22
|
var _Cancel = _interopRequireDefault(require("@material-ui/icons/Cancel"));
|
|
23
23
|
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
24
|
+
var _Visibility = _interopRequireDefault(require("@material-ui/icons/Visibility"));
|
|
25
|
+
var _VisibilityOff = _interopRequireDefault(require("@material-ui/icons/VisibilityOff"));
|
|
26
|
+
var _uuid = require("uuid");
|
|
24
27
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
29
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -684,4 +687,278 @@ var Crud = function Crud() {
|
|
|
684
687
|
columns: columns
|
|
685
688
|
}));
|
|
686
689
|
};
|
|
687
|
-
exports.Crud = Crud;
|
|
690
|
+
exports.Crud = Crud;
|
|
691
|
+
var CrudWithHidden = function CrudWithHidden() {
|
|
692
|
+
var controllerRef = (0, _react.useRef)();
|
|
693
|
+
var _useState5 = (0, _react.useState)({}),
|
|
694
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
695
|
+
errors = _useState6[0],
|
|
696
|
+
setErrors = _useState6[1];
|
|
697
|
+
var randomId = function randomId() {
|
|
698
|
+
return Math.random().toString(36).substr(0, 12);
|
|
699
|
+
};
|
|
700
|
+
var _useState7 = (0, _react.useState)([{
|
|
701
|
+
id: 1,
|
|
702
|
+
name: 'PowerBI',
|
|
703
|
+
rowMode: _types.RowMode.Hide,
|
|
704
|
+
key: '123',
|
|
705
|
+
secret: '456'
|
|
706
|
+
}, {
|
|
707
|
+
id: 2,
|
|
708
|
+
name: 'External API',
|
|
709
|
+
rowMode: _types.RowMode.Hide,
|
|
710
|
+
key: '123',
|
|
711
|
+
secret: '456'
|
|
712
|
+
}, {
|
|
713
|
+
id: 3,
|
|
714
|
+
name: 'Sass',
|
|
715
|
+
rowMode: _types.RowMode.Hide,
|
|
716
|
+
key: '123',
|
|
717
|
+
secret: '456'
|
|
718
|
+
}]),
|
|
719
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
720
|
+
data = _useState8[0],
|
|
721
|
+
setData = _useState8[1];
|
|
722
|
+
var handleAdd = function handleAdd() {
|
|
723
|
+
var _controllerRef$curren9;
|
|
724
|
+
(_controllerRef$curren9 = controllerRef.current) === null || _controllerRef$curren9 === void 0 ? void 0 : _controllerRef$curren9.addRow({
|
|
725
|
+
id: randomId()
|
|
726
|
+
});
|
|
727
|
+
};
|
|
728
|
+
var handleEdit = function handleEdit(id) {
|
|
729
|
+
return function () {
|
|
730
|
+
var _controllerRef$curren10;
|
|
731
|
+
(_controllerRef$curren10 = controllerRef.current) === null || _controllerRef$curren10 === void 0 ? void 0 : _controllerRef$curren10.editRow(id);
|
|
732
|
+
};
|
|
733
|
+
};
|
|
734
|
+
var handleHide = function handleHide(id) {
|
|
735
|
+
return function () {
|
|
736
|
+
var _controllerRef$curren11;
|
|
737
|
+
(_controllerRef$curren11 = controllerRef.current) === null || _controllerRef$curren11 === void 0 ? void 0 : _controllerRef$curren11.hideRow(id);
|
|
738
|
+
};
|
|
739
|
+
};
|
|
740
|
+
var handleDelete = function handleDelete(id) {
|
|
741
|
+
return function () {
|
|
742
|
+
var _controllerRef$curren12;
|
|
743
|
+
(_controllerRef$curren12 = controllerRef.current) === null || _controllerRef$curren12 === void 0 ? void 0 : _controllerRef$curren12.pushRowView(id, 'confirmDelete');
|
|
744
|
+
};
|
|
745
|
+
};
|
|
746
|
+
var handleView = function handleView(id) {
|
|
747
|
+
return function () {
|
|
748
|
+
var _controllerRef$curren13;
|
|
749
|
+
(_controllerRef$curren13 = controllerRef.current) === null || _controllerRef$curren13 === void 0 ? void 0 : _controllerRef$curren13.viewRow(id);
|
|
750
|
+
};
|
|
751
|
+
};
|
|
752
|
+
var isNullable = function isNullable(x) {
|
|
753
|
+
return x == null;
|
|
754
|
+
};
|
|
755
|
+
var isEmpty = function isEmpty(x) {
|
|
756
|
+
return x.trim().length === 0;
|
|
757
|
+
};
|
|
758
|
+
var handleErrors = function handleErrors(id) {
|
|
759
|
+
var nextItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
760
|
+
var isPartial = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
761
|
+
var errorFields = [{
|
|
762
|
+
field: 'name',
|
|
763
|
+
isErrorIf: [isEmpty]
|
|
764
|
+
}].filter(function (_ref6) {
|
|
765
|
+
var field = _ref6.field,
|
|
766
|
+
isErrorIf = _ref6.isErrorIf;
|
|
767
|
+
var value = nextItem[field];
|
|
768
|
+
if (isNullable(value)) {
|
|
769
|
+
if (isPartial) {
|
|
770
|
+
return false;
|
|
771
|
+
}
|
|
772
|
+
return true;
|
|
773
|
+
}
|
|
774
|
+
return isErrorIf.some(function (cond) {
|
|
775
|
+
return cond(value);
|
|
776
|
+
});
|
|
777
|
+
}).map(function (_ref7) {
|
|
778
|
+
var field = _ref7.field;
|
|
779
|
+
return field;
|
|
780
|
+
});
|
|
781
|
+
setErrors(function (errors) {
|
|
782
|
+
return _objectSpread(_objectSpread({}, errors), {}, (0, _defineProperty2["default"])({}, id, new Set(errorFields)));
|
|
783
|
+
});
|
|
784
|
+
return errorFields.length > 0;
|
|
785
|
+
};
|
|
786
|
+
var handleSave = function handleSave(id) {
|
|
787
|
+
var isNew = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
788
|
+
return function () {
|
|
789
|
+
var _controllerRef$curren14, _controllerRef$curren15;
|
|
790
|
+
var nextItem = (_controllerRef$curren14 = controllerRef.current) === null || _controllerRef$curren14 === void 0 ? void 0 : _controllerRef$curren14.getEditedRowData(id);
|
|
791
|
+
if (!nextItem) {
|
|
792
|
+
return;
|
|
793
|
+
}
|
|
794
|
+
if (handleErrors(id, nextItem, !isNew)) {
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
if (isNew) {
|
|
798
|
+
setData(function (data) {
|
|
799
|
+
return [_objectSpread(_objectSpread({}, nextItem), {}, {
|
|
800
|
+
key: (0, _uuid.v4)(),
|
|
801
|
+
secret: (0, _uuid.v4)()
|
|
802
|
+
})].concat((0, _toConsumableArray2["default"])(data));
|
|
803
|
+
});
|
|
804
|
+
} else {
|
|
805
|
+
setData(function (data) {
|
|
806
|
+
return data.map(function (item) {
|
|
807
|
+
if (item.id === id) {
|
|
808
|
+
return _objectSpread(_objectSpread({}, item), nextItem);
|
|
809
|
+
}
|
|
810
|
+
return item;
|
|
811
|
+
});
|
|
812
|
+
});
|
|
813
|
+
}
|
|
814
|
+
(_controllerRef$curren15 = controllerRef.current) === null || _controllerRef$curren15 === void 0 ? void 0 : _controllerRef$curren15.viewRow(id);
|
|
815
|
+
};
|
|
816
|
+
};
|
|
817
|
+
var columns = [{
|
|
818
|
+
title: 'Name',
|
|
819
|
+
field: 'name',
|
|
820
|
+
type: 'text',
|
|
821
|
+
editable: true
|
|
822
|
+
}, {
|
|
823
|
+
title: 'Key',
|
|
824
|
+
field: 'key',
|
|
825
|
+
type: 'text',
|
|
826
|
+
editable: false,
|
|
827
|
+
renderCell: function renderCell(_ref8) {
|
|
828
|
+
var rowMode = _ref8.rowMode,
|
|
829
|
+
_ref8$isNew = _ref8.isNew,
|
|
830
|
+
isNew = _ref8$isNew === void 0 ? false : _ref8$isNew,
|
|
831
|
+
value = _ref8.value;
|
|
832
|
+
if (isNew) {
|
|
833
|
+
return null;
|
|
834
|
+
}
|
|
835
|
+
if (rowMode === _types.RowMode.Hide) {
|
|
836
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "********");
|
|
837
|
+
}
|
|
838
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value);
|
|
839
|
+
}
|
|
840
|
+
}, {
|
|
841
|
+
title: 'Secret',
|
|
842
|
+
field: 'secret',
|
|
843
|
+
type: 'text',
|
|
844
|
+
editable: false,
|
|
845
|
+
renderCell: function renderCell(_ref9) {
|
|
846
|
+
var rowMode = _ref9.rowMode,
|
|
847
|
+
_ref9$isNew = _ref9.isNew,
|
|
848
|
+
isNew = _ref9$isNew === void 0 ? false : _ref9$isNew,
|
|
849
|
+
value = _ref9.value;
|
|
850
|
+
if (isNew) {
|
|
851
|
+
return null;
|
|
852
|
+
}
|
|
853
|
+
if (rowMode === _types.RowMode.Hide) {
|
|
854
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "********");
|
|
855
|
+
}
|
|
856
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value);
|
|
857
|
+
}
|
|
858
|
+
}, {
|
|
859
|
+
title: 'Actions',
|
|
860
|
+
type: 'actions',
|
|
861
|
+
align: 'center',
|
|
862
|
+
cellStyle: {
|
|
863
|
+
width: '60px'
|
|
864
|
+
},
|
|
865
|
+
renderCell: function renderCell(_ref10) {
|
|
866
|
+
var id = _ref10.data.id,
|
|
867
|
+
rowMode = _ref10.rowMode,
|
|
868
|
+
_ref10$isNew = _ref10.isNew,
|
|
869
|
+
isNew = _ref10$isNew === void 0 ? false : _ref10$isNew;
|
|
870
|
+
if (rowMode === _types.RowMode.View) {
|
|
871
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
872
|
+
style: {
|
|
873
|
+
display: 'flex'
|
|
874
|
+
}
|
|
875
|
+
}, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
876
|
+
label: "Show",
|
|
877
|
+
onClick: handleView(id)
|
|
878
|
+
}, /*#__PURE__*/_react["default"].createElement(_Visibility["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
879
|
+
label: "Edit",
|
|
880
|
+
onClick: handleEdit(id)
|
|
881
|
+
}, /*#__PURE__*/_react["default"].createElement(_Edit["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
882
|
+
label: "Delete",
|
|
883
|
+
onClick: handleDelete(id)
|
|
884
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)));
|
|
885
|
+
}
|
|
886
|
+
if (rowMode === _types.RowMode.Hide) {
|
|
887
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
888
|
+
style: {
|
|
889
|
+
display: 'flex'
|
|
890
|
+
}
|
|
891
|
+
}, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
892
|
+
label: "Show",
|
|
893
|
+
onClick: handleHide(id)
|
|
894
|
+
}, /*#__PURE__*/_react["default"].createElement(_VisibilityOff["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
895
|
+
label: "Edit",
|
|
896
|
+
onClick: handleEdit(id)
|
|
897
|
+
}, /*#__PURE__*/_react["default"].createElement(_Edit["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
898
|
+
label: "Delete",
|
|
899
|
+
onClick: handleDelete(id)
|
|
900
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)));
|
|
901
|
+
}
|
|
902
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
903
|
+
style: {
|
|
904
|
+
display: 'flex'
|
|
905
|
+
}
|
|
906
|
+
}, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
907
|
+
label: "Save",
|
|
908
|
+
onClick: handleSave(id, isNew)
|
|
909
|
+
}, /*#__PURE__*/_react["default"].createElement(_Save["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
910
|
+
label: "Cancel",
|
|
911
|
+
onClick: handleView(id)
|
|
912
|
+
}, /*#__PURE__*/_react["default"].createElement(_Cancel["default"], null)));
|
|
913
|
+
}
|
|
914
|
+
}];
|
|
915
|
+
var rowViews = {
|
|
916
|
+
confirmDelete: function confirmDelete(_ref11) {
|
|
917
|
+
var data = _ref11.data;
|
|
918
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
919
|
+
colSpan: 5
|
|
920
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
921
|
+
style: {
|
|
922
|
+
display: 'flex',
|
|
923
|
+
padding: '16px',
|
|
924
|
+
justifyContent: 'space-between'
|
|
925
|
+
}
|
|
926
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Confirm Delete \"", data.product, "\"?"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
927
|
+
style: {
|
|
928
|
+
display: 'flex'
|
|
929
|
+
}
|
|
930
|
+
}, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
931
|
+
label: "CheckIcon",
|
|
932
|
+
onClick: function onClick() {
|
|
933
|
+
var _controllerRef$curren16;
|
|
934
|
+
(_controllerRef$curren16 = controllerRef.current) === null || _controllerRef$curren16 === void 0 ? void 0 : _controllerRef$curren16.popRowView(data.id);
|
|
935
|
+
setData(function (dataList) {
|
|
936
|
+
return dataList.filter(function (item) {
|
|
937
|
+
return item.id !== data.id;
|
|
938
|
+
});
|
|
939
|
+
});
|
|
940
|
+
}
|
|
941
|
+
}, /*#__PURE__*/_react["default"].createElement(_Check["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
|
|
942
|
+
label: "CancelIcon",
|
|
943
|
+
onClick: function onClick() {
|
|
944
|
+
var _controllerRef$curren17;
|
|
945
|
+
(_controllerRef$curren17 = controllerRef.current) === null || _controllerRef$curren17 === void 0 ? void 0 : _controllerRef$curren17.popRowView(data.id);
|
|
946
|
+
}
|
|
947
|
+
}, /*#__PURE__*/_react["default"].createElement(_Cancel["default"], null)))));
|
|
948
|
+
}
|
|
949
|
+
};
|
|
950
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
951
|
+
onClick: handleAdd
|
|
952
|
+
}, "Add Row"), /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
|
|
953
|
+
hidden: true,
|
|
954
|
+
data: data,
|
|
955
|
+
controllerRef: controllerRef,
|
|
956
|
+
errors: errors,
|
|
957
|
+
pagination: {
|
|
958
|
+
disabled: true
|
|
959
|
+
},
|
|
960
|
+
rowViews: rowViews,
|
|
961
|
+
columns: columns
|
|
962
|
+
}));
|
|
963
|
+
};
|
|
964
|
+
exports.CrudWithHidden = CrudWithHidden;
|
|
@@ -4,19 +4,62 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports["default"] = exports.Disabled = exports.Default = void 0;
|
|
7
|
+
exports["default"] = exports.WithEditable = exports.Disabled = exports.Default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
var _ExpansionPanel = _interopRequireDefault(require("../core/ExpansionPanel"));
|
|
10
12
|
var _Typography = _interopRequireDefault(require("../core/Typography"));
|
|
11
13
|
var _ExpandMore = _interopRequireDefault(require("@material-ui/icons/ExpandMore"));
|
|
12
14
|
var _Button = _interopRequireDefault(require("../core/Button"));
|
|
15
|
+
var _TextField = _interopRequireDefault(require("../core/TextField"));
|
|
13
16
|
var _default = {
|
|
14
17
|
title: 'ExpansionPanel',
|
|
15
18
|
component: _ExpansionPanel["default"]
|
|
16
19
|
};
|
|
17
20
|
exports["default"] = _default;
|
|
18
21
|
var Template = function Template(args) {
|
|
19
|
-
|
|
22
|
+
var _React$useState = _react["default"].useState(args.editing),
|
|
23
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
24
|
+
editing = _React$useState2[0],
|
|
25
|
+
setEditing = _React$useState2[1];
|
|
26
|
+
var _React$useState3 = _react["default"].useState(args.details),
|
|
27
|
+
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
28
|
+
details = _React$useState4[0],
|
|
29
|
+
setDetails = _React$useState4[1];
|
|
30
|
+
var inputRef = _react["default"].useRef(null);
|
|
31
|
+
var handleEditClick = function handleEditClick() {
|
|
32
|
+
setEditing(true);
|
|
33
|
+
};
|
|
34
|
+
var handleSaveClick = function handleSaveClick() {
|
|
35
|
+
var _inputRef$current;
|
|
36
|
+
setDetails((_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value);
|
|
37
|
+
setEditing(false);
|
|
38
|
+
};
|
|
39
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
40
|
+
if (event.key === 'Enter') {
|
|
41
|
+
handleSaveClick();
|
|
42
|
+
}
|
|
43
|
+
if (event.key === 'Escape') {
|
|
44
|
+
setEditing(false);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var renderDetails = function renderDetails() {
|
|
48
|
+
if (editing) {
|
|
49
|
+
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
50
|
+
autoFocus: true,
|
|
51
|
+
inputRef: inputRef,
|
|
52
|
+
onKeyDown: handleKeyDown
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return details;
|
|
56
|
+
};
|
|
57
|
+
return /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], (0, _extends2["default"])({}, args, {
|
|
58
|
+
editing: editing,
|
|
59
|
+
onEditClick: handleEditClick,
|
|
60
|
+
onSaveClick: handleSaveClick,
|
|
61
|
+
details: renderDetails()
|
|
62
|
+
}));
|
|
20
63
|
};
|
|
21
64
|
var Default = Template.bind({});
|
|
22
65
|
exports.Default = Default;
|
|
@@ -42,4 +85,12 @@ Disabled.args = {
|
|
|
42
85
|
summary: 'Dormammu',
|
|
43
86
|
details: 'I have come to bargain',
|
|
44
87
|
expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
|
|
88
|
+
};
|
|
89
|
+
var WithEditable = Template.bind({});
|
|
90
|
+
exports.WithEditable = WithEditable;
|
|
91
|
+
WithEditable.args = {
|
|
92
|
+
editable: true,
|
|
93
|
+
summary: 'Editable Expansion Panel',
|
|
94
|
+
details: 'This is an editable expansion panel',
|
|
95
|
+
expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
|
|
45
96
|
};
|