@tellescope/react-components 1.172.0 → 1.173.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 (40) hide show
  1. package/lib/cjs/Forms/forms.d.ts.map +1 -1
  2. package/lib/cjs/Forms/forms.js +1 -1
  3. package/lib/cjs/Forms/forms.js.map +1 -1
  4. package/lib/cjs/Forms/hooks.d.ts +6 -2
  5. package/lib/cjs/Forms/hooks.d.ts.map +1 -1
  6. package/lib/cjs/Forms/hooks.js +25 -1
  7. package/lib/cjs/Forms/hooks.js.map +1 -1
  8. package/lib/cjs/Forms/inputs.d.ts +1 -1
  9. package/lib/cjs/Forms/inputs.d.ts.map +1 -1
  10. package/lib/cjs/Forms/inputs.js +17 -7
  11. package/lib/cjs/Forms/inputs.js.map +1 -1
  12. package/lib/cjs/table.d.ts +5 -2
  13. package/lib/cjs/table.d.ts.map +1 -1
  14. package/lib/cjs/table.js +7 -7
  15. package/lib/cjs/table.js.map +1 -1
  16. package/lib/esm/Forms/form_responses.d.ts +0 -1
  17. package/lib/esm/Forms/form_responses.d.ts.map +1 -1
  18. package/lib/esm/Forms/forms.d.ts +1 -1
  19. package/lib/esm/Forms/forms.d.ts.map +1 -1
  20. package/lib/esm/Forms/forms.js +1 -1
  21. package/lib/esm/Forms/forms.js.map +1 -1
  22. package/lib/esm/Forms/hooks.d.ts +6 -2
  23. package/lib/esm/Forms/hooks.d.ts.map +1 -1
  24. package/lib/esm/Forms/hooks.js +25 -1
  25. package/lib/esm/Forms/hooks.js.map +1 -1
  26. package/lib/esm/Forms/inputs.d.ts +2 -2
  27. package/lib/esm/Forms/inputs.d.ts.map +1 -1
  28. package/lib/esm/Forms/inputs.js +17 -7
  29. package/lib/esm/Forms/inputs.js.map +1 -1
  30. package/lib/esm/controls.d.ts +2 -2
  31. package/lib/esm/table.d.ts +5 -2
  32. package/lib/esm/table.d.ts.map +1 -1
  33. package/lib/esm/table.js +7 -7
  34. package/lib/esm/table.js.map +1 -1
  35. package/lib/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +9 -9
  37. package/src/Forms/forms.tsx +4 -1
  38. package/src/Forms/hooks.tsx +27 -2
  39. package/src/Forms/inputs.tsx +28 -6
  40. package/src/table.tsx +8 -2
