@luomus/laji-form 15.0.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 -176
  41. package/test-export/test-utils.js +218 -210
  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
package/dist/styles.css CHANGED
@@ -750,8 +750,10 @@ Version: 0.0.6
750
750
  height: 40%;
751
751
  position: absolute;
752
752
  right: 21px;
753
- transform-origin: 50% 50%;
754
- transform: skew(150deg) rotate(-40deg);
753
+ -ms-transform-origin: 50% 50%;
754
+ transform-origin: 50% 50%;
755
+ -ms-transform: skew(150deg) rotate(-40deg);
756
+ transform: skew(150deg) rotate(-40deg);
755
757
  width: 60%;
756
758
  z-index: -1; }
757
759
 
@@ -773,80 +775,80 @@ Version: 0.0.6
773
775
  .vector-marker .icon-white {
774
776
  color: #fff; }
775
777
 
776
- .marker-cluster-small {
777
- background-color: rgba(181, 226, 140, 0.6);
778
- }
779
- .marker-cluster-small div {
780
- background-color: rgba(110, 204, 57, 0.6);
781
- }
782
-
783
- .marker-cluster-medium {
784
- background-color: rgba(241, 211, 87, 0.6);
785
- }
786
- .marker-cluster-medium div {
787
- background-color: rgba(240, 194, 12, 0.6);
788
- }
789
-
790
- .marker-cluster-large {
791
- background-color: rgba(253, 156, 115, 0.6);
792
- }
793
- .marker-cluster-large div {
794
- background-color: rgba(241, 128, 23, 0.6);
795
- }
796
-
797
- /* IE 6-8 fallback colors */
798
- .leaflet-oldie .marker-cluster-small {
799
- background-color: rgb(181, 226, 140);
800
- }
801
- .leaflet-oldie .marker-cluster-small div {
802
- background-color: rgb(110, 204, 57);
803
- }
804
-
805
- .leaflet-oldie .marker-cluster-medium {
806
- background-color: rgb(241, 211, 87);
807
- }
808
- .leaflet-oldie .marker-cluster-medium div {
809
- background-color: rgb(240, 194, 12);
810
- }
811
-
812
- .leaflet-oldie .marker-cluster-large {
813
- background-color: rgb(253, 156, 115);
814
- }
815
- .leaflet-oldie .marker-cluster-large div {
816
- background-color: rgb(241, 128, 23);
817
- }
818
-
819
- .marker-cluster {
820
- background-clip: padding-box;
821
- border-radius: 20px;
822
- }
823
- .marker-cluster div {
824
- width: 30px;
825
- height: 30px;
826
- margin-left: 5px;
827
- margin-top: 5px;
828
-
829
- text-align: center;
830
- border-radius: 15px;
831
- font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
832
- }
833
- .marker-cluster span {
834
- line-height: 30px;
778
+ .marker-cluster-small {
779
+ background-color: rgba(181, 226, 140, 0.6);
780
+ }
781
+ .marker-cluster-small div {
782
+ background-color: rgba(110, 204, 57, 0.6);
783
+ }
784
+
785
+ .marker-cluster-medium {
786
+ background-color: rgba(241, 211, 87, 0.6);
787
+ }
788
+ .marker-cluster-medium div {
789
+ background-color: rgba(240, 194, 12, 0.6);
790
+ }
791
+
792
+ .marker-cluster-large {
793
+ background-color: rgba(253, 156, 115, 0.6);
794
+ }
795
+ .marker-cluster-large div {
796
+ background-color: rgba(241, 128, 23, 0.6);
797
+ }
798
+
799
+ /* IE 6-8 fallback colors */
800
+ .leaflet-oldie .marker-cluster-small {
801
+ background-color: rgb(181, 226, 140);
802
+ }
803
+ .leaflet-oldie .marker-cluster-small div {
804
+ background-color: rgb(110, 204, 57);
805
+ }
806
+
807
+ .leaflet-oldie .marker-cluster-medium {
808
+ background-color: rgb(241, 211, 87);
809
+ }
810
+ .leaflet-oldie .marker-cluster-medium div {
811
+ background-color: rgb(240, 194, 12);
812
+ }
813
+
814
+ .leaflet-oldie .marker-cluster-large {
815
+ background-color: rgb(253, 156, 115);
816
+ }
817
+ .leaflet-oldie .marker-cluster-large div {
818
+ background-color: rgb(241, 128, 23);
819
+ }
820
+
821
+ .marker-cluster {
822
+ background-clip: padding-box;
823
+ border-radius: 20px;
824
+ }
825
+ .marker-cluster div {
826
+ width: 30px;
827
+ height: 30px;
828
+ margin-left: 5px;
829
+ margin-top: 5px;
830
+
831
+ text-align: center;
832
+ border-radius: 15px;
833
+ font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
834
+ }
835
+ .marker-cluster span {
836
+ line-height: 30px;
835
837
  }
836
- .leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
837
- -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
838
- -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
839
- -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
840
- transition: transform 0.3s ease-out, opacity 0.3s ease-in;
841
- }
842
-
843
- .leaflet-cluster-spider-leg {
844
- /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
845
- -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
846
- -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
847
- -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
848
- transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
849
- }
838
+ .leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
839
+ -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
840
+ -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
841
+ -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
842
+ transition: transform 0.3s ease-out, opacity 0.3s ease-in;
843
+ }
844
+
845
+ .leaflet-cluster-spider-leg {
846
+ /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
847
+ -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
848
+ -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
849
+ -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
850
+ transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
851
+ }
850
852
 
