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.
Files changed (83) hide show
  1. package/dist/cjs/{index-5ee1b884.js → index-2705073a.js} +5 -2
  2. package/dist/cjs/index-2705073a.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js +126 -46
  5. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js.map +1 -1
  6. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
  7. package/dist/cjs/xv-webcomponents.cjs.js +2 -2
  8. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  9. package/dist/collection/components/xv-dropdown/xv-dropdown.js +41 -10
  10. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  11. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  12. package/dist/collection/components/xv-header/xv-header.js +1 -1
  13. package/dist/collection/components/xv-link/xv-link.css +5 -0
  14. package/dist/collection/components/xv-link/xv-link.js +3 -3
  15. package/dist/collection/components/xv-link/xv-link.js.map +1 -1
  16. package/dist/collection/components/xv-modal/xv-modal.css +3 -0
  17. package/dist/collection/components/xv-modal/xv-modal.js +31 -7
  18. package/dist/collection/components/xv-modal/xv-modal.js.map +1 -1
  19. package/dist/collection/components/xv-notification/xv-notification.js +3 -3
  20. package/dist/collection/components/xv-notification/xv-notification.js.map +1 -1
  21. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  22. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +3 -0
  23. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  24. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  25. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  26. package/dist/collection/components/xv-table/_vars.js.map +1 -1
  27. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +10 -3
  28. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +10 -10
  29. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
  30. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  31. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +8 -1
  32. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +33 -2
  33. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +1 -1
  34. package/dist/collection/components/xv-table/xv-table.css +29 -0
  35. package/dist/collection/components/xv-table/xv-table.js +30 -4
  36. package/dist/collection/components/xv-table/xv-table.js.map +1 -1
  37. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +7 -0
  38. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +42 -1
  39. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js.map +1 -1
  40. package/dist/collection/components/xv-tabs/xv-tabs.css +67 -9
  41. package/dist/collection/components/xv-tabs/xv-tabs.js +109 -17
  42. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  43. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  44. package/dist/collection/components/xv-text-input/xv-text-input.css +1 -0
  45. package/dist/collection/components/xv-text-input/xv-text-input.js +44 -1
  46. package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
  47. package/dist/collection/components/xv-tooltip/xv-tooltip.css +6 -1
  48. package/dist/collection/components/xv-tooltip/xv-tooltip.js +22 -3
  49. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  50. package/dist/esm/{index-590eb7d2.js → index-a650cb06.js} +5 -2
  51. package/dist/esm/index-a650cb06.js.map +1 -0
  52. package/dist/esm/loader.js +3 -3
  53. package/dist/esm/xv-accordion-v2_26.entry.js +126 -46
  54. package/dist/esm/xv-accordion-v2_26.entry.js.map +1 -1
  55. package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
  56. package/dist/esm/xv-webcomponents.js +3 -3
  57. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +2 -0
  58. package/dist/types/components/xv-link/xv-link.d.ts +1 -1
  59. package/dist/types/components/xv-modal/xv-modal.d.ts +5 -1
  60. package/dist/types/components/xv-table/_vars.d.ts +4 -0
  61. package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +3 -6
  62. package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +1 -0
  63. package/dist/types/components/xv-table/xv-table.d.ts +2 -1
  64. package/dist/types/components/xv-tabs/xv-tab/xv-tab.d.ts +2 -0
  65. package/dist/types/components/xv-tabs/xv-tabs.d.ts +18 -4
  66. package/dist/types/components/xv-text-input/xv-text-input.d.ts +3 -0
  67. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +1 -0
  68. package/dist/types/components.d.ts +76 -14
  69. package/dist/xv-webcomponents/p-497959a9.js +3 -0
  70. package/dist/xv-webcomponents/p-497959a9.js.map +1 -0
  71. package/dist/xv-webcomponents/p-e1b76c23.entry.js +2 -0
  72. package/dist/xv-webcomponents/p-e1b76c23.entry.js.map +1 -0
  73. package/dist/xv-webcomponents/{p-c09a0bfe.entry.js → p-ea853c5c.entry.js} +2 -2
  74. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  75. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/cjs/index-5ee1b884.js.map +0 -1
  78. package/dist/esm/index-590eb7d2.js.map +0 -1
  79. package/dist/xv-webcomponents/p-612356e6.js +0 -3
  80. package/dist/xv-webcomponents/p-612356e6.js.map +0 -1
  81. package/dist/xv-webcomponents/p-e750290d.entry.js +0 -2
  82. package/dist/xv-webcomponents/p-e750290d.entry.js.map +0 -1
  83. /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: '2298819d5ff22c59545a1eb19539f9f61e9224dd', status: this.status, class: { 'xv-progress-indicator-item': true } }, h("span", { key: '4d9c5325746cf1b88fe64bfcc81b9a79aaef30de', class: "line" }), h("span", { key: 'e9ef0a957c1fe89d3ea6a204f65ae274867b773a', class: "icon" }, h("svg", { key: 'e7a77f7ecbc69aa8a304a8cfc5d09dd9ebb8a10b', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" }, h("path", { key: '438cab4fd260cf07bf3392faac03107fab7b0adb', 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: '5cc4069d5d3862237d7deb1c4c06063e2175f8e1', class: "label" }, h("slot", { key: '393bd83d59a4f17c603c8fcdcb9fc649500850c5' }))));
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: '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: '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
- "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: '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.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: '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;QAiCU,gBAAW,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAwB,EAAE,EAAE;YAClE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvD,CAAC,CAAC;KAmDH;IAlEC,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,iBAAiB;SAC/D,CAAC,CAAC;IACL,CAAC;IAOO,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACF,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7B,yEAAkB,KAAK,EAAC,cAAc;gBACnC,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,CAC9B,uEACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,aAAa,EAAE,IAAI,CAAC,WAAW,GAC/B,CACH;gBACA,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,CAC3B,8DACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACvB,CACH,CACgB,CACpB;YAED,8DAAQ,CACH,CACR,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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));
@@ -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
- 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("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": "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 <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,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: '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;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"]}
@@ -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-headers button {
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-headers button:after {
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-headers button:focus {
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-headers button:hover {
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-headers button.active {
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-headers button.active:after {
60
+ :host(.xv-tabs) .tab-headers_tab.active:after {
49
61
  width: 100%;
50
62
  }
51
- :host(.xv-tabs) .tab-headers button.active:focus {
63
+ :host(.xv-tabs) .tab-headers_tab.active:focus {
52
64
  border-color: var(--interactive-01, #273435);
53
65
  }
54
- :host(.xv-tabs) .tab-headers button:disabled {
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-headers button:disabled:after {
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
  }