@scania/tegel 0.0.31 → 0.0.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 (153) hide show
  1. package/dist/cjs/sdds-toast.cjs.entry.js +1 -1
  2. package/dist/cjs/sdds-toast.cjs.entry.js.map +1 -1
  3. package/dist/collection/components/toast/sdds-toast.js +2 -2
  4. package/dist/collection/components/toast/sdds-toast.js.map +1 -1
  5. package/dist/components/dropdown-option.js +103 -0
  6. package/dist/components/dropdown-option.js.map +1 -0
  7. package/dist/components/dropdown.js +306 -0
  8. package/dist/components/dropdown.js.map +1 -0
  9. package/dist/components/icon.js +61 -0
  10. package/dist/components/icon.js.map +1 -0
  11. package/dist/components/index.d.ts +27 -0
  12. package/dist/components/index.js +3 -0
  13. package/dist/components/index.js.map +1 -0
  14. package/dist/components/popper.js +1801 -0
  15. package/dist/components/popper.js.map +1 -0
  16. package/dist/components/sdds-accordion-item.d.ts +11 -0
  17. package/dist/components/sdds-accordion-item.js +63 -0
  18. package/dist/components/sdds-accordion-item.js.map +1 -0
  19. package/dist/components/sdds-accordion.d.ts +11 -0
  20. package/dist/components/sdds-accordion.js +41 -0
  21. package/dist/components/sdds-accordion.js.map +1 -0
  22. package/dist/components/sdds-badges.d.ts +11 -0
  23. package/dist/components/sdds-badges.js +78 -0
  24. package/dist/components/sdds-badges.js.map +1 -0
  25. package/dist/components/sdds-banner.d.ts +11 -0
  26. package/dist/components/sdds-banner.js +122 -0
  27. package/dist/components/sdds-banner.js.map +1 -0
  28. package/dist/components/sdds-block.d.ts +11 -0
  29. package/dist/components/sdds-block.js +51 -0
  30. package/dist/components/sdds-block.js.map +1 -0
  31. package/dist/components/sdds-body-cell.d.ts +11 -0
  32. package/dist/components/sdds-body-cell.js +8 -0
  33. package/dist/components/sdds-body-cell.js.map +1 -0
  34. package/dist/components/sdds-breadcrumb-item.d.ts +11 -0
  35. package/dist/components/sdds-breadcrumb-item.js +46 -0
  36. package/dist/components/sdds-breadcrumb-item.js.map +1 -0
  37. package/dist/components/sdds-breadcrumb.d.ts +11 -0
  38. package/dist/components/sdds-breadcrumb.js +40 -0
  39. package/dist/components/sdds-breadcrumb.js.map +1 -0
  40. package/dist/components/sdds-button.d.ts +11 -0
  41. package/dist/components/sdds-button.js +62 -0
  42. package/dist/components/sdds-button.js.map +1 -0
  43. package/dist/components/sdds-card.d.ts +11 -0
  44. package/dist/components/sdds-card.js +87 -0
  45. package/dist/components/sdds-card.js.map +1 -0
  46. package/dist/components/sdds-checkbox.d.ts +11 -0
  47. package/dist/components/sdds-checkbox.js +79 -0
  48. package/dist/components/sdds-checkbox.js.map +1 -0
  49. package/dist/components/sdds-datetime.d.ts +11 -0
  50. package/dist/components/sdds-datetime.js +132 -0
  51. package/dist/components/sdds-datetime.js.map +1 -0
  52. package/dist/components/sdds-dropdown-filter.d.ts +11 -0
  53. package/dist/components/sdds-dropdown-filter.js +141 -0
  54. package/dist/components/sdds-dropdown-filter.js.map +1 -0
  55. package/dist/components/sdds-dropdown-option.d.ts +11 -0
  56. package/dist/components/sdds-dropdown-option.js +8 -0
  57. package/dist/components/sdds-dropdown-option.js.map +1 -0
  58. package/dist/components/sdds-dropdown.d.ts +11 -0
  59. package/dist/components/sdds-dropdown.js +8 -0
  60. package/dist/components/sdds-dropdown.js.map +1 -0
  61. package/dist/components/sdds-header-cell.d.ts +11 -0
  62. package/dist/components/sdds-header-cell.js +173 -0
  63. package/dist/components/sdds-header-cell.js.map +1 -0
  64. package/dist/components/sdds-icon.d.ts +11 -0
  65. package/dist/components/sdds-icon.js +8 -0
  66. package/dist/components/sdds-icon.js.map +1 -0
  67. package/dist/components/sdds-inline-tab.d.ts +11 -0
  68. package/dist/components/sdds-inline-tab.js +43 -0
  69. package/dist/components/sdds-inline-tab.js.map +1 -0
  70. package/dist/components/sdds-inline-tabs-fullbleed.d.ts +11 -0
  71. package/dist/components/sdds-inline-tabs-fullbleed.js +120 -0
  72. package/dist/components/sdds-inline-tabs-fullbleed.js.map +1 -0
  73. package/dist/components/sdds-inline-tabs.d.ts +11 -0
  74. package/dist/components/sdds-inline-tabs.js +248 -0
  75. package/dist/components/sdds-inline-tabs.js.map +1 -0
  76. package/dist/components/sdds-link.d.ts +11 -0
  77. package/dist/components/sdds-link.js +8 -0
  78. package/dist/components/sdds-link.js.map +1 -0
  79. package/dist/components/sdds-link2.js +47 -0
  80. package/dist/components/sdds-link2.js.map +1 -0
  81. package/dist/components/sdds-message.d.ts +11 -0
  82. package/dist/components/sdds-message.js +70 -0
  83. package/dist/components/sdds-message.js.map +1 -0
  84. package/dist/components/sdds-modal.d.ts +11 -0
  85. package/dist/components/sdds-modal.js +80 -0
  86. package/dist/components/sdds-modal.js.map +1 -0
  87. package/dist/components/sdds-navigation-tabs.d.ts +11 -0
  88. package/dist/components/sdds-navigation-tabs.js +120 -0
  89. package/dist/components/sdds-navigation-tabs.js.map +1 -0
  90. package/dist/components/sdds-popover-canvas.d.ts +11 -0
  91. package/dist/components/sdds-popover-canvas.js +111 -0
  92. package/dist/components/sdds-popover-canvas.js.map +1 -0
  93. package/dist/components/sdds-popover-menu.d.ts +11 -0
  94. package/dist/components/sdds-popover-menu.js +112 -0
  95. package/dist/components/sdds-popover-menu.js.map +1 -0
  96. package/dist/components/sdds-radio-button.d.ts +11 -0
  97. package/dist/components/sdds-radio-button.js +55 -0
  98. package/dist/components/sdds-radio-button.js.map +1 -0
  99. package/dist/components/sdds-slider.d.ts +11 -0
  100. package/dist/components/sdds-slider.js +397 -0
  101. package/dist/components/sdds-slider.js.map +1 -0
  102. package/dist/components/sdds-spinner.d.ts +11 -0
  103. package/dist/components/sdds-spinner.js +40 -0
  104. package/dist/components/sdds-spinner.js.map +1 -0
  105. package/dist/components/sdds-table-body-row-expandable.d.ts +11 -0
  106. package/dist/components/sdds-table-body-row-expandable.js +108 -0
  107. package/dist/components/sdds-table-body-row-expandable.js.map +1 -0
  108. package/dist/components/sdds-table-body-row.d.ts +11 -0
  109. package/dist/components/sdds-table-body-row.js +8 -0
  110. package/dist/components/sdds-table-body-row.js.map +1 -0
  111. package/dist/components/sdds-table-body.d.ts +11 -0
  112. package/dist/components/sdds-table-body.js +340 -0
  113. package/dist/components/sdds-table-body.js.map +1 -0
  114. package/dist/components/sdds-table-footer.d.ts +11 -0
  115. package/dist/components/sdds-table-footer.js +198 -0
  116. package/dist/components/sdds-table-footer.js.map +1 -0
  117. package/dist/components/sdds-table-header.d.ts +11 -0
  118. package/dist/components/sdds-table-header.js +127 -0
  119. package/dist/components/sdds-table-header.js.map +1 -0
  120. package/dist/components/sdds-table-toolbar.d.ts +11 -0
  121. package/dist/components/sdds-table-toolbar.js +90 -0
  122. package/dist/components/sdds-table-toolbar.js.map +1 -0
  123. package/dist/components/sdds-table.d.ts +11 -0
  124. package/dist/components/sdds-table.js +94 -0
  125. package/dist/components/sdds-table.js.map +1 -0
  126. package/dist/components/sdds-textarea.d.ts +11 -0
  127. package/dist/components/sdds-textarea.js +112 -0
  128. package/dist/components/sdds-textarea.js.map +1 -0
  129. package/dist/components/sdds-textfield.d.ts +11 -0
  130. package/dist/components/sdds-textfield.js +130 -0
  131. package/dist/components/sdds-textfield.js.map +1 -0
  132. package/dist/components/sdds-toast.d.ts +11 -0
  133. package/dist/components/sdds-toast.js +120 -0
  134. package/dist/components/sdds-toast.js.map +1 -0
  135. package/dist/components/sdds-toggle.d.ts +11 -0
  136. package/dist/components/sdds-toggle.js +72 -0
  137. package/dist/components/sdds-toggle.js.map +1 -0
  138. package/dist/components/sdds-tooltip.d.ts +11 -0
  139. package/dist/components/sdds-tooltip.js +130 -0
  140. package/dist/components/sdds-tooltip.js.map +1 -0
  141. package/dist/components/table-body-cell.js +104 -0
  142. package/dist/components/table-body-cell.js.map +1 -0
  143. package/dist/components/table-body-row.js +123 -0
  144. package/dist/components/table-body-row.js.map +1 -0
  145. package/dist/esm/sdds-toast.entry.js +1 -1
  146. package/dist/esm/sdds-toast.entry.js.map +1 -1
  147. package/dist/tegel/{p-46013562.entry.js → p-f51fe381.entry.js} +2 -2
  148. package/dist/tegel/p-f51fe381.entry.js.map +1 -0
  149. package/dist/tegel/tegel.esm.js +1 -1
  150. package/dist/types/components/toast/sdds-toast.d.ts +1 -1
  151. package/dist/types/components.d.ts +2 -2
  152. package/package.json +2 -2
  153. package/dist/tegel/p-46013562.entry.js.map +0 -1
