@luomus/laji-form 15.1.1 → 15.1.2

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 (54) hide show
  1. package/dist/laji-form.js +1 -1
  2. package/dist/styles.css +90 -81
  3. package/package.json +3 -3
  4. package/test-export/test-utils.d.ts +194 -121
  5. package/test-export/test-utils.js +221 -207
  6. package/tsconfig.test.json +1 -1
  7. package/test-export/array-spec.d.ts +0 -1
  8. package/test-export/array-spec.js +0 -204
  9. package/test-export/bird-point-count-spec.d.ts +0 -1
  10. package/test-export/bird-point-count-spec.js +0 -62
  11. package/test-export/collection-contest-form-spec.d.ts +0 -1
  12. package/test-export/collection-contest-form-spec.js +0 -38
  13. package/test-export/dataset-form-spec.d.ts +0 -1
  14. package/test-export/dataset-form-spec.js +0 -50
  15. package/test-export/date-time-widget-spec.d.ts +0 -1
  16. package/test-export/date-time-widget-spec.js +0 -188
  17. package/test-export/geocoder-spec.d.ts +0 -1
  18. package/test-export/geocoder-spec.js +0 -135
  19. package/test-export/image-array-spec.d.ts +0 -1
  20. package/test-export/image-array-spec.js +0 -94
  21. package/test-export/inject-field-spec.d.ts +0 -1
  22. package/test-export/inject-field-spec.js +0 -148
  23. package/test-export/internal-uuids-spec.d.ts +0 -1
  24. package/test-export/internal-uuids-spec.js +0 -157
  25. package/test-export/invasive-species-eradication-np-spec.d.ts +0 -1
  26. package/test-export/invasive-species-eradication-np-spec.js +0 -18
  27. package/test-export/invasive-species-eradication-spec.d.ts +0 -1
  28. package/test-export/invasive-species-eradication-spec.js +0 -25
  29. package/test-export/line-transect-spec.d.ts +0 -1
  30. package/test-export/line-transect-spec.js +0 -121
  31. package/test-export/mobile-form-spec.d.ts +0 -1
  32. package/test-export/mobile-form-spec.js +0 -84
  33. package/test-export/nafi-spec.d.ts +0 -1
  34. package/test-export/nafi-spec.js +0 -85
  35. package/test-export/select-widget-spec.d.ts +0 -1
  36. package/test-export/select-widget-spec.js +0 -68
  37. package/test-export/single-item-array-field-spec.d.ts +0 -1
  38. package/test-export/single-item-array-field-spec.js +0 -92
  39. package/test-export/syke-butterfly-spec.d.ts +0 -1
  40. package/test-export/syke-butterfly-spec.js +0 -163
  41. package/test-export/transaction-form-spec.d.ts +0 -1
  42. package/test-export/transaction-form-spec.js +0 -63
  43. package/test-export/trip-report-autosuggest-spec.d.ts +0 -1
  44. package/test-export/trip-report-autosuggest-spec.js +0 -272
  45. package/test-export/trip-report-spec.d.ts +0 -1
  46. package/test-export/trip-report-spec.js +0 -456
  47. package/test-export/unit-list-shorthand-array-field-spec.d.ts +0 -1
  48. package/test-export/unit-list-shorthand-array-field-spec.js +0 -71
  49. package/test-export/validation-spec.d.ts +0 -1
  50. package/test-export/validation-spec.js +0 -336
  51. package/test-export/water-bird-spec.d.ts +0 -1
  52. package/test-export/water-bird-spec.js +0 -30
  53. package/test-export/wbc-spec.d.ts +0 -1
  54. package/test-export/wbc-spec.js +0 -82
package/dist/styles.css CHANGED
@@ -750,10 +750,8 @@ Version: 0.0.6
750
750
  height: 40%;
751
751
  position: absolute;
752
752
  right: 21px;
