phx-react 1.3.1833 → 1.3.1835
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/cjs/components/TableSchedule/PHXScheduleTable.d.ts +11 -0
- package/dist/cjs/components/TableSchedule/PHXScheduleTable.js +45 -0
- package/dist/cjs/components/TableSchedule/PHXScheduleTable.js.map +1 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableBody.d.ts +16 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableBody.js +148 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableBody.js.map +1 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableHead.d.ts +22 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableHead.js +49 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableHead.js.map +1 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableLegend.d.ts +13 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableLegend.js +26 -0
- package/dist/cjs/components/TableSchedule/components/PHXScheduleTableLegend.js.map +1 -0
- package/dist/cjs/components/TableSchedule/components/useStickyShadow.d.ts +15 -0
- package/dist/cjs/components/TableSchedule/components/useStickyShadow.js +37 -0
- package/dist/cjs/components/TableSchedule/components/useStickyShadow.js.map +1 -0
- package/dist/cjs/components/TableSchedule/constants.d.ts +49 -0
- package/dist/cjs/components/TableSchedule/constants.js +85 -0
- package/dist/cjs/components/TableSchedule/constants.js.map +1 -0
- package/dist/cjs/components/TableSchedule/index.d.ts +1 -0
- package/dist/cjs/components/TableSchedule/index.js +5 -0
- package/dist/cjs/components/TableSchedule/index.js.map +1 -0
- package/dist/cjs/components/TableSchedule/renderers.d.ts +39 -0
- package/dist/cjs/components/TableSchedule/renderers.js +138 -0
- package/dist/cjs/components/TableSchedule/renderers.js.map +1 -0
- package/dist/cjs/components/TableSchedule/types.d.ts +112 -0
- package/dist/cjs/components/TableSchedule/types.js +4 -0
- package/dist/cjs/components/TableSchedule/types.js.map +1 -0
- package/dist/cjs/components/TableSchedule/utils.d.ts +160 -0
- package/dist/cjs/components/TableSchedule/utils.js +283 -0
- package/dist/cjs/components/TableSchedule/utils.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/TableSchedule/PHXScheduleTable.d.ts +11 -0
- package/dist/esm/components/TableSchedule/PHXScheduleTable.js +40 -0
- package/dist/esm/components/TableSchedule/PHXScheduleTable.js.map +1 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableBody.d.ts +16 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableBody.js +143 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableBody.js.map +1 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableHead.d.ts +22 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableHead.js +45 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableHead.js.map +1 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableLegend.d.ts +13 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableLegend.js +21 -0
- package/dist/esm/components/TableSchedule/components/PHXScheduleTableLegend.js.map +1 -0
- package/dist/esm/components/TableSchedule/components/useStickyShadow.d.ts +15 -0
- package/dist/esm/components/TableSchedule/components/useStickyShadow.js +33 -0
- package/dist/esm/components/TableSchedule/components/useStickyShadow.js.map +1 -0
- package/dist/esm/components/TableSchedule/constants.d.ts +49 -0
- package/dist/esm/components/TableSchedule/constants.js +81 -0
- package/dist/esm/components/TableSchedule/constants.js.map +1 -0
- package/dist/esm/components/TableSchedule/index.d.ts +1 -0
- package/dist/esm/components/TableSchedule/index.js +2 -0
- package/dist/esm/components/TableSchedule/index.js.map +1 -0
- package/dist/esm/components/TableSchedule/renderers.d.ts +39 -0
- package/dist/esm/components/TableSchedule/renderers.js +129 -0
- package/dist/esm/components/TableSchedule/renderers.js.map +1 -0
- package/dist/esm/components/TableSchedule/types.d.ts +112 -0
- package/dist/esm/components/TableSchedule/types.js +3 -0
- package/dist/esm/components/TableSchedule/types.js.map +1 -0
- package/dist/esm/components/TableSchedule/utils.d.ts +160 -0
- package/dist/esm/components/TableSchedule/utils.js +264 -0
- package/dist/esm/components/TableSchedule/utils.js.map +1 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getDataCellClassName = exports.buildDataCellStyle = exports.getStaticCellClassName = exports.getClickableCellClassName = exports.buildRowHeaderCellStyle = exports.getRowHeaderClassName = exports.buildColumnHeaderCellStyle = exports.buildHeaderGroupCellStyle = exports.buildStickyHeaderCellStyle = exports.getStickyHeaderClassName = exports.getCellSpan = exports.getStickyLeft = exports.buildStickyColumnWidths = exports.getRowHeaders = exports.getColumnAlign = exports.buildSkipMap = void 0;
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
/**
|
|
7
|
+
* Builds a lookup of covered cell coordinates created by rowSpan and colSpan values.
|
|
8
|
+
*
|
|
9
|
+
* @param {PHXScheduleTableProps['rows']} rows The schedule rows to analyze.
|
|
10
|
+
* @param {GridColumn[]} columns The column definitions in render order.
|
|
11
|
+
* @returns {Set<string>} A set of `rowIndex,columnKey` pairs that should be skipped during rendering.
|
|
12
|
+
*/
|
|
13
|
+
const buildSkipMap = (rows, columns) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const skipped = new Set();
|
|
16
|
+
const occupancy = rows.map(() => new Array(columns.length).fill(false));
|
|
17
|
+
for (let ri = 0; ri < rows.length; ri++) {
|
|
18
|
+
let ci = 0;
|
|
19
|
+
for (const col of columns) {
|
|
20
|
+
while (ci < columns.length && occupancy[ri][ci])
|
|
21
|
+
ci++;
|
|
22
|
+
if (ci >= columns.length) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
const cell = rows[ri].cells[col.key];
|
|
26
|
+
const cs = (_a = cell === null || cell === void 0 ? void 0 : cell.colSpan) !== null && _a !== void 0 ? _a : 1;
|
|
27
|
+
const rs = (_b = cell === null || cell === void 0 ? void 0 : cell.rowSpan) !== null && _b !== void 0 ? _b : 1;
|
|
28
|
+
if (cs > 1 || rs > 1) {
|
|
29
|
+
for (let dr = 0; dr < rs; dr++) {
|
|
30
|
+
for (let dc = 0; dc < cs; dc++) {
|
|
31
|
+
if (dr === 0 && dc === 0)
|
|
32
|
+
continue;
|
|
33
|
+
const tr = ri + dr;
|
|
34
|
+
const tc = ci + dc;
|
|
35
|
+
if (tr < rows.length && tc < columns.length) {
|
|
36
|
+
occupancy[tr][tc] = true;
|
|
37
|
+
skipped.add(`${tr},${columns[tc].key}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ci++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return skipped;
|
|
46
|
+
};
|
|
47
|
+
exports.buildSkipMap = buildSkipMap;
|
|
48
|
+
/**
|
|
49
|
+
* Resolves the effective alignment for a column, defaulting to left alignment.
|
|
50
|
+
*
|
|
51
|
+
* @param {GridColumnAlign} [align] The optional alignment configured for the column.
|
|
52
|
+
* @returns {GridColumnAlign} The resolved column alignment.
|
|
53
|
+
*/
|
|
54
|
+
const getColumnAlign = (align) => align !== null && align !== void 0 ? align : 'left';
|
|
55
|
+
exports.getColumnAlign = getColumnAlign;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the row-header cells that should be rendered for a schedule row.
|
|
58
|
+
*
|
|
59
|
+
* @param {ScheduleTableRow} row The schedule row to inspect.
|
|
60
|
+
* @param {number} stickyColumnWidth The fallback width for single rowHeader entries.
|
|
61
|
+
* @returns {Array<GridRowHeader | null>} The normalized row-header list for the row.
|
|
62
|
+
*/
|
|
63
|
+
const getRowHeaders = (row, stickyColumnWidth) => {
|
|
64
|
+
var _a;
|
|
65
|
+
return row.rowHeaders && row.rowHeaders.length > 0
|
|
66
|
+
? row.rowHeaders
|
|
67
|
+
: row.rowHeader
|
|
68
|
+
? [{ ...row.rowHeader, width: (_a = row.rowHeader.width) !== null && _a !== void 0 ? _a : stickyColumnWidth }]
|
|
69
|
+
: [];
|
|
70
|
+
};
|
|
71
|
+
exports.getRowHeaders = getRowHeaders;
|
|
72
|
+
/**
|
|
73
|
+
* Builds the sticky-column width list used for row headers.
|
|
74
|
+
*
|
|
75
|
+
* @param {ScheduleTableRow[]} rows The table rows used to infer sticky header widths.
|
|
76
|
+
* @param {number} stickyColumnWidth The default width used when no explicit width exists.
|
|
77
|
+
* @param {number[]} [stickyColumnWidths] Optional explicit sticky widths from the caller.
|
|
78
|
+
* @returns {number[]} The resolved sticky-column widths.
|
|
79
|
+
*/
|
|
80
|
+
const buildStickyColumnWidths = (rows, stickyColumnWidth, stickyColumnWidths) => {
|
|
81
|
+
if (stickyColumnWidths && stickyColumnWidths.length > 0) {
|
|
82
|
+
return stickyColumnWidths;
|
|
83
|
+
}
|
|
84
|
+
const stickyHeaderCount = rows.length
|
|
85
|
+
? Math.max(...rows.map((row) => (0, exports.getRowHeaders)(row, stickyColumnWidth).length))
|
|
86
|
+
: 1;
|
|
87
|
+
return Array.from({ length: stickyHeaderCount }).map((_, index) => {
|
|
88
|
+
const widths = rows.map((row) => { var _a; return (_a = (0, exports.getRowHeaders)(row, stickyColumnWidth)[index]) === null || _a === void 0 ? void 0 : _a.width; }).filter(Boolean);
|
|
89
|
+
return widths.length > 0 ? Math.max(...widths) : stickyColumnWidth;
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
exports.buildStickyColumnWidths = buildStickyColumnWidths;
|
|
93
|
+
/**
|
|
94
|
+
* Calculates the left offset of a sticky column from the widths before it.
|
|
95
|
+
*
|
|
96
|
+
* @param {number[]} stickyWidths The ordered list of sticky column widths.
|
|
97
|
+
* @param {number} index The sticky column index to position.
|
|
98
|
+
* @returns {number} The computed left offset in pixels.
|
|
99
|
+
*/
|
|
100
|
+
const getStickyLeft = (stickyWidths, index) => stickyWidths.slice(0, index).reduce((sum, width) => sum + width, 0);
|
|
101
|
+
exports.getStickyLeft = getStickyLeft;
|
|
102
|
+
/**
|
|
103
|
+
* Normalizes a cell's row and column spans.
|
|
104
|
+
*
|
|
105
|
+
* @param {GridCellData} cell The cell data to inspect.
|
|
106
|
+
* @returns {{ colSpan: number; rowSpan: number }} The resolved span values with defaults applied.
|
|
107
|
+
*/
|
|
108
|
+
const getCellSpan = (cell) => {
|
|
109
|
+
var _a, _b;
|
|
110
|
+
return ({
|
|
111
|
+
colSpan: (_a = cell.colSpan) !== null && _a !== void 0 ? _a : 1,
|
|
112
|
+
rowSpan: (_b = cell.rowSpan) !== null && _b !== void 0 ? _b : 1,
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
exports.getCellSpan = getCellSpan;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the shadow class for the last visible sticky column.
|
|
118
|
+
*
|
|
119
|
+
* @param {number} index The sticky column index being rendered.
|
|
120
|
+
* @param {number} stickyHeaderCount The total number of sticky columns.
|
|
121
|
+
* @param {boolean} showStickyShadow Whether the sticky shadow should be visible.
|
|
122
|
+
* @returns {string} The shadow class name, or an empty string when no shadow is needed.
|
|
123
|
+
*/
|
|
124
|
+
const getStickyShadowClassName = (index, stickyHeaderCount, showStickyShadow) => index === stickyHeaderCount - 1 && showStickyShadow ? constants_1.STICKY_SHADOW_CLASSNAME : '';
|
|
125
|
+
/**
|
|
126
|
+
* Composes the class name for a sticky header placeholder cell.
|
|
127
|
+
*
|
|
128
|
+
* @param {number} index The sticky column index being rendered.
|
|
129
|
+
* @param {number} stickyHeaderCount The total number of sticky columns.
|
|
130
|
+
* @param {boolean} showStickyShadow Whether the sticky shadow should be visible.
|
|
131
|
+
* @returns {string} The class name applied to the sticky header cell.
|
|
132
|
+
*/
|
|
133
|
+
const getStickyHeaderClassName = (index, stickyHeaderCount, showStickyShadow) => composeClassNames(constants_1.HEADER_TH_CLASSNAME, getStickyShadowClassName(index, stickyHeaderCount, showStickyShadow));
|
|
134
|
+
exports.getStickyHeaderClassName = getStickyHeaderClassName;
|
|
135
|
+
/**
|
|
136
|
+
* Builds the inline style for a sticky header placeholder cell.
|
|
137
|
+
*
|
|
138
|
+
* @param {{
|
|
139
|
+
* index: number;
|
|
140
|
+
* stickyWidths: number[];
|
|
141
|
+
* zIndexBase: number;
|
|
142
|
+
* }} {
|
|
143
|
+
* index,
|
|
144
|
+
* stickyWidths,
|
|
145
|
+
* zIndexBase,
|
|
146
|
+
* } The sticky header positioning inputs.
|
|
147
|
+
* @returns {CSSProperties} The computed sticky header styles.
|
|
148
|
+
*/
|
|
149
|
+
const buildStickyHeaderCellStyle = ({ index, stickyWidths, zIndexBase, }) => ({
|
|
150
|
+
...constants_1.stickyBase,
|
|
151
|
+
...constants_1.thBase,
|
|
152
|
+
zIndex: zIndexBase + (stickyWidths.length - index),
|
|
153
|
+
left: (0, exports.getStickyLeft)(stickyWidths, index),
|
|
154
|
+
width: stickyWidths[index],
|
|
155
|
+
minWidth: stickyWidths[index],
|
|
156
|
+
textAlign: 'left',
|
|
157
|
+
});
|
|
158
|
+
exports.buildStickyHeaderCellStyle = buildStickyHeaderCellStyle;
|
|
159
|
+
/**
|
|
160
|
+
* Builds the shared style for grouped header cells.
|
|
161
|
+
*
|
|
162
|
+
* @returns {CSSProperties} The computed grouped-header styles.
|
|
163
|
+
*/
|
|
164
|
+
const buildHeaderGroupCellStyle = () => ({
|
|
165
|
+
...constants_1.thBase,
|
|
166
|
+
borderLeft: constants_1.BORDER,
|
|
167
|
+
});
|
|
168
|
+
exports.buildHeaderGroupCellStyle = buildHeaderGroupCellStyle;
|
|
169
|
+
/**
|
|
170
|
+
* Builds the inline style for a regular column header cell.
|
|
171
|
+
*
|
|
172
|
+
* @param {GridColumnAlign} align The text alignment for the column header.
|
|
173
|
+
* @param {number} [minWidth] The optional minimum width of the column.
|
|
174
|
+
* @returns {CSSProperties} The computed column-header styles.
|
|
175
|
+
*/
|
|
176
|
+
const buildColumnHeaderCellStyle = (align, minWidth) => ({
|
|
177
|
+
...constants_1.thBase,
|
|
178
|
+
textAlign: align,
|
|
179
|
+
minWidth,
|
|
180
|
+
borderLeft: constants_1.BORDER,
|
|
181
|
+
});
|
|
182
|
+
exports.buildColumnHeaderCellStyle = buildColumnHeaderCellStyle;
|
|
183
|
+
/**
|
|
184
|
+
* Composes the class name for a sticky row-header cell.
|
|
185
|
+
*
|
|
186
|
+
* @param {string | undefined} className An optional custom class from the row header definition.
|
|
187
|
+
* @param {number} headerIndex The sticky header index being rendered.
|
|
188
|
+
* @param {number} stickyHeaderCount The total number of sticky columns.
|
|
189
|
+
* @param {boolean} showStickyShadow Whether the sticky shadow should be visible.
|
|
190
|
+
* @returns {string | undefined} The resolved class name for the row-header cell.
|
|
191
|
+
*/
|
|
192
|
+
const getRowHeaderClassName = (className, headerIndex, stickyHeaderCount, showStickyShadow) => composeClassNames(getStickyShadowClassName(headerIndex, stickyHeaderCount, showStickyShadow), className) || undefined;
|
|
193
|
+
exports.getRowHeaderClassName = getRowHeaderClassName;
|
|
194
|
+
/**
|
|
195
|
+
* Builds the inline style for a sticky row-header cell.
|
|
196
|
+
*
|
|
197
|
+
* @param {RowHeaderCellStyleParams} params - The row-header positioning and style inputs.
|
|
198
|
+
* @param {number} params.headerIndex - The zero-based index of this sticky header column.
|
|
199
|
+
* @param {number[]} params.stickyWidths - The ordered list of sticky column widths used to compute the left offset.
|
|
200
|
+
* @param {number} params.width - The explicit width applied to this header cell.
|
|
201
|
+
* @param {boolean} params.isLast - Whether this cell belongs to the last rendered row.
|
|
202
|
+
* @param {CSSProperties} [params.customStyle] - Optional style overrides merged on top of the base styles.
|
|
203
|
+
* @returns {CSSProperties} The computed sticky row-header styles.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* buildRowHeaderCellStyle({ headerIndex: 0, stickyWidths: [130], width: 130, isLast: false })
|
|
207
|
+
* // => { position: 'sticky', left: 0, width: 130, zIndex: 3, ... }
|
|
208
|
+
*/
|
|
209
|
+
const buildRowHeaderCellStyle = ({ headerIndex, stickyWidths, width, isLast, customStyle, }) => ({
|
|
210
|
+
...constants_1.stickyBase,
|
|
211
|
+
zIndex: 2 + (stickyWidths.length - headerIndex),
|
|
212
|
+
left: (0, exports.getStickyLeft)(stickyWidths, headerIndex),
|
|
213
|
+
width,
|
|
214
|
+
minWidth: width,
|
|
215
|
+
padding: '8px 12px',
|
|
216
|
+
borderBottom: !isLast ? constants_1.BORDER : 'none',
|
|
217
|
+
verticalAlign: 'middle',
|
|
218
|
+
...customStyle,
|
|
219
|
+
});
|
|
220
|
+
exports.buildRowHeaderCellStyle = buildRowHeaderCellStyle;
|
|
221
|
+
/**
|
|
222
|
+
* Returns the padding class name for a given cell layout mode.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* getCellPaddingClassName('boxed') // => 'px-2 py-1'
|
|
226
|
+
* getCellPaddingClassName('plain') // => 'px-3 py-2'
|
|
227
|
+
*
|
|
228
|
+
* @param {GridCellLayout} layout The cell layout mode.
|
|
229
|
+
* @returns {string} The Tailwind padding class for the layout.
|
|
230
|
+
*/
|
|
231
|
+
const getCellPaddingClassName = (layout) => layout === 'boxed' ? constants_1.BOXED_CELL_PADDING_CLASSNAME : constants_1.PLAIN_CELL_PADDING_CLASSNAME;
|
|
232
|
+
/**
|
|
233
|
+
* Joins non-empty class name segments into a single space-separated string.
|
|
234
|
+
*
|
|
235
|
+
* @param {(string | undefined | false)[]} parts The class name segments to join.
|
|
236
|
+
* @returns {string} The composed class name string.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* composeClassNames('foo', undefined, 'bar') // 'foo bar'
|
|
240
|
+
*/
|
|
241
|
+
const composeClassNames = (...parts) => parts.filter(Boolean).join(' ');
|
|
242
|
+
/**
|
|
243
|
+
* Composes the class name for an interactive cell wrapper.
|
|
244
|
+
*
|
|
245
|
+
* @param {GridCellLayout} layout The layout mode applied to the cell.
|
|
246
|
+
* @param {string} alignClassName The wrapper alignment class.
|
|
247
|
+
* @param {boolean} [useButtonStyles=false] Whether button-specific classes should be used.
|
|
248
|
+
* @returns {string} The class name for the interactive cell wrapper.
|
|
249
|
+
*/
|
|
250
|
+
const getClickableCellClassName = (layout, alignClassName, useButtonStyles = false) => {
|
|
251
|
+
return composeClassNames(useButtonStyles ? constants_1.BUTTON_BASE_CLASSNAME : constants_1.CELL_CONTENT_BASE_CLASSNAME, getCellPaddingClassName(layout), alignClassName, !useButtonStyles && 'cursor-pointer');
|
|
252
|
+
};
|
|
253
|
+
exports.getClickableCellClassName = getClickableCellClassName;
|
|
254
|
+
/**
|
|
255
|
+
* Composes the class name for a non-clickable cell wrapper.
|
|
256
|
+
*
|
|
257
|
+
* @param {GridCellLayout} layout The layout mode applied to the cell.
|
|
258
|
+
* @param {string} alignClassName The wrapper alignment class.
|
|
259
|
+
* @returns {string} The class name for the static cell wrapper.
|
|
260
|
+
*/
|
|
261
|
+
const getStaticCellClassName = (layout, alignClassName) => composeClassNames(constants_1.CELL_CONTENT_BASE_CLASSNAME, getCellPaddingClassName(layout), alignClassName);
|
|
262
|
+
exports.getStaticCellClassName = getStaticCellClassName;
|
|
263
|
+
/**
|
|
264
|
+
* Builds the inline style for a body data cell.
|
|
265
|
+
*
|
|
266
|
+
* @param {boolean} isLast Whether the cell belongs to the last rendered row.
|
|
267
|
+
* @param {CSSProperties} [cellStyle] Optional custom style overrides from the cell data.
|
|
268
|
+
* @returns {CSSProperties} The computed data-cell styles.
|
|
269
|
+
*/
|
|
270
|
+
const buildDataCellStyle = (isLast, cellStyle) => ({
|
|
271
|
+
borderBottom: !isLast ? constants_1.BORDER : 'none',
|
|
272
|
+
...cellStyle,
|
|
273
|
+
});
|
|
274
|
+
exports.buildDataCellStyle = buildDataCellStyle;
|
|
275
|
+
/**
|
|
276
|
+
* Composes the class name for a body data cell.
|
|
277
|
+
*
|
|
278
|
+
* @param {string} [cellClassName] An optional custom class from the cell data.
|
|
279
|
+
* @returns {string} The class name applied to the data cell.
|
|
280
|
+
*/
|
|
281
|
+
const getDataCellClassName = (cellClassName) => composeClassNames(constants_1.DATA_CELL_BASE_CLASSNAME, cellClassName);
|
|
282
|
+
exports.getDataCellClassName = getDataCellClassName;
|
|
283
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/TableSchedule/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -135,4 +135,5 @@ import { PHXFormatDateTime } from './helpers/formatDate';
|
|
|
135
135
|
import PHXTableGroup from './components/TableGroup/TableGroup';
|
|
136
136
|
import { EMAIL_REGEX, PHONE_NUMBER_REGEX } from './utils/constants';
|
|
137
137
|
import { PHXIframe } from './components/Iframe';
|
|
138
|
-
|
|
138
|
+
import { PHXScheduleTable } from './components/TableSchedule';
|
|
139
|
+
export { PHXBottomAction, ModalCreateBorrowTicket as PHXLibraryModalCreateBorrowTicket, ModalReturnBook as PHXLibraryModalReturnBook, useFixedAction, PHXGrpcQueryAllSchool, PHXTextEditorV2, useMainwrapV4EventBus, PHXGetSettingSite, PHXSetSettingSite, PHXMainWrapV4, PHXTargetSelect, PHXTextEditorView, PHXStoreProduct, PHXButton, PHXBreadcrumb, PHXCard, PHXSpinner, PHXFormWrap, PHXHeaderBar, PHXTableV3, PHXInput, PHXSelect, PHXSelectBox, PHXRadio, PHXCheckbox, PHXCheckboxGroup, PHXContainer, PHXFormStep, PHXNotifications, PHXStep, PHXSkeleton, PHXFuncGetLoggedInfo, PHXClientQueryV3, PHXClientMutationV3, PHXClientMutationDataCenterV3, PHXClientQueryDataCenterV3, PHXClientMutationDevPortalV3, PHXClientQueryDevPortalV3, PHXTextarea, PHXModal, PHXTabs, PHXChoiceList, PHXDescriptionLists, PHXBadge, PHXLoginV3, PHXLoginSsoV3, PHXBanner, PHXButtonGroup, PHXCombobox, PHXFormLayout, PHXHorizontalStack, PHXUploadFile, PHXSearchResultListV3, PHXDatePicker, PHXEmptyRecord, PHXEmptySearch, PHXTimePicker, PHXDropdown, PHXUploadAvatar, PHXDateRangePicker, PHXUseDebounce, PHXResourceList, PHXFetchAPI, PieChart, BarChart, DonutChart, PHXTooltip, PHXGetActiveYearAndNextYearV3, PHXGetPrevCurrentNextYearV3, PHXGetCurrentYearWithTermHocVuV3, PHXGetCurrentYearWithTermV3, PHXFormTuitionV3, PHXMainWrapV3, PHXPagePermissionV3, PHXGetEnvPublicV3, PHXFuncGetActionPermissionV3, PHXUseQueryDataV3, PHXCalendar, PHXLoadingProvider, useLoading, PHXLoadingIndicator, PHXLink, PHXSwitchView, PHXTableVertical, PHXEmptyStateAction, PHXActivityHistory, PHXBannerWithCard, PHXUrlApply, PHXGetSelectedFilterValueFromUrl, PHXCardDetail, PHXGridLayout, PHXColumn, PHXRow, PHXStepCircle, PHXTableStatic, PHXGetToken, PHXToggle, PHXColSpan, PHXSortItem, PHXSortable, PHXGetListDepartmentManager, PHXGetUserManagerByUserId, PHXReportButtonTab, PHXReportButtonTabV2, PHXAllowExplanation, PHXUseRouterBack, PHXChunkUpdateMany, PHXTabDate, PHXTwoColumnLayout, PHXAxiosInstance, PHXDrawer, PHXResourceListSetting, PHXCompleteState, PHXTableReport, PHXMiniProgressBar, PHXFormConfigTimeUseService, PHXSelectWithAction, PHXText, PHXDescriptionListInTooltip, PHXSegmentTab, PHXUserTargetSelect, PHXTimeline, PHXClientQueryV5, PHXClientMutationV5, PHXUseToastContent, PHXTableV5, PHXPushNotificationService, PHXClientQueryV6, PHXClientMutationV6, PHXTableV6, PHXTextV2, PHXBox, PHXLegend, PHXIcon, PHXDivider, PHXPreviewNoti, PHXBlockStack, PHXInlineGrid, PHXUseDirectLink, PHXInputTags, PHXUseAuditLog, PHXFormatDateTime, PHXTableGroup, EMAIL_REGEX, PHONE_NUMBER_REGEX, PHXIframe, PHXScheduleTable, };
|
package/dist/cjs/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PHXFormLayout = exports.PHXCombobox = exports.PHXButtonGroup = exports.PHXBanner = exports.PHXLoginSsoV3 = exports.PHXLoginV3 = exports.PHXBadge = exports.PHXDescriptionLists = exports.PHXChoiceList = exports.PHXTabs = exports.PHXModal = exports.PHXTextarea = exports.PHXClientQueryDevPortalV3 = exports.PHXClientMutationDevPortalV3 = exports.PHXClientQueryDataCenterV3 = exports.PHXClientMutationDataCenterV3 = exports.PHXClientMutationV3 = exports.PHXClientQueryV3 = exports.PHXFuncGetLoggedInfo = exports.PHXSkeleton = exports.PHXStep = exports.PHXNotifications = exports.PHXFormStep = exports.PHXContainer = exports.PHXCheckboxGroup = exports.PHXCheckbox = exports.PHXRadio = exports.PHXSelectBox = exports.PHXSelect = exports.PHXInput = exports.PHXTableV3 = exports.PHXHeaderBar = exports.PHXFormWrap = exports.PHXSpinner = exports.PHXCard = exports.PHXBreadcrumb = exports.PHXButton = exports.PHXStoreProduct = exports.PHXTextEditorView = exports.PHXTargetSelect = exports.PHXMainWrapV4 = exports.PHXSetSettingSite = exports.PHXGetSettingSite = exports.useMainwrapV4EventBus = exports.PHXTextEditorV2 = exports.PHXGrpcQueryAllSchool = exports.useFixedAction = exports.PHXLibraryModalReturnBook = exports.PHXLibraryModalCreateBorrowTicket = exports.PHXBottomAction = void 0;
|
|
4
4
|
exports.PHXSortable = exports.PHXSortItem = exports.PHXColSpan = exports.PHXToggle = exports.PHXGetToken = exports.PHXTableStatic = exports.PHXStepCircle = exports.PHXRow = exports.PHXColumn = exports.PHXGridLayout = exports.PHXCardDetail = exports.PHXGetSelectedFilterValueFromUrl = exports.PHXUrlApply = exports.PHXBannerWithCard = exports.PHXActivityHistory = exports.PHXEmptyStateAction = exports.PHXTableVertical = exports.PHXSwitchView = exports.PHXLink = exports.PHXLoadingIndicator = exports.useLoading = exports.PHXLoadingProvider = exports.PHXCalendar = exports.PHXUseQueryDataV3 = exports.PHXFuncGetActionPermissionV3 = exports.PHXGetEnvPublicV3 = exports.PHXPagePermissionV3 = exports.PHXMainWrapV3 = exports.PHXFormTuitionV3 = exports.PHXGetCurrentYearWithTermV3 = exports.PHXGetCurrentYearWithTermHocVuV3 = exports.PHXGetPrevCurrentNextYearV3 = exports.PHXGetActiveYearAndNextYearV3 = exports.PHXTooltip = exports.DonutChart = exports.BarChart = exports.PieChart = exports.PHXFetchAPI = exports.PHXResourceList = exports.PHXUseDebounce = exports.PHXDateRangePicker = exports.PHXUploadAvatar = exports.PHXDropdown = exports.PHXTimePicker = exports.PHXEmptySearch = exports.PHXEmptyRecord = exports.PHXDatePicker = exports.PHXSearchResultListV3 = exports.PHXUploadFile = exports.PHXHorizontalStack = void 0;
|
|
5
|
-
exports.PHXIframe = exports.PHONE_NUMBER_REGEX = exports.EMAIL_REGEX = exports.PHXTableGroup = exports.PHXFormatDateTime = exports.PHXUseAuditLog = exports.PHXInputTags = exports.PHXUseDirectLink = exports.PHXInlineGrid = exports.PHXBlockStack = exports.PHXPreviewNoti = exports.PHXDivider = exports.PHXIcon = exports.PHXLegend = exports.PHXBox = exports.PHXTextV2 = exports.PHXTableV6 = exports.PHXClientMutationV6 = exports.PHXClientQueryV6 = exports.PHXPushNotificationService = exports.PHXTableV5 = exports.PHXUseToastContent = exports.PHXClientMutationV5 = exports.PHXClientQueryV5 = exports.PHXTimeline = exports.PHXUserTargetSelect = exports.PHXSegmentTab = exports.PHXDescriptionListInTooltip = exports.PHXText = exports.PHXSelectWithAction = exports.PHXFormConfigTimeUseService = exports.PHXMiniProgressBar = exports.PHXTableReport = exports.PHXCompleteState = exports.PHXResourceListSetting = exports.PHXDrawer = exports.PHXAxiosInstance = exports.PHXTwoColumnLayout = exports.PHXTabDate = exports.PHXChunkUpdateMany = exports.PHXUseRouterBack = exports.PHXAllowExplanation = exports.PHXReportButtonTabV2 = exports.PHXReportButtonTab = exports.PHXGetUserManagerByUserId = exports.PHXGetListDepartmentManager = void 0;
|
|
5
|
+
exports.PHXScheduleTable = exports.PHXIframe = exports.PHONE_NUMBER_REGEX = exports.EMAIL_REGEX = exports.PHXTableGroup = exports.PHXFormatDateTime = exports.PHXUseAuditLog = exports.PHXInputTags = exports.PHXUseDirectLink = exports.PHXInlineGrid = exports.PHXBlockStack = exports.PHXPreviewNoti = exports.PHXDivider = exports.PHXIcon = exports.PHXLegend = exports.PHXBox = exports.PHXTextV2 = exports.PHXTableV6 = exports.PHXClientMutationV6 = exports.PHXClientQueryV6 = exports.PHXPushNotificationService = exports.PHXTableV5 = exports.PHXUseToastContent = exports.PHXClientMutationV5 = exports.PHXClientQueryV5 = exports.PHXTimeline = exports.PHXUserTargetSelect = exports.PHXSegmentTab = exports.PHXDescriptionListInTooltip = exports.PHXText = exports.PHXSelectWithAction = exports.PHXFormConfigTimeUseService = exports.PHXMiniProgressBar = exports.PHXTableReport = exports.PHXCompleteState = exports.PHXResourceListSetting = exports.PHXDrawer = exports.PHXAxiosInstance = exports.PHXTwoColumnLayout = exports.PHXTabDate = exports.PHXChunkUpdateMany = exports.PHXUseRouterBack = exports.PHXAllowExplanation = exports.PHXReportButtonTabV2 = exports.PHXReportButtonTab = exports.PHXGetUserManagerByUserId = exports.PHXGetListDepartmentManager = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
const BannerWithCard_1 = require("./components/BannerWithCard/BannerWithCard");
|
|
8
8
|
Object.defineProperty(exports, "PHXBannerWithCard", { enumerable: true, get: function () { return BannerWithCard_1.PHXBannerWithCard; } });
|
|
@@ -287,4 +287,6 @@ Object.defineProperty(exports, "EMAIL_REGEX", { enumerable: true, get: function
|
|
|
287
287
|
Object.defineProperty(exports, "PHONE_NUMBER_REGEX", { enumerable: true, get: function () { return constants_1.PHONE_NUMBER_REGEX; } });
|
|
288
288
|
const Iframe_1 = require("./components/Iframe");
|
|
289
289
|
Object.defineProperty(exports, "PHXIframe", { enumerable: true, get: function () { return Iframe_1.PHXIframe; } });
|
|
290
|
+
const TableSchedule_1 = require("./components/TableSchedule");
|
|
291
|
+
Object.defineProperty(exports, "PHXScheduleTable", { enumerable: true, get: function () { return TableSchedule_1.PHXScheduleTable; } });
|
|
290
292
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,+EAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PHXScheduleTableProps } from './types';
|
|
3
|
+
export * from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Renders the schedule table with sticky row headers, optional tooltips, and interactive cells.
|
|
6
|
+
*
|
|
7
|
+
* @param {PHXScheduleTableProps} props The table configuration and render data.
|
|
8
|
+
* @returns {React.ReactNode} The rendered schedule table component.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PHXScheduleTable: ({ columns, headerGroups, rows, onCellClick, stickyColumnWidth, stickyColumnWidths, defaultCellLayout, legendItems, userDetailPageUrl, className, TooltipComponent, ButtonComponent, }: PHXScheduleTableProps) => React.JSX.Element;
|
|
11
|
+
export default PHXScheduleTable;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React, { useRef } from 'react';
|
|
3
|
+
import { TABLE_CLASSNAME, TABLE_SCROLL_CONTAINER_CLASSNAME, TABLE_SCROLL_CONTAINER_STYLE, TABLE_STYLE, } from './constants';
|
|
4
|
+
import { PHXScheduleTableBody } from './components/PHXScheduleTableBody';
|
|
5
|
+
import { PHXScheduleTableHead } from './components/PHXScheduleTableHead';
|
|
6
|
+
import { PHXScheduleTableLegend } from './components/PHXScheduleTableLegend';
|
|
7
|
+
import { buildSkipMap, buildStickyColumnWidths } from './utils';
|
|
8
|
+
import { useStickyShadow } from './components/useStickyShadow';
|
|
9
|
+
export * from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Renders the schedule table with sticky row headers, optional tooltips, and interactive cells.
|
|
12
|
+
*
|
|
13
|
+
* @param {PHXScheduleTableProps} props The table configuration and render data.
|
|
14
|
+
* @returns {React.ReactNode} The rendered schedule table component.
|
|
15
|
+
*/
|
|
16
|
+
export const PHXScheduleTable = ({ columns, headerGroups, rows, onCellClick, stickyColumnWidth = 130, stickyColumnWidths, defaultCellLayout = 'boxed', legendItems, userDetailPageUrl, className, TooltipComponent, ButtonComponent, }) => {
|
|
17
|
+
const scrollContainerRef = useRef(null);
|
|
18
|
+
const skipMap = buildSkipMap(rows, columns);
|
|
19
|
+
const resolvedStickyColumnWidths = buildStickyColumnWidths(rows, stickyColumnWidth, stickyColumnWidths);
|
|
20
|
+
const stickyHeaderCount = resolvedStickyColumnWidths.length;
|
|
21
|
+
const showStickyShadow = useStickyShadow({
|
|
22
|
+
scrollContainerRef,
|
|
23
|
+
columnsLength: columns.length,
|
|
24
|
+
rowsLength: rows.length,
|
|
25
|
+
stickyHeaderCount,
|
|
26
|
+
});
|
|
27
|
+
const stickySharedProps = {
|
|
28
|
+
stickyHeaderCount,
|
|
29
|
+
resolvedStickyColumnWidths,
|
|
30
|
+
showStickyShadow,
|
|
31
|
+
};
|
|
32
|
+
return (React.createElement("div", { className: className },
|
|
33
|
+
React.createElement(PHXScheduleTableLegend, { legendItems: legendItems }),
|
|
34
|
+
React.createElement("div", { ref: scrollContainerRef, className: TABLE_SCROLL_CONTAINER_CLASSNAME, style: TABLE_SCROLL_CONTAINER_STYLE },
|
|
35
|
+
React.createElement("table", { className: TABLE_CLASSNAME, style: TABLE_STYLE },
|
|
36
|
+
React.createElement(PHXScheduleTableHead, { columns: columns, headerGroups: headerGroups, ...stickySharedProps }),
|
|
37
|
+
React.createElement(PHXScheduleTableBody, { columns: columns, rows: rows, onCellClick: onCellClick, stickyColumnWidth: stickyColumnWidth, defaultCellLayout: defaultCellLayout, userDetailPageUrl: userDetailPageUrl, TooltipComponent: TooltipComponent, ButtonComponent: ButtonComponent, skipMap: skipMap, ...stickySharedProps })))));
|
|
38
|
+
};
|
|
39
|
+
export default PHXScheduleTable;
|
|
40
|
+
//# sourceMappingURL=PHXScheduleTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PHXScheduleTable.js","sourceRoot":"","sources":["../../../../src/components/TableSchedule/PHXScheduleTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EACL,eAAe,EACf,gCAAgC,EAChC,4BAA4B,EAC5B,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,cAAc,SAAS,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,iBAAiB,GAAG,GAAG,EACvB,kBAAkB,EAClB,iBAAiB,GAAG,OAAO,EAC3B,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,eAAe,GACO,EAAE,EAAE;IAC1B,MAAM,kBAAkB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,MAAM,0BAA0B,GAAG,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;IACvG,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,MAAM,CAAA;IAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC;QACvC,kBAAkB;QAClB,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI,CAAC,MAAM;QACvB,iBAAiB;KAClB,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG;QACxB,iBAAiB;QACjB,0BAA0B;QAC1B,gBAAgB;KACjB,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS;QACvB,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,GAAI;QAEpD,6BAAK,GAAG,EAAE,kBAAkB,EAAE,SAAS,EAAE,gCAAgC,EAAE,KAAK,EAAE,4BAA4B;YAC5G,+BAAO,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW;gBACnD,oBAAC,oBAAoB,IAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,KAAM,iBAAiB,GAAI;gBAC7F,oBAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,KACZ,iBAAiB,GACrB,CACI,CACJ,CACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PHXScheduleTableProps } from '../types';
|
|
3
|
+
type PHXScheduleTableBodyProps = Pick<PHXScheduleTableProps, 'columns' | 'rows' | 'onCellClick' | 'stickyColumnWidth' | 'defaultCellLayout' | 'userDetailPageUrl' | 'TooltipComponent' | 'ButtonComponent'> & {
|
|
4
|
+
skipMap: Set<string>;
|
|
5
|
+
stickyHeaderCount: number;
|
|
6
|
+
resolvedStickyColumnWidths: number[];
|
|
7
|
+
showStickyShadow: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Renders the schedule table body, including sticky row headers and data cells.
|
|
11
|
+
*
|
|
12
|
+
* @param {PHXScheduleTableBodyProps} props Body render inputs.
|
|
13
|
+
* @returns {React.ReactNode} The schedule table body.
|
|
14
|
+
*/
|
|
15
|
+
export declare const PHXScheduleTableBody: ({ columns, rows, onCellClick, stickyColumnWidth, defaultCellLayout, userDetailPageUrl, TooltipComponent, ButtonComponent, skipMap, stickyHeaderCount, resolvedStickyColumnWidths, showStickyShadow, }: PHXScheduleTableBodyProps) => React.JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { getCellWrapperAlignClassName } from '../constants';
|
|
4
|
+
import { renderCellBoxContent, renderRowHeaderContent, renderScheduleContent, renderTooltipContent, resolveTooltipClassName, } from '../renderers';
|
|
5
|
+
import { buildDataCellStyle, buildRowHeaderCellStyle, getCellSpan, getClickableCellClassName, getColumnAlign, getDataCellClassName, getRowHeaderClassName, getRowHeaders, getStaticCellClassName, } from '../utils';
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the plain cell content for non-boxed cells.
|
|
8
|
+
*
|
|
9
|
+
* @param {GridCellData} cell The cell data being rendered.
|
|
10
|
+
* @param {string} [userDetailPageUrl] Optional detail-page URL used by schedule links.
|
|
11
|
+
* @returns {React.ReactNode} The plain rendered cell content.
|
|
12
|
+
*/
|
|
13
|
+
const getPlainCellContent = (cell, userDetailPageUrl) => {
|
|
14
|
+
if (cell.scheduleContent) {
|
|
15
|
+
return renderScheduleContent(cell.scheduleContent, userDetailPageUrl);
|
|
16
|
+
}
|
|
17
|
+
return cell.content;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the rendered content for a cell based on the active layout mode.
|
|
21
|
+
*
|
|
22
|
+
* @param {GridCellData} cell The cell data being rendered.
|
|
23
|
+
* @param {'boxed' | 'plain'} cellLayout The layout mode used for the cell.
|
|
24
|
+
* @param {string} [userDetailPageUrl] Optional detail-page URL used by schedule links.
|
|
25
|
+
* @returns {React.ReactNode} The rendered cell content for the selected layout.
|
|
26
|
+
*/
|
|
27
|
+
const getBoxContent = (cell, cellLayout, userDetailPageUrl) => cellLayout === 'plain' ? getPlainCellContent(cell, userDetailPageUrl) : renderCellBoxContent(cell);
|
|
28
|
+
/**
|
|
29
|
+
* Creates the click handler payload for an interactive data cell.
|
|
30
|
+
*
|
|
31
|
+
* @param {PHXScheduleTableProps['onCellClick']} onCellClick The optional table click callback.
|
|
32
|
+
* @param {number} rowIndex The zero-based row index of the clicked cell.
|
|
33
|
+
* @param {string} columnKey The column key of the clicked cell.
|
|
34
|
+
* @param {GridCellData} cellData The cell data passed back to the callback.
|
|
35
|
+
* @returns {(() => void) | undefined} The click handler, or `undefined` when clicks are disabled.
|
|
36
|
+
*/
|
|
37
|
+
const getCellClickHandler = (onCellClick, rowIndex, columnKey, cellData) => {
|
|
38
|
+
if (!onCellClick) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return () => onCellClick({
|
|
42
|
+
rowIndex,
|
|
43
|
+
columnKey,
|
|
44
|
+
cellData,
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Renders the clickable or static wrapper used by a data cell.
|
|
49
|
+
*
|
|
50
|
+
* @param {React.ReactNode} boxContent The rendered content shown inside the cell.
|
|
51
|
+
* @param {'boxed' | 'plain'} cellLayout The active layout mode.
|
|
52
|
+
* @param {string} cellWrapperAlignClassName The alignment class applied to the wrapper.
|
|
53
|
+
* @param {(() => void) | undefined} onClick The optional click handler for interactive cells.
|
|
54
|
+
* @param {PHXScheduleTableProps['ButtonComponent']} [ButtonComponent] Optional custom button component.
|
|
55
|
+
* @returns {React.ReactNode} The rendered cell wrapper.
|
|
56
|
+
*/
|
|
57
|
+
const renderInteractiveCellContent = (boxContent, cellLayout, cellWrapperAlignClassName, onClick, ButtonComponent) => {
|
|
58
|
+
if (!onClick) {
|
|
59
|
+
return React.createElement("div", { className: getStaticCellClassName(cellLayout, cellWrapperAlignClassName) }, boxContent);
|
|
60
|
+
}
|
|
61
|
+
if (ButtonComponent) {
|
|
62
|
+
return (React.createElement(ButtonComponent, { tertiary: true, noPadding: true, className: getClickableCellClassName(cellLayout, cellWrapperAlignClassName, true), onClick: onClick }, boxContent));
|
|
63
|
+
}
|
|
64
|
+
return (React.createElement("button", { type: 'button', className: getClickableCellClassName(cellLayout, cellWrapperAlignClassName), onClick: onClick }, boxContent));
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Renders the schedule table body, including sticky row headers and data cells.
|
|
68
|
+
*
|
|
69
|
+
* @param {PHXScheduleTableBodyProps} props Body render inputs.
|
|
70
|
+
* @returns {React.ReactNode} The schedule table body.
|
|
71
|
+
*/
|
|
72
|
+
export const PHXScheduleTableBody = ({ columns, rows, onCellClick, stickyColumnWidth = 130, defaultCellLayout = 'boxed', userDetailPageUrl, TooltipComponent, ButtonComponent, skipMap, stickyHeaderCount, resolvedStickyColumnWidths, showStickyShadow, }) => {
|
|
73
|
+
/**
|
|
74
|
+
* Wraps a cell with the configured tooltip component when tooltip content exists.
|
|
75
|
+
*
|
|
76
|
+
* @param {GridCellData} cell The cell data being rendered.
|
|
77
|
+
* @param {React.ReactNode} cellContent The rendered cell content before tooltip decoration.
|
|
78
|
+
* @returns {React.ReactNode} The tooltip-wrapped content, or the original content when no tooltip applies.
|
|
79
|
+
*/
|
|
80
|
+
const renderTooltipWrappedContent = (cell, cellContent) => {
|
|
81
|
+
const tooltipContent = renderTooltipContent(cell, userDetailPageUrl);
|
|
82
|
+
if (!tooltipContent || !TooltipComponent) {
|
|
83
|
+
return cellContent;
|
|
84
|
+
}
|
|
85
|
+
return (React.createElement(TooltipComponent, { contentClassName: resolveTooltipClassName(cell), content: tooltipContent }, cellContent));
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Renders a sticky row-header cell for the current body row.
|
|
89
|
+
*
|
|
90
|
+
* @param {RowHeaderCellRenderParams} params Row-header render inputs.
|
|
91
|
+
* @returns {React.ReactNode} The rendered sticky row-header cell.
|
|
92
|
+
*/
|
|
93
|
+
function renderRowHeaderCell(params) {
|
|
94
|
+
var _a;
|
|
95
|
+
const { header, headerIndex, isLast } = params;
|
|
96
|
+
const width = (_a = header.width) !== null && _a !== void 0 ? _a : stickyColumnWidth;
|
|
97
|
+
return (React.createElement("td", { key: headerIndex, rowSpan: header.rowSpan, className: getRowHeaderClassName(header.className, headerIndex, stickyHeaderCount, showStickyShadow), style: buildRowHeaderCellStyle({
|
|
98
|
+
headerIndex,
|
|
99
|
+
stickyWidths: resolvedStickyColumnWidths,
|
|
100
|
+
width,
|
|
101
|
+
isLast,
|
|
102
|
+
customStyle: header.style,
|
|
103
|
+
}) }, renderRowHeaderContent(header)));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Renders a data cell for the current row and column combination.
|
|
107
|
+
*
|
|
108
|
+
* @param {DataCellRenderParams} params Data-cell render inputs.
|
|
109
|
+
* @returns {React.ReactNode} The rendered data cell, or `null` when the coordinate is covered by a span.
|
|
110
|
+
*/
|
|
111
|
+
function renderDataCell(params) {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
const { row, rowIndex, col, isLast } = params;
|
|
114
|
+
if (skipMap.has(`${rowIndex},${col.key}`))
|
|
115
|
+
return null;
|
|
116
|
+
const cell = (_a = row.cells[col.key]) !== null && _a !== void 0 ? _a : {};
|
|
117
|
+
const { colSpan: cs, rowSpan: rs } = getCellSpan(cell);
|
|
118
|
+
const columnAlign = getColumnAlign(col.align);
|
|
119
|
+
const cellWrapperAlignClassName = getCellWrapperAlignClassName(columnAlign);
|
|
120
|
+
const cellLayout = (_b = cell.layout) !== null && _b !== void 0 ? _b : defaultCellLayout;
|
|
121
|
+
const boxContent = getBoxContent(cell, cellLayout, userDetailPageUrl);
|
|
122
|
+
const onClick = onCellClick && !cell.disabled ? getCellClickHandler(onCellClick, rowIndex, col.key, cell) : undefined;
|
|
123
|
+
const cellContent = renderInteractiveCellContent(boxContent, cellLayout, cellWrapperAlignClassName, onClick, ButtonComponent);
|
|
124
|
+
const wrappedContent = renderTooltipWrappedContent(cell, cellContent);
|
|
125
|
+
return (React.createElement("td", { key: col.key, colSpan: cs > 1 ? cs : undefined, rowSpan: rs > 1 ? rs : undefined, className: getDataCellClassName(cell.cellClassName), style: buildDataCellStyle(isLast, cell.cellStyle) }, wrappedContent));
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Renders a single table body row with its sticky headers and visible data cells.
|
|
129
|
+
*
|
|
130
|
+
* @param {PHXScheduleTableProps['rows'][number]} row The row data being rendered.
|
|
131
|
+
* @param {number} rowIndex The zero-based row index.
|
|
132
|
+
* @returns {React.ReactNode} The rendered table row.
|
|
133
|
+
*/
|
|
134
|
+
function renderBodyRow(row, rowIndex) {
|
|
135
|
+
const isLast = rowIndex === rows.length - 1;
|
|
136
|
+
const rowHeaders = getRowHeaders(row, stickyColumnWidth);
|
|
137
|
+
return (React.createElement("tr", { key: rowIndex },
|
|
138
|
+
rowHeaders.map((header, headerIndex) => header ? renderRowHeaderCell({ header, headerIndex, isLast }) : null),
|
|
139
|
+
columns.map((col) => renderDataCell({ row, rowIndex, col, isLast }))));
|
|
140
|
+
}
|
|
141
|
+
return React.createElement("tbody", null, rows.map(renderBodyRow));
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=PHXScheduleTableBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PHXScheduleTableBody.js","sourceRoot":"","sources":["../../../../../src/components/TableSchedule/components/PHXScheduleTableBody.tsx"],"names":[],"mappings":"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"}
|