@truedat/df 8.5.3 → 8.5.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/df",
3
- "version": "8.5.3",
3
+ "version": "8.5.4",
4
4
  "description": "Truedat Web Data Quality Module",
5
5
  "sideEffects": false,
6
6
  "module": "src/index.js",
@@ -51,14 +51,14 @@
51
51
  "@testing-library/jest-dom": "^6.6.3",
52
52
  "@testing-library/react": "^16.3.0",
53
53
  "@testing-library/user-event": "^14.6.1",
54
- "@truedat/test": "8.5.3",
54
+ "@truedat/test": "8.5.4",
55
55
  "identity-obj-proxy": "^3.0.0",
56
56
  "jest": "^29.7.0",
57
57
  "redux-saga-test-plan": "^4.0.6"
58
58
  },
59
59
  "dependencies": {
60
60
  "@apollo/client": "^3.13.8",
61
- "@truedat/core": "8.5.3",
61
+ "@truedat/core": "8.5.4",
62
62
  "axios": "^1.15.0",
63
63
  "graphql": "^16.11.0",
64
64
  "is-hotkey": "^0.2.0",
@@ -87,5 +87,5 @@
87
87
  "semantic-ui-react": "^3.0.0-beta.2",
88
88
  "swr": "^2.3.3"
89
89
  },
90
- "gitHead": "9d67766fe0910fe519b6f1f2042b4a5dcc28fad5"
90
+ "gitHead": "75272567eb3ec948a5cdeb8346ef9cacac58267f"
91
91
  }
@@ -2,7 +2,7 @@ import _ from "lodash";
2
2
  import PropTypes from "prop-types";
3
3
  import { useIntl } from "react-intl";
4
4
  import { Icon, Label, Table } from "semantic-ui-react";
5
- import { MarkdownReader, SafeLink, RichTextEditor } from "@truedat/core/components";
5
+ import { MarkdownReader, SafeLink } from "@truedat/core/components";
6
6
  import ImagePreview from "./widgets/ImagePreview";
7
7
  import SystemPreview from "./widgets/SystemPreview";
8
8
  import "../styles/fieldGroupDetail.less";
