@fkui/vue-labs 6.43.1 → 6.44.0

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.
@@ -16,251 +16,7 @@ var XDummyPageObject = class {
16
16
  return cy.get(`${this.selector} h1`);
17
17
  }
18
18
  };
19
-
20
- // src/cypress/FTable.pageobject.ts
21
- var FTablePageObject = class {
22
- selector;
23
- selectHeader = ".table-ng__column--selectable";
24
- columnTitle = ".table-ng__column__title";
25
- columnDescription = ".table-ng__column__description";
26
- expandCell = ".table-ng__cell--expand";
27
- selectCell = ".table-ng__cell--selectable";
28
- /**
29
- * @param selector - root element selector for `FTable`, usually `.table-ng`.
30
- */
31
- constructor(selector = ".table-ng") {
32
- this.selector = selector;
33
- }
34
- /**
35
- * Get root element.
36
- *
37
- * @public
38
- */
39
- el() {
40
- return cy.get(this.selector);
41
- }
42
- /**
43
- * Get table header cell (`<th>` in `<thead>`).
44
- *
45
- * The headers for expandable buttons and selectable checkboxes are included.
46
- *
47
- * @public
48
- * @param col - Column number of header (1-indexed).
49
- * @returns The header cell element (`<th>`).
50
- */
51
- header(col) {
52
- const colIndex = String(col - 1);
53
- return cy.get([this.thead, `th:nth(${colIndex})`].join(" "));
54
- }
55
- /**
56
- * Get column title from table header.
57
- *
58
- * The headers for expandable buttons and selectable checkboxes are included.
59
- *
60
- * @public
61
- * @param col - Column number of header (1-indexed).
62
- * @returns Column description in header.
63
- */
64
- headerTitle(col) {
65
- const colIndex = String(col - 1);
66
- return cy.get(
67
- [this.thead, `th:nth(${colIndex})`, this.columnTitle].join(" ")
68
- );
69
- }
70
- /**
71
- * Get column description from table header.
72
- *
73
- * The headers for expandable buttons and selectable checkboxes are included.
74
- *
75
- * @public
76
- * @param col - Column number of header (1-indexed).
77
- * @returns Column description in header.
78
- */
79
- headerDescription(col) {
80
- const colIndex = String(col - 1);
81
- return cy.get(
82
- [this.thead, `th:nth(${colIndex})`, this.columnDescription].join(
83
- " "
84
- )
85
- );
86
- }
87
- /**
88
- * Get table cell (typically `<td>` but can be `<th>` if row headers are
89
- * present).
90
- *
91
- * Both row and column are 1-indexed, i.e. 1:1 selects the first cell in the
92
- * first row.
93
- *
94
- * The columns for expandable buttons and selectable checkboxes are included in column count.
95
- *
96
- * For expandable rows the row count depend on whenever a row is expanded or
97
- * not. If the first row is collapsed the second row refers to the next
98
- * parent row while if the first row is expanded the second row refers to
99
- * the first expanded row under the first row.
100
- *
101
- * @public
102
- * @param descriptor - Row and column number of cell (1-indexed).
103
- * @returns The cell element.
104
- */
105
- cell(descriptor) {
106
- const row = this.bodyRow(descriptor.row);
107
- const nth = `nth-child(${descriptor.col})`;
108
- return cy.get([row, `> td:${nth},`, row, `> th:${nth}`].join(" "));
109
- }
110
- /**
111
- * Get expand button of given row.
112
- *
113
- * Only applicable if using an expandable table.
114
- *
115
- * @public
116
- * @param row - Row number for the expand button (1-indexed).
117
- * @returns Expand button of given row.
118
- */
119
- expandButton(row) {
120
- return cy.get([this.bodyRow(row), this.expandCell, `button`].join(" "));
121
- }
122
- /**
123
- * Get checkbox in the table header for selectable column.
124
- *
125
- * Only applicable if using a multiselect table.
126
- *
127
- * @public
128
- * @returns Checkbox in selectable column header.
129
- */
130
- selectHeaderInput() {
131
- return cy.get([this.thead, this.selectHeader, `input`].join(" "));
132
- }
133
- /**
134
- * Get select input of given row.
135
- *
136
- * Only applicable if using a selectable table.
137
- * Input is a checkbox if using a multiselect table and radio if single.
138
- *
139
- * @param row - Row number for the select input (1-indexed).
140
- * @returns Select input of given row.
141
- */
142
- selectInput(row) {
143
- return cy.get([this.bodyRow(row), this.selectCell, `input`].join(" "));
144
- }
145
- /**
146
- * Get the currently open context menu.
147
- *
148
- * The context menu must have been opened for this to return an element.
149
- *
150
- * @internal
151
- * @returns The opened context menu element.
152
- */
153
- contextmenu() {
154
- return cy.get(`ul.contextmenu__list`);
155
- }
156
- /**
157
- * Get the menu items of the currently open context menu.
158
- *
159
- * The context menu must have been opened for this to return an element.
160
- *
161
- * @public
162
- * @returns The context menu items.
163
- */
164
- contextmenuItems() {
165
- return cy.get(`ul.contextmenu__list .contextmenu__list__item`);
166
- }
167
- /**
168
- * Get the dropdown from a select cell.
169
- *
170
- * Only applicable if using a select cell.
171
- *
172
- * Element is teleported and does not use given selector. Method may
173
- * not work properly if there are several dropdowns open simultaneously.
174
- *
175
- * @internal
176
- * @returns Dropdown for a select cell.
177
- */
178
- selectDropdown() {
179
- return cy.get(".combobox__listbox");
180
- }
181
- /**
182
- * Get an option in a select cell dropdown.
183
- *
184
- * Only applicable if using a select cell.
185
- *
186
- * Element is teleported and does not use given selector. Method may
187
- * not work properly if there are several dropdowns open simultaneously.
188
- *
189
- * @public
190
- * @param option - option number (1-indexed).
191
- * @returns Option of given number from a select cell dropdown.
192
- */
193
- selectDropdownOption(option) {
194
- const index = option - 1;
195
- return cy.get(
196
- `.combobox__listbox li.combobox__listbox__option:nth(${index})`
197
- );
198
- }
199
- /**
200
- * Get table caption.
201
- *
202
- * Only applicable if caption slot is used.
203
- *
204
- * @public
205
- * @returns The table caption.
206
- */
207
- caption() {
208
- return cy.get(`${this.selector} caption`);
209
- }
210
- /**
211
- * Get table footer.
212
- *
213
- * Only applicable if footer slot is used.
214
- *
215
- * @public
216
- * @returns The table footer.
217
- */
218
- footer() {
219
- return cy.get(this.tfoot);
220
- }
221
- /**
222
- * Get current tabbable element in the table.
223
- *
224
- * If table is untouched, it is the first cell in the table body (including columns for expandable and selectable).
225
- * If the cell has an interactable element, it is instead the interactable that is returned and not the cell.
226
- *
227
- * @internal
228
- * @returns The current tabbable element.
229
- */
230
- tabbableElement() {
231
- return cy.get(`${this.selector} [tabindex=0]`);
232
- }
233
- /**
234
- * Get all visible rows (`<tr>` in `<tbody>`).
235
- *
236
- * Includes expanded rows if table is expandable.
237
- *
238
- * @public
239
- * @returns All visible rows in the table.
240
- */
241
- rows() {
242
- return cy.get(`${this.tbody} tr`);
243
- }
244
- /** @internal */
245
- bodyRow(row) {
246
- const rowIndex = String(row - 1);
247
- return `${this.tbody} tr:nth(${rowIndex})`;
248
- }
249
- /** @internal */
250
- get thead() {
251
- return `${this.selector} thead`;
252
- }
253
- /** @internal */
254
- get tbody() {
255
- return `${this.selector} tbody`;
256
- }
257
- /** @internal */
258
- get tfoot() {
259
- return `${this.selector} tfoot`;
260
- }
261
- };
262
19
  export {
263
- FTablePageObject,
264
20
  XDummyPageObject
265
21
  };
