cozy-client 50.4.0 → 51.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,350 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _react = _interopRequireWildcard(require("react"));
15
-
16
- var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
17
-
18
- var _overEvery = _interopRequireDefault(require("lodash/overEvery"));
19
-
20
- var _get = _interopRequireDefault(require("lodash/get"));
21
-
22
- var _format = _interopRequireDefault(require("date-fns/format"));
23
-
24
- var _reactRedux = require("react-redux");
25
-
26
- var _reactInspector = require("react-inspector");
27
-
28
- var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
29
-
30
- var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
31
-
32
- var _Table = _interopRequireDefault(require("@material-ui/core/Table"));
33
-
34
- var _TableBody = _interopRequireDefault(require("@material-ui/core/TableBody"));
35
-
36
- var _TableCell = _interopRequireDefault(require("@material-ui/core/TableCell"));
37
-
38
- var _TableContainer = _interopRequireDefault(require("@material-ui/core/TableContainer"));
39
-
40
- var _TableRow = _interopRequireDefault(require("@material-ui/core/TableRow"));
41
-
42
- var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
43
-
44
- var _styles = require("@material-ui/core/styles");
45
-
46
- var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
47
-
48
- var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
49
-
50
- var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
51
-
52
- var _context = _interopRequireDefault(require("../context"));
53
-
54
- var _useClient = _interopRequireDefault(require("../hooks/useClient"));
55
-
56
- var _common = require("./common");
57
-
58
- var _PanelContent = _interopRequireDefault(require("./PanelContent"));
59
-
60
- /**
61
- * @type {Object.<string, React.CSSProperties>}
62
- * @private
63
- */
64
- var styles = {
65
- panelRight: {
66
- height: '100%',
67
- overflow: 'scroll',
68
- flexGrow: 1
69
- },
70
- mono: {
71
- fontFamily: 'monospace'
72
- },
73
- input: {
74
- width: 400
75
- }
76
- };
77
- var TableCell = (0, _styles.withStyles)({
78
- root: {
79
- fontFamily: 'inherit',
80
- fontSize: 'small'
81
- }
82
- })(_TableCell.default);
83
-
84
- var getClassNameForExecutedTimesQuery = function getClassNameForExecutedTimesQuery(time) {
85
- if (time <= 100) {
86
- return 'u-valid u-success';
87
- } else if (time > 100 && time < 250) {
88
- return 'u-warn u-warning';
89
- } else {
90
- return 'u-danger u-error';
91
- }
92
- };
93
- /**
94
- * @param {{ queryState: import("../types").QueryState }} props - Query state containing fetchStatus, lastError
95
- */
96
-
97
-
98
- var FetchStatus = function FetchStatus(props) {
99
- var queryState = props.queryState;
100
- var fetchStatus = queryState.fetchStatus,
101
- lastError = queryState.lastError;
102
- return /*#__PURE__*/_react.default.createElement("span", {
103
- className: fetchStatus === 'loaded' ? 'u-valid' : fetchStatus === 'pending' ? 'u-warn' : fetchStatus === 'failed' ? 'u-error' : ''
104
- }, fetchStatus, fetchStatus === 'failed' ? " - ".concat(lastError) : null);
105
- };
106
- /**
107
- * @param {{ queryState: import("../types").QueryState }} props - Query state containing definition
108
- */
109
-
110
-
111
- var IndexedFields = function IndexedFields(props) {
112
- var queryState = props.queryState;
113
- var indexedFields = queryState.definition.indexedFields;
114
- return /*#__PURE__*/_react.default.createElement("span", {
115
- className: "u-primaryColor"
116
- }, indexedFields ? indexedFields.join(', ') : null);
117
- };
118
- /**
119
- * @param {string} search - Search string
120
- * @returns {function(import("../types").CozyClientDocument): Boolean}
121
- */
122
-
123
-
124
- var makeMatcher = function makeMatcher(search) {
125
- var specs = search.split(';');
126
- var conditions = specs.map(function (spec) {
127
- var _spec$split = spec.split(':'),
128
- _spec$split2 = (0, _slicedToArray2.default)(_spec$split, 2),
129
- key = _spec$split2[0],
130
- value = _spec$split2[1];
131
-
132
- return function (obj) {
133
- if (!value) {
134
- return false;
135
- }
136
-
137
- var attr = (0, _get.default)(obj, key);
138
- return attr && attr.toString().toLowerCase().includes(value.toLowerCase());
139
- };
140
- });
141
- return (0, _overEvery.default)(conditions);
142
- };
143
-
144
- var useCozySelector = (0, _reactRedux.createSelectorHook)(_context.default);
145
-
146
- var QueryData = function QueryData(_ref) {
147
- var data = _ref.data,
148
- doctype = _ref.doctype;
149
- var client = (0, _useClient.default)();
150
-
151
- var _useState = (0, _react.useState)(false),
152
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
153
- showTable = _useState2[0],
154
- setShowTable = _useState2[1];
155
-
156
- var documents = useCozySelector(function (state) {
157
- return state.cozy.documents[doctype];
158
- });
159
- var storeData = (0, _react.useMemo)(function () {
160
- return data.map(function (id) {
161
- return client.hydrateDocument(documents[id]);
162
- });
163
- }, [client, data, documents]);
164
- var handleShowTable = (0, _react.useCallback)(function () {
165
- return setShowTable(function (value) {
166
- return !value;
167
- });
168
- }, [setShowTable]);
169
-
170
- var _useState3 = (0, _react.useState)(null),
171
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
172
- results = _useState4[0],
173
- setResults = _useState4[1];
174
-
175
- var _useState5 = (0, _react.useState)(''),
176
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
177
- search = _useState6[0],
178
- setSearch = _useState6[1];
179
-
180
- var handleSearch = (0, _react.useCallback)(function (ev) {
181
- var searchValue = ev.target.value;
182
- var matcher = searchValue !== '' ? makeMatcher(searchValue) : null;
183
- var results = matcher ? storeData.filter(matcher) : null;
184
- setSearch(searchValue);
185
- setResults(results);
186
- }, [storeData]);
187
- var viewData = results || storeData;
188
- return /*#__PURE__*/_react.default.createElement("div", {
189
- className: "u-pb-3"
190
- }, "Table:", ' ', /*#__PURE__*/_react.default.createElement("input", {
191
- type: "checkbox",
192
- onChange: handleShowTable,
193
- checked: showTable
194
- }), /*#__PURE__*/_react.default.createElement("br", null), "Search:", ' ', /*#__PURE__*/_react.default.createElement("input", {
195
- type: "text",
196
- placeholder: "field.nested_field:value;other_field:other_value",
197
- onChange: handleSearch,
198
- value: search,
199
- style: styles.input
200
- }), /*#__PURE__*/_react.default.createElement("br", null), showTable ? /*#__PURE__*/_react.default.createElement(_reactInspector.TableInspector, {
201
- data: viewData
202
- }) : /*#__PURE__*/_react.default.createElement(_reactInspector.ObjectInspector, {
203
- data: viewData
204
- }));
205
- };
206
-
207
- var ObjectInspectorAndStringificator = function ObjectInspectorAndStringificator(_ref2) {
208
- var object = _ref2.object;
209
-
210
- var _useState7 = (0, _react.useState)(false),
211
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
212
- showStringify = _useState8[0],
213
- setShowStringify = _useState8[1];
214
-
215
- var handleStringify = (0, _react.useCallback)(function () {
216
- return setShowStringify(function (value) {
217
- return !value;
218
- });
219
- }, [setShowStringify]);
220
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Stringify:", ' ', /*#__PURE__*/_react.default.createElement("input", {
221
- type: "checkbox",
222
- onChange: handleStringify,
223
- checked: showStringify
224
- }), showStringify ? /*#__PURE__*/_react.default.createElement("pre", null, JSON.stringify(object, null, 2)) : /*#__PURE__*/_react.default.createElement(_reactInspector.ObjectInspector, {
225
- data: object
226
- }));
227
- };
228
-
229
- var QueryStateView = function QueryStateView(_ref3) {
230
- var name = _ref3.name;
231
-
232
- /**
233
- * @type {import("../types").QueryState}
234
- */
235
- var queryState = useCozySelector(function (state) {
236
- return state.cozy.queries[name];
237
- });
238
- var data = queryState.data,
239
- options = queryState.options;
240
-
241
- var _useMemo = (0, _react.useMemo)(function () {
242
- return {
243
- lastFetch: new Date(queryState.lastFetch),
244
- lastUpdate: new Date(queryState.lastUpdate)
245
- };
246
- }, [queryState]),
247
- lastFetch = _useMemo.lastFetch,
248
- lastUpdate = _useMemo.lastUpdate;
249
-
250
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TableContainer.default, {
251
- component: _Paper.default,
252
- elevation: 0
253
- }, /*#__PURE__*/_react.default.createElement(_Table.default, {
254
- style: styles.mono,
255
- size: "small",
256
- className: "u-w-auto"
257
- }, /*#__PURE__*/_react.default.createElement(_TableBody.default, null, /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "doctype"), /*#__PURE__*/_react.default.createElement(TableCell, null, queryState.definition.doctype)), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "definition"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(ObjectInspectorAndStringificator, {
258
- object: queryState.definition
259
- }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "indexFields"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(IndexedFields, {
260
- queryState: queryState
261
- }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "fetchStatus"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(FetchStatus, {
262
- queryState: queryState
263
- }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "lastFetch"), /*#__PURE__*/_react.default.createElement(TableCell, null, (0, _format.default)(lastFetch, 'HH:mm:ss'))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "lastUpdate"), /*#__PURE__*/_react.default.createElement(TableCell, null, (0, _format.default)(lastUpdate, 'HH:mm:ss'))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "documents"), /*#__PURE__*/_react.default.createElement(TableCell, null, data && data.length !== undefined ? data.length : data ? 1 : 0)), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "autoUpdate"), /*#__PURE__*/_react.default.createElement(TableCell, null, options && options.autoUpdate ? JSON.stringify(options.autoUpdate) : 'null')), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "execution stats"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(ObjectInspectorAndStringificator, {
264
- object: queryState.execution_stats
265
- })))))), /*#__PURE__*/_react.default.createElement(QueryData, {
266
- data: data,
267
- doctype: queryState.definition.doctype
268
- }));
269
- };
270
-
271
- var QueryListItem = function QueryListItem(_ref4) {
272
- var name = _ref4.name,
273
- selected = _ref4.selected,
274
- onClick = _ref4.onClick;
275
- var queryState = useCozySelector(function (state) {
276
- return state.cozy.queries[name];
277
- });
278
- var lastUpdate = (0, _react.useMemo)(function () {
279
- return (0, _format.default)(new Date(queryState.lastUpdate), 'HH:mm:ss');
280
- }, [queryState]);
281
- return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
282
- dense: true,
283
- button: true,
284
- selected: selected,
285
- onClick: onClick
286
- }, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
287
- primary: name,
288
- secondary: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, queryState.fetchStatus === 'failed' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
289
- className: "u-error"
290
- }, "failed"), " -", ' ') : null, queryState.execution_stats && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ExecutionTime, {
291
- queryState: queryState
292
- }), " -", ' '), lastUpdate ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, lastUpdate, " -") : null, queryState.data.length, " docs")
293
- }), /*#__PURE__*/_react.default.createElement(_common.NavSecondaryAction, null));
294
- };
295
-
296
- var ExecutionTime = function ExecutionTime(_ref5) {
297
- var queryState = _ref5.queryState;
298
- if (!queryState.execution_stats) return null;
299
- var classCSS = getClassNameForExecutedTimesQuery(queryState.execution_stats.execution_time_ms);
300
- return /*#__PURE__*/_react.default.createElement("span", {
301
- className: classCSS
302
- }, Math.round(queryState.execution_stats.execution_time_ms), " ms");
303
- };
304
-
305
- var QueryPanels = function QueryPanels() {
306
- var queries = useCozySelector(function (state) {
307
- return state.cozy.queries;
308
- });
309
- var sortedQueries = (0, _react.useMemo)(function () {
310
- return (0, _sortBy.default)(queries ? Object.values(queries) : [], function (queryState) {
311
- return Math.max(queryState.lastUpdate || -Infinity, queryState.lastErrorUpdate || -Infinity);
312
- }).map(function (queryState) {
313
- return queryState.id;
314
- }).reverse();
315
- }, [queries]);
316
-
317
- var _useState9 = (0, _react.useState)(function () {
318
- return sortedQueries[0];
319
- }),
320
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
321
- selectedQuery = _useState10[0],
322
- setSelectedQuery = _useState10[1];
323
-
324
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_common.ListGridItem, null, sortedQueries.map(function (queryName) {
325
- return /*#__PURE__*/_react.default.createElement(QueryListItem, {
326
- name: queryName,
327
- key: queryName,
328
- onClick: function onClick() {
329
- return setSelectedQuery(queryName);
330
- },
331
- selected: name === selectedQuery
332
- });
333
- }), sortedQueries.length === 0 ? /*#__PURE__*/_react.default.createElement(_PanelContent.default, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
334
- variant: "body1"
335
- }, "No queries yet.")) : null), /*#__PURE__*/_react.default.createElement(_Box.default, {
336
- clone: true,
337
- p: 1,
338
- minWidth: 400
339
- }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
340
- item: true,
341
- style: styles.panelRight
342
- }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
343
- variant: "subtitle1"
344
- }, selectedQuery), selectedQuery ? /*#__PURE__*/_react.default.createElement(QueryStateView, {
345
- name: selectedQuery
346
- }) : null)));
347
- };
348
-
349
- var _default = QueryPanels;
350
- exports.default = _default;
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ListGridItem = exports.NavSecondaryAction = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
13
-
14
- var _Right = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Right"));
15
-
16
- var _ListItemSecondaryAction = _interopRequireDefault(require("@material-ui/core/ListItemSecondaryAction"));
17
-
18
- var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
19
-
20
- /**
21
- * @type {Object.<string, React.CSSProperties>}
22
- * @private
23
- */
24
- var styles = {
25
- listGridItem: {
26
- height: '100%',
27
- overflow: 'scroll',
28
- flexBasis: 240,
29
- flexShrink: 0,
30
- flexGrow: 0,
31
- boxShadow: 'var(--shadow1)'
32
- }
33
- };
34
-
35
- var NavSecondaryAction = function NavSecondaryAction() {
36
- return /*#__PURE__*/_react.default.createElement(_ListItemSecondaryAction.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
37
- icon: _Right.default,
38
- className: "u-mr-half",
39
- color: "var(--secondaryTextColor)"
40
- }));
41
- };
42
-
43
- exports.NavSecondaryAction = NavSecondaryAction;
44
-
45
- var ListGridItem = function ListGridItem(_ref) {
46
- var children = _ref.children;
47
- return /*#__PURE__*/_react.default.createElement(_Grid.default, {
48
- item: true,
49
- style: styles.listGridItem
50
- }, children);
51
- };
52
-
53
- exports.ListGridItem = ListGridItem;