@truedat/df 7.5.9 → 7.5.11

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 (213) hide show
  1. package/package.json +43 -67
  2. package/src/components/DynamicFieldValue.js +0 -1
  3. package/src/components/DynamicForm.js +5 -4
  4. package/src/components/DynamicFormViewer.js +0 -1
  5. package/src/components/DynamicFormWithTranslations.js +3 -3
  6. package/src/components/EditableDynamicFieldValue.js +1 -2
  7. package/src/components/FieldGroupDetail.js +0 -1
  8. package/src/components/FieldGroupSegment.js +17 -29
  9. package/src/components/FieldGroupWithTranslations.js +19 -38
  10. package/src/components/FieldViewerValue.js +4 -7
  11. package/src/components/OriginLabel.js +0 -1
  12. package/src/components/SelectDynamicFormWithTranslations.js +4 -6
  13. package/src/components/SelectableDynamicForm.js +5 -11
  14. package/src/components/__tests__/DynamicFieldValue.spec.js +0 -1
  15. package/src/components/__tests__/DynamicForm.spec.js +25 -23
  16. package/src/components/__tests__/EditableDynamicFieldValue.spec.js +0 -1
  17. package/src/components/__tests__/FieldGroupDetail.spec.js +0 -1
  18. package/src/components/__tests__/FieldViewerValue.spec.js +1 -6
  19. package/src/components/__tests__/SelectableDynamicForm.spec.js +102 -46
  20. package/src/components/__tests__/__snapshots__/DynamicFieldValue.spec.js.snap +2 -2
  21. package/src/components/__tests__/__snapshots__/DynamicForm.spec.js.snap +94 -81
  22. package/src/components/__tests__/__snapshots__/FieldGroupDetail.spec.js.snap +2 -2
  23. package/src/components/__tests__/__snapshots__/FieldViewerValue.spec.js.snap +1 -7
  24. package/src/components/__tests__/__snapshots__/SelectableDynamicForm.spec.js.snap +39 -39
  25. package/src/components/hierarchies/Hierarchies.js +2 -4
  26. package/src/components/hierarchies/HierarchiesView.js +1 -2
  27. package/src/components/hierarchies/HierarchyCrumbs.js +1 -2
  28. package/src/components/hierarchies/HierarchyRoutes.js +44 -39
  29. package/src/components/hierarchies/HierarchyView.js +4 -7
  30. package/src/components/hierarchies/__tests__/Hierarchies.spec.js +2 -3
  31. package/src/components/hierarchies/__tests__/HierarchiesView.spec.js +3 -7
  32. package/src/components/hierarchies/__tests__/HierarchyCrumbs.spec.js +0 -1
  33. package/src/components/hierarchies/__tests__/HierarchyRoutes.spec.js +79 -0
  34. package/src/components/hierarchies/__tests__/HierarchyView.spec.js +2 -10
  35. package/src/components/hierarchies/__tests__/__snapshots__/Hierarchies.spec.js.snap +1 -0
  36. package/src/components/hierarchies/__tests__/__snapshots__/HierarchiesView.spec.js.snap +7 -5
  37. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyCrumbs.spec.js.snap +4 -2
  38. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyRoutes.spec.js.snap +60 -0
  39. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyView.spec.js.snap +8 -6
  40. package/src/components/widgets/CheckboxField.js +0 -1
  41. package/src/components/widgets/ColorPickerField.js +2 -3
  42. package/src/components/widgets/DateField.js +0 -1
  43. package/src/components/widgets/DateTimeField.js +0 -1
  44. package/src/components/widgets/DomainDropdown.js +1 -1
  45. package/src/components/widgets/DomainPreview.js +1 -2
  46. package/src/components/widgets/DropdownDataLoader.js +3 -3
  47. package/src/components/widgets/DropdownField.js +5 -4
  48. package/src/components/widgets/DynamicField.js +0 -5
  49. package/src/components/widgets/EnrichedTextField.js +0 -1
  50. package/src/components/widgets/HierarchyDropdown.js +1 -1
  51. package/src/components/widgets/HierarchyPreview.js +0 -1
  52. package/src/components/widgets/IdentifierField.js +0 -1
  53. package/src/components/widgets/ImageField.js +1 -1
  54. package/src/components/widgets/ImagePreview.js +0 -1
  55. package/src/components/widgets/NumberField.js +6 -7
  56. package/src/components/widgets/PairListField.js +5 -6
  57. package/src/components/widgets/PasswordField.js +1 -2
  58. package/src/components/widgets/RadioField.js +0 -1
  59. package/src/components/widgets/StandardDropdown.js +0 -1
  60. package/src/components/widgets/StringField.js +0 -1
  61. package/src/components/widgets/SystemPreview.js +2 -3
  62. package/src/components/widgets/TableField.js +5 -5
  63. package/src/components/widgets/TextField.js +1 -2
  64. package/src/components/widgets/__tests__/CheckboxField.spec.js +33 -23
  65. package/src/components/widgets/__tests__/ColorPickerField.spec.js +5 -12
  66. package/src/components/widgets/__tests__/DateField.spec.js +5 -5
  67. package/src/components/widgets/__tests__/DateTimeField.spec.js +5 -5
  68. package/src/components/widgets/__tests__/DomainPreview.spec.js +12 -14
  69. package/src/components/widgets/__tests__/DropdownDataLoader.spec.js +5 -5
  70. package/src/components/widgets/__tests__/DropdownField.spec.js +18 -29
  71. package/src/components/widgets/__tests__/DynamicField.spec.js +0 -1
  72. package/src/components/widgets/__tests__/HierarchyDropdown.spec.js +4 -5
  73. package/src/components/widgets/__tests__/HierarchyPreview.spec.js +0 -1
  74. package/src/components/widgets/__tests__/ImageField.spec.js +5 -10
  75. package/src/components/widgets/__tests__/NumberField.spec.js +23 -5
  76. package/src/components/widgets/__tests__/PairListField.spec.js +69 -59
  77. package/src/components/widgets/__tests__/PasswordField.spec.js +3 -4
  78. package/src/components/widgets/__tests__/RadioField.spec.js +5 -5
  79. package/src/components/widgets/__tests__/StandardDropdown.spec.js +45 -46
  80. package/src/components/widgets/__tests__/StringField.spec.js +10 -13
  81. package/src/components/widgets/__tests__/SystemPreview.spec.js +13 -15
  82. package/src/components/widgets/__tests__/TableField.spec.js +32 -32
  83. package/src/components/widgets/__tests__/TextField.spec.js +5 -5
  84. package/src/components/widgets/__tests__/__snapshots__/CheckboxField.spec.js.snap +58 -29
  85. package/src/components/widgets/__tests__/__snapshots__/ColorPickerField.spec.js.snap +221 -36
  86. package/src/components/widgets/__tests__/__snapshots__/DateField.spec.js.snap +21 -16
  87. package/src/components/widgets/__tests__/__snapshots__/DateTimeField.spec.js.snap +21 -20
  88. package/src/components/widgets/__tests__/__snapshots__/DomainPreview.spec.js.snap +26 -21
  89. package/src/components/widgets/__tests__/__snapshots__/DropdownDataLoader.spec.js.snap +1 -1
  90. package/src/components/widgets/__tests__/__snapshots__/DropdownField.spec.js.snap +93 -43
  91. package/src/components/widgets/__tests__/__snapshots__/DynamicField.spec.js.snap +2 -14
  92. package/src/components/widgets/__tests__/__snapshots__/ImageField.spec.js.snap +16 -28
  93. package/src/components/widgets/__tests__/__snapshots__/NumberField.spec.js.snap +11 -9
  94. package/src/components/widgets/__tests__/__snapshots__/PairListField.spec.js.snap +53 -39
  95. package/src/components/widgets/__tests__/__snapshots__/PasswordField.spec.js.snap +15 -8
  96. package/src/components/widgets/__tests__/__snapshots__/RadioField.spec.js.snap +41 -22
  97. package/src/components/widgets/__tests__/__snapshots__/StandardDropdown.spec.js.snap +78 -31
  98. package/src/components/widgets/__tests__/__snapshots__/StringField.spec.js.snap +78 -38
  99. package/src/components/widgets/__tests__/__snapshots__/SystemPreview.spec.js.snap +24 -21
  100. package/src/components/widgets/__tests__/__snapshots__/TableField.spec.js.snap +138 -174
  101. package/src/components/widgets/__tests__/__snapshots__/TextField.spec.js.snap +12 -7
  102. package/src/reducers/__tests__/dfMessage.spec.js +14 -18
  103. package/src/reducers/dfMessage.js +8 -7
  104. package/src/selectors/index.js +0 -1
  105. package/src/templates/components/NewTemplate.js +0 -1
  106. package/src/templates/components/Template.js +10 -3
  107. package/src/templates/components/TemplateCard.js +3 -4
  108. package/src/templates/components/TemplateCrumbs.js +2 -3
  109. package/src/templates/components/TemplateFilters.js +0 -1
  110. package/src/templates/components/TemplateLoader.js +25 -101
  111. package/src/templates/components/TemplateRoutes.js +29 -45
  112. package/src/templates/components/Templates.js +1 -5
  113. package/src/templates/components/TemplatesContext.js +3 -7
  114. package/src/templates/components/TemplatesTable.js +1 -2
  115. package/src/templates/components/__tests__/NewTemplate.spec.js +5 -10
  116. package/src/templates/components/__tests__/Template.spec.js +0 -1
  117. package/src/templates/components/__tests__/TemplateLoader.spec.js +71 -109
  118. package/src/templates/components/__tests__/TemplateRoutes.spec.js +63 -0
  119. package/src/templates/components/__tests__/TemplatesTable.spec.js +15 -9
  120. package/src/templates/components/__tests__/__snapshots__/NewTemplate.spec.js.snap +335 -22
  121. package/src/templates/components/__tests__/__snapshots__/Template.spec.js.snap +49 -48
  122. package/src/templates/components/__tests__/__snapshots__/TemplateLoader.spec.js.snap +7 -1
  123. package/src/templates/components/__tests__/__snapshots__/TemplateRoutes.spec.js.snap +38 -0
  124. package/src/templates/components/__tests__/__snapshots__/TemplatesTable.spec.js.snap +94 -1
  125. package/src/templates/components/index.js +1 -2
  126. package/src/templates/components/templateForm/ActiveGroupForm.js +1 -4
  127. package/src/templates/components/templateForm/ConditionalFieldForm.js +0 -1
  128. package/src/templates/components/templateForm/DefaultValue.js +0 -1
  129. package/src/templates/components/templateForm/DependentDomain.js +0 -1
  130. package/src/templates/components/templateForm/DependentFormField.js +0 -1
  131. package/src/templates/components/templateForm/FieldForm.js +5 -5
  132. package/src/templates/components/templateForm/GroupsList.js +0 -1
  133. package/src/templates/components/templateForm/HierarchiesList.js +1 -2
  134. package/src/templates/components/templateForm/MandatoryConditional.js +0 -1
  135. package/src/templates/components/templateForm/SwitchListForm.js +2 -2
  136. package/src/templates/components/templateForm/SwitchSegment.js +0 -1
  137. package/src/templates/components/templateForm/TemplateForm.js +1 -1
  138. package/src/templates/components/templateForm/TemplateFormActions.js +3 -4
  139. package/src/templates/components/templateForm/ValuesField.js +1 -3
  140. package/src/templates/components/templateForm/ValuesListForm.js +3 -3
  141. package/src/templates/components/templateForm/ValuesSelector.js +0 -1
  142. package/src/templates/components/templateForm/__tests__/ActiveGroupForm.spec.js +8 -13
  143. package/src/templates/components/templateForm/__tests__/DefaultValue.spec.js +198 -113
  144. package/src/templates/components/templateForm/__tests__/DependentDomain.spec.js +0 -1
  145. package/src/templates/components/templateForm/__tests__/DependentFormField.spec.js +0 -1
  146. package/src/templates/components/templateForm/__tests__/FieldForm.spec.js +106 -72
  147. package/src/templates/components/templateForm/__tests__/GroupsList.spec.js +7 -12
  148. package/src/templates/components/templateForm/__tests__/MandatoryConditional.spec.js +0 -1
  149. package/src/templates/components/templateForm/__tests__/SwitchListForm.spec.js +71 -50
  150. package/src/templates/components/templateForm/__tests__/SwitchSegment.spec.js +37 -62
  151. package/src/templates/components/templateForm/__tests__/TemplateForm.spec.js +0 -1
  152. package/src/templates/components/templateForm/__tests__/TemplateFormActions.spec.js +19 -15
  153. package/src/templates/components/templateForm/__tests__/ValuesField.spec.js +84 -62
  154. package/src/templates/components/templateForm/__tests__/ValuesListForm.spec.js +108 -144
  155. package/src/templates/components/templateForm/__tests__/ValuesSelector.spec.js +36 -36
  156. package/src/templates/components/templateForm/__tests__/__snapshots__/ActiveGroupForm.spec.js.snap +654 -86
  157. package/src/templates/components/templateForm/__tests__/__snapshots__/DefaultValue.spec.js.snap +45 -23
  158. package/src/templates/components/templateForm/__tests__/__snapshots__/FieldForm.spec.js.snap +1700 -1025
  159. package/src/templates/components/templateForm/__tests__/__snapshots__/GroupsList.spec.js.snap +44 -39
  160. package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchListForm.spec.js.snap +225 -60
  161. package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchSegment.spec.js.snap +1 -1
  162. package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateForm.spec.js.snap +89 -92
  163. package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateFormActions.spec.js.snap +66 -100
  164. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesField.spec.js.snap +542 -231
  165. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesListForm.spec.js.snap +264 -268
  166. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesSelector.spec.js.snap +146 -11
  167. package/src/templates/reducers/__tests__/allTemplates.spec.js +1 -1
  168. package/src/templates/reducers/__tests__/template.spec.js +3 -2
  169. package/src/templates/reducers/__tests__/templateLoading.spec.js +2 -2
  170. package/src/templates/reducers/__tests__/templates.spec.js +1 -1
  171. package/src/templates/reducers/__tests__/templatesLoading.spec.js +1 -1
  172. package/src/templates/reducers/allTemplates.js +1 -2
  173. package/src/templates/reducers/template.js +2 -1
  174. package/src/templates/reducers/templateRedirect.js +1 -1
  175. package/src/templates/reducers/templates.js +1 -1
  176. package/src/templates/reducers/templatesLoading.js +1 -1
  177. package/src/templates/routines.js +0 -2
  178. package/src/templates/sagas/__tests__/deleteTemplate.spec.js +2 -2
  179. package/src/templates/sagas/__tests__/fetchTemplates.spec.js +3 -6
  180. package/src/templates/sagas/__tests__/updateTemplate.spec.js +4 -4
  181. package/src/templates/sagas/deleteTemplate.js +1 -1
  182. package/src/templates/sagas/fetchTemplate.js +1 -1
  183. package/src/templates/sagas/fetchTemplates.js +1 -1
  184. package/src/templates/sagas/updateTemplate.js +1 -1
  185. package/src/templates/utils/filterSwitches.js +2 -2
  186. package/src/templates/utils/filterValues.js +2 -2
  187. package/src/api/hierarchies.js +0 -4
  188. package/src/components/FieldGroupCopy.js +0 -108
  189. package/src/components/FieldGroupSubSegment/FieldGroupSubSegment.js +0 -181
  190. package/src/components/FieldGroupSubSegment/__tests__/FieldGroupSubSegment.spec.js +0 -221
  191. package/src/components/FieldGroupSubSegment/__tests__/__snapshots__/FieldGroupSubSegment.spec.js.snap +0 -230
  192. package/src/components/FieldGroupSubSegment/constants.js +0 -68
  193. package/src/components/FieldGroupSubSegment/copyValidations.js +0 -75
  194. package/src/components/FieldGroupSubSegment/handleCopyModule.js +0 -186
  195. package/src/components/__tests__/FieldGroupCopy.spec.js +0 -14
  196. package/src/components/__tests__/__snapshots__/FieldGroupCopy.spec.js.snap +0 -307
  197. package/src/components/widgets/CopyField/CopyField.js +0 -270
  198. package/src/components/widgets/CopyField/CopyFieldCell.js +0 -138
  199. package/src/components/widgets/CopyField/CopyFieldColumn.js +0 -53
  200. package/src/components/widgets/CopyField/CopyFieldSelectableCell.js +0 -71
  201. package/src/components/widgets/CopyField/CustomStyles.js +0 -91
  202. package/src/components/widgets/CopyField/__tests__/CopyField.spec.js +0 -82
  203. package/src/components/widgets/CopyField/__tests__/CopyFieldCell.spec.js +0 -67
  204. package/src/components/widgets/CopyField/__tests__/CopyFieldColumn.spec.js +0 -33
  205. package/src/components/widgets/CopyField/__tests__/CopyFieldSelectableCell.spec.js +0 -49
  206. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyField.spec.js.snap +0 -279
  207. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldCell.spec.js.snap +0 -67
  208. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldColumn.spec.js.snap +0 -42
  209. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldSelectableCell.spec.js.snap +0 -60
  210. package/src/hooks/useHierarchies.js +0 -112
  211. package/src/selectors/subscopedTemplates.js +0 -16
  212. package/src/templates/components/TemplatesLoader.js +0 -24
  213. package/src/templates/components/__tests__/TemplatesLoader.spec.js +0 -29
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@truedat/df",
3
- "version": "7.5.9",
3
+ "version": "7.5.11",
4
4
  "description": "Truedat Web Data Quality Module",