266
22
  //# sourceMappingURL=cypress.esm.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cypress/XDummy.pageobject.ts", "../../src/cypress/FTable.pageobject.ts"],
4
- "sourcesContent": ["import { type BasePageObject, type DefaultCypressChainable } from \"./common\";\n\n/**\n * @public\n */\nexport class XDummyPageObject implements BasePageObject {\n public selector: string;\n public el: () => DefaultCypressChainable;\n\n /**\n * @param selector - the root of the dummy, usually `<dummy class=\"dummy\">...</dummy>`.\n */\n public constructor(selector: string) {\n this.selector = selector;\n this.el = () => cy.get(this.selector);\n }\n\n /**\n * Heading\n */\n public heading(): DefaultCypressChainable {\n return cy.get(`${this.selector} h1`);\n }\n}\n", "import { type BasePageObject, type DefaultCypressChainable } from \"./common\";\n\n/**\n * @public\n * @since v6.24.0\n */\nexport class FTablePageObject implements BasePageObject {\n public selector: string;\n\n private readonly selectHeader = \".table-ng__column--selectable\";\n private readonly columnTitle = \".table-ng__column__title\";\n private readonly columnDescription = \".table-ng__column__description\";\n private readonly expandCell = \".table-ng__cell--expand\";\n private readonly selectCell = \".table-ng__cell--selectable\";\n\n /**\n * @param selector - root element selector for `FTable`, usually `.table-ng`.\n */\n public constructor(selector: string = \".table-ng\") {\n this.selector = selector;\n }\n\n /**\n * Get root element.\n *\n * @public\n */\n public el(): DefaultCypressChainable {\n return cy.get(this.selector);\n }\n\n /**\n * Get table header cell (`<th>` in `<thead>`).\n *\n * The headers for expandable buttons and selectable checkboxes are included.\n *\n * @public\n * @param col - Column number of header (1-indexed).\n * @returns The header cell element (`<th>`).\n */\n public header(\n col: number,\n ): Cypress.Chainable<JQuery<HTMLTableCellElement>> {\n const colIndex = String(col - 1);\n return cy.get([this.thead, `th:nth(${colIndex})`].join(\" \"));\n }\n\n /**\n * Get column title from table header.\n *\n * The headers for expandable buttons and selectable checkboxes are included.\n *\n * @public\n * @param col - Column number of header (1-indexed).\n * @returns Column description in header.\n */\n public headerTitle(col: number): DefaultCypressChainable {\n const colIndex = String(col - 1);\n return cy.get(\n [this.thead, `th:nth(${colIndex})`, this.columnTitle].join(\" \"),\n );\n }\n\n /**\n * Get column description from table header.\n *\n * The headers for expandable buttons and selectable checkboxes are included.\n *\n * @public\n * @param col - Column number of header (1-indexed).\n * @returns Column description in header.\n */\n public headerDescription(col: number): DefaultCypressChainable {\n const colIndex = String(col - 1);\n return cy.get(\n [this.thead, `th:nth(${colIndex})`, this.columnDescription].join(\n \" \",\n ),\n );\n }\n\n /**\n * Get table cell (typically `<td>` but can be `<th>` if row headers are\n * present).\n *\n * Both row and column are 1-indexed, i.e. 1:1 selects the first cell in the\n * first row.\n *\n * The columns for expandable buttons and selectable checkboxes are included in column count.\n *\n * For expandable rows the row count depend on whenever a row is expanded or\n * not. If the first row is collapsed the second row refers to the next\n * parent row while if the first row is expanded the second row refers to\n * the first expanded row under the first row.\n *\n * @public\n * @param descriptor - Row and column number of cell (1-indexed).\n * @returns The cell element.\n */\n public cell(descriptor: {\n row: number;\n col: number;\n }): Cypress.Chainable<JQuery<HTMLTableCellElement>> {\n const row = this.bodyRow(descriptor.row);\n const nth = `nth-child(${descriptor.col})`;\n return cy.get([row, `> td:${nth},`, row, `> th:${nth}`].join(\" \"));\n }\n\n /**\n * Get expand button of given row.\n *\n * Only applicable if using an expandable table.\n *\n * @public\n * @param row - Row number for the expand button (1-indexed).\n * @returns Expand button of given row.\n */\n public expandButton(\n row: number,\n ): Cypress.Chainable<JQuery<HTMLButtonElement>> {\n return cy.get([this.bodyRow(row), this.expandCell, `button`].join(\" \"));\n }\n\n /**\n * Get checkbox in the table header for selectable column.\n *\n * Only applicable if using a multiselect table.\n *\n * @public\n * @returns Checkbox in selectable column header.\n */\n public selectHeaderInput(): Cypress.Chainable<JQuery<HTMLInputElement>> {\n return cy.get([this.thead, this.selectHeader, `input`].join(\" \"));\n }\n\n /**\n * Get select input of given row.\n *\n * Only applicable if using a selectable table.\n * Input is a checkbox if using a multiselect table and radio if single.\n *\n * @param row - Row number for the select input (1-indexed).\n * @returns Select input of given row.\n */\n public selectInput(\n row: number,\n ): Cypress.Chainable<JQuery<HTMLInputElement>> {\n return cy.get([this.bodyRow(row), this.selectCell, `input`].join(\" \"));\n }\n\n /**\n * Get the currently open context menu.\n *\n * The context menu must have been opened for this to return an element.\n *\n * @internal\n * @returns The opened context menu element.\n */\n public contextmenu(): Cypress.Chainable<JQuery<HTMLDivElement>> {\n /* this element is teleported, so we cannot scope it to the table selector */\n return cy.get(`ul.contextmenu__list`);\n }\n\n /**\n * Get the menu items of the currently open context menu.\n *\n * The context menu must have been opened for this to return an element.\n *\n * @public\n * @returns The context menu items.\n */\n public contextmenuItems(): Cypress.Chainable<JQuery<HTMLButtonElement>> {\n /* this element is teleported, so we cannot scope it to the table selector */\n return cy.get(`ul.contextmenu__list .contextmenu__list__item`);\n }\n\n /**\n * Get the dropdown from a select cell.\n *\n * Only applicable if using a select cell.\n *\n * Element is teleported and does not use given selector. Method may\n * not work properly if there are several dropdowns open simultaneously.\n *\n * @internal\n * @returns Dropdown for a select cell.\n */\n public selectDropdown(): DefaultCypressChainable {\n return cy.get(\".combobox__listbox\");\n }\n\n /**\n * Get an option in a select cell dropdown.\n *\n * Only applicable if using a select cell.\n *\n * Element is teleported and does not use given selector. Method may\n * not work properly if there are several dropdowns open simultaneously.\n *\n * @public\n * @param option - option number (1-indexed).\n * @returns Option of given number from a select cell dropdown.\n */\n public selectDropdownOption(option: number): DefaultCypressChainable {\n const index = option - 1;\n return cy.get(\n `.combobox__listbox li.combobox__listbox__option:nth(${index})`,\n );\n }\n\n /**\n * Get table caption.\n *\n * Only applicable if caption slot is used.\n *\n * @public\n * @returns The table caption.\n */\n public caption(): Cypress.Chainable<JQuery<HTMLTableSectionElement>> {\n return cy.get(`${this.selector} caption`);\n }\n\n /**\n * Get table footer.\n *\n * Only applicable if footer slot is used.\n *\n * @public\n * @returns The table footer.\n */\n public footer(): Cypress.Chainable<JQuery<HTMLTableSectionElement>> {\n return cy.get(this.tfoot);\n }\n\n /**\n * Get current tabbable element in the table.\n *\n * If table is untouched, it is the first cell in the table body (including columns for expandable and selectable).\n * If the cell has an interactable element, it is instead the interactable that is returned and not the cell.\n *\n * @internal\n * @returns The current tabbable element.\n */\n public tabbableElement(): DefaultCypressChainable {\n return cy.get(`${this.selector} [tabindex=0]`);\n }\n\n /**\n * Get all visible rows (`<tr>` in `<tbody>`).\n *\n * Includes expanded rows if table is expandable.\n *\n * @public\n * @returns All visible rows in the table.\n */\n public rows(): Cypress.Chainable<JQuery<HTMLTableRowElement>> {\n return cy.get(`${this.tbody} tr`);\n }\n\n /** @internal */\n private bodyRow(row: number): string {\n const rowIndex = String(row - 1);\n return `${this.tbody} tr:nth(${rowIndex})`;\n }\n\n /** @internal */\n private get thead(): string {\n return `${this.selector} thead`;\n }\n\n /** @internal */\n private get tbody(): string {\n return `${this.selector} tbody`;\n }\n\n /** @internal */\n private get tfoot(): string {\n return `${this.selector} tfoot`;\n }\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/cypress/XDummy.pageobject.ts"],
4
+ "sourcesContent": ["import { type BasePageObject, type DefaultCypressChainable } from \"./common\";\n\n/**\n * @public\n */\nexport class XDummyPageObject implements BasePageObject {\n public selector: string;\n public el: () => DefaultCypressChainable;\n\n /**\n * @param selector - the root of the dummy, usually `<dummy class=\"dummy\">...</dummy>`.\n */\n public constructor(selector: string) {\n this.selector = selector;\n this.el = () => cy.get(this.selector);\n }\n\n /**\n * Heading\n */\n public heading(): DefaultCypressChainable {\n return cy.get(`${this.selector} h1`);\n }\n}\n"],
5
+ "mappings": ";AAKO,IAAM,mBAAN,MAAiD;AAAA,EAC7C;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,UAAkB;AACjC,SAAK,WAAW;AAChB,SAAK,KAAK,MAAM,GAAG,IAAI,KAAK,QAAQ;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKO,UAAmC;AACtC,WAAO,GAAG,IAAI,GAAG,KAAK,QAAQ,KAAK;AAAA,EACvC;AACJ;",
6
6
  "names": []
7
7
  }