@tellescope/react-components 1.183.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.
Files changed (57) hide show
  1. package/lib/cjs/Forms/hooks.d.ts.map +1 -1
  2. package/lib/cjs/Forms/hooks.js +2 -1
  3. package/lib/cjs/Forms/hooks.js.map +1 -1
  4. package/lib/cjs/inputs_shared.d.ts +43 -0
  5. package/lib/cjs/inputs_shared.d.ts.map +1 -1
  6. package/lib/cjs/inputs_shared.js +433 -2
  7. package/lib/cjs/inputs_shared.js.map +1 -1
  8. package/lib/cjs/layout.d.ts.map +1 -1
  9. package/lib/cjs/layout.js +4 -2
  10. package/lib/cjs/layout.js.map +1 -1
  11. package/lib/cjs/state.d.ts +6 -1
  12. package/lib/cjs/state.d.ts.map +1 -1
  13. package/lib/cjs/state.js +38 -57
  14. package/lib/cjs/state.js.map +1 -1
  15. package/lib/cjs/table.d.ts +8 -3
  16. package/lib/cjs/table.d.ts.map +1 -1
  17. package/lib/cjs/table.js +16 -13
  18. package/lib/cjs/table.js.map +1 -1
  19. package/lib/esm/CMS/components.d.ts +1 -0
  20. package/lib/esm/CMS/components.d.ts.map +1 -1
  21. package/lib/esm/Forms/form_responses.d.ts +1 -0
  22. package/lib/esm/Forms/form_responses.d.ts.map +1 -1
  23. package/lib/esm/Forms/forms.d.ts +3 -3
  24. package/lib/esm/Forms/hooks.d.ts.map +1 -1
  25. package/lib/esm/Forms/hooks.js +2 -1
  26. package/lib/esm/Forms/hooks.js.map +1 -1
  27. package/lib/esm/Forms/inputs.d.ts +1 -1
  28. package/lib/esm/Forms/inputs.native.d.ts +1 -0
  29. package/lib/esm/Forms/inputs.native.d.ts.map +1 -1
  30. package/lib/esm/controls.d.ts +2 -2
  31. package/lib/esm/inputs.d.ts +1 -1
  32. package/lib/esm/inputs.native.d.ts +1 -0
  33. package/lib/esm/inputs.native.d.ts.map +1 -1
  34. package/lib/esm/inputs_shared.d.ts +43 -0
  35. package/lib/esm/inputs_shared.d.ts.map +1 -1
  36. package/lib/esm/inputs_shared.js +427 -3
  37. package/lib/esm/inputs_shared.js.map +1 -1
  38. package/lib/esm/layout.d.ts.map +1 -1
  39. package/lib/esm/layout.js +4 -2
  40. package/lib/esm/layout.js.map +1 -1
  41. package/lib/esm/state.d.ts +292 -287
  42. package/lib/esm/state.d.ts.map +1 -1
  43. package/lib/esm/state.js +38 -57
  44. package/lib/esm/state.js.map +1 -1
  45. package/lib/esm/table.d.ts +8 -3
  46. package/lib/esm/table.d.ts.map +1 -1
  47. package/lib/esm/table.js +16 -13
  48. package/lib/esm/table.js.map +1 -1
  49. package/lib/esm/theme.native.d.ts +1 -0
  50. package/lib/esm/theme.native.d.ts.map +1 -1
  51. package/lib/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +9 -9
  53. package/src/Forms/hooks.tsx +2 -1
  54. package/src/inputs_shared.tsx +444 -5
  55. package/src/layout.tsx +10 -1
  56. package/src/state.tsx +38 -46
  57. 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(modelName + (loadFilter ? JSON.stringify(loadFilter) : ''), (_b = (_a = es.value[es.value.length - 1]) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString());
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 (_e) {
975
- 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;
976
- lastId = getLastId(modelName + (filter ? JSON.stringify(filter) : ""));
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(modelName + 'lastId' + lastId))
961
+ if (didFetch(filterKey + 'lastId' + lastId))
982
962
  return [2 /*return*/];
983
- setFetched(modelName + 'lastId' + lastId, true);
984
- key = (_b = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.key) !== null && _b !== void 0 ? _b : 'id';
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 = (_d = (_c = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.limit) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.limit) !== null && _d !== void 0 ? _d : DEFAULT_FETCH_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(modelName + (filter ? JSON.stringify(filter) : ""), newLastId);
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) {