namirasoft-site-react 1.4.550 → 1.4.552

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.
@@ -80,6 +80,7 @@
80
80
 
81
81
  @media only screen and (min-width: 480px) {
82
82
  .ns_pagination_container {
83
+ padding-right: 24px;
83
84
  justify-content: space-between;
84
85
  flex-wrap: nowrap;
85
86
  }
@@ -85,6 +85,10 @@ interface NSTableState<RowType> {
85
85
  expandedIDs: string[];
86
86
  pageSelectionMode: PageSelectionMode;
87
87
  sortItems: SortItem[] | null;
88
+ columnWidths: {
89
+ [key: string]: number;
90
+ };
91
+ fullscreen: boolean;
88
92
  }
89
93
  declare enum PageSelectionMode {
90
94
  Hidden = "Hidden",
@@ -97,7 +101,10 @@ export declare class NSTable<RowType> extends Component<NSTableProps<RowType>, N
97
101
  private TableScrollbarContent_Ref;
98
102
  NSPagination: React.RefObject<NSPagination>;
99
103
  private LastSelectedRowID;
104
+ private resizeMoveHandler;
105
+ private resizeUpHandler;
100
106
  constructor(props: NSTableProps<RowType>);
107
+ private toggleFullscreen;
101
108
  private getSortItemsKey;
102
109
  getSortItems(): SortItem[];
103
110
  setSortItems(items: SortItem[] | null): void;
@@ -111,6 +118,7 @@ export declare class NSTable<RowType> extends Component<NSTableProps<RowType>, N
111
118
  column: string;
112
119
  }[]): void;
113
120
  setColumns(columns: TableColumnInfo[]): void;
121
+ private syncScrollbarWidth;
114
122
  setRows(rows: RowType[] | null, totalItems: number): void;
115
123
  foreachColumn(visible: boolean | null, handler: (column: TableColumnInfo) => void): void;
116
124
  getColumns(visible: boolean | null): TableColumnInfo[];
@@ -137,7 +145,15 @@ export declare class NSTable<RowType> extends Component<NSTableProps<RowType>, N
137
145
  private isMultipleSelected;
138
146
  private getCellTableInfo;
139
147
  private getCellFormattedValue;
148
+ private getColumnWidthsKey;
149
+ private loadColumnWidths;
150
+ private saveColumnWidths;
151
+ private getColumnKey;
152
+ private getColumnWidth;
153
+ private getGridTemplateColumns;
154
+ private startResize;
140
155
  componentDidMount(): void;
156
+ componentWillUnmount(): void;
141
157
  render(): React.JSX.Element;
142
158
  }
143
159
  export {};