@@ -251,7 +251,7 @@ var TableInput = function (_a) {
251
251
  var iconWidth = '35px';
252
252
  var width = "calc(".concat((100 / length).toFixed(2), "% - calc(").concat(iconWidth, " / ").concat(length, "))");
253
253
  return ((0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, direction: "column" }, { children: [value.map(function (row, i) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, alignItems: "center", spacing: 1 }, { children: [choices.map(function (v, columnIndex) {
254
- var _a, _b, _d;
254
+ var _a, _b, _d, _e, _f, _g, _h;
255
255
  return ((0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, sx: { width: width } }, { children: v.type === 'Text'
256
256
  ? ((0, jsx_runtime_1.jsx)(material_1.TextField, { label: v.label, size: "small", fullWidth: true, title: v.label, InputProps: exports.defaultInputProps, value: (_a = row.find(function (c, _i) { return columnIndex === _i; })) === null || _a === void 0 ? void 0 : _a.entry, onChange: function (e) { return handleChange(i, columnIndex, { label: v.label, entry: e.target.value }); } }))
257
257
  : v.type === 'Date' ? ((0, jsx_runtime_1.jsx)(exports.DateStringInput, { label: v.label, size: "small", fullWidth: true, title: v.label, field: field, value: (_b = row.find(function (c, _i) { return columnIndex === _i; })) === null || _b === void 0 ? void 0 : _b.entry, onChange: function (entry) {
@@ -259,7 +259,12 @@ var TableInput = function (_a) {
259
259
  return handleChange(i, columnIndex, { label: v.label, entry: entry });
260
260
  } }))
261
261
  : v.type === 'Select' ? ((0, jsx_runtime_1.jsxs)(material_1.FormControl, __assign({ size: "small", fullWidth: true }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, __assign({ id: "demo-select-small" }, { children: v.label })), (0, jsx_runtime_1.jsxs)(material_1.Select, __assign({ label: v.label, size: "small", title: v.label, sx: exports.defaultInputProps.sx, value: (_d = row.find(function (c, _i) { return columnIndex === _i; })) === null || _d === void 0 ? void 0 : _d.entry, onChange: function (e) { return handleChange(i, columnIndex, { label: v.label, entry: e.target.value }); } }, { children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: "" }, { children: (0, jsx_runtime_1.jsx)("em", { children: "None" }) })), v.info.choices.map(function (c) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, __assign({ value: c }, { children: c }), c)); })] }))] })))
262
- : null }), v.label));
262
+ : (v.type === 'Database' && v.info.databaseId && v.info.databaseLabel) ? ((0, jsx_runtime_1.jsx)(exports.DatabaseSelectInput, { responses: [], size: "small", field: __assign(__assign({}, field), { options: { databaseId: v.info.databaseId, databaseLabel: v.info.databaseLabel }, title: v.label }), value: ((_e = row.find(function (_, _i) { return columnIndex === _i; })) === null || _e === void 0 ? void 0 : _e.entry) ? [{
263
+ text: JSON.parse(((_f = row.find(function (_, _i) { return columnIndex === _i; })) === null || _f === void 0 ? void 0 : _f.entry) || '{}').text || '',
264
+ databaseId: JSON.parse(((_g = row.find(function (_, _i) { return columnIndex === _i; })) === null || _g === void 0 ? void 0 : _g.entry) || '{}').databaseId || '',
265
+ recordId: JSON.parse(((_h = row.find(function (_, _i) { return columnIndex === _i; })) === null || _h === void 0 ? void 0 : _h.entry) || '{}').recordId || '',
266
+ }] : [], onChange: function (records) { var _a; return handleChange(i, columnIndex, { label: v.label, entry: JSON.stringify((_a = records === null || records === void 0 ? void 0 : records[0]) !== null && _a !== void 0 ? _a : '') }); } }))
267
+ : null }), v.label));
263
268
  }), (0, jsx_runtime_1.jsx)(material_1.Grid, __assign({ item: true, sx: { ml: 'auto', width: iconWidth } }, { children: (0, jsx_runtime_1.jsx)(__1.LabeledIconButton, { Icon: __1.CancelIcon, label: "Remove", onClick: function () { return handleRemove(i); }, disabled: !field.isOptional && value.length === 1 }) }))] }), i), (0, jsx_runtime_1.jsx)(material_1.Divider, { flexItem: true, sx: { my: 1 } })] })); }), (0, jsx_runtime_1.jsx)(material_1.Button, __assign({ variant: "outlined", size: "small", onClick: handleNewRow, sx: { width: 200 } }, { children: "Add new entry" }))] })));
264
269
  };
265
270
  exports.TableInput = TableInput;
@@ -912,6 +917,7 @@ var DropdownInput = function (_a) {
912
917
  };
913
918
  exports.DropdownInput = DropdownInput;
914
919
  var choicesForDatabase = {};
920
+ var preventRefetch = {};
915
921
  var LOAD_CHOICES_LIMIT = 500;
