@truedat/df 4.54.8 → 4.54.10

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/CHANGELOG.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [Unreleased]
4
+
5
+ ### Added
6
+
7
+ - [TD-5037] Fields changed in templates can be highlighted
8
+
3
9
  ## [4.53.9] 2022-10-17
4
10
 
5
- ### [Fixed]
11
+ ### Fixed
6
12
 
7
13
  - [TD-4542] Depending checkboxes in template
8
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/df",
3
- "version": "4.54.8",
3
+ "version": "4.54.10",
4
4
  "description": "Truedat Web Data Quality Module",
5
5
  "sideEffects": false,
6
6
  "jsnext:main": "src/index.js",
@@ -34,7 +34,7 @@
34
34
  "@testing-library/jest-dom": "^5.16.4",
35
35
  "@testing-library/react": "^12.0.0",
36
36
  "@testing-library/user-event": "^13.2.1",
37
- "@truedat/test": "4.54.8",
37
+ "@truedat/test": "4.54.9",
38
38
  "babel-jest": "^28.1.0",
39
39
  "babel-plugin-dynamic-import-node": "^2.3.3",
40
40
  "babel-plugin-lodash": "^3.3.4",
@@ -88,8 +88,8 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "@apollo/client": "^3.7.0",
91
- "@truedat/auth": "4.54.8",
92
- "@truedat/core": "4.54.8",
91
+ "@truedat/auth": "4.54.9",
92
+ "@truedat/core": "4.54.9",
93
93
  "path-to-regexp": "^1.7.0",
94
94
  "prop-types": "^15.8.1",
95
95
  "react-color": "^2.17.3",
@@ -107,5 +107,5 @@
107
107
  "react-dom": ">= 16.8.6 < 17",
108
108
  "semantic-ui-react": ">= 0.88.2 < 2.1"
109
109
  },
110
- "gitHead": "f2274cf8a260efe11653e9e9132962cf0162c4c2"
110
+ "gitHead": "9821d62fc45875b958908d2dcec5aea90960ab4d"
111
111
  }
@@ -1,7 +1,7 @@
1
1
  import _ from "lodash/fp";
2
2
  import React from "react";
3
3
  import PropTypes from "prop-types";
4
- import { FormattedMessage } from "react-intl";
4
+ import { FormattedMessage, useIntl } from "react-intl";
5
5
  import { Icon, List, Container } from "semantic-ui-react";
6
6
  import DomainPreview from "./widgets/DomainPreview";
7
7
  import SystemPreview from "./widgets/SystemPreview";
