@tellescope/react-components 1.182.0 → 1.184.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/Forms/hooks.d.ts.map +1 -1
- package/lib/cjs/Forms/hooks.js +2 -1
- package/lib/cjs/Forms/hooks.js.map +1 -1
- package/lib/cjs/forms.d.ts +2 -1
- package/lib/cjs/forms.d.ts.map +1 -1
- package/lib/cjs/forms.js +2 -2
- package/lib/cjs/forms.js.map +1 -1
- package/lib/cjs/inputs_shared.d.ts +43 -0
- package/lib/cjs/inputs_shared.d.ts.map +1 -1
- package/lib/cjs/inputs_shared.js +441 -3
- package/lib/cjs/inputs_shared.js.map +1 -1
- package/lib/cjs/layout.d.ts.map +1 -1
- package/lib/cjs/layout.js +4 -2
- package/lib/cjs/layout.js.map +1 -1
- package/lib/cjs/state.d.ts +6 -1
- package/lib/cjs/state.d.ts.map +1 -1
- package/lib/cjs/state.js +38 -57
- package/lib/cjs/state.js.map +1 -1
- package/lib/cjs/table.d.ts +8 -3
- package/lib/cjs/table.d.ts.map +1 -1
- package/lib/cjs/table.js +16 -13
- package/lib/cjs/table.js.map +1 -1
- package/lib/esm/CMS/components.d.ts +1 -0
- package/lib/esm/CMS/components.d.ts.map +1 -1
- package/lib/esm/Forms/form_responses.d.ts +1 -0
- package/lib/esm/Forms/form_responses.d.ts.map +1 -1
- package/lib/esm/Forms/forms.d.ts +3 -3
- package/lib/esm/Forms/hooks.d.ts.map +1 -1
- package/lib/esm/Forms/hooks.js +2 -1
- package/lib/esm/Forms/hooks.js.map +1 -1
- package/lib/esm/Forms/inputs.d.ts +1 -1
- package/lib/esm/Forms/inputs.native.d.ts +1 -0
- package/lib/esm/Forms/inputs.native.d.ts.map +1 -1
- package/lib/esm/controls.d.ts +2 -2
- package/lib/esm/forms.d.ts +2 -1
- package/lib/esm/forms.d.ts.map +1 -1
- package/lib/esm/forms.js +2 -2
- package/lib/esm/forms.js.map +1 -1
- package/lib/esm/inputs.d.ts +1 -1
- package/lib/esm/inputs.native.d.ts +1 -0
- package/lib/esm/inputs.native.d.ts.map +1 -1
- package/lib/esm/inputs_shared.d.ts +43 -0
- package/lib/esm/inputs_shared.d.ts.map +1 -1
- package/lib/esm/inputs_shared.js +436 -5
- package/lib/esm/inputs_shared.js.map +1 -1
- package/lib/esm/layout.d.ts.map +1 -1
- package/lib/esm/layout.js +4 -2
- package/lib/esm/layout.js.map +1 -1
- package/lib/esm/state.d.ts +292 -287
- package/lib/esm/state.d.ts.map +1 -1
- package/lib/esm/state.js +38 -57
- package/lib/esm/state.js.map +1 -1
- package/lib/esm/table.d.ts +8 -3
- package/lib/esm/table.d.ts.map +1 -1
- package/lib/esm/table.js +16 -13
- package/lib/esm/table.js.map +1 -1
- package/lib/esm/theme.native.d.ts +1 -0
- package/lib/esm/theme.native.d.ts.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/Forms/hooks.tsx +2 -1
- package/src/forms.tsx +3 -2
- package/src/inputs_shared.tsx +451 -6
- package/src/layout.tsx +10 -1
- package/src/state.tsx +38 -46
- package/src/table.tsx +31 -5
package/lib/cjs/state.js
CHANGED
|
@@ -69,17 +69,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
69
69
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
73
|
-
var t = {};
|
|
74
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
75
|
-
t[p] = s[p];
|
|
76
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
77
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
78
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
79
|
-
t[p[i]] = s[p[i]];
|
|
80
|
-
}
|
|
81
|
-
return t;
|
|
82
|
-
};
|
|
83
72
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
84
73
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
85
74
|
if (ar || !(i in from)) {
|
|
@@ -140,7 +129,7 @@ var WithFetchContext = function (_a) {
|
|
|
140
129
|
};
|
|
141
130
|
exports.WithFetchContext = WithFetchContext;
|
|
142
131
|
// doesn't throw
|
|
143
|
-
var toLoadedData = function (p) { return __awaiter(void 0, void 0, void 0, function () {
|
|
132
|
+
var toLoadedData = function (p, o) { return __awaiter(void 0, void 0, void 0, function () {
|
|
144
133
|
var err_1;
|
|
145
134
|
var _a;
|
|
146
135
|
return __generator(this, function (_b) {
|
|
@@ -152,6 +141,9 @@ var toLoadedData = function (p) { return __awaiter(void 0, void 0, void 0, funct
|
|
|
152
141
|
case 1: return [2 /*return*/, (_a.value = _b.sent(), _a)];
|
|
153
142
|
case 2:
|
|
154
143
|
err_1 = _b.sent();
|
|
144
|
+
if (o === null || o === void 0 ? void 0 : o.valueOnError) {
|
|
145
|
+
return [2 /*return*/, { status: types_utilities_1.LoadingStatus.Loaded, value: o.valueOnError }];
|
|
146
|
+
}
|
|
155
147
|
return [2 /*return*/, { status: types_utilities_1.LoadingStatus.Error, value: err_1 }];
|
|
156
148
|
case 3: return [2 /*return*/];
|
|
157
149
|
}
|
|
@@ -889,30 +881,32 @@ var useListStateHook = function (modelName, state, session, slice, apiCalls, opt
|
|
|
889
881
|
}, [state]);
|
|
890
882
|
var cantRead = (session.type === 'user' && !((_d = (_c = (_b = session === null || session === void 0 ? void 0 : session.userInfo) === null || _b === void 0 ? void 0 : _b.access) === null || _c === void 0 ? void 0 : _c[modelName]) === null || _d === void 0 ? void 0 : _d.read));
|
|
891
883
|
var load = (0, react_1.useCallback)(function (force, loadOptions) {
|
|
892
|
-
var _a, _b, _c;
|
|
884
|
+
var _a, _b, _c, _d;
|
|
893
885
|
if (cantRead)
|
|
894
886
|
return;
|
|
895
887
|
var _loadFilter = (_a = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.loadFilter) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.loadFilter;
|
|
896
888
|
var loadFilter = (_loadFilter && (0, utilities_1.object_is_empty)(_loadFilter)) ? undefined : _loadFilter;
|
|
897
889
|
var sort = (_b = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.sort) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.sort;
|
|
898
890
|
var sortBy = (_c = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.sortBy) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.sortBy;
|
|
891
|
+
var _mdbFilter = (loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.mdbFilter) || (options === null || options === void 0 ? void 0 : options.mdbFilter);
|
|
892
|
+
var mdbFilter = (_mdbFilter && ((_d = _mdbFilter === null || _mdbFilter === void 0 ? void 0 : _mdbFilter.$and) === null || _d === void 0 ? void 0 : _d.length)) ? _mdbFilter : undefined;
|
|
899
893
|
if (!loadQuery)
|
|
900
894
|
return;
|
|
901
895
|
if ((options === null || options === void 0 ? void 0 : options.dontFetch) && !force)
|
|
902
896
|
return;
|
|
903
|
-
var fetchKey = (loadFilter || sort || sortBy) ? JSON.stringify(__assign(__assign({}, loadFilter), { sort: sort, sortBy: sortBy })) + modelName : modelName;
|
|
897
|
+
var fetchKey = (mdbFilter || loadFilter || sort || sortBy) ? JSON.stringify(__assign(__assign(__assign({}, mdbFilter), loadFilter), { sort: sort, sortBy: sortBy })) + modelName : modelName;
|
|
904
898
|
if (didFetch(fetchKey, force, options === null || options === void 0 ? void 0 : options.refetchInMS))
|
|
905
899
|
return;
|
|
906
900
|
setFetched(fetchKey, true);
|
|
907
901
|
var limit = (options === null || options === void 0 ? void 0 : options.limit) || DEFAULT_FETCH_LIMIT;
|
|
908
|
-
(0, exports.toLoadedData)(function () { return loadQuery({ filter: loadFilter, limit: limit, sort: sort, sortBy: sortBy }); }).then(function (es) {
|
|
902
|
+
(0, exports.toLoadedData)(function () { return loadQuery({ mdbFilter: mdbFilter, filter: loadFilter, limit: limit, sort: sort, sortBy: sortBy }); }, { valueOnError: mdbFilter ? [] : undefined }).then(function (es) {
|
|
909
903
|
var _a, _b;
|
|
910
904
|
if (es.status === types_utilities_1.LoadingStatus.Loaded) {
|
|
911
|
-
if (es.value.length < limit && !loadFilter) {
|
|
905
|
+
if (es.value.length < limit && !loadFilter && !mdbFilter) {
|
|
912
906
|
setFetched('id' + modelName + DONE_LOADING_TOKEN, true);
|
|
913
907
|
}
|
|
914
908
|
if (es.value.length) { // don't store oldest record from a filter, may skip some pages
|
|
915
|
-
setLastId(
|
|
909
|
+
setLastId(fetchKey, (_b = (_a = es.value[es.value.length - 1]) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString());
|
|
916
910
|
var createdAt = es.value[es.value.length - 1].createdAt;
|
|
917
911
|
if (typeof createdAt === 'string' || createdAt instanceof Date) {
|
|
918
912
|
setLastDate(modelName, new Date(createdAt));
|
|
@@ -935,70 +929,57 @@ var useListStateHook = function (modelName, state, session, slice, apiCalls, opt
|
|
|
935
929
|
var getOldestLoadedDate = function () { return getLastDate(modelName); };
|
|
936
930
|
var reload = (0, react_1.useCallback)(function (options) { return load(true, __assign(__assign({}, options), { reloading: true })); }, [load]);
|
|
937
931
|
(0, react_1.useEffect)(function () {
|
|
932
|
+
if (options === null || options === void 0 ? void 0 : options.unbounceMS) {
|
|
933
|
+
var i_1 = setTimeout(function () { return load(false); }, options.unbounceMS);
|
|
934
|
+
return function () { clearTimeout(i_1); };
|
|
935
|
+
}
|
|
938
936
|
load(false);
|
|
939
|
-
}, [load]);
|
|
940
|
-
(0, react_1.useEffect)(function () {
|
|
941
|
-
var _a;
|
|
942
|
-
if (didFetch(modelName + 'socket'))
|
|
943
|
-
return;
|
|
944
|
-
setFetched(modelName + 'socket', true, false);
|
|
945
|
-
session.handle_events((_a = {},
|
|
946
|
-
// create, update, and delete must go in this order
|
|
947
|
-
// e.g. to ensure delete events are processed last, so deleted records don't appear as created
|
|
948
|
-
_a["created-".concat(modelName)] = addLocalElements,
|
|
949
|
-
_a["updated-".concat(modelName)] = function (es) {
|
|
950
|
-
var idToUpdates = {};
|
|
951
|
-
for (var _i = 0, es_1 = es; _i < es_1.length; _i++) {
|
|
952
|
-
var _a = es_1[_i];
|
|
953
|
-
var id = _a.id, e = __rest(_a, ["id"]);
|
|
954
|
-
idToUpdates[id] = e;
|
|
955
|
-
}
|
|
956
|
-
updateLocalElements(idToUpdates);
|
|
957
|
-
},
|
|
958
|
-
_a["deleted-".concat(modelName)] = removeLocalElements,
|
|
959
|
-
_a));
|
|
960
|
-
return function () {
|
|
961
|
-
setFetched(modelName + 'socket', false, false);
|
|
962
|
-
session.removeListenersForEvent("created-".concat(modelName));
|
|
963
|
-
session.removeListenersForEvent("updated-".concat(modelName));
|
|
964
|
-
session.removeListenersForEvent("deleted-".concat(modelName));
|
|
965
|
-
};
|
|
966
|
-
}, [session, addLocalElement, updateLocalElements, removeLocalElements, modelName, didFetch]);
|
|
937
|
+
}, [load, options === null || options === void 0 ? void 0 : options.unbounceMS]);
|
|
967
938
|
var doneLoading = (0, react_1.useCallback)(function (key) {
|
|
968
939
|
if (key === void 0) { key = "id"; }
|
|
969
940
|
return (didFetch(key + modelName + DONE_LOADING_TOKEN));
|
|
970
941
|
}, [didFetch, modelName]);
|
|
971
942
|
var loadMore = (0, react_1.useCallback)(function (loadOptions) { return __awaiter(void 0, void 0, void 0, function () {
|
|
972
|
-
var filter, lastId, key, limit;
|
|
973
|
-
var _a, _b, _c, _d;
|
|
974
|
-
return __generator(this, function (
|
|
975
|
-
|
|
976
|
-
|
|
943
|
+
var sort, sortBy, _filter, filter, _mdbFilter, mdbFilter, mdbFilterIsActive, filterKey, lastId, key, limit;
|
|
944
|
+
var _a, _b, _c, _d, _e, _f;
|
|
945
|
+
return __generator(this, function (_g) {
|
|
946
|
+
sort = options === null || options === void 0 ? void 0 : options.sort;
|
|
947
|
+
sortBy = options === null || options === void 0 ? void 0 : options.sortBy;
|
|
948
|
+
_filter = (_a = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.filter) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.loadFilter;
|
|
949
|
+
filter = (_filter && (0, utilities_1.object_is_empty)(_filter)) ? undefined : _filter;
|
|
950
|
+
_mdbFilter = (loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.mdbFilter) || (options === null || options === void 0 ? void 0 : options.mdbFilter);
|
|
951
|
+
mdbFilter = (_mdbFilter && ((_b = _mdbFilter === null || _mdbFilter === void 0 ? void 0 : _mdbFilter.$and) === null || _b === void 0 ? void 0 : _b.length)) ? _mdbFilter : undefined;
|
|
952
|
+
mdbFilterIsActive = (mdbFilter && ((_c = mdbFilter === null || mdbFilter === void 0 ? void 0 : mdbFilter.$and) === null || _c === void 0 ? void 0 : _c.length));
|
|
953
|
+
filterKey = ((mdbFilter || filter || sort || sortBy)
|
|
954
|
+
? JSON.stringify(__assign(__assign(__assign({}, mdbFilter), filter), { sort: sort, sortBy: sortBy })) + modelName
|
|
955
|
+
: modelName);
|
|
956
|
+
lastId = getLastId(filterKey);
|
|
977
957
|
if (!lastId)
|
|
978
958
|
return [2 /*return*/];
|
|
979
959
|
if (!loadQuery)
|
|
980
960
|
return [2 /*return*/];
|
|
981
|
-
if (didFetch(
|
|
961
|
+
if (didFetch(filterKey + 'lastId' + lastId))
|
|
982
962
|
return [2 /*return*/];
|
|
983
|
-
setFetched(
|
|
984
|
-
key = (
|
|
963
|
+
setFetched(filterKey + 'lastId' + lastId, true);
|
|
964
|
+
key = (_d = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.key) !== null && _d !== void 0 ? _d : 'id';
|
|
985
965
|
if (key !== 'id')
|
|
986
966
|
console.warn("Unrecognized key provided");
|
|
987
|
-
limit = (
|
|
967
|
+
limit = (_f = (_e = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.limit) !== null && _e !== void 0 ? _e : options === null || options === void 0 ? void 0 : options.limit) !== null && _f !== void 0 ? _f : DEFAULT_FETCH_LIMIT;
|
|
988
968
|
return [2 /*return*/, (0, exports.toLoadedData)(function () { return loadQuery({
|
|
989
969
|
// lastId: !options?.filter ? oldestRecord?.id?.toString() : undefined, // don't provide a lastId when there's a filter, filter could include that on its own
|
|
990
970
|
lastId: lastId,
|
|
991
971
|
limit: limit,
|
|
992
972
|
filter: filter,
|
|
973
|
+
mdbFilter: mdbFilterIsActive ? mdbFilter : undefined,
|
|
993
974
|
}); }).then(function (es) {
|
|
994
975
|
var _a, _b;
|
|
995
976
|
if (es.status === types_utilities_1.LoadingStatus.Loaded) {
|
|
996
|
-
if (es.value.length < limit) {
|
|
977
|
+
if (es.value.length < limit && !mdbFilter && (!filter || (0, utilities_1.object_is_empty)(filter))) {
|
|
997
978
|
setFetched(key + modelName + DONE_LOADING_TOKEN, true);
|
|
998
979
|
}
|
|
999
980
|
var newLastId = (_b = (_a = es.value[es.value.length - 1]) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString();
|
|
1000
981
|
if (newLastId) {
|
|
1001
|
-
setLastId(
|
|
982
|
+
setLastId(filterKey, newLastId);
|
|
1002
983
|
}
|
|
1003
984
|
dispatch(slice.actions.addSome({ value: es.value, options: { replaceIfMatch: true, addTo: 'end' } }));
|
|
1004
985
|
}
|
|
@@ -1007,7 +988,7 @@ var useListStateHook = function (modelName, state, session, slice, apiCalls, opt
|
|
|
1007
988
|
}
|
|
1008
989
|
})];
|
|
1009
990
|
});
|
|
1010
|
-
}); }, [getLastId, modelName, loadQuery, didFetch, setFetched]);
|
|
991
|
+
}); }, [getLastId, modelName, loadQuery, didFetch, setFetched, options === null || options === void 0 ? void 0 : options.mdbFilter, options === null || options === void 0 ? void 0 : options.loadFilter, options === null || options === void 0 ? void 0 : options.sort, options === null || options === void 0 ? void 0 : options.sortBy, options === null || options === void 0 ? void 0 : options.limit, dispatch]);
|
|
1011
992
|
var loadRecentlyCreated = react_1.default.useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1012
993
|
var from, created, err_2;
|
|
1013
994
|
return __generator(this, function (_a) {
|