@@ -0,0 +1,198 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const tableFooterCss = ":host{box-sizing:border-box;display:table-footer-group;height:48px}:host *{box-sizing:border-box}:host .sdds-table__footer-row{background-color:var(--sdds-data-table-footer-background);color:var(--sdds-data-table-color)}:host .sdds-table__footer-cell{padding:0 16px}:host .sdds-table__footer-cell .sdds-table__pagination{height:48px;display:flex;align-items:center;justify-content:space-between}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__row-selector,:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector{display:flex;align-items:center}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector-input{font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);background-color:var(--sdds-data-table-footer-page-selector-input-background);color:var(--sdds-data-table-color);width:36px;height:30px;border:none;border-radius:4px;transition:background-color 250ms ease;margin-right:4px;padding-right:8px}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector-input:hover{background-color:var(--sdds-data-table-footer-page-selector-input-background-hover)}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector-input:disabled{color:var(--sdds-data-table-footer-page-selector-input-color-disabled)}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector-input--shake{animation:sdds-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform:translate3d(0, 0, 0);backface-visibility:hidden;perspective:1000px}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-text{font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);padding:1px 8px 0 0}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn{display:flex;justify-content:center;align-items:center;border:none;background-color:transparent;cursor:pointer;height:32px;width:32px;border-radius:4px;transition:background-color 250ms ease}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn:hover{background-color:var(--sdds-data-table-footer-btn-hover)}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn:disabled{cursor:default;opacity:0.38}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn:disabled:hover{background-color:transparent}:host .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn-svg{height:20px;width:20px;fill:var(--sdds-data-table-color)}:host(.sdds-table--compact){height:32px}:host(.sdds-table--compact) .sdds-table__footer-cell .sdds-table__pagination{height:32px}:host(.sdds-table--compact) .sdds-table__footer-cell .sdds-table__pagination .sdds-table__page-selector-input{height:24px}:host(.sdds-table--compact) .sdds-table__footer-cell .sdds-table__pagination .sdds-table__footer-btn{height:28px;width:28px}";
4
+
5
+ const relevantTableProps = [
6
+ 'compactDesign',
7
+ 'noMinWidth',
8
+ 'verticalDividers',
9
+ ];
10
+ function removeShakeAnimation(e) {
11
+ e.target.classList.remove('sdds-table__page-selector-input--shake');
12
+ }
13
+ const TableFooter = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this.__registerHost();
17
+ this.__attachShadow();
18
+ this.enablePaginationEvent = createEvent(this, "enablePaginationEvent", 7);
19
+ this.currentPageValueEvent = createEvent(this, "currentPageValueEvent", 7);
20
+ this.paginationPrev = (event) => {
21
+ event.preventDefault();
22
+ // Enable lowering until 1st page
23
+ if (this.paginationValue >= 2) {
24
+ this.paginationValue--;
25
+ this.runPagination();
26
+ }
27
+ };
28
+ this.paginationNext = (event) => {
29
+ event.preventDefault();
30
+ // Enable increasing until the max number of pages
31
+ if (this.paginationValue <= this.numberOfPages) {
32
+ this.paginationValue++;
33
+ this.runPagination();
34
+ }
35
+ };
36
+ this.runPagination = () => {
37
+ if (!this.disablePaginationFunction) {
38
+ // grab all rows in body
39
+ const dataRowsPagination = this.host.parentNode
40
+ .querySelector('sdds-table-body')
41
+ .querySelectorAll('.sdds-table__row');
42
+ dataRowsPagination.forEach((item, i) => {
43
+ // for making logic easier 1st result, 2nd result...
44
+ const index = i + 1;
45
+ if (this.tempPaginationDisable) {
46
+ this.paginationValue = 1;
47
+ }
48
+ else {
49
+ const lastResult = this.rowsPerPage * this.paginationValue;
50
+ const firstResult = lastResult - this.rowsPerPage;
51
+ if (index > firstResult && index <= lastResult) {
52
+ item.classList.remove('sdds-table__row--hidden');
53
+ }
54
+ else {
55
+ item.classList.add('sdds-table__row--hidden');
56
+ }
57
+ }
58
+ });
59
+ }
60
+ };
61
+ this.clientPaginationPrev = (event) => {
62
+ event.preventDefault();
63
+ // Enable lowering until 1st page
64
+ if (this.clientPaginationValue >= 2) {
65
+ this.clientPaginationValue--;
66
+ this.sendPaginationValue(this.clientPaginationValue);
67
+ }
68
+ };
69
+ this.clientPaginationNext = (event) => {
70
+ event.preventDefault();
71
+ // Enable increasing until the max number of pages
72
+ if (this.clientPaginationValue <= this.clientMaxPages) {
73
+ this.clientPaginationValue++;
74
+ this.sendPaginationValue(this.clientPaginationValue);
75
+ }
76
+ };
77
+ this.enablePagination = false;
78
+ this.rowsPerPage = 5;
79
+ this.enableClientPagination = false;
80
+ this.clientPaginationValue = 1;
81
+ this.clientMaxPages = 1;
82
+ this.clientSetColumnsNumber = null;
83
+ this.disablePaginationFunction = false;
84
+ this.columnsNumber = 0;
85
+ this.numberOfPages = 0;
86
+ this.paginationValue = 1;
87
+ this.tempPaginationDisable = false;
88
+ this.verticalDividers = false;
89
+ this.compactDesign = false;
90
+ this.noMinWidth = false;
91
+ this.whiteBackground = false;
92
+ this.tableId = '';
93
+ }
94
+ tablePropsChangedEventListener(event) {
95
+ if (this.tableId === event.detail.tableId) {
96
+ event.detail.changed
97
+ .filter((changedProp) => relevantTableProps.includes(changedProp))
98
+ .forEach((changedProp) => {
99
+ if (typeof this[changedProp] === 'undefined') {
100
+ throw new Error(`Table prop is not supported: ${changedProp}`);
101
+ }
102
+ this[changedProp] = event.detail[changedProp];
103
+ });
104
+ }
105
+ }
106
+ connectedCallback() {
107
+ this.tableEl = this.host.closest('sdds-table');
108
+ this.tableId = this.tableEl.tableId;
109
+ }
110
+ componentWillLoad() {
111
+ relevantTableProps.forEach((tablePropName) => {
112
+ this[tablePropName] = this.tableEl[tablePropName];
113
+ });
114
+ const numberOfRows = this.host.parentElement.querySelector('sdds-table-body').childElementCount;
115
+ const numberOfColumns = this.host.parentElement.querySelector('sdds-table-header').childElementCount;
116
+ this.numberOfPages = Math.ceil(numberOfRows / this.rowsPerPage);
117
+ if (this.clientSetColumnsNumber !== null) {
118
+ this.columnsNumber = this.clientSetColumnsNumber;
119
+ }
120
+ else {
121
+ this.columnsNumber = numberOfColumns;
122
+ }
123
+ this.enablePaginationEvent.emit(this.tableId);
124
+ }
125
+ paginationInputChange(event) {
126
+ const insertedValue = event.target.value;
127
+ if (insertedValue > this.numberOfPages || insertedValue < 1) {
128
+ event.target.classList.add('sdds-table__page-selector-input--shake');
129
+ this.paginationValue = event.target.max;
130
+ }
131
+ else {
132
+ this.paginationValue = event.target.value;
133
+ }
134
+ this.runPagination();
135
+ }
136
+ runPaginationEventListener(event) {
137
+ if (this.tableId === event.detail) {
138
+ this.runPagination();
139
+ }
140
+ }
141
+ sendPaginationValue(value) {
142
+ this.currentPageValueEvent.emit([this.tableId, value]);
143
+ }
144
+ clientPaginationInputChange(event) {
145
+ const insertedValue = event.target.value;
146
+ if (insertedValue > this.clientMaxPages || insertedValue < 1) {
147
+ event.target.classList.add('sdds-table__page-selector-input--shake');
148
+ this.clientPaginationValue = event.target.max;
149
+ }
150
+ else {
151
+ this.clientPaginationValue = event.target.value;
152
+ }
153
+ this.sendPaginationValue(this.clientPaginationValue);
154
+ }
155
+ render() {
156
+ return (h(Host, { class: this.compactDesign ? 'sdds-table--compact' : '' }, h("tr", { class: "sdds-table__footer-row" }, h("td", { class: "sdds-table__footer-cell", colSpan: this.columnsNumber }, this.enablePagination && !this.enableClientPagination && (h("div", { class: "sdds-table__pagination" }, h("div", { class: "sdds-table__row-selector" }), h("div", { class: "sdds-table__page-selector" }, h("input", { class: "sdds-table__page-selector-input", type: "number", min: "1", max: this.numberOfPages, value: this.paginationValue, pattern: "[0-9]+", dir: "rtl", onChange: (event) => this.paginationInputChange(event), onFocusout: (event) => this.paginationInputChange(event), onAnimationEnd: removeShakeAnimation, disabled: this.tempPaginationDisable }), h("p", { class: "sdds-table__footer-text" }, "of ", h("span", null, this.tempPaginationDisable ? 1 : this.numberOfPages), " pages"), h("button", { class: "sdds-table__footer-btn", disabled: this.paginationValue <= 1 || this.tempPaginationDisable, onClick: (event) => this.paginationPrev(event) }, h("svg", { class: "sdds-table__footer-btn-svg", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M22.217 4.273a1 1 0 0 1 0 1.415l-9.888 9.888a.6.6 0 0 0 0 .848l9.888 9.888a1 1 0 0 1-1.414 1.415l-9.889-9.889a2.6 2.6 0 0 1 0-3.677l9.889-9.888a1 1 0 0 1 1.414 0Z" }))), h("button", { class: "sdds-table__footer-btn", disabled: this.paginationValue >= this.numberOfPages || this.tempPaginationDisable, onClick: (event) => this.paginationNext(event) }, h("svg", { class: "sdds-table__footer-btn-svg", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M9.783 27.727a1 1 0 0 1 0-1.415l9.888-9.888a.6.6 0 0 0 0-.848L9.783 5.688a1 1 0 0 1 1.414-1.415l9.889 9.889a2.6 2.6 0 0 1 0 3.676l-9.889 9.889a1 1 0 0 1-1.414 0Z" })))))), this.enableClientPagination && !this.enablePagination && (h("div", { class: "sdds-table__pagination" }, h("div", { class: "sdds-table__row-selector" }), h("div", { class: "sdds-table__page-selector" }, h("input", { class: "sdds-table__page-selector-input", type: "number", min: "1", max: this.clientMaxPages, value: this.clientPaginationValue, pattern: "[0-9]+", dir: "rtl", onChange: (event) => this.clientPaginationInputChange(event), onFocusout: (event) => this.clientPaginationInputChange(event), onAnimationEnd: removeShakeAnimation }), h("p", { class: "sdds-table__footer-text" }, "of ", h("span", null, this.clientMaxPages), " pages"), h("button", { class: "sdds-table__footer-btn", disabled: this.clientPaginationValue <= 1, onClick: (event) => this.clientPaginationPrev(event) }, h("svg", { class: "sdds-table__footer-btn-svg", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M22.217 4.273a1 1 0 0 1 0 1.415l-9.888 9.888a.6.6 0 0 0 0 .848l9.888 9.888a1 1 0 0 1-1.414 1.415l-9.889-9.889a2.6 2.6 0 0 1 0-3.677l9.889-9.888a1 1 0 0 1 1.414 0Z" }))), h("button", { class: "sdds-table__footer-btn", disabled: this.clientPaginationValue >= this.clientMaxPages, onClick: (event) => this.clientPaginationNext(event) }, h("svg", { class: "sdds-table__footer-btn-svg", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M9.783 27.727a1 1 0 0 1 0-1.415l9.888-9.888a.6.6 0 0 0 0-.848L9.783 5.688a1 1 0 0 1 1.414-1.415l9.889 9.889a2.6 2.6 0 0 1 0 3.676l-9.889 9.889a1 1 0 0 1-1.414 0Z" }))))))))));
157
+ }
158
+ get host() { return this; }
159
+ static get style() { return tableFooterCss; }
160
+ }, [1, "sdds-table-footer", {
161
+ "enablePagination": [516, "enable-pagination"],
162
+ "rowsPerPage": [514, "rows-per-page"],
163
+ "enableClientPagination": [516, "enable-client-pagination"],
164
+ "clientPaginationValue": [514, "client-pagination-value"],
165
+ "clientMaxPages": [514, "client-max-pages"],
166
+ "clientSetColumnsNumber": [2, "client-set-columns-number"],
167
+ "disablePaginationFunction": [4, "disable-pagination-function"],
168
+ "columnsNumber": [32],
169
+ "numberOfPages": [32],
170
+ "paginationValue": [32],
171
+ "tempPaginationDisable": [32],
172
+ "verticalDividers": [32],
173
+ "compactDesign": [32],
174
+ "noMinWidth": [32],
175
+ "whiteBackground": [32],
176
+ "tableId": [32]
177
+ }, [[16, "tablePropsChangedEvent", "tablePropsChangedEventListener"], [16, "runPaginationEvent", "runPaginationEventListener"]]]);
178
+ function defineCustomElement$1() {
179
+ if (typeof customElements === "undefined") {
180
+ return;
181
+ }
182
+ const components = ["sdds-table-footer"];
183
+ components.forEach(tagName => { switch (tagName) {
184
+ case "sdds-table-footer":
185
+ if (!customElements.get(tagName)) {
186
+ customElements.define(tagName, TableFooter);
187
+ }
188
+ break;
189
+ } });
190
+ }
191
+ defineCustomElement$1();
192
+
193
+ const SddsTableFooter = TableFooter;
194
+ const defineCustomElement = defineCustomElement$1;
195
+
196
+ export { SddsTableFooter, defineCustomElement };
197
+
198
+ //# sourceMappingURL=sdds-table-footer.js.map
@@ -0,0 +1 @@
1
+ {"file":"sdds-table-footer.js","mappings":"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","names":[],"sources":["./src/components/data-table/table-footer/table-footer.scss?tag=sdds-table-footer&encapsulation=shadow","./src/components/data-table/table-footer/table-footer.tsx"],"sourcesContent":["@import '../../../mixins/box-sizing';\n\n:host {\n @include sdds-box-sizing;\n\n display: table-footer-group;\n height: 48px;\n\n .sdds-table__footer-row {\n background-color: var(--sdds-data-table-footer-background);\n color: var(--sdds-data-table-color);\n }\n\n .sdds-table__footer-cell {\n padding: 0 16px;\n\n .sdds-table__pagination {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .sdds-table__row-selector,\n .sdds-table__page-selector {\n display: flex;\n align-items: center;\n }\n\n .sdds-table__page-selector-input {\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n background-color: var(--sdds-data-table-footer-page-selector-input-background);\n color: var(--sdds-data-table-color);\n width: 36px;\n height: 30px;\n border: none;\n border-radius: 4px;\n transition: background-color 250ms ease;\n margin-right: 4px;\n padding-right: 8px;\n\n &:hover {\n background-color: var(--sdds-data-table-footer-page-selector-input-background-hover);\n }\n\n &:disabled {\n color: var(--sdds-data-table-footer-page-selector-input-color-disabled);\n }\n }\n\n .sdds-table__page-selector-input--shake {\n animation: sdds-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n transform: translate3d(0, 0, 0);\n backface-visibility: hidden;\n perspective: 1000px;\n }\n\n .sdds-table__footer-text {\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n padding: 1px 8px 0 0;\n }\n\n .sdds-table__footer-btn {\n display: flex;\n justify-content: center;\n align-items: center;\n border: none;\n background-color: transparent;\n cursor: pointer;\n height: 32px;\n width: 32px;\n border-radius: 4px;\n transition: background-color 250ms ease;\n\n &:hover {\n background-color: var(--sdds-data-table-footer-btn-hover);\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.38;\n\n &:hover {\n background-color: transparent;\n }\n }\n }\n\n .sdds-table__footer-btn-svg {\n height: 20px;\n width: 20px;\n fill: var(--sdds-data-table-color)\n }\n }\n }\n}\n\n:host(.sdds-table--compact) {\n height: 32px;\n\n .sdds-table__footer-cell {\n .sdds-table__pagination {\n height: 32px;\n\n .sdds-table__page-selector-input {\n height: 24px;\n }\n\n .sdds-table__footer-btn {\n height: 28px;\n width: 28px;\n }\n }\n }\n}\n","import {\n Component,\n h,\n Host,\n Listen,\n State,\n Event,\n EventEmitter,\n Prop,\n Element,\n} from '@stencil/core';\nimport { TablePropsChangedEvent } from '../table/table';\n\nconst relevantTableProps: TablePropsChangedEvent['changed'] = [\n 'compactDesign',\n 'noMinWidth',\n 'verticalDividers',\n];\n\nfunction removeShakeAnimation(e: AnimationEvent & { target: HTMLElement }) {\n e.target.classList.remove('sdds-table__page-selector-input--shake');\n}\n\n@Component({\n tag: 'sdds-table-footer',\n styleUrl: 'table-footer.scss',\n shadow: true,\n})\nexport class TableFooter {\n /** Enable pagination and show pagination controls */\n @Prop({ reflect: true }) enablePagination: boolean = false;\n\n /** Sets how many rows to display when pagination is enabled */\n @Prop({ reflect: true }) rowsPerPage: number = 5;\n\n /** Prop to enable client controlled pagination */\n @Prop({ reflect: true }) enableClientPagination: boolean = false;\n\n /** Prop for client to set current page number */\n @Prop({ reflect: true }) clientPaginationValue: number = 1;\n\n /** Prop for client to set max number of pages */\n @Prop({ reflect: true }) clientMaxPages: number = 1;\n\n /** In case that automatic count of columns does not work, user can manually set this one. Take in mind that expandable control is column too */\n @Prop() clientSetColumnsNumber: number = null;\n\n /** Disables inbuilt pagination logic, leaving user an option to create own pagination functionality while listening to events from sdds-table-footer component */\n @Prop() disablePaginationFunction: boolean = false;\n\n /** State that memorize number of columns to display colSpan correctly - set from parent level */\n @State() columnsNumber: number = 0;\n\n /** Total number of pages, number of the rows divided with number of rows per page */\n @State() numberOfPages: number = 0;\n\n /** Initial value for pagination in input element */\n @State() paginationValue: number = 1;\n\n /** Temporarily disable pagination - due to search - set from parent level */\n @State() tempPaginationDisable: boolean = false;\n\n @State() verticalDividers: boolean = false;\n\n @State() compactDesign: boolean = false;\n\n @State() noMinWidth: boolean = false;\n\n @State() whiteBackground: boolean = false;\n\n @State() tableId: string = '';\n\n @Element() host: HTMLElement;\n\n tableEl: HTMLSddsTableElement;\n\n /** Event that footer sends out in order to receive other necessary information from other subcomponents */\n @Event({\n eventName: 'enablePaginationEvent',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n enablePaginationEvent: EventEmitter<any>;\n\n @Listen('tablePropsChangedEvent', { target: 'body' })\n tablePropsChangedEventListener(event: CustomEvent<TablePropsChangedEvent>) {\n if (this.tableId === event.detail.tableId) {\n event.detail.changed\n .filter((changedProp) => relevantTableProps.includes(changedProp))\n .forEach((changedProp) => {\n if (typeof this[changedProp] === 'undefined') {\n throw new Error(`Table prop is not supported: ${changedProp}`);\n }\n this[changedProp] = event.detail[changedProp];\n });\n }\n }\n\n connectedCallback() {\n this.tableEl = this.host.closest('sdds-table');\n this.tableId = this.tableEl.tableId;\n }\n\n componentWillLoad() {\n relevantTableProps.forEach((tablePropName) => {\n this[tablePropName] = this.tableEl[tablePropName];\n });\n\n const numberOfRows = this.host.parentElement.querySelector('sdds-table-body').childElementCount;\n\n const numberOfColumns =\n this.host.parentElement.querySelector('sdds-table-header').childElementCount;\n\n this.numberOfPages = Math.ceil(numberOfRows / this.rowsPerPage);\n\n if (this.clientSetColumnsNumber !== null) {\n this.columnsNumber = this.clientSetColumnsNumber;\n } else {\n this.columnsNumber = numberOfColumns;\n }\n\n this.enablePaginationEvent.emit(this.tableId);\n }\n\n paginationPrev = (event) => {\n event.preventDefault();\n // Enable lowering until 1st page\n if (this.paginationValue >= 2) {\n this.paginationValue--;\n this.runPagination();\n }\n };\n\n paginationNext = (event) => {\n event.preventDefault();\n // Enable increasing until the max number of pages\n if (this.paginationValue <= this.numberOfPages) {\n this.paginationValue++;\n this.runPagination();\n }\n };\n\n paginationInputChange(event) {\n const insertedValue = event.target.value;\n\n if (insertedValue > this.numberOfPages || insertedValue < 1) {\n event.target.classList.add('sdds-table__page-selector-input--shake');\n this.paginationValue = event.target.max;\n } else {\n this.paginationValue = event.target.value;\n }\n this.runPagination();\n }\n\n @Listen('runPaginationEvent', { target: 'body' })\n runPaginationEventListener(event: CustomEvent<any>) {\n if (this.tableId === event.detail) {\n this.runPagination();\n }\n }\n\n runPagination = () => {\n if (!this.disablePaginationFunction) {\n // grab all rows in body\n const dataRowsPagination = this.host.parentNode\n .querySelector('sdds-table-body')\n .querySelectorAll('.sdds-table__row');\n\n dataRowsPagination.forEach((item, i) => {\n // for making logic easier 1st result, 2nd result...\n const index = i + 1;\n\n if (this.tempPaginationDisable) {\n this.paginationValue = 1;\n } else {\n const lastResult = this.rowsPerPage * this.paginationValue;\n const firstResult = lastResult - this.rowsPerPage;\n\n if (index > firstResult && index <= lastResult) {\n item.classList.remove('sdds-table__row--hidden');\n } else {\n item.classList.add('sdds-table__row--hidden');\n }\n }\n });\n }\n };\n\n /* Client based functions below */\n\n /** Event to send current page value back to sdds-table-body component */\n @Event({\n eventName: 'currentPageValueEvent',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n currentPageValueEvent: EventEmitter<any>;\n\n sendPaginationValue(value) {\n this.currentPageValueEvent.emit([this.tableId, value]);\n }\n\n clientPaginationPrev = (event) => {\n event.preventDefault();\n // Enable lowering until 1st page\n if (this.clientPaginationValue >= 2) {\n this.clientPaginationValue--;\n this.sendPaginationValue(this.clientPaginationValue);\n }\n };\n\n clientPaginationNext = (event) => {\n event.preventDefault();\n // Enable increasing until the max number of pages\n if (this.clientPaginationValue <= this.clientMaxPages) {\n this.clientPaginationValue++;\n this.sendPaginationValue(this.clientPaginationValue);\n }\n };\n\n clientPaginationInputChange(event) {\n const insertedValue = event.target.value;\n\n if (insertedValue > this.clientMaxPages || insertedValue < 1) {\n event.target.classList.add('sdds-table__page-selector-input--shake');\n this.clientPaginationValue = event.target.max;\n } else {\n this.clientPaginationValue = event.target.value;\n }\n this.sendPaginationValue(this.clientPaginationValue);\n }\n\n render() {\n return (\n <Host class={this.compactDesign ? 'sdds-table--compact' : ''}>\n <tr class=\"sdds-table__footer-row\">\n <td class=\"sdds-table__footer-cell\" colSpan={this.columnsNumber}>\n {this.enablePagination && !this.enableClientPagination && (\n <div class=\"sdds-table__pagination\">\n <div class=\"sdds-table__row-selector\"></div>\n <div class=\"sdds-table__page-selector\">\n <input\n class=\"sdds-table__page-selector-input\"\n type=\"number\"\n min=\"1\"\n max={this.numberOfPages}\n value={this.paginationValue}\n pattern=\"[0-9]+\"\n dir=\"rtl\"\n onChange={(event) => this.paginationInputChange(event)}\n onFocusout={(event) => this.paginationInputChange(event)}\n onAnimationEnd={removeShakeAnimation}\n disabled={this.tempPaginationDisable}\n />\n <p class=\"sdds-table__footer-text\">\n of <span>{this.tempPaginationDisable ? 1 : this.numberOfPages}</span> pages\n </p>\n <button\n class=\"sdds-table__footer-btn\"\n disabled={this.paginationValue <= 1 || this.tempPaginationDisable}\n onClick={(event) => this.paginationPrev(event)}\n >\n <svg\n class=\"sdds-table__footer-btn-svg\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M22.217 4.273a1 1 0 0 1 0 1.415l-9.888 9.888a.6.6 0 0 0 0 .848l9.888 9.888a1 1 0 0 1-1.414 1.415l-9.889-9.889a2.6 2.6 0 0 1 0-3.677l9.889-9.888a1 1 0 0 1 1.414 0Z\"\n />\n </svg>\n </button>\n <button\n class=\"sdds-table__footer-btn\"\n disabled={\n this.paginationValue >= this.numberOfPages || this.tempPaginationDisable\n }\n onClick={(event) => this.paginationNext(event)}\n >\n <svg\n class=\"sdds-table__footer-btn-svg\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.783 27.727a1 1 0 0 1 0-1.415l9.888-9.888a.6.6 0 0 0 0-.848L9.783 5.688a1 1 0 0 1 1.414-1.415l9.889 9.889a2.6 2.6 0 0 1 0 3.676l-9.889 9.889a1 1 0 0 1-1.414 0Z\"\n />\n </svg>\n </button>\n </div>\n </div>\n )}\n {this.enableClientPagination && !this.enablePagination && (\n <div class=\"sdds-table__pagination\">\n <div class=\"sdds-table__row-selector\"></div>\n <div class=\"sdds-table__page-selector\">\n <input\n class=\"sdds-table__page-selector-input\"\n type=\"number\"\n min=\"1\"\n max={this.clientMaxPages}\n value={this.clientPaginationValue}\n pattern=\"[0-9]+\"\n dir=\"rtl\"\n onChange={(event) => this.clientPaginationInputChange(event)}\n onFocusout={(event) => this.clientPaginationInputChange(event)}\n onAnimationEnd={removeShakeAnimation}\n />\n <p class=\"sdds-table__footer-text\">\n of <span>{this.clientMaxPages}</span> pages\n </p>\n <button\n class=\"sdds-table__footer-btn\"\n disabled={this.clientPaginationValue <= 1}\n onClick={(event) => this.clientPaginationPrev(event)}\n >\n <svg\n class=\"sdds-table__footer-btn-svg\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M22.217 4.273a1 1 0 0 1 0 1.415l-9.888 9.888a.6.6 0 0 0 0 .848l9.888 9.888a1 1 0 0 1-1.414 1.415l-9.889-9.889a2.6 2.6 0 0 1 0-3.677l9.889-9.888a1 1 0 0 1 1.414 0Z\"\n />\n </svg>\n </button>\n <button\n class=\"sdds-table__footer-btn\"\n disabled={this.clientPaginationValue >= this.clientMaxPages}\n onClick={(event) => this.clientPaginationNext(event)}\n >\n <svg\n class=\"sdds-table__footer-btn-svg\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.783 27.727a1 1 0 0 1 0-1.415l9.888-9.888a.6.6 0 0 0 0-.848L9.783 5.688a1 1 0 0 1 1.414-1.415l9.889 9.889a2.6 2.6 0 0 1 0 3.676l-9.889 9.889a1 1 0 0 1-1.414 0Z\"\n />\n </svg>\n </button>\n </div>\n </div>\n )}\n </td>\n </tr>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SddsTableHeader extends Components.SddsTableHeader, HTMLElement {}
4
+ export const SddsTableHeader: {
5
+ prototype: SddsTableHeader;
6
+ new (): SddsTableHeader;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,127 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const tableHeaderCss = ":root,.sdds-mode-light{--sdds-checkbox-color:var(--sdds-grey-900);--sdds-checkbox-interaction-01:var(--sdds-blue-800);--sdds-checkbox-interaction-02:var(--sdds-white);--sdds-checkbox-background-hover:var(--sdds-blue-800);--sdds-checkbox-background-focus:var(--sdds-blue-800);--sdds-checkbox-disabled:var(--sdds-grey-400);--sdds-checkbox-background-img:url(\"data:image/svg+xml;utf8,<svg width='8' height='6' viewBox='0 0 8 6' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M1 2.33333L3.4 5C4.80589 3.4379 5.59411 2.5621 7 1' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round'/></svg>\");--sdds-checkbox-background-img-disabled:url(\"data:image/svg+xml;utf8,<svg width='8' height='6' viewBox='0 0 8 6' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M1 2.33333L3.4 5C4.80589 3.4379 5.59411 2.5621 7 1' stroke='%23b0b7c4' stroke-linecap='round' stroke-linejoin='round'/></svg>\");--sdds-checkbox-border-color-disabled-after:var(--sdds-grey-500);--sdds-checkbox-color-disabled-after:var(--sdds-grey-500)}:root .sdds-mode-dark,.sdds-mode-light .sdds-mode-dark{--sdds-checkbox-color:var(--sdds-white);--sdds-checkbox-interaction-01:var(--sdds-white);--sdds-checkbox-interaction-02:var(--sdds-grey-958);--sdds-checkbox-background-hover:white;--sdds-checkbox-background-focus:white;--sdds-checkbox-disabled:white;--sdds-checkbox-background-img:url(\"data:image/svg+xml;utf8,<svg width='8' height='6' viewBox='0 0 8 6' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M1 2.33333L3.4 5C4.80589 3.4379 5.59411 2.5621 7 1' stroke='%230D0F13' stroke-linecap='round' stroke-linejoin='round'/></svg>\");--sdds-checkbox-background-img-disabled:url(\"data:image/svg+xml;utf8,<svg width='8' height='6' viewBox='0 0 8 6' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M1 2.33333L3.4 5C4.80589 3.4379 5.59411 2.5621 7 1' stroke='%2356657A' stroke-linecap='round' stroke-linejoin='round'/></svg>\");--sdds-checkbox-border-color-disabled-after:var(--sdds-grey-700);--sdds-checkbox-color-disabled-after:var(--sdds-grey-700)}.sdds-checkbox-item{box-sizing:border-box;font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);color:var(--sdds-checkbox-text);display:flex;align-items:center;margin-left:-4px}.sdds-checkbox-item *{box-sizing:border-box}.sdds-checkbox-item .sdds-form-input[type=checkbox]{appearance:none;outline:none;margin:0;border:0;border-radius:2px;width:24px;height:24px;position:relative;cursor:pointer}.sdds-checkbox-item .sdds-form-input[type=checkbox]+label{color:var(--sdds-checkbox-color);padding-left:var(--sdds-spacing-element-4);padding-top:var(--sdds-spacing-element-4);padding-bottom:var(--sdds-spacing-element-4);cursor:pointer}.sdds-checkbox-item .sdds-form-input[type=checkbox]::before,.sdds-checkbox-item .sdds-form-input[type=checkbox]::after{content:\"\";position:absolute;box-sizing:border-box;border-radius:2px}.sdds-checkbox-item .sdds-form-input[type=checkbox]::before{width:24px;height:24px;left:0;top:0}.sdds-checkbox-item .sdds-form-input[type=checkbox]::after{border:1px solid var(--sdds-checkbox-interaction-01);background-color:var(--sdds-checkbox-interaction-02);width:16px;height:16px;left:4px;top:4px}.sdds-checkbox-item .sdds-form-input[type=checkbox]:hover::before{background-color:var(--sdds-checkbox-background-hover);opacity:0.12}.sdds-checkbox-item .sdds-form-input[type=checkbox]:focus::before{background-color:var(--sdds-checkbox-background-focus);opacity:0.24;transition:opacity 0.2s ease-in-out}.sdds-checkbox-item .sdds-form-input[type=checkbox]:disabled,.sdds-checkbox-item .sdds-form-input[type=checkbox].disabled{cursor:not-allowed}.sdds-checkbox-item .sdds-form-input[type=checkbox]:disabled::after,.sdds-checkbox-item .sdds-form-input[type=checkbox].disabled::after{border-color:var(--sdds-checkbox-border-color-disabled-after)}.sdds-checkbox-item .sdds-form-input[type=checkbox]:disabled+label,.sdds-checkbox-item .sdds-form-input[type=checkbox].disabled+label{color:var(--sdds-grey-600);cursor:not-allowed}.sdds-checkbox-item .sdds-form-input[type=checkbox]:disabled:hover::before,.sdds-checkbox-item .sdds-form-input[type=checkbox].disabled:hover::before{display:none}.sdds-form-input[type=checkbox]:checked::after{background-image:var(--sdds-checkbox-background-img);background-color:var(--sdds-checkbox-interaction-01);background-repeat:no-repeat;background-position:center}.sdds-form-input[type=checkbox]:checked:disabled:hover::before,.sdds-form-input[type=checkbox]:checked:disabled::before,.sdds-form-input[type=checkbox]:checked.disabled:hover::before,.sdds-form-input[type=checkbox]:checked.disabled::before{display:block;width:16px;height:16px;left:4px;top:4px;border:1px solid #b0b7c4}.sdds-form-input[type=checkbox]:checked:disabled::after,.sdds-form-input[type=checkbox]:checked.disabled::after{background-image:var(--sdds-checkbox-background-img-disabled);background-color:var(--sdds-checkbox-interaction-02);color:var(--sdds-checkbox-color-disabled-after)}:host{box-sizing:border-box;display:table-header-group}:host *{box-sizing:border-box}:host .sdds-table__header-cell--checkbox{font:var(--sdds-headline-07);letter-spacing:var(--sdds-headline-07-ls);display:table-cell;text-align:left;color:var(--sdds-data-table-color);background-color:var(--sdds-data-table-header-background);border-bottom:1px solid var(--sdds-data-table-divider);height:48px;box-sizing:border-box;overflow:hidden;transition:background-color 200ms ease;min-width:unset;width:48px;padding:0;border-top-left-radius:4px}:host .sdds-form-label--data-table{width:100%;height:48px;display:flex;justify-content:center;align-items:center;cursor:pointer}:host .sdds-table__expand-control-container{display:flex;justify-content:center;align-items:center;height:48px;cursor:pointer}:host .sdds-table__expand-control-container .sdds-table__expand-input{display:none}:host .sdds-table__expand-control-container .sdds-expandable-row-icon{height:20px;width:20px;transition:transform 200ms ease;transform:rotate(0)}:host .sdds-table__expand-control-container .sdds-expandable-row-icon--opened{transform:rotate(180deg)}:host ::slotted(sdds-header-cell:hover){background-color:var(--sdds-data-table-header-background-hover)}:host(.sdds-table--compact) .sdds-table__header-cell--checkbox{height:32px}:host(.sdds-table--compact) .sdds-form-label--data-table{height:32px}:host(.sdds-table--divider) .sdds-table__header-cell--checkbox{border-right:1px solid var(--sdds-data-table-divider)}:host(.sdds-table--toolbar-available) .sdds-table__header-cell--checkbox{border-top-left-radius:0}";
4
+
5
+ const relevantTableProps = [
6
+ 'enableMultiselect',
7
+ 'enableExpandableRows',
8
+ 'verticalDividers',
9
+ 'compactDesign',
10
+ 'noMinWidth',
11
+ ];
12
+ const TableHeaderRow = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
13
+ constructor() {
14
+ super();
15
+ this.__registerHost();
16
+ this.__attachShadow();
17
+ this.mainCheckboxSelectedEvent = createEvent(this, "mainCheckboxSelectedEvent", 7);
18
+ this.enableMultiselect = false;
19
+ this.enableExpandableRows = false;
20
+ this.mainCheckboxSelected = false;
21
+ this.mainExpendSelected = false;
22
+ this.verticalDividers = false;
23
+ this.compactDesign = false;
24
+ this.noMinWidth = false;
25
+ this.whiteBackground = false;
26
+ this.enableToolbarDesign = false;
27
+ this.tableId = '';
28
+ }
29
+ tablePropsChangedEventListener(event) {
30
+ if (this.tableId === event.detail.tableId) {
31
+ event.detail.changed
32
+ .filter((changedProp) => relevantTableProps.includes(changedProp))
33
+ .forEach((changedProp) => {
34
+ if (typeof this[changedProp] === 'undefined') {
35
+ throw new Error(`Table prop is not supported: ${changedProp}`);
36
+ }
37
+ this[changedProp] = event.detail[changedProp];
38
+ });
39
+ }
40
+ }
41
+ updateMainCheckboxEventListener(event) {
42
+ const [receivedID, receivedMainCheckboxStatus] = event.detail;
43
+ if (this.tableId === receivedID) {
44
+ this.mainCheckboxSelected = receivedMainCheckboxStatus;
45
+ }
46
+ }
47
+ singleRowExpandedEventListener(event) {
48
+ if (this.tableId === event.detail[0]) {
49
+ // TODO: Improve this logic. Why we get late repose in DOM?
50
+ setTimeout(() => {
51
+ this.bodyExpandClicked();
52
+ }, 100);
53
+ }
54
+ }
55
+ bodyExpandClicked() {
56
+ const numberOfExtendRowsActive = this.host.parentElement
57
+ .querySelector('sdds-table-body')
58
+ .getElementsByClassName('sdds-table__row-extend--active').length;
59
+ const numberOfExtendRows = this.host.parentElement
60
+ .querySelector('sdds-table-body')
61
+ .getElementsByTagName('sdds-table-body-row-expendable').length;
62
+ if (numberOfExtendRows === numberOfExtendRowsActive) {
63
+ this.mainExpendSelected = true;
64
+ }
65
+ else {
66
+ this.mainExpendSelected = false;
67
+ }
68
+ }
69
+ connectedCallback() {
70
+ this.tableEl = this.host.closest('sdds-table');
71
+ this.tableId = this.tableEl.tableId;
72
+ }
73
+ componentWillLoad() {
74
+ relevantTableProps.forEach((tablePropName) => {
75
+ this[tablePropName] = this.tableEl[tablePropName];
76
+ });
77
+ }
78
+ componentWillRender() {
79
+ this.enableToolbarDesign =
80
+ this.host.closest('sdds-table').getElementsByTagName('sdds-table-toolbar').length >= 1;
81
+ }
82
+ headCheckBoxClicked(event) {
83
+ this.mainCheckboxSelected = event.currentTarget.checked;
84
+ this.mainCheckboxSelectedEvent.emit([this.tableId, this.mainCheckboxSelected]);
85
+ }
86
+ render() {
87
+ return (h(Host, { class: {
88
+ 'sdds-table--compact': this.compactDesign,
89
+ 'sdds-table--divider': this.verticalDividers,
90
+ 'sdds-table--toolbar-available': this.enableToolbarDesign,
91
+ } }, h("tr", null, this.enableMultiselect && (h("th", { class: "sdds-table__header-cell sdds-table__header-cell--checkbox" }, h("div", { class: "sdds-checkbox-item" }, h("label", { class: "sdds-form-label sdds-form-label--data-table" }, h("input", { class: "sdds-form-input", type: "checkbox", onChange: (e) => this.headCheckBoxClicked(e), checked: this.mainCheckboxSelected }))))), this.enableExpandableRows && (h("th", { class: "sdds-table__header-cell sdds-table__header-cell--checkbox" })), h("slot", null))));
92
+ }
93
+ get host() { return this; }
94
+ static get style() { return tableHeaderCss; }
95
+ }, [1, "sdds-table-header", {
96
+ "enableMultiselect": [32],
97
+ "enableExpandableRows": [32],
98
+ "mainCheckboxSelected": [32],
99
+ "mainExpendSelected": [32],
100
+ "verticalDividers": [32],
101
+ "compactDesign": [32],
102
+ "noMinWidth": [32],
103
+ "whiteBackground": [32],
104
+ "enableToolbarDesign": [32],
105
+ "tableId": [32]
106
+ }, [[16, "tablePropsChangedEvent", "tablePropsChangedEventListener"], [16, "updateMainCheckboxEvent", "updateMainCheckboxEventListener"], [16, "singleRowExpandedEvent", "singleRowExpandedEventListener"]]]);
107
+ function defineCustomElement$1() {
108
+ if (typeof customElements === "undefined") {
109
+ return;
110
+ }
111
+ const components = ["sdds-table-header"];
112
+ components.forEach(tagName => { switch (tagName) {
113
+ case "sdds-table-header":
114
+ if (!customElements.get(tagName)) {
115
+ customElements.define(tagName, TableHeaderRow);
116
+ }
117
+ break;
118
+ } });
119
+ }
120
+ defineCustomElement$1();
121
+
122
+ const SddsTableHeader = TableHeaderRow;
123
+ const defineCustomElement = defineCustomElement$1;
124
+
125
+ export { SddsTableHeader, defineCustomElement };
126
+
127
+ //# sourceMappingURL=sdds-table-header.js.map
@@ -0,0 +1 @@
1
+ {"file":"sdds-table-header.js","mappings":"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","names":[],"sources":["./src/components/data-table/table-header/table-header.scss?tag=sdds-table-header&encapsulation=shadow","./src/components/data-table/table-header/table-header.tsx"],"sourcesContent":["/* As checkbox is not a web component, we have to import them here in order to have styles available - shadow DOM is a reason */\n@import '../../checkbox/checkbox';\n@import '../../../mixins/box-sizing';\n\n:host {\n @include sdds-box-sizing;\n\n display: table-header-group;\n\n .sdds-table__header-cell--checkbox {\n font: var(--sdds-headline-07);\n letter-spacing: var(--sdds-headline-07-ls);\n display: table-cell;\n text-align: left;\n color: var(--sdds-data-table-color);\n background-color: var(--sdds-data-table-header-background);\n border-bottom: 1px solid var(--sdds-data-table-divider);\n height: 48px;\n box-sizing: border-box;\n\n // To fix issues with border-radius propagating up from button\n overflow: hidden;\n transition: background-color 200ms ease;\n min-width: unset;\n width: 48px;\n padding: 0;\n border-top-left-radius: 4px;\n }\n\n // Extra rule for label use in data-data-table\n .sdds-form-label--data-table {\n width: 100%;\n height: 48px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n }\n\n .sdds-table__expand-control-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n cursor: pointer;\n\n .sdds-table__expand-input {\n display: none;\n }\n\n .sdds-expandable-row-icon {\n height: 20px;\n width: 20px;\n transition: transform 200ms ease;\n transform: rotate(0);\n }\n\n .sdds-expandable-row-icon--opened {\n transform: rotate(180deg);\n }\n }\n\n ::slotted(sdds-header-cell:hover) {\n background-color: var(--sdds-data-table-header-background-hover);\n }\n}\n\n:host(.sdds-table--compact) {\n .sdds-table__header-cell--checkbox {\n height: 32px;\n }\n\n // Extra rule for label use in data-data-table\n .sdds-form-label--data-table {\n height: 32px;\n }\n}\n\n:host(.sdds-table--divider) {\n .sdds-table__header-cell--checkbox {\n border-right: 1px solid var(--sdds-data-table-divider);\n }\n}\n\n:host(.sdds-table--toolbar-available) {\n .sdds-table__header-cell--checkbox {\n border-top-left-radius: 0;\n }\n}\n","import { Component, h, Host, State, Event, EventEmitter, Listen, Element } from '@stencil/core';\nimport { TablePropsChangedEvent } from '../table/table';\n\nconst relevantTableProps: TablePropsChangedEvent['changed'] = [\n 'enableMultiselect',\n 'enableExpandableRows',\n 'verticalDividers',\n 'compactDesign',\n 'noMinWidth',\n];\n\n@Component({\n tag: 'sdds-table-header',\n styleUrl: 'table-header.scss',\n shadow: true,\n})\nexport class TableHeaderRow {\n @State() enableMultiselect: boolean = false;\n\n @State() enableExpandableRows: boolean = false;\n\n @State() mainCheckboxSelected: boolean = false;\n\n @State() mainExpendSelected: boolean = false;\n\n @State() verticalDividers: boolean = false;\n\n @State() compactDesign: boolean = false;\n\n @State() noMinWidth: boolean = false;\n\n @State() whiteBackground: boolean = false;\n\n @State() enableToolbarDesign: boolean = false;\n\n @State() tableId: string = '';\n\n @Element() host: HTMLElement;\n\n tableEl: HTMLSddsTableElement;\n\n /** Send status of main checkbox in header to the parent, sdds-table component */\n @Event({\n eventName: 'mainCheckboxSelectedEvent',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n mainCheckboxSelectedEvent: EventEmitter<any>;\n\n @Listen('tablePropsChangedEvent', { target: 'body' })\n tablePropsChangedEventListener(event: CustomEvent<TablePropsChangedEvent>) {\n if (this.tableId === event.detail.tableId) {\n event.detail.changed\n .filter((changedProp) => relevantTableProps.includes(changedProp))\n .forEach((changedProp) => {\n if (typeof this[changedProp] === 'undefined') {\n throw new Error(`Table prop is not supported: ${changedProp}`);\n }\n this[changedProp] = event.detail[changedProp];\n });\n }\n }\n\n @Listen('updateMainCheckboxEvent', { target: 'body' })\n updateMainCheckboxEventListener(event: CustomEvent<any>) {\n const [receivedID, receivedMainCheckboxStatus] = event.detail;\n if (this.tableId === receivedID) {\n this.mainCheckboxSelected = receivedMainCheckboxStatus;\n }\n }\n\n @Listen('singleRowExpandedEvent', { target: 'body' })\n singleRowExpandedEventListener(event: CustomEvent<any>) {\n if (this.tableId === event.detail[0]) {\n // TODO: Improve this logic. Why we get late repose in DOM?\n setTimeout(() => {\n this.bodyExpandClicked();\n }, 100);\n }\n }\n\n bodyExpandClicked() {\n const numberOfExtendRowsActive = this.host.parentElement\n .querySelector('sdds-table-body')\n .getElementsByClassName('sdds-table__row-extend--active').length;\n const numberOfExtendRows = this.host.parentElement\n .querySelector('sdds-table-body')\n .getElementsByTagName('sdds-table-body-row-expendable').length;\n\n if (numberOfExtendRows === numberOfExtendRowsActive) {\n this.mainExpendSelected = true;\n } else {\n this.mainExpendSelected = false;\n }\n }\n\n connectedCallback() {\n this.tableEl = this.host.closest('sdds-table');\n this.tableId = this.tableEl.tableId;\n }\n\n componentWillLoad() {\n relevantTableProps.forEach((tablePropName) => {\n this[tablePropName] = this.tableEl[tablePropName];\n });\n }\n\n componentWillRender() {\n this.enableToolbarDesign =\n this.host.closest('sdds-table').getElementsByTagName('sdds-table-toolbar').length >= 1;\n }\n\n headCheckBoxClicked(event) {\n this.mainCheckboxSelected = event.currentTarget.checked;\n this.mainCheckboxSelectedEvent.emit([this.tableId, this.mainCheckboxSelected]);\n }\n\n render() {\n return (\n <Host\n class={{\n 'sdds-table--compact': this.compactDesign,\n 'sdds-table--divider': this.verticalDividers,\n 'sdds-table--toolbar-available': this.enableToolbarDesign,\n }}\n >\n <tr>\n {this.enableMultiselect && (\n <th class=\"sdds-table__header-cell sdds-table__header-cell--checkbox\">\n <div class=\"sdds-checkbox-item\">\n <label class=\"sdds-form-label sdds-form-label--data-table\">\n <input\n class=\"sdds-form-input\"\n type=\"checkbox\"\n onChange={(e) => this.headCheckBoxClicked(e)}\n checked={this.mainCheckboxSelected}\n />\n </label>\n </div>\n </th>\n )}\n {this.enableExpandableRows && (\n <th class=\"sdds-table__header-cell sdds-table__header-cell--checkbox\"></th>\n )}\n <slot></slot>\n </tr>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SddsTableToolbar extends Components.SddsTableToolbar, HTMLElement {}
4
+ export const SddsTableToolbar: {
5
+ prototype: SddsTableToolbar;
6
+ new (): SddsTableToolbar;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,90 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const tableToolbarCss = ":host{box-sizing:border-box;display:table-caption;position:relative;background-color:var(--sdds-data-table-toolbar-background);color:var(--sdds-data-table-color);padding:0 var(--sdds-spacing-element-16);height:64px;border-top-left-radius:4px;border-top-right-radius:4px}:host *{box-sizing:border-box}:host .sdds-table__upper-bar-flex{width:100%;height:100%;display:flex;justify-content:space-between}:host .sdds-table__title{font:var(--sdds-headline-07);letter-spacing:var(--sdds-headline-07-ls);padding-top:var(--sdds-spacing-element-16);text-align:left}:host .sdds-table__actionbar{display:flex;align-self:center;gap:8px}:host .sdds-table__searchbar{display:flex;align-self:center;position:relative;height:40px;width:40px;border-radius:4px 4px 0 0;transition:background-color 250ms ease, width 250ms ease;overflow:hidden;background-color:transparent}:host .sdds-table__searchbar::after{content:\"\";width:100%;height:2px;position:absolute;bottom:0;background-color:var(--sdds-blue-400);transform:scaleX(0);transition:transform 150ms ease}:host .sdds-table__searchbar:focus-within::after{transform:scaleX(100%)}:host .sdds-table__searchbar:focus-within,:host .sdds-table__searchbar.sdds-table__searchbar--active{width:208px;background-color:var(--sdds-data-table-toolbar-searchbar-background)}:host .sdds-table__searchbar:focus-within:hover,:host .sdds-table__searchbar.sdds-table__searchbar--active:hover{background-color:var(--sdds-data-table-toolbar-searchbar-background)}:host .sdds-table__searchbar .sdds-table__searchbar-input{font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);color:var(--sdds-data-table-color);z-index:1;width:100%;height:100%;border:none;padding:0 36px 0 16px;background-color:transparent;outline:none;cursor:pointer}:host .sdds-table__searchbar .sdds-table__searchbar-input :focus{background-color:var(--sdds-data-table-toolbar-searchbar-background)}:host .sdds-table__searchbar:hover{background-color:var(--sdds-data-table-toolbar-searchbar-background-hover)}:host .sdds-table__searchbar .sdds-table__searchbar-icon{z-index:0;position:absolute;right:9px;top:9px;width:20px;height:20px}:host(.sdds-table--compact){height:56px}";
4
+
5
+ const relevantTableProps = [
6
+ 'compactDesign',
7
+ 'noMinWidth',
8
+ 'verticalDividers',
9
+ ];
10
+ const TableToolbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.__attachShadow();
15
+ this.tableFilteringTerm = createEvent(this, "tableFilteringTerm", 7);
16
+ this.tableTitle = '';
17
+ this.enableFiltering = false;
18
+ this.verticalDividers = false;
19
+ this.compactDesign = false;
20
+ this.noMinWidth = false;
21
+ this.whiteBackground = false;
22
+ this.tableId = '';
23
+ }
24
+ tablePropsChangedEventListener(event) {
25
+ if (this.tableId === event.detail.tableId) {
26
+ event.detail.changed
27
+ .filter((changedProp) => relevantTableProps.includes(changedProp))
28
+ .forEach((changedProp) => {
29
+ if (typeof this[changedProp] === 'undefined') {
30
+ throw new Error(`Table prop is not supported: ${changedProp}`);
31
+ }
32
+ this[changedProp] = event.detail[changedProp];
33
+ });
34
+ }
35
+ }
36
+ connectedCallback() {
37
+ this.tableEl = this.host.closest('sdds-table');
38
+ this.tableId = this.tableEl.tableId;
39
+ }
40
+ componentWillLoad() {
41
+ relevantTableProps.forEach((tablePropName) => {
42
+ this[tablePropName] = this.tableEl[tablePropName];
43
+ });
44
+ }
45
+ searchFunction(event) {
46
+ const searchTerm = event.currentTarget.value.toLowerCase();
47
+ const sddsTableSearchBar = event.currentTarget.parentElement;
48
+ this.tableFilteringTerm.emit([this.tableId, searchTerm]);
49
+ if (searchTerm.length > 0) {
50
+ sddsTableSearchBar.classList.add('sdds-table__searchbar--active');
51
+ }
52
+ else {
53
+ sddsTableSearchBar.classList.remove('sdds-table__searchbar--active');
54
+ }
55
+ }
56
+ render() {
57
+ return (h(Host, { class: this.compactDesign ? 'sdds-table--compact' : '' }, h("div", { class: "sdds-table__upper-bar-flex" }, h("caption", { class: "sdds-table__title" }, this.tableTitle), h("div", { class: "sdds-table__actionbar" }, this.enableFiltering && (h("div", { class: "sdds-table__searchbar" }, h("input", { class: "sdds-table__searchbar-input", type: "text", onKeyUp: (event) => this.searchFunction(event) }), h("span", { class: "sdds-table__searchbar-icon" }, h("svg", { fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12.942 1.985c-6.051 0-10.957 4.905-10.957 10.957 0 6.051 4.906 10.957 10.957 10.957 2.666 0 5.109-.952 7.008-2.534l8.332 8.331a1 1 0 1 0 1.414-1.414l-8.331-8.331a10.912 10.912 0 0 0 2.534-7.01c0-6.05-4.905-10.956-10.957-10.956ZM3.985 12.942a8.957 8.957 0 1 1 17.914 0 8.957 8.957 0 0 1-17.914 0Z", fill: "currentColor" }))))), h("slot", { name: "sdds-table__actionbar" })))));
58
+ }
59
+ get host() { return this; }
60
+ static get style() { return tableToolbarCss; }
61
+ }, [1, "sdds-table-toolbar", {
62
+ "tableTitle": [513, "table-title"],
63
+ "enableFiltering": [516, "enable-filtering"],
64
+ "verticalDividers": [32],
65
+ "compactDesign": [32],
66
+ "noMinWidth": [32],
67
+ "whiteBackground": [32],
68
+ "tableId": [32]
69
+ }, [[16, "tablePropsChangedEvent", "tablePropsChangedEventListener"]]]);
70
+ function defineCustomElement$1() {
71
+ if (typeof customElements === "undefined") {
72
+ return;
73
+ }
74
+ const components = ["sdds-table-toolbar"];
75
+ components.forEach(tagName => { switch (tagName) {
76
+ case "sdds-table-toolbar":
77
+ if (!customElements.get(tagName)) {
78
+ customElements.define(tagName, TableToolbar);
79
+ }
80
+ break;
81
+ } });
82
+ }
83
+ defineCustomElement$1();
84
+
85
+ const SddsTableToolbar = TableToolbar;
86
+ const defineCustomElement = defineCustomElement$1;
87
+
88
+ export { SddsTableToolbar, defineCustomElement };
89
+
90
+ //# sourceMappingURL=sdds-table-toolbar.js.map
@@ -0,0 +1 @@
1
+ {"file":"sdds-table-toolbar.js","mappings":";;AAAA,MAAM,eAAe,GAAG,4nEAA4nE;;ACappE,MAAM,kBAAkB,GAAsC;EAC5D,eAAe;EACf,YAAY;EACZ,kBAAkB;CACnB,CAAC;MAOW,YAAY;;;;;;sBAEuB,EAAE;2BAGI,KAAK;4BAEpB,KAAK;yBAER,KAAK;sBAER,KAAK;2BAEA,KAAK;mBAEd,EAAE;;EAgB7B,8BAA8B,CAAC,KAA0C;IACvE,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;MACzC,KAAK,CAAC,MAAM,CAAC,OAAO;SACjB,MAAM,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACjE,OAAO,CAAC,CAAC,WAAW;QACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;UAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;OAC/C,CAAC,CAAC;KACN;GACF;EAED,iBAAiB;IACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;GACrC;EAED,iBAAiB;IACf,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAAa;MACvC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACnD,CAAC,CAAC;GACJ;EAED,cAAc,CAAC,KAAK;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IAE7D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;MACzB,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;KACnE;SAAM;MACL,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;KACtE;GACF;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,IAC1D,WAAK,KAAK,EAAC,4BAA4B,IACrC,eAAS,KAAK,EAAC,mBAAmB,IAAE,IAAI,CAAC,UAAU,CAAW,EAC9D,WAAK,KAAK,EAAC,uBAAuB,IAC/B,IAAI,CAAC,eAAe,KACnB,WAAK,KAAK,EAAC,uBAAuB,IAChC,aACE,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAC9C,EACF,YAAM,KAAK,EAAC,4BAA4B,IACtC,WAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,WAAW,IACrE,yBACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,0SAA0S,EAC5S,IAAI,EAAC,cAAc,GACnB,CACE,CACD,CACH,CACP,EACD,YAAM,IAAI,EAAC,uBAAuB,GAAG,CACjC,CACF,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/data-table/table-toolbar/table-toolbar.scss?tag=sdds-table-toolbar&encapsulation=shadow","./src/components/data-table/table-toolbar/table-toolbar.tsx"],"sourcesContent":["@import '../../../mixins/box-sizing';\n\n:host {\n @include sdds-box-sizing;\n\n display: table-caption;\n position: relative;\n background-color: var(--sdds-data-table-toolbar-background);\n color: var(--sdds-data-table-color);\n padding: 0 var(--sdds-spacing-element-16);\n height: 64px;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n\n .sdds-table__upper-bar-flex {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-between;\n }\n\n .sdds-table__title {\n font: var(--sdds-headline-07);\n letter-spacing: var(--sdds-headline-07-ls);\n padding-top: var(--sdds-spacing-element-16);\n text-align: left;\n }\n\n .sdds-table__actionbar {\n display: flex;\n align-self: center;\n gap: 8px;\n }\n\n .sdds-table__searchbar {\n display: flex;\n align-self: center;\n position: relative;\n height: 40px;\n width: 40px;\n border-radius: 4px 4px 0 0;\n transition: background-color 250ms ease, width 250ms ease;\n overflow: hidden;\n background-color: transparent;\n\n &::after {\n content: '';\n width: 100%;\n height: 2px;\n position: absolute;\n bottom: 0;\n background-color: var(--sdds-blue-400);\n transform: scaleX(0);\n transition: transform 150ms ease;\n }\n\n &:focus-within {\n &::after {\n transform: scaleX(100%);\n }\n }\n\n &:focus-within,\n &.sdds-table__searchbar--active {\n width: 208px;\n background-color: var(--sdds-data-table-toolbar-searchbar-background);\n\n &:hover {\n background-color: var(--sdds-data-table-toolbar-searchbar-background);\n }\n }\n\n .sdds-table__searchbar-input {\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n color: var(--sdds-data-table-color);\n z-index: 1;\n width: 100%;\n height: 100%;\n border: none;\n padding: 0 36px 0 16px;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n\n :focus {\n background-color: var(--sdds-data-table-toolbar-searchbar-background);\n }\n }\n\n &:hover {\n background-color: var(--sdds-data-table-toolbar-searchbar-background-hover);\n }\n\n .sdds-table__searchbar-icon {\n z-index: 0;\n position: absolute;\n right: 9px;\n top: 9px;\n width: 20px;\n height: 20px;\n }\n }\n}\n\n:host(.sdds-table--compact) {\n height: 56px;\n}\n","import {\n Component,\n h,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n State,\n Element,\n} from '@stencil/core';\nimport { TablePropsChangedEvent } from '../table/table';\n\nconst relevantTableProps: TablePropsChangedEvent['changed'] = [\n 'compactDesign',\n 'noMinWidth',\n 'verticalDividers',\n];\n\n@Component({\n tag: 'sdds-table-toolbar',\n styleUrl: 'table-toolbar.scss',\n shadow: true,\n})\nexport class TableToolbar {\n /** Adds title to the data-table */\n @Prop({ reflect: true }) tableTitle: string = '';\n\n /** Enables preview of searchbar */\n @Prop({ reflect: true }) enableFiltering: boolean = false;\n\n @State() verticalDividers: boolean = false;\n\n @State() compactDesign: boolean = false;\n\n @State() noMinWidth: boolean = false;\n\n @State() whiteBackground: boolean = false;\n\n @State() tableId: string = '';\n\n @Element() host: HTMLElement;\n\n tableEl: HTMLSddsTableElement;\n\n /** Used for sending users input to main parent <sdds-table> component */\n @Event({\n eventName: 'tableFilteringTerm',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n tableFilteringTerm: EventEmitter<any>;\n\n @Listen('tablePropsChangedEvent', { target: 'body' })\n tablePropsChangedEventListener(event: CustomEvent<TablePropsChangedEvent>) {\n if (this.tableId === event.detail.tableId) {\n event.detail.changed\n .filter((changedProp) => relevantTableProps.includes(changedProp))\n .forEach((changedProp) => {\n if (typeof this[changedProp] === 'undefined') {\n throw new Error(`Table prop is not supported: ${changedProp}`);\n }\n this[changedProp] = event.detail[changedProp];\n });\n }\n }\n\n connectedCallback() {\n this.tableEl = this.host.closest('sdds-table');\n this.tableId = this.tableEl.tableId;\n }\n\n componentWillLoad() {\n relevantTableProps.forEach((tablePropName) => {\n this[tablePropName] = this.tableEl[tablePropName];\n });\n }\n\n searchFunction(event) {\n const searchTerm = event.currentTarget.value.toLowerCase();\n const sddsTableSearchBar = event.currentTarget.parentElement;\n\n this.tableFilteringTerm.emit([this.tableId, searchTerm]);\n\n if (searchTerm.length > 0) {\n sddsTableSearchBar.classList.add('sdds-table__searchbar--active');\n } else {\n sddsTableSearchBar.classList.remove('sdds-table__searchbar--active');\n }\n }\n\n render() {\n return (\n <Host class={this.compactDesign ? 'sdds-table--compact' : ''}>\n <div class=\"sdds-table__upper-bar-flex\">\n <caption class=\"sdds-table__title\">{this.tableTitle}</caption>\n <div class=\"sdds-table__actionbar\">\n {this.enableFiltering && (\n <div class=\"sdds-table__searchbar\">\n <input\n class=\"sdds-table__searchbar-input\"\n type=\"text\"\n onKeyUp={(event) => this.searchFunction(event)}\n />\n <span class=\"sdds-table__searchbar-icon\">\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12.942 1.985c-6.051 0-10.957 4.905-10.957 10.957 0 6.051 4.906 10.957 10.957 10.957 2.666 0 5.109-.952 7.008-2.534l8.332 8.331a1 1 0 1 0 1.414-1.414l-8.331-8.331a10.912 10.912 0 0 0 2.534-7.01c0-6.05-4.905-10.956-10.957-10.956ZM3.985 12.942a8.957 8.957 0 1 1 17.914 0 8.957 8.957 0 0 1-17.914 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n </div>\n )}\n <slot name=\"sdds-table__actionbar\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SddsTable extends Components.SddsTable, HTMLElement {}
4
+ export const SddsTable: {
5
+ prototype: SddsTable;
6
+ new (): SddsTable;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;