753
- -ms-transform-origin: 50% 50%;
754
- transform-origin: 50% 50%;
755
- -ms-transform: skew(150deg) rotate(-40deg);
756
- transform: skew(150deg) rotate(-40deg);
753
+ transform-origin: 50% 50%;
754
+ transform: skew(150deg) rotate(-40deg);
757
755
  width: 60%;
758
756
  z-index: -1; }
759
757
 
@@ -775,80 +773,80 @@ Version: 0.0.6
775
773
  .vector-marker .icon-white {
776
774
  color: #fff; }
777
775
 
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;
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);
837
788
  }
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
- }
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;
835
+ }
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
+ }
852
850
 
853
851
  /* global styling */
854
852
  .leaflet-control-geosearch *,
@@ -1902,6 +1900,8 @@ li.laji-map-layer-control-layer-item.active span {
1902
1900
  z-index: -1;
1903
1901
  }
1904
1902
 
1903
+
1904
+
1905
1905
  .leaflet-measure-path-measurement {
1906
1906
  position: absolute;
1907
1907
  font-size: 10px;
@@ -2213,10 +2213,18 @@ min-height: 20px;
2213
2213
 
2214
2214
  .laji-form .laji-form-help-glyph {
2215
2215
  margin-left: 5px;
2216
- border-radius: 9px;
2217
- color: white;
2218
- padding: 0px 6px;
2216
+ border-radius: 100%;
2219
2217
  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: "?";
2220
2228
  }
2221
2229
 
2222
2230
  .laji-form .laji-form-map-container {
@@ -2551,7 +2559,8 @@ min-height: 20px;
2551
2559
  .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,
2552
2560
  .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,
2553
2561
  .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,
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 {
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 {
2555
2564
  padding-right:3px;
2556
2565
  padding-left:3px;
2557
2566
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luomus/laji-form",
3
- "version": "15.1.1",
3
+ "version": "15.1.2",
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",
@@ -9,13 +9,13 @@
9
9
  "staging": "webpack-dev-server --content-base playground playground/app.js --host 0.0.0.0 --port 4010",
10
10
  "build:lib": "rimraf lib && NODE_ENV=production tsc -p tsconfig.lib.json",
11
11
  "build:dist": "rimraf dist && NODE_ENV=production webpack --config webpack.config.dist.js && rimraf dist/styles.js",
12
- "build:tests": "rimraf test-export &c NODE_ENV=production tsc -p tsconfig.test.json",
12
+ "build:tests": "rimraf test-export && NODE_ENV=production tsc -p tsconfig.test.json",
13
13
  "build": "npm run build:lib && npm run build:dist && npm run build:tests",
14
14
  "preversion": "npm run lint && npm test",
15
15
  "version": "bin/update-changelog.sh",
16
16
  "postversion": "npm run build && git push & git push --tags && npm publish",
17
17
  "lint": "eslint -c .eslintrc.prod.json src playground",
18
- "test": "npx playwright test --project chromium"
18
+ "test": "npx playwright test"
19
19
  },
20
20
  "keywords": [
21
21
  "react-jsonschema-form",
@@ -1,53 +1,51 @@
1
- import { ElementFinder, ElementArrayFinder } from "protractor";
1
+ import { Locator, Page } from "@playwright/test";
2
2
  import { JSONSchema7 } from "json-schema";
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>;
3
+ import { MapPageObject } from "@luomus/laji-map/test-export/test-utils";
4
+ export declare const emptyForm: (page: Page, params?: string) => Promise<import("playwright-core").Response | null>;
5
+ export declare const navigateToForm: (page: Page, formID: string, params?: string) => Promise<import("playwright-core").Response | null>;
7
6
  export declare const lajiFormLocator: (path: string) => string;
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>;
7
+ export declare const lajiFormLocate: (page: Page, str: string) => Locator;
8
+ export declare const getFocusedElement: (page: Page) => Locator;
9
+ export declare const getFocusedId: (page: Page) => Promise<string | null>;
11
10
  export interface Mock {
12
11
  resolve: (response?: any, raw?: boolean) => Promise<void>;
13
12
  reject: (response?: any, raw?: boolean) => Promise<void>;
14
13
  remove: () => Promise<void>;
15
14
  }
16
15
  export interface DateWidgetPO {
17
- $container: ElementFinder;
18
- $input: ElementFinder;
16
+ $container: Locator;
17
+ $input: Locator;
19
18
  buttons: {
20
- $today: ElementFinder;
21
- $yesterday: ElementFinder;
22
- $same: ElementFinder;
23
- $date: ElementFinder;
24
- $time: ElementFinder;
19
+ $today: Locator;
20
+ $yesterday: Locator;
21
+ $same: Locator;
22
+ $date: Locator;
23
+ $time: Locator;
25
24
  };
26
25
  calendar: {
27
- $today: ElementFinder;
28
- waitAnimation: () => Promise<void>;
26
+ $today: Locator;
29
27
  };
30
28
  clock: {
31
- "$01:00": ElementFinder;
32
- waitAnimation: () => Promise<void>;
29
+ "$01:00": Locator;
33
30
  };
34
31
  }
35
32
  export interface BooleanWidgetPO {
36
- $container: ElementFinder;
37
- $true: ElementFinder;
38
- $false: ElementFinder;
39
- $undefined: ElementFinder;
40
- $active: ElementFinder;
41
- $nonactive: ElementFinder;
33
+ $container: Locator;
34
+ $true: Locator;
35
+ $false: Locator;
36
+ $undefined: Locator;
37
+ $active: Locator;
38
+ $nonactive: Locator;
42
39
  }
43
- export interface EnumWidgetPOI {
44
- $container: ElementFinder;
40
+ export declare type EnumWidgetPOI = ReturnType<typeof getEnumWidgetForContainer>;
41
+ declare function getEnumWidgetForContainer($container: Locator): {
42
+ $container: Locator;
45
43
  openEnums: () => Promise<void>;
46
- $enumContainer: ElementFinder;
47
- $$enums: ElementArrayFinder;
48
- $input: ElementFinder;
49
- }
50
- interface FormProps {
44
+ $enumContainer: Locator;
45
+ $$enums: Locator;
46
+ $input: Locator;
47
+ };
48
+ interface DemoPageProps {
51
49
  schema?: JSONSchema7;
52
50
  uiSchema?: any;
53
51
  formData?: any;
@@ -58,114 +56,187 @@ interface FormProps {
58
56
  localFormData?: boolean | string;
59
57
  }
60
58
  export declare class Form {
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;
59
+ protected page: Page;
60
+ protected locator: Locator;
61
+ constructor(page: Page, locator?: Locator);
62
+ $form: Locator;
63
+ $locate(path: string): Locator;
64
+ $locateButton(path: string, selector: string, locateFromBody?: boolean): Locator;
65
+ $locateAddition(path: string, selector: string, locateFromBody?: boolean): Locator;
79
66
  getMockStr: (path: string, query: any) => string;
80
67
  setMockResponse(path: string, query?: any): Promise<Mock>;
81
68
  createMockResponseQueue(path: string, query?: any): Promise<{
82
69
  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>;
70
+ resolve: (response: any, raw?: boolean | undefined) => Promise<unknown>;
71
+ reject: (response: any, raw?: boolean | undefined) => Promise<unknown>;
85
72
  }>;
86
- remove: () => import("selenium-webdriver").promise.Promise<unknown>;
73
+ remove: () => Promise<unknown>;
87
74
  }>;
88
75
  createValidatorPO: (type: "error" | "warning") => {
89
- $$all: ElementArrayFinder;
90
- $panel: ElementFinder;
76
+ $$all: Locator;
77
+ $panel: Locator;
91
78
  };
92
79
  errors: {
93
- $$all: ElementArrayFinder;
94
- $panel: ElementFinder;
80
+ $$all: Locator;
81
+ $panel: Locator;
95
82
  };
96
83
  warnings: {
97
- $$all: ElementArrayFinder;
98
- $panel: ElementFinder;
84
+ $$all: Locator;
85
+ $panel: Locator;
99
86
  };
100
87
  failedJobs: {
101
- $container: ElementFinder;
88
+ $container: Locator;
89
+ $$errors: Locator;
90
+ };
91
+ $runningJobs: Locator;
92
+ $acknowledgeWarnings: Locator;
93
+ $blocker: Locator;
94
+ $mapFieldFullscreenMap: Locator;
95
+ getBooleanWidget(str: string): {
96
+ $container: Locator;
97
+ $true: Locator;
98
+ $false: Locator;
99
+ $undefined: Locator;
100
+ $active: Locator;
101
+ $nonactive: Locator;
102
+ };
103
+ $getInputWidget(str: string): Locator;
104
+ $getTextareaWidget(str: string): Locator;
105
+ $getEnumWidget(str: string): {
106
+ $container: Locator;
107
+ openEnums: () => Promise<void>;
108
+ $enumContainer: Locator;
109
+ $$enums: Locator;
110
+ $input: Locator;
111
+ };
112
+ getDateWidget(str: string): {
113
+ $container: Locator;
114
+ $input: Locator;
115
+ buttons: {
116
+ $today: Locator;
117
+ $yesterday: Locator;
118
+ $same: Locator;
119
+ $date: Locator;
120
+ $time: Locator;
121
+ };
122
+ calendar: {
123
+ $today: Locator;
124
+ };
125
+ clock: {
126
+ "$01:00": Locator;
127
+ };
128
+ };
129
+ $getFieldErrors(str: string): Locator;
130
+ getImageArrayField: (lajiFormLocator: string) => {
131
+ $container: Locator;
132
+ $imgContainers: Locator;
133
+ $$imgs: Locator;
134
+ $$imgLoading: Locator;
135
+ $$imgRemoves: Locator;
136
+ $imgRemoveConfirmButton: (id: string) => Locator;
137
+ $dropzone: Locator;
138
+ $modal: Locator;
139
+ $addModal: Locator;
140
+ $modalClose: Locator;
141
+ $addModalCancel: Locator;
142
+ };
143
+ getAutosuggestWidget: (lajiFormLocator: string) => {
144
+ $input: Locator;
145
+ $suggestionsContainer: Locator;
146
+ $suggestions: Locator;
147
+ };
148
+ getTaxonAutosuggestWidget: (lajiFormLocator: string) => {
149
+ $powerUserButton: Locator;
150
+ $suggestedGlyph: Locator;
151
+ $nonsuggestedGlyph: Locator;
152
+ $input: Locator;
153
+ $suggestionsContainer: Locator;
154
+ $suggestions: Locator;
155
+ };
156
+ getPersonAutosuggestWidget: (lajiFormLocator: string) => {
157
+ $suggestedGlyph: Locator;
158
+ $input: Locator;
159
+ $suggestionsContainer: Locator;
160
+ $suggestions: Locator;
102
161
  };
103
- $acknowledgeWarnings: ElementFinder;
104
- isBlocked: () => import("selenium-webdriver").promise.Promise<boolean>;
105
- mockImageUpload: (lajiFormLocator: string) => Promise<{
106
- resolve: () => Promise<void>;
107
- remove: () => Promise<void>;
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
162
  getScopeField: (lajiFormLocator: string) => {
120
- $button: ElementFinder;
121
- $$listItems: ElementArrayFinder;
163
+ $button: Locator;
164
+ $$listItems: Locator;
165
+ modal: {
166
+ $container: Locator;
167
+ $close: Locator;
168
+ $$loadingGroups: Locator;
169
+ $$groupTitles: Locator;
170
+ $$listItems: Locator;
171
+ };
122
172
  };
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>;
147
- }
148
- export interface UnitListShorthandArrayFieldPOI {
149
- $button: ElementFinder;
150
- modal: {
151
- $input: ElementFinder;
152
- $addButton: ElementFinder;
173
+ getLocationChooser: (lajiFormLocator: string) => {
174
+ $button: Locator;
175
+ modal: {
176
+ $container: Locator;
177
+ map: MapPageObject;
178
+ };
179
+ peeker: {
180
+ $popover: Locator;
181
+ $map: Locator;
182
+ $$markers: Locator;
183
+ };
184
+ };
185
+ getUnitListShorthandArrayField: (lajiFormLocator: string) => {
186
+ $button: Locator;
187
+ modal: {
188
+ $input: Locator;
189
+ $addButton: Locator;
190
+ };
153
191
  };
192
+ $getShortHandWidget: (lajiFormLocator: string) => Locator;
193
+ getGeocoder: (lajiFormLocator?: string) => {
194
+ $btn: Locator;
195
+ $spinner: Locator;
196
+ };
197
+ getNamedPlaceChooser: () => {
198
+ select: {
199
+ $container: Locator;
200
+ openEnums: () => Promise<void>;
201
+ $enumContainer: Locator;
202
+ $$enums: Locator;
203
+ $input: Locator;
204
+ };
205
+ mapPopup: {
206
+ $container: Locator;
207
+ $useBtn: Locator;
208
+ };
209
+ $alert: Locator;
210
+ $close: Locator;
211
+ };
212
+ /** Draws a marker to the center of a laji-map rendered to the given locator. The locator defaults to "gatherings" */
213
+ putMarkerToMap(lajiFormLocator?: string): Promise<void>;
154
214
  }
155
- export declare class NamedPlaceChooserPO {
156
- select: EnumWidgetPOI;
157
- mapPopup: {
158
- $container: ElementFinder;
159
- $useBtn: ElementFinder;
160
- };
161
- $alert: ElementFinder;
162
- $close: ElementFinder;
215
+ export declare type ImageArrayFieldPOI = ReturnType<Form["getImageArrayField"]>;
216
+ export declare type TaxonAutosuggestWidgetPOI = ReturnType<Form["getTaxonAutosuggestWidget"]>;
217
+ export declare type UnitListShorthandArrayFieldPOI = ReturnType<Form["getUnitListShorthandArrayField"]>;
218
+ export declare type NamedPlaceChooserPO = ReturnType<Form["getNamedPlaceChooser"]>;
219
+ export declare class DemoPageForm extends Form {
220
+ private props?;
221
+ constructor(page: Page, props?: DemoPageProps | undefined);
222
+ initialize(beforeInit?: (form: Form) => Promise<void>): Promise<void>;
223
+ e(path: string): Promise<any>;
224
+ setState(state: any): Promise<any>;
225
+ getState(): Promise<{
226
+ formData: any;
227
+ }>;
228
+ submit(): Promise<void>;
229
+ startSubmit(): void;
230
+ submitOnlySchemaValidations(): Promise<any>;
231
+ getSubmittedData(): Promise<any>;
232
+ getChangedData(): Promise<any>;
233
+ getPropsData(): Promise<any>;
234
+ mockImageUpload: (lajiFormLocator: string) => Promise<{
235
+ resolve: () => Promise<void>;
236
+ remove: () => Promise<void>;
237
+ }>;
163
238
  }
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>;
239
+ export declare function createForm(page: Page, props?: DemoPageProps, beforeInit?: (form: Form) => Promise<void>): Promise<DemoPageForm>;
169
240
  export declare const mockImageMetadata: {
170
241
  id: string;
171
242
  capturerVerbatim: string[];
@@ -181,4 +252,6 @@ export declare const mockImageMetadata: {
181
252
  };
182
253
  export declare const filterUUIDs: (any: any) => any;
183
254
  export declare const maybeJSONPointerToLocator: (pointer: string) => string;
255
+ export declare const updateValue: ($input: Locator, value: string) => Promise<void>;
256
+ export declare const getRemoveUnit: (page: Page) => (gatheringIdx: number, unitIdx: number) => Promise<void>;
184
257
  export {};