5
5
  "sideEffects": false,
6
- "jsnext:main": "src/index.js",
7
6
  "module": "src/index.js",
8
7
  "files": [
9
- "src"
8
+ "src",
9
+ "index.js"
10
10
  ],
11
11
  "author": "Bluetab Solutions",
12
12
  "license": "GPL-3.0",
@@ -15,48 +15,15 @@
15
15
  },
16
16
  "scripts": {
17
17
  "clean": "rimraf yarn-error.log",
18
- "debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
19
18
  "test": "TZ=UTC jest --coverage",
20
- "test:watch": "TZ=UTC jest --watch",
21
19
  "eslint": "eslint src/**",
22
20
  "eslint:fix": "eslint --fix src/**"
23
21
  },
24
- "devDependencies": {
25
- "@babel/cli": "^7.19.3",
26
- "@babel/core": "^7.20.5",
27
- "@babel/plugin-proposal-class-properties": "^7.18.6",
28
- "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
29
- "@babel/plugin-proposal-optional-chaining": "^7.18.9",
30
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
31
- "@babel/plugin-transform-modules-commonjs": "^7.19.6",
32
- "@babel/preset-env": "^7.20.2",
33
- "@babel/preset-react": "^7.18.6",
34
- "@testing-library/jest-dom": "^5.16.5",
35
- "@testing-library/react": "^12.0.0",
36
- "@testing-library/user-event": "^13.2.1",
37
- "@truedat/test": "7.5.9",
38
- "babel-jest": "^28.1.0",
39
- "babel-plugin-dynamic-import-node": "^2.3.3",
40
- "babel-plugin-lodash": "^3.3.4",
41
- "babel-plugin-react-intl": "^5.1.18",
42
- "babel-plugin-transform-semantic-ui-react-imports": "^1.4.1",
43
- "enzyme": "^3.11.0",
44
- "enzyme-to-json": "^3.6.2",
45
- "identity-obj-proxy": "^3.0.0",
46
- "jest": "^29.0.0",
47
- "jest-environment-jsdom": "^29.0.0",
48
- "react": "^16.14.0",
49
- "react-dom": "^16.14.0",
50
- "redux-saga-test-plan": "^4.0.4",
51
- "rimraf": "^3.0.2",
52
- "semantic-ui-react": "^2.1.4"
53
- },
54
22
  "jest": {
55
23
  "maxWorkers": "50%",
56
24
  "testTimeout": 10000,
57
25
  "moduleDirectories": [
58
- "<rootDir>/src",
59
- "../../node_modules"
26
+ "<rootDir>/src"
60
27
  ],
61
28
  "setupFilesAfterEnv": [
62
29
  "@truedat/test/setup"
@@ -66,13 +33,7 @@
66
33
  "^@truedat/([^/]+)$": "<rootDir>/../$1/src/index",
67
34
  "^@truedat/([^/]+)/(.*)$": "<rootDir>/../$1/src/$2"
68
35
  },
69
- "snapshotSerializers": [
70
- "enzyme-to-json/serializer"
71
- ],
72
36
  "testEnvironment": "jsdom",
73
- "testPathIgnorePatterns": [
74
- "<rootDir>/node_modules/"
75
- ],
76
37
  "transform": {
77
38
  "\\.js$": [
78
39
  "babel-jest",
@@ -80,34 +41,49 @@
80
41
  "rootMode": "upward"
81
42
  }
82
43
  ]
83
- },
84
- "transformIgnorePatterns": [
85
- "/node_modules/(?!@truedat).*"
86
- ]
44
+ }
45
+ },
46
+ "devDependencies": {
47
+ "@testing-library/dom": "^10.4.0",
48
+ "@testing-library/jest-dom": "^6.6.3",
49
+ "@testing-library/react": "^16.2.0",
50
+ "@testing-library/user-event": "^14.6.1",
51
+ "@truedat/test": "7.5.11",
52
+ "identity-obj-proxy": "^3.0.0",
53
+ "jest": "^29.7.0",
54
+ "redux-saga-test-plan": "^4.0.6"
87
55
  },
