xv-webcomponents 0.1.31 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js +97 -41
  3. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js.map +1 -1
  4. package/dist/cjs/xv-webcomponents.cjs.js +1 -1
  5. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  6. package/dist/collection/components/xv-dropdown/xv-dropdown.js +41 -10
  7. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  8. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  9. package/dist/collection/components/xv-header/xv-header.js +1 -1
  10. package/dist/collection/components/xv-link/xv-link.css +5 -0
  11. package/dist/collection/components/xv-link/xv-link.js +3 -3
  12. package/dist/collection/components/xv-link/xv-link.js.map +1 -1
  13. package/dist/collection/components/xv-modal/xv-modal.css +3 -0
  14. package/dist/collection/components/xv-modal/xv-modal.js +31 -7
  15. package/dist/collection/components/xv-modal/xv-modal.js.map +1 -1
  16. package/dist/collection/components/xv-notification/xv-notification.js +3 -3
  17. package/dist/collection/components/xv-notification/xv-notification.js.map +1 -1
  18. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  19. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +3 -0
  20. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  21. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  22. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  23. package/dist/collection/components/xv-table/_vars.js.map +1 -1
  24. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +10 -3
  25. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +10 -10
  26. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
  27. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  28. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +8 -1
  29. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +33 -2
  30. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +1 -1
  31. package/dist/collection/components/xv-table/xv-table.css +18 -0
  32. package/dist/collection/components/xv-table/xv-table.js +30 -4
  33. package/dist/collection/components/xv-table/xv-table.js.map +1 -1
  34. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +7 -0
  35. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +42 -1
  36. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js.map +1 -1
  37. package/dist/collection/components/xv-tabs/xv-tabs.css +55 -9
  38. package/dist/collection/components/xv-tabs/xv-tabs.js +90 -13
  39. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  40. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  41. package/dist/collection/components/xv-text-input/xv-text-input.js +44 -1
  42. package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
  43. package/dist/collection/components/xv-tooltip/xv-tooltip.css +6 -1
  44. package/dist/collection/components/xv-tooltip/xv-tooltip.js +22 -3
  45. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  46. package/dist/esm/loader.js +1 -1
  47. package/dist/esm/xv-accordion-v2_26.entry.js +97 -41
  48. package/dist/esm/xv-accordion-v2_26.entry.js.map +1 -1
  49. package/dist/esm/xv-webcomponents.js +1 -1
  50. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +2 -0
  51. package/dist/types/components/xv-link/xv-link.d.ts +1 -1
  52. package/dist/types/components/xv-modal/xv-modal.d.ts +5 -1
  53. package/dist/types/components/xv-table/_vars.d.ts +4 -0
  54. package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +3 -6
  55. package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +1 -0
  56. package/dist/types/components/xv-table/xv-table.d.ts +2 -1
  57. package/dist/types/components/xv-tabs/xv-tab/xv-tab.d.ts +2 -0
  58. package/dist/types/components/xv-tabs/xv-tabs.d.ts +16 -3
  59. package/dist/types/components/xv-text-input/xv-text-input.d.ts +3 -0
  60. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +1 -0
  61. package/dist/types/components.d.ts +92 -14
  62. package/dist/xv-webcomponents/p-51113bf3.entry.js +2 -0
  63. package/dist/xv-webcomponents/p-51113bf3.entry.js.map +1 -0
  64. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  65. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  66. package/package.json +1 -1
  67. package/dist/xv-webcomponents/p-e750290d.entry.js +0 -2
  68. package/dist/xv-webcomponents/p-e750290d.entry.js.map +0 -1
@@ -56,7 +56,7 @@ export class XvProgressIndicator {
56
56
  this.updateChildItems();
57
57
  }