@@ -15,55 +15,72 @@ export const DynamicFieldValue = ({
15
15
  values,
16
16
  widget,
17
17
  isSecret,
18
- }) => (
19
- <List.Item>
20
- <List.Header className="dynamic-field-header">
21
- {label ? (
22
- <FormattedMessage id={`fields.${label}`} defaultMessage={label} />
23
- ) : null}
24
- </List.Header>
25
- <List.Description>
26
- {_.isNil(value) || (!_.isNumber(value) && _.isEmpty(value)) ? (
27
- isSecret ? (
28
- <Container className="hidden-secret-value">
29
- <FormattedMessage id="template.field.hidden_secret" />
30
- </Container>
31
- ) : (
32
- <Icon name="minus" color="grey" />
33
- )
34
- ) : type == "domain" ? (
35
- <DomainPreview domainIds={_.castArray(value)} />
36
- ) : _.isArray(value) ? (
37
- type == "table" ? (
38
- <FieldViewerValue type={type} value={value} values={values} />
39
- ) : type == "system" ? (
40
- <SystemPreview value={value} />
18
+ isChanged,
19
+ }) => {
20
+
21
+ const { formatMessage } = useIntl();
22
+
23
+ return (
24
+ <List.Item>
25
+ <List.Header
26
+ className={
27
+ isChanged
28
+ ? "dynamic-field-header template-field-changed"
29
+ : "dynamic-field-header"
30
+ }
31
+ title={
32
+ isChanged
33
+ ? formatMessage({ id: "template.field.changed" })
34
+ : undefined
35
+ }
36
+ >
37
+ {label ? (
38
+ <FormattedMessage id={`fields.${label}`} defaultMessage={label} />
39
+ ) : null}
40
+ </List.Header>
41
+ <List.Description>
42
+ {_.isNil(value) || (!_.isNumber(value) && _.isEmpty(value)) ? (
43
+ isSecret ? (
44
+ <Container className="hidden-secret-value">
45
+ <FormattedMessage id="template.field.hidden_secret" />
46
+ </Container>
47
+ ) : (
48
+ <Icon name="minus" color="grey" />
49
+ )
50
+ ) : type == "domain" ? (
51
+ <DomainPreview domainIds={_.castArray(value)} />
52
+ ) : _.isArray(value) ? (
53
+ type == "table" ? (
54
+ <FieldViewerValue type={type} value={value} values={values} />
55
+ ) : type == "system" ? (
56
+ <SystemPreview value={value} />
57
+ ) : (
58
+ value.map((v, i) => (
59
+ <FieldViewerValue
60
+ key={i}
61
+ label={label}
62
+ multiple
63
+ type={type}
64
+ value={v}
65
+ values={values}
66
+ />
67
+ ))
68
+ )
69
+ ) : widget === "password" ? (
70
+ "*****"
41
71
  ) : (
42
- value.map((v, i) => (
43
- <FieldViewerValue
44
- key={i}
45
- label={label}
46
- multiple
47
- type={type}
48
- value={v}
49
- values={values}
50
- />
51
- ))
52
- )
53
- ) : widget === "password" ? (
54
- "*****"
55
- ) : (
56
- <FieldViewerValue
57
- label={label}
58
- type={type}
59
- value={value}
60
- values={values}
61
- widget={widget}
62
- />
63
- )}
64
- </List.Description>
65
- </List.Item>
66
- );
72
+ <FieldViewerValue
73
+ label={label}
74
+ type={type}
75
+ value={value}
76
+ values={values}
77
+ widget={widget}
78
+ />
79
+ )}
80
+ </List.Description>
81
+ </List.Item>
82
+ );
83
+ };
67
84
 
