@luomus/laji-form 15.1.0 → 15.1.1

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 (297) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/laji-form.js +1 -1
  3. package/dist/styles.css +81 -90
  4. package/jsonconfig.json +26 -0
  5. package/migrate.sh +0 -1
  6. package/package.json +8 -8
  7. package/test-export/array-spec.js +204 -0
  8. package/test-export/bird-point-count-spec.d.ts +1 -0
  9. package/test-export/bird-point-count-spec.js +62 -0
  10. package/test-export/collection-contest-form-spec.d.ts +1 -0
  11. package/test-export/collection-contest-form-spec.js +38 -0
  12. package/test-export/dataset-form-spec.d.ts +1 -0
  13. package/test-export/dataset-form-spec.js +50 -0
  14. package/test-export/date-time-widget-spec.d.ts +1 -0
  15. package/test-export/date-time-widget-spec.js +188 -0
  16. package/test-export/geocoder-spec.d.ts +1 -0
  17. package/test-export/geocoder-spec.js +135 -0
  18. package/test-export/image-array-spec.d.ts +1 -0
  19. package/test-export/image-array-spec.js +94 -0
  20. package/test-export/inject-field-spec.d.ts +1 -0
  21. package/test-export/inject-field-spec.js +148 -0
  22. package/test-export/internal-uuids-spec.d.ts +1 -0
  23. package/test-export/internal-uuids-spec.js +157 -0
  24. package/test-export/invasive-species-eradication-np-spec.d.ts +1 -0
  25. package/test-export/invasive-species-eradication-np-spec.js +18 -0
  26. package/test-export/invasive-species-eradication-spec.d.ts +1 -0
  27. package/test-export/invasive-species-eradication-spec.js +25 -0
  28. package/test-export/line-transect-spec.d.ts +1 -0
  29. package/test-export/line-transect-spec.js +121 -0
  30. package/test-export/mobile-form-spec.d.ts +1 -0
  31. package/test-export/mobile-form-spec.js +84 -0
  32. package/test-export/nafi-spec.d.ts +1 -0
  33. package/test-export/nafi-spec.js +85 -0
  34. package/test-export/select-widget-spec.d.ts +1 -0
  35. package/test-export/select-widget-spec.js +68 -0
  36. package/test-export/single-item-array-field-spec.d.ts +1 -0
  37. package/test-export/single-item-array-field-spec.js +92 -0
  38. package/test-export/syke-butterfly-spec.d.ts +1 -0
  39. package/test-export/syke-butterfly-spec.js +163 -0
  40. package/test-export/test-utils.d.ts +150 -177
  41. package/test-export/test-utils.js +218 -214
  42. package/test-export/transaction-form-spec.d.ts +1 -0
  43. package/test-export/transaction-form-spec.js +63 -0
  44. package/test-export/trip-report-autosuggest-spec.d.ts +1 -0
  45. package/test-export/trip-report-autosuggest-spec.js +272 -0
  46. package/test-export/trip-report-spec.d.ts +1 -0
  47. package/test-export/trip-report-spec.js +456 -0
  48. package/test-export/unit-list-shorthand-array-field-spec.d.ts +1 -0
  49. package/test-export/unit-list-shorthand-array-field-spec.js +71 -0
  50. package/test-export/validation-spec.d.ts +1 -0
  51. package/test-export/validation-spec.js +336 -0
  52. package/test-export/water-bird-spec.d.ts +1 -0
  53. package/test-export/water-bird-spec.js +30 -0
  54. package/test-export/wbc-spec.d.ts +1 -0
  55. package/test-export/wbc-spec.js +82 -0
  56. package/tsconfig.test.json +1 -1
  57. package/xsel -b +9 -0
  58. package/cypress/fixtures/example.json +0 -5
  59. package/cypress/screenshots/nafi.cy.ts/NAFI (MHL.6) -- selecting species name with keyboard navigation -- and closes suggestion list (failed).png +0 -0
  60. package/cypress/screenshots/nafi.cy.ts/NAFI (MHL.6) -- selecting species name with keyboard navigation -- and is marked as suggested (failed).png +0 -0
  61. package/lib/ApiClient.d.ts +0 -46
  62. package/lib/ApiClient.js +0 -93
  63. package/lib/Context.d.ts +0 -8
  64. package/lib/Context.js +0 -18
  65. package/lib/ReactContext.d.ts +0 -7
  66. package/lib/ReactContext.js +0 -5
  67. package/lib/components/BaseComponent.d.ts +0 -9
  68. package/lib/components/BaseComponent.js +0 -29
  69. package/lib/components/LajiForm.d.ts +0 -221
  70. package/lib/components/LajiForm.js +0 -615
  71. package/lib/components/VirtualSchemaField.d.ts +0 -42
  72. package/lib/components/VirtualSchemaField.js +0 -74
  73. package/lib/components/components.d.ts +0 -119
  74. package/lib/components/components.js +0 -606
  75. package/lib/components/fields/AnnotationField.d.ts +0 -34
  76. package/lib/components/fields/AnnotationField.js +0 -242
  77. package/lib/components/fields/AnyToBooleanField.d.ts +0 -18
  78. package/lib/components/fields/AnyToBooleanField.js +0 -20
  79. package/lib/components/fields/ArrayBulkField.d.ts +0 -23
  80. package/lib/components/fields/ArrayBulkField.js +0 -82
  81. package/lib/components/fields/ArrayCombinerField.d.ts +0 -36
  82. package/lib/components/fields/ArrayCombinerField.js +0 -138
  83. package/lib/components/fields/ArrayField.d.ts +0 -39
  84. package/lib/components/fields/ArrayField.js +0 -148
  85. package/lib/components/fields/AudioArrayField.d.ts +0 -22
  86. package/lib/components/fields/AudioArrayField.js +0 -100
  87. package/lib/components/fields/AutoArrayField.d.ts +0 -24
  88. package/lib/components/fields/AutoArrayField.js +0 -56
  89. package/lib/components/fields/AutosuggestField.d.ts +0 -69
  90. package/lib/components/fields/AutosuggestField.js +0 -299
  91. package/lib/components/fields/CombinedValueDisplayField.d.ts +0 -41
  92. package/lib/components/fields/CombinedValueDisplayField.js +0 -100
  93. package/lib/components/fields/ConditionalOnChangeField.d.ts +0 -42
  94. package/lib/components/fields/ConditionalOnChangeField.js +0 -107
  95. package/lib/components/fields/ConditionalUiSchemaField.d.ts +0 -123
  96. package/lib/components/fields/ConditionalUiSchemaField.js +0 -143
  97. package/lib/components/fields/ContextInjectionField.d.ts +0 -24
  98. package/lib/components/fields/ContextInjectionField.js +0 -68
  99. package/lib/components/fields/DataLeakerField.d.ts +0 -40
  100. package/lib/components/fields/DataLeakerField.js +0 -68
  101. package/lib/components/fields/DefaultValueArrayField.d.ts +0 -34
  102. package/lib/components/fields/DefaultValueArrayField.js +0 -59
  103. package/lib/components/fields/DependentBooleanField.d.ts +0 -38
  104. package/lib/components/fields/DependentBooleanField.js +0 -87
  105. package/lib/components/fields/DependentDisableField.d.ts +0 -35
  106. package/lib/components/fields/DependentDisableField.js +0 -71
  107. package/lib/components/fields/EnumRangeArrayField.d.ts +0 -27
  108. package/lib/components/fields/EnumRangeArrayField.js +0 -115
  109. package/lib/components/fields/ExtraLabelRowField.d.ts +0 -38
  110. package/lib/components/fields/ExtraLabelRowField.js +0 -100
  111. package/lib/components/fields/FakePropertyField.d.ts +0 -18
  112. package/lib/components/fields/FakePropertyField.js +0 -48
  113. package/lib/components/fields/FilterArrayField.d.ts +0 -73
  114. package/lib/components/fields/FilterArrayField.js +0 -121
  115. package/lib/components/fields/FlatField.d.ts +0 -29
  116. package/lib/components/fields/FlatField.js +0 -171
  117. package/lib/components/fields/GeocoderField.d.ts +0 -47
  118. package/lib/components/fields/GeocoderField.js +0 -372
  119. package/lib/components/fields/GridLayoutField.d.ts +0 -18
  120. package/lib/components/fields/GridLayoutField.js +0 -32
  121. package/lib/components/fields/HiddenField.d.ts +0 -10
  122. package/lib/components/fields/HiddenField.js +0 -11
  123. package/lib/components/fields/ImageArrayField.d.ts +0 -172
  124. package/lib/components/fields/ImageArrayField.js +0 -697
  125. package/lib/components/fields/ImageDisplayField.d.ts +0 -18
  126. package/lib/components/fields/ImageDisplayField.js +0 -44
  127. package/lib/components/fields/InitiallyHiddenField.d.ts +0 -21
  128. package/lib/components/fields/InitiallyHiddenField.js +0 -58
  129. package/lib/components/fields/InjectDefaultValueField.d.ts +0 -37
  130. package/lib/components/fields/InjectDefaultValueField.js +0 -68
  131. package/lib/components/fields/InjectField.d.ts +0 -46
  132. package/lib/components/fields/InjectField.js +0 -88
  133. package/lib/components/fields/InputWithDefaultValueButtonField.d.ts +0 -25
  134. package/lib/components/fields/InputWithDefaultValueButtonField.js +0 -61
  135. package/lib/components/fields/LocalityField.d.ts +0 -22
  136. package/lib/components/fields/LocalityField.js +0 -94
  137. package/lib/components/fields/LocationChooserField.d.ts +0 -27
  138. package/lib/components/fields/LocationChooserField.js +0 -440
  139. package/lib/components/fields/MapArrayField.d.ts +0 -78
  140. package/lib/components/fields/MapArrayField.js +0 -1783
  141. package/lib/components/fields/MapField.d.ts +0 -48
  142. package/lib/components/fields/MapField.js +0 -434
  143. package/lib/components/fields/MultiAnyToBooleanField.d.ts +0 -25
  144. package/lib/components/fields/MultiAnyToBooleanField.js +0 -100
  145. package/lib/components/fields/MultiArrayField.d.ts +0 -53
  146. package/lib/components/fields/MultiArrayField.js +0 -224
  147. package/lib/components/fields/MultiLanguageField.d.ts +0 -13
  148. package/lib/components/fields/MultiLanguageField.js +0 -52
  149. package/lib/components/fields/MultiTagArrayField.d.ts +0 -36
  150. package/lib/components/fields/MultiTagArrayField.js +0 -142
  151. package/lib/components/fields/NamedPlaceChooserField.d.ts +0 -29
  152. package/lib/components/fields/NamedPlaceChooserField.js +0 -380
  153. package/lib/components/fields/NamedPlaceSaverField.d.ts +0 -29
  154. package/lib/components/fields/NamedPlaceSaverField.js +0 -237
  155. package/lib/components/fields/NestField.d.ts +0 -148
  156. package/lib/components/fields/NestField.js +0 -289
  157. package/lib/components/fields/ObjectField.d.ts +0 -2
  158. package/lib/components/fields/ObjectField.js +0 -119
  159. package/lib/components/fields/PdfArrayField.d.ts +0 -21
  160. package/lib/components/fields/PdfArrayField.js +0 -40
  161. package/lib/components/fields/PrefillingArrayField.d.ts +0 -22
  162. package/lib/components/fields/PrefillingArrayField.js +0 -65
  163. package/lib/components/fields/SchemaField.d.ts +0 -7
  164. package/lib/components/fields/SchemaField.js +0 -109
  165. package/lib/components/fields/ScopeField.d.ts +0 -85
  166. package/lib/components/fields/ScopeField.js +0 -521
  167. package/lib/components/fields/SectionArrayField.d.ts +0 -38
  168. package/lib/components/fields/SectionArrayField.js +0 -618
  169. package/lib/components/fields/SelectTreeField.d.ts +0 -39
  170. package/lib/components/fields/SelectTreeField.js +0 -143
  171. package/lib/components/fields/SingleActiveArrayField.d.ts +0 -49
  172. package/lib/components/fields/SingleActiveArrayField.js +0 -974
  173. package/lib/components/fields/SingleItemArrayField.d.ts +0 -15
  174. package/lib/components/fields/SingleItemArrayField.js +0 -60
  175. package/lib/components/fields/SortArrayField.d.ts +0 -73
  176. package/lib/components/fields/SortArrayField.js +0 -351
  177. package/lib/components/fields/SplitField.d.ts +0 -28
  178. package/lib/components/fields/SplitField.js +0 -65
  179. package/lib/components/fields/StringToArrayField.d.ts +0 -24
  180. package/lib/components/fields/StringToArrayField.js +0 -48
  181. package/lib/components/fields/SumField.d.ts +0 -35
  182. package/lib/components/fields/SumField.js +0 -83
  183. package/lib/components/fields/TableField.d.ts +0 -18
  184. package/lib/components/fields/TableField.js +0 -136
  185. package/lib/components/fields/TagArrayField.d.ts +0 -38
  186. package/lib/components/fields/TagArrayField.js +0 -128
  187. package/lib/components/fields/ToggleAdditionalArrayFieldsField.d.ts +0 -26
  188. package/lib/components/fields/ToggleAdditionalArrayFieldsField.js +0 -81
  189. package/lib/components/fields/UiFieldApplierField.d.ts +0 -30
  190. package/lib/components/fields/UiFieldApplierField.js +0 -106
  191. package/lib/components/fields/UiFieldMapperArrayField.d.ts +0 -42
  192. package/lib/components/fields/UiFieldMapperArrayField.js +0 -121
  193. package/lib/components/fields/UnitCountShorthandField.d.ts +0 -22
  194. package/lib/components/fields/UnitCountShorthandField.js +0 -149
  195. package/lib/components/fields/UnitListShorthandArrayField.d.ts +0 -26
  196. package/lib/components/fields/UnitListShorthandArrayField.js +0 -108
  197. package/lib/components/fields/UnitShorthandField.d.ts +0 -32
  198. package/lib/components/fields/UnitShorthandField.js +0 -220
  199. package/lib/components/templates/ArrayFieldTemplate.d.ts +0 -85
  200. package/lib/components/templates/ArrayFieldTemplate.js +0 -417
  201. package/lib/components/templates/BaseInputTemplate.d.ts +0 -11
  202. package/lib/components/templates/BaseInputTemplate.js +0 -80
  203. package/lib/components/templates/DescriptionField.d.ts +0 -1
  204. package/lib/components/templates/DescriptionField.js +0 -37
  205. package/lib/components/templates/ErrorListTemplate.d.ts +0 -9
  206. package/lib/components/templates/ErrorListTemplate.js +0 -95
  207. package/lib/components/templates/FieldTemplate.d.ts +0 -6
  208. package/lib/components/templates/FieldTemplate.js +0 -112
  209. package/lib/components/templates/ObjectFieldTemplate.d.ts +0 -7
  210. package/lib/components/templates/ObjectFieldTemplate.js +0 -66
  211. package/lib/components/templates/TitleField.d.ts +0 -9
  212. package/lib/components/templates/TitleField.js +0 -51
  213. package/lib/components/widgets/AnyToBooleanWidget.d.ts +0 -20
  214. package/lib/components/widgets/AnyToBooleanWidget.js +0 -49
  215. package/lib/components/widgets/AutosuggestWidget.d.ts +0 -66
  216. package/lib/components/widgets/AutosuggestWidget.js +0 -1127
  217. package/lib/components/widgets/CheckboxWidget.d.ts +0 -37
  218. package/lib/components/widgets/CheckboxWidget.js +0 -139
  219. package/lib/components/widgets/DateTimeWidget.d.ts +0 -62
  220. package/lib/components/widgets/DateTimeWidget.js +0 -251
  221. package/lib/components/widgets/DateWidget.d.ts +0 -23
  222. package/lib/components/widgets/DateWidget.js +0 -41
  223. package/lib/components/widgets/HiddenWidget.d.ts +0 -15
  224. package/lib/components/widgets/HiddenWidget.js +0 -19
  225. package/lib/components/widgets/ImageSelectWidget.d.ts +0 -14
  226. package/lib/components/widgets/ImageSelectWidget.js +0 -57
  227. package/lib/components/widgets/InformalTaxonGroupChooserWidget.d.ts +0 -43
  228. package/lib/components/widgets/InformalTaxonGroupChooserWidget.js +0 -237
  229. package/lib/components/widgets/InputGroupWidget.d.ts +0 -21
  230. package/lib/components/widgets/InputGroupWidget.js +0 -36
  231. package/lib/components/widgets/InputWithDefaultValueButtonWidget.d.ts +0 -21
  232. package/lib/components/widgets/InputWithDefaultValueButtonWidget.js +0 -47
  233. package/lib/components/widgets/NumberWidget.d.ts +0 -13
  234. package/lib/components/widgets/NumberWidget.js +0 -21
  235. package/lib/components/widgets/PlainTextWidget.d.ts +0 -12
  236. package/lib/components/widgets/PlainTextWidget.js +0 -24
  237. package/lib/components/widgets/SelectWidget.d.ts +0 -52
  238. package/lib/components/widgets/SelectWidget.js +0 -158
  239. package/lib/components/widgets/SeparatedDateTimeWidget.d.ts +0 -19
  240. package/lib/components/widgets/SeparatedDateTimeWidget.js +0 -59
  241. package/lib/components/widgets/TaxonImageWidget.d.ts +0 -13
  242. package/lib/components/widgets/TaxonImageWidget.js +0 -30
  243. package/lib/components/widgets/TextSelectWidget.d.ts +0 -25
  244. package/lib/components/widgets/TextSelectWidget.js +0 -94
  245. package/lib/components/widgets/TextareaWidget.d.ts +0 -32
  246. package/lib/components/widgets/TextareaWidget.js +0 -87
  247. package/lib/components/widgets/TimeWidget.d.ts +0 -11
  248. package/lib/components/widgets/TimeWidget.js +0 -19
  249. package/lib/components/widgets/URLWidget.d.ts +0 -14
  250. package/lib/components/widgets/URLWidget.js +0 -12
  251. package/lib/components/widgets/UpperCaseWidget.d.ts +0 -13
  252. package/lib/components/widgets/UpperCaseWidget.js +0 -21
  253. package/lib/index.d.ts +0 -20
  254. package/lib/index.js +0 -50
  255. package/lib/services/blocker-service.d.ts +0 -11
  256. package/lib/services/blocker-service.js +0 -55
  257. package/lib/services/custom-event-service.d.ts +0 -17
  258. package/lib/services/custom-event-service.js +0 -35
  259. package/lib/services/dom-id-service.d.ts +0 -8
  260. package/lib/services/dom-id-service.js +0 -30
  261. package/lib/services/focus-service.d.ts +0 -13
  262. package/lib/services/focus-service.js +0 -60
  263. package/lib/services/id-service.d.ts +0 -22
  264. package/lib/services/id-service.js +0 -130
  265. package/lib/services/key-handler-service.d.ts +0 -56
  266. package/lib/services/key-handler-service.js +0 -184
  267. package/lib/services/root-instance-service.d.ts +0 -25
  268. package/lib/services/root-instance-service.js +0 -49
  269. package/lib/services/settings-service.d.ts +0 -34
  270. package/lib/services/settings-service.js +0 -154
  271. package/lib/services/singleton-map-service.d.ts +0 -23
  272. package/lib/services/singleton-map-service.js +0 -44
  273. package/lib/services/submit-hook-service.d.ts +0 -24
  274. package/lib/services/submit-hook-service.js +0 -73
  275. package/lib/styles.js +0 -4
  276. package/lib/themes/bs3.d.ts +0 -3
  277. package/lib/themes/bs3.js +0 -133
  278. package/lib/themes/bs5.d.ts +0 -3
  279. package/lib/themes/bs5.js +0 -111
  280. package/lib/themes/glyphicon-fa-mapping.d.ts +0 -3
  281. package/lib/themes/glyphicon-fa-mapping.js +0 -271
  282. package/lib/themes/stub.d.ts +0 -3
  283. package/lib/themes/stub.js +0 -82
  284. package/lib/themes/theme.d.ts +0 -233
  285. package/lib/themes/theme.js +0 -2
  286. package/lib/translations.json +0 -847
  287. package/lib/utils.d.ts +0 -171
  288. package/lib/utils.js +0 -1191
  289. package/lib/validation.d.ts +0 -7
  290. package/lib/validation.js +0 -141
  291. package/llol +0 -10
  292. package/llol.pdf +0 -10
  293. package/playwright-report/index.html +0 -62
  294. package/q +0 -196
  295. package/rename.sh +0 -24
  296. package/trip-report.spec.ts +0 -594
  297. /package/{lib/styles.d.ts → test-export/array-spec.d.ts} +0 -0