916
922
  var useDatabaseChoices = function (_a) {
917
923
  var _b, _d, _e, _f;
@@ -927,6 +933,9 @@ var useDatabaseChoices = function (_a) {
927
933
  return; // limit to 50000 entries / prevent infinite looping
928
934
  var choices = (_d = (_b = choicesForDatabase[databaseId]) === null || _b === void 0 ? void 0 : _b.records) !== null && _d !== void 0 ? _d : [];
929
935
  var lastId = (_e = choicesForDatabase[databaseId]) === null || _e === void 0 ? void 0 : _e.lastId;
936
+ if (preventRefetch[databaseId + field.id + lastId])
937
+ return;
938
+ preventRefetch[databaseId + field.id + lastId] = true;
930
939
  session.api.form_fields.load_choices_from_database({
931
940
  fieldId: field.id,
932
941
  lastId: lastId,
@@ -946,6 +955,7 @@ var useDatabaseChoices = function (_a) {
946
955
  })
947
956
  .catch(function (err) {
948
957
  console.error(err);
958
+ preventRefetch[databaseId + field.id + lastId] = false;
949
959
  });
950
960
  }, [session, field, databaseId, renderCount]);
951
961
  return {
@@ -990,7 +1000,7 @@ var get_other_answers = function (_value, typing) {
990
1000
  };
991
1001
  var DatabaseSelectInput = function (_a) {
992
1002
  var _b, _d, _e, _f;
993
- var field = _a.field, _value = _a.value, onChange = _a.onChange, onDatabaseSelect = _a.onDatabaseSelect, responses = _a.responses;
1003
+ var field = _a.field, _value = _a.value, onChange = _a.onChange, onDatabaseSelect = _a.onDatabaseSelect, responses = _a.responses, size = _a.size;
994
1004
  var _g = (0, react_1.useState)(''), typing = _g[0], setTyping = _g[1];
995
1005
  var _h = useDatabaseChoices({
996
1006
  databaseId: (_b = field.options) === null || _b === void 0 ? void 0 : _b.databaseId,
@@ -1069,7 +1079,7 @@ var DatabaseSelectInput = function (_a) {
1069
1079
  }, [field, filteredChoicesWithPotentialDuplicates]);
1070
1080
  if (!doneLoading)
1071
1081
  return (0, jsx_runtime_1.jsx)(LinearProgress_1.default, {});
1072
- return ((0, jsx_runtime_1.jsx)(material_1.Autocomplete, { id: field.id, freeSolo: false, componentsProps: { popper: { sx: { wordBreak: "break-word" } } }, options: filteredChoices, multiple: true, getOptionLabel: function (o) { return (Array.isArray(o) // edge case
1082
+ return ((0, jsx_runtime_1.jsx)(material_1.Autocomplete, { id: field.id, freeSolo: false, size: size, componentsProps: { popper: { sx: { wordBreak: "break-word" } } }, options: filteredChoices, multiple: true, getOptionLabel: function (o) { return (Array.isArray(o) // edge case
1073
1083
  ? ''
1074
1084
  : label_for_database_record(field, o)); }, value: value, onChange: function (_, v) {
1075
1085
  var _a, _b, _d, _e;
@@ -1952,13 +1962,13 @@ var ChargeebeeInput = function (_a) {
1952
1962
  loadAnswerRef.current = true;
1953
1963
  onChange({ url: url }, field.id);
1954
1964
  }, [loadCount, url]);
1965
+ if (value || loadCount === 2) {
1966
+ return ((0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, alignItems: "center", wrap: "nowrap" }, { children: [(0, jsx_runtime_1.jsx)(icons_material_1.CheckCircleOutline, { color: "success" }), (0, jsx_runtime_1.jsx)(material_1.Typography, __assign({ sx: { ml: 1, fontSize: 20 } }, { children: "Your purchase was successful" }))] })));
1967
+ }
1955
1968
  if (error && typeof error === 'string')
1956
1969
  return (0, jsx_runtime_1.jsx)(material_1.Typography, __assign({ color: "error" }, { children: error }));
1957
1970
  if (!url)
1958
1971
  return (0, jsx_runtime_1.jsx)(LinearProgress_1.default, {});
1959
- if (loadCount === 2) {
1960
- return ((0, jsx_runtime_1.jsxs)(material_1.Grid, __assign({ container: true, alignItems: "center", wrap: "nowrap" }, { children: [(0, jsx_runtime_1.jsx)(icons_material_1.CheckCircleOutline, { color: "success" }), (0, jsx_runtime_1.jsx)(material_1.Typography, __assign({ sx: { ml: 1, fontSize: 20 } }, { children: "Your purchase was successful" }))] })));
1961
- }
1962
1972
  return ((0, jsx_runtime_1.jsx)("iframe", { src: url, title: "Checkout", style: { border: 'none', width: '100%', height: 700 }, onLoad: function () { return setLoadCount(function (l) { return l + 1; }); } }));
1963
1973
  };
1964
1974
  exports.ChargeebeeInput = ChargeebeeInput;