@entropic-bond/crud-panel 3.4.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/crud-controller.js +73 -150
- package/lib/crud-controller.js.map +1 -1
- package/lib/crud-controller.spec.js +44 -129
- package/lib/crud-controller.spec.js.map +1 -1
- package/lib/crud-panel.js +71 -151
- package/lib/crud-panel.js.map +1 -1
- package/lib/crud-panel.spec.js +172 -367
- package/lib/crud-panel.spec.js.map +1 -1
- package/lib/progress-controller.js +13 -15
- package/lib/progress-controller.js.map +1 -1
- package/lib/progress-controller.spec.js +32 -32
- package/lib/progress-controller.spec.js.map +1 -1
- package/package.json +14 -13
package/lib/crud-panel.js
CHANGED
|
@@ -1,30 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
29
3
|
if (k2 === undefined) k2 = k;
|
|
30
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -57,172 +31,119 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
57
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
58
32
|
});
|
|
59
33
|
};
|
|
60
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
61
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
62
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
63
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
64
|
-
function step(op) {
|
|
65
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
66
|
-
while (_) try {
|
|
67
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
68
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
69
|
-
switch (op[0]) {
|
|
70
|
-
case 0: case 1: t = op; break;
|
|
71
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
72
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
73
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
74
|
-
default:
|
|
75
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
76
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
77
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
78
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
79
|
-
if (t[2]) _.ops.pop();
|
|
80
|
-
_.trys.pop(); continue;
|
|
81
|
-
}
|
|
82
|
-
op = body.call(thisArg, _);
|
|
83
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
84
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88
35
|
exports.CrudPanel = void 0;
|
|
89
|
-
|
|
90
|
-
|
|
36
|
+
const entropic_bond_1 = require("entropic-bond");
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
91
38
|
var Mode;
|
|
92
39
|
(function (Mode) {
|
|
93
40
|
Mode[Mode["normal"] = 0] = "normal";
|
|
94
41
|
Mode[Mode["add"] = 1] = "add";
|
|
95
42
|
Mode[Mode["edit"] = 2] = "edit";
|
|
96
43
|
})(Mode || (Mode = {}));
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
_this.state = {
|
|
44
|
+
class CrudPanel extends react_1.Component {
|
|
45
|
+
constructor(props) {
|
|
46
|
+
super(props);
|
|
47
|
+
this.state = {
|
|
102
48
|
documents: [],
|
|
103
49
|
mode: Mode.normal,
|
|
104
50
|
};
|
|
105
|
-
return _this;
|
|
106
51
|
}
|
|
107
|
-
|
|
108
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
controller = this.props.controller;
|
|
116
|
-
this.unsubscriber = controller.onChange(function (event) {
|
|
117
|
-
if (event.documentCollection) {
|
|
118
|
-
_this.setState({
|
|
119
|
-
documents: event.documentCollection
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
else
|
|
123
|
-
_this.setState({});
|
|
124
|
-
});
|
|
125
|
-
_a = this.setState;
|
|
126
|
-
_b = {};
|
|
127
|
-
return [4 /*yield*/, controller.documentCollection()];
|
|
128
|
-
case 1:
|
|
129
|
-
_a.apply(this, [(_b.documents = _c.sent(),
|
|
130
|
-
_b)]);
|
|
131
|
-
return [2 /*return*/];
|
|
52
|
+
componentDidMount() {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const { controller } = this.props;
|
|
55
|
+
this.unsubscriber = controller.onChange(event => {
|
|
56
|
+
if (event.documentCollection) {
|
|
57
|
+
this.setState({
|
|
58
|
+
documents: event.documentCollection
|
|
59
|
+
});
|
|
132
60
|
}
|
|
61
|
+
else
|
|
62
|
+
this.setState({});
|
|
63
|
+
});
|
|
64
|
+
this.setState({
|
|
65
|
+
documents: yield controller.documentCollection()
|
|
133
66
|
});
|
|
134
67
|
});
|
|
135
|
-
}
|
|
136
|
-
|
|
68
|
+
}
|
|
69
|
+
componentWillUnmount() {
|
|
137
70
|
this.unsubscriber();
|
|
138
|
-
}
|
|
139
|
-
|
|
71
|
+
}
|
|
72
|
+
newDocument() {
|
|
140
73
|
this.props.controller.newDocument();
|
|
141
74
|
this.setState({
|
|
142
75
|
mode: Mode.add,
|
|
143
76
|
});
|
|
144
|
-
}
|
|
145
|
-
|
|
77
|
+
}
|
|
78
|
+
editDocument(document) {
|
|
146
79
|
this.props.controller.setDocument(document);
|
|
147
80
|
this.setState({
|
|
148
81
|
mode: Mode.edit
|
|
149
82
|
});
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
this.setState({
|
|
167
|
-
mode: Mode.normal,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
return [2 /*return*/];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
83
|
+
}
|
|
84
|
+
storeDocument(document) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const { controller, layout } = this.props;
|
|
87
|
+
controller.setDocument(document);
|
|
88
|
+
yield controller.storeDocument();
|
|
89
|
+
if (layout === 'formAndItems') {
|
|
90
|
+
this.newDocument();
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.setState({
|
|
94
|
+
mode: Mode.normal,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
173
97
|
});
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
var closeOnCancel = layout !== 'formAndItems';
|
|
98
|
+
}
|
|
99
|
+
invokeContentViewChild(labels) {
|
|
100
|
+
const { children, layout, controller } = this.props;
|
|
101
|
+
const { mode } = this.state;
|
|
102
|
+
const closeOnCancel = layout !== 'formAndItems';
|
|
180
103
|
if (!controller.document)
|
|
181
104
|
return;
|
|
182
|
-
|
|
105
|
+
const props = {
|
|
183
106
|
controller: controller,
|
|
184
107
|
submitButtonCaption: mode == Mode.edit ? labels === null || labels === void 0 ? void 0 : labels.updateButtonLabel : labels === null || labels === void 0 ? void 0 : labels.addButtonLabel,
|
|
185
|
-
onSubmit:
|
|
108
|
+
onSubmit: (document) => this.storeDocument(document),
|
|
186
109
|
onCancel: closeOnCancel
|
|
187
|
-
?
|
|
188
|
-
:
|
|
110
|
+
? () => this.setState({ mode: Mode.normal })
|
|
111
|
+
: () => this.newDocument(),
|
|
189
112
|
};
|
|
190
113
|
if (typeof children[0] === 'function') {
|
|
191
114
|
return (0, react_1.cloneElement)(children[0](props), { key: controller.document.id });
|
|
192
115
|
}
|
|
193
116
|
else {
|
|
194
|
-
return (0, react_1.cloneElement)(children[0],
|
|
117
|
+
return (0, react_1.cloneElement)(children[0], Object.assign({ key: controller.document.id }, props));
|
|
195
118
|
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
onDelete: function (document) { return controller.setDocument(document).deleteDocument(); }
|
|
119
|
+
}
|
|
120
|
+
invokeDetailViewChild(document) {
|
|
121
|
+
const { children, controller } = this.props;
|
|
122
|
+
const props = {
|
|
123
|
+
document,
|
|
124
|
+
onSelect: (document) => this.editDocument(document),
|
|
125
|
+
onDelete: (document) => controller.setDocument(document).deleteDocument()
|
|
204
126
|
};
|
|
205
127
|
if (typeof children[1] === 'function') {
|
|
206
128
|
return (0, react_1.cloneElement)(children[1](props), { key: document.id });
|
|
207
129
|
}
|
|
208
130
|
else {
|
|
209
|
-
return (0, react_1.cloneElement)(children[1],
|
|
131
|
+
return (0, react_1.cloneElement)(children[1], Object.assign({ key: document.id }, props));
|
|
210
132
|
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
var _this = this;
|
|
133
|
+
}
|
|
134
|
+
render() {
|
|
214
135
|
var _a;
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
136
|
+
const { mode, documents } = this.state;
|
|
137
|
+
const { className, cardAddButton, controller } = this.props;
|
|
138
|
+
const docClassName = (0, entropic_bond_1.snakeCase)((_a = controller.document) === null || _a === void 0 ? void 0 : _a.className);
|
|
139
|
+
let labels = this.props.labels || {};
|
|
140
|
+
const layout = this.props.layout || 'itemsAlways';
|
|
220
141
|
if (typeof labels === 'function')
|
|
221
142
|
labels = labels(controller);
|
|
222
|
-
|
|
223
|
-
return (react_1.default.createElement("div", { className:
|
|
143
|
+
const { addNewDocumentLabel, singularDocumentInCollectionCaption, documentsInCollectionCaption, noDocumentsFoundLabel } = labels;
|
|
144
|
+
return (react_1.default.createElement("div", { className: `crud-panel ${docClassName} ${className || ''}` },
|
|
224
145
|
mode === Mode.normal && layout !== 'formAndItems' && !cardAddButton &&
|
|
225
|
-
react_1.default.createElement("button", { onClick:
|
|
146
|
+
react_1.default.createElement("button", { onClick: () => this.newDocument() }, addNewDocumentLabel),
|
|
226
147
|
(layout === 'formAndItems' || mode === Mode.add || mode === Mode.edit) &&
|
|
227
148
|
react_1.default.createElement("div", { className: "content-panel" }, this.invokeContentViewChild(labels)),
|
|
228
149
|
(layout === 'itemsAlways' || layout === 'formAndItems' || mode === Mode.normal) &&
|
|
@@ -233,14 +154,13 @@ var CrudPanel = /** @class */ (function (_super) {
|
|
|
233
154
|
: singularDocumentInCollectionCaption || documentsInCollectionCaption),
|
|
234
155
|
react_1.default.createElement("div", { className: "documents" },
|
|
235
156
|
cardAddButton &&
|
|
236
|
-
react_1.default.createElement("div", { className: "crud-card card-add-button clickable", onClick:
|
|
157
|
+
react_1.default.createElement("div", { className: "crud-card card-add-button clickable", onClick: () => this.newDocument() },
|
|
237
158
|
react_1.default.createElement("div", { className: "button-element" }, cardAddButton),
|
|
238
159
|
react_1.default.createElement("div", { className: "add-label" }, addNewDocumentLabel)),
|
|
239
160
|
documents.length
|
|
240
|
-
? documents.map(
|
|
161
|
+
? documents.map(document => this.invokeDetailViewChild(document))
|
|
241
162
|
: react_1.default.createElement("p", null, noDocumentsFoundLabel)))));
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
}(react_1.Component));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
245
165
|
exports.CrudPanel = CrudPanel;
|
|
246
166
|
//# sourceMappingURL=crud-panel.js.map
|
package/lib/crud-panel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-panel.js","sourceRoot":"","sources":["../src/crud-panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crud-panel.js","sourceRoot":"","sources":["../src/crud-panel.tsx"],"names":[],"mappings":"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"}
|