88
56
  "dependencies": {
89
- "@apollo/client": "^3.7.1",
90
- "@truedat/auth": "7.5.9",
91
- "@truedat/core": "7.5.9",
92
- "decode-uri-component": "^0.2.2",
93
- "path-to-regexp": "^1.7.0",
57
+ "@apollo/client": "^3.13.5",
58
+ "@truedat/core": "7.5.11",
59
+ "axios": "^1.8.4",
60
+ "graphql": "^16.10.0",
61
+ "is-hotkey": "^0.2.0",
62
+ "is-url": "^1.2.4",
63
+ "lodash": "^4.17.21",
64
+ "match-sorter": "^8.0.0",
65
+ "moment": "^2.30.1",
66
+ "path-to-regexp": "^8.2.0",
94
67
  "prop-types": "^15.8.1",
95
68
  "query-string": "^7.1.2",
96
- "react-color": "^2.17.3",
97
- "react-intl": "^5.20.10",
98
- "react-redux": "^7.2.4",
99
- "react-router-dom": "^5.2.0",
100
- "react-sortable-hoc": "^1.11.0",
101
- "redux": "^4.1.1",
102
- "redux-saga": "^1.2.1",
69
+ "react": "^19.0.0",
70
+ "react-color": "^2.19.3",
71
+ "react-csv": "^2.2.2",
72
+ "react-dom": "^19.0.0",
73
+ "react-dropzone": "^14.3.8",
74
+ "react-hook-form": "^7.54.2",
75
+ "react-intl": "^7.1.10",
76
+ "react-moment": "^1.1.3",
77
+ "react-redux": "^9.2.0",
78
+ "react-router": "^7.4.0",
79
+ "react-sortable-hoc": "^2.0.0",
80
+ "redux": "^5.0.1",
81
+ "redux-saga": "^1.3.0",
103
82
  "redux-saga-routines": "^3.2.3",
104
- "reselect": "^4.1.7",
105
- "semantic-ui-react": "^2.1.4"
106
- },
107
- "peerDependencies": {
108
- "react": ">= 16.8.6 < 17",
109
- "react-dom": ">= 16.8.6 < 17",
110
- "semantic-ui-react": ">= 2.0.3 < 2.2"
83
+ "reselect": "^5.1.1",
84
+ "semantic-ui-calendar-react": "^0.15.3",
85
+ "semantic-ui-react": "^3.0.0-beta.2",
86
+ "swr": "^2.3.3"
111
87
  },
