@serenity-js/web 3.8.0 → 3.9.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.9.1](https://github.com/serenity-js/serenity-js/compare/v3.9.0...v3.9.1) (2023-08-18)
7
+
8
+ **Note:** Version bump only for package @serenity-js/web
9
+
10
+
11
+
12
+
13
+
14
+ # [3.9.0](https://github.com/serenity-js/serenity-js/compare/v3.8.0...v3.9.0) (2023-08-04)
15
+
16
+
17
+ ### Features
18
+
19
+ * **core:** introduced MetaQuestionAdapter ([b6676fd](https://github.com/serenity-js/serenity-js/commit/b6676fd6ee2a2f67fd56e0642b3af72027d50a75))
20
+
21
+
22
+
23
+
24
+
6
25
  # [3.8.0](https://github.com/serenity-js/serenity-js/compare/v3.7.2...v3.8.0) (2023-08-01)
7
26
 
8
27
  **Note:** Version bump only for package @serenity-js/web
@@ -1,4 +1,4 @@
1
- import type { Answerable, MetaQuestion, Optional, QuestionAdapter } from '@serenity-js/core';
1
+ import type { Answerable, MetaQuestion, MetaQuestionAdapter, Optional, QuestionAdapter } from '@serenity-js/core';
2
2
  import type { Locator } from './Locator';
3
3
  import type { SelectOption } from './SelectOption';
4
4
  import type { Selector } from './selectors';
@@ -19,7 +19,7 @@ export declare abstract class PageElement<Native_Element_Type = any> implements
19
19
  readonly locator: Locator<Native_Element_Type>;
20
20
  static from<NET>(nativeElement: NET): QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement>;
21
21
  static located<NET>(selector: Answerable<Selector>): QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement>;
22
- static of<NET>(childElement: Answerable<PageElement<NET>>, parentElement: Answerable<PageElement<NET>>): QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement>;
22
+ static of<NET>(childElement: MetaQuestionAdapter<PageElement<NET>, PageElement<NET>> | PageElement<NET>, parentElement: Answerable<PageElement<NET>>): MetaQuestionAdapter<PageElement<NET>, PageElement<NET>>;
23
23
  constructor(locator: Locator<Native_Element_Type>);
24
24
  /**
25
25
  * Locates a child element that:
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,9 @@ class PageElement {
31
31
  }
32
32
  static of(childElement, parentElement) {
33
33
  return core_1.Question.about((0, core_1.d) `${childElement} of ${parentElement}`, async (actor) => {
34
- const child = await actor.answer(childElement);
35
34
  const parent = await actor.answer(parentElement);
36
- return child.of(parent);
35
+ const child = childElement.of(parent);
36
+ return actor.answer(child);
37
37
  });
38
38
  }
39
39
  constructor(locator) {
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAChD,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IAE7B,MAAM,CAAC,IAAI,CAAM,aAAkB;QAC/B,OAAO,eAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,CAA+E,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAA+E,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,EAAE,CAAM,YAA0C,EAAE,aAA2C;QAClG,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5E,MAAM,KAAK,GAAO,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,MAAM,GAAM,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEpD,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAA+E,CAAC;IACrF,CAAC;IAED,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IA6DD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;IAuDD;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;CAoBJ;AAtLD,kCAsLC"}
1
+ {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAChD,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IAE7B,MAAM,CAAC,IAAI,CAAM,aAAkB;QAC/B,OAAO,eAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,CAA+E,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAA+E,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,EAAE,CACL,YAAwF,EACxF,aAA2C;QAE3C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;YAErC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IA6DD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;IAuDD;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;CAoBJ;AAzLD,kCAyLC"}
@@ -1,4 +1,4 @@
1
- import type { Answerable, MetaQuestion } from '@serenity-js/core';
1
+ import type { Answerable, MetaQuestion, MetaQuestionAdapter } from '@serenity-js/core';
2
2
  import { List } from '@serenity-js/core';
3
3
  import type { Locator } from './Locator';
4
4
  import type { PageElement } from './PageElement';
@@ -15,7 +15,7 @@ import type { Selector } from './selectors';
15
15
  *
16
16
  * @group Models
17
17
  */
18
- export declare class PageElements<Native_Element_Type = any> extends List<PageElement<Native_Element_Type>> implements MetaQuestion<Answerable<PageElement<Native_Element_Type>>, Promise<Array<PageElement<Native_Element_Type>>>> {
18
+ export declare class PageElements<Native_Element_Type = any> extends List<PageElement<Native_Element_Type>> implements MetaQuestion<PageElement<Native_Element_Type>, Promise<Array<PageElement<Native_Element_Type>>>> {
19
19
  protected readonly locator: Answerable<Locator<Native_Element_Type>>;
20
20
  static located<NET>(selector: Answerable<Selector>): PageElements<NET>;
21
21
  /**
@@ -23,5 +23,9 @@ export declare class PageElements<Native_Element_Type = any> extends List<PageEl
23
23
  */
24
24
  constructor(locator: Answerable<Locator<Native_Element_Type>>);
25
25
  of(parent: Answerable<PageElement<Native_Element_Type>>): PageElements<Native_Element_Type>;
26
+ count(): MetaQuestionAdapter<PageElement<Native_Element_Type>, number>;
27
+ first(): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>>;
28
+ last(): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>>;
29
+ nth(index: number): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>>;
26
30
  }
27
31
  //# sourceMappingURL=PageElements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageElements.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY,CAAC,mBAAmB,GAAG,GAAG,CAC/C,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAC7C,YAAW,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAS3G,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAPhF,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;IAItE;;OAEG;gBAC4B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAIhF,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC;CAI9F"}
1
+ {"version":3,"file":"PageElements.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY,CAAC,mBAAmB,GAAG,GAAG,CAC/C,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAC7C,YAAW,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAS/F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAPhF,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;IAItE;;OAEG;gBAC4B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAIhF,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC;IAKlF,KAAK,IAAI,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAStE,KAAK,IAAI,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAShG,IAAI,IAAI,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAS/F,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;CAQvH"}
@@ -30,6 +30,22 @@ class PageElements extends core_1.List {
30
30
  return new PageElements(relativeToParent(this.locator, parent))
31
31
  .describedAs(`${this.toString()} of ${parent}`);
32
32
  }
33
+ count() {
34
+ const count = super.count();
35
+ return core_1.Question.about(count.toString(), actor => actor.answer(count), (parent) => this.of(parent).count());
36
+ }
37
+ first() {
38
+ const first = super.first();
39
+ return core_1.Question.about(first.toString(), async (actor) => actor.answer(first), (parent) => this.of(parent).first());
40
+ }
41
+ last() {
42
+ const last = super.last();
43
+ return core_1.Question.about(last.toString(), async (actor) => actor.answer(last), (parent) => this.of(parent).last());
44
+ }
45
+ nth(index) {
46
+ const nth = super.nth(index);
47
+ return core_1.Question.about(nth.toString(), async (actor) => actor.answer(nth), (parent) => this.of(parent).nth(index));
48
+ }
33
49
  }
34
50
  exports.PageElements = PageElements;
35
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PageElements.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElements.ts"],"names":[],"mappings":";;;AACA,4CAAmD;AAEnD,4CAA4C;AAK5C;;;;;;;;;;;GAWG;AACH,MAAa,YACT,SAAQ,WAAsC;IAG9C,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,IAAI,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,YAA+B,OAAiD;QAC5E,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QADH,YAAO,GAAP,OAAO,CAA0C;IAEhF,CAAC;IAED,EAAE,CAAC,MAAoD;QACnD,OAAO,IAAI,YAAY,CAAsB,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAC/E,WAAW,CAAC,GAAI,IAAI,CAAC,QAAQ,EAAG,OAAQ,MAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;CACJ;AAnBD,oCAmBC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAsB,QAA8B;IAC/E,OAAO,eAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;QAClD,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAElG,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAsB,eAAyD,EAAE,MAAoD;IAC1J,OAAO,eAAQ,CAAC,KAAK,CAAC,GAAI,eAAe,CAAC,QAAQ,EAAG,OAAQ,MAAO,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;QAClF,MAAM,OAAO,GAA6C,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAuC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErF,OAAO,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAsB,OAAiD;IACzF,OAAO,eAAQ,CAAC,KAAK,CAAC,yBAA0B,MAAM,CAAC,OAAO,CAAE,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;QAC9E,MAAM,QAAQ,GAAiC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"PageElements.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElements.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { Answerable, AnswersQuestions, MetaQuestion, MetaQuestionAdapter, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { Question } from '@serenity-js/core';
3
3
  import { PageElement } from '../models';
4
4
  /**
@@ -93,7 +93,7 @@ import { PageElement } from '../models';
93
93
  *
94
94
  * @group Questions
95
95
  */
96
- export declare class Attribute extends Question<Promise<string>> implements MetaQuestion<Answerable<PageElement>, Promise<string>> {
96
+ export declare class Attribute extends Question<Promise<string>> implements MetaQuestion<PageElement, string> {
97
97
  private readonly name;
98
98
  private readonly element?;
99
99
  private subject;
@@ -106,7 +106,7 @@ export declare class Attribute extends Question<Promise<string>> implements Meta
106
106
  * The name of the attribute to retrieve
107
107
  */
108
108
  static called(name: Answerable<string>): Attribute;
109
- protected constructor(name: Answerable<string>, element?: Answerable<PageElement>);
109
+ protected constructor(name: Answerable<string>, element?: QuestionAdapter<PageElement> | PageElement);
110
110
  /**
111
111
  * Resolves to the value of an HTML attribute of the `pageElement`.
112
112
  *
@@ -115,7 +115,7 @@ export declare class Attribute extends Question<Promise<string>> implements Meta
115
115
  *
116
116
  * @param pageElement
117
117
  */
118
- of(pageElement: Answerable<PageElement>): QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>>;
118
+ of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string>;
119
119
  /**
120
120
  * @inheritDoc
121
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Attribute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,qBAAa,SACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAChC,YAAW,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAiB7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAhB7B,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;IAIlD,SAAS,aACY,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IAQtD;;;;;;;OAOG;IACH,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAW1H;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"Attribute.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Attribute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAC,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxI,OAAO,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,qBAAa,SACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAChC,YAAW,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC;IAiBxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAhB7B,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;IAIlD,SAAS,aACY,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW;IAQzE;;;;;;;OAOG;IACH,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC;IAWrG;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Attribute.ts"],"names":[],"mappings":";;;AACA,4CAA4D;AAE5D,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,MAAa,SACT,SAAQ,eAAyB;IAKjC;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,IAAwB;QAClC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YACqB,IAAwB,EACxB,OAAiC;QAElD,KAAK,EAAE,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAoB;QACxB,YAAO,GAAP,OAAO,CAA0B;QAGlD,IAAI,CAAC,OAAO,GAAG,OAAO;YAClB,CAAC,CAAC,IAAA,QAAC,EAAA,GAAI,IAAK,iBAAkB,OAAQ,EAAE;YACxC,CAAC,CAAC,IAAA,QAAC,EAAA,GAAI,IAAK,YAAY,CAAA;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,EAAE,CAAC,WAAoC;QACnC,OAAO,eAAQ,CAAC,aAAa,CACzB,IAAI,SAAS,CACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO;YACR,CAAC,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;YAC3C,CAAC,CAAC,WAAW,CACpB,CACgF,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,IAAI,iBAAU,CAAC,IAAA,QAAC,EAAA,2BAA4B,IAAK,kCAAkC,CAAC,CAAC;SAC9F;QAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA5ED,8BA4EC"}
1
+ {"version":3,"file":"Attribute.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Attribute.ts"],"names":[],"mappings":";;;AACA,4CAA4D;AAE5D,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,MAAa,SACT,SAAQ,eAAyB;IAKjC;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,IAAwB;QAClC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YACqB,IAAwB,EACxB,OAAoD;QAErE,KAAK,EAAE,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAoB;QACxB,YAAO,GAAP,OAAO,CAA6C;QAGrE,IAAI,CAAC,OAAO,GAAG,OAAO;YAClB,CAAC,CAAC,IAAA,QAAC,EAAA,GAAI,IAAK,iBAAkB,OAAQ,EAAE;YACxC,CAAC,CAAC,IAAA,QAAC,EAAA,GAAI,IAAK,YAAY,CAAA;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,EAAE,CAAC,WAAuD;QACtD,OAAO,eAAQ,CAAC,aAAa,CACzB,IAAI,SAAS,CACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO;YACR,CAAC,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;YAC3C,CAAC,CAAC,WAAW,CACpB,CACwC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,IAAI,iBAAU,CAAC,IAAA,QAAC,EAAA,2BAA4B,IAAK,kCAAkC,CAAC,CAAC;SAC9F;QAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA5ED,8BA4EC"}
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { AnswersQuestions, MetaQuestion, MetaQuestionAdapter, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { Question } from '@serenity-js/core';
3
3
  import { PageElement } from '../models';
4
4
  /**
@@ -94,7 +94,7 @@ import { PageElement } from '../models';
94
94
  *
95
95
  * @group Questions
96
96
  */
97
- export declare class CssClasses extends Question<Promise<string[]>> implements MetaQuestion<Answerable<PageElement>, Promise<string[]>> {
97
+ export declare class CssClasses extends Question<Promise<string[]>> implements MetaQuestion<PageElement, string[]> {
98
98
  private readonly pageElement;
99
99
  private subject;
100
100
  /**
@@ -108,8 +108,8 @@ export declare class CssClasses extends Question<Promise<string[]>> implements M
108
108
  *
109
109
  * @param pageElement
110
110
  */
111
- static of(pageElement: Answerable<PageElement>): QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>>;
112
- protected constructor(pageElement: Answerable<PageElement>);
111
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string[]>;
112
+ protected constructor(pageElement: QuestionAdapter<PageElement> | PageElement);
113
113
  /**
114
114
  * Instantiates a {@apilink Question} that uses
115
115
  * the {@apilink Actor|actor's} {@apilink Ability|ability} to {@apilink BrowseTheWeb} to retrieve
@@ -122,7 +122,7 @@ export declare class CssClasses extends Question<Promise<string[]>> implements M
122
122
  *
123
123
  * @param parent
124
124
  */
125
- of(parent: Answerable<PageElement>): Question<Promise<string[]>>;
125
+ of(parent: QuestionAdapter<PageElement> | PageElement): Question<Promise<string[]>>;
126
126
  /**
127
127
  * @inheritDoc
128
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CssClasses.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/CssClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,qBAAa,UACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAClC,YAAW,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAmB7C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAjBlD,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIrI,SAAS,aAA8B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;IAK3E;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIhE;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAa5E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"CssClasses.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/CssClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAC,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5H,OAAO,EAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,qBAAa,UACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAClC,YAAW,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAmBxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAjBlD,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAI9G,SAAS,aAA8B,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW;IAK9F;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAInF;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAa5E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CssClasses.js","sourceRoot":"","sources":["../../../src/screenplay/questions/CssClasses.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAEhD,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,MAAa,UACT,SAAQ,eAA2B;IAKnC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,eAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAyF,CAAC;IACvJ,CAAC;IAED,YAAuC,WAAoC;QACvE,KAAK,EAAE,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAAyB;QAEvE,IAAI,CAAC,OAAO,GAAG,IAAA,QAAC,EAAA,kBAAmB,WAAW,EAAE,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,MAA+B;QAC9B,OAAO,IAAI,UAAU,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;aAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;aAClC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS;aACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,QAAQ,CAAC,CACnC,CAAC;IACV,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAxED,gCAwEC"}
1
+ {"version":3,"file":"CssClasses.js","sourceRoot":"","sources":["../../../src/screenplay/questions/CssClasses.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAEhD,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,MAAa,UACT,SAAQ,eAA2B;IAKnC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,CAAC,WAAuD;QAC7D,OAAO,eAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAA+C,CAAC;IAC7G,CAAC;IAED,YAAuC,WAAuD;QAC1F,KAAK,EAAE,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAA4C;QAE1F,IAAI,CAAC,OAAO,GAAG,IAAA,QAAC,EAAA,kBAAmB,WAAW,EAAE,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,MAAkD;QACjD,OAAO,IAAI,UAAU,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;aAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;aAClC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS;aACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,QAAQ,CAAC,CACnC,CAAC;IACV,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAxED,gCAwEC"}
@@ -1,4 +1,4 @@
1
- import type { Answerable, MetaQuestion, QuestionAdapter } from '@serenity-js/core';
1
+ import type { Answerable, MetaQuestionAdapter, QuestionAdapter } from '@serenity-js/core';
2
2
  import { PageElement, PageElements } from '../models';
3
3
  /**
4
4
  * Uses the {@apilink Actor|actor's} {@apilink Ability|ability} to {@apilink BrowseTheWeb} to retrieve
@@ -98,8 +98,7 @@ export declare class Text {
98
98
  *
99
99
  * @param pageElement
100
100
  */
101
- static of(pageElement: Answerable<PageElement>): QuestionAdapter<string> & // eslint-disable-line @typescript-eslint/indent
102
- MetaQuestion<Answerable<PageElement>, Promise<string>>;
101
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string>;
103
102
  /**
104
103
  * Instantiates a {@apilink Question} that uses
105
104
  * the {@apilink Actor|actor's} {@apilink Ability|ability} to {@apilink BrowseTheWeb} to retrieve
@@ -110,7 +109,7 @@ export declare class Text {
110
109
  *
111
110
  * @param pageElements
112
111
  */
113
- static ofAll(pageElements: PageElements): QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>>;
112
+ static ofAll(pageElements: PageElements): MetaQuestionAdapter<PageElement, string[]>;
114
113
  static ofAll(pageElements: Answerable<PageElement[]>): QuestionAdapter<string[]>;
115
114
  }
116
115
  //# sourceMappingURL=Text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoB,YAAY,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAIpH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,qBAAa,IAAI;IAEb;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAC1C,eAAe,CAAC,MAAM,CAAC,GAAmC,gDAAgD;IAC1G,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAK1D;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9H,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;CAYnF"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkC,mBAAmB,EAAC,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AAIxI,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,qBAAa,IAAI;IAEb;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC;IAI5G;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;CAYnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Text.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { AnswersQuestions, MetaQuestion, MetaQuestionAdapter, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { Question } from '@serenity-js/core';
3
3
  import { PageElement } from '../models';
4
4
  /**
@@ -55,7 +55,7 @@ import { PageElement } from '../models';
55
55
  *
56
56
  * @group Questions
57
57
  */
58
- export declare class Value extends Question<Promise<string>> implements MetaQuestion<Answerable<PageElement>, Promise<string>> {
58
+ export declare class Value extends Question<Promise<string>> implements MetaQuestion<PageElement, string> {
59
59
  private readonly element;
60
60
  private subject;
61
61
  /**
@@ -68,8 +68,8 @@ export declare class Value extends Question<Promise<string>> implements MetaQues
68
68
  *
69
69
  * @param pageElement
70
70
  */
71
- static of(pageElement: Answerable<PageElement>): QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>>;
72
- protected constructor(element: Answerable<PageElement>);
71
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string>;
72
+ protected constructor(element: QuestionAdapter<PageElement> | PageElement);
73
73
  /**
74
74
  * Instantiates a {@apilink Question} that uses
75
75
  * the {@apilink Actor|actor's} {@apilink Ability|ability} to {@apilink BrowseTheWeb} to retrieve
@@ -81,7 +81,7 @@ export declare class Value extends Question<Promise<string>> implements MetaQues
81
81
  *
82
82
  * @param parent
83
83
  */
84
- of(parent: Answerable<PageElement>): Question<Promise<string>>;
84
+ of(parent: QuestionAdapter<PageElement> | PageElement): Question<Promise<string>>;
85
85
  /**
86
86
  * @inheritDoc
87
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,KACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAChC,YAAW,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAkB3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB9C,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAIjI,SAAS,aAA8B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;IAKvE;;;;;;;;;;OAUG;IACH,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAI9D;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAC,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5H,OAAO,EAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,KACT,SAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAChC,YAAW,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC;IAkBtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB9C,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC;IAI5G,SAAS,aAA8B,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW;IAK1F;;;;;;;;;;OAUG;IACH,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAIjF;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Value.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAEhD,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAa,KACT,SAAQ,eAAyB;IAKjC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,eAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAqF,CAAC;IAC9I,CAAC;IAED,YAAuC,OAAgC;QACnE,KAAK,EAAE,CAAC;QAD2B,YAAO,GAAP,OAAO,CAAyB;QAEnE,IAAI,CAAC,OAAO,GAAG,IAAA,QAAC,EAAA,gBAAiB,OAAQ,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;;;;OAUG;IACH,EAAE,CAAC,MAA+B;QAC9B,OAAO,IAAI,KAAK,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA/DD,sBA+DC"}
1
+ {"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Value.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAEhD,sCAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAa,KACT,SAAQ,eAAyB;IAKjC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,CAAC,WAAuD;QAC7D,OAAO,eAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAA6C,CAAC;IACtG,CAAC;IAED,YAAuC,OAAmD;QACtF,KAAK,EAAE,CAAC;QAD2B,YAAO,GAAP,OAAO,CAA4C;QAEtF,IAAI,CAAC,OAAO,GAAG,IAAA,QAAC,EAAA,gBAAiB,OAAQ,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;;;;OAUG;IACH,EAAE,CAAC,MAAkD;QACjD,OAAO,IAAI,KAAK,CAAC,oBAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA/DD,sBA+DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/web",
3
- "version": "3.8.0",
3
+ "version": "3.9.1",
4
4
  "description": "Serenity/JS Screenplay Pattern APIs for the Web",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -44,8 +44,8 @@
44
44
  "node": "^16.13 || ^18.12 || ^20"
45
45
  },
46
46
  "dependencies": {
47
- "@serenity-js/assertions": "3.8.0",
48
- "@serenity-js/core": "3.8.0",
47
+ "@serenity-js/assertions": "3.9.1",
48
+ "@serenity-js/core": "3.9.1",
49
49
  "tiny-types": "^1.20.0"
50
50
  },
51
51
  "devDependencies": {
@@ -58,5 +58,5 @@
58
58
  "ts-node": "^10.9.1",
59
59
  "typescript": "^5.1.6"
60
60
  },
61
- "gitHead": "5a054cb7304cf0133c3370768fe03db67c197e59"
61
+ "gitHead": "237e0291a7eca71e5f5c0777e1f9d637e8622113"
62
62
  }
@@ -1,4 +1,4 @@
1
- import type { Answerable, MetaQuestion, Optional, QuestionAdapter } from '@serenity-js/core';
1
+ import type { Answerable, MetaQuestion, MetaQuestionAdapter,Optional, QuestionAdapter } from '@serenity-js/core';
2
2
  import { d, Question } from '@serenity-js/core';
3
3
  import { ensure, isDefined } from 'tiny-types';
4
4
 
@@ -39,13 +39,16 @@ export abstract class PageElement<Native_Element_Type = any> implements Optional
39
39
  }) as QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement>;
40
40
  }
41
41
 
42
- static of<NET>(childElement: Answerable<PageElement<NET>>, parentElement: Answerable<PageElement<NET>>): QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement> {
42
+ static of<NET>(
43
+ childElement: MetaQuestionAdapter<PageElement<NET>, PageElement<NET>> | PageElement<NET>,
44
+ parentElement: Answerable<PageElement<NET>>
45
+ ): MetaQuestionAdapter<PageElement<NET>, PageElement<NET>> {
43
46
  return Question.about(d`${ childElement } of ${ parentElement }`, async actor => {
44
- const child = await actor.answer(childElement);
45
- const parent = await actor.answer(parentElement);
47
+ const parent = await actor.answer(parentElement);
48
+ const child = childElement.of(parent)
46
49
 
47
- return child.of(parent);
48
- }) as QuestionAdapter<PageElement<NET>> & MetaQuestion<PageElement, PageElement>;
50
+ return actor.answer(child);
51
+ });
49
52
  }
50
53
 
51
54
  constructor(public readonly locator: Locator<Native_Element_Type>) {
@@ -1,4 +1,4 @@
1
- import type { Answerable, MetaQuestion} from '@serenity-js/core';
1
+ import type { Answerable, MetaQuestion, MetaQuestionAdapter } from '@serenity-js/core';
2
2
  import { List, Question } from '@serenity-js/core';
3
3
 
4
4
  import { BrowseTheWeb } from '../abilities';
@@ -20,7 +20,7 @@ import type { Selector } from './selectors';
20
20
  */
21
21
  export class PageElements<Native_Element_Type = any>
22
22
  extends List<PageElement<Native_Element_Type>>
23
- implements MetaQuestion<Answerable<PageElement<Native_Element_Type>>, Promise<Array<PageElement<Native_Element_Type>>>>
23
+ implements MetaQuestion<PageElement<Native_Element_Type>, Promise<Array<PageElement<Native_Element_Type>>>>
24
24
  {
25
25
  static located<NET>(selector: Answerable<Selector>): PageElements<NET> {
26
26
  return new PageElements(relativeToDocumentRoot(selector));
@@ -37,6 +37,42 @@ export class PageElements<Native_Element_Type = any>
37
37
  return new PageElements<Native_Element_Type>(relativeToParent(this.locator, parent))
38
38
  .describedAs(`${ this.toString() } of ${ parent }`);
39
39
  }
40
+
41
+ override count(): MetaQuestionAdapter<PageElement<Native_Element_Type>, number> {
42
+ const count = super.count();
43
+ return Question.about(
44
+ count.toString(),
45
+ actor => actor.answer(count),
46
+ (parent: Answerable<PageElement>) => this.of(parent).count(),
47
+ );
48
+ }
49
+
50
+ override first(): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>> {
51
+ const first = super.first();
52
+ return Question.about<PageElement, PageElement>(
53
+ first.toString(),
54
+ async actor => actor.answer(first),
55
+ (parent: Answerable<PageElement>) => this.of(parent).first(),
56
+ );
57
+ }
58
+
59
+ override last(): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>> {
60
+ const last = super.last();
61
+ return Question.about<PageElement, PageElement>(
62
+ last.toString(),
63
+ async actor => actor.answer(last),
64
+ (parent: Answerable<PageElement>) => this.of(parent).last(),
65
+ );
66
+ }
67
+
68
+ override nth(index: number): MetaQuestionAdapter<PageElement<Native_Element_Type>, PageElement<Native_Element_Type>> {
69
+ const nth = super.nth(index);
70
+ return Question.about<PageElement, PageElement>(
71
+ nth.toString(),
72
+ async actor => actor.answer(nth),
73
+ (parent: Answerable<PageElement>) => this.of(parent).nth(index),
74
+ );
75
+ }
40
76
  }
41
77
 
42
78
  /**
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { Answerable, AnswersQuestions, MetaQuestion, MetaQuestionAdapter,QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { d, LogicError, Question } from '@serenity-js/core';
3
3
 
4
4
  import { PageElement } from '../models';
@@ -97,7 +97,7 @@ import { PageElement } from '../models';
97
97
  */
98
98
  export class Attribute
99
99
  extends Question<Promise<string>>
100
- implements MetaQuestion<Answerable<PageElement>, Promise<string>>
100
+ implements MetaQuestion<PageElement, string>
101
101
  {
102
102
  private subject: string;
103
103
 
@@ -115,7 +115,7 @@ export class Attribute
115
115
 
116
116
  protected constructor(
117
117
  private readonly name: Answerable<string>,
118
- private readonly element?: Answerable<PageElement>,
118
+ private readonly element?: QuestionAdapter<PageElement> | PageElement,
119
119
  ) {
120
120
  super();
121
121
  this.subject = element
@@ -131,7 +131,7 @@ export class Attribute
131
131
  *
132
132
  * @param pageElement
133
133
  */
134
- of(pageElement: Answerable<PageElement>): QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>> {
134
+ of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string> {
135
135
  return Question.createAdapter(
136
136
  new Attribute(
137
137
  this.name,
@@ -139,7 +139,7 @@ export class Attribute
139
139
  ? PageElement.of(this.element, pageElement)
140
140
  : pageElement
141
141
  )
142
- ) as QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>>;
142
+ ) as MetaQuestionAdapter<PageElement, string>;
143
143
  }
144
144
 
145
145
  /**
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { AnswersQuestions, MetaQuestion, MetaQuestionAdapter,QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { d, Question } from '@serenity-js/core';
3
3
 
4
4
  import { PageElement } from '../models';
@@ -98,7 +98,7 @@ import { PageElement } from '../models';
98
98
  */
99
99
  export class CssClasses
100
100
  extends Question<Promise<string[]>>
101
- implements MetaQuestion<Answerable<PageElement>, Promise<string[]>>
101
+ implements MetaQuestion<PageElement, string[]>
102
102
  {
103
103
  private subject: string;
104
104
 
@@ -113,11 +113,11 @@ export class CssClasses
113
113
  *
114
114
  * @param pageElement
115
115
  */
116
- static of(pageElement: Answerable<PageElement>): QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>> {
117
- return Question.createAdapter(new CssClasses(pageElement)) as QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>>;
116
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string[]> {
117
+ return Question.createAdapter(new CssClasses(pageElement)) as MetaQuestionAdapter<PageElement, string[]>;
118
118
  }
119
119
 
120
- protected constructor(private readonly pageElement: Answerable<PageElement>) {
120
+ protected constructor(private readonly pageElement: QuestionAdapter<PageElement> | PageElement) {
121
121
  super();
122
122
  this.subject = d`CSS classes of ${ pageElement}`;
123
123
  }
@@ -134,7 +134,7 @@ export class CssClasses
134
134
  *
135
135
  * @param parent
136
136
  */
137
- of(parent: Answerable<PageElement>): Question<Promise<string[]>> {
137
+ of(parent: QuestionAdapter<PageElement> | PageElement): Question<Promise<string[]>> {
138
138
  return new CssClasses(PageElement.of(this.pageElement, parent));
139
139
  }
140
140
 
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { Answerable, AnswersQuestions, MetaQuestion, MetaQuestionAdapter,QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { d, Question } from '@serenity-js/core';
3
3
  import { asyncMap } from '@serenity-js/core/lib/io';
4
4
 
@@ -103,10 +103,7 @@ export class Text {
103
103
  *
104
104
  * @param pageElement
105
105
  */
106
- static of(pageElement: Answerable<PageElement>):
107
- QuestionAdapter<string> & // eslint-disable-line @typescript-eslint/indent
108
- MetaQuestion<Answerable<PageElement>, Promise<string>> // eslint-disable-line @typescript-eslint/indent
109
- {
106
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string> {
110
107
  return TextOfSingleElement.of(pageElement);
111
108
  }
112
109
 
@@ -120,7 +117,7 @@ export class Text {
120
117
  *
121
118
  * @param pageElements
122
119
  */
123
- static ofAll(pageElements: PageElements): QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>>
120
+ static ofAll(pageElements: PageElements): MetaQuestionAdapter<PageElement, string[]>
124
121
  static ofAll(pageElements: Answerable<PageElement[]>): QuestionAdapter<string[]>
125
122
  static ofAll(pageElements: PageElements | Answerable<PageElement[]>): QuestionAdapter<string[]> {
126
123
  if (pageElements instanceof PageElements) {
@@ -137,23 +134,23 @@ export class Text {
137
134
 
138
135
  class TextOfSingleElement
139
136
  extends Question<Promise<string>>
140
- implements MetaQuestion<Answerable<PageElement>, Promise<string>>
137
+ implements MetaQuestion<PageElement, string>
141
138
  {
142
139
  /**
143
140
  * @private
144
141
  */
145
142
  private subject: string;
146
143
 
147
- static of(element: Answerable<PageElement>): QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>> {
148
- return Question.createAdapter(new TextOfSingleElement(element)) as QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>>;
144
+ static of(element: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string> {
145
+ return Question.createAdapter(new TextOfSingleElement(element)) as MetaQuestionAdapter<PageElement, string>;
149
146
  }
150
147
 
151
- protected constructor(private readonly element: Answerable<PageElement>) {
148
+ protected constructor(private readonly element: QuestionAdapter<PageElement> | PageElement) {
152
149
  super();
153
150
  this.subject = d`the text of ${ element }`;
154
151
  }
155
152
 
156
- of(parent: Answerable<PageElement>): Question<Promise<string>> {
153
+ of(parent: QuestionAdapter<PageElement> | PageElement): Question<Promise<string>> {
157
154
  return new TextOfSingleElement(PageElement.of(this.element, parent));
158
155
  }
159
156
 
@@ -184,15 +181,15 @@ class TextOfSingleElement
184
181
 
185
182
  class TextOfMultipleElements
186
183
  extends Question<Promise<string[]>>
187
- implements MetaQuestion<Answerable<PageElement>, Promise<string[]>>
184
+ implements MetaQuestion<PageElement, string[]>
188
185
  {
189
186
  /**
190
187
  * @private
191
188
  */
192
189
  private subject: string;
193
190
 
194
- static of(elements: PageElements): QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>> {
195
- return Question.createAdapter(new TextOfMultipleElements(elements)) as QuestionAdapter<string[]> & MetaQuestion<Answerable<PageElement>, Promise<string[]>>;
191
+ static of(elements: PageElements): MetaQuestionAdapter<PageElement, string[]> {
192
+ return Question.createAdapter(new TextOfMultipleElements(elements)) as MetaQuestionAdapter<PageElement, string[]>;
196
193
  }
197
194
 
198
195
  protected constructor(private readonly elements: PageElements) {
@@ -1,4 +1,4 @@
1
- import type { Answerable, AnswersQuestions, MetaQuestion, QuestionAdapter, UsesAbilities } from '@serenity-js/core';
1
+ import type { AnswersQuestions, MetaQuestion, MetaQuestionAdapter,QuestionAdapter, UsesAbilities } from '@serenity-js/core';
2
2
  import { d, Question } from '@serenity-js/core';
3
3
 
4
4
  import { PageElement } from '../models';
@@ -59,7 +59,7 @@ import { PageElement } from '../models';
59
59
  */
60
60
  export class Value
61
61
  extends Question<Promise<string>>
62
- implements MetaQuestion<Answerable<PageElement>, Promise<string>>
62
+ implements MetaQuestion<PageElement, string>
63
63
  {
64
64
  private subject: string;
65
65
 
@@ -73,11 +73,11 @@ export class Value
73
73
  *
74
74
  * @param pageElement
75
75
  */
76
- static of(pageElement: Answerable<PageElement>): QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>> {
77
- return Question.createAdapter(new Value(pageElement)) as QuestionAdapter<string> & MetaQuestion<Answerable<PageElement>, Promise<string>>;
76
+ static of(pageElement: QuestionAdapter<PageElement> | PageElement): MetaQuestionAdapter<PageElement, string> {
77
+ return Question.createAdapter(new Value(pageElement)) as MetaQuestionAdapter<PageElement, string>;
78
78
  }
79
79
 
80
- protected constructor(private readonly element: Answerable<PageElement>) {
80
+ protected constructor(private readonly element: QuestionAdapter<PageElement> | PageElement) {
81
81
  super();
82
82
  this.subject = d`the value of ${ element }`;
83
83
  }
@@ -93,7 +93,7 @@ export class Value
93
93
  *
94
94
  * @param parent
95
95
  */
96
- of(parent: Answerable<PageElement>): Question<Promise<string>> {
96
+ of(parent: QuestionAdapter<PageElement> | PageElement): Question<Promise<string>> {
97
97
  return new Value(PageElement.of(this.element, parent));
98
98
  }
99
99