@@ -34,6 +34,8 @@ export class NSTable extends Component {
34
34
  this.TableScrollbarContent_Ref = React.createRef();
35
35
  this.NSPagination = React.createRef();
36
36
  this.LastSelectedRowID = null;
37
+ this.resizeMoveHandler = null;
38
+ this.resizeUpHandler = null;
37
39
  this.state = {
38
40
  columns: props.columns,
39
41
  visible_columns: this.getVisibleColumns(),
@@ -45,6 +47,8 @@ export class NSTable extends Component {
45
47
  expandedIDs: [],
46
48
  pageSelectionMode: PageSelectionMode.Hidden,
47
49
  sortItems: this.getSortItems(),
50
+ columnWidths: this.loadColumnWidths(),
51
+ fullscreen: false,
48
52
  };
49
53
  this.getSortItemsKey = this.getSortItemsKey.bind(this);
50
54
  this.getSortItems = this.getSortItems.bind(this);
@@ -66,6 +70,10 @@ export class NSTable extends Component {
66
70
  this.exportCSV = this.exportCSV.bind(this);
67
71
  this.isAllSelected = this.isAllSelected.bind(this);
68
72
  this.reload = this.reload.bind(this);
73
+ this.toggleFullscreen = this.toggleFullscreen.bind(this);
74
+ }
75
+ toggleFullscreen() {
76
+ this.setState({ fullscreen: !this.state.fullscreen }, () => this.syncScrollbarWidth());
69
77
  }
70
78
  getSortItemsKey() {
71
79
  return "ns_table_" + this.props.name + "_sort_items";
@@ -113,13 +121,17 @@ export class NSTable extends Component {
113
121
  setColumns(columns) {
114
122
  this.setState({ columns });
115
123
  }
124
+ syncScrollbarWidth() {
125
+ var _a, _b;
126
+ if (this.TableScrollbarContent_Ref.current)
127
+ this.TableScrollbarContent_Ref.current.style.width = ((_b = (_a = this.Table_Ref.current) === null || _a === void 0 ? void 0 : _a.scrollWidth) !== null && _b !== void 0 ? _b : 0) + "px";
128
+ }
116
129
  setRows(rows, totalItems) {
117
130
  this.setState({ rows, totalItems }, () => {
118
- var _a, _b, _c;
131
+ var _a;
119
132
  if (this.props.scroll !== false)
120
133
  (_a = this.Table_Ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: 'smooth', block: 'center' });
121
- if (this.TableScrollbarContent_Ref.current)
122
- this.TableScrollbarContent_Ref.current.style.width = ((_c = (_b = this.Table_Ref.current) === null || _b === void 0 ? void 0 : _b.scrollWidth) !== null && _c !== void 0 ? _c : 0) + "px";
134
+ this.syncScrollbarWidth();
123
135
  });
124
136
  }
125
137
  foreachColumn(visible, handler) {
@@ -352,15 +364,91 @@ export class NSTable extends Component {
352
364
  return this.props.getCellFormattedValue(value, column, row, printable);
353
365
  return column.formatter.format(value, column, row, printable);
354
366
  }
367
+ getColumnWidthsKey() {
368
+ return "ns_table_" + this.props.name + "_column_widths";
369
+ }
370
+ loadColumnWidths() {
371
+ let storage = new IStorageLocal();
372
+ let item = storage.get(this.getColumnWidthsKey(), "");
373
+ try {
374
+ return JSON.parse(item);
375
+ }
376
+ catch (_a) {
377
+ return {};
378
+ }
379
+ }
380
+ saveColumnWidths(widths) {
381
+ let storage = new IStorageLocal();
382
+ storage.set(this.getColumnWidthsKey(), JSON.stringify(widths));
383
+ }
384
+ getColumnKey(column) {
385
+ return column.table.name + "_" + column.name;
386
+ }
387
+ getColumnWidth(column) {
388
+ let key = this.getColumnKey(column);
389
+ if (this.state.columnWidths[key] !== undefined)
390
+ return this.state.columnWidths[key];
391
+ let w = column.formatter.width;
392
+ if (typeof w === 'number')
393
+ return w;
394
+ if (typeof w === 'string') {
395
+ let parsed = parseInt(w, 10);
396
+ if (!isNaN(parsed))
397
+ return parsed;
398
+ }
399
+ return 120;
400
+ }
401
+ getGridTemplateColumns() {
402
+ let parts = [];
403
+ if (this.props.checkbox)
404
+ parts.push("40px");
405
+ this.getColumns(true).forEach(column => {
406
+ parts.push(this.getColumnWidth(column) + "px");
407
+ });
408
+ return parts.join(" ");
409
+ }
410
+ startResize(e, column) {
411
+ e.preventDefault();
412
+ e.stopPropagation();
413
+ let key = this.getColumnKey(column);
414
+ let startX = e.clientX;
415
+ let startWidth = this.getColumnWidth(column);
416
+ let currentWidths = Object.assign({}, this.state.columnWidths);
417
+ document.body.style.cursor = 'col-resize';
418
+ document.body.style.userSelect = 'none';
419
+ const onMouseMove = (ev) => {
420
+ let delta = ev.clientX - startX;
421
+ let newWidth = Math.max(80, startWidth + delta);
422
+ currentWidths = Object.assign(Object.assign({}, currentWidths), { [key]: newWidth });
423
+ this.setState({ columnWidths: currentWidths }, () => this.syncScrollbarWidth());
424
+ };
425
+ const onMouseUp = () => {
426
+ document.body.style.cursor = '';
427
+ document.body.style.userSelect = '';
428
+ document.removeEventListener('mousemove', onMouseMove);
429
+ document.removeEventListener('mouseup', onMouseUp);
430
+ this.resizeMoveHandler = null;
431
+ this.resizeUpHandler = null;
432
+ this.saveColumnWidths(currentWidths);
433
+ };
434
+ this.resizeMoveHandler = onMouseMove;
435
+ this.resizeUpHandler = onMouseUp;
436
+ document.addEventListener('mousemove', onMouseMove);
437
+ document.addEventListener('mouseup', onMouseUp);
438
+ }
355
439
  componentDidMount() {
356
- var _a, _b;
357
440
  if (!this.NSPagination.current)
358
441
  this.reload(null, null);
359
- if (this.TableScrollbarContent_Ref.current)
360
- this.TableScrollbarContent_Ref.current.style.width = ((_b = (_a = this.Table_Ref.current) === null || _a === void 0 ? void 0 : _a.scrollWidth) !== null && _b !== void 0 ? _b : 0) + "px";
442
+ this.syncScrollbarWidth();
443
+ }
444
+ componentWillUnmount() {
445
+ if (this.resizeMoveHandler)
446
+ document.removeEventListener('mousemove', this.resizeMoveHandler);
447
+ if (this.resizeUpHandler)
448
+ document.removeEventListener('mouseup', this.resizeUpHandler);
361
449
  }
362
450
  render() {
363
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
451
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
364
452
  let show_pagination = (_b = (_a = this.props.ui) === null || _a === void 0 ? void 0 : _a.pagination) !== null && _b !== void 0 ? _b : true;
365
453
  let show_button_panel = (_d = (_c = this.props.ui) === null || _c === void 0 ? void 0 : _c.button_panel) !== null && _d !== void 0 ? _d : true;
366
454
  let getRowAttributes = (row_value, row_index) => {
@@ -397,6 +485,7 @@ export class NSTable extends Component {
397
485
  if (!overided)
398
486
  this.showModal(cell.formatted, cell.column.text);
399
487
  };
488
+ let gridTemplateColumns = this.getGridTemplateColumns();
400
489
  let content;
401
490
  if (this.state.rows === null) {
402
491
  content = (_jsx("tr", { className: "d-flex justify-content-center align-items-center p-0", children: _jsx("td", { className: "w-100 h-100 m-0 mh-100", children: _jsx(NSLoading, {}) }) }));
@@ -426,14 +515,15 @@ export class NSTable extends Component {
426
515
  }
427
516
  let hasChildren = children.length > 0;
428
517
  let expanded = this.isExpanded(rowKey);
518
+ let rowAttrs = getRowAttributes(rowValue, rowIndex);
429
519
  let nodes = [];
430
- nodes.push(_jsxs("tr", Object.assign({}, getRowAttributes(rowValue, rowIndex), { className: `${isSelected ? Styles.ns_selected : ""} ${isLastSelected ? Styles.ns_last_selected : ""}`.trim(), onClick: (e) => !isCheckboxDisabled && onRowClick(e, row, isSelected), children: [this.props.checkbox &&
520
+ nodes.push(_jsxs("tr", Object.assign({}, rowAttrs, { style: Object.assign(Object.assign({}, (rowAttrs.style || {})), { gridTemplateColumns }), className: `${isSelected ? Styles.ns_selected : ""} ${isLastSelected ? Styles.ns_last_selected : ""}`.trim(), onClick: (e) => !isCheckboxDisabled && onRowClick(e, row, isSelected), children: [this.props.checkbox &&
431
521
  _jsx("td", { "data-cell-type": "checkbox", children: _jsx("label", { htmlFor: `checkbox_device_${rowKey}`, className: Styles.ns_check_box_label, children: _jsx("input", { id: `checkbox_device_${rowKey}`, type: "checkbox", checked: isSelected, disabled: isCheckboxDisabled, className: Styles.ns_check_box, onChange: () => { } }) }) }), this.getColumns(true).map((column, index) => {
432
522
  var _a, _b;
433
523
  column.index = index + (this.props.checkbox ? 1 : 0);
434
524
  let cell = this.getCellTableInfo(column, row, false);
435
525
  let isFirstDataColumn = index === 0;
436
- return (_jsx("td", Object.assign({}, getColumnAttributes(column), { "data-label": `${column.text}: `, width: column.formatter.width, className: 'py-3', style: isFirstDataColumn && hierarchical ? { overflow: "visible" } : undefined, onClick: (e) => {
526
+ return (_jsx("td", Object.assign({}, getColumnAttributes(column), { "data-label": `${column.text}: `, width: column.formatter.width, className: '', style: isFirstDataColumn && hierarchical ? { overflow: "visible" } : undefined, onClick: (e) => {
437
527
  onColumnClick(e, column);
438
528
  onCellClick(e, cell);
439
529
  }, children: isFirstDataColumn && hierarchical ? (_jsxs("div", { style: {
@@ -534,12 +624,14 @@ export class NSTable extends Component {
534
624
  }
535
625
  return "";
536
626
  };
537
- return (_jsxs("div", { id: this.props.id, className: (_f = [...(_e = this.props.classList) !== null && _e !== void 0 ? _e : [], Styles.ns_table_wrapper]) === null || _f === void 0 ? void 0 : _f.join(" "), style: Object.assign({}, this.props.style), children: [_jsxs("table", { ref: this.Table_Ref, className: Styles.ns_table, onScroll: () => {
627
+ return (_jsxs("div", { id: this.props.id, className: [...(_e = this.props.classList) !== null && _e !== void 0 ? _e : [], Styles.ns_table_wrapper, this.state.fullscreen ? Styles.ns_fullscreen : ""].filter(Boolean).join(" "), style: Object.assign({}, this.props.style), children: [_jsxs("table", { ref: this.Table_Ref, className: Styles.ns_table, onScroll: () => {
538
628
  var _a, _b;
539
629
  if (this.TableScrollbar_Ref.current)
540
630
  this.TableScrollbar_Ref.current.scrollLeft = (_b = (_a = this.Table_Ref.current) === null || _a === void 0 ? void 0 : _a.scrollLeft) !== null && _b !== void 0 ? _b : 0;
541
- }, children: [_jsx("thead", { children: _jsxs("tr", { children: [this.props.checkbox &&
542
- _jsx("th", { style: { width: "24px", height: "24px" }, children: _jsx("label", { htmlFor: 'checkbox', className: Styles.ns_checkbox_label, children: _jsx("input", { id: "checkbox", type: "checkbox", className: `${Styles.ns_check_box} ${this.isSomeSelected() ? Styles.ns_indeterminate : ""}`, checked: this.getSelectedIDs().length > 0, onChange: this.toggleAllSelections }) }) }), this.getColumns(true).map(column => _jsx("th", { scope: "col", style: { width: column.formatter.width, cursor: "pointer" }, onClick: () => {
631
+ }, children: [_jsx("thead", { children: _jsxs("tr", { style: { gridTemplateColumns }, children: [this.props.checkbox &&
632
+ _jsx("th", { "data-cell-type": "checkbox", style: { width: "24px", height: "24px", padding: 0 }, children: _jsx("label", { htmlFor: 'checkbox', className: Styles.ns_checkbox_label, children: _jsx("input", { id: "checkbox", type: "checkbox", className: `${Styles.ns_check_box} ${this.isSomeSelected() ? Styles.ns_indeterminate : ""}`, checked: this.getSelectedIDs().length > 0, onChange: this.toggleAllSelections }) }) }), this.getColumns(true).map(column => _jsxs("th", { scope: "col", style: { width: this.getColumnWidth(column), cursor: "pointer", position: "relative", userSelect: "none" }, onClick: (e) => {
633
+ if (e.target.closest('[data-resize-handle]'))
634
+ return;
543
635
  let t = new BaseMetaTable(null, column.table.name, column.table.text);
544
636
  let c = new BaseMetaColumn(t, column.name, column.text, "", false);
545
637
  let items = this.getSortItems();
@@ -551,7 +643,7 @@ export class NSTable extends Component {
551
643
  else
552
644
  this.setSortItems(null);
553
645
  }
554
- }, children: column.text + " " + getSortSign(column) }, column.name))] }) }), _jsx("tbody", { className: Styles.ns_tbody, children: content }), _jsx("tfoot", { className: !show_pagination && !show_button_panel ? Styles.padding_0 : "", children: _jsx("tr", { className: Styles.ns_tfoot_row, children: _jsxs("td", { className: Styles.ns_tfoot_cell, children: [_jsx("div", { ref: this.TableScrollbar_Ref, className: Styles.ns_table_scrollbar, style: { bottom: show_pagination || show_button_panel ? 80 : 0 }, onScroll: () => {
646
+ }, children: [_jsx("span", { children: column.text + " " + getSortSign(column) }), _jsx("div", { "data-resize-handle": "true", className: Styles.ns_resize_handle, onMouseDown: (e) => this.startResize(e, column), onClick: (e) => e.stopPropagation() })] }, column.name))] }) }), _jsx("tbody", { className: Styles.ns_tbody, children: content }), _jsx("tfoot", { className: !show_pagination && !show_button_panel ? Styles.padding_0 : "", children: _jsx("tr", { className: Styles.ns_tfoot_row, children: _jsxs("td", { className: Styles.ns_tfoot_cell, children: [_jsx("div", { ref: this.TableScrollbar_Ref, className: Styles.ns_table_scrollbar, style: { bottom: show_pagination || show_button_panel ? 80 : 0 }, onScroll: () => {
555
647
  var _a, _b;
556
648
  if (this.Table_Ref.current)
557
649
  this.Table_Ref.current.scrollLeft = (_b = (_a = this.TableScrollbar_Ref.current) === null || _a === void 0 ? void 0 : _a.scrollLeft) !== null && _b !== void 0 ? _b : 0;
@@ -559,7 +651,7 @@ export class NSTable extends Component {
559
651
  _jsx(NSPagination, { ref: this.NSPagination, totalItems: this.state.totalItems, onPageChange: this.onPageChange }), _jsx(NSSpace, { size: NSSpaceSizeType.MINI, classList: ["d-lg-none"] }), show_button_panel &&
560
652
  _jsxs("div", { className: Styles.ns_button_panel, children: [this.state.pageSelectionMode !== PageSelectionMode.Hidden &&
561
653
  _jsx(NSDialogPageSelection, { icon: this.state.pageSelectionMode === PageSelectionMode.Print ? "https://static.namirasoft.com/image/concept/print/blue.svg" :
562
- this.state.pageSelectionMode === PageSelectionMode.CSV ? "https://static.namirasoft.com/image/concept/export/blue.svg" : "", current_page: (_h = (_g = this.NSPagination.current) === null || _g === void 0 ? void 0 : _g.getCurrentPage()) !== null && _h !== void 0 ? _h : 1, current_size: (_k = (_j = this.NSPagination.current) === null || _j === void 0 ? void 0 : _j.getPageSize()) !== null && _k !== void 0 ? _k : 0, max_page: this.state.totalItems, getItems: (page, size, selected) => __awaiter(this, void 0, void 0, function* () {
654
+ this.state.pageSelectionMode === PageSelectionMode.CSV ? "https://static.namirasoft.com/image/concept/export/blue.svg" : "", current_page: (_g = (_f = this.NSPagination.current) === null || _f === void 0 ? void 0 : _f.getCurrentPage()) !== null && _g !== void 0 ? _g : 1, current_size: (_j = (_h = this.NSPagination.current) === null || _h === void 0 ? void 0 : _h.getPageSize()) !== null && _j !== void 0 ? _j : 0, max_page: this.state.totalItems, getItems: (page, size, selected) => __awaiter(this, void 0, void 0, function* () {
563
655
  if (selected) {
564
656
  let rows = [];
565
657
  if (this.state.rows)
@@ -589,6 +681,9 @@ export class NSTable extends Component {
589
681
  }, style: { border: '1px solid rgba(255, 148, 50, 1)', width: "128px" } }), _jsx(NSButton, { title: 'Export', icon: { src: "https://static.namirasoft.com/image/concept/export/blue.svg" }, onClick: {
590
682
  action: () => { this.setState({ pageSelectionMode: PageSelectionMode.CSV }); },
591
683
  showLoading: false
684
+ }, style: { border: '1px solid rgba(255, 148, 50, 1)', width: "128px" } }), _jsx(NSButton, { title: this.state.fullscreen ? 'Minimize' : 'Maximize', icon: { src: `https://static.namirasoft.com/image/concept/${this.state.fullscreen ? 'minimize' : 'maximize'}/blue.svg` }, classList: [Styles.ns_fullscreen_button], onClick: {
685
+ action: this.toggleFullscreen,
686
+ showLoading: false
592
687
  }, style: { border: '1px solid rgba(255, 148, 50, 1)', width: "128px" } }), _jsx(NSButton, { title: 'Refresh', icon: { src: "https://static.namirasoft.com/image/concept/refresh/blue.svg" }, onClick: {
593
688
  action: (onFinished) => __awaiter(this, void 0, void 0, function* () {
594
689
  this.reload(null, null).then(onFinished).catch(onFinished);
@@ -1 +1 @@
1
- {"version":3,"file":"NSTable.js","sourceRoot":"","sources":["../../src/components/NSTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NSTable.js","sourceRoot":"","sources":["../../src/components/NSTable.tsx"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@
32
32
  padding: 16px 8px;
33
33
  display: block;
34
34
  background-color: #fff;
35
- transition: all 0.2s ease-in-out;
35
+ transition: background-color 0.2s ease-in-out;
36
36
  }
37
37
 
38
38
  .ns_table tbody tr {
@@ -43,20 +43,13 @@
43
43
  display: flex;
44
44
  flex-direction: row;
45
45
  gap: 16px;
46
- margin: 8px;
47
- padding: 8px 0;
46
+ margin: 0;
47
+ padding: 8px;
48
48
  font-size: 16px;
49
49
  justify-content: left;
50
50
  align-items: center;
51
51
  color: #000;
52
- height: max-content;
53
- max-height: 3rem;
54
- line-clamp: 2;
55
- -webkit-line-clamp: 2;
56
- -webkit-box-orient: vertical;
57
52
  overflow: hidden;
58
- padding-top: 0 !important;
59
- padding-bottom: 0 !important;
60
53
  overflow-wrap: break-word;
61
54
  word-break: break-word;
62
55
  }
@@ -164,9 +157,43 @@
164
157
  }
165
158
  }
166
159
 
160
+ .ns_resize_handle {
161
+ display: none;
162
+ }
163
+
164
+ @media screen and (min-width: 992px) {
165
+ .ns_resize_handle {
166
+ position: absolute;
167
+ z-index: 1;
168
+ top: 0;
169
+ right: 0;
170
+ width: 8px;
171
+ height: 100%;
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ cursor: col-resize;
176
+ user-select: none;
177
+ }
178
+
179
+ .ns_resize_handle::after {
180
+ content: '';
181
+ display: block;
182
+ width: 2px;
183
+ height: 20px;
184
+ border-radius: 2px;
185
+ background-color: rgba(255, 255, 255, 0.5);
186
+ }
187
+
188
+ .ns_resize_handle:hover {
189
+ color: rgba(255, 255, 255, 0.85);
190
+ }
191
+ }
192
+
167
193
  @media screen and (min-width: 992px) {
168
194
  .ns_table_wrapper {
169
195
  position: relative;
196
+ max-width: 100%;
170
197
  height: 100%;
171
198
  }
172
199
 
@@ -185,7 +212,7 @@
185
212
  margin: 0;
186
213
  border: 1px solid transparent;
187
214
  border-radius: 0;
188
- padding: 4px 8px;
215
+ padding: 4px 8px 4px 12px;
189
216
  display: grid;
190
217
  align-items: center;
191
218
  grid-auto-flow: column;
@@ -193,18 +220,46 @@
193
220
  }
194
221
 
195
222
  .ns_table th {
196
- margin: 8px;
197
- padding: 0;
223
+ margin: 0;
224
+ padding: 8px;
198
225
  font-size: 16px;
199
226
  font-weight: 500;
200
227
  line-height: 1.5rem;
201
228
  color: #fff;
229
+ overflow: hidden;
230
+ }
231
+
232
+ .ns_table th > span {
233
+ display: block;
234
+ overflow: hidden;
235
+ text-overflow: ellipsis;
236
+ white-space: nowrap;
202
237
  }
203
238
 
204
239
  .ns_table td {
205
- align-items: flex-start;
240
+ width: 100%;
241
+ margin: 0;
242
+ padding: 8px;
243
+ align-items: center;
206
244
  line-height: 1.5rem;
207
245
  text-align: left;
246
+ overflow: hidden;
247
+ white-space: nowrap;
248
+ overflow-wrap: unset;
249
+ word-break: unset;
250
+ }
251
+
252
+ .ns_table td > span {
253
+ flex: 1;
254
+ min-width: 0;
255
+ overflow: hidden;
256
+ text-overflow: ellipsis;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ .ns_table th[data-cell-type="checkbox"],
261
+ .ns_table td[data-cell-type="checkbox"] {
262
+ padding: 0;
208
263
  }
209
264
 
210
265
  .ns_table td::before {
@@ -316,6 +371,44 @@
316
371
  .ns_button_panel {
317
372
  flex-wrap: nowrap;
318
373
  justify-content: flex-end;
319
- gap: 24px;
374
+ gap: 12px;
375
+ }
376
+ }
377
+
378
+ .ns_fullscreen {
379
+ position: fixed !important;
380
+ top: 0;
381
+ left: 0;
382
+ width: 100vw !important;
383
+ height: 100vh !important;
384
+ max-width: 100vw !important;
385
+ max-height: 100vh !important;
386
+ margin: 0;
387
+ padding: 0;
388
+ z-index: 9999;
389
+ background-color: #fff;
390
+ }
391
+
392
+ .ns_fullscreen .ns_table {
393
+ max-height: 100% !important;
394
+ height: 100%;
395
+ border-radius: 0;
396
+ }
397
+
398
+ .ns_fullscreen .ns_tbody {
399
+ flex: 1 1 auto;
400
+ }
401
+
402
+ .ns_fullscreen .ns_table tfoot {
403
+ margin-top: auto;
404
+ }
405
+
406
+ .ns_fullscreen_button {
407
+ display: none !important;
408
+ }
409
+
410
+ @media screen and (min-width: 992px) {
411
+ .ns_fullscreen_button {
412
+ display: flex !important;
320
413
  }
321
414
  }
@@ -9,7 +9,7 @@ export class BaseURLImageFormatter extends BaseColumnFormatter {
9
9
  format(value, _, __, printable) {
10
10
  if (!printable) {
11
11
  return (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [value.image.url &&
12
- _jsx("img", { src: value.image.url, alt: value.image.alt, style: { width: "20px", height: "20px" } }), _jsx("a", { href: value.href, target: this.target, rel: "noreferrer", style: { width: "max-content" }, children: value.text })] }));
12
+ _jsx("img", { src: value.image.url, alt: value.image.alt, style: { width: "20px", height: "20px" } }), _jsx("a", { href: value.href, target: this.target, rel: "noreferrer", style: { overflow: "hidden", textOverflow: "ellipsis" }, children: value.text })] }));
13
13
  }
14
14
  return value.text;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseURLImageFormatter.js","sourceRoot":"","sources":["../../src/formatter/BaseURLImageFormatter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAG1D,YAAY,SAAoC,QAAQ,EAAE,QAAgB,OAAO;QAE7E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAIf,EAAE,CAAmB,EAAE,EAAsB,EAAE,SAAmB;QAE/D,IAAI,CAAC,SAAS,EACd,CAAC;YACG,OAAO,CACH,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAEzD,KAAK,CAAC,KAAK,CAAC,GAAG;wBACf,cAAK,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EAEjG,YAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,YAAG,KAAK,CAAC,IAAI,GAAK,IACzG,CACV,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"BaseURLImageFormatter.js","sourceRoot":"","sources":["../../src/formatter/BaseURLImageFormatter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAG1D,YAAY,SAAoC,QAAQ,EAAE,QAAgB,OAAO;QAE7E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAIf,EAAE,CAAmB,EAAE,EAAsB,EAAE,SAAmB;QAE/D,IAAI,CAAC,SAAS,EACd,CAAC;YACG,OAAO,CACH,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAEzD,KAAK,CAAC,KAAK,CAAC,GAAG;wBACf,cAAK,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EAEjG,YAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YAAG,KAAK,CAAC,IAAI,GAAK,IACjI,CACV,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
+ import { TimeOperation } from "namirasoft-core";
1
2
  import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
3
  export class DateFormatter extends BaseColumnFormatter {
3
4
  constructor(width = "130px") {
@@ -8,7 +9,7 @@ export class DateFormatter extends BaseColumnFormatter {
8
9
  if (value)
9
10
  try {
10
11
  let date = new Date(value);
11
- return date.toDateString();
12
+ return TimeOperation.format(date, "YYYY/MM/DD");
12
13
  }
13
14
  catch (e) {
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateFormatter.js","sourceRoot":"","sources":["../../src/formatter/DateFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IAElD,YAAY,QAAgB,OAAO;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU;QAEtB,IAAI,KAAK;YACL,IACA,CAAC;gBACG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EACV,CAAC;YACD,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"DateFormatter.js","sourceRoot":"","sources":["../../src/formatter/DateFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IAElD,YAAY,QAAgB,OAAO;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU;QAEtB,IAAI,KAAK;YACL,IACA,CAAC;gBACG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAC,EACV,CAAC;YACD,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
+ import { TimeOperation } from "namirasoft-core";
1
2
  import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
3
  export class DateTimeFormatter extends BaseColumnFormatter {
3
4
  constructor(width = "185px") {
@@ -8,7 +9,7 @@ export class DateTimeFormatter extends BaseColumnFormatter {
8
9
  if (value)
9
10
  try {
10
11
  let date = new Date(value);
11
- return date.toLocaleString();
12
+ return TimeOperation.format(date, "YYYY/MM/DD HH:mm:ss");
12
13
  }
13
14
  catch (e) {
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeFormatter.js","sourceRoot":"","sources":["../../src/formatter/DateTimeFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAEtD,YAAY,QAAgB,OAAO;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU;QAEtB,IAAI,KAAK;YACL,IACA,CAAC;gBACG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,CAAC,EACV,CAAC;YACD,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"DateTimeFormatter.js","sourceRoot":"","sources":["../../src/formatter/DateTimeFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAEtD,YAAY,QAAgB,OAAO;QAE/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU;QAEtB,IAAI,KAAK;YACL,IACA,CAAC;gBACG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EACV,CAAC;YACD,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.550",
11
+ "version": "1.4.552",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -32,7 +32,7 @@
32
32
  "@uiw/react-json-view": "^2.0.0-alpha.43",
33
33
  "antd": "^6.4.4",
34
34
  "async-mutex": "^0.5.0",
35
- "axios": "^1.17.0",
35
+ "axios": "^1.18.0",
36
36
  "bootstrap": "^5.3.8",
37
37
  "chart.js": "^4.5.1",
38
38
  "copyfiles": "^2.4.1",
@@ -80,6 +80,7 @@
80
80
 
81
81
  @media only screen and (min-width: 480px) {
82
82
  .ns_pagination_container {
83
+ padding-right: 24px;
83
84
  justify-content: space-between;
84
85
  flex-wrap: nowrap;
85
86
  }
@@ -32,7 +32,7 @@
32
32
  padding: 16px 8px;
33
33
  display: block;
34
34
  background-color: #fff;
35
- transition: all 0.2s ease-in-out;
35
+ transition: background-color 0.2s ease-in-out;
36
36
  }
37
37
 
38
38
  .ns_table tbody tr {
@@ -43,20 +43,13 @@
43
43
  display: flex;
44
44
  flex-direction: row;
45
45
  gap: 16px;
46
- margin: 8px;
47
- padding: 8px 0;
46
+ margin: 0;
47
+ padding: 8px;
48
48
  font-size: 16px;
49
49
  justify-content: left;
50
50
  align-items: center;
51
51
  color: #000;
52
- height: max-content;
53
- max-height: 3rem;
54
- line-clamp: 2;
55
- -webkit-line-clamp: 2;
56
- -webkit-box-orient: vertical;
57
52
  overflow: hidden;
58
- padding-top: 0 !important;
59
- padding-bottom: 0 !important;
60
53
  overflow-wrap: break-word;
61
54
  word-break: break-word;
62
55
  }
@@ -164,9 +157,43 @@
164
157
  }
165
158
  }
166
159
 
160
+ .ns_resize_handle {
161
+ display: none;
162
+ }
163
+
164
+ @media screen and (min-width: 992px) {
165
+ .ns_resize_handle {
166
+ position: absolute;
167
+ z-index: 1;
168
+ top: 0;
169
+ right: 0;
170
+ width: 8px;
171
+ height: 100%;
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ cursor: col-resize;
176
+ user-select: none;
177
+ }
178
+
179
+ .ns_resize_handle::after {
180
+ content: '';
181
+ display: block;
182
+ width: 2px;
183
+ height: 20px;
184
+ border-radius: 2px;
185
+ background-color: rgba(255, 255, 255, 0.5);
186
+ }
187
+
188
+ .ns_resize_handle:hover {
189
+ color: rgba(255, 255, 255, 0.85);
190
+ }
191
+ }
192
+
167
193
  @media screen and (min-width: 992px) {
168
194
  .ns_table_wrapper {
169
195
  position: relative;
196
+ max-width: 100%;
170
197
  height: 100%;
171
198
  }
172
199
 
@@ -185,7 +212,7 @@
185
212
  margin: 0;
186
213
  border: 1px solid transparent;
187
214
  border-radius: 0;
188
- padding: 4px 8px;
215
+ padding: 4px 8px 4px 12px;
189
216
  display: grid;
190
217
  align-items: center;
191
218
  grid-auto-flow: column;
@@ -193,18 +220,46 @@
193
220
  }
194
221
 
195
222
  .ns_table th {
196
- margin: 8px;
197
- padding: 0;
223
+ margin: 0;
224
+ padding: 8px;
198
225
  font-size: 16px;
199
226
  font-weight: 500;
200
227
  line-height: 1.5rem;
201
228
  color: #fff;
229
+ overflow: hidden;
230
+ }
231
+
232
+ .ns_table th > span {
233
+ display: block;
234
+ overflow: hidden;
235
+ text-overflow: ellipsis;
236
+ white-space: nowrap;
202
237
  }
203
238
 
204
239
  .ns_table td {
205
- align-items: flex-start;
240
+ width: 100%;
241
+ margin: 0;
242
+ padding: 8px;
243
+ align-items: center;
206
244
  line-height: 1.5rem;
207
245
  text-align: left;
246
+ overflow: hidden;
247
+ white-space: nowrap;
248
+ overflow-wrap: unset;
249
+ word-break: unset;
250
+ }
251
+
252
+ .ns_table td > span {
253
+ flex: 1;
254
+ min-width: 0;
255
+ overflow: hidden;
256
+ text-overflow: ellipsis;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ .ns_table th[data-cell-type="checkbox"],
261
+ .ns_table td[data-cell-type="checkbox"] {
262
+ padding: 0;
208
263
  }
209
264
 
210
265
  .ns_table td::before {
@@ -316,6 +371,44 @@
316
371
  .ns_button_panel {
317
372
  flex-wrap: nowrap;
318
373
  justify-content: flex-end;
319
- gap: 24px;
374
+ gap: 12px;
375
+ }
376
+ }
377
+
378
+ .ns_fullscreen {
379
+ position: fixed !important;
380
+ top: 0;
381
+ left: 0;
382
+ width: 100vw !important;
383
+ height: 100vh !important;
384
+ max-width: 100vw !important;
385
+ max-height: 100vh !important;
386
+ margin: 0;
387
+ padding: 0;
388
+ z-index: 9999;
389
+ background-color: #fff;
390
+ }
391
+
392
+ .ns_fullscreen .ns_table {
393
+ max-height: 100% !important;
394
+ height: 100%;
395
+ border-radius: 0;
396
+ }
397
+
398
+ .ns_fullscreen .ns_tbody {
399
+ flex: 1 1 auto;
400
+ }
401
+
402
+ .ns_fullscreen .ns_table tfoot {
403
+ margin-top: auto;
404
+ }
405
+
406
+ .ns_fullscreen_button {
407
+ display: none !important;
408
+ }
409
+
410
+ @media screen and (min-width: 992px) {
411
+ .ns_fullscreen_button {
412
+ display: flex !important;
320
413
  }
321
414
  }
@@ -89,6 +89,8 @@ interface NSTableState<RowType>
89
89
  expandedIDs: string[];
90
90
  pageSelectionMode: PageSelectionMode;
91
91
  sortItems: SortItem[] | null;
92
+ columnWidths: { [key: string]: number };
93
+ fullscreen: boolean;
92
94
  }
93
95
 
94
96
  enum PageSelectionMode
@@ -106,6 +108,8 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
106
108
  NSPagination = React.createRef<NSPagination>();
107
109
 
108
110
  private LastSelectedRowID: number | null = null;
111
+ private resizeMoveHandler: ((e: MouseEvent) => void) | null = null;
112
+ private resizeUpHandler: (() => void) | null = null;
109
113
 
110
114
  constructor(props: NSTableProps<RowType>)
111
115
  {
@@ -121,6 +125,8 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
121
125
  expandedIDs: [],
122
126
  pageSelectionMode: PageSelectionMode.Hidden,
123
127
  sortItems: this.getSortItems(),
128
+ columnWidths: this.loadColumnWidths(),
129
+ fullscreen: false,
124
130
  };
125
131
  this.getSortItemsKey = this.getSortItemsKey.bind(this);
126
132
  this.getSortItems = this.getSortItems.bind(this);
@@ -142,6 +148,11 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
142
148
  this.exportCSV = this.exportCSV.bind(this);
143
149
  this.isAllSelected = this.isAllSelected.bind(this);
144
150
  this.reload = this.reload.bind(this);
151
+ this.toggleFullscreen = this.toggleFullscreen.bind(this);
152
+ }
153
+ private toggleFullscreen()
154
+ {
155
+ this.setState({ fullscreen: !this.state.fullscreen }, () => this.syncScrollbarWidth());
145
156
  }
146
157
  private getSortItemsKey(): string
147
158
  {
@@ -198,14 +209,18 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
198
209
  {
199
210
  this.setState({ columns });
200
211
  }
212
+ private syncScrollbarWidth()
213
+ {
214
+ if (this.TableScrollbarContent_Ref.current)
215
+ this.TableScrollbarContent_Ref.current.style.width = (this.Table_Ref.current?.scrollWidth ?? 0) + "px";
216
+ }
201
217
  setRows(rows: RowType[] | null, totalItems: number)
202
218
  {
203
219
  this.setState({ rows, totalItems }, () =>
204
220
  {
205
221
  if (this.props.scroll !== false)
206
222
  this.Table_Ref.current?.scrollIntoView({ behavior: 'smooth', block: 'center' });
207
- if (this.TableScrollbarContent_Ref.current)
208
- this.TableScrollbarContent_Ref.current.style.width = (this.Table_Ref.current?.scrollWidth ?? 0) + "px";
223
+ this.syncScrollbarWidth();
209
224
  });
210
225
  }
211
226
  foreachColumn(visible: boolean | null, handler: (column: TableColumnInfo) => void)
@@ -484,13 +499,102 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
484
499
  return this.props.getCellFormattedValue(value, column, row, printable);
485
500
  return column.formatter.format(value, column, row, printable);
486
501
  }
502
+ private getColumnWidthsKey(): string
503
+ {
504
+ return "ns_table_" + this.props.name + "_column_widths";
505
+ }
506
+ private loadColumnWidths(): { [key: string]: number }
507
+ {
508
+ let storage = new IStorageLocal();
509
+ let item = storage.get(this.getColumnWidthsKey(), "");
510
+ try
511
+ {
512
+ return JSON.parse(item);
513
+ }
514
+ catch
515
+ {
516
+ return {};
517
+ }
518
+ }
519
+ private saveColumnWidths(widths: { [key: string]: number })
520
+ {
521
+ let storage = new IStorageLocal();
522
+ storage.set(this.getColumnWidthsKey(), JSON.stringify(widths));
523
+ }
524
+ private getColumnKey(column: TableColumnInfo): string
525
+ {
526
+ return column.table.name + "_" + column.name;
527
+ }
528
+ private getColumnWidth(column: TableColumnInfo): number
529
+ {
530
+ let key = this.getColumnKey(column);
531
+ if (this.state.columnWidths[key] !== undefined)
532
+ return this.state.columnWidths[key];
533
+ let w = column.formatter.width;
534
+ if (typeof w === 'number') return w;
535
+ if (typeof w === 'string')
536
+ {
537
+ let parsed = parseInt(w, 10);
538
+ if (!isNaN(parsed)) return parsed;
539
+ }
540
+ return 120;
541
+ }
542
+ private getGridTemplateColumns(): string
543
+ {
544
+ let parts: string[] = [];
545
+ if (this.props.checkbox)
546
+ parts.push("40px");
547
+ this.getColumns(true).forEach(column =>
548
+ {
549
+ parts.push(this.getColumnWidth(column) + "px");
550
+ });
551
+ return parts.join(" ");
552
+ }
553
+ private startResize(e: React.MouseEvent, column: TableColumnInfo)
554
+ {
555
+ e.preventDefault();
556
+ e.stopPropagation();
557
+ let key = this.getColumnKey(column);
558
+ let startX = e.clientX;
559
+ let startWidth = this.getColumnWidth(column);
560
+ let currentWidths = { ...this.state.columnWidths };
561
+ document.body.style.cursor = 'col-resize';
562
+ document.body.style.userSelect = 'none';
563
+ const onMouseMove = (ev: MouseEvent) =>
564
+ {
565
+ let delta = ev.clientX - startX;
566
+ let newWidth = Math.max(80, startWidth + delta);
567
+ currentWidths = { ...currentWidths, [key]: newWidth };
568
+ this.setState({ columnWidths: currentWidths }, () => this.syncScrollbarWidth());
569
+ };
570
+ const onMouseUp = () =>
571
+ {
572
+ document.body.style.cursor = '';
573
+ document.body.style.userSelect = '';
574
+ document.removeEventListener('mousemove', onMouseMove);
575
+ document.removeEventListener('mouseup', onMouseUp);
576
+ this.resizeMoveHandler = null;
577
+ this.resizeUpHandler = null;
578
+ this.saveColumnWidths(currentWidths);
579
+ };
580
+ this.resizeMoveHandler = onMouseMove;
581
+ this.resizeUpHandler = onMouseUp;
582
+ document.addEventListener('mousemove', onMouseMove);
583
+ document.addEventListener('mouseup', onMouseUp);
584
+ }
487
585
  override componentDidMount(): void
488
586
  {
489
587
  if (!this.NSPagination.current)
490
588
  this.reload(null, null);
491
589
 
492
- if (this.TableScrollbarContent_Ref.current)
493
- this.TableScrollbarContent_Ref.current.style.width = (this.Table_Ref.current?.scrollWidth ?? 0) + "px"
590
+ this.syncScrollbarWidth();
591
+ }
592
+ override componentWillUnmount(): void
593
+ {
594
+ if (this.resizeMoveHandler)
595
+ document.removeEventListener('mousemove', this.resizeMoveHandler);
596
+ if (this.resizeUpHandler)
597
+ document.removeEventListener('mouseup', this.resizeUpHandler);
494
598
  }
495
599
  override render()
496
600
  {
@@ -538,6 +642,7 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
538
642
  if (!overided)
539
643
  this.showModal(cell.formatted, cell.column.text);
540
644
  };
645
+ let gridTemplateColumns = this.getGridTemplateColumns();
541
646
  let content;
542
647
  if (this.state.rows === null)
543
648
  {
@@ -583,11 +688,13 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
583
688
  }
584
689
  let hasChildren = children.length > 0;
585
690
  let expanded = this.isExpanded(rowKey);
691
+ let rowAttrs = getRowAttributes(rowValue, rowIndex);
586
692
  let nodes: React.ReactNode[] = [];
587
693
  nodes.push(
588
694
  <tr
589
695
  key={reactKey}
590
- {...getRowAttributes(rowValue, rowIndex)}
696
+ {...rowAttrs}
697
+ style={{ ...(rowAttrs.style || {}), gridTemplateColumns }}
591
698
  className={`${isSelected ? Styles.ns_selected : ""} ${isLastSelected ? Styles.ns_last_selected : ""}`.trim()}
592
699
  onClick={(e) => !isCheckboxDisabled && onRowClick(e, row, isSelected)}
593
700
  >
@@ -621,7 +728,7 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
621
728
  {...getColumnAttributes(column)}
622
729
  data-label={`${column.text}: `}
623
730
  width={column.formatter.width}
624
- className='py-3'
731
+ className=''
625
732
  style={isFirstDataColumn && hierarchical ? { overflow: "visible" } : undefined}
626
733
  onClick={(e) =>
627
734
  {
@@ -788,7 +895,7 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
788
895
  return (
789
896
  <div
790
897
  id={this.props.id}
791
- className={[...this.props.classList ?? [], Styles.ns_table_wrapper]?.join(" ")}
898
+ className={[...this.props.classList ?? [], Styles.ns_table_wrapper, this.state.fullscreen ? Styles.ns_fullscreen : ""].filter(Boolean).join(" ")}
792
899
  style={{ ...this.props.style }}
793
900
  >
794
901
  <table
@@ -801,10 +908,10 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
801
908
  }}
802
909
  >
803
910
  <thead>
804
- <tr>
911
+ <tr style={{ gridTemplateColumns }}>
805
912
  {
806
913
  this.props.checkbox &&
807
- <th style={{ width: "24px", height: "24px" }}>
914
+ <th data-cell-type="checkbox" style={{ width: "24px", height: "24px", padding: 0 }}>
808
915
  <label
809
916
  htmlFor='checkbox'
810
917
  className={Styles.ns_checkbox_label}
@@ -823,9 +930,10 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
823
930
  this.getColumns(true).map(column => <th
824
931
  key={column.name}
825
932
  scope="col"
826
- style={{ width: column.formatter.width, cursor: "pointer" }}
827
- onClick={() =>
933
+ style={{ width: this.getColumnWidth(column), cursor: "pointer", position: "relative", userSelect: "none" }}
934
+ onClick={(e) =>
828
935
  {
936
+ if ((e.target as HTMLElement).closest('[data-resize-handle]')) return;
829
937
  let t = new BaseMetaTable(null, column.table.name, column.table.text);
830
938
  let c = new BaseMetaColumn(t, column.name, column.text, "", false);
831
939
  let items = this.getSortItems();
@@ -840,9 +948,13 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
840
948
  }
841
949
  }}
842
950
  >
843
- {
844
- column.text + " " + getSortSign(column)
845
- }
951
+ <span>{column.text + " " + getSortSign(column)}</span>
952
+ <div
953
+ data-resize-handle="true"
954
+ className={Styles.ns_resize_handle}
955
+ onMouseDown={(e) => this.startResize(e, column)}
956
+ onClick={(e) => e.stopPropagation()}
957
+ />
846
958
  </th>)
847
959
  }
848
960
  </tr>
@@ -947,6 +1059,16 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
947
1059
  }}
948
1060
  style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }}
949
1061
  />
1062
+ <NSButton
1063
+ title={this.state.fullscreen ? 'Minimize' : 'Maximize'}
1064
+ icon={{ src: `https://static.namirasoft.com/image/concept/${this.state.fullscreen ? 'minimize' : 'maximize'}/blue.svg` }}
1065
+ classList={[Styles.ns_fullscreen_button]}
1066
+ onClick={{
1067
+ action: this.toggleFullscreen,
1068
+ showLoading: false
1069
+ }}
1070
+ style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }}
1071
+ />
950
1072
  <NSButton
951
1073
  title='Refresh'
952
1074
  icon={{ src: "https://static.namirasoft.com/image/concept/refresh/blue.svg" }}
@@ -25,7 +25,7 @@ export class BaseURLImageFormatter extends BaseColumnFormatter
25
25
  value.image.url &&
26
26
  <img src={value.image.url} alt={value.image.alt} style={{ width: "20px", height: "20px" }} />
27
27
  }
28
- <a href={value.href} target={this.target} rel="noreferrer" style={{ width: "max-content" }}>{value.text}</a>
28
+ <a href={value.href} target={this.target} rel="noreferrer" style={{ overflow: "hidden", textOverflow: "ellipsis" }}>{value.text}</a>
29
29
  </div >
30
30
  );
31
31
  }
@@ -1,3 +1,4 @@
1
+ import { TimeOperation } from "namirasoft-core";
1
2
  import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
3
 
3
4
  export class DateFormatter extends BaseColumnFormatter
@@ -13,7 +14,7 @@ export class DateFormatter extends BaseColumnFormatter
13
14
  try
14
15
  {
15
16
  let date = new Date(value);
16
- return date.toDateString();
17
+ return TimeOperation.format(date, "YYYY/MM/DD");
17
18
  } catch (e)
18
19
  {
19
20
  }
@@ -1,3 +1,4 @@
1
+ import { TimeOperation } from "namirasoft-core";
1
2
  import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
3
 
3
4
  export class DateTimeFormatter extends BaseColumnFormatter
@@ -13,7 +14,7 @@ export class DateTimeFormatter extends BaseColumnFormatter
13
14
  try
14
15
  {
15
16
  let date = new Date(value);
16
- return date.toLocaleString();
17
+ return TimeOperation.format(date, "YYYY/MM/DD HH:mm:ss");
17
18
  } catch (e)
18
19
  {
19
20
  }