112
- "gitHead": "03770e3241daa955de2e6e40fdaea91e3d147860"
88
+ "gitHead": "cbb92d5206752fe2add4195432b0401da17a0f23"
113
89
  }
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { FormattedMessage, useIntl } from "react-intl";
5
4
  import { Icon, List, Container } from "semantic-ui-react";
@@ -1,5 +1,5 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useEffect } from "react";
2
+ import { useEffect } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { useIntl } from "react-intl";
5
5
  import { connect } from "react-redux";
@@ -20,6 +20,7 @@ export const DynamicForm = ({
20
20
  }) => {
21
21
  const { formatMessage } = useIntl();
22
22
  const domainId = selectedDomain?.id;
23
+
23
24
  useEffect(() => {
24
25
  if (!_.isNil(domainId) && !_.isEmpty(template)) {
25
26
  onChange(applyTemplate(content, domainId));
@@ -96,11 +97,11 @@ const makeMapStateToProps = () => {
96
97
  (!_.isEmpty(state.selectedDomain)
97
98
  ? state.selectedDomain
98
99
  : _.isNil(_.head(state.selectedDomains))
99
- ? null
100
- : { id: _.head(state.selectedDomains) }),
100
+ ? null
101
+ : { id: _.head(state.selectedDomains) }),
101
102
  template: getTemplate(state, props),
102
103
  });
103
104
  return mapStateToProps;
104
105
  };
105
106
 
106
- export default connect(makeMapStateToProps)(DynamicForm);
107
+ export default connect(makeMapStateToProps())(DynamicForm);
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { useIntl } from "react-intl";
5
4
  import { Message, Segment } from "semantic-ui-react";
@@ -1,5 +1,5 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useEffect } from "react";
2
+ import { useEffect } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { useIntl } from "react-intl";
5
5
  import { connect } from "react-redux";