58
58
  render() {
59
- return (h(Host, { key: '8f050bb2255b64fbaae593053ac4cc9c912f538a', variant: this.variant, size: this.size, class: { 'xv-progress-indicator': true } }, h("slot", { key: 'c311395c02fa84b73746bd5d2a7074f315f220d3' })));
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: 'f48b63c8ec367c6d1e90c64237c29064ad5e6372', style: { width: this.width } }, h("slot", { key: 'cb9b159bd4a4951b5981a696bf0cd951c26c8efa' })));
25
+ return (h(Host, { key: 'a2b8e397dcc44ae5a4e018f655586ef4e4900564' }, h("slot", { key: '9b2f63ba4c33f03cb55030d87b4da14a2745ecc3' })));
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
- "width": {
42
- "type": "string",
41
+ "multiline": {
42
+ "type": "boolean",
43
43
  "mutable": false,
44
44
  "complexType": {
45
- "original": "string",
46
- "resolved": "string",
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": "width",
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": "{ name?: string, value: XV_SORT_DIR }",
138
- "resolved": "{ name?: string; value: XV_SORT_DIR; }",
137
+ "original": "XVTableSortDto",
138
+ "resolved": "XVTableSortDto",
139
139
  "references": {
140
- "XV_SORT_DIR": {
140
+ "XVTableSortDto": {
141
141
  "location": "import",
142
142
  "path": "../_vars",
143
- "id": "src/components/xv-table/_vars.ts::XV_SORT_DIR"
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,EAAE,MAAM,UAAU,CAAC;AACvC,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,qDAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YAChC,8DAAQ,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\nimport { XV_SORT_DIR } 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 }) width?: string;\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<{ name?: string, value: XV_SORT_DIR }>;\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 style={{ width: this.width }}>\n <slot />\n </Host>\n );\n }\n}\n"]}
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: '03fe6f6aeccdd968034eb8ca2f927ef47e7864d8' }, h("button", { key: 'c6fd847183f1ce75de771c1138de6ed058f555b2', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), h("slot", { key: '4d7d466275d3cb55552d5b7df60e28bbe75cb058', name: XV_EXPANDABLE_KEY }), h("div", { key: '5fdaa8095fc4cd05ce98549228200a739dadc2a3', class: { expandableContent: true, open: this.open } }, h("slot", { key: '3c04cf53d2a7c3989a4511f3d407e8e0e7597a7e' }))));
13
+ return (h(Host, { key: 'f7aca6da5b9345c3c1b5777577f22cfa6f203050' }, h("button", { key: '5c503f211c763cbfa0fb9b8327146e92bb803eef', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), h("slot", { key: 'f55a433ebf374f2a03381035846b3c180b5e8852', name: XV_EXPANDABLE_KEY }), h("div", { key: '9b6f5e487e156a6f3e14a0aa7a10065410de0cca', class: { expandableContent: true, open: this.open } }, h("slot", { key: 'ac9992699f28465a63346ebdf3f638b8fd53ec15' }))));
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.selectRow.emit({
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: '5a5fd70ee1706f3c250c58139a2dc81dfd5a4a6a' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: '4a9ac57fcb6baccaf97d866519b747ef1d921199', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: '452ea4f34c537f02f16ef0c26ad17abff15f943d', 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: 'b92316fbec5ed18d0097017cc260097e87443b79', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: '5a80306e5b35a072d9f8cabcb9fa3a9bce8ec72c' })));
46
+ return (h(Host, { key: 'a83693a0ac8a484e77d6569e9c5e6d5552d1e4bd' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: '79c530cedc2dedfe7a3f30cca998d96e8e26e68d', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: 'd5e061b229448bba6d71321cff99aac9947a55d1', 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: 'e39cc7c88c199863810e4b261bc833cac4f5d883', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: '17151fe90edcb037bc504f88a33bd206e684c402' })));
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":"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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 @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.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 checkHandle = ({ detail: checked }: CustomEvent<boolean>) => {\n this.checked = checked;\n if (!checked && this.partial) this.partial = checked;\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
+ {"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));
@@ -59,6 +60,19 @@
59
60
  :host .xv-table ::slotted([slot=footer]) {
60
61
  background-color: var(--layer-accent-02, #E3E3E3);
61
62
  }
63
+ :host .xv-table_loading {
64
+ z-index: 10;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ min-height: var(--xv-table-min-height, 51.11px);
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ width: 100%;
73
+ height: 100%;
74
+ background-color: rgba(255, 255, 255, 0.8);
75
+ }
62
76
  :host .xv-table-title,
63
77
  :host ::slotted([slot=title]) {
64
78
  color: var(--text-primary, #333) !important;
@@ -92,16 +106,20 @@
92
106
 
93
107
  :host([size=xs]) {
94
108
  --xv-table-padding-y: 7px;
109
+ --xv-table-min-height: 35.1px;
95
110
  }
96
111
 
97
112
  :host([size=sm]) {
98
113
  --xv-table-padding-y: 10px;
114
+ --xv-table-min-height: 41.11px;
99
115
  }
100
116
 
101
117
  :host([size=lg]) {
102
118
  --xv-table-padding-y: 21px;
119
+ --xv-table-min-height: 63.09px;
103
120
  }
104
121
 
105
122
  :host([size=xl]) {
106
123
  --xv-table-padding-y: 31px;
124
+ --xv-table-min-height: 78.77px;
107
125
  }
@@ -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
- handleSelectRow({ detail }) {
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: '98ad681acc0e04bf0c1bb819ab012b3ea22e04c6', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: 'b4315a19b272218842902dfe9ad73fc878e29530', name: "title" }, !!this.el.title && h("h2", { key: 'c2a7a7d1b75206f13475443d31c6554cf80cc91f', class: "xv-table-title" }, this.el.title)), h("slot", { key: '1d3f709b9f6bfb6972eacbb34ae310da4c71ccc9', name: "toolbar" }), h("div", { key: '0653df0154242466a8147e6dee9b2d500d651977', class: "xv-table" }, h("div", { key: '0c1dc822a97f299e5269a4a7b03408c5bb568982', class: "batch-actions" }, h(Fragment, { key: '5974e0f94f21860e78dfe163296099cd6ee42da7' }, h("div", { key: 'f74a8d397e5ff1244b923697559ea1b5c9adf443', class: "batch-actions_content" }, h("slot", { key: '9ab1a03ea8eade4b9b021302f2305c4fca5ccaaf', name: "batch" })), h("p", { key: '4b63b6deaa4d31d5aa13e336a6331dcd86961579', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("slot", { key: '64a7b87bc705b4378665e0991fd1d9506048e4b6' }), h("slot", { key: 'c7a5ac279541c4eaf917e768b27f7a0ee1f1e8dd', name: "footer" }))));
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("slot", { key: '8dcfa43420bad4a128b15f1095556eeac062939c' }), h("slot", { key: '588776181bded66364751e3e2e5fd9713084aee7', name: "footer" }), !!this.loading && (h("div", { key: '1478a55759576d012c5dbb3a630309fe42bc527f', class: "xv-table_loading" }, h("xv-loader-v2", { key: '822799790a03089ff83a99a49fa0f8fb4b9f36b0', 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": "selectRow",
125
- "method": "handleSelectRow",
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;AAS3F,MAAM,OAAO,OAAO;IALpB;QAUW,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;QAChD,kBAAa,GAAW,CAAC,CAAC;KA6DpC;IA1DC,eAAe,CAAC,EAAE,MAAM,EAA6B;QACnD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO;QAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC1C,CAAC;IAEO,mBAAmB;;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAA;YAAE,OAAO;QAErD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CACvB,0BAA0B,EAC1B,IAAI,CAAC,QAAQ;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,CAAC;gBAAE,OAAO,gBAAgB,CAAC;YAChC,IAAI,CAAC,KAAK,MAAM;gBAAE,OAAO,iBAAiB,CAAC;YAC3C,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvD,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,GAAG,mCAAmC,CACnD,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;YACjD,6DAAM,IAAI,EAAC,OAAO,IACf,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,2DAAI,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAM,CAC9D;YAEP,6DAAM,IAAI,EAAC,SAAS,GAAG;YAEvB,4DAAK,KAAK,EAAC,UAAU;gBACnB,4DAAK,KAAK,EAAC,eAAe;oBACxB,EAAC,QAAQ;wBACP,4DAAK,KAAK,EAAC,uBAAuB;4BAChC,6DAAM,IAAI,EAAC,OAAO,GAAG,CACjB;wBACN,0DAAG,KAAK,EAAC,qBAAqB,IAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAC5H,CACK,CACP;gBAEN,8DAAQ;gBAER,6DAAM,IAAI,EAAC,QAAQ,GAAG,CAClB,CACD,CACR,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Element, Prop, State, Listen, Fragment } 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, attribute: 'colsSize' }) colsSize?: (string | null)[];\n @State() selected: Map<string, SelectRowDto> = new Map();\n @State() selectedCount: number = 0;\n\n @Listen('selectRow')\n handleSelectRow({ 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 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 <slot />\n\n <slot name=\"footer\" />\n </div>\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setColsSizeTemplate();\n }\n}\n"]}
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 <slot />\n\n <slot name=\"footer\" />\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,3 +1,10 @@
1
1
  :host {
2
2
  display: block;
3
+ }
4
+
5
+ :host([loading]) {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ min-height: 200px;
3
10
  }
@@ -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: '3dcd55f79d9c95dc54efd7d2547470b61f8bd091', disabled: this.disabled }, h("slot", { key: '72ea7a00510f9a3baa35e11512ab22d1800fdf8c' }));
9
+ return (h(Host, { key: '82d797fe902cd4dab29cf094485aad742835e6b4', 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;AAOzD,MAAM,OAAO,KAAK;IALlB;QAO2B,aAAQ,GAAY,KAAK,CAAC;KAKpD;IAHC,MAAM;QACJ,OAAO,EAAC,IAAI,qDAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YAAE,8DAAQ,CAAO,CAAC;IACxD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\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\n render() {\n return <Host disabled={this.disabled}><slot /></Host>;\n }\n}\n"]}
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"]}
@@ -5,7 +5,7 @@
5
5
  :host(.xv-tabs) .tab-headers {
6
6
  display: flex;
7
7
  }
8
- :host(.xv-tabs) .tab-headers button {
8
+ :host(.xv-tabs) .tab-headers_tab {
9
9
  background: none;
10
10
  padding: 11px var(--gap-md, 16px);
11
11
  cursor: pointer;
@@ -23,7 +23,7 @@
23
23
  height: 40px;
24
24
  white-space: nowrap;
25
25
  }
26
- :host(.xv-tabs) .tab-headers button:after {
26
+ :host(.xv-tabs) .tab-headers_tab:after {
27
27
  content: "";
28
28
  position: absolute;
29
29
  transition: background-color 0.3s ease, width 0.3s ease;
@@ -34,31 +34,63 @@
34
34
  height: 2px;
35
35
  background-color: var(--interactive-01, #273435);
36
36
  }
37
- :host(.xv-tabs) .tab-headers button:focus {
37
+ :host(.xv-tabs) .tab-headers_tab:focus {
38
38
  outline: none;
39
39
  border: 2px solid var(--border-border-subtle-01, #D1D1D1);
40
40
  }
41
- :host(.xv-tabs) .tab-headers button:hover {
41
+ :host(.xv-tabs) .tab-headers_tab:hover {
42
42
  border-bottom-color: var(--border-strong-01, #8B8B8B);
43
43
  }
44
- :host(.xv-tabs) .tab-headers button.active {
44
+ :host(.xv-tabs) .tab-headers_tab.active {
45
45
  color: var(--text-primary, #333);
46
46
  font-weight: 700;
47
47
  }
48
- :host(.xv-tabs) .tab-headers button.active:after {
48
+ :host(.xv-tabs) .tab-headers_tab.active:after {
49
49
  width: 100%;
50
50
  }
51
- :host(.xv-tabs) .tab-headers button.active:focus {
51
+ :host(.xv-tabs) .tab-headers_tab.active:focus {
52
52
  border-color: var(--interactive-01, #273435);
53
53
  }
54
- :host(.xv-tabs) .tab-headers button:disabled {
54
+ :host(.xv-tabs) .tab-headers_tab:disabled {
55
55
  color: var(--text-on-color-disabled, #8B8B8B);
56
56
  border-bottom-color: var(--border-disabled, #D1D1D1);
57
57
  cursor: not-allowed;
58
58
  }
59
- :host(.xv-tabs) .tab-headers button:disabled:after {
59
+ :host(.xv-tabs) .tab-headers_tab:disabled:after {
60
60
  background-color: var(--border-disabled, #D1D1D1);
61
61
  }
62
+ :host(.xv-tabs) .tab-headers_btn {
63
+ outline: none;
64
+ width: 40px;
65
+ height: 40px;
66
+ background: none;
67
+ border: none;
68
+ cursor: pointer;
69
+ position: relative;
70
+ transition: 0.25s ease-in-out opacity;
71
+ }
72
+ :host(.xv-tabs) .tab-headers_btn:before {
73
+ content: "";
74
+ position: absolute;
75
+ top: 50%;
76
+ left: 50%;
77
+ width: 0;
78
+ height: 0;
79
+ border: solid currentColor;
80
+ border-width: 0 2px 2px 0;
81
+ display: inline-block;
82
+ padding: 5px;
83
+ transform: translate(-50%, -50%) rotate(45deg);
84
+ }
85
+ :host(.xv-tabs) .tab-headers_btn:active {
86
+ opacity: 0.3;
87
+ }
88
+ :host(.xv-tabs) .tab-headers_btn.prev:before {
89
+ transform: translate(-50%, -50%) rotate(135deg);
90
+ }
91
+ :host(.xv-tabs) .tab-headers_btn.next:before {
92
+ transform: translate(-50%, -50%) rotate(-45deg);
93
+ }
62
94
  :host(.xv-tabs) .tab-content-wrapper {
63
95
  position: relative;
64
96
  overflow: hidden;
@@ -78,4 +110,18 @@
78
110
  overflow-y: auto;
79
111
  pointer-events: auto;
80
112
  max-height: 1000px;
113
+ }
114
+ :host(.xv-tabs) .xv-tabs_empty {
115
+ display: block;
116
+ text-align: center;
117
+ margin: 20px auto;
118
+ font-size: var(--fz-xl);
119
+ color: var(--text-primary);
120
+ }
121
+
122
+ :host([loading]) {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ min-height: 300px;
81
127
  }