851
853
  /* global styling */
852
854
  .leaflet-control-geosearch *,
@@ -1900,8 +1902,6 @@ li.laji-map-layer-control-layer-item.active span {
1900
1902
  z-index: -1;
1901
1903
  }
1902
1904
 
1903
-
1904
-
1905
1905
  .leaflet-measure-path-measurement {
1906
1906
  position: absolute;
1907
1907
  font-size: 10px;
@@ -2213,18 +2213,10 @@ min-height: 20px;
2213
2213
 
2214
2214
  .laji-form .laji-form-help-glyph {
2215
2215
  margin-left: 5px;
2216
- border-radius: 100%;
2216
+ border-radius: 9px;
2217
+ color: white;
2218
+ padding: 0px 6px;
2217
2219
  font-size: 13px;
2218
- background: white;
2219
- outline: 1px solid #b6b6b6;
2220
- width: 18px;
2221
- height: 18px;
2222
- font-weight: bold;
2223
- display: inline-block;
2224
- text-align: center;
2225
- }
2226
- .laji-form .laji-form-help-glyph:before {
2227
- content: "?";
2228
2220
  }
2229
2221
 
2230
2222
  .laji-form .laji-form-map-container {
@@ -2559,8 +2551,7 @@ min-height: 20px;
2559
2551
  .laji-form .col-lg-1, .laji-form .col-lg-10, .laji-form .col-lg-11, .laji-form .col-lg-12, .laji-form .col-lg-2, .laji-form .col-lg-3, .laji-form .col-lg-4, .laji-form .col-lg-5, .laji-form .col-lg-6, .laji-form .col-lg-7, .laji-form .col-lg-8, .laji-form .col-lg-9,
2560
2552
  .laji-form .col-md-1, .laji-form .col-md-10, .laji-form .col-md-11, .laji-form .col-md-12, .laji-form .col-md-2, .laji-form .col-md-3, .laji-form .col-md-4, .laji-form .col-md-5, .laji-form .col-md-6, .laji-form .col-md-7, .laji-form .col-md-8, .laji-form .col-md-9,
2561
2553
  .laji-form .col-sm-1, .laji-form .col-sm-10, .laji-form .col-sm-11, .laji-form .col-sm-12, .laji-form .col-sm-2, .laji-form .col-sm-3, .laji-form .col-sm-4, .laji-form .col-sm-5, .laji-form .col-sm-6, .laji-form .col-sm-7, .laji-form .col-sm-8, .laji-form .col-sm-9,
2562
- .laji-form .col-xs-1, .laji-form .col-xs-10, .laji-form .col-xs-11, .laji-form .col-xs-12, .laji-form .col-xs-2, .laji-form .col-xs-3, .laji-form .col-xs-4, .laji-form .col-xs-5, .laji-form .col-xs-6, .laji-form .col-xs-7, .laji-form .col-xs-8, .laji-form .col-xs-9,
2563
- .laji-form .col-1, .laji-form .col-10, .laji-form .col-11, .laji-form .col-12, .laji-form .col-2, .laji-form .col-3, .laji-form .col-4, .laji-form .col-5, .laji-form .col-6, .laji-form .col-7, .laji-form .col-8, .laji-form .col-9 {
2554
+ .laji-form .col-xs-1, .laji-form .col-xs-10, .laji-form .col-xs-11, .laji-form .col-xs-12, .laji-form .col-xs-2, .laji-form .col-xs-3, .laji-form .col-xs-4, .laji-form .col-xs-5, .laji-form .col-xs-6, .laji-form .col-xs-7, .laji-form .col-xs-8, .laji-form .col-xs-9 {
2564
2555
  padding-right:3px;
2565
2556
  padding-left:3px;
2566
2557
  }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./build",
4
+ "module": "es6",
5
+ "target": "es6",
6
+ "lib": [
7
+ "dom",
8
+ "es7",
9
+ "es2016.array.include"
10
+ ],
11
+ "allowJs": true,
12
+ "jsx": "react",
13
+ "moduleResolution": "node",
14
+ "noImplicitReturns": true,
15
+ "noImplicitThis": false,
16
+ "noImplicitAny": true,
17
+ "strictNullChecks": true,
18
+ "allowSyntheticDefaultImports": true,
19
+ "esModuleInterop": true,
20
+ "experimentalDecorators": true,
21
+ "resolveJsonModule": true
22
+ },
23
+ "include": [
24
+ "./src/**/*"
25
+ ]
26
+ }
package/migrate.sh CHANGED
@@ -30,4 +30,3 @@ sed -i"" -E 's/protractor.Key.DOWN/"ArrowDown"/g' $files
30
30
  #laji form specific
31
31
  sed -i"" -E 's/beforeAll\(async \(\)/beforeAll\(async \({browser}\)/' $files
32
32
  sed -i"" -E 's/createForm\(/createForm\(await browser.newPage(), /' $files
33
- sed -i"" -E 's/updateValue/form.updateValue/' $files
package/package.json CHANGED
@@ -1,22 +1,21 @@
1
1
  {
2
2
  "name": "@luomus/laji-form",
3
- "version": "15.0.0",
3
+ "version": "15.1.1",
4
4
  "description": "React module capable of building dynamic forms from Laji form json schemas",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "scripts": {
8
- "prepare": "self-import",
9
8
  "start": "npx webpack serve",
10
9
  "staging": "webpack-dev-server --content-base playground playground/app.js --host 0.0.0.0 --port 4010",
11
10
  "build:lib": "rimraf lib && NODE_ENV=production tsc -p tsconfig.lib.json",
12
11
  "build:dist": "rimraf dist && NODE_ENV=production webpack --config webpack.config.dist.js && rimraf dist/styles.js",
13
- "build:tests": "rimraf test-export & NODE_ENV=production tsc -p tsconfig.test.json",
12
+ "build:tests": "rimraf test-export &c NODE_ENV=production tsc -p tsconfig.test.json",
14
13
  "build": "npm run build:lib && npm run build:dist && npm run build:tests",
15
- "preversion": "npm run lint && npm run test",
14
+ "preversion": "npm run lint && npm test",
16
15
  "version": "bin/update-changelog.sh",
17
- "postversion": "npm run build && npm publish && git push & git push --tags",
16
+ "postversion": "npm run build && git push & git push --tags && npm publish",
18
17
  "lint": "eslint -c .eslintrc.prod.json src playground",
19
- "test": "playwright test"
18
+ "test": "npx playwright test --project chromium"
20
19
  },
21
20
  "keywords": [
22
21
  "react-jsonschema-form",
@@ -27,7 +26,7 @@
27
26
  "repository": "https://github.com/luomus/laji-form.git",
28
27
  "license": "MIT",
29
28
  "dependencies": {
30
- "@luomus/laji-map": "^4.0.2",
29
+ "@luomus/laji-map": "^4.0.3",
31
30
  "@luomus/laji-validate": "0.0.120",
32
31
  "@rjsf/core": "~5.1.0",
33
32
  "@rjsf/utils": "~5.1.0",
@@ -56,19 +55,20 @@
56
55
  },
57
56
  "devDependencies": {
58
57
  "@playwright/test": "^1.40.1",
58
+ "@types/jasmine": "^3.7.7",
59
59
  "@types/node": "^20.10.1",
60
60
  "@typescript-eslint/eslint-plugin": "^4.28.1",
61
61
  "@typescript-eslint/parser": "^4.28.1",
62
62
  "copy-webpack-plugin": "^9.0.1",
63
63
  "css-loader": "^5.2.6",
64
64
  "eslint": "^7.30.0",
65
+ "eslint-plugin-jasmine": "^4.1.2",
65
66
  "eslint-plugin-react": "^7.24.0",
66
67
  "eslint-plugin-react-hooks": "^4.2.0",
67
68
  "mini-css-extract-plugin": "^2.1.0",
68
69
  "notus": "^0.3.2",
69
70
  "querystring": "^0.2.1",
70
71
  "rimraf": "^2.5.4",
71
- "self-import": "^1.0.1",
72
72
  "style-loader": "^3.0.0",
73
73
  "ts-loader": "^9.2.3",
74
74
  "typescript": "^4.3.5",
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const test_utils_1 = require("./test-utils");
13
+ const protractor_1 = require("protractor");
14
+ describe("Array", () => {
15
+ let form;
16
+ describe("copy button", () => {
17
+ const uiSchemaForCopy = (type, filter) => ({
18
+ "ui:options": {
19
+ "buttons": [{
20
+ fn: "copy", type, filter
21
+ }]
22
+ }
23
+ });
24
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
25
+ form = yield test_utils_1.createForm();
26
+ }));
27
+ describe("nested object", () => {
28
+ const schema = {
29
+ type: "array",
30
+ items: {
31
+ type: "object",
32
+ properties: {
33
+ a: { type: "string" },
34
+ b: { type: "string" },
35
+ 1: {
36
+ type: "object",
37
+ properties: {
38
+ a: { type: "string" },
39
+ b: { type: "string" },
40
+ 2: {
41
+ type: "object",
42
+ properties: {
43
+ a: { type: "string" },
44
+ b: { type: "string" },
45
+ default: { type: "string", default: "default" },
46
+ 3: {
47
+ type: "object",
48
+ properties: {
49
+ a: { type: "string" },
50
+ b: { type: "string" },
51
+ default: { type: "string", default: "default" },
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ };
61
+ const allButDefaultFilled = [{
62
+ a: "foo",
63
+ b: "foo",
64
+ 1: {
65
+ a: "foo",
66
+ b: "foo",
67
+ 2: {
68
+ a: "foo",
69
+ b: "foo",
70
+ 3: {
71
+ a: "foo",
72
+ b: "foo",
73
+ }
74
+ }
75
+ }
76
+ }];
77
+ it("works with whitelist", () => __awaiter(void 0, void 0, void 0, function* () {
78
+ yield form.setState({ schema, formData: allButDefaultFilled, uiSchema: uiSchemaForCopy("whitelist", ["a", "/1/a", "/1/2/a"]) });
79
+ yield form.$locateButton("", "copy").click();
80
+ expect((yield form.getChangedData())[1]).toEqual({
81
+ a: "foo",
82
+ 1: {
83
+ a: "foo",
84
+ 2: {
85
+ a: "foo",
86
+ default: "default",
87
+ 3: {
88
+ default: "default"
89
+ }
90
+ }
91
+ }
92
+ });
93
+ }));
94
+ it("works with blacklist", () => __awaiter(void 0, void 0, void 0, function* () {
95
+ yield form.setState({ schema, formData: allButDefaultFilled, uiSchema: uiSchemaForCopy("blacklist", ["a", "/1/a", "/1/2/a"]) });
96
+ yield form.$locateButton("", "copy").click();
97
+ expect((yield form.getChangedData())[1]).toEqual({
98
+ a: null,
99
+ b: "foo",
100
+ 1: {
101
+ a: null,
102
+ b: "foo",
103
+ 2: {
104
+ a: null,
105
+ b: "foo",
106
+ default: "default",
107
+ 3: {
108
+ a: "foo",
109
+ b: "foo",
110
+ default: "default"
111
+ }
112
+ }
113
+ }
114
+ });
115
+ }));
116
+ });
117
+ describe("copying form nonexisting array item", () => {
118
+ const schema = {
119
+ type: "array",
120
+ items: {
121
+ type: "object",
122
+ properties: {
123
+ arr: {
124
+ type: "array",
125
+ items: {
126
+ type: "object",
127
+ properties: {
128
+ a: { type: "string" },
129
+ b: { type: "string" },
130
+ default: { type: "string", default: "default" }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ };
137
+ const formData = [{
138
+ arr: [{
139
+ a: "foo",
140
+ b: "foo"
141
+ }]
142
+ }];
143
+ it("works with whitelist", () => __awaiter(void 0, void 0, void 0, function* () {
144
+ yield form.setState({ schema, formData, uiSchema: uiSchemaForCopy("whitelist", ["/arr/0/a", "/arr/1/b"]) });
145
+ yield form.$locateButton("", "copy").click();
146
+ expect((yield form.getChangedData())[1]).toEqual({
147
+ arr: [
148
+ {
149
+ a: "foo",
150
+ default: "default"
151
+ },
152
+ {
153
+ b: null,
154
+ default: "default"
155
+ }
156
+ ]
157
+ });
158
+ }));
159
+ it("works with blacklist", () => __awaiter(void 0, void 0, void 0, function* () {
160
+ yield form.setState({ schema, formData, uiSchema: uiSchemaForCopy("blacklist", ["/arr/0/a", "/arr/1/b"]) });
161
+ yield form.$locateButton("", "copy").click();
162
+ expect((yield form.getChangedData())[1]).toEqual({
163
+ arr: [
164
+ {
165
+ a: null,
166
+ b: "foo",
167
+ default: "default"
168
+ },
169
+ {
170
+ b: null,
171
+ default: "default"
172
+ }
173
+ ]
174
+ });
175
+ }));
176
+ });
177
+ });
178
+ describe("keyboard shortcut", () => {
179
+ let form;
180
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
181
+ const shortcuts = { "alt+i": { fn: "insert" } };
182
+ const props = { schema: { type: "array", items: { type: "string" } }, uiSchema: { "ui:shortcuts": shortcuts } };
183
+ form = yield test_utils_1.createForm(props);
184
+ }));
185
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
186
+ yield form.setState({ formData: [] });
187
+ }));
188
+ describe("insert", () => {
189
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
190
+ yield form.$locateButton("", "add").click();
191
+ expect(yield form.$locate("0").isDisplayed()).toBe(true);
192
+ yield protractor_1.browser.driver.switchTo().activeElement().sendKeys(protractor_1.protractor.Key.chord(protractor_1.protractor.Key.ALT, "i"));
193
+ expect(yield form.$locate("1").isDisplayed()).toBe(true);
194
+ }));
195
+ it("keeps entered value", () => __awaiter(void 0, void 0, void 0, function* () {
196
+ yield form.$locateButton("", "add").click();
197
+ yield protractor_1.browser.driver.switchTo().activeElement().sendKeys("test");
198
+ yield protractor_1.browser.driver.switchTo().activeElement().sendKeys(protractor_1.protractor.Key.chord(protractor_1.protractor.Key.ALT, "i"));
199
+ expect(yield form.$locate("1").isDisplayed()).toBe(true);
200
+ expect(yield form.$getInputWidget("0").getAttribute("value")).toBe("test");
201
+ }));
202
+ });
203
+ });
204
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const test_utils_1 = require("./test-utils");
13
+ const protractor_1 = require("protractor");
14
+ describe("Bird point count (MHL.75)", () => {
15
+ let form;
16
+ let $addUnit;
17
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
18
+ form = yield test_utils_1.createForm({ id: "MHL.75" });
19
+ $addUnit = form.$locateButton("gatherings.0.units", "add");
20
+ }));
21
+ it("adds gathering", () => __awaiter(void 0, void 0, void 0, function* () {
22
+ yield test_utils_1.putForeignMarkerToMap();
23
+ expect(yield test_utils_1.isDisplayed(form.$locate("gatherings.0"))).toBe(true);
24
+ }));
25
+ it("adds unit", () => __awaiter(void 0, void 0, void 0, function* () {
26
+ yield $addUnit.click();
27
+ expect(yield test_utils_1.isDisplayed(form.$locate("gatherings.0.units.0"))).toBe(true);
28
+ }));
29
+ it("unit pair count doesn't lose value when typed and new unit entered by shortcut key", () => __awaiter(void 0, void 0, void 0, function* () {
30
+ const text = "123";
31
+ yield form.$getInputWidget("gatherings.0.units.0.unitFact.pairCountInner").sendKeys(text);
32
+ yield protractor_1.browser.driver.switchTo().activeElement().sendKeys(protractor_1.protractor.Key.chord(protractor_1.protractor.Key.ALT, "u"));
33
+ expect(yield form.$getInputWidget("gatherings.0.units.0.unitFact.pairCountInner").getAttribute("value")).toBe(text);
34
+ // Cleanup
35
+ yield form.$locateButton("gatherings.0.units.0", "delete").click();
36
+ yield form.$locateButton("gatherings.0.units.0", "delete").click();
37
+ }));
38
+ it("when two units and 1st is removed, the autosuggest input value updated to the value of the 1st", () => __awaiter(void 0, void 0, void 0, function* () {
39
+ const taxonAutosuggest1 = form.getTaxonAutosuggestWidget("gatherings.0.units.0.identifications.0.taxonVerbatim");
40
+ const taxonAutosuggest2 = form.getTaxonAutosuggestWidget("gatherings.0.units.1.identifications.0.taxonVerbatim");
41
+ const mockQueue = yield form.createMockResponseQueue("/autocomplete/taxon");
42
+ const peippoMock = yield mockQueue.create();
43
+ const mustarastasMock = yield mockQueue.create();
44
+ yield $addUnit.click();
45
+ yield test_utils_1.updateValue(taxonAutosuggest1.$input, "peippo");
46
+ yield peippoMock.resolve([{
47
+ key: "MX.36237",
48
+ value: "peippo",
49
+ }]);
50
+ yield taxonAutosuggest1.waitForPopoverToHide();
51
+ yield $addUnit.click();
52
+ yield test_utils_1.updateValue(taxonAutosuggest2.$input, "mustarastas");
53
+ yield mustarastasMock.resolve([{
54
+ key: "MX.33106",
55
+ value: "mustarastas",
56
+ }]);
57
+ yield taxonAutosuggest2.waitForPopoverToHide();
58
+ yield mockQueue.remove();
59
+ yield form.$locateButton("gatherings.0.units.0", "delete").click();
60
+ expect(yield taxonAutosuggest1.$input.getAttribute("value")).toBe("mustarastas");
61
+ }));
62
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const test_utils_1 = require("./test-utils");
13
+ describe("Collection contest form (MHL.25)", () => {
14
+ let form;
15
+ describe("Without data", () => {
16
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
17
+ form = yield test_utils_1.createForm({ id: "MHL.25" });
18
+ }));
19
+ it("adds observation", () => __awaiter(void 0, void 0, void 0, function* () {
20
+ yield form.$locateButton("gatherings", "add").click();
21
+ }));
22
+ it("shows gathering date and hides unit date", () => __awaiter(void 0, void 0, void 0, function* () {
23
+ expect(yield form.$locate("gatherings.0.dateBegin").isDisplayed()).toBe(true);
24
+ expect(yield form.$locate("gatherings.0.units.0.unitGathering.dateBegin").isPresent()).toBe(false);
25
+ }));
26
+ describe("injected date field", () => {
27
+ let dateWidget;
28
+ it("is date widget", () => __awaiter(void 0, void 0, void 0, function* () {
29
+ dateWidget = form.getDateWidget("gatherings.0.dateBegin");
30
+ expect(yield dateWidget.$input.isDisplayed()).toBe(true);
31
+ }));
32
+ it("onChange works", () => __awaiter(void 0, void 0, void 0, function* () {
33
+ yield dateWidget.buttons.$today.click();
34
+ expect((yield dateWidget.$input.getAttribute("value")).length).not.toBe(0);
35
+ }));
36
+ });
37
+ });
38
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const test_utils_1 = require("./test-utils");
13
+ const protractor_1 = require("protractor");
14
+ describe("dataset form (MHL.731)", () => {
15
+ let form;
16
+ let nameInEnglishInput$;
17
+ let nameInFinnishInput$;
18
+ const uiSchemaContext = {
19
+ defaultPersonsResponsible: "Test, User"
20
+ };
21
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
22
+ form = yield test_utils_1.createForm({ id: "MHL.731" });
23
+ yield form.setState({ uiSchemaContext });
24
+ nameInEnglishInput$ = form.$locate("datasetName_en").$("input");
25
+ nameInFinnishInput$ = form.$locate("datasetName_fi").$("input");
26
+ }));
27
+ it("sets correct name to dataset when adding a name in one language", () => __awaiter(void 0, void 0, void 0, function* () {
28
+ const name = "name";
29
+ yield nameInEnglishInput$.sendKeys(name + protractor_1.protractor.Key.TAB);
30
+ const formData = yield form.getChangedData();
31
+ expect(formData.datasetName["en"]).toBe(name);
32
+ }));
33
+ it("sets correct name to dataset when adding a name in two languages", () => __awaiter(void 0, void 0, void 0, function* () {
34
+ const name1 = "name in English";
35
+ const name2 = "name in Finnish";
36
+ yield nameInEnglishInput$.clear();
37
+ yield nameInEnglishInput$.sendKeys(name1);
38
+ yield nameInFinnishInput$.sendKeys(name2 + protractor_1.protractor.Key.TAB);
39
+ const formData = yield form.getChangedData();
40
+ expect(formData.datasetName["en"]).toBe(name1);
41
+ expect(formData.datasetName["fi"]).toBe(name2);
42
+ }));
43
+ it("sets correct name to personsResponsible field when clicking a me button", () => __awaiter(void 0, void 0, void 0, function* () {
44
+ yield form.$locate("personsResponsible").$("button").click();
45
+ const $input = form.$locate("personsResponsible").$("input");
46
+ expect(yield $input.getAttribute("value")).toBe("Test, User");
47
+ const formData = yield form.getChangedData();
48
+ expect(formData.personsResponsible).toBe("Test, User");
49
+ }));
50
+ });