@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,92 @@
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("SingleItemArrayField", () => {
15
+ const uiSchema = {
16
+ "ui:field": "SingleItemArrayField",
17
+ };
18
+ let form;
19
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
20
+ form = yield test_utils_1.createForm();
21
+ }));
22
+ describe("object", () => {
23
+ const schema = {
24
+ type: "array",
25
+ items: {
26
+ type: "object",
27
+ properties: {
28
+ a: { type: "string" }
29
+ }
30
+ }
31
+ };
32
+ const formData = [{ a: "foo" }, { a: "bar" }];
33
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
34
+ yield form.setState({ schema, uiSchema, formData });
35
+ }));
36
+ it("uses first item by default and keeps idSchema intact", () => __awaiter(void 0, void 0, void 0, function* () {
37
+ expect(yield form.$getInputWidget("0.a").isDisplayed()).toBe(true);
38
+ }));
39
+ describe("respects activeIdx and", () => {
40
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
41
+ yield form.setState({ uiSchema: Object.assign(Object.assign({}, uiSchema), { "ui:options": { activeIdx: 1 } }) });
42
+ }));
43
+ it("renders only single item", () => __awaiter(void 0, void 0, void 0, function* () {
44
+ expect(yield form.$locate("1.a").isDisplayed()).toBe(true);
45
+ expect(yield form.$locate("0.a").isPresent()).toBe(false);
46
+ }));
47
+ it("renders form data", () => __awaiter(void 0, void 0, void 0, function* () {
48
+ expect(yield form.$getInputWidget("1.a").getAttribute("value")).toBe(formData[1].a);
49
+ }));
50
+ it("onChange", () => __awaiter(void 0, void 0, void 0, function* () {
51
+ yield test_utils_1.updateValue(form.$getInputWidget("1.a"), "test");
52
+ expect(yield form.$getInputWidget("1.a").getAttribute("value")).toBe("test");
53
+ }));
54
+ it("renders item errors", () => __awaiter(void 0, void 0, void 0, function* () {
55
+ yield form.setState({
56
+ formData: [{ a: "a" }, { a: 1 }]
57
+ });
58
+ yield form.submit();
59
+ expect(yield form.$$getFieldErrors("1.a").count()).toBe(1);
60
+ }));
61
+ it("renders array errors", () => __awaiter(void 0, void 0, void 0, function* () {
62
+ yield form.setState({
63
+ schema: Object.assign(Object.assign({}, schema), { minItems: 1 }),
64
+ formData: []
65
+ });
66
+ yield form.submit();
67
+ expect(yield form.$$getFieldErrors("").count()).toBe(1);
68
+ }));
69
+ });
70
+ it("formats title", () => __awaiter(void 0, void 0, void 0, function* () {
71
+ yield form.setState({ uiSchema: Object.assign(Object.assign({}, uiSchema), { "ui:title": "test %{idx} test" }) });
72
+ expect(yield protractor_1.element(protractor_1.by.cssContainingText("span", "test 1 test")).isDisplayed()).toBe(true);
73
+ }));
74
+ it("respects titleClassName option", () => __awaiter(void 0, void 0, void 0, function* () {
75
+ yield form.setState({ uiSchema: Object.assign(Object.assign({}, uiSchema), { "ui:title": "test", "ui:options": { titleClassName: "title-format-test" } }) });
76
+ expect(yield protractor_1.$(".title-format-test").isDisplayed()).toBe(true);
77
+ }));
78
+ });
79
+ describe("string array with unique items", () => {
80
+ const schema = { type: "array", uniqueItems: true, title: "test", items: { type: "string", enum: ["a"], enumNames: ["a"] } };
81
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
82
+ yield form.setState({ schema, uiSchema });
83
+ }));
84
+ it("is rendered as select", () => __awaiter(void 0, void 0, void 0, function* () {
85
+ expect(yield form.$getEnumWidget("").$container.isDisplayed()).toBe(true);
86
+ }));
87
+ it("renders title as label", () => __awaiter(void 0, void 0, void 0, function* () {
88
+ expect(yield protractor_1.$("label").isDisplayed()).toBe(true);
89
+ expect(yield protractor_1.$("legend").isPresent()).toBe(false);
90
+ }));
91
+ });
92
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,163 @@
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("SYKE butterfly form (MHL.59)", () => {
15
+ let form;
16
+ let $firstUnitsAdd;
17
+ let $secondUnitsAdd;
18
+ let $gatheringsAdd;
19
+ it("navigate to form", () => __awaiter(void 0, void 0, void 0, function* () {
20
+ const formData = {
21
+ "gatherings": [
22
+ {
23
+ "section": 1,
24
+ "units": []
25
+ },
26
+ {
27
+ "units": []
28
+ }
29
+ ]
30
+ };
31
+ form = yield test_utils_1.createForm({ id: "MHL.59", formData });
32
+ const $$addButtons = yield form.$locate("gatherings.0.units").$$("button");
33
+ $firstUnitsAdd = $$addButtons[0];
34
+ $secondUnitsAdd = $$addButtons[1];
35
+ $gatheringsAdd = form.$locateButton("gatherings", "add");
36
+ //$lastGatheringsUnitsAdd = form.$locateButton("gatherings.1.units", "add");
37
+ }));
38
+ it("has gatherings", () => __awaiter(void 0, void 0, void 0, function* () {
39
+ expect(yield form.$locate("gatherings").isDisplayed()).toBe(true);
40
+ }));
41
+ it("has one gathering by default", () => __awaiter(void 0, void 0, void 0, function* () {
42
+ expect(yield form.$locate("gatherings.0").isDisplayed()).toBe(true);
43
+ }));
44
+ it("has gatherings add", () => __awaiter(void 0, void 0, void 0, function* () {
45
+ expect(yield $gatheringsAdd.isDisplayed()).toBe(true);
46
+ }));
47
+ it("has first unit add", () => __awaiter(void 0, void 0, void 0, function* () {
48
+ expect(yield $firstUnitsAdd.isDisplayed()).toBe(true);
49
+ }));
50
+ it("has second unit add", () => __awaiter(void 0, void 0, void 0, function* () {
51
+ expect(yield $secondUnitsAdd.isDisplayed()).toBe(true);
52
+ }));
53
+ describe("adding unit to first group", () => {
54
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
55
+ yield $firstUnitsAdd.click();
56
+ expect(yield form.$locate("gatherings.0.units.0.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
57
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
58
+ }));
59
+ it("autofocuses", () => __awaiter(void 0, void 0, void 0, function* () {
60
+ expect(yield test_utils_1.getFocusedId()).toBe(yield form.$getInputWidget("gatherings.0.units.0.identifications.0.taxonVerbatim").getAttribute("id"));
61
+ }));
62
+ });
63
+ describe("adding unit to second group", () => {
64
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
65
+ yield $secondUnitsAdd.click();
66
+ expect(yield form.$locate("gatherings.0.units.0.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
67
+ expect(yield form.$locate("gatherings.0.units.1.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
68
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
69
+ expect(yield form.$locate("gatherings.0.units.1.individualCount").isDisplayed()).toBe(true);
70
+ }));
71
+ it("autofocuses", () => __awaiter(void 0, void 0, void 0, function* () {
72
+ expect(yield test_utils_1.getFocusedId()).toBe(yield form.$getInputWidget("gatherings.0.units.1.identifications.0.taxonVerbatim").getAttribute("id"));
73
+ }));
74
+ });
75
+ describe("adding new section", () => {
76
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
77
+ yield $gatheringsAdd.click();
78
+ yield form.$locateAddition("gatherings", "section-input").sendKeys("2");
79
+ yield form.$locateAddition("gatherings", "section-input").sendKeys(protractor_1.protractor.Key.ENTER);
80
+ expect(yield form.$locate("gatherings.0.units.1.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
81
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
82
+ expect(yield form.$locate("gatherings.0.units.1.individualCount").isDisplayed()).toBe(true);
83
+ expect(yield form.$locate("gatherings.1.units.0.individualCount").isDisplayed()).toBe(true);
84
+ expect(yield form.$locate("gatherings.1.units.1.individualCount").isDisplayed()).toBe(true);
85
+ }));
86
+ // Works really but test suite fails
87
+ //it("autofocuses", async () => {
88
+ // expect(await getFocusedId() === await form.$getInputWidget("gatherings.1.gatheringFact.sykeButterFlyCensusWind").getAttribute("id")).toBe(true);
89
+ //});
90
+ });
91
+ describe("adding unit to first group again", () => {
92
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
93
+ yield $firstUnitsAdd.click();
94
+ expect(yield form.$locate("gatherings.0.units.0.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
95
+ expect(yield form.$locate("gatherings.0.units.1.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
96
+ expect(yield form.$locate("gatherings.0.units.2.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
97
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
98
+ expect(yield form.$locate("gatherings.0.units.1.individualCount").isDisplayed()).toBe(true);
99
+ expect(yield form.$locate("gatherings.0.units.2.individualCount").isDisplayed()).toBe(true);
100
+ expect(yield form.$locate("gatherings.1.units.0.individualCount").isDisplayed()).toBe(true);
101
+ expect(yield form.$locate("gatherings.1.units.1.individualCount").isDisplayed()).toBe(true);
102
+ expect(yield form.$locate("gatherings.1.units.2.individualCount").isDisplayed()).toBe(true);
103
+ }));
104
+ it("autofocuses", () => __awaiter(void 0, void 0, void 0, function* () {
105
+ expect(yield test_utils_1.getFocusedId()).toBe(yield form.$getInputWidget("gatherings.0.units.1.identifications.0.taxonVerbatim").getAttribute("id"));
106
+ }));
107
+ });
108
+ describe("adding unit to second group again", () => {
109
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
110
+ yield $secondUnitsAdd.click();
111
+ expect(yield form.$locate("gatherings.0.units.0.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
112
+ expect(yield form.$locate("gatherings.0.units.1.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
113
+ expect(yield form.$locate("gatherings.0.units.2.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
114
+ expect(yield form.$locate("gatherings.0.units.3.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
115
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
116
+ expect(yield form.$locate("gatherings.0.units.1.individualCount").isDisplayed()).toBe(true);
117
+ expect(yield form.$locate("gatherings.0.units.2.individualCount").isDisplayed()).toBe(true);
118
+ expect(yield form.$locate("gatherings.0.units.3.individualCount").isDisplayed()).toBe(true);
119
+ expect(yield form.$locate("gatherings.1.units.0.individualCount").isDisplayed()).toBe(true);
120
+ expect(yield form.$locate("gatherings.1.units.1.individualCount").isDisplayed()).toBe(true);
121
+ expect(yield form.$locate("gatherings.1.units.2.individualCount").isDisplayed()).toBe(true);
122
+ expect(yield form.$locate("gatherings.1.units.3.individualCount").isDisplayed()).toBe(true);
123
+ }));
124
+ it("autofocuses", () => __awaiter(void 0, void 0, void 0, function* () {
125
+ expect(yield test_utils_1.getFocusedId()).toBe(yield form.$getInputWidget("gatherings.0.units.3.identifications.0.taxonVerbatim").getAttribute("id"));
126
+ }));
127
+ });
128
+ describe("adding new section again", () => {
129
+ it("works", () => __awaiter(void 0, void 0, void 0, function* () {
130
+ yield $gatheringsAdd.click();
131
+ yield form.$locateAddition("gatherings", "section-input").sendKeys("3");
132
+ yield form.$locateAddition("gatherings", "section-input").sendKeys(protractor_1.protractor.Key.ENTER);
133
+ expect(yield form.$locate("gatherings.0.units.0.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
134
+ expect(yield form.$locate("gatherings.0.units.1.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
135
+ expect(yield form.$locate("gatherings.0.units.2.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
136
+ expect(yield form.$locate("gatherings.0.units.3.identifications.0.taxonVerbatim").isDisplayed()).toBe(true);
137
+ expect(yield form.$locate("gatherings.0.units.0.individualCount").isDisplayed()).toBe(true);
138
+ expect(yield form.$locate("gatherings.0.units.1.individualCount").isDisplayed()).toBe(true);
139
+ expect(yield form.$locate("gatherings.0.units.2.individualCount").isDisplayed()).toBe(true);
140
+ expect(yield form.$locate("gatherings.0.units.3.individualCount").isDisplayed()).toBe(true);
141
+ expect(yield form.$locate("gatherings.1.units.0.individualCount").isDisplayed()).toBe(true);
142
+ expect(yield form.$locate("gatherings.1.units.1.individualCount").isDisplayed()).toBe(true);
143
+ expect(yield form.$locate("gatherings.1.units.2.individualCount").isDisplayed()).toBe(true);
144
+ expect(yield form.$locate("gatherings.1.units.3.individualCount").isDisplayed()).toBe(true);
145
+ expect(yield form.$locate("gatherings.2.units.0.individualCount").isDisplayed()).toBe(true);
146
+ expect(yield form.$locate("gatherings.2.units.1.individualCount").isDisplayed()).toBe(true);
147
+ expect(yield form.$locate("gatherings.2.units.2.individualCount").isDisplayed()).toBe(true);
148
+ expect(yield form.$locate("gatherings.2.units.3.individualCount").isDisplayed()).toBe(true);
149
+ }));
150
+ // Works really but test suite fails
151
+ //it("autofocuses", async () => {
152
+ // expect(await getFocusedId() === await form.$getInputWidget("gatherings.2.gatheringFact.sykeButterFlyCensusWind").getAttribute("id")).toBe(true);
153
+ //});
154
+ });
155
+ it("removing new section works", () => __awaiter(void 0, void 0, void 0, function* () {
156
+ const gatheringsLength = (yield form.getChangedData()).gatherings.length;
157
+ yield form.$locateButton("gatherings.0", "delete").click();
158
+ const formData = yield form.getChangedData();
159
+ expect(formData.gatherings.length).not.toBe(gatheringsLength);
160
+ expect(formData.gatherings[0].section).toBe(2);
161
+ expect(formData.gatherings[formData.gatherings.length - 1].section).toBe(undefined);
162
+ }));
163
+ });
@@ -1,32 +1,53 @@
1
- import { Locator, Page } from "@playwright/test";
1
+ import { ElementFinder, ElementArrayFinder } from "protractor";
2
2
  import { JSONSchema7 } from "json-schema";
3
- import { LajiFormState } from "@luomus/laji-form/lib/components/LajiForm";
4
- import type { JSONSerializable } from "@luomus/laji-form/lib/utils";
5
- import { MapPageObject } from "@luomus/laji-map/test-export/test-utils";
6
- export declare const emptyForm: (page: Page, params?: string) => Promise<import("playwright-core").Response | null>;
7
- export declare const navigateToForm: (page: Page, formID: string, params?: string) => Promise<import("playwright-core").Response | null>;
3
+ export declare const EC: import("protractor").ProtractorExpectedConditions;
4
+ export declare const getLocatorForContextId: (contextId: number) => (path: string) => string;
5
+ export declare const emptyForm: (params?: string) => Promise<any>;
6
+ export declare const navigateToForm: (formID: string, params?: string) => Promise<any>;
8
7
  export declare const lajiFormLocator: (path: string) => string;
9
- export declare const getFocusedElement: (page: Page) => Locator;
8
+ export declare const lajiFormLocate: (str: string) => ElementFinder;
9
+ export declare const getFocusedElement: () => import("selenium-webdriver").WebElementPromise;
10
+ export declare const getFocusedId: () => import("selenium-webdriver").promise.Promise<string>;
10
11
  export interface Mock {
11
12
  resolve: (response?: any, raw?: boolean) => Promise<void>;
12
13
  reject: (response?: any, raw?: boolean) => Promise<void>;
13
14
  remove: () => Promise<void>;
14
15
  }
15
- export declare type ImageArrayFieldPO = ReturnType<Form["getImageArrayField"]>;
16
- export declare type TaxonAutosuggestWidgetPO = ReturnType<Form["getTaxonAutosuggestWidget"]>;
17
- export declare type UnitListShorthandArrayFieldPO = ReturnType<Form["getUnitListShorthandArrayField"]>;
18
- export declare type EnumWidgetPO = ReturnType<typeof getEnumWidgetForContainer>;
19
- export declare type DateWidgetPO = ReturnType<Form["getDateWidget"]>;
20
- export declare type BooleanWidgetPO = ReturnType<Form["getBooleanWidget"]>;
21
- export declare type NamedPlaceChooserPO = ReturnType<Form["getNamedPlaceChooser"]>;
22
- declare function getEnumWidgetForContainer($container: Locator): {
23
- $container: Locator;
16
+ export interface DateWidgetPO {
17
+ $container: ElementFinder;
18
+ $input: ElementFinder;
19
+ buttons: {
20
+ $today: ElementFinder;
21
+ $yesterday: ElementFinder;
22
+ $same: ElementFinder;
23
+ $date: ElementFinder;
24
+ $time: ElementFinder;
25
+ };
26
+ calendar: {
27
+ $today: ElementFinder;
28
+ waitAnimation: () => Promise<void>;
29
+ };
30
+ clock: {
31
+ "$01:00": ElementFinder;
32
+ waitAnimation: () => Promise<void>;
33
+ };
34
+ }
35
+ export interface BooleanWidgetPO {
36
+ $container: ElementFinder;
37
+ $true: ElementFinder;
38
+ $false: ElementFinder;
39
+ $undefined: ElementFinder;
40
+ $active: ElementFinder;
41
+ $nonactive: ElementFinder;
42
+ }
43
+ export interface EnumWidgetPOI {
44
+ $container: ElementFinder;
24
45
  openEnums: () => Promise<void>;
25
- $enumContainer: Locator;
26
- $enums: Locator;
27
- $input: Locator;
28
- };
29
- interface DemoPageProps {
46
+ $enumContainer: ElementFinder;
47
+ $$enums: ElementArrayFinder;
48
+ $input: ElementFinder;
49
+ }
50
+ interface FormProps {
30
51
  schema?: JSONSchema7;
31
52
  uiSchema?: any;
32
53
  formData?: any;
@@ -37,175 +58,127 @@ interface DemoPageProps {
37
58
  localFormData?: boolean | string;
38
59
  }
39
60
  export declare class Form {
40
- protected page: Page;
41
- protected $locator: Locator;
42
- constructor(page: Page, $locator?: Locator);
43
- $form: Locator;
44
- /** Locates a field with a dot separated identifier, e.g. "gatherings.0.units.1" */
45
- $locate(path: string): Locator;
46
- /** Locates a button for a field with a dot separated identifier, e.g. "gatherings.0.units.1" */
47
- $locateButton(path: string, selector: string, locateFromBody?: boolean): Locator;
48
- /** Locates some additional element for a field with a dot separated identifier, e.g. "gatherings.0.units.1" */
49
- $locateAddition(path: string, selector: string, locateFromBody?: boolean): Locator;
61
+ props: FormProps;
62
+ contextId: number;
63
+ constructor(params?: FormProps);
64
+ initialize(beforeInit?: (form: Form) => Promise<void>, contextId?: number): Promise<void>;
65
+ e(path: string): Promise<any>;
66
+ setState(state: any): Promise<any>;
67
+ getState(): Promise<any>;
68
+ submit(): Promise<void>;
69
+ startSubmit(): Promise<void>;
70
+ submitOnlySchemaValidations(): Promise<void>;
71
+ waitUntilBlockingLoaderHides(timeout?: number): import("selenium-webdriver").promise.Promise<unknown>;
72
+ getSubmittedData(): Promise<any>;
73
+ getChangedData(): Promise<any>;
74
+ getPropsData(): Promise<any>;
75
+ $form: ElementFinder;
76
+ $locate(path: string): ElementFinder;
77
+ $locateButton(path: string, selector: string): ElementFinder;
78
+ $locateAddition(path: string, selector: string): ElementFinder;
79
+ getMockStr: (path: string, query: any) => string;
80
+ setMockResponse(path: string, query?: any): Promise<Mock>;
81
+ createMockResponseQueue(path: string, query?: any): Promise<{
82
+ create: () => Promise<{
83
+ resolve: (response: any, raw?: boolean | undefined) => import("selenium-webdriver").promise.Promise<unknown>;
84
+ reject: (response: any, raw?: boolean | undefined) => import("selenium-webdriver").promise.Promise<unknown>;
85
+ }>;
86
+ remove: () => import("selenium-webdriver").promise.Promise<unknown>;
87
+ }>;
50
88
  createValidatorPO: (type: "error" | "warning") => {
51
- $all: Locator;
52
- $panel: Locator;
89
+ $$all: ElementArrayFinder;
90
+ $panel: ElementFinder;
53
91
  };
54
92
  errors: {
55
- $all: Locator;
56
- $panel: Locator;
93
+ $$all: ElementArrayFinder;
94
+ $panel: ElementFinder;
57
95
  };
58
96
  warnings: {
59
- $all: Locator;
60
- $panel: Locator;
97
+ $$all: ElementArrayFinder;
98
+ $panel: ElementFinder;
61
99
  };
62
100
  failedJobs: {
63
- $container: Locator;
64
- $errors: Locator;
65
- };
66
- $runningJobs: Locator;
67
- $acknowledgeWarnings: Locator;
68
- $blocker: Locator;
69
- $mapFieldFullscreenMap: Locator;
70
- getBooleanWidget(str: string): {
71
- $container: Locator;
72
- $true: Locator;
73
- $false: Locator;
74
- $undefined: Locator;
75
- $active: Locator;
76
- $nonactive: Locator;
77
- };
78
- $getInputWidget(str: string): Locator;
79
- $getTextareaWidget(str: string): Locator;
80
- $getEnumWidget(str: string): {
81
- $container: Locator;
82
- openEnums: () => Promise<void>;
83
- $enumContainer: Locator;
84
- $enums: Locator;
85
- $input: Locator;
86
- };
87
- getDateWidget(str: string): {
88
- $container: Locator;
89
- $input: Locator;
90
- buttons: {
91
- $today: Locator;
92
- $yesterday: Locator;
93
- $same: Locator;
94
- $date: Locator;
95
- $time: Locator;
96
- };
97
- calendar: {
98
- $today: Locator;
99
- };
100
- clock: {
101
- "$01:00": Locator;
102
- };
103
- };
104
- $getFieldErrors(str: string): Locator;
105
- getImageArrayField: (lajiFormLocator: string) => {
106
- $container: Locator;
107
- $imgContainers: Locator;
108
- $imgs: Locator;
109
- $imgLoading: Locator;
110
- $imgRemoves: Locator;
111
- $imgRemoveConfirmButton: (id: string) => Locator;
112
- $dropzone: Locator;
113
- $modal: Locator;
114
- $addModal: Locator;
115
- $modalClose: Locator;
116
- $addModalCancel: Locator;
117
- };
118
- getTaxonAutosuggestWidget: (lajiFormLocator: string) => {
119
- $input: Locator;
120
- $suggestionsContainer: Locator;
121
- $suggestions: Locator;
122
- $getGlyph: (glyph: string) => Locator;
123
- $suggestedGlyph: Locator;
124
- $nonsuggestedGlyph: Locator;
125
- $powerUserButton: Locator;
126
- };
127
- getScopeField: (lajiFormLocator: string) => {
128
- $button: Locator;
129
- $listItems: Locator;
130
- modal: {
131
- $container: Locator;
132
- $close: Locator;
133
- $loadingGroup: Locator;
134
- $groupTitles: Locator;
135
- $listItems: Locator;
136
- };
101
+ $container: ElementFinder;
137
102
  };
138
- getLocationChooser: (lajiFormLocator: string) => {
139
- $button: Locator;
140
- modal: {
141
- $container: Locator;
142
- map: MapPageObject;
143
- };
144
- peeker: {
145
- $popover: Locator;
146
- $map: Locator;
147
- $markers: Locator;
148
- };
149
- };
150
- getUnitListShorthandArrayField: (lajiFormLocator: string) => {
151
- $button: Locator;
152
- modal: {
153
- $input: Locator;
154
- $addButton: Locator;
155
- };
156
- };
157
- /** Draws a marker to the center of a laji-map rendered to the given locator. The locator defaults to "gatherings" */
158
- putMarkerToMap(lajiFormLocator?: string): Promise<void>;
159
- updateValue($input: Locator, value: string, blur?: boolean): Promise<void>;
160
- $getShortHandWidget: (lajiFormLocator: string) => Locator;
161
- getGeocoder: (lajiFormLocator?: string) => {
162
- $btn: Locator;
163
- $spinner: Locator;
164
- };
165
- getNamedPlaceChooser: () => {
166
- select: {
167
- $container: Locator;
168
- openEnums: () => Promise<void>;
169
- $enumContainer: Locator;
170
- $enums: Locator;
171
- $input: Locator;
172
- };
173
- mapPopup: {
174
- $container: Locator;
175
- $useBtn: Locator;
176
- };
177
- $alert: Locator;
178
- $close: Locator;
179
- };
180
- }
181
- export declare class DemoPageForm extends Form {
182
- props: DemoPageProps;
183
- constructor(page: Page, params?: DemoPageProps);
184
- initialize(beforeInit?: (form: DemoPageForm) => Promise<void>): Promise<void>;
185
- e<T>(path: string): Promise<T>;
186
- setState(state: any): Promise<unknown>;
187
- getState(): Promise<Pick<LajiFormState, "formData">>;
188
- submit(): Promise<void>;
189
- submitOnlySchemaValidations(): Promise<unknown>;
190
- getSubmittedData(): Promise<JSONSerializable>;
191
- getChangedData(): Promise<JSONSerializable>;
192
- getPropsData(): Promise<JSONSerializable>;
193
- getMockStr: (path: string, query: any) => string;
194
- setMockResponse(path: string, query?: any): Promise<Mock>;
195
- createMockResponseQueue(path: string, query?: any): Promise<{
196
- create: () => Promise<{
197
- resolve: (response: any, raw?: boolean | undefined) => Promise<unknown>;
198
- reject: (response: any, raw?: boolean | undefined) => Promise<unknown>;
199
- }>;
200
- remove: () => Promise<unknown>;
201
- }>;
103
+ $acknowledgeWarnings: ElementFinder;
104
+ isBlocked: () => import("selenium-webdriver").promise.Promise<boolean>;
202
105
  mockImageUpload: (lajiFormLocator: string) => Promise<{
203
106
  resolve: () => Promise<void>;
204
107
  remove: () => Promise<void>;
205
108
  }>;
109
+ getBooleanWidget(str: string): BooleanWidgetPO;
110
+ $getInputWidget(str: string): ElementFinder;
111
+ $getTextareaWidget(str: string): ElementFinder;
112
+ $getEnumWidget(str: string): EnumWidgetPOI;
113
+ getDateWidget(str: string): DateWidgetPO;
114
+ $$getFieldErrors(str: string): ElementArrayFinder;
115
+ _getImageArrayField: (form: Form) => (lajiFormLocator: string) => ImageArrayFieldPOI;
116
+ getImageArrayField: (lajiFormLocator: string) => ImageArrayFieldPOI;
117
+ _getTaxonAutosuggestWidget: (form: Form) => (lajiFormLocator: string) => TaxonAutosuggestWidgetPOI;
118
+ getTaxonAutosuggestWidget: (lajiFormLocator: string) => TaxonAutosuggestWidgetPOI;
119
+ getScopeField: (lajiFormLocator: string) => {
120
+ $button: ElementFinder;
121
+ $$listItems: ElementArrayFinder;
122
+ };
123
+ getUnitListShorthandArrayField: (lajiFormLocator: string) => UnitListShorthandArrayFieldPOI;
124
+ }
125
+ export declare const isDisplayed: ($elem: ElementFinder) => Promise<boolean>;
126
+ export interface ImageArrayFieldPOI {
127
+ $container: ElementFinder;
128
+ $$imgs: ElementArrayFinder;
129
+ $$imgInteractives: ElementArrayFinder;
130
+ $$imgRemoves: ElementArrayFinder;
131
+ $imgRemoveConfirmButton: (id: string) => ElementFinder;
132
+ $dropzone: ElementFinder;
133
+ $modal: ElementFinder;
134
+ $modalClose: ElementFinder;
135
+ }
136
+ export interface TaxonAutosuggestWidgetPOI {
137
+ $input: ElementFinder;
138
+ $suggestionsContainer: ElementFinder;
139
+ $$suggestions: ElementArrayFinder;
140
+ waitForSuggestionsToLoad: () => Promise<void>;
141
+ waitForGlyph: () => Promise<void>;
142
+ isSuggested: () => Promise<boolean>;
143
+ isNonsuggested: () => Promise<boolean>;
144
+ $powerUserButton: ElementFinder;
145
+ powerUserButtonIsActive: () => Promise<boolean>;
146
+ waitForPopoverToHide: () => Promise<void>;
206
147
  }
207
- export declare function createForm(page: Page, props?: DemoPageProps, beforeInit?: (form: Form) => Promise<void>): Promise<DemoPageForm>;
148
+ export interface UnitListShorthandArrayFieldPOI {
149
+ $button: ElementFinder;
150
+ modal: {
151
+ $input: ElementFinder;
152
+ $addButton: ElementFinder;
153
+ };
154
+ }
155
+ export declare class NamedPlaceChooserPO {
156
+ select: EnumWidgetPOI;
157
+ mapPopup: {
158
+ $container: ElementFinder;
159
+ $useBtn: ElementFinder;
160
+ };
161
+ $alert: ElementFinder;
162
+ $close: ElementFinder;
163
+ }
164
+ export declare function createForm(props?: FormProps, beforeInit?: (form: Form) => Promise<void>): Promise<Form>;
165
+ export declare function waitUntilBlockingLoaderHides(timeout?: number): import("selenium-webdriver").promise.Promise<unknown>;
166
+ export declare function putForeignMarkerToMap(): Promise<void>;
167
+ export declare function removeUnit(gatheringIdx: number, unitIdx: number): Promise<void>;
168
+ export declare const updateValue: ($input: ElementFinder, value: string, blur?: boolean) => Promise<void>;
169
+ export declare const mockImageMetadata: {
170
+ id: string;
171
+ capturerVerbatim: string[];
172
+ intellectualOwner: string;
173
+ intellectualRights: string;
174
+ fullURL: string;
175
+ largeURL: string;
176
+ squareThumbnailURL: string;
177
+ thumbnailURL: string;
178
+ originalURL: string;
179
+ uploadedBy: string;
180
+ "@context": string;
181
+ };
208
182
  export declare const filterUUIDs: (any: any) => any;
209
183
  export declare const maybeJSONPointerToLocator: (pointer: string) => string;
210
- export declare const getRemoveUnit: (page: Page) => (gatheringIdx: number, unitIdx: number) => Promise<void>;
211
184
  export {};