@@ -1,148 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ArrayFieldPatched = exports.onArrayFieldChange = exports.copyItemFunction = void 0;
10
- const React = require("react");
11
- const merge = require("deepmerge");
12
- const utils_1 = require("../../utils");
13
- const BaseComponent_1 = require("../BaseComponent");
14
- const ArrayFieldTemplate_1 = require("../templates/ArrayFieldTemplate");
15
- const ReactContext_1 = require("../../ReactContext");
16
- const core_1 = require("@rjsf/core");
17
- // Doesn't work with arrays properly since uses JSON Pointers but not JSON path.
18
- // e.g. "copy all array item values expect these" is impossible.
19
- const copyItemFunction = (that, copyItem) => (props, { type, filter }) => {
20
- const { schema, registry, formContext } = that.props;
21
- const defaultItem = utils_1.getDefaultFormState(schema.items, undefined);
22
- copyItem = formContext.utils.filterItemIdsDeeply(copyItem, that.props.idSchema.$id);
23
- const source = type === "blacklist" ? defaultItem : copyItem;
24
- const filtered = filter.sort().reverse().reduce((target, f) => {
25
- let sourceValue;
26
- try {
27
- sourceValue = utils_1.parseJSONPointer(source, f);
28
- }
29
- catch (e) {
30
- const schema = utils_1.schemaJSONPointer(schema.items, f);
31
- sourceValue = utils_1.getDefaultFormState(schema, undefined);
32
- }
33
- return utils_1.updateFormDataWithJSONPointer({ schema: schema.items, formData: target, registry }, sourceValue, f);
34
- }, type === "blacklist" ? copyItem : defaultItem);
35
- const tmpIdTree = that.props.formContext.services.ids.getRelativeTmpIdTree(props.idSchema.$id);
36
- return utils_1.addLajiFormIds(filtered, tmpIdTree, false)[0];
37
- };
38
- exports.copyItemFunction = copyItemFunction;
39
- function onArrayFieldChange(formData, props) {
40
- const tmpIdTree = props.formContext.services.ids.getRelativeTmpIdTree(props.idSchema.$id);
41
- return utils_1.addLajiFormIds(formData, tmpIdTree, false)[0];
42
- }
43
- exports.onArrayFieldChange = onArrayFieldChange;
44
- const { ArrayField } = core_1.getDefaultRegistry().fields;
45
- class ArrayFieldPatched extends ArrayField {
46
- constructor(...params) {
47
- super(...params);
48
- const { _getNewFormDataRow } = this;
49
- this._getNewFormDataRow = () => {
50
- const tmpIdTree = this.props.formContext.services.ids.getRelativeTmpIdTree(this.props.idSchema.$id);
51
- const [item] = utils_1.addLajiFormIds(_getNewFormDataRow.call(this), tmpIdTree, false);
52
- return item;
53
- };
54
- const { onDropIndexClick } = this;
55
- this.onDropIndexClick = (index) => (event) => {
56
- const item = this.props.formData[index];
57
- const tmpIdTree = this.props.formContext.services.ids.getRelativeTmpIdTree(`${this.props.idSchema.$id}_${index}`);
58
- const oldIds = utils_1.getAllLajiFormIdsDeeply(item, tmpIdTree);
59
- Object.keys(oldIds).forEach((id) => {
60
- return this.props.formContext.services.submitHooks.remove(id);
61
- }, []);
62
- onDropIndexClick.call(this, index)(event);
63
- };
64
- }
65
- renderArrayFieldItem(props) {
66
- // rjsf@5 started rendering array items with titles as "name-idx" - we don't want that.
67
- if (typeof props.name === "string") {
68
- props.name = undefined;
69
- }
70
- if (this.props.idSchema) {
71
- const idSchema = this.getIdSchema(this.props, props.index);
72
- return super.renderArrayFieldItem(Object.assign(Object.assign({}, props), { itemIdSchema: idSchema }));
73
- }
74
- return super.renderArrayFieldItem(props);
75
- }
76
- getIdSchema(props, _index) {
77
- const { idSchema } = props;
78
- const index = utils_1.getFormDataIndex(_index, props.uiSchema);
79
- const root = idSchema.$id;
80
- const reduced = (idSchema, root) => Object.keys(idSchema).reduce((idSchema, prop) => {
81
- if (prop === "$id") {
82
- return Object.assign(Object.assign({}, idSchema), { "$id": idSchema.$id.replace(root, `${root}_${index}`) });
83
- }
84
- return Object.assign(Object.assign({}, idSchema), { [prop]: reduced(idSchema[prop], root) });
85
- }, idSchema);
86
- return reduced(idSchema, root);
87
- }
88
- }
89
- exports.ArrayFieldPatched = ArrayFieldPatched;
90
- let _ArrayField = class _ArrayField extends React.Component {
91
- constructor() {
92
- super(...arguments);
93
- this.onChange = (formData) => {
94
- this.props.onChange(onArrayFieldChange(formData, this.props));
95
- };
96
- this.buttonDefinitions = {
97
- copy: {
98
- glyph: "duplicate",
99
- fn: () => (...params) => {
100
- ArrayFieldTemplate_1.beforeAdd(this.props);
101
- this.onChange([
102
- ...this.props.formData,
103
- exports.copyItemFunction(this, this.props.formData[this.props.formData.length - 1])(...params)
104
- ]);
105
- },
106
- rules: {
107
- minLength: 1,
108
- canAdd: true
109
- },
110
- changesFormData: true
111
- },
112
- addPredefined: {
113
- fn: () => (onClickProps, { default: _default }) => {
114
- ArrayFieldTemplate_1.beforeAdd(this.props);
115
- this.onChange([
116
- ...(this.props.formData || []),
117
- utils_1.getDefaultFormState(this.props.schema.items, _default)
118
- ]);
119
- },
120
- rules: {
121
- canAdd: true
122
- },
123
- changesFormData: true
124
- }
125
- };
126
- }
127
- render() {
128
- const { props } = this;
129
- let { schema } = props;
130
- if (props.uiSchema.items && props.uiSchema.items["ui:field"]) {
131
- schema = Object.assign(Object.assign({}, schema), { uniqueItems: false });
132
- }
133
- // MultiArrayField needs to intercept default ArrayField internals, the instance is passed in formContext.
134
- const { ArrayField: _ArrayField } = props.formContext;
135
- const Component = _ArrayField || ArrayFieldPatched;
136
- // Reset formContext.ArrayField
137
- const formContext = _ArrayField ? Object.assign(Object.assign({}, props.formContext), { ArrayField: undefined }) : props.formContext;
138
- const registry = _ArrayField ? Object.assign(Object.assign({}, props.registry), { formContext }) : props.registry;
139
- return React.createElement(Component, Object.assign({}, props, { formContext: formContext, registry: registry, schema: schema, uiSchema: Object.assign(Object.assign({}, props.uiSchema), { "ui:options": Object.assign(Object.assign({ orderable: false }, props.uiSchema["ui:options"]), { buttonDefinitions: utils_1.getUiOptions(props.uiSchema).buttonDefinitions
140
- ? merge(this.buttonDefinitions, utils_1.getUiOptions(props.uiSchema).buttonDefinitions)
141
- : this.buttonDefinitions }) }), onChange: this.onChange }));
142
- }
143
- };
144
- _ArrayField.contextType = ReactContext_1.default;
145
- _ArrayField = __decorate([
146
- BaseComponent_1.default
147
- ], _ArrayField);
148
- exports.default = _ArrayField;
@@ -1,22 +0,0 @@
1
- export default class AudioArrayField extends React.Component<any, any, any> {
2
- static contextType: React.Context<import("../../ReactContext").ContextProps>;
3
- constructor(props: any);
4
- constructor(props: any, context: any);
5
- ALLOWED_FILE_TYPES: string[];
6
- ACCEPT_FILE_TYPES: string[];
7
- MAX_FILE_SIZE: number;
8
- KEY: string;
9
- ENDPOINT: string;
10
- GLYPH: string;
11
- TRANSLATION_TAKE_NEW: string;
12
- TRANSLATION_SELECT_FILE: string;
13
- TRANSLATION_NO_MEDIA: string;
14
- CONTAINER_CLASS: string;
15
- METADATA_FORM_ID: string;
16
- renderMedia: (id: any, idx: any) => JSX.Element;
17
- renderLoadingMedia: () => null;
18
- onMediaClick: () => null;
19
- renderModalMedia: (idx: any) => JSX.Element;
20
- formatValue: (value: any) => any;
21
- }
22
- import * as React from "react";
@@ -1,100 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const React = require("react");
10
- const { useState, useEffect } = React;
11
- const ImageArrayField_1 = require("./ImageArrayField");
12
- const Spinner = require("react-spinner");
13
- const components_1 = require("../components");
14
- const ReactContext_1 = require("../../ReactContext");
15
- const FILE_TYPES = ["audio/mp3", "audio/mpeg", "audio/x-wav", "audio/wav", "audio/wave", "audio/vnd.wave"];
16
- let AudioArrayField = class AudioArrayField extends React.Component {
17
- constructor() {
18
- super(...arguments);
19
- this.ALLOWED_FILE_TYPES = FILE_TYPES;
20
- this.ACCEPT_FILE_TYPES = ["audio/*"];
21
- this.MAX_FILE_SIZE = 20000000;
22
- this.KEY = "AUDIO";
23
- this.ENDPOINT = "audio";
24
- this.GLYPH = "headphones";
25
- this.TRANSLATION_TAKE_NEW = "TakeNewRecording";
26
- this.TRANSLATION_SELECT_FILE = "SelectRecording";
27
- this.TRANSLATION_NO_MEDIA = "NoRecording";
28
- this.CONTAINER_CLASS = "audios-container";
29
- this.METADATA_FORM_ID = "MHL.63";
30
- this.renderMedia = (id, idx) => (React.createElement("div", { className: "audio-container" },
31
- React.createElement(AudioButton, { id: id, idx: idx, apiClient: this.props.formContext.apiClient, translations: this.props.formContext.translations }),
32
- React.createElement(components_1.GlyphButton, { className: "audio-metadata-button", variant: "info", glyph: "pencil", onClick: this.openModalFor(idx) },
33
- " ",
34
- this.props.formContext.translations.Edit)));
35
- this.renderLoadingMedia = () => null;
36
- this.renderLoadingMedia = () => React.createElement("div", { className: "audio-container loading" },
37
- React.createElement(Spinner, null));
38
- this.onMediaClick = () => null;
39
- this.renderModalMedia = (idx) => (React.createElement("div", null,
40
- React.createElement("img", { src: this.state.modalMediaSrc }),
41
- React.createElement(LajiAudio, { id: this.props.formData[idx], style: { width: "100%" }, apiClient: this.props.formContext.apiClient, downloadLinks: true, translations: this.props.formContext.translations })));
42
- this.formatValue = (value) => {
43
- const { Glyphicon } = this.context.theme;
44
- return (value || []).map((id, idx) => React.createElement(Glyphicon, { key: idx, glyph: "headphones" }));
45
- };
46
- }
47
- };
48
- AudioArrayField.contextType = ReactContext_1.default;
49
- AudioArrayField = __decorate([
50
- ImageArrayField_1.MediaArrayField
51
- ], AudioArrayField);
52
- exports.default = AudioArrayField;
53
- const AudioButton = React.forwardRef((props, ref) => {
54
- const [loaded, setLoaded] = useState(null);
55
- const [playing, setPlaying] = useState(null);
56
- const audioRef = React.useRef();
57
- const play = React.useCallback(() => {
58
- setPlaying(true);
59
- audioRef.current.play();
60
- }, [audioRef, setPlaying]);
61
- const stop = React.useCallback(() => {
62
- audioRef.current.pause();
63
- audioRef.current.currentTime = 0;
64
- setPlaying(false);
65
- }, [audioRef, setPlaying]);
66
- const onKeyDown = React.useCallback((e) => {
67
- if (e.key === " ") {
68
- playing ? stop() : play();
69
- e.preventDefault();
70
- e.stopPropagation();
71
- }
72
- }, [playing, stop, play]);
73
- const { Glyphicon } = React.useContext(ReactContext_1.default).theme;
74
- return (React.createElement(React.Fragment, null,
75
- !loaded
76
- ? React.createElement("div", { className: "media-loading" },
77
- React.createElement(Spinner, null))
78
- : React.createElement(Glyphicon, { glyph: playing ? "pause" : "play", onClick: playing ? stop : play, ref: ref, tabIndex: 0, onKeyDown: onKeyDown }),
79
- React.createElement(LajiAudio, { style: { display: "none" }, ref: audioRef, id: props.id, onLoaded: setLoaded, onStop: stop, apiClient: props.apiClient, translations: props.translations })));
80
- });
81
- const LajiAudio = React.forwardRef((props, ref) => {
82
- const [mp3Url, setMp3Url] = useState(null);
83
- const [wavUrl, setWavUrl] = useState(null);
84
- useEffect(() => {
85
- props.apiClient.fetchCached(`/audio/${props.id}`, undefined, { failSilently: true }).then(response => {
86
- setMp3Url(response.mp3URL);
87
- setWavUrl(response.wavURL);
88
- props.onLoaded && props.onLoaded(true);
89
- });
90
- });
91
- return !mp3Url ? React.createElement(Spinner, { style: props.style }) : (React.createElement("div", null,
92
- React.createElement("audio", { controls: true, style: props.style, ref: ref, onPause: props.onStop },
93
- React.createElement("source", { src: mp3Url })),
94
- props.downloadLinks && (React.createElement(React.Fragment, null,
95
- React.createElement("a", { href: mp3Url, download: true }, `${props.translations.Download} mp3`),
96
- wavUrl &&
97
- React.createElement(React.Fragment, null,
98
- " | ",
99
- React.createElement("a", { href: wavUrl, download: true }, `${props.translations.Download} wav`))))));
100
- });
@@ -1,24 +0,0 @@
1
- export default class AutoArrayField extends React.Component<any, any, any> {
2
- static propTypes: {
3
- uiSchema: PropTypes.Requireable<PropTypes.InferProps<{
4
- "ui:options": PropTypes.Requireable<PropTypes.InferProps<{
5
- autofocus: any;
6
- }>>;
7
- }>>;
8
- schema: PropTypes.Validator<PropTypes.InferProps<{
9
- type: PropTypes.Requireable<string>;
10
- }>>;
11
- formData: PropTypes.Requireable<any[]>;
12
- };
13
- static getName(): string;
14
- constructor(props: any);
15
- constructor(props: any, context: any);
16
- getStateFromProps(props: any): {
17
- formData: any;
18
- onChange: (formData: any) => void;
19
- };
20
- emptyItem: any;
21
- onChange: (formData: any) => void;
22
- }
23
- import * as React from "react";
24
- import * as PropTypes from "prop-types";
@@ -1,56 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const React = require("react");
10
- const PropTypes = require("prop-types");
11
- const VirtualSchemaField_1 = require("../VirtualSchemaField");
12
- const utils_1 = require("../../utils");
13
- let AutoArrayField = class AutoArrayField extends React.Component {
14
- constructor() {
15
- super(...arguments);
16
- this.onChange = (formData) => {
17
- const emptyItem = utils_1.getDefaultFormState(this.props.schema.items);
18
- if (formData && formData.length !== 0 && this.props.formContext.utils.formDataEquals(formData[formData.length - 1], emptyItem, this.props.idSchema.$id)) {
19
- formData = formData.slice(0, formData.length - 1);
20
- }
21
- this.props.onChange(formData);
22
- };
23
- }
24
- static getName() { return "AutoArrayField"; }
25
- getStateFromProps(props) {
26
- const { formData = [], schema, uiSchema, formContext: { utils } } = props;
27
- const state = { formData, onChange: this.onChange };
28
- const newEmptyItem = utils_1.getDefaultFormState(schema.items);
29
- const emptyItem = this.emptyItem
30
- && utils.formDataEquals(newEmptyItem, this.emptyItem, props.idSchema.$id)
31
- && formData.every(item => utils_1.getUUID(item) !== utils_1.getUUID(this.emptyItem))
32
- ? this.emptyItem
33
- : utils_1.assignUUID(newEmptyItem);
34
- this.emptyItem = emptyItem;
35
- if (formData && (formData.length === 0 || !utils.formDataEquals(formData[formData.length - 1], emptyItem, props.idSchema.$id))) {
36
- state.formData = [...formData, emptyItem];
37
- }
38
- state.uiSchema = Object.assign(Object.assign({}, uiSchema), { "ui:options": Object.assign(Object.assign({ canAdd: false }, (uiSchema["ui:options"] || {})), { nonOrderables: [state.formData.length - 1], nonRemovables: [state.formData.length - 1] }) });
39
- return state;
40
- }
41
- };
42
- AutoArrayField.propTypes = {
43
- uiSchema: PropTypes.shape({
44
- "ui:options": PropTypes.shape({
45
- autofocus: PropTypes.boolean
46
- })
47
- }),
48
- schema: PropTypes.shape({
49
- type: PropTypes.oneOf(["array"])
50
- }).isRequired,
51
- formData: PropTypes.array
52
- };
53
- AutoArrayField = __decorate([
54
- VirtualSchemaField_1.default
55
- ], AutoArrayField);
56
- exports.default = AutoArrayField;
@@ -1,69 +0,0 @@
1
- /**
2
- * Uses AutosuggestWidget to apply autosuggested values to multiple object's fields. Options are passed to AutosuggestWidget.
3
- *
4
- * uischema = {"ui:options": {
5
- * autosuggestField: <string> (field name which is used for api call. The suggestions renderer method is also defined by autosuggestField)
6
- * suggestionInputField: <fieldName> (the field which is rendered as the autosuggest input)
7
- * suggestionValueField: <fieldName> (the field which the value for autosuggest is pulled from)
8
- * suggestionReceivers: {
9
- * <fieldName>: <suggestion path>, (when an autosuggestion is selected, these fields receive the autosuggestions value defined by suggestion path.
10
- * <fieldName2>: <suggestion path 2>, Example: autosuggestion = {key: "MLV.2", value: "kalalokki", payload: {informalGroups: ["linnut"]}}
11
- * } suggestionReceivers: {someFieldName: "key", someFieldName2: "/payload/informalgroups/0"}
12
- * If fieldName start with '$', then a function from autosuggestFieldSettings parses the suggestion. Example: $taxonGroup
13
- * If fieldName start with '/', it is handled as a JSON pointer.
14
- * uiSchema: <uiSchema> (uiSchema which is passed to inner SchemaField)
15
- * }
16
- */
17
- export default class AutosuggestField extends React.Component<any, any, any> {
18
- static propTypes: {
19
- uiSchema: PropTypes.Validator<PropTypes.InferProps<{
20
- "ui:options": PropTypes.Validator<PropTypes.InferProps<{
21
- autosuggestField: PropTypes.Validator<string>;
22
- suggestionInputField: PropTypes.Validator<string>;
23
- allowNonsuggestedValue: any;
24
- suggestionReceivers: PropTypes.Validator<object>;
25
- inputTransformer: PropTypes.Requireable<PropTypes.InferProps<{
26
- regexp: PropTypes.Validator<string>;
27
- transformations: PropTypes.Validator<object>;
28
- }>>;
29
- informalTaxonGroups: PropTypes.Requireable<string>;
30
- informalTaxonGroupPersistenceKey: PropTypes.Requireable<string>;
31
- }>>;
32
- uiSchema: PropTypes.Requireable<object>;
33
- }>>;
34
- schema: PropTypes.Validator<PropTypes.InferProps<{
35
- type: PropTypes.Requireable<string>;
36
- }>>;
37
- formData: PropTypes.Validator<object>;
38
- };
39
- static getName(): string;
40
- constructor(props: any);
41
- onNextTick: (() => any) | undefined;
42
- getTogglePersistenceContextKey: (props: any) => string;
43
- getInformalTaxonGroupsPersistenceContextKey: (props: any) => string;
44
- getStateFromProps: (props: any, toggled: any) => {
45
- schema: any;
46
- uiSchema: any;
47
- toggled: any;
48
- taxonGroupID: any;
49
- };
50
- getActiveOptions: (options: any, toggled: any) => any;
51
- getSuggestionReceiverValue(suggestion: any, suggestionReceiver: any): any;
52
- getSuggestionValue: (suggestion: any, def: any) => any;
53
- onSuggestionSelected: (suggestion: any, mounted: any) => void;
54
- onConfirmUnsuggested: (value: any) => void;
55
- onInputChange: ({ target: { value } }: {
56
- target: {
57
- value: any;
58
- };
59
- }) => any;
60
- isValueSuggested: () => boolean;
61
- getSuggestionFromValue: () => Promise<{
62
- value: any;
63
- key: any;
64
- }>;
65
- onInformalTaxonGroupSelected: (informalTaxonID: any) => void;
66
- onToggleChange: (value: any) => void;
67
- }
68
- import * as React from "react";
69
- import * as PropTypes from "prop-types";