@keenthemes/ktui 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ktui.js +2551 -2817
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +136 -40
- package/lib/cjs/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.js +34 -15
- package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-contracts.d.ts +3 -3
- package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-layout-plugin.d.ts +7 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.js +328 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts +2 -2
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-local-provider.js +18 -10
- package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js +40 -25
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-remote-provider.js +3 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-table-renderer.js +14 -6
- package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -1
- package/lib/cjs/components/datatable/datatable.d.ts +9 -0
- package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +200 -61
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/datatable/index.d.ts +1 -1
- package/lib/cjs/components/datatable/index.d.ts.map +1 -1
- package/lib/cjs/components/datatable/types.d.ts +27 -0
- package/lib/cjs/components/datatable/types.d.ts.map +1 -1
- package/lib/cjs/components/dropdown/dropdown.d.ts +2 -2
- package/lib/cjs/components/dropdown/dropdown.d.ts.map +1 -1
- package/lib/cjs/components/dropdown/dropdown.js +68 -31
- package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
- package/lib/cjs/components/input-number/index.d.ts +7 -0
- package/lib/cjs/components/input-number/index.d.ts.map +1 -0
- package/lib/cjs/components/input-number/index.js +10 -0
- package/lib/cjs/components/input-number/index.js.map +1 -0
- package/lib/cjs/components/input-number/input-number.d.ts +40 -0
- package/lib/cjs/components/input-number/input-number.d.ts.map +1 -0
- package/lib/cjs/components/input-number/input-number.js +248 -0
- package/lib/cjs/components/input-number/input-number.js.map +1 -0
- package/lib/cjs/components/input-number/types.d.ts +30 -0
- package/lib/cjs/components/input-number/types.d.ts.map +1 -0
- package/lib/cjs/components/input-number/types.js +7 -0
- package/lib/cjs/components/input-number/types.js.map +1 -0
- package/lib/cjs/components/select/config.d.ts +1 -0
- package/lib/cjs/components/select/config.d.ts.map +1 -1
- package/lib/cjs/components/select/config.js +2 -1
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/select.d.ts +8 -1
- package/lib/cjs/components/select/select.d.ts.map +1 -1
- package/lib/cjs/components/select/select.js +14 -1
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.d.ts.map +1 -1
- package/lib/cjs/components/select/tags.js +10 -0
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/index.d.ts +5 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.js +34 -15
- package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/esm/components/datatable/datatable-contracts.d.ts +3 -3
- package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-layout-plugin.d.ts +7 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.js +324 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.js.map +1 -0
- package/lib/esm/components/datatable/datatable-local-provider.d.ts +2 -2
- package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-local-provider.js +18 -10
- package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -1
- package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-pagination-renderer.js +40 -25
- package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -1
- package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-remote-provider.js +3 -0
- package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -1
- package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-table-renderer.js +14 -6
- package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -1
- package/lib/esm/components/datatable/datatable.d.ts +9 -0
- package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable.js +200 -61
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/datatable/index.d.ts +1 -1
- package/lib/esm/components/datatable/index.d.ts.map +1 -1
- package/lib/esm/components/datatable/types.d.ts +27 -0
- package/lib/esm/components/datatable/types.d.ts.map +1 -1
- package/lib/esm/components/dropdown/dropdown.d.ts +2 -2
- package/lib/esm/components/dropdown/dropdown.d.ts.map +1 -1
- package/lib/esm/components/dropdown/dropdown.js +68 -31
- package/lib/esm/components/dropdown/dropdown.js.map +1 -1
- package/lib/esm/components/input-number/index.d.ts +7 -0
- package/lib/esm/components/input-number/index.d.ts.map +1 -0
- package/lib/esm/components/input-number/index.js +6 -0
- package/lib/esm/components/input-number/index.js.map +1 -0
- package/lib/esm/components/input-number/input-number.d.ts +40 -0
- package/lib/esm/components/input-number/input-number.d.ts.map +1 -0
- package/lib/esm/components/input-number/input-number.js +245 -0
- package/lib/esm/components/input-number/input-number.js.map +1 -0
- package/lib/esm/components/input-number/types.d.ts +30 -0
- package/lib/esm/components/input-number/types.d.ts.map +1 -0
- package/lib/esm/components/input-number/types.js +6 -0
- package/lib/esm/components/input-number/types.js.map +1 -0
- package/lib/esm/components/select/config.d.ts +1 -0
- package/lib/esm/components/select/config.d.ts.map +1 -1
- package/lib/esm/components/select/config.js +2 -1
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/select.d.ts +8 -1
- package/lib/esm/components/select/select.d.ts.map +1 -1
- package/lib/esm/components/select/select.js +14 -1
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.d.ts.map +1 -1
- package/lib/esm/components/select/tags.js +11 -1
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/index.d.ts +5 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +3 -0
- package/lib/esm/index.js.map +1 -1
- package/package.json +5 -11
- package/src/components/datatable/__tests__/locked-layout.test.ts +257 -0
- package/src/components/datatable/__tests__/pagination-reset.test.ts +18 -0
- package/src/components/datatable/datatable-checkbox.ts +35 -27
- package/src/components/datatable/datatable-contracts.ts +3 -3
- package/src/components/datatable/datatable-layout-plugin.ts +449 -0
- package/src/components/datatable/datatable-local-provider.ts +21 -14
- package/src/components/datatable/datatable-pagination-renderer.ts +40 -29
- package/src/components/datatable/datatable-remote-provider.ts +3 -0
- package/src/components/datatable/datatable-table-renderer.ts +40 -32
- package/src/components/datatable/datatable.css +98 -0
- package/src/components/datatable/datatable.ts +223 -86
- package/src/components/datatable/index.ts +5 -0
- package/src/components/datatable/types.ts +33 -0
- package/src/components/dropdown/dropdown.ts +86 -58
- package/src/components/input/input-group.css +14 -1
- package/src/components/input-number/__tests__/input-number.test.ts +278 -0
- package/src/components/input-number/index.ts +11 -0
- package/src/components/input-number/input-number.ts +267 -0
- package/src/components/input-number/types.ts +32 -0
- package/src/components/select/__tests__/ux-behaviors.test.ts +72 -0
- package/src/components/select/config.ts +3 -1
- package/src/components/select/select.css +23 -20
- package/src/components/select/select.ts +15 -1
- package/src/components/select/tags.ts +14 -1
- package/src/index.ts +14 -0
|
@@ -130,7 +130,7 @@ export class KTDataTableDomTableRenderer<
|
|
|
130
130
|
td.innerHTML = value as string;
|
|
131
131
|
|
|
132
132
|
this.applyOriginalTdClass(input, td, rowIndex, colIndex);
|
|
133
|
-
this.applyDataRowAttributes(td, dataRowAttributes, colIndex);
|
|
133
|
+
this.applyDataRowAttributes(td, dataRowAttributes ?? null, colIndex);
|
|
134
134
|
|
|
135
135
|
row.appendChild(td);
|
|
136
136
|
}
|
|
@@ -142,39 +142,47 @@ export class KTDataTableDomTableRenderer<
|
|
|
142
142
|
item: T,
|
|
143
143
|
rowIndex: number,
|
|
144
144
|
): void {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
result instanceof HTMLElement ||
|
|
161
|
-
result instanceof DocumentFragment
|
|
162
|
-
) {
|
|
163
|
-
td.appendChild(result);
|
|
164
|
-
} else if (typeof result === 'string') {
|
|
165
|
-
td.innerHTML = result as string;
|
|
166
|
-
}
|
|
167
|
-
} else {
|
|
168
|
-
td.textContent = item[key] as string;
|
|
169
|
-
}
|
|
145
|
+
const columns = input.config.columns;
|
|
146
|
+
if (!columns) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
Object.keys(columns).forEach((key, colIndex) => {
|
|
151
|
+
const columnDef = columns[key];
|
|
152
|
+
if (!columnDef) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const colKey = key as keyof T;
|
|
156
|
+
|
|
157
|
+
const td = document.createElement('td');
|
|
158
|
+
|
|
159
|
+
this.applyOriginalTdClass(input, td, rowIndex, colIndex);
|
|
170
160
|
|
|
171
|
-
|
|
172
|
-
|
|
161
|
+
if (typeof columnDef.render === 'function') {
|
|
162
|
+
const result = columnDef.render.call(
|
|
163
|
+
input.context,
|
|
164
|
+
item[colKey],
|
|
165
|
+
item,
|
|
166
|
+
input.context,
|
|
167
|
+
);
|
|
168
|
+
if (
|
|
169
|
+
result instanceof HTMLElement ||
|
|
170
|
+
result instanceof DocumentFragment
|
|
171
|
+
) {
|
|
172
|
+
td.appendChild(result);
|
|
173
|
+
} else if (typeof result === 'string') {
|
|
174
|
+
td.innerHTML = result as string;
|
|
173
175
|
}
|
|
176
|
+
} else {
|
|
177
|
+
td.textContent = item[colKey] as string;
|
|
178
|
+
}
|
|
174
179
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
if (typeof columnDef.createdCell === 'function') {
|
|
181
|
+
columnDef.createdCell.call(input.context, td, item[colKey], item, row);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
row.appendChild(td);
|
|
185
|
+
});
|
|
178
186
|
}
|
|
179
187
|
|
|
180
188
|
private applyOriginalTdClass(
|
|
@@ -194,7 +202,7 @@ export class KTDataTableDomTableRenderer<
|
|
|
194
202
|
|
|
195
203
|
private applyDataRowAttributes(
|
|
196
204
|
td: HTMLTableCellElement,
|
|
197
|
-
dataRowAttributes: KTDataTableAttributeInterface,
|
|
205
|
+
dataRowAttributes: KTDataTableAttributeInterface | null,
|
|
198
206
|
colIndex: number,
|
|
199
207
|
): void {
|
|
200
208
|
if (dataRowAttributes && dataRowAttributes[colIndex]) {
|
|
@@ -71,6 +71,104 @@
|
|
|
71
71
|
[data-kt-datatable].loading table {
|
|
72
72
|
opacity: 0.6;
|
|
73
73
|
}
|
|
74
|
+
|
|
75
|
+
/* Locked layout styles */
|
|
76
|
+
[data-kt-datatable] .kt-datatable-locked-layout {
|
|
77
|
+
position: relative;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
[data-kt-datatable]
|
|
81
|
+
.kt-datatable-locked-layout
|
|
82
|
+
[data-kt-datatable-table]
|
|
83
|
+
thead.kt-datatable-locked-header-section {
|
|
84
|
+
/* Sticky thead group — opaque surface, no gap above first body row */
|
|
85
|
+
background-color: color-mix(
|
|
86
|
+
in srgb,
|
|
87
|
+
var(--color-muted, rgb(0, 0, 0)) 40%,
|
|
88
|
+
var(--color-card, var(--color-background, #ffffff))
|
|
89
|
+
) !important;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Sticky columns use border-collapse: separate — per-cell borders replace tr border-b */
|
|
93
|
+
[data-kt-datatable]
|
|
94
|
+
.kt-datatable-locked-layout.kt-datatable-locked-layout-separate
|
|
95
|
+
[data-kt-datatable-table]
|
|
96
|
+
thead
|
|
97
|
+
tr {
|
|
98
|
+
@apply border-b-0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
[data-kt-datatable]
|
|
102
|
+
.kt-datatable-locked-layout.kt-datatable-locked-layout-separate
|
|
103
|
+
[data-kt-datatable-table]
|
|
104
|
+
thead
|
|
105
|
+
th {
|
|
106
|
+
@apply border-b border-border;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
[data-kt-datatable]
|
|
110
|
+
.kt-datatable-locked-layout.kt-datatable-locked-layout-separate
|
|
111
|
+
[data-kt-datatable-table]
|
|
112
|
+
tbody
|
|
113
|
+
tr {
|
|
114
|
+
@apply border-b-0;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
[data-kt-datatable]
|
|
118
|
+
.kt-datatable-locked-layout.kt-datatable-locked-layout-separate
|
|
119
|
+
[data-kt-datatable-table]
|
|
120
|
+
tbody
|
|
121
|
+
td {
|
|
122
|
+
@apply border-b border-border;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-kt-datatable]
|
|
126
|
+
.kt-datatable-locked-layout.kt-datatable-locked-layout-separate
|
|
127
|
+
[data-kt-datatable-table]
|
|
128
|
+
tbody
|
|
129
|
+
tr:last-child
|
|
130
|
+
td {
|
|
131
|
+
@apply border-b-0;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[data-kt-datatable] .kt-datatable-locked-cell {
|
|
135
|
+
overflow: hidden;
|
|
136
|
+
isolation: isolate;
|
|
137
|
+
/* Opaque surface so horizontally scrolling cells do not show through */
|
|
138
|
+
background-color: var(--color-card, var(--color-background, #ffffff)) !important;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
[data-kt-datatable] [data-kt-datatable-table] thead th.kt-datatable-locked-cell,
|
|
142
|
+
[data-kt-datatable] .kt-datatable-locked-header {
|
|
143
|
+
/* Match kt-table thead bg-muted/40 without transparency */
|
|
144
|
+
background-color: color-mix(
|
|
145
|
+
in srgb,
|
|
146
|
+
var(--color-muted, rgb(0, 0, 0)) 40%,
|
|
147
|
+
var(--color-card, var(--color-background, #ffffff))
|
|
148
|
+
) !important;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
[data-kt-datatable] .kt-datatable-locked-left {
|
|
152
|
+
box-shadow: inset -1px 0 0 0 var(--color-border, rgba(0, 0, 0, 0.08));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
[data-kt-datatable] .kt-datatable-locked-right {
|
|
156
|
+
box-shadow: inset 1px 0 0 0 var(--color-border, rgba(0, 0, 0, 0.08));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Keep row hover/checked visual states on sticky body cells */
|
|
160
|
+
[data-kt-datatable] [data-kt-datatable-table] tbody tr:hover > .kt-datatable-locked-cell {
|
|
161
|
+
/* Match kt-table row hover bg-muted/50 without transparency */
|
|
162
|
+
background-color: color-mix(
|
|
163
|
+
in srgb,
|
|
164
|
+
var(--color-muted, rgb(0, 0, 0)) 50%,
|
|
165
|
+
var(--color-card, var(--color-background, #ffffff))
|
|
166
|
+
) !important;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
[data-kt-datatable] [data-kt-datatable-table] tbody tr.checked > .kt-datatable-locked-cell {
|
|
170
|
+
background-color: var(--color-muted, rgb(0, 0, 0)) !important;
|
|
171
|
+
}
|
|
74
172
|
}
|
|
75
173
|
|
|
76
174
|
@custom-variant kt-datatable-loading {
|