@@ -28,7 +28,9 @@ const DynamicTableField = (field) => {
28
28
  {_.isNil(value) || _.isEmpty(value) ? null : _.isArray(value) ? (
29
29
  value
30
30
  .filter((v) => !_.isNil(v) && !_.isEmpty(v))
31
- .map((v, i) => <FieldViewerValue {...field} value={v} key={i} multiple />)
31
+ .map((v, i) => (
32
+ <FieldViewerValue {...field} value={v} key={i} multiple />
33
+ ))
32
34
  ) : (
33
35
  <FieldViewerValue {...field} value={value} />
34
36
  )}
@@ -54,8 +56,6 @@ export const FieldViewerValue = ({
54
56
  ) : (
55
57
  <Icon name="minus" as="i" color="grey" />
56
58
  );
57
- case "enriched_text":
58
- return <RichTextEditor readOnly value={value} />;
59
59
  case "markdown":
60
60
  return <MarkdownReader content={value} />;
61
61
  case "table":
@@ -3,7 +3,6 @@ import DateTimeField from "./DateTimeField";
3
3
  import CheckboxField from "./CheckboxField";
4
4
  import ColorPickerField from "./ColorPickerField";
5
5
  import DropdownField from "./DropdownField";
6
- import EnrichedTextField from "./EnrichedTextField";
7
6
  import IdentifierField from "./IdentifierField";
8
7
  import ImageField from "./ImageField";
9
8
  import MarkdownField from "./MarkdownField";
@@ -18,49 +17,47 @@ import NumberField from "./NumberField";
18
17
  import DateField from "./DateField";
19
18
 
20
19
  const FieldByWidget = ({ scope, widget, onChange, field }) => {
21
- switch (widget) {
22
- case "identifier":
23
- return <IdentifierField field={field} />;
24
- case "dropdown":
25
- return <DropdownField field={field} scope={scope} onChange={onChange} />;
26
- case "radio":
27
- return <RadioField field={field} onChange={onChange} />;
28
- case "checkbox":
29
- return <CheckboxField field={field} onChange={onChange} />;
30
- case "textarea":
31
- return <TextField field={field} onChange={onChange} />;
32
- case "color_picker":
33
- return <ColorPickerField field={field} onChange={onChange} />;
34
- case "pair_list":
35
- return <PairListField field={field} onChange={onChange} />;
36
- case "enriched_text":
37
- return <EnrichedTextField field={field} onChange={onChange} />;
38
- case "markdown":
39
- return <MarkdownField field={field} onChange={onChange} />;
40
- case "table":
41
- return <TableField field={field} onChange={onChange} />;
42
- case "dynamic_table":
43
- return <DynamicTableField field={field} onChange={onChange} />;
44
- case "password":
45
- return <PasswordField field={field} onChange={onChange} />;
46
- case "image":
47
- return <ImageField field={field} onChange={onChange} />;
48
- case "number":
49
- return <NumberField field={field} onChange={onChange} />;
50
- case "date":
51
- return <DateField field={field} onChange={onChange} />;
52
- case "datetime":
53
- return <DateTimeField field={field} onChange={onChange} />;
54
- default:
55
- return <StringField field={field} onChange={onChange} />;
56
- }
20
+ switch (widget) {
21
+ case "identifier":
22
+ return <IdentifierField field={field} />;
23
+ case "dropdown":
24
+ return <DropdownField field={field} scope={scope} onChange={onChange} />;
25
+ case "radio":
26
+ return <RadioField field={field} onChange={onChange} />;
27
+ case "checkbox":
28
+ return <CheckboxField field={field} onChange={onChange} />;
29
+ case "textarea":
30
+ return <TextField field={field} onChange={onChange} />;
31
+ case "color_picker":
32
+ return <ColorPickerField field={field} onChange={onChange} />;
33
+ case "pair_list":
34
+ return <PairListField field={field} onChange={onChange} />;
35
+ case "markdown":
36
+ return <MarkdownField field={field} onChange={onChange} />;
37
+ case "table":
38
+ return <TableField field={field} onChange={onChange} />;
39
+ case "dynamic_table":
40
+ return <DynamicTableField field={field} onChange={onChange} />;
41
+ case "password":
42
+ return <PasswordField field={field} onChange={onChange} />;
43
+ case "image":
44
+ return <ImageField field={field} onChange={onChange} />;
45
+ case "number":
46
+ return <NumberField field={field} onChange={onChange} />;
47
+ case "date":
48
+ return <DateField field={field} onChange={onChange} />;
49
+ case "datetime":
50
+ return <DateTimeField field={field} onChange={onChange} />;
51
+ default:
52
+ return <StringField field={field} onChange={onChange} />;
53
+ }
57
54
  };
58
55
 
59
56
  FieldByWidget.propTypes = {
60
- onChange: PropTypes.func.isRequired,
61
- field: PropTypes.object.isRequired,
62
- scope: PropTypes.string,
63
- widget: PropTypes.string,
57
+ onChange: PropTypes.func.isRequired,
58
+ field: PropTypes.object.isRequired,
59
+ scope: PropTypes.string,
60
+ widget: PropTypes.string,
64
61
  };
65
62
 
66
- export default FieldByWidget;
63
+ export default FieldByWidget;
@@ -79,7 +79,6 @@ export default {
79
79
  "template.field.type.depth":
80
80
  "Selectable minimun level (to allow everything, set value: 0)",
81
81
  "template.field.type.domain": "Domain",
82
- "template.field.type.enriched_text": "Enriched text",
83
82
  "template.field.type.float": "Float",
84
83
  "template.field.type.hierarchy": "Hierarchy",
85
84
  "template.field.type.image": "Image",
@@ -79,7 +79,6 @@ export default {
79
79
  "template.field.type.depth":
80
80
  "Nivel mínimo seleccionable (para permitir todo, establecer valor: 0)",
81
81
  "template.field.type.domain": "Dominio",
82
- "template.field.type.enriched_text": "Texto enriquecido",
83
82
  "template.field.type.float": "Decimal",
84
83
  "template.field.type.hierarchy": "Jerarquía",
85
84
  "template.field.type.image": "Imagen",
@@ -417,23 +417,6 @@ exports[`<ActiveGroupForm /> matches the latest snapshot 1`] = `
417
417
  Colorpicker
418
418
  </span>
419
419
  </div>
420
- <div
421
- aria-checked="false"
422
- aria-selected="false"
423
- class="item"
424
- role="option"
425
- style="pointer-events: all;"
426
- >
427
- <i
428
- aria-hidden="true"
429
- class="text cursor icon"
430
- />
431
- <span
432
- class="text"
433
- >
434
- Enrichedtext
435
- </span>
436
- </div>
437
420
  <div
438
421
  aria-checked="false"
439
422
  aria-selected="false"
@@ -170,23 +170,6 @@ exports[`FieldDefinition renders dropdowns with initial values 1`] = `
170
170
  Colorpicker
171
171
  </span>
172
172
  </div>
173
- <div
174
- aria-checked="false"
175
- aria-selected="false"
176
- class="item"
177
- role="option"
178
- style="pointer-events: all;"
179
- >
180
- <i
181
- aria-hidden="true"
182
- class="text cursor icon"
183
- />
184
- <span
185
- class="text"
186
- >
187
- Enrichedtext
188
- </span>
189
- </div>
190
173
  <div
191
174
  aria-checked="false"
192
175
  aria-selected="false"
@@ -344,23 +344,6 @@ exports[`<FieldForm /> matches the latest snapshot 1`] = `
344
344
  Colorpicker
345
345
  </span>
346
346
  </div>
347
- <div
348
- aria-checked="false"
349
- aria-selected="false"
350
- class="item"
351
- role="option"
352
- style="pointer-events: all;"
353
- >
354
- <i
355
- aria-hidden="true"
356
- class="text cursor icon"
357
- />
358
- <span
359
- class="text"
360
- >
361
- Enrichedtext
362
- </span>
363
- </div>
364
347
  <div
365
348
  aria-checked="false"
366
349
  aria-selected="false"
@@ -1065,23 +1048,6 @@ exports[`<FieldForm /> renders MandatoryConditional 1`] = `
1065
1048
  Colorpicker
1066
1049
  </span>
1067
1050
  </div>
1068
- <div
1069
- aria-checked="false"
1070
- aria-selected="false"
1071
- class="item"
1072
- role="option"
1073
- style="pointer-events: all;"
1074
- >
1075
- <i
1076
- aria-hidden="true"
1077
- class="text cursor icon"
1078
- />
1079
- <span
1080
- class="text"
1081
- >
1082
- Enrichedtext
1083
- </span>
1084
- </div>
1085
1051
  <div
1086
1052
  aria-checked="false"
1087
1053
  aria-selected="false"
@@ -1940,23 +1906,6 @@ exports[`<FieldForm /> renders ValuesField and manages onChange 1`] = `
1940
1906
  Colorpicker
1941
1907
  </span>
1942
1908
  </div>
1943
- <div
1944
- aria-checked="false"
1945
- aria-selected="false"
1946
- class="item"
1947
- role="option"
1948
- style="pointer-events: all;"
1949
- >
1950
- <i
1951
- aria-hidden="true"
1952
- class="text cursor icon"
1953
- />
1954
- <span
1955
- class="text"
1956
- >
1957
- Enrichedtext
1958
- </span>
1959
- </div>
1960
1909
  <div
1961
1910
  aria-checked="false"
1962
1911
  aria-selected="false"
@@ -688,23 +688,6 @@ exports[`<TemplateForm /> matches snapshot when scope has no relations 1`] = `
688
688
  Colorpicker
689
689
  </span>
690
690
  </div>
691
- <div
692
- aria-checked="false"
693
- aria-selected="false"
694
- class="item"
695
- role="option"
696
- style="pointer-events: all;"
697
- >
698
- <i
699
- aria-hidden="true"
700
- class="text cursor icon"
701
- />
702
- <span
703
- class="text"
704
- >
705
- Enrichedtext
706
- </span>
707
- </div>
708
691
  <div
709
692
  aria-checked="false"
710
693
  aria-selected="false"
@@ -1808,23 +1791,6 @@ exports[`<TemplateForm /> matches snapshot when scope has relations 1`] = `
1808
1791
  Colorpicker
1809
1792
  </span>
1810
1793
  </div>
1811
- <div
1812
- aria-checked="false"
1813
- aria-selected="false"
1814
- class="item"
1815
- role="option"
1816
- style="pointer-events: all;"
1817
- >
1818
- <i
1819
- aria-hidden="true"
1820
- class="text cursor icon"
1821
- />
1822
- <span
1823
- class="text"
1824
- >
1825
- Enrichedtext
1826
- </span>
1827
- </div>
1828
1794
  <div
1829
1795
  aria-checked="false"
1830
1796
  aria-selected="false"
@@ -27,7 +27,6 @@ const eligibleValues = {
27
27
  checkbox: selectableValues,
28
28
  pair_list: { url: [null] }, // Links
29
29
  color_picker: { string: [null] },
30
- enriched_text: { enriched_text: [null] },
31
30
  markdown: { markdown: [null] },
32
31
  table: { table: ["table_columns"] },
33
32
  dynamic_table: { dynamic_table: ["table_columns"] },
@@ -40,7 +39,8 @@ export const getValues = (widget, fieldType) => {
40
39
  return _.filter(({ value }) => available.includes(value))(valueTypes);
41
40
  };
42
41
 
43
- export const listFormat = (type) => ["fixed", "fixed_tuple", "table_columns"].includes(type);
42
+ export const listFormat = (type) =>
43
+ ["fixed", "fixed_tuple", "table_columns"].includes(type);
44
44
 
45
45
  export const defaultValue = (type, fieldType) =>
46
46
  (!type && _.negate(_.includes(fieldType))(["url", "system", "domain"])) ||
@@ -50,13 +50,14 @@ export const valuesSelector = (type) =>
50
50
  type &&
51
51
  (listFormat(type) ||
52
52
  ["domain", "switch", "role_users", "role_groups", "hierarchy"].includes(
53
- type
53
+ type,
54
54
  ));
55
55
 
56
56
  export const valueSegment = (values, type, fieldType) =>
57
57
  _.size(values) > 1 || valuesSelector(type) || defaultValue(type, fieldType);
58
58
 
59
- export const hasAiSuggestions = (fieldType, keyType) => _.includes(fieldType)(["string", "enriched_text", "markdown"]) &&
59
+ export const hasAiSuggestions = (fieldType, keyType) =>
60
+ _.includes(fieldType)(["string", "markdown"]) &&
60
61
  _.includes(keyType)(["fixed", "fixed_tuple", undefined]);
61
62
 
62
63
  const typeFromKey = (keys) =>
@@ -68,4 +69,5 @@ const typeFromKey = (keys) =>
68
69
  ? "hierarchy"
69
70
  : _.first(keys);
70
71
 
71
- export const getKeyType = (field) => _.flow([_.getOr({}, "values"), _.keys, typeFromKey])(field);
72
+ export const getKeyType = (field) =>
73
+ _.flow([_.getOr({}, "values"), _.keys, typeFromKey])(field);
@@ -100,14 +100,6 @@ export const WIDGETS = [
100
100
  cardinalities: ["?", "1"],
101
101
  types: ["string"],
102
102
  },
103
- {
104
- key: "enriched_text",
105
- value: "enriched_text",
106
- text: "Enrichedtext",
107
- icon: "text cursor",
108
- cardinalities: ["?", "1"],
109
- types: ["enriched_text"],
110
- },
111
103
  {
112
104
  key: "markdown",
113
105
  value: "markdown",
@@ -185,4 +177,4 @@ export const defaultFieldDefinition = {
185
177
  origin: "default",
186
178
  },
187
179
  values: null,
188
- };
180
+ };
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import { toEnrichedTextFormat } from "@truedat/core/services/format";
3
2
 
4
3
  const meetsDependency = (defaults, content, on, to_be) => {
5
4
  const field_value = getDefaultValue(defaults, content, on);
@@ -33,13 +32,13 @@ const getDefaultSwitchValue = (defaults, content, onSwitch, value) =>
33
32
  (_.has(onSwitch)(defaults) || _.has(onSwitch)(content)) &&
34
33
  _.flow(
35
34
  (d) => getDefaultValue(d, content, onSwitch),
36
- (v) => _.getOr(null)(v)(value)
35
+ (v) => _.getOr(null)(v)(value),
37
36
  )(defaults);
38
37
 
39
38
  const getFieldType = (field, templateContent) =>
40
39
  _.flow(
41
40
  _.find(({ name }) => field === name),
42
- _.get("type")
41
+ _.get("type"),
43
42
  )(templateContent);
44
43
 
45
44
  export const applyDefaults = (templateContent) => (content, domainId) =>
@@ -49,19 +48,14 @@ export const applyDefaults = (templateContent) => (content, domainId) =>
49
48
  _.reduce(
50
49
  (
51
50
  acc,
52
- { name, default: value, depends: { on, to_be: toBe } = {}, values }
51
+ { name, default: value, depends: { on, to_be: toBe } = {}, values },
53
52
  ) => {
54
53
  const onSwitch = values?.switch?.on;
55
54
  const onSwitchValues = values?.switch?.values;
56
55
  const onDomain = values?.domain;
57
56
 
58
57
  if (standardDefault(on, toBe, onSwitch, onDomain)) {
59
- const fieldValue =
60
- getFieldType(name, templateContent) === "enriched_text"
61
- ? _.set("value", toEnrichedTextFormat(value.value))(value)
62
- : value;
63
-
64
- return _.assoc(name, fieldValue)(acc);
58
+ return _.assoc(name, value)(acc);
65
59
  }
66
60
  if (meetsDependency(acc, content, on, toBe)) {
67
61
  if (meetsSwitchCondition(acc, content, onSwitch, onSwitchValues)) {
@@ -69,7 +63,7 @@ export const applyDefaults = (templateContent) => (content, domainId) =>
69
63
  acc,
70
64
  content,
71
65
  onSwitch,
72
- value.value
66
+ value.value,
73
67
  );
74
68
  return _.assoc(name, {
75
69
  ...value,
@@ -77,8 +71,12 @@ export const applyDefaults = (templateContent) => (content, domainId) =>
77
71
  })(acc);
78
72
  } else if (meetsDomain(onDomain, domainId)) {
79
73
  const domainIdsArray = _.isArray(domainId) ? domainId : [domainId];
80
- const foundDomainId = domainIdsArray?.find((id) => id != null && _.prop(id)(value.value));
81
- const defaultValue = foundDomainId ? _.prop(foundDomainId, value.value) : null;
74
+ const foundDomainId = domainIdsArray?.find(
75
+ (id) => id != null && _.prop(id)(value.value),
76
+ );
77
+ const defaultValue = foundDomainId
78
+ ? _.prop(foundDomainId, value.value)
79
+ : null;
82
80
  return defaultValue
83
81
  ? _.assoc(name, { ...value, value: defaultValue })(acc)
84
82
  : acc;
@@ -92,7 +90,7 @@ export const applyDefaults = (templateContent) => (content, domainId) =>
92
90
  acc,
93
91
  content,
94
92
  onSwitch,
95
- value.value
93
+ value.value,
96
94
  );
97
95
  return _.assoc(name, {
98
96
  ...value,
@@ -100,22 +98,26 @@ export const applyDefaults = (templateContent) => (content, domainId) =>
100
98
  })(acc);
101
99
  } else if (meetsDomain(onDomain, domainId)) {
102
100
  const domainIdsArray = _.isArray(domainId) ? domainId : [domainId];
103
- const foundDomainId = domainIdsArray?.find((id) => id != null && _.prop(id)(value.value));
104
- const defaultValue = foundDomainId ? _.prop(foundDomainId, value.value) : null;
101
+ const foundDomainId = domainIdsArray?.find(
102
+ (id) => id != null && _.prop(id)(value.value),
103
+ );
104
+ const defaultValue = foundDomainId
105
+ ? _.prop(foundDomainId, value.value)
106
+ : null;
105
107
  return defaultValue
106
108
  ? _.assoc(name, { ...value, value: defaultValue })(acc)
107
109
  : acc;
108
110
  }
109
111
  return acc;
110
112
  },
111
- {}
113
+ {},
112
114
  ),
113
- _.merge(content)
115
+ _.merge(content),
114
116
  )(templateContent);
115
117
 
116
118
  export const getTemplateDefaults = _.flow(
117
119
  _.filter(_.has("default")),
118
- _.map(_.pick(["name", "default", "depends", "values"]))
120
+ _.map(_.pick(["name", "default", "depends", "values"])),
119
121
  );
120
122
 
121
123
  export default applyDefaults;
@@ -1,13 +0,0 @@
1
- import PropTypes from "prop-types";
2
- import { RichTextEditor } from "@truedat/core/components";
3
-
4
- export const EnrichedTextField = ({ field: { name, value }, onChange }) => (
5
- <RichTextEditor name={name} value={value} onChange={onChange} />
6
- );
7
-
8
- EnrichedTextField.propTypes = {
9
- field: PropTypes.object,
10
- onChange: PropTypes.func,
11
- };
12
-
13
- export default EnrichedTextField;