@truedat/qx 7.13.7 → 7.13.9

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 (74) hide show
  1. package/package.json +3 -3
  2. package/src/components/QxRoutes.js +8 -6
  3. package/src/components/common/ResourceSelector.js +25 -6
  4. package/src/components/common/TypeSelector.js +14 -9
  5. package/src/components/common/__tests__/__snapshots__/ResourceSelector.spec.js.snap +269 -241
  6. package/src/components/common/__tests__/__snapshots__/TypeSelector.spec.js.snap +198 -190
  7. package/src/components/common/expressions/Clauses.js +19 -11
  8. package/src/components/common/expressions/Condition.js +32 -31
  9. package/src/components/common/expressions/FieldSelector.js +30 -16
  10. package/src/components/common/expressions/FunctionSelector.js +38 -23
  11. package/src/components/common/expressions/ShapeSelector.js +6 -5
  12. package/src/components/common/expressions/__tests__/ShapeSelector.spec.js +1 -1
  13. package/src/components/common/expressions/__tests__/__snapshots__/Clauses.spec.js.snap +36 -12
  14. package/src/components/common/expressions/__tests__/__snapshots__/Condition.spec.js.snap +87 -75
  15. package/src/components/common/expressions/__tests__/__snapshots__/ConstantSelector.spec.js.snap +99 -97
  16. package/src/components/common/expressions/__tests__/__snapshots__/Expression.spec.js.snap +236 -216
  17. package/src/components/common/expressions/__tests__/__snapshots__/FunctionArgs.spec.js.snap +97 -89
  18. package/src/components/common/expressions/__tests__/__snapshots__/FunctionSelector.spec.js.snap +373 -345
  19. package/src/components/common/expressions/constantInputs/AnySelector.js +2 -1
  20. package/src/components/common/expressions/constantInputs/BooleanSelector.js +20 -15
  21. package/src/components/common/expressions/constantInputs/DefaultSelector.js +0 -1
  22. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/AnySelector.spec.js.snap +189 -182
  23. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/BooleanSelector.spec.js.snap +74 -66
  24. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/DefaultSelector.spec.js.snap +2 -4
  25. package/src/components/common/resourceSelectors/DataStructureSelector.js +5 -4
  26. package/src/components/common/resourceSelectors/DataViewSelector.js +4 -3
  27. package/src/components/common/resourceSelectors/ReferenceDatasetSelector.js +4 -3
  28. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataStructureSelector.spec.js.snap +65 -61
  29. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataViewSelector.spec.js.snap +38 -34
  30. package/src/components/common/resourceSelectors/__tests__/__snapshots__/ReferenceDatasetSelector.spec.js.snap +38 -34
  31. package/src/components/dataViews/BreadCrumb.js +20 -0
  32. package/src/components/dataViews/DataViewEditor.js +169 -178
  33. package/src/components/dataViews/DataViews.js +113 -135
  34. package/src/components/dataViews/__tests__/AdvancedDataViewEditor.spec.js +260 -0
  35. package/src/components/dataViews/__tests__/DataViewEditor.spec.js +173 -239
  36. package/src/components/dataViews/__tests__/DataViewSelect.spec.js +1 -1
  37. package/src/components/dataViews/__tests__/DataViews.spec.js +124 -51
  38. package/src/components/dataViews/__tests__/Queryable.spec.js +1 -1
  39. package/src/components/dataViews/__tests__/Queryables.spec.js +1 -1
  40. package/src/components/dataViews/__tests__/SimpleDataViewEditor.spec.js +164 -0
  41. package/src/components/dataViews/__tests__/__snapshots__/{DataViewEditor.spec.js.snap → AdvancedDataViewEditor.spec.js.snap} +230 -200
  42. package/src/components/dataViews/__tests__/__snapshots__/DataViews.spec.js.snap +141 -29
  43. package/src/components/dataViews/__tests__/__snapshots__/Queryable.spec.js.snap +184 -141
  44. package/src/components/dataViews/__tests__/__snapshots__/Queryables.spec.js.snap +126 -91
  45. package/src/components/dataViews/actions/CancelButton.js +33 -0
  46. package/src/components/dataViews/actions/DeleteButton.js +33 -0
  47. package/src/components/dataViews/advancedForm/AdvancedDataViewEditor.js +159 -0
  48. package/src/components/dataViews/{DataViewSelect.js → advancedForm/DataViewSelect.js} +2 -2
  49. package/src/components/dataViews/{Queryable.js → advancedForm/Queryable.js} +2 -2
  50. package/src/components/dataViews/queryableFunctions.js +7 -0
  51. package/src/components/dataViews/queryableProperties/GroupBy.js +23 -27
  52. package/src/components/dataViews/queryableProperties/Join.js +0 -3
  53. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/From.spec.js.snap +30 -26
  54. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/GroupBy.spec.js.snap +130 -102
  55. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Join.spec.js.snap +42 -31
  56. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Select.spec.js.snap +81 -69
  57. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/SelectField.spec.js.snap +62 -54
  58. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Where.spec.js.snap +12 -4
  59. package/src/components/dataViews/simpleForm/AggregationForm.js +179 -0
  60. package/src/components/dataViews/simpleForm/DatasetForm.js +199 -0
  61. package/src/components/dataViews/simpleForm/FormQueryable.js +114 -0
  62. package/src/components/dataViews/simpleForm/InformationForm.js +107 -0
  63. package/src/components/dataViews/simpleForm/SelectionForm.js +50 -0
  64. package/src/components/dataViews/simpleForm/SimpleDataViewEditor.js +265 -0
  65. package/src/components/functions/__tests__/__snapshots__/FunctionEditor.spec.js.snap +663 -631
  66. package/src/components/functions/__tests__/__snapshots__/FunctionParams.spec.js.snap +113 -109
  67. package/src/components/qualityControls/__tests__/__snapshots__/ControlProperties.spec.js.snap +92 -76
  68. package/src/components/qualityControls/__tests__/__snapshots__/EditQualityControl.spec.js.snap +108 -80
  69. package/src/components/qualityControls/__tests__/__snapshots__/NewDraftQualityControl.spec.js.snap +108 -80
  70. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlEditor.spec.js.snap +108 -80
  71. package/src/components/qualityControls/controlProperties/__tests__/__snapshots__/Count.spec.js.snap +40 -36
  72. package/src/components/qualityControls/controlProperties/__tests__/__snapshots__/Ratio.spec.js.snap +92 -76
  73. package/src/hooks/useDataViews.js +7 -0
  74. /package/src/components/dataViews/{Queryables.js → advancedForm/Queryables.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/qx",
3
- "version": "7.13.7",
3
+ "version": "7.13.9",
4
4
  "description": "Truedat Web Quality Experience package",
5
5
  "sideEffects": false,
6
6
  "module": "src/index.js",
@@ -53,7 +53,7 @@
53
53
  "@testing-library/jest-dom": "^6.6.3",
54
54
  "@testing-library/react": "^16.3.0",
55
55
  "@testing-library/user-event": "^14.6.1",
56
- "@truedat/test": "7.13.7",
56
+ "@truedat/test": "7.13.9",
57
57
  "identity-obj-proxy": "^3.0.0",
58
58
  "jest": "^29.7.0",
59
59
  "redux-saga-test-plan": "^4.0.6"
@@ -86,5 +86,5 @@
86
86
  "semantic-ui-react": "^3.0.0-beta.2",
87
87
  "swr": "^2.3.3"
88
88
  },
