yummy-guide-generic-administrate 0.8.7 → 0.8.8
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.
- checksums.yaml +4 -4
- data/README.md +34 -52
- data/app/assets/javascripts/yummy_guide_administrate/column_resizer.js +19 -118
- data/app/assets/stylesheets/yummy_guide_administrate/_column_resizer.scss +2 -10
- data/app/assets/stylesheets/yummy_guide_administrate/_resizable_navigation.scss +46 -13
- data/app/assets/stylesheets/yummy_guide_administrate/components.scss +532 -210
- data/app/helpers/yummy_guide/administrate/collection_helper.rb +91 -14
- data/app/views/yummy_guide/administrate/administrate/application/_collection.html.erb +9 -14
- data/lib/yummy_guide/administrate/version.rb +1 -1
- data/spec/yummy_guide/administrate/collection_helper_spec.rb +44 -0
- data/spec/yummy_guide/administrate/column_resizer_asset_spec.rb +76 -15
- metadata +2 -4
- data/app/assets/javascripts/yummy_guide_administrate/sticky_table_headers.js +0 -912
- data/app/views/yummy_guide/administrate/administrate/application/_fixed_table_header.html.erb +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 74f5b683cf773df946e0d0e56e1abd66d931e9e5c660afa77c30b80472ae23c6
|
|
4
|
+
data.tar.gz: e3a282a8a3cfdedf00d02a5071ce9ae325ea164e905931e14ebcdc7f8bf1aad5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 410dbc0171c5cfc6c0b83c12e7943d58a959707d214c13b570f83973941214394741447654ea658df789c3c3b3f20c097be41fdc8d1fa0f8201ecf723f796f8a
|
|
7
|
+
data.tar.gz: 1f750eec8e2b1561d5dde53484be393dfa9194c0af204c6dc251ae27dd6b7a605880de00fae2db9d8e51dfe7901ba8b55d89a28f50fe5296e7055f513695cd6e
|
data/README.md
CHANGED
|
@@ -51,7 +51,6 @@ bundle install
|
|
|
51
51
|
- 管理画面フォーム用の number input text 化 helper
|
|
52
52
|
- 共通 partial / assets
|
|
53
53
|
- collection partial
|
|
54
|
-
- fixed table header partial
|
|
55
54
|
- filter form partial
|
|
56
55
|
- `clipboards.js`
|
|
57
56
|
- `datetime_input.js`
|
|
@@ -59,7 +58,6 @@ bundle install
|
|
|
59
58
|
- `filter_controls.js`
|
|
60
59
|
- `filter_form.js`
|
|
61
60
|
- `sticky_left_columns.js`
|
|
62
|
-
- `sticky_table_headers.js`
|
|
63
61
|
- `tooltips.js`
|
|
64
62
|
- `components.css`
|
|
65
63
|
- 共通 field
|
|
@@ -143,18 +141,27 @@ engine の共通 partial に委譲します。
|
|
|
143
141
|
#### 1. 最小構成
|
|
144
142
|
|
|
145
143
|
gem 付属の collection partial をそのまま使う場合、table wrapper と table 本体に
|
|
146
|
-
必要な `data-*`
|
|
147
|
-
|
|
144
|
+
必要な `data-*` 属性はすでに入っています。`data-css-sticky-table` は sticky 対象の
|
|
145
|
+
識別子として使い、wrapper 自体には縦横スクロールを持たせません。そのため、ページ
|
|
146
|
+
スクロールに合わせて `thead th` が sticky で固定されます。カラム幅調整を使う場合は
|
|
148
147
|
`yummy_guide_administrate/column_resizer.js` も読み込んでください。
|
|
149
148
|
|
|
150
149
|
内部的には以下のような構造になります。
|
|
151
150
|
|
|
152
151
|
```erb
|
|
153
|
-
|
|
152
|
+
<% table_definition = yummy_guide_administrate_collection_table_definition(
|
|
153
|
+
page: page,
|
|
154
|
+
collection_presenter: collection_presenter
|
|
155
|
+
) %>
|
|
156
|
+
|
|
157
|
+
<div class="scroll-table" data-css-sticky-table>
|
|
154
158
|
<table
|
|
155
159
|
aria-labelledby="<%= table_title %>"
|
|
156
|
-
data-fixed-columns-count="<%=
|
|
157
|
-
data-fixed-
|
|
160
|
+
data-fixed-columns-count="<%= table_definition.fixed_columns_count %>"
|
|
161
|
+
data-mobile-fixed-columns-count="<%= table_definition.mobile_fixed_columns_count %>"
|
|
162
|
+
<% if table_definition.table_style.present? %>
|
|
163
|
+
style="<%= table_definition.table_style %>"
|
|
164
|
+
<% end %>
|
|
158
165
|
>
|
|
159
166
|
...
|
|
160
167
|
</table>
|
|
@@ -163,63 +170,39 @@ gem 付属の collection partial をそのまま使う場合、table wrapper と
|
|
|
163
170
|
|
|
164
171
|
複数画面で幅設定を共有したい場合は、render local に `column_width_storage_scope: "admin.reservations"` のような任意の scope 名を渡してください。
|
|
165
172
|
|
|
166
|
-
#### 2.
|
|
167
|
-
|
|
168
|
-
固定ヘッダーの表示位置をページ上部の特定箇所に合わせたい場合は、
|
|
169
|
-
`data-fixed-table-header` を持つ slot を `.main-content` 配下に置きます。
|
|
170
|
-
gem には専用 partial があります。
|
|
171
|
-
|
|
172
|
-
```erb
|
|
173
|
-
<header class="main-content__header">
|
|
174
|
-
<h1 id="page-title">Articles</h1>
|
|
175
|
-
<%= render "yummy_guide/administrate/administrate/application/fixed_table_header" %>
|
|
176
|
-
</header>
|
|
177
|
-
|
|
178
|
-
<section class="main-content__body main-content__body--flush">
|
|
179
|
-
<%= render "yummy_guide/administrate/administrate/application/collection",
|
|
180
|
-
collection_presenter: collection_presenter,
|
|
181
|
-
page: page,
|
|
182
|
-
resources: resources,
|
|
183
|
-
table_title: "page-title",
|
|
184
|
-
namespace: :admin,
|
|
185
|
-
resource_class: resource_class,
|
|
186
|
-
collection_field_name: resource_name %>
|
|
187
|
-
</section>
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
`fixed_table_header` partial 自体は以下の 1 行です。
|
|
191
|
-
|
|
192
|
-
```erb
|
|
193
|
-
<div class="yummy-guide-administrate-fixed-table-header" data-fixed-table-header hidden></div>
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
この slot を置かない場合でも、JS が table の直前に自動生成します。配置を制御
|
|
197
|
-
したいときだけ明示してください。desktop では LMJ と同じく、`main-content__body--flush`
|
|
198
|
-
と組み合わせることで fixed header のクリップ幅が一覧 body と揃い、一覧 wrapper
|
|
199
|
-
自体には縦スクロールを持たせません。
|
|
200
|
-
|
|
201
|
-
#### 3. 自前の table partial を使う場合
|
|
173
|
+
#### 2. 自前の table partial を使う場合
|
|
202
174
|
|
|
203
175
|
独自の collection partial を書く場合は、少なくとも以下を満たしてください。
|
|
204
176
|
|
|
205
|
-
-
|
|
206
|
-
-
|
|
177
|
+
- table wrapper に `data-css-sticky-table` を付ける
|
|
178
|
+
- `data-css-sticky-table` を付けた wrapper に縦横スクロールを持たせない
|
|
207
179
|
- table に `data-fixed-columns-count` を付ける
|
|
180
|
+
- table に `data-mobile-fixed-columns-count` を付ける
|
|
181
|
+
- 固定列数・列幅・固定列class/styleは `yummy_guide_administrate_collection_table_definition` から参照する
|
|
208
182
|
- header の `aria-labelledby` がページタイトルと対応している
|
|
209
183
|
|
|
210
184
|
```erb
|
|
211
|
-
|
|
185
|
+
<% table_definition = yummy_guide_administrate_collection_table_definition(
|
|
186
|
+
page: page,
|
|
187
|
+
collection_presenter: collection_presenter,
|
|
188
|
+
column_names: %i[id name]
|
|
189
|
+
) %>
|
|
212
190
|
|
|
213
|
-
<div class="scroll-table" data-
|
|
191
|
+
<div class="scroll-table" data-css-sticky-table>
|
|
214
192
|
<table
|
|
215
193
|
aria-labelledby="page-title"
|
|
216
|
-
data-fixed-
|
|
217
|
-
data-fixed-columns-count="<%=
|
|
194
|
+
data-fixed-columns-count="<%= table_definition.fixed_columns_count %>"
|
|
195
|
+
data-mobile-fixed-columns-count="<%= table_definition.mobile_fixed_columns_count %>"
|
|
196
|
+
<% if table_definition.table_style.present? %>
|
|
197
|
+
style="<%= table_definition.table_style %>"
|
|
198
|
+
<% end %>
|
|
218
199
|
>
|
|
219
200
|
<thead>
|
|
220
201
|
<tr>
|
|
221
|
-
|
|
222
|
-
<th>
|
|
202
|
+
<% id_column = table_definition.sticky_column(:id) %>
|
|
203
|
+
<th class="<%= id_column[:class] %>" style="<%= id_column[:style] %>">ID</th>
|
|
204
|
+
<% name_column = table_definition.sticky_column(:name) %>
|
|
205
|
+
<th class="<%= name_column[:class] %>" style="<%= name_column[:style] %>">Name</th>
|
|
223
206
|
<th class="sticky actions-column">Actions</th>
|
|
224
207
|
</tr>
|
|
225
208
|
</thead>
|
|
@@ -502,7 +485,6 @@ block を使わない場合、tooltip 本文はテキストとして扱われ、
|
|
|
502
485
|
//= require yummy_guide_administrate/filter_controls
|
|
503
486
|
//= require yummy_guide_administrate/filter_form
|
|
504
487
|
//= require yummy_guide_administrate/sticky_left_columns
|
|
505
|
-
//= require yummy_guide_administrate/sticky_table_headers
|
|
506
488
|
//= require yummy_guide_administrate/tooltips
|
|
507
489
|
```
|
|
508
490
|
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
var DRAGGING_BODY_CLASS = 'admin-column-resizer--dragging';
|
|
7
7
|
var APPLYING_BODY_CLASS = 'admin-column-resizer--applying';
|
|
8
8
|
var PREVIEW_CLASS = 'admin-column-resizer__preview';
|
|
9
|
-
var FIXED_HEADER_TABLE_CLASS = 'table-fixed-header__table';
|
|
10
9
|
var ADJUSTED_COLUMNS_ATTRIBUTE = 'data-admin-column-resizer-adjusted-columns';
|
|
11
10
|
var STORAGE_PREFIX = 'yummyGuideAdminColumnWidths:v1:';
|
|
12
11
|
var STYLE_ELEMENT_ID = 'admin-column-resizer-rules';
|
|
@@ -20,14 +19,10 @@
|
|
|
20
19
|
var generatedRuleCount = 0;
|
|
21
20
|
var initializedHandles = new WeakSet();
|
|
22
21
|
var tableStates = new WeakMap();
|
|
23
|
-
var stickyRefreshFrame = null;
|
|
24
|
-
var stickyRefreshCallbacks = [];
|
|
25
22
|
var applyingWidth = false;
|
|
26
23
|
|
|
27
24
|
function storageScopeForTable(table) {
|
|
28
|
-
var
|
|
29
|
-
var scopedTable = sourceTable || table;
|
|
30
|
-
var scope = scopedTable && scopedTable.getAttribute('data-column-resizer-storage-scope');
|
|
25
|
+
var scope = table && table.getAttribute('data-column-resizer-storage-scope');
|
|
31
26
|
|
|
32
27
|
return scope || window.location.pathname;
|
|
33
28
|
}
|
|
@@ -115,39 +110,15 @@
|
|
|
115
110
|
.replace(/\s+/g, ' ');
|
|
116
111
|
}
|
|
117
112
|
|
|
118
|
-
function headerSignature(table) {
|
|
119
|
-
return columnHeaders(table).map(function(header, index) {
|
|
120
|
-
return normalizedIdentifier(header.dataset.columnId || headerLabel(header) || ('column_' + (index + 1)));
|
|
121
|
-
}).join('__');
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function matchingSourceTable(table) {
|
|
125
|
-
if (!table) return null;
|
|
126
|
-
if (!table.classList.contains(FIXED_HEADER_TABLE_CLASS)) return null;
|
|
127
|
-
|
|
128
|
-
var signature = headerSignature(table);
|
|
129
|
-
return sourceTables().find(function(sourceTable) {
|
|
130
|
-
return headerSignature(sourceTable) === signature;
|
|
131
|
-
}) || null;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
113
|
function tableIdentifier(table) {
|
|
135
114
|
if (table.dataset.adminColumnResizerTableId) return table.dataset.adminColumnResizerTableId;
|
|
136
115
|
|
|
137
|
-
var sourceTable = matchingSourceTable(table);
|
|
138
|
-
if (sourceTable) {
|
|
139
|
-
table.dataset.adminColumnResizerTableId = tableIdentifier(sourceTable);
|
|
140
|
-
return table.dataset.adminColumnResizerTableId;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
116
|
var tableLabel = table.id ||
|
|
144
117
|
table.getAttribute('aria-labelledby') ||
|
|
145
|
-
table.getAttribute('data-admin-column-resizer-table')
|
|
146
|
-
table.getAttribute('data-fixed-header-source');
|
|
118
|
+
table.getAttribute('data-admin-column-resizer-table');
|
|
147
119
|
|
|
148
120
|
if (!tableLabel) {
|
|
149
|
-
|
|
150
|
-
tableLabel = 'table_' + (index >= 0 ? index + 1 : allTrackedTables().indexOf(table) + 1);
|
|
121
|
+
tableLabel = 'table_' + (allTrackedTables().indexOf(table) + 1);
|
|
151
122
|
}
|
|
152
123
|
|
|
153
124
|
table.dataset.adminColumnResizerTableId = normalizedIdentifier(tableLabel);
|
|
@@ -259,19 +230,12 @@
|
|
|
259
230
|
return Array.from(document.querySelectorAll(TABLE_SELECTOR));
|
|
260
231
|
}
|
|
261
232
|
|
|
262
|
-
function sourceTables() {
|
|
263
|
-
return allTrackedTables().filter(function(table) {
|
|
264
|
-
return table.getAttribute('aria-hidden') !== 'true' && !table.classList.contains(FIXED_HEADER_TABLE_CLASS);
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
|
|
268
233
|
function stateForTable(table) {
|
|
269
234
|
return tableStates.get(table) || configureTable(table);
|
|
270
235
|
}
|
|
271
236
|
|
|
272
237
|
function ensureManagedColgroup(table, columnCount) {
|
|
273
|
-
var
|
|
274
|
-
var colgroup = fixedHeaderColgroup || table.querySelector('colgroup[data-admin-column-resizer-colgroup]');
|
|
238
|
+
var colgroup = table.querySelector('colgroup[data-admin-column-resizer-colgroup]');
|
|
275
239
|
|
|
276
240
|
if (!colgroup) {
|
|
277
241
|
colgroup = document.createElement('colgroup');
|
|
@@ -407,7 +371,7 @@
|
|
|
407
371
|
}
|
|
408
372
|
|
|
409
373
|
function managedColumnWidth(table, index) {
|
|
410
|
-
var colgroup = table && table.querySelector('colgroup[data-admin-column-resizer-colgroup]
|
|
374
|
+
var colgroup = table && table.querySelector('colgroup[data-admin-column-resizer-colgroup]');
|
|
411
375
|
var col = colgroup && colgroup.children[index];
|
|
412
376
|
|
|
413
377
|
return col ? parsedPixelValue(col.style.width) : 0;
|
|
@@ -447,7 +411,7 @@
|
|
|
447
411
|
}
|
|
448
412
|
|
|
449
413
|
function refreshCssStickyLeftColumns(table) {
|
|
450
|
-
if (!table || table.getAttribute('aria-hidden') === 'true'
|
|
414
|
+
if (!table || table.getAttribute('aria-hidden') === 'true') return;
|
|
451
415
|
|
|
452
416
|
refreshCssStickyLeftColumnSet(table, 'sticky-left', '--sticky-left', '--sticky-width');
|
|
453
417
|
refreshCssStickyLeftColumnSet(table, 'sticky-left-mobile', '--sticky-mobile-left', '--sticky-mobile-width');
|
|
@@ -491,41 +455,10 @@
|
|
|
491
455
|
});
|
|
492
456
|
}
|
|
493
457
|
|
|
494
|
-
function dispatchStickyRefresh() {
|
|
495
|
-
stickyRefreshFrame = null;
|
|
496
|
-
window.dispatchEvent(new Event('resize'));
|
|
497
|
-
|
|
498
|
-
var callbacks = stickyRefreshCallbacks;
|
|
499
|
-
stickyRefreshCallbacks = [];
|
|
500
|
-
callbacks.forEach(function(callback) {
|
|
501
|
-
callback();
|
|
502
|
-
});
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
function scheduleStickyRefresh(callback) {
|
|
506
|
-
if (callback) {
|
|
507
|
-
stickyRefreshCallbacks.push(callback);
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
if (stickyRefreshFrame) return;
|
|
511
|
-
|
|
512
|
-
stickyRefreshFrame = window.requestAnimationFrame(dispatchStickyRefresh);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
458
|
function sourceTableForHandle(handle) {
|
|
516
|
-
var header = handle.closest('th');
|
|
517
|
-
if (!header) return null;
|
|
518
|
-
|
|
519
459
|
var table = handle.closest(TABLE_SELECTOR);
|
|
520
|
-
var columnId = headerColumnId(header);
|
|
521
460
|
|
|
522
|
-
|
|
523
|
-
return table;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
return sourceTables().find(function(sourceTable) {
|
|
527
|
-
return columnHeader(sourceTable, columnId);
|
|
528
|
-
}) || matchingSourceTable(table) || null;
|
|
461
|
+
return table && table.getAttribute('aria-hidden') !== 'true' ? table : null;
|
|
529
462
|
}
|
|
530
463
|
|
|
531
464
|
function previewBoundsForTable(table, header) {
|
|
@@ -533,10 +466,8 @@
|
|
|
533
466
|
var tableRect = table.getBoundingClientRect();
|
|
534
467
|
var scrollContainer = table.closest('.sticky-table-scroll, .scroll-table, .home-table__wrapper');
|
|
535
468
|
var scrollRect = scrollContainer ? scrollContainer.getBoundingClientRect() : tableRect;
|
|
536
|
-
var headerTable = header.closest(TABLE_SELECTOR);
|
|
537
|
-
var fromFixedHeader = headerTable && headerTable.classList.contains(FIXED_HEADER_TABLE_CLASS);
|
|
538
469
|
var viewportBottom = viewportHeight();
|
|
539
|
-
var top =
|
|
470
|
+
var top = Math.max(tableRect.top, scrollRect.top);
|
|
540
471
|
var bottom = Math.min(viewportBottom, Math.max(tableRect.bottom, scrollRect.bottom, headerRect.bottom));
|
|
541
472
|
|
|
542
473
|
top = Math.max(0, Math.min(top, viewportBottom));
|
|
@@ -551,6 +482,10 @@
|
|
|
551
482
|
};
|
|
552
483
|
}
|
|
553
484
|
|
|
485
|
+
function previewParentForTable(table) {
|
|
486
|
+
return table.closest('.main-content, .admin-main') || document.body;
|
|
487
|
+
}
|
|
488
|
+
|
|
554
489
|
function updateDragPreview(preview, width) {
|
|
555
490
|
if (!preview) return;
|
|
556
491
|
|
|
@@ -567,7 +502,7 @@
|
|
|
567
502
|
element.style.top = cssPixelValue(bounds.top);
|
|
568
503
|
element.style.height = cssPixelValue(bounds.height);
|
|
569
504
|
|
|
570
|
-
|
|
505
|
+
previewParentForTable(table).appendChild(element);
|
|
571
506
|
|
|
572
507
|
var preview = {
|
|
573
508
|
element: element
|
|
@@ -673,37 +608,6 @@
|
|
|
673
608
|
});
|
|
674
609
|
}
|
|
675
610
|
|
|
676
|
-
function refreshStickyHeaderColumn(pendingWidth, callback) {
|
|
677
|
-
var api = window.YummyGuideAdministrateStickyTableHeaders;
|
|
678
|
-
|
|
679
|
-
if (api && typeof api.refreshColumnWidth === 'function') {
|
|
680
|
-
var refreshed = api.refreshColumnWidth({
|
|
681
|
-
sourceTable: pendingWidth.sourceTable,
|
|
682
|
-
columnId: pendingWidth.columnId,
|
|
683
|
-
width: pendingWidth.width
|
|
684
|
-
});
|
|
685
|
-
|
|
686
|
-
if (refreshed) {
|
|
687
|
-
window.requestAnimationFrame(callback);
|
|
688
|
-
return;
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
scheduleStickyRefresh(callback);
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
function refreshStickyHeaderTable(sourceTable, callback) {
|
|
696
|
-
var api = window.YummyGuideAdministrateStickyTableHeaders;
|
|
697
|
-
|
|
698
|
-
if (api && typeof api.refreshTable === 'function') {
|
|
699
|
-
var refreshed = api.refreshTable(sourceTable, callback);
|
|
700
|
-
|
|
701
|
-
if (refreshed) return;
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
scheduleStickyRefresh(callback);
|
|
705
|
-
}
|
|
706
|
-
|
|
707
611
|
function refreshStickyLeftColumns(sourceTable) {
|
|
708
612
|
var api = window.YummyGuideAdministrateStickyLeftColumns;
|
|
709
613
|
|
|
@@ -767,7 +671,7 @@
|
|
|
767
671
|
widths[pendingWidth.columnId] = preciseNumber(pendingWidth.width);
|
|
768
672
|
safeWriteWidths(pendingWidth.storageKey, widths);
|
|
769
673
|
refreshStickyLeftColumnsForWidth(pendingWidth);
|
|
770
|
-
|
|
674
|
+
window.requestAnimationFrame(function() {
|
|
771
675
|
stopApplyingWidth(pendingWidth.preview);
|
|
772
676
|
});
|
|
773
677
|
} catch (error) {
|
|
@@ -888,15 +792,12 @@
|
|
|
888
792
|
clearColumnWidth(columnId, key);
|
|
889
793
|
startApplyingWidth();
|
|
890
794
|
if (sourceTable) {
|
|
891
|
-
|
|
892
|
-
refreshStickyLeftColumns(sourceTable);
|
|
893
|
-
stopApplyingWidth(null);
|
|
894
|
-
});
|
|
895
|
-
} else {
|
|
896
|
-
scheduleStickyRefresh(function() {
|
|
897
|
-
stopApplyingWidth(null);
|
|
898
|
-
});
|
|
795
|
+
refreshStickyLeftColumns(sourceTable);
|
|
899
796
|
}
|
|
797
|
+
|
|
798
|
+
window.requestAnimationFrame(function() {
|
|
799
|
+
stopApplyingWidth(null);
|
|
800
|
+
});
|
|
900
801
|
}
|
|
901
802
|
|
|
902
803
|
function stopHandleClick(event) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
table.admin-column-resizer__table
|
|
1
|
+
table.admin-column-resizer__table {
|
|
2
2
|
table-layout: auto !important;
|
|
3
3
|
width: max-content !important;
|
|
4
4
|
min-width: 100% !important;
|
|
@@ -56,7 +56,7 @@ table.admin-column-resizer__table:not(.table-fixed-header__table) {
|
|
|
56
56
|
|
|
57
57
|
.admin-column-resizer__preview {
|
|
58
58
|
position: fixed;
|
|
59
|
-
z-index:
|
|
59
|
+
z-index: var(--admin-column-resizer-preview-z-index, 14);
|
|
60
60
|
box-sizing: border-box;
|
|
61
61
|
pointer-events: none;
|
|
62
62
|
background: rgba(37, 99, 235, 0.12);
|
|
@@ -67,14 +67,6 @@ table.admin-column-resizer__table:not(.table-fixed-header__table) {
|
|
|
67
67
|
will-change: width;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
[data-fixed-table-header] .admin-column-resizer__handle {
|
|
71
|
-
pointer-events: auto;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
[data-fixed-table-header] .table-fixed-header__table th.admin-column-resizer__header:not(.sticky):not(.sticky-left) {
|
|
75
|
-
position: relative;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
70
|
@media (pointer: coarse), screen and (max-width: 767px) {
|
|
79
71
|
.admin-column-resizer__handle {
|
|
80
72
|
right: -14px;
|
|
@@ -3,15 +3,30 @@
|
|
|
3
3
|
body.admin-body > aside {
|
|
4
4
|
--admin-navigation-default-width: 240px;
|
|
5
5
|
align-self: flex-start;
|
|
6
|
+
background: var(--admin-page-background, #f6f7f7);
|
|
7
|
+
box-shadow:
|
|
8
|
+
calc(0px - var(--admin-layout-inline-padding, 0px)) 0 0 var(--admin-layout-inline-padding, 0px) var(--admin-page-background, #f6f7f7),
|
|
9
|
+
0 calc(0px - var(--admin-navigation-top, 1rem)) 0 var(--admin-navigation-top, 1rem) var(--admin-page-background, #f6f7f7),
|
|
10
|
+
0 var(--admin-navigation-bottom, 1rem) 0 var(--admin-navigation-bottom, 1rem) var(--admin-page-background, #f6f7f7);
|
|
6
11
|
box-sizing: border-box;
|
|
12
|
+
display: flex;
|
|
7
13
|
flex: 0 0 clamp(25px, var(--admin-navigation-width, var(--admin-navigation-default-width)), 250px);
|
|
8
|
-
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
bottom: var(--admin-navigation-bottom, 1rem);
|
|
16
|
+
height: calc(100vh - var(--admin-navigation-top, 1rem) - var(--admin-navigation-bottom, 1rem));
|
|
17
|
+
height: calc(100dvh - var(--admin-navigation-top, 1rem) - var(--admin-navigation-bottom, 1rem));
|
|
18
|
+
max-height: calc(100vh - var(--admin-navigation-top, 1rem) - var(--admin-navigation-bottom, 1rem));
|
|
19
|
+
max-height: calc(100dvh - var(--admin-navigation-top, 1rem) - var(--admin-navigation-bottom, 1rem));
|
|
20
|
+
min-height: 0;
|
|
9
21
|
min-width: 25px;
|
|
10
22
|
max-width: 250px;
|
|
11
|
-
overflow:
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
overflow-x: hidden;
|
|
24
|
+
overflow-y: auto;
|
|
25
|
+
position: fixed;
|
|
26
|
+
top: var(--admin-navigation-top, 1rem);
|
|
27
|
+
left: var(--admin-layout-inline-padding, 0);
|
|
14
28
|
width: clamp(25px, var(--admin-navigation-width, var(--admin-navigation-default-width)), 250px);
|
|
29
|
+
z-index: var(--admin-navigation-z-index, 40);
|
|
15
30
|
}
|
|
16
31
|
|
|
17
32
|
body.admin-body > aside:not(.navigation) {
|
|
@@ -19,22 +34,28 @@
|
|
|
19
34
|
}
|
|
20
35
|
|
|
21
36
|
.app-container > .navigation {
|
|
22
|
-
|
|
23
|
-
max-height: calc(100dvh - 3em);
|
|
24
|
-
top: 1.5em;
|
|
37
|
+
top: var(--admin-navigation-top, 1.5rem);
|
|
25
38
|
}
|
|
26
39
|
|
|
27
|
-
.app-container > .main-content
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
.app-container > .main-content {
|
|
41
|
+
flex: 0 0 calc(100% - var(--admin-main-left-offset, 0px));
|
|
42
|
+
margin-left: var(--admin-main-left-offset, 0);
|
|
30
43
|
min-width: 0;
|
|
31
44
|
position: relative;
|
|
45
|
+
inline-size: calc(100% - var(--admin-main-left-offset, 0px));
|
|
46
|
+
max-inline-size: calc(100% - var(--admin-main-left-offset, 0px));
|
|
47
|
+
width: calc(100% - var(--admin-main-left-offset, 0px));
|
|
32
48
|
z-index: 1;
|
|
33
|
-
width: auto;
|
|
34
49
|
}
|
|
35
50
|
|
|
36
|
-
body.admin-body > main.main
|
|
37
|
-
|
|
51
|
+
body.admin-body > main.admin-main {
|
|
52
|
+
box-sizing: border-box;
|
|
53
|
+
margin-left: var(--admin-sticky-page-header-left, var(--admin-main-left-offset, 0px));
|
|
54
|
+
min-width: 0;
|
|
55
|
+
position: relative;
|
|
56
|
+
max-inline-size: calc(100% - var(--admin-sticky-page-header-left, var(--admin-main-left-offset, 0px)) - var(--admin-layout-inline-padding, 0px));
|
|
57
|
+
width: calc(100% - var(--admin-sticky-page-header-left, var(--admin-main-left-offset, 0px)) - var(--admin-layout-inline-padding, 0px));
|
|
58
|
+
z-index: 1;
|
|
38
59
|
}
|
|
39
60
|
|
|
40
61
|
.admin-navigation-resize-handle {
|
|
@@ -68,12 +89,21 @@
|
|
|
68
89
|
}
|
|
69
90
|
|
|
70
91
|
.admin-navigation-scroll-area {
|
|
92
|
+
background: inherit;
|
|
93
|
+
display: flex;
|
|
94
|
+
flex: 1 1 auto;
|
|
95
|
+
flex-direction: column;
|
|
71
96
|
max-height: inherit;
|
|
97
|
+
min-height: 0;
|
|
72
98
|
overflow-x: hidden;
|
|
73
99
|
overflow-y: auto;
|
|
74
100
|
overscroll-behavior: contain;
|
|
75
101
|
}
|
|
76
102
|
|
|
103
|
+
.admin-navigation-scroll-area > * {
|
|
104
|
+
flex: 0 0 auto;
|
|
105
|
+
}
|
|
106
|
+
|
|
77
107
|
.admin-navigation-scroll-area .menubar,
|
|
78
108
|
.admin-navigation-scroll-area .menubar a,
|
|
79
109
|
.admin-navigation-scroll-area .menubar__group-label,
|
|
@@ -108,12 +138,15 @@
|
|
|
108
138
|
}
|
|
109
139
|
|
|
110
140
|
.admin-navigation-scroll-area .button_to {
|
|
141
|
+
flex: 0 0 auto;
|
|
111
142
|
margin: 0;
|
|
112
143
|
}
|
|
113
144
|
|
|
145
|
+
.admin-navigation-scroll-area .loginas,
|
|
114
146
|
.admin-navigation-scroll-area .btn_public,
|
|
115
147
|
.admin-navigation-scroll-area .btn_logout {
|
|
116
148
|
box-sizing: border-box;
|
|
149
|
+
flex: 0 0 auto;
|
|
117
150
|
margin-left: 0;
|
|
118
151
|
margin-right: 0;
|
|
119
152
|
min-width: 0;
|