@@ -105,8 +105,8 @@ const makeMapStateToProps = () => {
105
105
  (!_.isEmpty(state.selectedDomain)
106
106
  ? state.selectedDomain
107
107
  : _.isNil(_.head(state.selectedDomains))
108
- ? null
109
- : { id: _.head(state.selectedDomains) }),
108
+ ? null
109
+ : { id: _.head(state.selectedDomains) }),
110
110
  template: getTemplate(state, props),
111
111
  });
112
112
  return mapStateToProps;
@@ -1,5 +1,5 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useState, useEffect } from "react";
2
+ import { useState, useEffect } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { FormattedMessage } from "react-intl";
5
5
  import { Icon, List, Button, Container } from "semantic-ui-react";
@@ -70,7 +70,6 @@ export const EditableDynamicFieldValue = (props) => {
70
70
  <OriginLabel origin={origin} />
71
71
  </List.Header>
72
72
  )}
73
-
74
73
  <List.Description>
75
74
  {editingField === name ? (
76
75
  <>
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { Divider, List, Segment } from "semantic-ui-react";
5
4
  import DynamicFieldValue from "./DynamicFieldValue";
@@ -1,9 +1,7 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { Segment, Header } from "semantic-ui-react";
5
4
  import DynamicField from "./widgets/DynamicField";
6
- import FieldGroupSubSegment from "./FieldGroupSubSegment/FieldGroupSubSegment";
7
5
 
8
6
  export const FieldGroupSegment = ({
9
7
  scope,
@@ -16,33 +14,23 @@ export const FieldGroupSegment = ({
16
14
  <Segment>
17
15
  {name && name !== "undefined" ? <Header as="h4" content={name} /> : null}
18
16
  {fields &&
19
- fields.map((field, i) =>
20
- field.widget === "copy" ? (
21
- <FieldGroupSubSegment
22
- key={i}
23
- onFieldChange={onFieldChange}
24
- name={field.name}
25
- fields={field.value.value}
26
- prevFields={fields}
27
- />
28
- ) : (
29
- <DynamicField
30
- scope={scope}
31
- field={{
32
- ...field,
33
- disabled: _.includes(field.name)(noTranslatableFields),
34
- }}
35
- fields={fields}
36
- isModification={isModification}
37
- key={i}
38
- onChange={
39
- _.includes(field.name)(noTranslatableFields)
40
- ? () => false
41
- : onFieldChange
42
- }
43
- />
44
- )
45
- )}
17
+ fields.map((field, i) => (
18
+ <DynamicField
19
+ scope={scope}
20
+ field={{
21
+ ...field,
22
+ disabled: _.includes(field.name)(noTranslatableFields),
23
+ }}
24
+ fields={fields}
25
+ isModification={isModification}
26
+ key={i}
27
+ onChange={
28
+ _.includes(field.name)(noTranslatableFields)
29
+ ? () => false
30
+ : onFieldChange
31
+ }
32
+ />
33
+ ))}
46
34
  </Segment>
47
35
  );
48
36
 
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import PropTypes from "prop-types";
3
2
  import { Segment, Header, Grid, Tab } from "semantic-ui-react";
4
3
  import { useIntl } from "react-intl";
@@ -9,7 +8,6 @@ import {
9
8
  isTranslatableField,
10
9
  } from "@truedat/core/services/i18nContent";
11
10
  import DynamicField from "./widgets/DynamicField";
12
- import FieldGroupSubSegment from "./FieldGroupSubSegment/FieldGroupSubSegment";
13
11
 
14
12
  export const FieldGroupWithTranslations = ({
15
13
  scope,
@@ -48,8 +46,8 @@ export const FieldGroupWithTranslations = ({
48
46
  langField.value === ""
49
47
  ? ""
50
48
  : !langField.value?.value
51
- ? { value: "", origin: "default" }
52
- : langField.value,
49
+ ? { value: "", origin: "default" }
50
+ : langField.value,
53
51
  };
54
52
  };
55
53
 
@@ -93,14 +91,7 @@ export const FieldGroupWithTranslations = ({
93
91
  fieldsByLang[defaultLang].map((field, i) => (
94
92
  <Grid.Row columns={2} key={i}>
95
93
  <Grid.Column>
96
- {field.widget === "copy" ? (
97
- <FieldGroupSubSegment
98
- onFieldChange={onFieldChange}
99
- name={field.name}
100
- fields={field.value.value}
101
- prevFields={fieldsByLang[defaultLang]}
102
- />
103
- ) : (
94
+ {
104
95
  <I18nProvider lang={defaultLang}>
105
96
  <DynamicField
106
97
  scope={scope}
@@ -121,36 +112,26 @@ export const FieldGroupWithTranslations = ({
121
112
  }
122
113
  />
123
114
  </I18nProvider>
124
- )}
115
+ }
125
116
  </Grid.Column>
126
-
127
117
  <Grid.Column>
128
118
  {isTranslatableField(field) && fieldsByLang[altLang] ? (
129
- field.widget === "copy" ? (
130
- <FieldGroupSubSegment
131
- onFieldChange={onFieldChange}
132
- name={field.name}
133
- fields={field.value.value}
134
- prevFields={fieldsByLang[altLang]}
119
+ <I18nProvider lang={altLang}>
120
+ <DynamicField
121
+ scope={scope}
122
+ field={getFieldForLang(field, altLang)}
123
+ fields={fieldsByLang[altLang]}
124
+ isModification={isModification}
125
+ key={`${field.name}-${altLang}`}
126
+ onChange={(e, { name, value }) =>
127
+ onFieldChange(e, {
128
+ lang: altLang,
129
+ name,
130
+ value,
131
+ })
132
+ }
135
133
  />
136
- ) : (
137
- <I18nProvider lang={altLang}>
138
- <DynamicField
139
- scope={scope}
140
- field={getFieldForLang(field, altLang)}
141
- fields={fieldsByLang[altLang]}
142
- isModification={isModification}
143
- key={`${field.name}-${altLang}`}
144
- onChange={(e, { name, value }) =>
145
- onFieldChange(e, {
146
- lang: altLang,
147
- name,
148
- value,
149
- })
150
- }
151
- />
152
- </I18nProvider>
153
- )
134
+ </I18nProvider>
154
135
  ) : null}
155
136
  </Grid.Column>
156
137
  </Grid.Row>
@@ -1,9 +1,7 @@
1
- import React from "react";
2
1
  import PropTypes from "prop-types";
3
2
  import { useIntl } from "react-intl";
4
3
  import { Icon, Label, Table } from "semantic-ui-react";
5
4
  import { SafeLink, RichTextEditor } from "@truedat/core/components";
6
- import FieldGroupCopy from "./FieldGroupCopy";
7
5
  import ImagePreview from "./widgets/ImagePreview";
8
6
  import SystemPreview from "./widgets/SystemPreview";
9
7
  import "../styles/fieldGroupDetail.less";
@@ -51,7 +49,6 @@ export const FieldViewerValue = ({
51
49
  ))}
52
50
  </Table.Row>
53
51
  </Table.Header>
54
-
55
52
  <Table.Body>
56
53
  {value.map((row, i) => (
57
54
  <Table.Row key={i}>
@@ -67,17 +64,17 @@ export const FieldViewerValue = ({
67
64
  return <ImagePreview value={value} />;
68
65
  case "system":
69
66
  return <SystemPreview value={value} />;
70
- case "copy":
71
- return <FieldGroupCopy value={value} />;
72
67
  case "user_group":
73
68
  const [type, name] = value.split(":");
74
69
  return multiple ? (
75
70
  <Label>
76
- <Icon name={type} /> {name}
71
+ <Icon name={type} />
72
+ {name}
77
73
  </Label>
78
74
  ) : (
79
75
  <>
80
- <Icon name={type} /> {name}
76
+ <Icon name={type} />
77
+ {name}
81
78
  </>
82
79
  );
83
80
  case "string":
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { useIntl } from "react-intl";
3
2
  import PropTypes from "prop-types";
4
3
 
@@ -1,5 +1,5 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useMemo, useState } from "react";
2
+ import { useState } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { Grid } from "semantic-ui-react";
5
5
  import { TemplateSelector } from "@truedat/core/components";
@@ -29,9 +29,7 @@ export default function SelectDynamicFormWithTranslations({
29
29
  const [showSelector, setShowSelector] = useState(false);
30
30
  const template = selectedTemplate || thisTemplate;
31
31
  const { defaultLang, enabledLangs, isMultilingual } = useLanguage();
32
- const domain = useMemo(() => {
33
- return _.size(domainIds) > 0 ? { id: _.head(domainIds) } : null;
34
- }, [domainIds]);
32
+ const domain = _.size(domainIds) > 0 ? { id: _.head(domainIds) } : null;
35
33
 
36
34
  const handleChange = (content, currentTemplate = thisTemplate, lang) => {
37
35
  onChangeContent(lang, {
@@ -44,8 +42,8 @@ export default function SelectDynamicFormWithTranslations({
44
42
  const templateFound = name
45
43
  ? _.find(_.propEq("name", name))(templates)
46
44
  : _.size(templates) === 1
47
- ? _.head(templates)
48
- : null;
45
+ ? _.head(templates)
46
+ : null;
49
47
 
50
48
  setShowSelector(templates.length > 1);
51
49
 
@@ -1,5 +1,5 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useEffect, useMemo, useState } from "react";
2
+ import { useEffect, useState } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { TemplateSelector } from "@truedat/core/components";
5
5
  import { applyTemplate, validateContent } from "@truedat/df/utils";
@@ -27,24 +27,19 @@ export default function SelectableDynamicForm({
27
27
  }) {
28
28
  const [thisTemplate, setThisTemplate] = useState();
29
29
  const template = selectedTemplate || thisTemplate;
30
- const domain = useMemo(() => {
31
- return _.size(domainIds) > 0 ? { id: _.head(domainIds) } : null;
32
- }, [domainIds]);
33
-
34
- useEffect(() => {
35
- onTemplateChange(thisTemplate);
36
- }, [domain, template, thisTemplate, onTemplateChange]);
30
+ const domain = _.size(domainIds) > 0 ? { id: _.head(domainIds) } : null;
37
31
 
38
32
  const handleChange = (content, currentTemplate = template) => {
39
33
  onChange({ content, valid: validateContent(currentTemplate)(content) });
40
34
  };
41
35
 
42
36
  const handleLoad = ({ templates }) => {
37
+ if (selectedTemplate) return;
43
38
  const template = name
44
39
  ? _.find(_.propEq("name", name))(templates)
45
40
  : _.size(templates) == 1
46
- ? _.head(templates)
47
- : null;
41
+ ? _.head(templates)
42
+ : null;
48
43
  if (template?.name !== name) {
49
44
  onNameChange(template?.name);
50
45
  onTemplateChange(template);
@@ -82,7 +77,6 @@ export default function SelectableDynamicForm({
82
77
  disabled={disabled || disableSelector}
83
78
  />
84
79
  ) : null}
85
-
86
80
  {!disabled && template ? (
87
81
  <>
88
82
  {header}
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { DynamicFieldValue } from "../DynamicFieldValue";
4
3
 
@@ -1,17 +1,13 @@
1
- import React from "react";
2
- import { shallow, mount } from "enzyme";
3
- import { intl } from "@truedat/test/intl-stub";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import { DynamicForm } from "../DynamicForm";
5
3
 
6
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
7
-
8
4
  describe("<DynamicForm />", () => {
9
5
  const applyTemplate = jest.fn(),
10
6
  onChange = jest.fn(),
11
7
  templateLoading = false,
12
8
  content = {};
13
9
 
14
- it("matches snapshot for empty content", () => {
10
+ it("matches the latest snapshot for empty content", async () => {
15
11
  const template = {
16
12
  content: [],
17
13
  };
@@ -22,11 +18,12 @@ describe("<DynamicForm />", () => {
22
18
  content,
23
19
  template,
24
20
  };
25
- const wrapper = shallow(<DynamicForm {...props} />);
26
- expect(wrapper).toMatchSnapshot();
21
+ const rendered = render(<DynamicForm {...props} />);
22
+ await waitForLoad(rendered);
23
+ expect(rendered.container).toMatchSnapshot();
27
24
  });
28
25
 
29
- it("matches snapshot for default field", () => {
26
+ it("matches the latest snapshot for default field", async () => {
30
27
  const template = {
31
28
  content: [
32
29
  {
@@ -43,11 +40,12 @@ describe("<DynamicForm />", () => {
43
40
  content,
44
41
  template,
45
42
  };
46
- const wrapper = shallow(<DynamicForm {...props} />);
47
- expect(wrapper).toMatchSnapshot();
43
+ const rendered = render(<DynamicForm {...props} />);
44
+ await waitForLoad(rendered);
45
+ expect(rendered.container).toMatchSnapshot();
48
46
  });
49
47
 
50
- it("matches snapshot for role_users values", () => {
48
+ it("matches the latest snapshot for role_users values", async () => {
51
49
  const template = {
52
50
  content: [
53
51
  {
@@ -72,11 +70,12 @@ describe("<DynamicForm />", () => {
72
70
  content,
73
71
  template,
74
72
  };
75
- const wrapper = shallow(<DynamicForm {...props} />);
76
- expect(wrapper).toMatchSnapshot();
73
+ const rendered = render(<DynamicForm {...props} />);
74
+ await waitForLoad(rendered);
75
+ expect(rendered.container).toMatchSnapshot();
77
76
  });
78
77
 
79
- it("matches snapshot for domain values", () => {
78
+ it("matches the latest snapshot for domain values", async () => {
80
79
  const template = {
81
80
  content: [
82
81
  {
@@ -101,11 +100,12 @@ describe("<DynamicForm />", () => {
101
100
  selectedDomain,
102
101
  template,
103
102
  };
104
- const wrapper = shallow(<DynamicForm {...props} />);
105
- expect(wrapper).toMatchSnapshot();
103
+ const rendered = render(<DynamicForm {...props} />);
104
+ await waitForLoad(rendered);
105
+ expect(rendered.container).toMatchSnapshot();
106
106
  });
107
107
 
108
- it("calls onChange when selected domain is updated", () => {
108
+ it("calls onChange when selected domain is updated", async () => {
109
109
  onChange.mockClear();
110
110
  const template = {
111
111
  content: [
@@ -133,12 +133,13 @@ describe("<DynamicForm />", () => {
133
133
  content,
134
134
  template,
135
135
  };
136
- const wrapper = mount(<DynamicForm {...props} />);
137
- wrapper.setProps({ ...props, selectedDomain: { id: 1 } });
136
+ const rendered = render(<DynamicForm {...props} />);
137
+ await waitForLoad(rendered);
138
+ rendered.rerender(<DynamicForm {...props} selectedDomain={{ id: 1 }} />);
138
139
  expect(onChange).toHaveBeenCalledTimes(1);
139
140
  });
140
141
 
141
- it("it ignores values in prop fields to omit", () => {
142
+ it("it ignores values in prop fields to omit", async () => {
142
143
  const template = {
143
144
  content: [
144
145
  {
@@ -156,7 +157,8 @@ describe("<DynamicForm />", () => {
156
157
  template,
157
158
  fieldsToOmit: ["test"],
158
159
  };
159
- const wrapper = shallow(<DynamicForm {...props} />);
160
- expect(wrapper.find("FieldGroupSegment").length).toBe(0);
160
+ const rendered = render(<DynamicForm {...props} />);
161
+ await waitForLoad(rendered);
162
+ expect(rendered.container.querySelector(".field-group-segment")).toBeNull();
161
163
  });
162
164
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { EditableDynamicFieldValue } from "../EditableDynamicFieldValue";
4
3
 
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { FieldGroupDetail } from "../FieldGroupDetail";
4
3
 
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { FieldViewerValue } from "../FieldViewerValue";
4
3
 
@@ -28,13 +27,9 @@ describe("<FieldViewerValue />", () => {
28
27
  type: "image",
29
28
  },
30
29
  {
31
- value: { id: 1, name: "name" },
30
+ value: { id: "1", name: "name" },
32
31
  type: "system",
33
32
  },
34
- {
35
- value: "copy",
36
- type: "copy",
37
- },
38
33
  {
39
34
  value: "string",
40
35
  type: "string",