68
85
  DynamicFieldValue.propTypes = {
69
86
  label: PropTypes.string,
@@ -72,6 +89,7 @@ DynamicFieldValue.propTypes = {
72
89
  values: PropTypes.any,
73
90
  widget: PropTypes.string,
74
91
  isSecret: PropTypes.bool,
92
+ isChanged: PropTypes.bool,
75
93
  };
76
94
 
77
95
  export default DynamicFieldValue;
@@ -8,6 +8,7 @@ import FieldGroupDetail from "./FieldGroupDetail";
8
8
  export const DynamicFormViewer = ({
9
9
  template,
10
10
  content,
11
+ diff,
11
12
  boxLayout,
12
13
  editFunctions,
13
14
  }) => {
@@ -34,6 +35,7 @@ export const DynamicFormViewer = ({
34
35
  : null
35
36
  }
36
37
  fields={fields}
38
+ diff={diff}
37
39
  boxLayout={boxLayout}
38
40
  editFunctions={editFunctions}
39
41
  />
@@ -43,6 +45,7 @@ export const DynamicFormViewer = ({
43
45
  DynamicFormViewer.propTypes = {
44
46
  template: PropTypes.object,
45
47
  content: PropTypes.object,
48
+ diff: PropTypes.array,
46
49
  boxLayout: PropTypes.bool,
47
50
  editFunctions: PropTypes.func,
48
51
  };
@@ -30,19 +30,26 @@ const parseField = (field) => {
30
30
  export const FieldGroupDetail = ({
31
31
  name,
32
32
  fields,
33
+ diff,
33
34
  boxLayout,
34
35
  editFunctions,
35
36
  }) => {
36
37
  const FieldComponent = editFunctions
37
38
  ? EditableDynamicFieldValue
38
39
  : DynamicFieldValue;
40
+
39
41
  return boxLayout ? (
40
42
  <>
41
43
  <Segment>
42
44
  {name && name !== "undefined" && <h4>{name}</h4>}
43
45
  <List>
44
46
  {fields.map(parseField).map((f, i) => (
45
- <FieldComponent key={i} {...f} editFunctions={editFunctions} />
47
+ <FieldComponent
48
+ key={i}
49
+ {...f}
50
+ editFunctions={editFunctions}
51
+ isChanged={diff && diff.includes(f.name)}
52
+ />
46
53
  ))}
47
54
  </List>
48
55
  </Segment>
@@ -56,7 +63,12 @@ export const FieldGroupDetail = ({
56
63
  )}
57
64
  <List size="big" relaxed="very">
58
65
  {fields.map(parseField).map((f, i) => (
59
- <FieldComponent key={i} {...f} editFunctions={editFunctions} />
66
+ <FieldComponent
67
+ key={i}
68
+ {...f}
69
+ editFunctions={editFunctions}
70
+ isChanged={diff && diff.includes(f.name)}
71
+ />
60
72
  ))}
61
73
  </List>
62
74
  </>
@@ -65,6 +77,7 @@ export const FieldGroupDetail = ({
65
77
  FieldGroupDetail.propTypes = {
66
78
  name: PropTypes.string,
67
79
  fields: PropTypes.array,
80
+ diff: PropTypes.array,
68
81
  boxLayout: PropTypes.bool,
69
82
  editFunctions: PropTypes.func,
70
83
  };
@@ -19,4 +19,22 @@ describe("<DynamicFieldValue />", () => {
19
19
  const wrapper = render(<DynamicFieldValue {...props} />, renderOpts);
20
20
  expect(wrapper).toMatchSnapshot();
21
21
  });
22
+
23
+ it("matches the latest snapshot with field changed", () => {
24
+ const renderOpts = {
25
+ messages: {
26
+ en: {},
27
+ },
28
+ };
29
+ const props = {
30
+ isChanged: true,
31
+ label: "label",
32
+ value: "value",
33
+ type: "string",
34
+ values: null,
35
+ widget: "text",
36
+ };
37
+ const wrapper = render(<DynamicFieldValue {...props} />, renderOpts);
38
+ expect(wrapper).toMatchSnapshot();
39
+ });
22
40
  });
@@ -0,0 +1,120 @@
1
+ import React from "react";
2
+ import { render } from "@truedat/test/render";
3
+ import { FieldGroupDetail } from "../FieldGroupDetail";
4
+
5
+ describe("<FieldGroupDetail />", () => {
6
+ it("matches the latest snapshot without boxLayout", () => {
7
+ const renderOpts = {
8
+ messages: {
9
+ en: {},
10
+ },
11
+ };
12
+ const props = {
13
+ name: "foo group",
14
+ fields: [
15
+ {
16
+ cardinality: "?",
17
+ default: "",
18
+ label: "foo field",
19
+ name: "foo_field",
20
+ type: "string",
21
+ values: null,
22
+ widget: "text",
23
+ value: "foo value",
24
+ required: false,
25
+ },
26
+ {
27
+ cardinality: "?",
28
+ default: "",
29
+ label: "bar field",
30
+ name: "bar_field",
31
+ type: "string",
32
+ values: null,
33
+ widget: "number",
34
+ value: 25,
35
+ required: false,
36
+ },
37
+ ],
38
+ boxLayout: false,
39
+ };
40
+ const wrapper = render(<FieldGroupDetail {...props} />, renderOpts);
41
+ expect(wrapper).toMatchSnapshot();
42
+ });
43
+
44
+ it("matches the latest snapshot with boxLayout", () => {
45
+ const renderOpts = {
46
+ messages: {
47
+ en: {},
48
+ },
49
+ };
50
+ const props = {
51
+ name: "foo group",
52
+ fields: [
53
+ {
54
+ cardinality: "?",
55
+ default: "",
56
+ label: "foo field",
57
+ name: "foo_field",
58
+ type: "string",
59
+ values: null,
60
+ widget: "text",
61
+ value: "foo value",
62
+ required: false,
63
+ },
64
+ {
65
+ cardinality: "?",
66
+ default: "",
67
+ label: "bar field",
68
+ name: "bar_field",
69
+ type: "string",
70
+ values: null,
71
+ widget: "number",
72
+ value: 25,
73
+ required: false,
74
+ },
75
+ ],
76
+ boxLayout: true,
77
+ };
78
+ const wrapper = render(<FieldGroupDetail {...props} />, renderOpts);
79
+ expect(wrapper).toMatchSnapshot();
80
+ });
81
+
82
+ it("matches the latest snapshot with field differences", () => {
83
+ const renderOpts = {
84
+ messages: {
85
+ en: {},
86
+ },
87
+ };
88
+ const props = {
89
+ name: "foo group",
90
+ fields: [
91
+ {
92
+ cardinality: "?",
93
+ default: "",
94
+ label: "foo field",
95
+ name: "foo_field",
96
+ type: "string",
97
+ values: null,
98
+ widget: "text",
99
+ value: "foo value",
100
+ required: false,
101
+ },
102
+ {
103
+ cardinality: "?",
104
+ default: "",
105
+ label: "bar field",
106
+ name: "bar_field",
107
+ type: "string",
108
+ values: null,
109
+ widget: "number",
110
+ value: 25,
111
+ required: false,
112
+ },
113
+ ],
114
+ boxLayout: true,
115
+ diff: ["foo_field"],
116
+ };
117
+ const wrapper = render(<FieldGroupDetail {...props} />, renderOpts);
118
+ expect(wrapper).toMatchSnapshot();
119
+ });
120
+ });
@@ -100,3 +100,106 @@ Object {
100
100
  "unmount": [Function],
101
101
  }
102
102
  `;
103
+
104
+ exports[`<DynamicFieldValue /> matches the latest snapshot with field changed 1`] = `
105
+ Object {
106
+ "asFragment": [Function],
107
+ "baseElement": <body>
108
+ <div>
109
+ <div
110
+ class="item"
111
+ role="listitem"
112
+ >
113
+ <div
114
+ class="header dynamic-field-header template-field-changed"
115
+ title="template.field.changed"
116
+ >
117
+ label
118
+ </div>
119
+ <div
120
+ class="description"
121
+ >
122
+ <div
123
+ class="default-value"
124
+ >
125
+ value
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </body>,
131
+ "container": <div>
132
+ <div
133
+ class="item"
134
+ role="listitem"
135
+ >
136
+ <div
137
+ class="header dynamic-field-header template-field-changed"
138
+ title="template.field.changed"
139
+ >
140
+ label
141
+ </div>
142
+ <div
143
+ class="description"
144
+ >
145
+ <div
146
+ class="default-value"
147
+ >
148
+ value
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </div>,
153
+ "debug": [Function],
154
+ "findAllByAltText": [Function],
155
+ "findAllByDisplayValue": [Function],
156
+ "findAllByLabelText": [Function],
157
+ "findAllByPlaceholderText": [Function],
158
+ "findAllByRole": [Function],
159
+ "findAllByTestId": [Function],
160
+ "findAllByText": [Function],
161
+ "findAllByTitle": [Function],
162
+ "findByAltText": [Function],
163
+ "findByDisplayValue": [Function],
164
+ "findByLabelText": [Function],
165
+ "findByPlaceholderText": [Function],
166
+ "findByRole": [Function],
167
+ "findByTestId": [Function],
168
+ "findByText": [Function],
169
+ "findByTitle": [Function],
170
+ "getAllByAltText": [Function],
171
+ "getAllByDisplayValue": [Function],
172
+ "getAllByLabelText": [Function],
173
+ "getAllByPlaceholderText": [Function],
174
+ "getAllByRole": [Function],
175
+ "getAllByTestId": [Function],
176
+ "getAllByText": [Function],
177
+ "getAllByTitle": [Function],
178
+ "getByAltText": [Function],
179
+ "getByDisplayValue": [Function],
180
+ "getByLabelText": [Function],
181
+ "getByPlaceholderText": [Function],
182
+ "getByRole": [Function],
183
+ "getByTestId": [Function],
184
+ "getByText": [Function],
185
+ "getByTitle": [Function],
186
+ "queryAllByAltText": [Function],
187
+ "queryAllByDisplayValue": [Function],
188
+ "queryAllByLabelText": [Function],
189
+ "queryAllByPlaceholderText": [Function],
190
+ "queryAllByRole": [Function],
191
+ "queryAllByTestId": [Function],
192
+ "queryAllByText": [Function],
193
+ "queryAllByTitle": [Function],
194
+ "queryByAltText": [Function],
195
+ "queryByDisplayValue": [Function],
196
+ "queryByLabelText": [Function],
197
+ "queryByPlaceholderText": [Function],
198
+ "queryByRole": [Function],
199
+ "queryByTestId": [Function],
200
+ "queryByText": [Function],
201
+ "queryByTitle": [Function],
202
+ "rerender": [Function],
203
+ "unmount": [Function],
204
+ }
205
+ `;
@@ -0,0 +1,492 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<FieldGroupDetail /> matches the latest snapshot with boxLayout 1`] = `
4
+ Object {
5
+ "asFragment": [Function],
6
+ "baseElement": <body>
7
+ <div>
8
+ <div
9
+ class="ui segment"
10
+ >
11
+ <h4>
12
+ foo group
13
+ </h4>
14
+ <div
15
+ class="ui list"
16
+ role="list"
17
+ >
18
+ <div
19
+ class="item"
20
+ role="listitem"
21
+ >
22
+ <div
23
+ class="header dynamic-field-header"
24
+ >
25
+ foo field
26
+ </div>
27
+ <div
28
+ class="description"
29
+ >
30
+ <div
31
+ class="default-value"
32
+ >
33
+ foo value
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <div
38
+ class="item"
39
+ role="listitem"
40
+ >
41
+ <div
42
+ class="header dynamic-field-header"
43
+ >
44
+ bar field
45
+ </div>
46
+ <div
47
+ class="description"
48
+ >
49
+ <div
50
+ class="default-value"
51
+ >
52
+ 25
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </body>,
60
+ "container": <div>
61
+ <div
62
+ class="ui segment"
63
+ >
64
+ <h4>
65
+ foo group
66
+ </h4>
67
+ <div
68
+ class="ui list"
69
+ role="list"
70
+ >
71
+ <div
72
+ class="item"
73
+ role="listitem"
74
+ >
75
+ <div
76
+ class="header dynamic-field-header"
77
+ >
78
+ foo field
79
+ </div>
80
+ <div
81
+ class="description"
82
+ >
83
+ <div
84
+ class="default-value"
85
+ >
86
+ foo value
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <div
91
+ class="item"
92
+ role="listitem"
93
+ >
94
+ <div
95
+ class="header dynamic-field-header"
96
+ >
97
+ bar field
98
+ </div>
99
+ <div
100
+ class="description"
101
+ >
102
+ <div
103
+ class="default-value"
104
+ >
105
+ 25
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>,
112
+ "debug": [Function],
113
+ "findAllByAltText": [Function],
114
+ "findAllByDisplayValue": [Function],
115
+ "findAllByLabelText": [Function],
116
+ "findAllByPlaceholderText": [Function],
117
+ "findAllByRole": [Function],
118
+ "findAllByTestId": [Function],
119
+ "findAllByText": [Function],
120
+ "findAllByTitle": [Function],
121
+ "findByAltText": [Function],
122
+ "findByDisplayValue": [Function],
123
+ "findByLabelText": [Function],
124
+ "findByPlaceholderText": [Function],
125
+ "findByRole": [Function],
126
+ "findByTestId": [Function],
127
+ "findByText": [Function],
128
+ "findByTitle": [Function],
129
+ "getAllByAltText": [Function],
130
+ "getAllByDisplayValue": [Function],
131
+ "getAllByLabelText": [Function],
132
+ "getAllByPlaceholderText": [Function],
133
+ "getAllByRole": [Function],
134
+ "getAllByTestId": [Function],
135
+ "getAllByText": [Function],
136
+ "getAllByTitle": [Function],
137
+ "getByAltText": [Function],
138
+ "getByDisplayValue": [Function],
139
+ "getByLabelText": [Function],
140
+ "getByPlaceholderText": [Function],
141
+ "getByRole": [Function],
142
+ "getByTestId": [Function],
143
+ "getByText": [Function],
144
+ "getByTitle": [Function],
145
+ "queryAllByAltText": [Function],
146
+ "queryAllByDisplayValue": [Function],
147
+ "queryAllByLabelText": [Function],
148
+ "queryAllByPlaceholderText": [Function],
149
+ "queryAllByRole": [Function],
150
+ "queryAllByTestId": [Function],
151
+ "queryAllByText": [Function],
152
+ "queryAllByTitle": [Function],
153
+ "queryByAltText": [Function],
154
+ "queryByDisplayValue": [Function],
155
+ "queryByLabelText": [Function],
156
+ "queryByPlaceholderText": [Function],
157
+ "queryByRole": [Function],
158
+ "queryByTestId": [Function],
159
+ "queryByText": [Function],
160
+ "queryByTitle": [Function],
161
+ "rerender": [Function],
162
+ "unmount": [Function],
163
+ }
164
+ `;
165
+
166
+ exports[`<FieldGroupDetail /> matches the latest snapshot with field differences 1`] = `
167
+ Object {
168
+ "asFragment": [Function],
169
+ "baseElement": <body>
170
+ <div>
171
+ <div
172
+ class="ui segment"
173
+ >
174
+ <h4>
175
+ foo group
176
+ </h4>
177
+ <div
178
+ class="ui list"
179
+ role="list"
180
+ >
181
+ <div
182
+ class="item"
183
+ role="listitem"
184
+ >
185
+ <div
186
+ class="header dynamic-field-header template-field-changed"
187
+ title="template.field.changed"
188
+ >
189
+ foo field
190
+ </div>
191
+ <div
192
+ class="description"
193
+ >
194
+ <div
195
+ class="default-value"
196
+ >
197
+ foo value
198
+ </div>
199
+ </div>
200
+ </div>
201
+ <div
202
+ class="item"
203
+ role="listitem"
204
+ >
205
+ <div
206
+ class="header dynamic-field-header"
207
+ >
208
+ bar field
209
+ </div>
210
+ <div
211
+ class="description"
212
+ >
213
+ <div
214
+ class="default-value"
215
+ >
216
+ 25
217
+ </div>
218
+ </div>
219
+ </div>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ </body>,
224
+ "container": <div>
225
+ <div
226
+ class="ui segment"
227
+ >
228
+ <h4>
229
+ foo group
230
+ </h4>
231
+ <div
232
+ class="ui list"
233
+ role="list"
234
+ >
235
+ <div
236
+ class="item"
237
+ role="listitem"
238
+ >
239
+ <div
240
+ class="header dynamic-field-header template-field-changed"
241
+ title="template.field.changed"
242
+ >
243
+ foo field
244
+ </div>
245
+ <div
246
+ class="description"
247
+ >
248
+ <div
249
+ class="default-value"
250
+ >
251
+ foo value
252
+ </div>
253
+ </div>
254
+ </div>
255
+ <div
256
+ class="item"
257
+ role="listitem"
258
+ >
259
+ <div
260
+ class="header dynamic-field-header"
261
+ >
262
+ bar field
263
+ </div>
264
+ <div
265
+ class="description"
266
+ >
267
+ <div
268
+ class="default-value"
269
+ >
270
+ 25
271
+ </div>
272
+ </div>
273
+ </div>
274
+ </div>
275
+ </div>
276
+ </div>,
277
+ "debug": [Function],
278
+ "findAllByAltText": [Function],
279
+ "findAllByDisplayValue": [Function],
280
+ "findAllByLabelText": [Function],
281
+ "findAllByPlaceholderText": [Function],
282
+ "findAllByRole": [Function],
283
+ "findAllByTestId": [Function],
284
+ "findAllByText": [Function],
285
+ "findAllByTitle": [Function],
286
+ "findByAltText": [Function],
287
+ "findByDisplayValue": [Function],
288
+ "findByLabelText": [Function],
289
+ "findByPlaceholderText": [Function],
290
+ "findByRole": [Function],
291
+ "findByTestId": [Function],
292
+ "findByText": [Function],
293
+ "findByTitle": [Function],
294
+ "getAllByAltText": [Function],
295
+ "getAllByDisplayValue": [Function],
296
+ "getAllByLabelText": [Function],
297
+ "getAllByPlaceholderText": [Function],
298
+ "getAllByRole": [Function],
299
+ "getAllByTestId": [Function],
300
+ "getAllByText": [Function],
301
+ "getAllByTitle": [Function],
302
+ "getByAltText": [Function],
303
+ "getByDisplayValue": [Function],
304
+ "getByLabelText": [Function],
305
+ "getByPlaceholderText": [Function],
306
+ "getByRole": [Function],
307
+ "getByTestId": [Function],
308
+ "getByText": [Function],
309
+ "getByTitle": [Function],
310
+ "queryAllByAltText": [Function],
311
+ "queryAllByDisplayValue": [Function],
312
+ "queryAllByLabelText": [Function],
313
+ "queryAllByPlaceholderText": [Function],
314
+ "queryAllByRole": [Function],
315
+ "queryAllByTestId": [Function],
316
+ "queryAllByText": [Function],
317
+ "queryAllByTitle": [Function],
318
+ "queryByAltText": [Function],
319
+ "queryByDisplayValue": [Function],
320
+ "queryByLabelText": [Function],
321
+ "queryByPlaceholderText": [Function],
322
+ "queryByRole": [Function],
323
+ "queryByTestId": [Function],
324
+ "queryByText": [Function],
325
+ "queryByTitle": [Function],
326
+ "rerender": [Function],
327
+ "unmount": [Function],
328
+ }
329
+ `;
330
+
331
+ exports[`<FieldGroupDetail /> matches the latest snapshot without boxLayout 1`] = `
332
+ Object {
333
+ "asFragment": [Function],
334
+ "baseElement": <body>
335
+ <div>
336
+ <div
337
+ class="ui horizontal divider"
338
+ >
339
+ <h3>
340
+ foo group
341
+ </h3>
342
+ </div>
343
+ <div
344
+ class="ui big very relaxed list"
345
+ role="list"
346
+ >
347
+ <div
348
+ class="item"
349
+ role="listitem"
350
+ >
351
+ <div
352
+ class="header dynamic-field-header"
353
+ >
354
+ foo field
355
+ </div>
356
+ <div
357
+ class="description"
358
+ >
359
+ <div
360
+ class="default-value"
361
+ >
362
+ foo value
363
+ </div>
364
+ </div>
365
+ </div>
366
+ <div
367
+ class="item"
368
+ role="listitem"
369
+ >
370
+ <div
371
+ class="header dynamic-field-header"
372
+ >
373
+ bar field
374
+ </div>
375
+ <div
376
+ class="description"
377
+ >
378
+ <div
379
+ class="default-value"
380
+ >
381
+ 25
382
+ </div>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ </body>,
388
+ "container": <div>
389
+ <div
390
+ class="ui horizontal divider"
391
+ >
392
+ <h3>
393
+ foo group
394
+ </h3>
395
+ </div>
396
+ <div
397
+ class="ui big very relaxed list"
398
+ role="list"
399
+ >
400
+ <div
401
+ class="item"
402
+ role="listitem"
403
+ >
404
+ <div
405
+ class="header dynamic-field-header"
406
+ >
407
+ foo field
408
+ </div>
409
+ <div
410
+ class="description"
411
+ >
412
+ <div
413
+ class="default-value"
414
+ >
415
+ foo value
416
+ </div>
417
+ </div>
418
+ </div>
419
+ <div
420
+ class="item"
421
+ role="listitem"
422
+ >
423
+ <div
424
+ class="header dynamic-field-header"
425
+ >
426
+ bar field
427
+ </div>
428
+ <div
429
+ class="description"
430
+ >
431
+ <div
432
+ class="default-value"
433
+ >
434
+ 25
435
+ </div>
436
+ </div>
437
+ </div>
438
+ </div>
439
+ </div>,
440
+ "debug": [Function],
441
+ "findAllByAltText": [Function],
442
+ "findAllByDisplayValue": [Function],
443
+ "findAllByLabelText": [Function],
444
+ "findAllByPlaceholderText": [Function],
445
+ "findAllByRole": [Function],
446
+ "findAllByTestId": [Function],
447
+ "findAllByText": [Function],
448
+ "findAllByTitle": [Function],
449
+ "findByAltText": [Function],
450
+ "findByDisplayValue": [Function],
451
+ "findByLabelText": [Function],
452
+ "findByPlaceholderText": [Function],
453
+ "findByRole": [Function],
454
+ "findByTestId": [Function],
455
+ "findByText": [Function],
456
+ "findByTitle": [Function],
457
+ "getAllByAltText": [Function],
458
+ "getAllByDisplayValue": [Function],
459
+ "getAllByLabelText": [Function],
460
+ "getAllByPlaceholderText": [Function],
461
+ "getAllByRole": [Function],
462
+ "getAllByTestId": [Function],
463
+ "getAllByText": [Function],
464
+ "getAllByTitle": [Function],
465
+ "getByAltText": [Function],
466
+ "getByDisplayValue": [Function],
467
+ "getByLabelText": [Function],
468
+ "getByPlaceholderText": [Function],
469
+ "getByRole": [Function],
470
+ "getByTestId": [Function],
471
+ "getByText": [Function],
472
+ "getByTitle": [Function],
473
+ "queryAllByAltText": [Function],
474
+ "queryAllByDisplayValue": [Function],
475
+ "queryAllByLabelText": [Function],
476
+ "queryAllByPlaceholderText": [Function],
477
+ "queryAllByRole": [Function],
478
+ "queryAllByTestId": [Function],
479
+ "queryAllByText": [Function],
480
+ "queryAllByTitle": [Function],
481
+ "queryByAltText": [Function],
482
+ "queryByDisplayValue": [Function],
483
+ "queryByLabelText": [Function],
484
+ "queryByPlaceholderText": [Function],
485
+ "queryByRole": [Function],
486
+ "queryByTestId": [Function],
487
+ "queryByText": [Function],
488
+ "queryByTitle": [Function],
489
+ "rerender": [Function],
490
+ "unmount": [Function],
491
+ }
492
+ `;
@@ -17,6 +17,7 @@ export default {
17
17
  "template.field.cardinality.+": "One or more",
18
18
  "template.field.cardinality.1": "One",
19
19
  "template.field.cardinality.?": "One or none",
20
+ "template.field.changed": "This field has been changed",
20
21
  "template.field.depends": "Conditional visibility",
21
22
  "template.field.depends.on": "Source Field",
22
23
  "template.field.depends.to_be": "Source Value",
@@ -17,6 +17,7 @@ export default {
17
17
  "template.field.cardinality.+": "Uno o más",
18
18
  "template.field.cardinality.1": "Uno",
19
19
  "template.field.cardinality.?": "Uno o ninguno",
20
+ "template.field.changed": "Este campo ha sido cambiado",
20
21
  "template.field.depends": "Visibilidad condicional",
21
22
  "template.field.depends.on": "Campo origen",
22
23
  "template.field.depends.to_be": "Valor origen",