@fkui/vue-labs 6.31.1 → 6.32.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.
- package/dist/cjs/cypress.cjs.js +11 -0
- package/dist/cjs/cypress.cjs.js.map +2 -2
- package/dist/cjs/index.cjs.js +55 -30
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/esm/cypress.esm.js +11 -0
- package/dist/esm/cypress.esm.js.map +2 -2
- package/dist/esm/index.esm.js +56 -31
- package/dist/esm/index.esm.js.map +1 -1
- package/dist/types/cypress.d.ts +9 -0
- package/dist/types/index.d.ts +55 -41
- package/package.json +6 -6
package/dist/cjs/cypress.cjs.js
CHANGED
|
@@ -166,6 +166,17 @@ var FTablePageObject = class {
|
|
|
166
166
|
selectInput(row) {
|
|
167
167
|
return cy.get([this.bodyRow(row), this.selectCell, `input`].join(" "));
|
|
168
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Get table caption.
|
|
171
|
+
*
|
|
172
|
+
* Only applicable if caption slot is used.
|
|
173
|
+
*
|
|
174
|
+
* @public
|
|
175
|
+
* @returns The table caption.
|
|
176
|
+
*/
|
|
177
|
+
caption() {
|
|
178
|
+
return cy.get(`${this.selector} caption`);
|
|
179
|
+
}
|
|
169
180
|
/**
|
|
170
181
|
* Get table footer.
|
|
171
182
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cypress/index.ts", "../../src/cypress/XDummy.pageobject.ts", "../../src/cypress/FTable.pageobject.ts"],
|
|
4
|
-
"sourcesContent": ["export { XDummyPageObject } from \"./XDummy.pageobject\";\nexport { FTablePageObject } from \"./FTable.pageobject\";\n", "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 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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",
|
|
4
|
+
"sourcesContent": ["export { XDummyPageObject } from \"./XDummy.pageobject\";\nexport { FTablePageObject } from \"./FTable.pageobject\";\n", "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 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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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -282,7 +282,7 @@ function requireSymbolConstructorDetection() {
|
|
|
282
282
|
var globalThis2 = requireGlobalThis();
|
|
283
283
|
var $String = globalThis2.String;
|
|
284
284
|
symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails2(function() {
|
|
285
|
-
var symbol = Symbol("symbol detection");
|
|
285
|
+
var symbol = /* @__PURE__ */ Symbol("symbol detection");
|
|
286
286
|
return !$String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
|
|
287
287
|
!Symbol.sham && V8_VERSION && V8_VERSION < 41;
|
|
288
288
|
});
|
|
@@ -1886,7 +1886,7 @@ requireEs_array_push();
|
|
|
1886
1886
|
function isFTableCellApi(value) {
|
|
1887
1887
|
return value !== null && typeof value === "object" && Boolean(value.tabstopEl);
|
|
1888
1888
|
}
|
|
1889
|
-
const tableCellApiSymbol = Symbol("table:cell-api");
|
|
1889
|
+
const tableCellApiSymbol = /* @__PURE__ */ Symbol("table:cell-api");
|
|
1890
1890
|
function walk(array, visit, childKey, level = 1) {
|
|
1891
1891
|
for (const item of array) {
|
|
1892
1892
|
const visitChildren = visit(item, level);
|
|
@@ -2226,7 +2226,7 @@ const _sfc_main$d = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
2226
2226
|
};
|
|
2227
2227
|
}
|
|
2228
2228
|
});
|
|
2229
|
-
const textTypes = ["text:bankAccountNumber", "text:bankgiro", "text:clearingNumber", "text:email", "text:organisationsnummer", "text:personnummer", "text:phoneNumber", "text:plusgiro", "text:postalCode", "text"];
|
|
2229
|
+
const textTypes = ["text:bankAccountNumber", "text:bankgiro", "text:clearingNumber", "text:date", "text:email", "text:organisationsnummer", "text:personnummer", "text:phoneNumber", "text:plusgiro", "text:postalCode", "text"];
|
|
2230
2230
|
const numberTypes = ["text:currency", "text:number", "text:percent"];
|
|
2231
2231
|
function isInputTypeNumber(value) {
|
|
2232
2232
|
return numberTypes.includes(value);
|
|
@@ -2333,6 +2333,21 @@ const inputFieldConfig = {
|
|
|
2333
2333
|
value: "20"
|
|
2334
2334
|
}]
|
|
2335
2335
|
},
|
|
2336
|
+
"text:date": {
|
|
2337
|
+
formatter(value) {
|
|
2338
|
+
return logic.parseDate(value);
|
|
2339
|
+
},
|
|
2340
|
+
parser(value) {
|
|
2341
|
+
return logic.parseDate(value);
|
|
2342
|
+
},
|
|
2343
|
+
validationConfig: {
|
|
2344
|
+
date: {}
|
|
2345
|
+
},
|
|
2346
|
+
attributes: () => [{
|
|
2347
|
+
name: "type",
|
|
2348
|
+
value: "text"
|
|
2349
|
+
}]
|
|
2350
|
+
},
|
|
2336
2351
|
"text:email": {
|
|
2337
2352
|
formatter(value) {
|
|
2338
2353
|
return value;
|
|
@@ -2758,7 +2773,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
2758
2773
|
const $t = vue.useTranslate();
|
|
2759
2774
|
const multiSelectColumn = {
|
|
2760
2775
|
type: "checkbox",
|
|
2761
|
-
id: Symbol("multi-select"),
|
|
2776
|
+
id: /* @__PURE__ */ Symbol("multi-select"),
|
|
2762
2777
|
header: vue$1.ref("selectable"),
|
|
2763
2778
|
description: vue$1.ref(null),
|
|
2764
2779
|
sortable: null,
|
|
@@ -2779,7 +2794,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
2779
2794
|
};
|
|
2780
2795
|
const singleSelectColumn = {
|
|
2781
2796
|
type: "radio",
|
|
2782
|
-
id: Symbol("single-select"),
|
|
2797
|
+
id: /* @__PURE__ */ Symbol("single-select"),
|
|
2783
2798
|
header: vue$1.ref("Välj en rad"),
|
|
2784
2799
|
description: vue$1.ref(null),
|
|
2785
2800
|
sortable: null,
|
|
@@ -2820,7 +2835,7 @@ function getBodyRowCount(rows, childKey) {
|
|
|
2820
2835
|
}, childKey);
|
|
2821
2836
|
return count;
|
|
2822
2837
|
}
|
|
2823
|
-
const stopEditKey = Symbol();
|
|
2838
|
+
const stopEditKey = /* @__PURE__ */ Symbol();
|
|
2824
2839
|
function useStartStopEdit() {
|
|
2825
2840
|
const stopEdit2 = vue$1.inject(stopEditKey, () => Promise.resolve());
|
|
2826
2841
|
return {
|
|
@@ -3687,7 +3702,7 @@ function normalizeTableColumn(column) {
|
|
|
3687
3702
|
if ("render" in column) {
|
|
3688
3703
|
return {
|
|
3689
3704
|
type: void 0,
|
|
3690
|
-
id: Symbol(),
|
|
3705
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3691
3706
|
header: vue$1.toRef(column.header),
|
|
3692
3707
|
description,
|
|
3693
3708
|
size,
|
|
@@ -3699,7 +3714,7 @@ function normalizeTableColumn(column) {
|
|
|
3699
3714
|
case "checkbox":
|
|
3700
3715
|
return {
|
|
3701
3716
|
type: "checkbox",
|
|
3702
|
-
id: Symbol(),
|
|
3717
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3703
3718
|
header: vue$1.toRef(column.header),
|
|
3704
3719
|
description,
|
|
3705
3720
|
size,
|
|
@@ -3716,7 +3731,7 @@ function normalizeTableColumn(column) {
|
|
|
3716
3731
|
case "radio":
|
|
3717
3732
|
return {
|
|
3718
3733
|
type: "radio",
|
|
3719
|
-
id: Symbol(),
|
|
3734
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3720
3735
|
header: vue$1.toRef(column.header),
|
|
3721
3736
|
description,
|
|
3722
3737
|
size,
|
|
@@ -3737,7 +3752,7 @@ function normalizeTableColumn(column) {
|
|
|
3737
3752
|
const decimals = type === "text:currency" ? 0 : column.decimals;
|
|
3738
3753
|
return {
|
|
3739
3754
|
type,
|
|
3740
|
-
id: Symbol(),
|
|
3755
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3741
3756
|
header: vue$1.toRef(column.header),
|
|
3742
3757
|
description,
|
|
3743
3758
|
size,
|
|
@@ -3760,6 +3775,7 @@ function normalizeTableColumn(column) {
|
|
|
3760
3775
|
case "text:bankAccountNumber":
|
|
3761
3776
|
case "text:bankgiro":
|
|
3762
3777
|
case "text:clearingNumber":
|
|
3778
|
+
case "text:date":
|
|
3763
3779
|
case "text:email":
|
|
3764
3780
|
case "text:organisationsnummer":
|
|
3765
3781
|
case "text:personnummer":
|
|
@@ -3773,7 +3789,7 @@ function normalizeTableColumn(column) {
|
|
|
3773
3789
|
const formatter = (_column$formatter2 = column.formatter) !== null && _column$formatter2 !== void 0 ? _column$formatter2 : config.formatter;
|
|
3774
3790
|
return {
|
|
3775
3791
|
type,
|
|
3776
|
-
id: Symbol(),
|
|
3792
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3777
3793
|
header: vue$1.toRef(column.header),
|
|
3778
3794
|
description,
|
|
3779
3795
|
size,
|
|
@@ -3794,7 +3810,7 @@ function normalizeTableColumn(column) {
|
|
|
3794
3810
|
case "rowheader":
|
|
3795
3811
|
return {
|
|
3796
3812
|
type: "rowheader",
|
|
3797
|
-
id: Symbol(),
|
|
3813
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3798
3814
|
header: vue$1.toRef(column.header),
|
|
3799
3815
|
description,
|
|
3800
3816
|
size,
|
|
@@ -3805,7 +3821,7 @@ function normalizeTableColumn(column) {
|
|
|
3805
3821
|
case "anchor":
|
|
3806
3822
|
return {
|
|
3807
3823
|
type: "anchor",
|
|
3808
|
-
id: Symbol(),
|
|
3824
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3809
3825
|
header: vue$1.toRef(column.header),
|
|
3810
3826
|
description,
|
|
3811
3827
|
size,
|
|
@@ -3821,7 +3837,7 @@ function normalizeTableColumn(column) {
|
|
|
3821
3837
|
case "button":
|
|
3822
3838
|
return {
|
|
3823
3839
|
type: "button",
|
|
3824
|
-
id: Symbol(),
|
|
3840
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3825
3841
|
header: vue$1.toRef(column.header),
|
|
3826
3842
|
description,
|
|
3827
3843
|
size,
|
|
@@ -3838,7 +3854,7 @@ function normalizeTableColumn(column) {
|
|
|
3838
3854
|
case "select":
|
|
3839
3855
|
return {
|
|
3840
3856
|
type: "select",
|
|
3841
|
-
id: Symbol(),
|
|
3857
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3842
3858
|
header: vue$1.toRef(column.header),
|
|
3843
3859
|
description,
|
|
3844
3860
|
size,
|
|
@@ -3856,7 +3872,7 @@ function normalizeTableColumn(column) {
|
|
|
3856
3872
|
case void 0:
|
|
3857
3873
|
return {
|
|
3858
3874
|
type: "text",
|
|
3859
|
-
id: Symbol(),
|
|
3875
|
+
id: /* @__PURE__ */ Symbol(),
|
|
3860
3876
|
header: vue$1.toRef(column.header),
|
|
3861
3877
|
description,
|
|
3862
3878
|
size,
|
|
@@ -4122,26 +4138,30 @@ function useTabstop(tableRef, metaRows) {
|
|
|
4122
4138
|
}
|
|
4123
4139
|
const _hoisted_1$1 = ["role", "aria-rowcount"];
|
|
4124
4140
|
const _hoisted_2$1 = {
|
|
4141
|
+
key: 0,
|
|
4142
|
+
"data-test": "caption"
|
|
4143
|
+
};
|
|
4144
|
+
const _hoisted_3$1 = {
|
|
4125
4145
|
class: "table-ng__row",
|
|
4126
4146
|
"aria-rowindex": "1"
|
|
4127
4147
|
};
|
|
4128
|
-
const
|
|
4148
|
+
const _hoisted_4$1 = {
|
|
4129
4149
|
key: 0,
|
|
4130
4150
|
scope: "col",
|
|
4131
4151
|
tabindex: "-1",
|
|
4132
4152
|
class: "table-ng__column"
|
|
4133
4153
|
};
|
|
4134
|
-
const
|
|
4154
|
+
const _hoisted_5$1 = {
|
|
4135
4155
|
key: 0,
|
|
4136
4156
|
class: "table-ng__row--empty"
|
|
4137
4157
|
};
|
|
4138
|
-
const
|
|
4139
|
-
const
|
|
4140
|
-
const
|
|
4141
|
-
key:
|
|
4158
|
+
const _hoisted_6$1 = ["colspan"];
|
|
4159
|
+
const _hoisted_7$1 = ["aria-level", "aria-rowindex", "aria-setsize", "aria-posinset", "aria-selected"];
|
|
4160
|
+
const _hoisted_8 = {
|
|
4161
|
+
key: 1
|
|
4142
4162
|
};
|
|
4143
|
-
const
|
|
4144
|
-
const
|
|
4163
|
+
const _hoisted_9 = ["aria-rowindex"];
|
|
4164
|
+
const _hoisted_10 = ["colspan"];
|
|
4145
4165
|
const _sfc_main$2 = /* @__PURE__ */ vue$1.defineComponent({
|
|
4146
4166
|
__name: "FTable",
|
|
4147
4167
|
props: /* @__PURE__ */ vue$1.mergeModels({
|
|
@@ -4179,6 +4199,11 @@ const _sfc_main$2 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
4179
4199
|
const metaRows = vue$1.computed(() => getMetaRows(keyedRows.value, expandedKeys.value, __props.expandableAttribute));
|
|
4180
4200
|
const isTreegrid = vue$1.computed(() => Boolean(__props.expandableAttribute));
|
|
4181
4201
|
const role = vue$1.computed(() => isTreegrid.value ? "treegrid" : "grid");
|
|
4202
|
+
const hasCaption = vue$1.computed(() => {
|
|
4203
|
+
return hasSlot("caption", {}, {
|
|
4204
|
+
stripClasses: []
|
|
4205
|
+
});
|
|
4206
|
+
});
|
|
4182
4207
|
const isEmpty = vue$1.computed(() => {
|
|
4183
4208
|
return metaRows.value.length === 0;
|
|
4184
4209
|
});
|
|
@@ -4351,7 +4376,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
4351
4376
|
onFocusout: onTableFocusout,
|
|
4352
4377
|
onClick,
|
|
4353
4378
|
onKeydown
|
|
4354
|
-
}, [vue$1.createElementVNode("thead", null, [vue$1.createElementVNode("tr",
|
|
4379
|
+
}, [hasCaption.value ? (vue$1.openBlock(), vue$1.createElementBlock("caption", _hoisted_2$1, [vue$1.renderSlot(_ctx.$slots, "caption")])) : vue$1.createCommentVNode("", true), _cache[5] || (_cache[5] = vue$1.createTextVNode()), vue$1.createElementVNode("thead", null, [vue$1.createElementVNode("tr", _hoisted_3$1, [isTreegrid.value ? (vue$1.openBlock(), vue$1.createElementBlock("th", _hoisted_4$1)) : vue$1.createCommentVNode("", true), _cache[0] || (_cache[0] = vue$1.createTextVNode()), __props.selectable ? (vue$1.openBlock(), vue$1.createBlock(_sfc_main$b, {
|
|
4355
4380
|
key: 1,
|
|
4356
4381
|
ref: bindCellApiRef,
|
|
4357
4382
|
state: vue$1.unref(selectableHeaderState)(),
|
|
@@ -4366,10 +4391,10 @@ const _sfc_main$2 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
4366
4391
|
scope: "col",
|
|
4367
4392
|
onToggleSortOrder
|
|
4368
4393
|
}, null, 8, ["column", "sort-enabled", "sort-order"]);
|
|
4369
|
-
}), 128))])]), _cache[
|
|
4394
|
+
}), 128))])]), _cache[6] || (_cache[6] = vue$1.createTextVNode()), vue$1.createElementVNode("tbody", null, [isEmpty.value ? (vue$1.openBlock(), vue$1.createElementBlock("tr", _hoisted_5$1, [vue$1.createElementVNode("td", {
|
|
4370
4395
|
colspan: columnCount.value,
|
|
4371
4396
|
class: "table-ng__cell"
|
|
4372
|
-
}, [vue$1.renderSlot(_ctx.$slots, "empty", {}, () => [_cache[2] || (_cache[2] = vue$1.createTextVNode(" Tabellen är tom ", -1))])], 8,
|
|
4397
|
+
}, [vue$1.renderSlot(_ctx.$slots, "empty", {}, () => [_cache[2] || (_cache[2] = vue$1.createTextVNode(" Tabellen är tom ", -1))])], 8, _hoisted_6$1)])) : (vue$1.openBlock(true), vue$1.createElementBlock(vue$1.Fragment, {
|
|
4373
4398
|
key: 1
|
|
4374
4399
|
}, vue$1.renderList(metaRows.value, ({
|
|
4375
4400
|
key,
|
|
@@ -4431,14 +4456,14 @@ const _sfc_main$2 = /* @__PURE__ */ vue$1.defineComponent({
|
|
|
4431
4456
|
key: 1,
|
|
4432
4457
|
row
|
|
4433
4458
|
}, null, 8, ["row"])) : vue$1.createCommentVNode("", true)], 64);
|
|
4434
|
-
}), 128))], 64))], 8,
|
|
4435
|
-
}), 128))]), _cache[
|
|
4459
|
+
}), 128))], 64))], 8, _hoisted_7$1);
|
|
4460
|
+
}), 128))]), _cache[7] || (_cache[7] = vue$1.createTextVNode()), hasFooter.value ? (vue$1.openBlock(), vue$1.createElementBlock("tfoot", _hoisted_8, [vue$1.createElementVNode("tr", {
|
|
4436
4461
|
class: "table-ng__row",
|
|
4437
4462
|
"aria-rowindex": ariaRowcount.value
|
|
4438
4463
|
}, [vue$1.createElementVNode("td", {
|
|
4439
4464
|
colspan: columnCount.value,
|
|
4440
4465
|
class: "table-ng__cell--custom"
|
|
4441
|
-
}, [vue$1.renderSlot(_ctx.$slots, "footer")], 8,
|
|
4466
|
+
}, [vue$1.renderSlot(_ctx.$slots, "footer")], 8, _hoisted_10)], 8, _hoisted_9)])) : vue$1.createCommentVNode("", true)], 42, _hoisted_1$1);
|
|
4442
4467
|
};
|
|
4443
4468
|
}
|
|
4444
4469
|
});
|