xv-webcomponents 0.1.31 → 0.1.35
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/{index-5ee1b884.js → index-2705073a.js} +5 -2
- package/dist/cjs/index-2705073a.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/xv-accordion-v2_26.cjs.entry.js +126 -46
- package/dist/cjs/xv-accordion-v2_26.cjs.entry.js.map +1 -1
- package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
- package/dist/cjs/xv-webcomponents.cjs.js +2 -2
- package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown.js +41 -10
- package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
- package/dist/collection/components/xv-footer/xv-footer.js +1 -1
- package/dist/collection/components/xv-header/xv-header.js +1 -1
- package/dist/collection/components/xv-link/xv-link.css +5 -0
- package/dist/collection/components/xv-link/xv-link.js +3 -3
- package/dist/collection/components/xv-link/xv-link.js.map +1 -1
- package/dist/collection/components/xv-modal/xv-modal.css +3 -0
- package/dist/collection/components/xv-modal/xv-modal.js +31 -7
- package/dist/collection/components/xv-modal/xv-modal.js.map +1 -1
- package/dist/collection/components/xv-notification/xv-notification.js +3 -3
- package/dist/collection/components/xv-notification/xv-notification.js.map +1 -1
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +3 -0
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
- package/dist/collection/components/xv-table/_vars.js.map +1 -1
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +10 -3
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +10 -10
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
- package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +8 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +33 -2
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +1 -1
- package/dist/collection/components/xv-table/xv-table.css +29 -0
- package/dist/collection/components/xv-table/xv-table.js +30 -4
- package/dist/collection/components/xv-table/xv-table.js.map +1 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +7 -0
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +42 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js.map +1 -1
- package/dist/collection/components/xv-tabs/xv-tabs.css +67 -9
- package/dist/collection/components/xv-tabs/xv-tabs.js +109 -17
- package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
- package/dist/collection/components/xv-tag/xv-tag.js +1 -1
- package/dist/collection/components/xv-text-input/xv-text-input.css +1 -0
- package/dist/collection/components/xv-text-input/xv-text-input.js +44 -1
- package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.css +6 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.js +22 -3
- package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
- package/dist/esm/{index-590eb7d2.js → index-a650cb06.js} +5 -2
- package/dist/esm/index-a650cb06.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/xv-accordion-v2_26.entry.js +126 -46
- package/dist/esm/xv-accordion-v2_26.entry.js.map +1 -1
- package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
- package/dist/esm/xv-webcomponents.js +3 -3
- package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +2 -0
- package/dist/types/components/xv-link/xv-link.d.ts +1 -1
- package/dist/types/components/xv-modal/xv-modal.d.ts +5 -1
- package/dist/types/components/xv-table/_vars.d.ts +4 -0
- package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +3 -6
- package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +1 -0
- package/dist/types/components/xv-table/xv-table.d.ts +2 -1
- package/dist/types/components/xv-tabs/xv-tab/xv-tab.d.ts +2 -0
- package/dist/types/components/xv-tabs/xv-tabs.d.ts +18 -4
- package/dist/types/components/xv-text-input/xv-text-input.d.ts +3 -0
- package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +76 -14
- package/dist/xv-webcomponents/p-497959a9.js +3 -0
- package/dist/xv-webcomponents/p-497959a9.js.map +1 -0
- package/dist/xv-webcomponents/p-e1b76c23.entry.js +2 -0
- package/dist/xv-webcomponents/p-e1b76c23.entry.js.map +1 -0
- package/dist/xv-webcomponents/{p-c09a0bfe.entry.js → p-ea853c5c.entry.js} +2 -2
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/index-5ee1b884.js.map +0 -1
- package/dist/esm/index-590eb7d2.js.map +0 -1
- package/dist/xv-webcomponents/p-612356e6.js +0 -3
- package/dist/xv-webcomponents/p-612356e6.js.map +0 -1
- package/dist/xv-webcomponents/p-e750290d.entry.js +0 -2
- package/dist/xv-webcomponents/p-e750290d.entry.js.map +0 -1
- /package/dist/xv-webcomponents/{p-c09a0bfe.entry.js.map → p-ea853c5c.entry.js.map} +0 -0
|
@@ -5,7 +5,7 @@ export class XvProgressIndicatorItem {
|
|
|
5
5
|
this.status = PROGRESS_ITEM_STATUS.NO_STARTED;
|
|
6
6
|
}
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: '79acb016d3774423ebc4b4fca110a2ac450358ff', status: this.status, class: { 'xv-progress-indicator-item': true } }, h("span", { key: 'da650032b1e038635c5bbbbdabcf8de3d510c162', class: "line" }), h("span", { key: 'b3cfcdca102ea9d180b711a90a3a735b1faf0296', class: "icon" }, h("svg", { key: 'ad92853715e40b74c291867a158759cfd13ff9af', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" }, h("path", { key: '955f05d5ffcebd9dee12fd89ae34cdf94d68f668', fill: "currentColor", d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }))), h("p", { key: '9c47e82f96314c2e0868c6c67ff9c0b4b66eec4f', class: "label" }, h("slot", { key: '5730d018f363e84fb299877ee854360eb42b06ce' }))));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "xv-progress-indicator-v2-item"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -56,7 +56,7 @@ export class XvProgressIndicator {
|
|
|
56
56
|
this.updateChildItems();
|
|
57
57
|
}
|
|
58
58
|
render() {
|
|
59
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: '00ad521136d02deaedb3984ff711d23ff0853062', variant: this.variant, size: this.size, class: { 'xv-progress-indicator': true } }, h("slot", { key: '054dbfebd8387688975665058d9bba3903a768fc' })));
|
|
60
60
|
}
|
|
61
61
|
static get is() { return "xv-progress-indicator-v2"; }
|
|
62
62
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_vars.js","sourceRoot":"","sources":["../../../src/components/xv-table/_vars.ts"],"names":[],"mappings":"AASA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC","sourcesContent":["export interface SelectRowDto {\n name: string;\n checked: boolean;\n value?: string | number | object;\n partial?: boolean;\n header?: boolean;\n expandable?: boolean;\n}\n\nexport enum XV_SORT_DIR {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\n}\n\nexport const XV_EXPANDABLE_KEY = 'expandable';\nexport const XV_TABLE_TAG = 'xv-table-v2';\n"]}
|
|
1
|
+
{"version":3,"file":"_vars.js","sourceRoot":"","sources":["../../../src/components/xv-table/_vars.ts"],"names":[],"mappings":"AASA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC","sourcesContent":["export interface SelectRowDto {\n name: string;\n checked: boolean;\n value?: string | number | object;\n partial?: boolean;\n header?: boolean;\n expandable?: boolean;\n}\n\nexport enum XV_SORT_DIR {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\n}\n\nexport const XV_EXPANDABLE_KEY = 'expandable';\nexport const XV_TABLE_TAG = 'xv-table-v2';\n\nexport interface XVTableSortDto {\n name?: string;\n value: XV_SORT_DIR;\n}\n"]}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
:host {
|
|
3
|
-
/*display: -webkit-box;
|
|
4
|
-
-webkit-line-clamp: 2;
|
|
5
|
-
-webkit-box-orient: vertical;*/
|
|
6
3
|
white-space: nowrap;
|
|
7
4
|
overflow: hidden;
|
|
8
5
|
text-overflow: ellipsis;
|
|
@@ -17,6 +14,16 @@
|
|
|
17
14
|
transition: 0.25s ease-in-out background-color;
|
|
18
15
|
}
|
|
19
16
|
|
|
17
|
+
:host([multiline]) {
|
|
18
|
+
display: -webkit-box;
|
|
19
|
+
-webkit-line-clamp: 2;
|
|
20
|
+
-webkit-box-orient: vertical;
|
|
21
|
+
white-space: initial;
|
|
22
|
+
padding-bottom: 1px;
|
|
23
|
+
padding-top: 0;
|
|
24
|
+
line-height: 1.2;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
:host([align=left]) {
|
|
21
28
|
text-align: left;
|
|
22
29
|
}
|
|
@@ -22,7 +22,7 @@ export class XvTableCell {
|
|
|
22
22
|
}
|
|
23
23
|
;
|
|
24
24
|
render() {
|
|
25
|
-
return (h(Host, { key: '
|
|
25
|
+
return (h(Host, { key: 'c7d27a9888f8dd449e4ece79309497a7a5435f3f' }, h("slot", { key: '9dfec1da63cd4c796a152fd7c95cd95573922445' })));
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "xv-table-v2-cell"; }
|
|
28
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -38,12 +38,12 @@ export class XvTableCell {
|
|
|
38
38
|
}
|
|
39
39
|
static get properties() {
|
|
40
40
|
return {
|
|
41
|
-
"
|
|
42
|
-
"type": "
|
|
41
|
+
"multiline": {
|
|
42
|
+
"type": "boolean",
|
|
43
43
|
"mutable": false,
|
|
44
44
|
"complexType": {
|
|
45
|
-
"original": "
|
|
46
|
-
"resolved": "
|
|
45
|
+
"original": "boolean",
|
|
46
|
+
"resolved": "boolean",
|
|
47
47
|
"references": {}
|
|
48
48
|
},
|
|
49
49
|
"required": false,
|
|
@@ -54,7 +54,7 @@ export class XvTableCell {
|
|
|
54
54
|
},
|
|
55
55
|
"getter": false,
|
|
56
56
|
"setter": false,
|
|
57
|
-
"attribute": "
|
|
57
|
+
"attribute": "multiline",
|
|
58
58
|
"reflect": true
|
|
59
59
|
},
|
|
60
60
|
"name": {
|
|
@@ -134,13 +134,13 @@ export class XvTableCell {
|
|
|
134
134
|
"text": ""
|
|
135
135
|
},
|
|
136
136
|
"complexType": {
|
|
137
|
-
"original": "
|
|
138
|
-
"resolved": "
|
|
137
|
+
"original": "XVTableSortDto",
|
|
138
|
+
"resolved": "XVTableSortDto",
|
|
139
139
|
"references": {
|
|
140
|
-
"
|
|
140
|
+
"XVTableSortDto": {
|
|
141
141
|
"location": "import",
|
|
142
142
|
"path": "../_vars",
|
|
143
|
-
"id": "src/components/xv-table/_vars.ts::
|
|
143
|
+
"id": "src/components/xv-table/_vars.ts::XVTableSortDto"
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xv-table-cell.js","sourceRoot":"","sources":["../../../../src/components/xv-table/xv-table-cell/xv-table-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"xv-table-cell.js","sourceRoot":"","sources":["../../../../src/components/xv-table/xv-table-cell/xv-table-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAO7D,MAAM,OAAO,WAAW;IAStB,UAAU;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACpC,IAAI,IAAI,GAAqB,IAAI,CAAC,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;YAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;YACrC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAA,CAAC;IAEF,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YAAC,8DAAQ,CAAO,CACtB,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\nimport { XV_SORT_DIR, XVTableSortDto } from '../_vars';\nimport { forEach, uidGenerator } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-cell',\n styleUrl: 'xv-table-cell.scss',\n shadow: true,\n})\nexport class XvTableCell {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) multiline?: boolean;\n @Prop({ reflect: true, mutable: true }) name?: string;\n @Prop({ reflect: true }) align?: 'left' | 'right' | 'center';\n @Prop({ reflect: true, mutable: true }) sort?: XV_SORT_DIR | '';\n @Event({ eventName: 'sortChange' }) sortChange: EventEmitter<XVTableSortDto>;\n\n @Listen('click')\n handleSort() {\n if (this.sort === undefined) return;\n let sort: XV_SORT_DIR | '' = this.sort;\n if (this.sort === '') sort = XV_SORT_DIR.NONE;\n\n this.sort = sort === XV_SORT_DIR.NONE ?\n XV_SORT_DIR.ASC : sort === XV_SORT_DIR.ASC ?\n XV_SORT_DIR.DESC : XV_SORT_DIR.NONE;\n\n forEach(this.el.parentElement.children, (cell) => {\n if (cell !== this.el && cell.hasAttribute('sort')) {\n cell.setAttribute('sort', 'none');\n }\n });\n\n if (!this.name) this.name = uidGenerator();\n this.sortChange.emit({ name: this.name, value: this.sort });\n };\n\n render() {\n return (\n <Host><slot /></Host>\n );\n }\n}\n"]}
|
|
@@ -10,7 +10,7 @@ export class XvTableExpand {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return (h(Host, { key: '
|
|
13
|
+
return (h(Host, { key: 'd5b0feeb957eb5d6ed947c0819225a6898fea034' }, h("button", { key: '63a7820dc19b3dfb5047f6ec5c271b99a3766d9d', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), h("slot", { key: '73ccb205e604809beee6ffc53f00a2033ded8a4a', name: XV_EXPANDABLE_KEY }), h("div", { key: '32399433e236263d8a63874358d27f78db42975c', class: { expandableContent: true, open: this.open } }, h("slot", { key: '52fe4f89bbea86a16ead1f8f001f7cc74239f5d9' }))));
|
|
14
14
|
}
|
|
15
15
|
componentDidLoad() {
|
|
16
16
|
setAttr(this.el.parentElement, XV_EXPANDABLE_KEY, true);
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
:host {
|
|
2
2
|
display: grid;
|
|
3
|
-
align-items: center;
|
|
4
3
|
grid-template-columns: var(--xv-table-cols-template, repeat(auto-fit, minmax(0, 1fr)));
|
|
5
4
|
border-bottom: 1px solid #E3E3E3;
|
|
5
|
+
border-right: 1px solid #E3E3E3;
|
|
6
|
+
border-left: 1px solid #E3E3E3;
|
|
7
|
+
min-height: var(--xv-table-min-height);
|
|
8
|
+
align-items: center;
|
|
9
|
+
align-content: center;
|
|
6
10
|
transition: 0.25s ease-in-out background-color;
|
|
7
11
|
}
|
|
8
12
|
:host .cell-control {
|
|
9
13
|
min-height: 20px;
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
justify-content: center;
|
|
10
17
|
}
|
|
11
18
|
|
|
12
19
|
:host([variant]) {
|
|
@@ -7,12 +7,22 @@ export class XvTableRow {
|
|
|
7
7
|
this.checked = checked;
|
|
8
8
|
if (!checked && this.partial)
|
|
9
9
|
this.partial = checked;
|
|
10
|
+
if (!this.name)
|
|
11
|
+
this.name = uidGenerator();
|
|
12
|
+
this.selectRow.emit({
|
|
13
|
+
name: this.name,
|
|
14
|
+
value: this.value,
|
|
15
|
+
checked: this.checked,
|
|
16
|
+
partial: this.partial,
|
|
17
|
+
header: this.header,
|
|
18
|
+
expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,
|
|
19
|
+
});
|
|
10
20
|
};
|
|
11
21
|
}
|
|
12
22
|
checkedChangeHandle() {
|
|
13
23
|
if (!this.name)
|
|
14
24
|
this.name = uidGenerator();
|
|
15
|
-
this.
|
|
25
|
+
this.checkedChange.emit({
|
|
16
26
|
name: this.name,
|
|
17
27
|
value: this.value,
|
|
18
28
|
checked: this.checked,
|
|
@@ -33,7 +43,7 @@ export class XvTableRow {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
render() {
|
|
36
|
-
return (h(Host, { key: '
|
|
46
|
+
return (h(Host, { key: '1b026dc3a4cc49aefd6963864fba1cf1e63acc53' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: 'c37dc2e05c0e0b50b74a71e196ccbc2dce10b216', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: 'a90ed4e7d5b871e559e6736a33e2caae2be1bc4c', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (h("input", { key: '9223337d132b22e9cc516b0aa13702e5361ff570', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: 'a9a63bd03d0ecb929ceba7e85a96271636ed0a80' })));
|
|
37
47
|
}
|
|
38
48
|
componentWillLoad() {
|
|
39
49
|
this.setInitialAttrs();
|
|
@@ -270,6 +280,27 @@ export class XvTableRow {
|
|
|
270
280
|
}
|
|
271
281
|
static get events() {
|
|
272
282
|
return [{
|
|
283
|
+
"method": "checkedChange",
|
|
284
|
+
"name": "checkedChange",
|
|
285
|
+
"bubbles": true,
|
|
286
|
+
"cancelable": true,
|
|
287
|
+
"composed": true,
|
|
288
|
+
"docs": {
|
|
289
|
+
"tags": [],
|
|
290
|
+
"text": ""
|
|
291
|
+
},
|
|
292
|
+
"complexType": {
|
|
293
|
+
"original": "SelectRowDto",
|
|
294
|
+
"resolved": "SelectRowDto",
|
|
295
|
+
"references": {
|
|
296
|
+
"SelectRowDto": {
|
|
297
|
+
"location": "import",
|
|
298
|
+
"path": "../_vars",
|
|
299
|
+
"id": "src/components/xv-table/_vars.ts::SelectRowDto"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}, {
|
|
273
304
|
"method": "selectRow",
|
|
274
305
|
"name": "selectRow",
|
|
275
306
|
"bubbles": true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xv-table-row.js","sourceRoot":"","sources":["../../../../src/components/xv-table/xv-table-row/xv-table-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAO7D,MAAM,OAAO,UAAU;IALvB;
|
|
1
|
+
{"version":3,"file":"xv-table-row.js","sourceRoot":"","sources":["../../../../src/components/xv-table/xv-table-row/xv-table-row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { SelectRowDto, XV_EXPANDABLE_KEY, XV_TABLE_TAG } from '../_vars';\nimport { setAttr, uidGenerator } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-row',\n styleUrl: 'xv-table-row.scss',\n shadow: true,\n})\nexport class XvTableRow {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) checked?: SelectRowDto['checked'];\n @Event({ eventName: 'checkedChange' }) checkedChange: EventEmitter<SelectRowDto>;\n @Prop({ reflect: true, mutable: true }) partial?: SelectRowDto['partial'];\n @Prop({ reflect: true, mutable: true }) name?: SelectRowDto['name'];\n @Prop({ reflect: true }) value?: SelectRowDto['value'];\n @Prop({ reflect: true, mutable: true }) hover?: boolean;\n @Prop({ reflect: true }) readonly?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) header?: boolean;\n @Prop({ reflect: true, mutable: true }) variant?: 'checkbox' | 'radio' | '';\n\n @Event({ eventName: 'selectRow' }) selectRow: EventEmitter<SelectRowDto>;\n\n @Watch('checked')\n checkedChangeHandle() {\n if (!this.name) this.name = uidGenerator();\n this.checkedChange.emit({\n name: this.name,\n value: this.value,\n checked: this.checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n }\n\n private checkHandle = ({ detail: checked }: CustomEvent<boolean>) => {\n this.checked = checked;\n if (!checked && this.partial) this.partial = checked;\n\n if (!this.name) this.name = uidGenerator();\n this.selectRow.emit({\n name: this.name,\n value: this.value,\n checked: this.checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n };\n\n private setInitialAttrs() {\n if (this.variant || !this.hover) {\n const tableEl = this.el.closest(XV_TABLE_TAG);\n if (!this.hover) {\n this.hover = tableEl.hasAttribute('hover');\n }\n if (this.variant) {\n setAttr(this.el.closest(XV_TABLE_TAG), `variant-${this.variant}`, !!this.variant);\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.variant !== undefined && (\n <xv-table-v2-cell class=\"cell-control\">\n {this.variant === 'checkbox' && (\n <xv-checkbox-v2\n name={this.name}\n partial={this.partial}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n onEventChange={this.checkHandle}\n />\n )}\n {this.variant === 'radio' && (\n <input\n type=\"radio\"\n name={this.name}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n />\n )}\n </xv-table-v2-cell>\n )}\n\n <slot />\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setInitialAttrs();\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
:host {
|
|
2
|
+
--xv-table-min-height: 51.11px;
|
|
2
3
|
--xv-table-padding-x: 16px;
|
|
3
4
|
--xv-table-padding-y: 15px;
|
|
4
5
|
--xv-table-cols-template: repeat(auto-fit, minmax(0, 1fr));
|
|
@@ -44,6 +45,17 @@
|
|
|
44
45
|
flex-direction: column;
|
|
45
46
|
position: relative;
|
|
46
47
|
}
|
|
48
|
+
:host .xv-table_wrapper {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
position: relative;
|
|
52
|
+
overflow-x: auto;
|
|
53
|
+
scrollbar-width: thin;
|
|
54
|
+
scrollbar-color: var(--layer-accent-03) transparent;
|
|
55
|
+
}
|
|
56
|
+
:host .xv-table_wrapper ::slotted(*) {
|
|
57
|
+
min-width: 1000px;
|
|
58
|
+
}
|
|
47
59
|
:host .xv-table ::slotted([checked]) {
|
|
48
60
|
background-color: var(--layer-selected-01, #E3E3E3);
|
|
49
61
|
}
|
|
@@ -59,6 +71,19 @@
|
|
|
59
71
|
:host .xv-table ::slotted([slot=footer]) {
|
|
60
72
|
background-color: var(--layer-accent-02, #E3E3E3);
|
|
61
73
|
}
|
|
74
|
+
:host .xv-table_loading {
|
|
75
|
+
z-index: 10;
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
min-height: var(--xv-table-min-height, 51.11px);
|
|
80
|
+
position: absolute;
|
|
81
|
+
top: 0;
|
|
82
|
+
left: 0;
|
|
83
|
+
width: 100%;
|
|
84
|
+
height: 100%;
|
|
85
|
+
background-color: rgba(255, 255, 255, 0.8);
|
|
86
|
+
}
|
|
62
87
|
:host .xv-table-title,
|
|
63
88
|
:host ::slotted([slot=title]) {
|
|
64
89
|
color: var(--text-primary, #333) !important;
|
|
@@ -92,16 +117,20 @@
|
|
|
92
117
|
|
|
93
118
|
:host([size=xs]) {
|
|
94
119
|
--xv-table-padding-y: 7px;
|
|
120
|
+
--xv-table-min-height: 35.1px;
|
|
95
121
|
}
|
|
96
122
|
|
|
97
123
|
:host([size=sm]) {
|
|
98
124
|
--xv-table-padding-y: 10px;
|
|
125
|
+
--xv-table-min-height: 41.11px;
|
|
99
126
|
}
|
|
100
127
|
|
|
101
128
|
:host([size=lg]) {
|
|
102
129
|
--xv-table-padding-y: 21px;
|
|
130
|
+
--xv-table-min-height: 63.09px;
|
|
103
131
|
}
|
|
104
132
|
|
|
105
133
|
:host([size=xl]) {
|
|
106
134
|
--xv-table-padding-y: 31px;
|
|
135
|
+
--xv-table-min-height: 78.77px;
|
|
107
136
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Host, h, Fragment } from "@stencil/core";
|
|
2
|
+
import { SIZE_VAR } from "../../types/enum";
|
|
2
3
|
export class XvTable {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.selected = new Map();
|
|
5
6
|
this.selectedCount = 0;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
+
handleCheckedChange({ detail }) {
|
|
8
9
|
if (detail.header || detail.expandable)
|
|
9
10
|
return;
|
|
10
11
|
if (detail.checked) {
|
|
@@ -30,7 +31,7 @@ export class XvTable {
|
|
|
30
31
|
.join(' ') + ' repeat(auto-fit, minmax(0, 1fr))');
|
|
31
32
|
}
|
|
32
33
|
render() {
|
|
33
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: 'd661040bcec38c039dd3ae7516fa40bfb0274da7', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: 'a341cf9b6bf250dbf0dbee0bf17da8a734be7a31', name: "title" }, !!this.el.title && h("h2", { key: 'bf33335fe741ebae458f3dcc02d1d65ac4c75ddd', class: "xv-table-title" }, this.el.title)), h("slot", { key: 'b7504f0b48d538ce6d4c1fb7706e1ab8bce8bd8c', name: "toolbar" }), h("div", { key: '54b51b51171726650858ce3484c1d510dd88796c', class: "xv-table" }, h("div", { key: '22f7f3638901e4f80acee21696ee4ae8d7e01ad4', class: "batch-actions" }, h(Fragment, { key: '922d574d34d7ff5632a9b5489bbf4b205f64f3bd' }, h("div", { key: 'eb7a82cda62bb1084715d446da1ca082c7ff6f37', class: "batch-actions_content" }, h("slot", { key: 'eb95cf88821c541e71b1620ce0d79bbe196a16e8', name: "batch" })), h("p", { key: '050dbbefa2fc8adfffbbb12652964279bd5b69d4', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("div", { key: 'd9b2187c942ebb3b7acdefdd180be5fcbfcd3584', class: "xv-table_wrapper" }, h("slot", { key: '521a467f10d6af8fbd504376283e6fb738a618d3' }), h("slot", { key: '2e5e03829cc2a410be2e10e547d7c323d05ac251', name: "footer" })), !!this.loading && (h("div", { key: '91ff01d4e08b67c62ba5696dc781edb9b821dd54', class: "xv-table_loading" }, h("xv-loader-v2", { key: '97927371d38d0de32aa9e6cf6f3d68239f97d5a0', size: SIZE_VAR.LG }))))));
|
|
34
35
|
}
|
|
35
36
|
componentWillLoad() {
|
|
36
37
|
this.setColsSizeTemplate();
|
|
@@ -93,6 +94,25 @@ export class XvTable {
|
|
|
93
94
|
"attribute": "hover",
|
|
94
95
|
"reflect": true
|
|
95
96
|
},
|
|
97
|
+
"loading": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"mutable": false,
|
|
100
|
+
"complexType": {
|
|
101
|
+
"original": "boolean",
|
|
102
|
+
"resolved": "boolean",
|
|
103
|
+
"references": {}
|
|
104
|
+
},
|
|
105
|
+
"required": false,
|
|
106
|
+
"optional": true,
|
|
107
|
+
"docs": {
|
|
108
|
+
"tags": [],
|
|
109
|
+
"text": ""
|
|
110
|
+
},
|
|
111
|
+
"getter": false,
|
|
112
|
+
"setter": false,
|
|
113
|
+
"attribute": "loading",
|
|
114
|
+
"reflect": true
|
|
115
|
+
},
|
|
96
116
|
"colsSize": {
|
|
97
117
|
"type": "unknown",
|
|
98
118
|
"mutable": false,
|
|
@@ -119,10 +139,16 @@ export class XvTable {
|
|
|
119
139
|
};
|
|
120
140
|
}
|
|
121
141
|
static get elementRef() { return "el"; }
|
|
142
|
+
static get watchers() {
|
|
143
|
+
return [{
|
|
144
|
+
"propName": "colsSize",
|
|
145
|
+
"methodName": "setColsSizeTemplate"
|
|
146
|
+
}];
|
|
147
|
+
}
|
|
122
148
|
static get listeners() {
|
|
123
149
|
return [{
|
|
124
|
-
"name": "
|
|
125
|
-
"method": "
|
|
150
|
+
"name": "checkedChange",
|
|
151
|
+
"method": "handleCheckedChange",
|
|
126
152
|
"target": undefined,
|
|
127
153
|
"capture": false,
|
|
128
154
|
"passive": false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xv-table.js","sourceRoot":"","sources":["../../../src/components/xv-table/xv-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"xv-table.js","sourceRoot":"","sources":["../../../src/components/xv-table/xv-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, State, Listen, Fragment, Watch } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { SelectRowDto } from './_vars';\n\n@Component({\n tag: 'xv-table-v2',\n styleUrl: 'xv-table.scss',\n shadow: true,\n})\nexport class XvTable {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) size?: SIZE_VAR;\n @Prop({ reflect: true }) hover?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, attribute: 'colsSize' }) colsSize?: (string | null)[];\n @State() selected: Map<string, SelectRowDto> = new Map();\n @State() selectedCount: number = 0;\n\n @Listen('checkedChange')\n handleCheckedChange({ detail }: CustomEvent<SelectRowDto>) {\n if (detail.header || detail.expandable) return;\n if (detail.checked) {\n this.selected.set(detail.name, detail);\n } else {\n this.selected.delete(detail.name);\n }\n\n this.selectedCount = this.selected.size;\n }\n\n @Watch('colsSize')\n private setColsSizeTemplate() {\n if (!this.colsSize || !this.colsSize?.length) return;\n\n this.el.style.setProperty(\n '--xv-table-cols-template',\n this.colsSize\n .map((v) => {\n if (!v) return 'minmax(0, 1fr)';\n if (v === 'auto') return 'minmax(0, auto)';\n return `calc(${v} - ${50 / this.colsSize.length}px)`;\n })\n .join(' ') + ' repeat(auto-fit, minmax(0, 1fr))',\n );\n }\n\n render() {\n return (\n <Host class={{ batchVisible: !!this.selectedCount }}>\n <slot name=\"title\">\n {!!this.el.title && <h2 class=\"xv-table-title\">{this.el.title}</h2>}\n </slot>\n\n <slot name=\"toolbar\" />\n\n <div class=\"xv-table\">\n <div class=\"batch-actions\">\n <Fragment>\n <div class=\"batch-actions_content\">\n <slot name=\"batch\" />\n </div>\n <p class=\"batch-actions_count\">\n {!!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`}\n </p>\n </Fragment>\n </div>\n\n <div class=\"xv-table_wrapper\">\n <slot />\n\n <slot name=\"footer\" />\n </div>\n\n {!!this.loading && (\n <div class=\"xv-table_loading\">\n <xv-loader-v2 size={SIZE_VAR.LG} />\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setColsSizeTemplate();\n }\n}\n"]}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { SIZE_VAR } from "../../../types/enum";
|
|
2
3
|
export class XvTab {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.disabled = false;
|
|
6
|
+
this.loading = false;
|
|
5
7
|
}
|
|
6
8
|
render() {
|
|
7
|
-
return h(Host, { key: '
|
|
9
|
+
return (h(Host, { key: '41e9cd0d84db300497b86bd697aa867fd591d405', disabled: this.disabled, name: this.name }, this.loading ? h("xv-loader-v2", { size: SIZE_VAR.LG }) : h("slot", null)));
|
|
8
10
|
}
|
|
9
11
|
static get is() { return "xv-tab-v2"; }
|
|
10
12
|
static get encapsulation() { return "shadow"; }
|
|
@@ -58,6 +60,45 @@ export class XvTab {
|
|
|
58
60
|
"attribute": "disabled",
|
|
59
61
|
"reflect": true,
|
|
60
62
|
"defaultValue": "false"
|
|
63
|
+
},
|
|
64
|
+
"loading": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"mutable": false,
|
|
67
|
+
"complexType": {
|
|
68
|
+
"original": "boolean",
|
|
69
|
+
"resolved": "boolean",
|
|
70
|
+
"references": {}
|
|
71
|
+
},
|
|
72
|
+
"required": false,
|
|
73
|
+
"optional": false,
|
|
74
|
+
"docs": {
|
|
75
|
+
"tags": [],
|
|
76
|
+
"text": ""
|
|
77
|
+
},
|
|
78
|
+
"getter": false,
|
|
79
|
+
"setter": false,
|
|
80
|
+
"attribute": "loading",
|
|
81
|
+
"reflect": true,
|
|
82
|
+
"defaultValue": "false"
|
|
83
|
+
},
|
|
84
|
+
"name": {
|
|
85
|
+
"type": "any",
|
|
86
|
+
"mutable": false,
|
|
87
|
+
"complexType": {
|
|
88
|
+
"original": "number | string",
|
|
89
|
+
"resolved": "number | string",
|
|
90
|
+
"references": {}
|
|
91
|
+
},
|
|
92
|
+
"required": false,
|
|
93
|
+
"optional": true,
|
|
94
|
+
"docs": {
|
|
95
|
+
"tags": [],
|
|
96
|
+
"text": ""
|
|
97
|
+
},
|
|
98
|
+
"getter": false,
|
|
99
|
+
"setter": false,
|
|
100
|
+
"attribute": "name",
|
|
101
|
+
"reflect": false
|
|
61
102
|
}
|
|
62
103
|
};
|
|
63
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xv-tab.js","sourceRoot":"","sources":["../../../../src/components/xv-tabs/xv-tab/xv-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"xv-tab.js","sourceRoot":"","sources":["../../../../src/components/xv-tabs/xv-tab/xv-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,OAAO,KAAK;IALlB;QAO2B,aAAQ,GAAY,KAAK,CAAC;QAC1B,YAAO,GAAY,KAAK,CAAC;KAUnD;IAPC,MAAM;QACJ,OAAO,CACP,EAAC,IAAI,qDAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAc,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,eAAQ,CACzD,CACN,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../../types/enum';\n\n@Component({\n tag: 'xv-tab-v2',\n styleUrl: 'xv-tab.scss',\n shadow: true,\n})\nexport class XvTab {\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) loading: boolean = false;\n @Prop() name?: number | string;\n\n render() {\n return (\n <Host disabled={this.disabled} name={this.name}>\n {this.loading ? <xv-loader-v2 size={SIZE_VAR.LG} /> : <slot />}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -3,9 +3,21 @@
|
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
}
|
|
5
5
|
:host(.xv-tabs) .tab-headers {
|
|
6
|
+
position: relative;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-wrap: nowrap;
|
|
9
|
+
}
|
|
10
|
+
:host(.xv-tabs) .tab-headers_container {
|
|
6
11
|
display: flex;
|
|
12
|
+
flex: 1 1 auto;
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
overflow-x: auto;
|
|
15
|
+
scroll-behavior: smooth;
|
|
16
|
+
}
|
|
17
|
+
:host(.xv-tabs) .tab-headers_container::-webkit-scrollbar {
|
|
18
|
+
display: none;
|
|
7
19
|
}
|
|
8
|
-
:host(.xv-tabs) .tab-
|
|
20
|
+
:host(.xv-tabs) .tab-headers_tab {
|
|
9
21
|
background: none;
|
|
10
22
|
padding: 11px var(--gap-md, 16px);
|
|
11
23
|
cursor: pointer;
|
|
@@ -23,7 +35,7 @@
|
|
|
23
35
|
height: 40px;
|
|
24
36
|
white-space: nowrap;
|
|
25
37
|
}
|
|
26
|
-
:host(.xv-tabs) .tab-
|
|
38
|
+
:host(.xv-tabs) .tab-headers_tab:after {
|
|
27
39
|
content: "";
|
|
28
40
|
position: absolute;
|
|
29
41
|
transition: background-color 0.3s ease, width 0.3s ease;
|
|
@@ -34,31 +46,63 @@
|
|
|
34
46
|
height: 2px;
|
|
35
47
|
background-color: var(--interactive-01, #273435);
|
|
36
48
|
}
|
|
37
|
-
:host(.xv-tabs) .tab-
|
|
49
|
+
:host(.xv-tabs) .tab-headers_tab:focus {
|
|
38
50
|
outline: none;
|
|
39
51
|
border: 2px solid var(--border-border-subtle-01, #D1D1D1);
|
|
40
52
|
}
|
|
41
|
-
:host(.xv-tabs) .tab-
|
|
53
|
+
:host(.xv-tabs) .tab-headers_tab:hover {
|
|
42
54
|
border-bottom-color: var(--border-strong-01, #8B8B8B);
|
|
43
55
|
}
|
|
44
|
-
:host(.xv-tabs) .tab-
|
|
56
|
+
:host(.xv-tabs) .tab-headers_tab.active {
|
|
45
57
|
color: var(--text-primary, #333);
|
|
46
58
|
font-weight: 700;
|
|
47
59
|
}
|
|
48
|
-
:host(.xv-tabs) .tab-
|
|
60
|
+
:host(.xv-tabs) .tab-headers_tab.active:after {
|
|
49
61
|
width: 100%;
|
|
50
62
|
}
|
|
51
|
-
:host(.xv-tabs) .tab-
|
|
63
|
+
:host(.xv-tabs) .tab-headers_tab.active:focus {
|
|
52
64
|
border-color: var(--interactive-01, #273435);
|
|
53
65
|
}
|
|
54
|
-
:host(.xv-tabs) .tab-
|
|
66
|
+
:host(.xv-tabs) .tab-headers_tab:disabled {
|
|
55
67
|
color: var(--text-on-color-disabled, #8B8B8B);
|
|
56
68
|
border-bottom-color: var(--border-disabled, #D1D1D1);
|
|
57
69
|
cursor: not-allowed;
|
|
58
70
|
}
|
|
59
|
-
:host(.xv-tabs) .tab-
|
|
71
|
+
:host(.xv-tabs) .tab-headers_tab:disabled:after {
|
|
60
72
|
background-color: var(--border-disabled, #D1D1D1);
|
|
61
73
|
}
|
|
74
|
+
:host(.xv-tabs) .tab-headers_btn {
|
|
75
|
+
outline: none;
|
|
76
|
+
width: 40px;
|
|
77
|
+
height: 40px;
|
|
78
|
+
background: none;
|
|
79
|
+
border: none;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
position: relative;
|
|
82
|
+
transition: 0.25s ease-in-out opacity;
|
|
83
|
+
}
|
|
84
|
+
:host(.xv-tabs) .tab-headers_btn:before {
|
|
85
|
+
content: "";
|
|
86
|
+
position: absolute;
|
|
87
|
+
top: 50%;
|
|
88
|
+
left: 50%;
|
|
89
|
+
width: 0;
|
|
90
|
+
height: 0;
|
|
91
|
+
border: solid currentColor;
|
|
92
|
+
border-width: 0 2px 2px 0;
|
|
93
|
+
display: inline-block;
|
|
94
|
+
padding: 5px;
|
|
95
|
+
transform: translate(-50%, -50%) rotate(45deg);
|
|
96
|
+
}
|
|
97
|
+
:host(.xv-tabs) .tab-headers_btn:active {
|
|
98
|
+
opacity: 0.3;
|
|
99
|
+
}
|
|
100
|
+
:host(.xv-tabs) .tab-headers_btn.prev:before {
|
|
101
|
+
transform: translate(-50%, -50%) rotate(135deg);
|
|
102
|
+
}
|
|
103
|
+
:host(.xv-tabs) .tab-headers_btn.next:before {
|
|
104
|
+
transform: translate(-50%, -50%) rotate(-45deg);
|
|
105
|
+
}
|
|
62
106
|
:host(.xv-tabs) .tab-content-wrapper {
|
|
63
107
|
position: relative;
|
|
64
108
|
overflow: hidden;
|
|
@@ -78,4 +122,18 @@
|
|
|
78
122
|
overflow-y: auto;
|
|
79
123
|
pointer-events: auto;
|
|
80
124
|
max-height: 1000px;
|
|
125
|
+
}
|
|
126
|
+
:host(.xv-tabs) .xv-tabs_empty {
|
|
127
|
+
display: block;
|
|
128
|
+
text-align: center;
|
|
129
|
+
margin: 20px auto;
|
|
130
|
+
font-size: var(--fz-xl);
|
|
131
|
+
color: var(--text-primary);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:host([loading]) {
|
|
135
|
+
display: flex;
|
|
136
|
+
align-items: center;
|
|
137
|
+
justify-content: center;
|
|
138
|
+
min-height: 300px;
|
|
81
139
|
}
|