89
- "gitHead": "7437522470d6e6eb11f9f5b472b822b23949cb74"
89
+ "gitHead": "72faa643a2dab00d15490cd15abb85d89364e375"
90
90
  }
@@ -9,22 +9,24 @@ import {
9
9
  SCORE_GROUPS,
10
10
  SCORES,
11
11
  } from "@truedat/core/routes";
12
+ import DataViewEditor from "./dataViews/DataViewEditor";
12
13
  import DataViews from "./dataViews/DataViews";
13
14
  import Functions from "./functions/Functions";
14
15
  import QualityControlRoutes from "./qualityControls/QualityControlRoutes";
15
16
  import ScoreRoutes from "./scores/ScoreRoutes";
16
17
  import ScoreGroupsRoutes from "./scores/ScoreGroupsRoutes";
18
+
17
19
  export default function QxRoutes() {
18
20
  return (
19
21
  <Routes>
20
22
  <Route
21
23
  path={DATA_VIEWS}
22
- element={
23
- <ProtectedRoute authorization="quality_control">
24
- <DataViews />
25
- </ProtectedRoute>
26
- }
27
- />
24
+ element={<ProtectedRoute authorization="quality_control" />}
25
+ >
26
+ <Route index element={<DataViews />} />
27
+ <Route path="new" element={<DataViewEditor />} />
28
+ <Route path=":id" element={<DataViewEditor />} />
29
+ </Route>
28
30
  <Route
29
31
  path={FUNCTIONS}
30
32
  element={
@@ -3,7 +3,7 @@ import PropTypes from "prop-types";
3
3
  import { use } from "react";
4
4
  import { useIntl } from "react-intl";
5
5
  import { Controller, useFormContext } from "react-hook-form";
6
- import { Form, Dropdown } from "semantic-ui-react";
6
+ import { Form } from "semantic-ui-react";
7
7
  import QxContext from "@truedat/qx/components/QxContext";
8
8
  import {
9
9
  DataViewSelector,
@@ -43,14 +43,20 @@ export default function ResourceSelector({ required, labelId }) {
43
43
  <Controller
44
44
  name={`${field}.type`}
45
45
  control={control}
46
- rules={{ required }}
47
- render={({ field: { onBlur, onChange } }) => (
46
+ rules={{
47
+ required: {
48
+ value: required,
49
+ message: formatMessage({ id: "quality_control.form.required" }),
50
+ },
51
+ }}
52
+ render={({ field: { onBlur, onChange }, fieldState: { error } }) => (
48
53
  <Form.Field required={required}>
49
54
  <label>
50
55
  {formatMessage({ id: labelId || "queryables.form.resource" })}
51
56
  </label>
52
- <Dropdown
57
+ <Form.Dropdown
53
58
  selection
59
+ error={error?.message}
54
60
  placeholder={formatMessage({ id: "queryables.resource.type" })}
55
61
  onBlur={onBlur}
56
62
  options={resourceTypeOptions}
@@ -68,15 +74,28 @@ export default function ResourceSelector({ required, labelId }) {
68
74
  <Controller
69
75
  name={`${field}.id`}
70
76
  control={control}
71
- rules={{ required }}
72
- render={({ field: { onBlur, onChange, value } }) => {
77
+ rules={{
78
+ required: {
79
+ value: required,
80
+ message: formatMessage({ id: "quality_control.form.required" }),
81
+ },
82
+ validate: (v) =>
83
+ (!_.isNil(v) && _.isEmpty(v)) ||
84
+ formatMessage({ id: "quality_control.form.required" }),
85
+ }}
86
+ render={({
87
+ field: { onBlur, onChange, value },
88
+ fieldState: { error },
89
+ }) => {
73
90
  const ResourceSelectorForType = resourceSelectorForType[type];
74
91
  return (
75
92
  <ResourceSelectorForType
93
+ error={error?.message}
76
94
  onBlur={onBlur}
77
95
  onChange={(value) => {
78
96
  onChange(value?.id);
79
97
  setValue(`${field}.embedded`, value);
98
+ onBlur && onBlur();
80
99
  }}
81
100
  value={value}
82
101
  />
@@ -2,12 +2,14 @@ import _ from "lodash/fp";
2
2
  import { useIntl } from "react-intl";
3
3
  import { Dropdown } from "semantic-ui-react";
4
4
  import { typeToIcon, types } from "@truedat/qx/types";
5
+ import { Form, Label } from "semantic-ui-react"
5
6
 
6
7
  export default function TypeSelector({
7
8
  value,
8
9
  onChange,
9
10
  onBlur,
10
11
  withoutTypeAny,
12
+ error,
11
13
  name = "type",
12
14
  }) {
13
15
  const { formatMessage } = useIntl();
@@ -21,14 +23,17 @@ export default function TypeSelector({
21
23
  }))
22
24
  )(types);
23
25
  return (
24
- <Dropdown
25
- button
26
- basic
27
- onBlur={onBlur}
28
- name={name}
29
- options={options}
30
- value={value}
31
- onChange={onChange}
32
- />
26
+ <Form.Field error={!!error?.message}>
27
+ <Dropdown
28
+ button
29
+ fluid
30
+ onBlur={onBlur}
31
+ name={name}
32
+ options={options}
33
+ value={value}
34
+ onChange={onChange}
35
+ />
36
+ {error?.message && <Label basic prompt pointing>{error?.message}</Label>}
37
+ </Form.Field>
33
38
  );
34
39
  }