@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
@@ -0,0 +1,272 @@
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("Trip report (JX.519) autosuggestions", () => {
15
+ let form;
16
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
17
+ form = yield test_utils_1.createForm({ id: "JX.519" });
18
+ yield test_utils_1.putForeignMarkerToMap();
19
+ }));
20
+ describe("observers", () => {
21
+ it("when two unknown and 1st is removed, the autosuggest input value updated to the value of the 1st", () => __awaiter(void 0, void 0, void 0, function* () {
22
+ // TableField has problems, so ids here are erratic but correct
23
+ const $deleteObserver = form.$locateButton("gatheringEvent.0", "delete");
24
+ const $addObserver = form.$locateButton("gatheringEvent", "add");
25
+ const observer1$ = form.$getInputWidget("gatheringEvent.0.leg");
26
+ const observer2$ = form.$getInputWidget("gatheringEvent.1.leg");
27
+ yield $deleteObserver.click();
28
+ yield $addObserver.click();
29
+ yield $addObserver.click();
30
+ yield observer1$.sendKeys("matti");
31
+ yield observer2$.sendKeys("teppo");
32
+ yield $deleteObserver.click();
33
+ expect(yield observer1$.getAttribute("value")).toBe("teppo");
34
+ }));
35
+ });
36
+ describe("taxon census", () => {
37
+ let censusAutosuggest;
38
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
39
+ const scopeField = form.getScopeField("gatherings.0");
40
+ yield protractor_1.browser.wait(protractor_1.protractor.ExpectedConditions.visibilityOf(scopeField.$button), 1000, "gatherings additionals button didn't show up");
41
+ yield scopeField.$button.click();
42
+ yield scopeField.$$listItems.last().click();
43
+ censusAutosuggest = form.getTaxonAutosuggestWidget("gatherings.0.taxonCensus.0.censusTaxonID");
44
+ }));
45
+ it("selects on click", () => __awaiter(void 0, void 0, void 0, function* () {
46
+ yield protractor_1.browser.wait(protractor_1.protractor.ExpectedConditions.visibilityOf(form.$locateButton("gatherings.0.taxonCensus", "add")), 1000, "taxon census didn't show up");
47
+ yield form.$locateButton("gatherings.0.taxonCensus", "add").click();
48
+ yield censusAutosuggest.$input.sendKeys("aves");
49
+ yield censusAutosuggest.waitForSuggestionsToLoad();
50
+ yield censusAutosuggest.$$suggestions.first().click();
51
+ yield censusAutosuggest.waitForGlyph();
52
+ expect(yield censusAutosuggest.isSuggested()).toBe(true, "wasn't displayed as suggested");
53
+ expect(yield censusAutosuggest.$input.getAttribute("value")).toBe("Aves", "Input value wasn't the clicked value");
54
+ }));
55
+ });
56
+ describe("unit taxon", () => {
57
+ let taxonAutosuggest;
58
+ let $addUnit;
59
+ const moveMouseAway = (locator) => protractor_1.browser.actions()
60
+ .mouseMove(form.$locate(locator).getWebElement(), { x: -100, y: -100 })
61
+ .perform();
62
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
63
+ taxonAutosuggest = form.getTaxonAutosuggestWidget("gatherings.0.units.0.identifications.0.taxon");
64
+ $addUnit = form.$locateButton("gatherings.0.units", "add");
65
+ }));
66
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
67
+ if (yield form.$locate("gatherings.0.units.0.identifications.0.taxon").isPresent()) {
68
+ yield moveMouseAway("gatherings.0.units.0.identifications.0.taxon");
69
+ }
70
+ }));
71
+ it("clicking any match selects it", () => __awaiter(void 0, void 0, void 0, function* () {
72
+ yield taxonAutosuggest.$input.sendKeys("kett");
73
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
74
+ yield taxonAutosuggest.$$suggestions.first().click();
75
+ yield taxonAutosuggest.waitForGlyph();
76
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
77
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
78
+ yield test_utils_1.removeUnit(0, 0);
79
+ yield $addUnit.click();
80
+ }));
81
+ it("typing exact match and pressing enter after waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
82
+ yield taxonAutosuggest.$input.sendKeys("kettu");
83
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
84
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.ENTER);
85
+ yield taxonAutosuggest.waitForGlyph();
86
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
87
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
88
+ yield test_utils_1.removeUnit(0, 0);
89
+ yield $addUnit.click();
90
+ }));
91
+ it("typing exact match and pressing enter without waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
92
+ yield taxonAutosuggest.$input.sendKeys("kettu");
93
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.ENTER);
94
+ yield taxonAutosuggest.waitForGlyph();
95
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
96
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
97
+ yield test_utils_1.removeUnit(0, 0);
98
+ yield $addUnit.click();
99
+ }));
100
+ it("typing exact match and pressing tab after waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
101
+ yield taxonAutosuggest.$input.sendKeys("kettu");
102
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
103
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
104
+ yield taxonAutosuggest.waitForGlyph();
105
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
106
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
107
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
108
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
109
+ yield protractor_1.browser.sleep(100);
110
+ yield test_utils_1.removeUnit(0, 0);
111
+ yield $addUnit.click();
112
+ }));
113
+ it("typing exact match and pressing tab without waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
114
+ yield taxonAutosuggest.$input.sendKeys("kettu");
115
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
116
+ yield taxonAutosuggest.waitForGlyph();
117
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
118
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
119
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
120
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
121
+ yield protractor_1.browser.sleep(100);
122
+ yield test_utils_1.removeUnit(0, 0);
123
+ yield $addUnit.click();
124
+ }));
125
+ it("typing non exact match and blurring after waiting for suggestion list shows warning sign", () => __awaiter(void 0, void 0, void 0, function* () {
126
+ yield taxonAutosuggest.$input.sendKeys("kett");
127
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
128
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
129
+ yield taxonAutosuggest.waitForGlyph();
130
+ expect(yield taxonAutosuggest.isNonsuggested()).toBe(true);
131
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kett");
132
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
133
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
134
+ yield protractor_1.browser.sleep(100);
135
+ yield test_utils_1.removeUnit(0, 0);
136
+ yield $addUnit.click();
137
+ }));
138
+ it("typing non exact match and blurring without waiting for suggestion list shows warning sign", () => __awaiter(void 0, void 0, void 0, function* () {
139
+ yield taxonAutosuggest.$input.sendKeys("kett");
140
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
141
+ yield taxonAutosuggest.waitForGlyph();
142
+ expect(yield taxonAutosuggest.isNonsuggested()).toBe(true);
143
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kett");
144
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
145
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
146
+ yield protractor_1.browser.sleep(100);
147
+ yield test_utils_1.removeUnit(0, 0);
148
+ yield $addUnit.click();
149
+ }));
150
+ it("typing exact match and blurring after waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
151
+ yield taxonAutosuggest.$input.sendKeys("kettu");
152
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
153
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
154
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
155
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
156
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
157
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
158
+ yield protractor_1.browser.sleep(100);
159
+ yield test_utils_1.removeUnit(0, 0);
160
+ yield $addUnit.click();
161
+ }));
162
+ it("typing exact match and blurring before waiting for suggestion list selects exact match", () => __awaiter(void 0, void 0, void 0, function* () {
163
+ yield taxonAutosuggest.$input.sendKeys("kettu");
164
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
165
+ yield taxonAutosuggest.waitForGlyph();
166
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
167
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe("kettu");
168
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
169
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
170
+ yield protractor_1.browser.sleep(100);
171
+ yield test_utils_1.removeUnit(0, 0);
172
+ yield $addUnit.click();
173
+ }));
174
+ it("typing exact match with sp suffix keeps sp suffix in value but select the exact match", () => __awaiter(void 0, void 0, void 0, function* () {
175
+ for (const suffix of ["sp", "spp", "sp.", "spp."]) {
176
+ yield taxonAutosuggest.$input.sendKeys(`parus ${suffix}`);
177
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.TAB);
178
+ yield taxonAutosuggest.waitForGlyph();
179
+ expect(yield taxonAutosuggest.isSuggested()).toBe(true);
180
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe(`parus ${suffix}`);
181
+ expect(yield test_utils_1.getFocusedElement().getAttribute("id")).not.toBe(yield taxonAutosuggest.$input.getAttribute("id"), "next elem wasn't focused");
182
+ yield test_utils_1.getFocusedElement().sendKeys(protractor_1.protractor.Key.TAB); // Tab to get rid of toggler tooltip obscuring elements
183
+ yield protractor_1.browser.sleep(100);
184
+ yield test_utils_1.removeUnit(0, 0);
185
+ yield $addUnit.click();
186
+ }
187
+ }));
188
+ describe("power user", () => {
189
+ it("is shown power taxon field", () => __awaiter(void 0, void 0, void 0, function* () {
190
+ expect(yield taxonAutosuggest.$powerUserButton.isDisplayed()).toBe(true);
191
+ }));
192
+ it("click toggles power user mode on/off", () => __awaiter(void 0, void 0, void 0, function* () {
193
+ yield taxonAutosuggest.$powerUserButton.click();
194
+ expect(yield taxonAutosuggest.powerUserButtonIsActive()).toBe(true);
195
+ yield taxonAutosuggest.$powerUserButton.click();
196
+ expect(yield taxonAutosuggest.powerUserButtonIsActive()).toBe(false);
197
+ }));
198
+ it("clicking any match after waiting for suggestion list works", () => __awaiter(void 0, void 0, void 0, function* () {
199
+ yield taxonAutosuggest.$powerUserButton.click();
200
+ yield taxonAutosuggest.$input.sendKeys("kettu");
201
+ yield taxonAutosuggest.waitForSuggestionsToLoad();
202
+ yield taxonAutosuggest.$$suggestions.last().click();
203
+ yield protractor_1.browser.wait(protractor_1.protractor.ExpectedConditions.visibilityOf(form.$locate("gatherings.0.units.1")), 5000, "auto added unit didn't appear");
204
+ expect(yield form.$locate("gatherings.0.units.0").getTagName()).toBe("tr", "entered unit wasn't deactivated");
205
+ const enteredUnitTaxon = yield form.$locate("gatherings.0.units.0").$$("td").first().getText();
206
+ expect(enteredUnitTaxon).toBe("ravunsyöjäkettu");
207
+ }));
208
+ it("entering second unit auto adds", () => __awaiter(void 0, void 0, void 0, function* () {
209
+ const _taxonAutosuggest = form.getTaxonAutosuggestWidget("gatherings.0.units.1.identifications.0.taxon");
210
+ yield _taxonAutosuggest.$input.sendKeys("kettu");
211
+ yield _taxonAutosuggest.waitForSuggestionsToLoad();
212
+ yield _taxonAutosuggest.$$suggestions.last().click();
213
+ yield protractor_1.browser.wait(protractor_1.protractor.ExpectedConditions.visibilityOf(form.$locate("gatherings.0.units.2")), 5000, "auto added unit didn't appear");
214
+ expect(yield form.$locate("gatherings.0.units.1").getTagName()).toBe("tr", "entered unit wasn't deactivated");
215
+ const enteredUnitTaxon = yield form.$locate("gatherings.0.units.1").$$("td").first().getText();
216
+ expect(enteredUnitTaxon).toBe("ravunsyöjäkettu");
217
+ yield test_utils_1.removeUnit(0, 0);
218
+ yield test_utils_1.removeUnit(0, 0);
219
+ yield test_utils_1.removeUnit(0, 0);
220
+ yield $addUnit.click();
221
+ yield taxonAutosuggest.$powerUserButton.click();
222
+ }));
223
+ it("entering exact match adds new unit automatically", () => __awaiter(void 0, void 0, void 0, function* () {
224
+ yield taxonAutosuggest.$powerUserButton.click();
225
+ yield taxonAutosuggest.$input.sendKeys("susi");
226
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.ENTER);
227
+ yield protractor_1.browser.wait(protractor_1.protractor.ExpectedConditions.visibilityOf(form.$locate("gatherings.0.units.1")), 5000, "New unit didn't show up");
228
+ expect(yield form.$locate("gatherings.0.units.0").getTagName()).toBe("tr");
229
+ expect(yield form.$locate("gatherings.0.units.1").getTagName()).toBe("div");
230
+ yield test_utils_1.removeUnit(0, 1);
231
+ yield taxonAutosuggest.$powerUserButton.click();
232
+ expect(yield taxonAutosuggest.powerUserButtonIsActive()).toBe(false);
233
+ yield test_utils_1.removeUnit(0, 0);
234
+ yield $addUnit.click();
235
+ }));
236
+ });
237
+ it("works when autocomplete response has autocompleteSelectedName", () => __awaiter(void 0, void 0, void 0, function* () {
238
+ const mock = yield form.setMockResponse("/autocomplete/taxon");
239
+ yield taxonAutosuggest.$input.sendKeys("kuusi");
240
+ const autocompleteSelectedName = "foobar";
241
+ yield mock.resolve([{
242
+ "key": "MX.37812",
243
+ "value": "kuusi",
244
+ autocompleteSelectedName,
245
+ "payload": {
246
+ "matchingName": "kuusi",
247
+ "informalTaxonGroups": [
248
+ {
249
+ "id": "MVL.343",
250
+ "name": "Putkilokasvit"
251
+ }
252
+ ],
253
+ "scientificName": "Picea abies",
254
+ "scientificNameAuthorship": "(L.) H. Karst.",
255
+ "taxonRankId": "MX.species",
256
+ "matchType": "exactMatches",
257
+ "cursiveName": true,
258
+ "finnish": true,
259
+ "species": true,
260
+ "nameType": "MX.obsoleteVernacularName",
261
+ "vernacularName": "metsäkuusi"
262
+ }
263
+ }]);
264
+ // idk why needed...
265
+ yield protractor_1.browser.sleep(100);
266
+ yield taxonAutosuggest.$input.sendKeys(protractor_1.protractor.Key.ENTER);
267
+ yield mock.remove();
268
+ expect(yield taxonAutosuggest.$input.getAttribute("value")).toBe(autocompleteSelectedName);
269
+ expect((yield form.getChangedData()).gatherings[0].units[0].identifications[0].taxon).toBe(autocompleteSelectedName);
270
+ }));
271
+ });
272
+ });
@@ -0,0 +1 @@
1
+ export {};