@guiexpert/table 1.1.97 → 1.1.98
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/README.md +3 -0
- package/css/main.css +85 -27
- package/css/table-classes.css +33 -9
- package/css/table-fill-batch.css +9 -2
- package/css/table-master-detail.css +20 -0
- package/css/table-tree.css +23 -16
- package/index.cjs +37 -37
- package/index.d.ts +6 -0
- package/index.js +1205 -1022
- package/lib/table/crud/crud-object-edit.d.ts +2 -0
- package/lib/table/crud/crud-object-view.d.ts +2 -0
- package/lib/table/crud/crud-table-model-factory.d.ts +2 -0
- package/lib/table/data/options/table-options.d.ts +6 -0
- package/lib/table/data/options/table-options.if.d.ts +17 -0
- package/lib/table/ele-scope.d.ts +37 -0
- package/lib/table/rtl/rtl-util.d.ts +126 -0
- package/lib/table/rtl/table-direction.type.d.ts +23 -0
- package/lib/table/service/convenience-dom.service.d.ts +49 -1
- package/lib/table/service/excel-export-options.if.d.ts +17 -0
- package/lib/table/service/excel-service.d.ts +8 -2
- package/lib/table/service/excel-service.if.d.ts +3 -1
- package/lib/table/table-api.d.ts +22 -2
- package/lib/table/table-scope.d.ts +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -58,6 +58,9 @@ This is the UI-agnostic table component for your next web app. 😊
|
|
|
58
58
|
created lazily and kept while scrolling, fixed or measured height, keyboard (Enter, Tab) and screen readers
|
|
59
59
|
(`aria-expanded`), `tableApi.setDetailExpanded()` / `expandAllDetails()`, stored with the table state
|
|
60
60
|
(`tableOptions.masterDetail`) – since 1.1.97. Variable row heights use prefix sums (O(log n) per scroll frame)
|
|
61
|
+
- Right-to-left (Arabic, Hebrew, Persian, Urdu): `tableOptions.direction: "rtl"` (or `"auto"` from the page) mirrors
|
|
62
|
+
the whole table – first column on the right, horizontal scrolling, fixed columns, tree indent, resize handles, fill
|
|
63
|
+
handle, row drag, master/detail, arrow keys; right-to-left Excel sheet – since 1.1.98
|
|
61
64
|
- Custom Filtering
|
|
62
65
|
- In-place Cell Editing
|
|
63
66
|
- Userdefined Key and Mouse Events
|
package/css/main.css
CHANGED
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
.ge-table-label-div .ge-table-label {
|
|
52
|
-
padding-
|
|
53
|
-
padding-
|
|
52
|
+
padding-inline-start: 10px;
|
|
53
|
+
padding-inline-end: 10px;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/* Total rows of AreaModelAggregateFooter (1.1.94) – before the align classes, so a column's footer class wins */
|
|
@@ -74,21 +74,45 @@
|
|
|
74
74
|
overflow: visible;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
/* "left" and "right" describe the left-to-right layout: start and end of the row – mirrored in right-to-left
|
|
78
|
+
(direction: "rtl", since 1.1.98). A column that must stay physically right needs its own class. */
|
|
77
79
|
.ge-table-text-align-left {
|
|
78
|
-
text-align:
|
|
80
|
+
text-align: start;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
.ge-table-text-align-right {
|
|
84
|
+
text-align: end;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.ge-table-text-align-start {
|
|
88
|
+
text-align: start;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ge-table-text-align-end {
|
|
92
|
+
text-align: end;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Latin text with punctuation in a right-to-left table ("Rossi S.p.A." would show as ".Rossi S.p.A"): every label gets
|
|
96
|
+
the direction of its own text (unicode-bidi: plaintext) and stays aligned to the start of the table (since 1.1.98). */
|
|
97
|
+
.ge-table-text-plaintext {
|
|
98
|
+
text-align: left;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.ge-table[dir="rtl"] .ge-table-text-plaintext:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-text-plaintext) {
|
|
82
102
|
text-align: right;
|
|
83
103
|
}
|
|
84
104
|
|
|
105
|
+
.ge-table-text-plaintext .ge-table-label {
|
|
106
|
+
unicode-bidi: plaintext;
|
|
107
|
+
}
|
|
108
|
+
|
|
85
109
|
.ge-table-text-align-center {
|
|
86
110
|
text-align: center;
|
|
87
111
|
}
|
|
88
112
|
|
|
89
113
|
/* Row checkbox */
|
|
90
114
|
.ge-table-row-checkbox-div {
|
|
91
|
-
padding-
|
|
115
|
+
padding-inline-start: 14px;
|
|
92
116
|
}
|
|
93
117
|
.ge-table-body-east {
|
|
94
118
|
z-index: 999;
|
|
@@ -112,10 +136,10 @@
|
|
|
112
136
|
overflow-y: auto;
|
|
113
137
|
table th,
|
|
114
138
|
table td {
|
|
115
|
-
text-align:
|
|
139
|
+
text-align: start;
|
|
116
140
|
|
|
117
141
|
&:nth-child(2) {
|
|
118
|
-
padding-
|
|
142
|
+
padding-inline-start: 12px;
|
|
119
143
|
}
|
|
120
144
|
&.ge-table-crud-object-view-object-child {
|
|
121
145
|
font-weight: bold;
|
|
@@ -152,7 +176,7 @@
|
|
|
152
176
|
justify-items: stretch;
|
|
153
177
|
label {
|
|
154
178
|
align-self: end;
|
|
155
|
-
text-align:
|
|
179
|
+
text-align: end;
|
|
156
180
|
line-height: 2;
|
|
157
181
|
}
|
|
158
182
|
}
|
|
@@ -176,9 +200,9 @@
|
|
|
176
200
|
}
|
|
177
201
|
|
|
178
202
|
|
|
179
|
-
/* room for the sort icon (20px, absolute,
|
|
203
|
+
/* room for the sort icon (20px, absolute, at the end) – otherwise it covers end-aligned header labels */
|
|
180
204
|
.ge-table-col-div:has(> .ge-table-sorted-icon-div) .ge-table-label {
|
|
181
|
-
padding-
|
|
205
|
+
padding-inline-end: 22px;
|
|
182
206
|
}
|
|
183
207
|
|
|
184
208
|
|
|
@@ -623,13 +647,15 @@ html[data-theme="dark"] {
|
|
|
623
647
|
}
|
|
624
648
|
/* Fill handle and batch edit (since 1.1.96) – colors in table-color-vars.css (--ge-table-fill-*, --ge-table-cell-*) */
|
|
625
649
|
|
|
626
|
-
/* the square at the bottom
|
|
650
|
+
/* the square at the bottom end corner of the selected range (right-to-left: bottom left); its center sits on it */
|
|
627
651
|
.ge-table-fill-handle {
|
|
628
652
|
position: absolute;
|
|
629
653
|
z-index: 9000; /* above the cells, below the overlay (10000) */
|
|
630
654
|
width: 7px;
|
|
631
655
|
height: 7px;
|
|
632
|
-
margin:
|
|
656
|
+
margin: 0;
|
|
657
|
+
margin-block-start: -4px;
|
|
658
|
+
margin-inline-start: -4px;
|
|
633
659
|
box-sizing: border-box;
|
|
634
660
|
background: var(--ge-table-fill-handle-color);
|
|
635
661
|
border: 1px solid var(--ge-table-fill-handle-border);
|
|
@@ -664,6 +690,11 @@ html[data-theme="dark"] {
|
|
|
664
690
|
background-image: linear-gradient(225deg, var(--ge-table-cell-pending-marker) 6px, transparent 6px);
|
|
665
691
|
}
|
|
666
692
|
|
|
693
|
+
/* right-to-left: the corner mark at the top end (left) */
|
|
694
|
+
.ge-table[dir="rtl"] .ge-table-col-div.ge-table-cell-pending:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-col-div.ge-table-cell-pending) {
|
|
695
|
+
background-image: linear-gradient(135deg, var(--ge-table-cell-pending-marker) 6px, transparent 6px);
|
|
696
|
+
}
|
|
697
|
+
|
|
667
698
|
/* the color only while the cell is not selected – a selected cell keeps the selection color (and the corner mark) */
|
|
668
699
|
.ge-table-col-div.ge-table-cell-pending:not([class*="-selected-range"]) {
|
|
669
700
|
background-color: var(--ge-table-cell-pending-bg);
|
|
@@ -774,6 +805,26 @@ html[data-theme="dark"] {
|
|
|
774
805
|
.ge-table-detail-toggle.ge-table-detail-toggle-expanded::before {
|
|
775
806
|
transform: rotate(90deg);
|
|
776
807
|
}
|
|
808
|
+
|
|
809
|
+
/* right-to-left (since 1.1.98): the triangle points to the left, expanded down */
|
|
810
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle)::before {
|
|
811
|
+
border-width: 4px 6px 4px 0;
|
|
812
|
+
border-color: transparent var(--ge-table-detail-toggle-color) transparent transparent;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded)::before {
|
|
816
|
+
transform: rotate(-90deg);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/* right-to-left (since 1.1.98): the triangle points to the left, expanded down */
|
|
820
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle)::before {
|
|
821
|
+
border-width: 4px 6px 4px 0;
|
|
822
|
+
border-color: transparent var(--ge-table-detail-toggle-color) transparent transparent;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded)::before {
|
|
826
|
+
transform: rotate(-90deg);
|
|
827
|
+
}
|
|
777
828
|
/* Pivot tables (PivotFactory / AreaModelPivot, since 1.1.94) */
|
|
778
829
|
|
|
779
830
|
/* every value cell: numbers on the end side, same digit widths */
|
|
@@ -925,23 +976,23 @@ html[data-theme="dark"] {
|
|
|
925
976
|
/* Tree table */
|
|
926
977
|
|
|
927
978
|
.ge-table-col-div.ge-table-col-div-0.ge-table-tree-cell {
|
|
928
|
-
text-align:
|
|
979
|
+
text-align: start;
|
|
929
980
|
}
|
|
930
981
|
|
|
931
982
|
.ge-table-tree-cell .ge-table-label-div {
|
|
932
|
-
padding-
|
|
933
|
-
padding-
|
|
983
|
+
padding-inline-start: 0;
|
|
984
|
+
padding-inline-end: 10px;
|
|
934
985
|
display: inline;
|
|
935
986
|
}
|
|
936
987
|
|
|
937
988
|
|
|
938
989
|
.ge-table-col-tree {
|
|
939
|
-
text-align:
|
|
990
|
+
text-align: start;
|
|
940
991
|
}
|
|
941
992
|
|
|
942
993
|
/* Row numbers (RowNumberColumnDef) in a tree: no tree look – right aligned like in a flat table (since 1.1.93) */
|
|
943
994
|
.ge-table-col-div.ge-table-row-number.ge-table-tree-cell {
|
|
944
|
-
text-align:
|
|
995
|
+
text-align: end;
|
|
945
996
|
}
|
|
946
997
|
.ge-table-row-number.ge-table-tree-cell .ge-table-label-div {
|
|
947
998
|
display: block;
|
|
@@ -949,47 +1000,47 @@ html[data-theme="dark"] {
|
|
|
949
1000
|
}
|
|
950
1001
|
|
|
951
1002
|
.ge-padding-property-checkbox {
|
|
952
|
-
padding-
|
|
1003
|
+
padding-inline-start: 0;
|
|
953
1004
|
}
|
|
954
1005
|
|
|
955
1006
|
.ge-table-col-tree.ge-table-tree-deep-0 {
|
|
956
|
-
padding-
|
|
1007
|
+
padding-inline-start: 16px;
|
|
957
1008
|
}
|
|
958
1009
|
|
|
959
1010
|
.ge-table-col-tree.ge-table-tree-deep-1 {
|
|
960
|
-
padding-
|
|
1011
|
+
padding-inline-start: 36px;
|
|
961
1012
|
}
|
|
962
1013
|
|
|
963
1014
|
.ge-table-col-tree.ge-table-tree-deep-2 {
|
|
964
|
-
padding-
|
|
1015
|
+
padding-inline-start: 56px;
|
|
965
1016
|
}
|
|
966
1017
|
|
|
967
1018
|
.ge-table-col-tree.ge-table-tree-deep-3 {
|
|
968
|
-
padding-
|
|
1019
|
+
padding-inline-start: 76px;
|
|
969
1020
|
}
|
|
970
1021
|
|
|
971
1022
|
.ge-table-col-tree.ge-table-tree-deep-4 {
|
|
972
|
-
padding-
|
|
1023
|
+
padding-inline-start: 96px;
|
|
973
1024
|
}
|
|
974
1025
|
|
|
975
1026
|
.ge-table-col-tree.ge-table-tree-deep-5 {
|
|
976
|
-
padding-
|
|
1027
|
+
padding-inline-start: 116px;
|
|
977
1028
|
}
|
|
978
1029
|
|
|
979
1030
|
.ge-table-col-tree.ge-table-tree-deep-6 {
|
|
980
|
-
padding-
|
|
1031
|
+
padding-inline-start: 136px;
|
|
981
1032
|
}
|
|
982
1033
|
|
|
983
1034
|
.ge-table-col-tree.ge-table-tree-deep-7 {
|
|
984
|
-
padding-
|
|
1035
|
+
padding-inline-start: 156px;
|
|
985
1036
|
}
|
|
986
1037
|
|
|
987
1038
|
.ge-table-col-tree.ge-table-tree-deep-8 {
|
|
988
|
-
padding-
|
|
1039
|
+
padding-inline-start: 176px;
|
|
989
1040
|
}
|
|
990
1041
|
|
|
991
1042
|
.ge-table-col-tree.ge-table-tree-deep-9 {
|
|
992
|
-
padding-
|
|
1043
|
+
padding-inline-start: 196px;
|
|
993
1044
|
}
|
|
994
1045
|
|
|
995
1046
|
.ge-table-col-div.ge-table-col-tree.ge-table-tree-cell {
|
|
@@ -1000,3 +1051,10 @@ html[data-theme="dark"] {
|
|
|
1000
1051
|
display: grid;
|
|
1001
1052
|
grid-template-columns: 16px 20px 1fr;
|
|
1002
1053
|
}
|
|
1054
|
+
|
|
1055
|
+
/* Right-to-left (direction: "rtl", since 1.1.98): the arrow ">" is mirrored by the browser ("<"), so the expanded
|
|
1056
|
+
arrow of the default icon turns the other way (its transform is an inline style: !important). */
|
|
1057
|
+
.ge-table[dir="rtl"] .gt-table-tree-arrow-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .gt-table-tree-arrow-expanded) {
|
|
1058
|
+
transform: rotate(-90deg) translate(-66%, -66%) !important;
|
|
1059
|
+
transform-origin: 100% 0 !important;
|
|
1060
|
+
}
|
package/css/table-classes.css
CHANGED
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
.ge-table-label-div .ge-table-label {
|
|
45
|
-
padding-
|
|
46
|
-
padding-
|
|
45
|
+
padding-inline-start: 10px;
|
|
46
|
+
padding-inline-end: 10px;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/* Total rows of AreaModelAggregateFooter (1.1.94) – before the align classes, so a column's footer class wins */
|
|
@@ -67,21 +67,45 @@
|
|
|
67
67
|
overflow: visible;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
/* "left" and "right" describe the left-to-right layout: start and end of the row – mirrored in right-to-left
|
|
71
|
+
(direction: "rtl", since 1.1.98). A column that must stay physically right needs its own class. */
|
|
70
72
|
.ge-table-text-align-left {
|
|
71
|
-
text-align:
|
|
73
|
+
text-align: start;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
.ge-table-text-align-right {
|
|
77
|
+
text-align: end;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.ge-table-text-align-start {
|
|
81
|
+
text-align: start;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.ge-table-text-align-end {
|
|
85
|
+
text-align: end;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Latin text with punctuation in a right-to-left table ("Rossi S.p.A." would show as ".Rossi S.p.A"): every label gets
|
|
89
|
+
the direction of its own text (unicode-bidi: plaintext) and stays aligned to the start of the table (since 1.1.98). */
|
|
90
|
+
.ge-table-text-plaintext {
|
|
91
|
+
text-align: left;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.ge-table[dir="rtl"] .ge-table-text-plaintext:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-text-plaintext) {
|
|
75
95
|
text-align: right;
|
|
76
96
|
}
|
|
77
97
|
|
|
98
|
+
.ge-table-text-plaintext .ge-table-label {
|
|
99
|
+
unicode-bidi: plaintext;
|
|
100
|
+
}
|
|
101
|
+
|
|
78
102
|
.ge-table-text-align-center {
|
|
79
103
|
text-align: center;
|
|
80
104
|
}
|
|
81
105
|
|
|
82
106
|
/* Row checkbox */
|
|
83
107
|
.ge-table-row-checkbox-div {
|
|
84
|
-
padding-
|
|
108
|
+
padding-inline-start: 14px;
|
|
85
109
|
}
|
|
86
110
|
.ge-table-body-east {
|
|
87
111
|
z-index: 999;
|
|
@@ -105,10 +129,10 @@
|
|
|
105
129
|
overflow-y: auto;
|
|
106
130
|
table th,
|
|
107
131
|
table td {
|
|
108
|
-
text-align:
|
|
132
|
+
text-align: start;
|
|
109
133
|
|
|
110
134
|
&:nth-child(2) {
|
|
111
|
-
padding-
|
|
135
|
+
padding-inline-start: 12px;
|
|
112
136
|
}
|
|
113
137
|
&.ge-table-crud-object-view-object-child {
|
|
114
138
|
font-weight: bold;
|
|
@@ -145,7 +169,7 @@
|
|
|
145
169
|
justify-items: stretch;
|
|
146
170
|
label {
|
|
147
171
|
align-self: end;
|
|
148
|
-
text-align:
|
|
172
|
+
text-align: end;
|
|
149
173
|
line-height: 2;
|
|
150
174
|
}
|
|
151
175
|
}
|
|
@@ -169,9 +193,9 @@
|
|
|
169
193
|
}
|
|
170
194
|
|
|
171
195
|
|
|
172
|
-
/* room for the sort icon (20px, absolute,
|
|
196
|
+
/* room for the sort icon (20px, absolute, at the end) – otherwise it covers end-aligned header labels */
|
|
173
197
|
.ge-table-col-div:has(> .ge-table-sorted-icon-div) .ge-table-label {
|
|
174
|
-
padding-
|
|
198
|
+
padding-inline-end: 22px;
|
|
175
199
|
}
|
|
176
200
|
|
|
177
201
|
|
package/css/table-fill-batch.css
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/* Fill handle and batch edit (since 1.1.96) – colors in table-color-vars.css (--ge-table-fill-*, --ge-table-cell-*) */
|
|
2
2
|
|
|
3
|
-
/* the square at the bottom
|
|
3
|
+
/* the square at the bottom end corner of the selected range (right-to-left: bottom left); its center sits on it */
|
|
4
4
|
.ge-table-fill-handle {
|
|
5
5
|
position: absolute;
|
|
6
6
|
z-index: 9000; /* above the cells, below the overlay (10000) */
|
|
7
7
|
width: 7px;
|
|
8
8
|
height: 7px;
|
|
9
|
-
margin:
|
|
9
|
+
margin: 0;
|
|
10
|
+
margin-block-start: -4px;
|
|
11
|
+
margin-inline-start: -4px;
|
|
10
12
|
box-sizing: border-box;
|
|
11
13
|
background: var(--ge-table-fill-handle-color);
|
|
12
14
|
border: 1px solid var(--ge-table-fill-handle-border);
|
|
@@ -41,6 +43,11 @@
|
|
|
41
43
|
background-image: linear-gradient(225deg, var(--ge-table-cell-pending-marker) 6px, transparent 6px);
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
/* right-to-left: the corner mark at the top end (left) */
|
|
47
|
+
.ge-table[dir="rtl"] .ge-table-col-div.ge-table-cell-pending:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-col-div.ge-table-cell-pending) {
|
|
48
|
+
background-image: linear-gradient(135deg, var(--ge-table-cell-pending-marker) 6px, transparent 6px);
|
|
49
|
+
}
|
|
50
|
+
|
|
44
51
|
/* the color only while the cell is not selected – a selected cell keeps the selection color (and the corner mark) */
|
|
45
52
|
.ge-table-col-div.ge-table-cell-pending:not([class*="-selected-range"]) {
|
|
46
53
|
background-color: var(--ge-table-cell-pending-bg);
|
|
@@ -93,3 +93,23 @@
|
|
|
93
93
|
.ge-table-detail-toggle.ge-table-detail-toggle-expanded::before {
|
|
94
94
|
transform: rotate(90deg);
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
/* right-to-left (since 1.1.98): the triangle points to the left, expanded down */
|
|
98
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle)::before {
|
|
99
|
+
border-width: 4px 6px 4px 0;
|
|
100
|
+
border-color: transparent var(--ge-table-detail-toggle-color) transparent transparent;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded)::before {
|
|
104
|
+
transform: rotate(-90deg);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* right-to-left (since 1.1.98): the triangle points to the left, expanded down */
|
|
108
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle)::before {
|
|
109
|
+
border-width: 4px 6px 4px 0;
|
|
110
|
+
border-color: transparent var(--ge-table-detail-toggle-color) transparent transparent;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.ge-table[dir="rtl"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .ge-table-detail-toggle.ge-table-detail-toggle-expanded)::before {
|
|
114
|
+
transform: rotate(-90deg);
|
|
115
|
+
}
|
package/css/table-tree.css
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/* Tree table */
|
|
2
2
|
|
|
3
3
|
.ge-table-col-div.ge-table-col-div-0.ge-table-tree-cell {
|
|
4
|
-
text-align:
|
|
4
|
+
text-align: start;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.ge-table-tree-cell .ge-table-label-div {
|
|
8
|
-
padding-
|
|
9
|
-
padding-
|
|
8
|
+
padding-inline-start: 0;
|
|
9
|
+
padding-inline-end: 10px;
|
|
10
10
|
display: inline;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
.ge-table-col-tree {
|
|
15
|
-
text-align:
|
|
15
|
+
text-align: start;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/* Row numbers (RowNumberColumnDef) in a tree: no tree look – right aligned like in a flat table (since 1.1.93) */
|
|
19
19
|
.ge-table-col-div.ge-table-row-number.ge-table-tree-cell {
|
|
20
|
-
text-align:
|
|
20
|
+
text-align: end;
|
|
21
21
|
}
|
|
22
22
|
.ge-table-row-number.ge-table-tree-cell .ge-table-label-div {
|
|
23
23
|
display: block;
|
|
@@ -25,47 +25,47 @@
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.ge-padding-property-checkbox {
|
|
28
|
-
padding-
|
|
28
|
+
padding-inline-start: 0;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
.ge-table-col-tree.ge-table-tree-deep-0 {
|
|
32
|
-
padding-
|
|
32
|
+
padding-inline-start: 16px;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.ge-table-col-tree.ge-table-tree-deep-1 {
|
|
36
|
-
padding-
|
|
36
|
+
padding-inline-start: 36px;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.ge-table-col-tree.ge-table-tree-deep-2 {
|
|
40
|
-
padding-
|
|
40
|
+
padding-inline-start: 56px;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
.ge-table-col-tree.ge-table-tree-deep-3 {
|
|
44
|
-
padding-
|
|
44
|
+
padding-inline-start: 76px;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.ge-table-col-tree.ge-table-tree-deep-4 {
|
|
48
|
-
padding-
|
|
48
|
+
padding-inline-start: 96px;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
.ge-table-col-tree.ge-table-tree-deep-5 {
|
|
52
|
-
padding-
|
|
52
|
+
padding-inline-start: 116px;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.ge-table-col-tree.ge-table-tree-deep-6 {
|
|
56
|
-
padding-
|
|
56
|
+
padding-inline-start: 136px;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
.ge-table-col-tree.ge-table-tree-deep-7 {
|
|
60
|
-
padding-
|
|
60
|
+
padding-inline-start: 156px;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.ge-table-col-tree.ge-table-tree-deep-8 {
|
|
64
|
-
padding-
|
|
64
|
+
padding-inline-start: 176px;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
.ge-table-col-tree.ge-table-tree-deep-9 {
|
|
68
|
-
padding-
|
|
68
|
+
padding-inline-start: 196px;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
.ge-table-col-div.ge-table-col-tree.ge-table-tree-cell {
|
|
@@ -76,3 +76,10 @@
|
|
|
76
76
|
display: grid;
|
|
77
77
|
grid-template-columns: 16px 20px 1fr;
|
|
78
78
|
}
|
|
79
|
+
|
|
80
|
+
/* Right-to-left (direction: "rtl", since 1.1.98): the arrow ">" is mirrored by the browser ("<"), so the expanded
|
|
81
|
+
arrow of the default icon turns the other way (its transform is an inline style: !important). */
|
|
82
|
+
.ge-table[dir="rtl"] .gt-table-tree-arrow-expanded:not(.ge-table[dir="rtl"] .ge-table[dir="ltr"] .gt-table-tree-arrow-expanded) {
|
|
83
|
+
transform: rotate(-90deg) translate(-66%, -66%) !important;
|
|
84
|
+
transform-origin: 100% 0 !important;
|
|
85
|
+
}
|