@design.estate/dees-catalog 3.61.2 → 3.63.0
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_bundle/bundle.js +677 -128
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-table/data.d.ts +8 -2
- package/dist_ts_web/elements/00group-dataview/dees-table/data.js +40 -22
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.d.ts +110 -6
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.demo.js +39 -1
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +629 -114
- package/dist_ts_web/elements/00group-dataview/dees-table/styles.js +72 -18
- package/dist_ts_web/elements/00group-dataview/dees-table/types.d.ts +8 -0
- package/dist_watch/bundle.js +675 -126
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-dataview/dees-table/data.ts +33 -17
- package/ts_web/elements/00group-dataview/dees-table/dees-table.demo.ts +38 -0
- package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +656 -92
- package/ts_web/elements/00group-dataview/dees-table/styles.ts +71 -17
- package/ts_web/elements/00group-dataview/dees-table/types.ts +9 -0
|
@@ -113,29 +113,48 @@ export const tableStyles = [
|
|
|
113
113
|
border-bottom-width: 0px;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
/* Default mode (Mode B, page sticky): horizontal scroll lives on
|
|
117
|
+
.tableScroll (so wide tables don't get clipped by an ancestor
|
|
118
|
+
overflow:hidden such as dees-tile). Vertical sticky is handled by
|
|
119
|
+
a JS-managed floating header (.floatingHeader, position:fixed),
|
|
120
|
+
which is unaffected by ancestor overflow. */
|
|
116
121
|
.tableScroll {
|
|
117
|
-
|
|
122
|
+
position: relative;
|
|
118
123
|
overflow-x: auto;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
overflow-y: visible;
|
|
125
|
+
scrollbar-gutter: stable;
|
|
126
|
+
}
|
|
127
|
+
/* Mode A, internal scroll: opt-in via fixed-height attribute.
|
|
128
|
+
The table scrolls inside its own box and the header sticks via plain CSS sticky. */
|
|
129
|
+
:host([fixed-height]) .tableScroll {
|
|
130
|
+
max-height: var(--table-max-height, 360px);
|
|
131
|
+
overflow: auto;
|
|
122
132
|
scrollbar-gutter: stable both-edges;
|
|
123
133
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
-ms-overflow-style: none; /* IE/Edge */
|
|
127
|
-
scrollbar-width: none; /* Firefox (hides both axes) */
|
|
134
|
+
:host([fixed-height]) .tableScroll::-webkit-scrollbar:horizontal {
|
|
135
|
+
height: 0px;
|
|
128
136
|
}
|
|
129
|
-
|
|
130
|
-
|
|
137
|
+
|
|
138
|
+
/* Floating header overlay (Mode B). Position is managed by JS so it
|
|
139
|
+
escapes any ancestor overflow:hidden (position:fixed is not clipped
|
|
140
|
+
by overflow ancestors). */
|
|
141
|
+
.floatingHeader {
|
|
142
|
+
position: fixed;
|
|
143
|
+
top: 0;
|
|
144
|
+
left: 0;
|
|
145
|
+
z-index: 100;
|
|
146
|
+
visibility: hidden;
|
|
147
|
+
overflow: hidden;
|
|
148
|
+
pointer-events: none;
|
|
131
149
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
height: 0px;
|
|
150
|
+
.floatingHeader.active {
|
|
151
|
+
visibility: visible;
|
|
135
152
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
153
|
+
.floatingHeader table {
|
|
154
|
+
margin: 0;
|
|
155
|
+
}
|
|
156
|
+
.floatingHeader th {
|
|
157
|
+
pointer-events: auto;
|
|
139
158
|
}
|
|
140
159
|
|
|
141
160
|
table {
|
|
@@ -158,11 +177,20 @@ export const tableStyles = [
|
|
|
158
177
|
background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};
|
|
159
178
|
border-bottom: 1px solid var(--dees-color-border-strong);
|
|
160
179
|
}
|
|
161
|
-
|
|
180
|
+
/* th needs its own background so sticky cells paint over scrolled rows
|
|
181
|
+
(browsers don't paint the <thead> box behind a sticky <th>). */
|
|
182
|
+
th {
|
|
183
|
+
background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};
|
|
184
|
+
}
|
|
185
|
+
/* Mode A — internal scroll sticky */
|
|
186
|
+
:host([fixed-height]) thead th {
|
|
162
187
|
position: sticky;
|
|
163
188
|
top: 0;
|
|
164
189
|
z-index: 2;
|
|
165
190
|
}
|
|
191
|
+
:host([fixed-height]) thead tr.filtersRow th {
|
|
192
|
+
top: 36px; /* matches th { height: 36px } below */
|
|
193
|
+
}
|
|
166
194
|
|
|
167
195
|
tbody tr {
|
|
168
196
|
transition: background-color 0.15s ease;
|
|
@@ -275,6 +303,32 @@ export const tableStyles = [
|
|
|
275
303
|
color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};
|
|
276
304
|
letter-spacing: -0.01em;
|
|
277
305
|
}
|
|
306
|
+
|
|
307
|
+
th[role='columnheader']:hover {
|
|
308
|
+
color: var(--dees-color-text-primary);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
th .sortArrow {
|
|
312
|
+
display: inline-block;
|
|
313
|
+
margin-left: 6px;
|
|
314
|
+
font-size: 10px;
|
|
315
|
+
line-height: 1;
|
|
316
|
+
opacity: 0.7;
|
|
317
|
+
vertical-align: middle;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
th .sortBadge {
|
|
321
|
+
display: inline-block;
|
|
322
|
+
margin-left: 3px;
|
|
323
|
+
padding: 1px 5px;
|
|
324
|
+
font-size: 10px;
|
|
325
|
+
font-weight: 600;
|
|
326
|
+
line-height: 1;
|
|
327
|
+
color: ${cssManager.bdTheme('hsl(222.2 47.4% 30%)', 'hsl(217.2 91.2% 75%)')};
|
|
328
|
+
background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.12)', 'hsl(217.2 91.2% 59.8% / 0.18)')};
|
|
329
|
+
border-radius: 999px;
|
|
330
|
+
vertical-align: middle;
|
|
331
|
+
}
|
|
278
332
|
|
|
279
333
|
:host([show-vertical-lines]) th {
|
|
280
334
|
border-right: 1px solid var(--dees-color-border-default);
|
|
@@ -436,4 +490,4 @@ export const tableStyles = [
|
|
|
436
490
|
}
|
|
437
491
|
`,
|
|
438
492
|
];
|
|
439
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZGF0YXZpZXcvZGVlcy10YWJsZS9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQjtJQUN0QyxrQkFBa0I7SUFDbEIsVUFBVSxDQUFDLGFBQWE7SUFDeEIsR0FBRyxDQUFBOzs7Ozs7Ozs7dUJBU2tCLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlDeEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkE0SHBFLFVBQVUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsc0JBQXNCLENBQUM7Ozs7c0JBSS9ELFVBQVUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDOzs7Ozs7c0JBTXhELFVBQVUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkF5Q3hELFVBQVUsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUUsK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztzQkFlcEYsVUFBVSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NCQW1EcEYsVUFBVSxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSwrQkFBK0IsQ0FBQzs7OztzQkFJbkYsVUFBVSxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O2lCQVN2RixVQUFVLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBd0JwRSxVQUFVLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDO3NCQUM3RCxVQUFVLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBeURwRixVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozt3QkFVbEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQzs7O2dDQUc5RCxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7OztzQkFjNUYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBZ0J6RCxVQUFVLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLHNCQUFzQixDQUFDOzs7Ozs7c0JBTS9ELFVBQVUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7aUJBQ2hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQzs7OztzQkFJOUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQW9DaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7c0JBUS9ELFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7aUJBQzdELFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQzs7Ozs7OztHQU9qRTtDQUNGLENBQUMifQ==
|
|
@@ -26,4 +26,12 @@ export interface Column<T = any> {
|
|
|
26
26
|
filterable?: boolean;
|
|
27
27
|
hidden?: boolean;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* One entry in a multi-column sort cascade. Order in the array reflects priority:
|
|
31
|
+
* index 0 is the primary sort key, index 1 the secondary tiebreaker, and so on.
|
|
32
|
+
*/
|
|
33
|
+
export interface ISortDescriptor {
|
|
34
|
+
key: string;
|
|
35
|
+
dir: 'asc' | 'desc';
|
|
36
|
+
}
|
|
29
37
|
export type TDisplayFunction<T = any> = (itemArg: T) => Record<string, any>;
|