@guiexpert/table 1.1.97 → 1.1.99

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.
Files changed (110) hide show
  1. package/README.md +12 -0
  2. package/css/main.css +381 -27
  3. package/css/table-classes.css +33 -9
  4. package/css/table-clipboard.css +41 -0
  5. package/css/table-color-vars.css +56 -0
  6. package/css/table-fill-batch.css +9 -2
  7. package/css/table-master-detail.css +20 -0
  8. package/css/table-sheet-editing.css +149 -0
  9. package/css/table-spreadsheet.css +50 -0
  10. package/css/table-tree.css +23 -16
  11. package/index.cjs +54 -67
  12. package/index.d.ts +52 -0
  13. package/index.js +18968 -11475
  14. package/lib/table/action/action-id.type.d.ts +1 -1
  15. package/lib/table/action/shortcut.service.d.ts +9 -0
  16. package/lib/table/aria/aria-texts.d.ts +26 -0
  17. package/lib/table/aria/aria-texts.if.d.ts +196 -0
  18. package/lib/table/batch-edit/batch-edit-service.d.ts +22 -0
  19. package/lib/table/batch-edit/cell-change.if.d.ts +6 -2
  20. package/lib/table/batch-edit/pending-cell-changes.d.ts +7 -0
  21. package/lib/table/batch-edit/write-row-value.d.ts +14 -0
  22. package/lib/table/calc/column-values.d.ts +2 -0
  23. package/lib/table/clipboard/clipboard-html.d.ts +41 -0
  24. package/lib/table/clipboard/clipboard-keymap.d.ts +18 -0
  25. package/lib/table/clipboard/clipboard-options.d.ts +30 -0
  26. package/lib/table/clipboard/clipboard-options.if.d.ts +67 -0
  27. package/lib/table/clipboard/clipboard-service.d.ts +122 -0
  28. package/lib/table/clipboard/input-pipes.d.ts +59 -0
  29. package/lib/table/clipboard/paste-plan.d.ts +96 -0
  30. package/lib/table/clipboard/tsv.d.ts +31 -0
  31. package/lib/table/crud/crud-object-edit.d.ts +2 -0
  32. package/lib/table/crud/crud-object-view.d.ts +2 -0
  33. package/lib/table/crud/crud-table-model-factory.d.ts +2 -0
  34. package/lib/table/data/common/event/ge-edit-event.d.ts +46 -0
  35. package/lib/table/data/common/event/ge-row-drag-event.d.ts +2 -2
  36. package/lib/table/data/common/event/ge-undo-event.d.ts +29 -0
  37. package/lib/table/data/options/table-options.d.ts +34 -0
  38. package/lib/table/data/options/table-options.if.d.ts +116 -1
  39. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +11 -2
  40. package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +14 -0
  41. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +14 -0
  42. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +11 -0
  43. package/lib/table/data/tablemodel/column/column-def.d.ts +13 -0
  44. package/lib/table/data/tablemodel/column/column-def.if.d.ts +36 -1
  45. package/lib/table/data/tablemodel/column/default-editable.d.ts +18 -0
  46. package/lib/table/ele-scope.d.ts +37 -0
  47. package/lib/table/event-adapter.d.ts +6 -0
  48. package/lib/table/event-listener-hub.d.ts +10 -0
  49. package/lib/table/event-listener.if.d.ts +16 -0
  50. package/lib/table/factory/pivot-factory.d.ts +1 -1
  51. package/lib/table/factory/row-group-factory.d.ts +1 -1
  52. package/lib/table/factory/table-factory.d.ts +14 -0
  53. package/lib/table/formula/formula-ast.if.d.ts +32 -2
  54. package/lib/table/formula/formula-error.d.ts +4 -2
  55. package/lib/table/formula/parser.d.ts +5 -2
  56. package/lib/table/formula/tokenizer.d.ts +5 -2
  57. package/lib/table/input-handler.d.ts +8 -0
  58. package/lib/table/master-detail/master-detail-service.d.ts +9 -0
  59. package/lib/table/render-scope.d.ts +40 -0
  60. package/lib/table/row-drag/row-drag-service.d.ts +3 -2
  61. package/lib/table/rtl/rtl-util.d.ts +126 -0
  62. package/lib/table/rtl/table-direction.type.d.ts +23 -0
  63. package/lib/table/selection/selection-service.d.ts +48 -0
  64. package/lib/table/service/convenience-dom.service.d.ts +49 -1
  65. package/lib/table/service/excel-export-options.if.d.ts +23 -0
  66. package/lib/table/service/excel-service.d.ts +12 -2
  67. package/lib/table/service/excel-service.if.d.ts +38 -1
  68. package/lib/table/sheet/cell-address.d.ts +100 -0
  69. package/lib/table/sheet/cell-formula-options.d.ts +27 -0
  70. package/lib/table/sheet/cell-formula-options.if.d.ts +27 -0
  71. package/lib/table/sheet/excel-formula.d.ts +20 -0
  72. package/lib/table/sheet/format-formula.d.ts +19 -0
  73. package/lib/table/sheet/sheet-cells.if.d.ts +17 -0
  74. package/lib/table/sheet/sheet-compiler.d.ts +47 -0
  75. package/lib/table/sheet/sheet-engine.d.ts +207 -0
  76. package/lib/table/sheet/sheet-function-info.d.ts +25 -0
  77. package/lib/table/sheet/sheet-functions.d.ts +27 -0
  78. package/lib/table/sheet/sheet-values.d.ts +154 -0
  79. package/lib/table/sheet/shift-formula.d.ts +71 -0
  80. package/lib/table/sheet/table-sheet.d.ts +214 -0
  81. package/lib/table/sheet-editing/cell-editor-service.d.ts +105 -0
  82. package/lib/table/sheet-editing/cell-editor.if.d.ts +110 -0
  83. package/lib/table/sheet-editing/editing-keymap.d.ts +17 -0
  84. package/lib/table/sheet-editing/editing-options.d.ts +34 -0
  85. package/lib/table/sheet-editing/editing-options.if.d.ts +49 -0
  86. package/lib/table/sheet-editing/editors/date-cell-editor.d.ts +23 -0
  87. package/lib/table/sheet-editing/editors/number-cell-editor.d.ts +18 -0
  88. package/lib/table/sheet-editing/editors/select-cell-editor.d.ts +36 -0
  89. package/lib/table/sheet-editing/editors/text-cell-editor.d.ts +35 -0
  90. package/lib/table/sheet-editing/formula-assist.d.ts +103 -0
  91. package/lib/table/sheet-editing/formula-text.d.ts +61 -0
  92. package/lib/table/sheet-editing/sheet-navigation.d.ts +26 -0
  93. package/lib/table/spreadsheet/area-model-sheet.d.ts +170 -0
  94. package/lib/table/spreadsheet/formula-bar.d.ts +53 -0
  95. package/lib/table/spreadsheet/spreadsheet-factory.d.ts +111 -0
  96. package/lib/table/spreadsheet/spreadsheet-options.if.d.ts +28 -0
  97. package/lib/table/spreadsheet/spreadsheet-preset.d.ts +37 -0
  98. package/lib/table/spreadsheet/structure-edit.d.ts +35 -0
  99. package/lib/table/table-api.d.ts +533 -4
  100. package/lib/table/table-scope.d.ts +299 -1
  101. package/lib/table/undo/cell-changes-undoable.d.ts +34 -0
  102. package/lib/table/undo/model-rows.d.ts +17 -0
  103. package/lib/table/undo/pending-changes-undoable.d.ts +35 -0
  104. package/lib/table/undo/undo-keymap.d.ts +17 -0
  105. package/lib/table/undo/undo-options.d.ts +26 -0
  106. package/lib/table/undo/undo-options.if.d.ts +30 -0
  107. package/lib/table/undo/undo-service.d.ts +103 -0
  108. package/lib/table/undo/undo-stack.d.ts +62 -0
  109. package/lib/table/undo/undoable.if.d.ts +36 -0
  110. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ /* Copy, cut and paste (since 1.1.99, tableOptions.clipboard) */
2
+
3
+ /* the hidden text field that gets the focus for the moment of Ctrl/⌘+C, X, V (the browser fires its clipboard event there) */
4
+ .ge-table-clipboard-proxy {
5
+ position: absolute;
6
+ top: 0;
7
+ left: 0;
8
+ width: 1px;
9
+ height: 1px;
10
+ margin: 0;
11
+ padding: 0;
12
+ border: 0;
13
+ opacity: 0;
14
+ overflow: hidden;
15
+ resize: none;
16
+ pointer-events: none;
17
+ font-size: 16px; /* iOS zooms into a focused field with a smaller font */
18
+ }
19
+
20
+ /* cut cells: a dashed frame ("marching ants") until they are pasted, Escape or another change */
21
+ .ge-table-cut-range {
22
+ position: absolute;
23
+ display: none;
24
+ z-index: 8998; /* below the fill preview (8999) and the editor (9500) */
25
+ box-sizing: border-box;
26
+ pointer-events: none;
27
+ border: 2px dashed var(--ge-table-cut-range-border);
28
+ animation: ge-table-cut-range-ants 0.8s linear infinite;
29
+ }
30
+
31
+ @keyframes ge-table-cut-range-ants {
32
+ 50% {
33
+ border-color: var(--ge-table-cut-range-border-alt);
34
+ }
35
+ }
36
+
37
+ @media (prefers-reduced-motion: reduce) {
38
+ .ge-table-cut-range {
39
+ animation: none; /* the dashed frame alone */
40
+ }
41
+ }
@@ -136,6 +136,34 @@ html, html[data-theme="light"] {
136
136
  --ge-table-detail-border: #c9d1db;
137
137
  --ge-table-detail-toggle-color: #5f6368;
138
138
  --ge-table-detail-toggle-hover-bg: rgba(128, 128, 128, 0.15);
139
+
140
+ /* Excel-style editing (since 1.1.99): the editor above the cell */
141
+ --ge-table-cell-editor-bg: #fff;
142
+ --ge-table-cell-editor-text: #111;
143
+ --ge-table-cell-editor-border: #0a6ebd;
144
+ --ge-table-cell-editor-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
145
+ --ge-table-cell-editor-invalid-border: #d93025;
146
+ --ge-table-cut-range-border: #0a6ebd;
147
+ --ge-table-cut-range-border-alt: #9ec9ec;
148
+ /* formula input (since 1.1.99): colors of the references 0–7, function list and hint */
149
+ --ge-table-formula-ref-0: #1a73e8;
150
+ --ge-table-formula-ref-1: #d93025;
151
+ --ge-table-formula-ref-2: #7b1fa2;
152
+ --ge-table-formula-ref-3: #188038;
153
+ --ge-table-formula-ref-4: #c26401;
154
+ --ge-table-formula-ref-5: #00838f;
155
+ --ge-table-formula-ref-6: #c2185b;
156
+ --ge-table-formula-ref-7: #5d4037;
157
+ --ge-table-formula-popup-bg: #fff;
158
+ --ge-table-formula-popup-text: #111;
159
+ --ge-table-formula-popup-muted: #5f6368;
160
+ --ge-table-formula-popup-border: #c4c7c5;
161
+ --ge-table-formula-popup-active-bg: #e8f0fe;
162
+ /* formula bar (since 1.1.99) */
163
+ --ge-table-formula-bar-bg: #fff;
164
+ --ge-table-formula-bar-text: #111;
165
+ --ge-table-formula-bar-muted: #5f6368;
166
+ --ge-table-formula-bar-border: #c4c7c5;
139
167
  }
140
168
 
141
169
 
@@ -263,4 +291,32 @@ html[data-theme="dark"] {
263
291
  --ge-table-detail-border: #3c434d;
264
292
  --ge-table-detail-toggle-color: #bdc1c6;
265
293
  --ge-table-detail-toggle-hover-bg: rgba(255, 255, 255, 0.12);
294
+
295
+ /* Excel-style editing (since 1.1.99) */
296
+ --ge-table-cell-editor-bg: #1f2937;
297
+ --ge-table-cell-editor-text: #f3f4f6;
298
+ --ge-table-cell-editor-border: #8ab4f8;
299
+ --ge-table-cell-editor-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
300
+ --ge-table-cell-editor-invalid-border: #f28b82;
301
+ --ge-table-cut-range-border: #8ab4f8;
302
+ --ge-table-cut-range-border-alt: #3c5a85;
303
+ /* formula input (since 1.1.99) */
304
+ --ge-table-formula-ref-0: #8ab4f8;
305
+ --ge-table-formula-ref-1: #f28b82;
306
+ --ge-table-formula-ref-2: #d7aefb;
307
+ --ge-table-formula-ref-3: #81c995;
308
+ --ge-table-formula-ref-4: #fcad70;
309
+ --ge-table-formula-ref-5: #78d9ec;
310
+ --ge-table-formula-ref-6: #ff8bcb;
311
+ --ge-table-formula-ref-7: #d7ccc8;
312
+ --ge-table-formula-popup-bg: #1f2937;
313
+ --ge-table-formula-popup-text: #f3f4f6;
314
+ --ge-table-formula-popup-muted: #9aa0a6;
315
+ --ge-table-formula-popup-border: #4b5563;
316
+ --ge-table-formula-popup-active-bg: #374151;
317
+ /* formula bar (since 1.1.99) */
318
+ --ge-table-formula-bar-bg: #1f2937;
319
+ --ge-table-formula-bar-text: #f3f4f6;
320
+ --ge-table-formula-bar-muted: #9aa0a6;
321
+ --ge-table-formula-bar-border: #4b5563;
266
322
  }
@@ -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 right corner of the selected range; its center sits on the corner */
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: -4px 0 0 -4px;
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
+ }
@@ -0,0 +1,149 @@
1
+ /* Excel-style editing (since 1.1.99): one editor element above the edited cell (tableOptions.editing) */
2
+ .ge-table-cell-editor {
3
+ position: absolute;
4
+ display: none;
5
+ box-sizing: border-box;
6
+ z-index: 9500; /* above the cells, the detail layer (1000) and the fill preview (8999), below the focus frame (9999) and overlay (10000) */
7
+ background: var(--ge-table-cell-editor-bg);
8
+ box-shadow: var(--ge-table-cell-editor-shadow);
9
+ }
10
+ .ge-table-cell-editor.ge-table-cell-editor-clipped {
11
+ pointer-events: none; /* scrolled out of view: invisible, but still focused */
12
+ box-shadow: none;
13
+ }
14
+ .ge-table-cell-editor-field {
15
+ box-sizing: border-box;
16
+ width: 100%;
17
+ height: 100%;
18
+ margin: 0;
19
+ padding: 0 6px;
20
+ border: 2px solid var(--ge-table-cell-editor-border);
21
+ border-radius: 0;
22
+ outline: none;
23
+ font: inherit;
24
+ color: var(--ge-table-cell-editor-text);
25
+ background: var(--ge-table-cell-editor-bg);
26
+ }
27
+ .ge-table-cell-editor-field[aria-invalid="true"] {
28
+ border-color: var(--ge-table-cell-editor-invalid-border);
29
+ }
30
+ .ge-table-cell-editor-number {
31
+ text-align: end;
32
+ font-variant-numeric: tabular-nums;
33
+ }
34
+
35
+ /* The editors inside the cell (InputCellRenderer, SelectCellRenderer) – before 1.1.99 these were inline styles,
36
+ which a strict Content-Security-Policy (style-src without 'unsafe-inline') blocks */
37
+ input.ge-table-cell-editor-input {
38
+ width: calc(100% - 8px);
39
+ height: 100%;
40
+ border: 0;
41
+ padding: 0;
42
+ padding-inline-start: 8px;
43
+ }
44
+ select.ge-table-cell-editor-select {
45
+ width: 100%;
46
+ height: 100%;
47
+ border: 0;
48
+ padding: 0;
49
+ padding-inline-start: 8px;
50
+ }
51
+
52
+ /* Formula input (since 1.1.99, tableOptions.cellFormulas): colored references in the editor (a mirror behind the
53
+ transparent text of the input), frames around the referenced cells, function suggestions and the argument hint */
54
+ .ge-table-formula-mirror {
55
+ position: absolute;
56
+ inset: 0;
57
+ box-sizing: border-box;
58
+ display: flex;
59
+ align-items: center;
60
+ padding: 0 6px;
61
+ border: 2px solid transparent;
62
+ overflow: hidden;
63
+ white-space: pre;
64
+ pointer-events: none;
65
+ font: inherit;
66
+ color: var(--ge-table-cell-editor-text);
67
+ direction: ltr;
68
+ text-align: left;
69
+ }
70
+ .ge-table-cell-editor-field.ge-table-formula-input {
71
+ position: relative;
72
+ color: transparent;
73
+ caret-color: var(--ge-table-cell-editor-text);
74
+ background: transparent;
75
+ text-align: left; /* formulas read left to right (Excel), also in number columns and right-to-left tables */
76
+ direction: ltr;
77
+ }
78
+ .ge-table-cell-editor-field.ge-table-formula-input::selection {
79
+ color: transparent;
80
+ background: rgba(10, 110, 189, 0.3); /* the mirror's text stays readable under the selection */
81
+ }
82
+ .ge-table-formula-ref {
83
+ position: absolute;
84
+ box-sizing: border-box;
85
+ border: 2px solid var(--ge-table-formula-ref-0);
86
+ pointer-events: none;
87
+ z-index: 9400; /* above the cells, below the editor (9500) */
88
+ }
89
+ .ge-table-formula-ref-text-0 { color: var(--ge-table-formula-ref-0); }
90
+ .ge-table-formula-ref-text-1 { color: var(--ge-table-formula-ref-1); }
91
+ .ge-table-formula-ref-text-2 { color: var(--ge-table-formula-ref-2); }
92
+ .ge-table-formula-ref-text-3 { color: var(--ge-table-formula-ref-3); }
93
+ .ge-table-formula-ref-text-4 { color: var(--ge-table-formula-ref-4); }
94
+ .ge-table-formula-ref-text-5 { color: var(--ge-table-formula-ref-5); }
95
+ .ge-table-formula-ref-text-6 { color: var(--ge-table-formula-ref-6); }
96
+ .ge-table-formula-ref-text-7 { color: var(--ge-table-formula-ref-7); }
97
+ .ge-table-formula-ref.ge-table-formula-ref-1 { border-color: var(--ge-table-formula-ref-1); }
98
+ .ge-table-formula-ref.ge-table-formula-ref-2 { border-color: var(--ge-table-formula-ref-2); }
99
+ .ge-table-formula-ref.ge-table-formula-ref-3 { border-color: var(--ge-table-formula-ref-3); }
100
+ .ge-table-formula-ref.ge-table-formula-ref-4 { border-color: var(--ge-table-formula-ref-4); }
101
+ .ge-table-formula-ref.ge-table-formula-ref-5 { border-color: var(--ge-table-formula-ref-5); }
102
+ .ge-table-formula-ref.ge-table-formula-ref-6 { border-color: var(--ge-table-formula-ref-6); }
103
+ .ge-table-formula-ref.ge-table-formula-ref-7 { border-color: var(--ge-table-formula-ref-7); }
104
+ .ge-table-formula-list,
105
+ .ge-table-formula-hint {
106
+ position: absolute;
107
+ top: 100%;
108
+ inset-inline-start: 0;
109
+ margin-top: 2px;
110
+ box-sizing: border-box;
111
+ background: var(--ge-table-formula-popup-bg);
112
+ color: var(--ge-table-formula-popup-text);
113
+ border: 1px solid var(--ge-table-formula-popup-border);
114
+ box-shadow: var(--ge-table-cell-editor-shadow);
115
+ font-size: 13px;
116
+ line-height: 1.5;
117
+ }
118
+ .ge-table-formula-list {
119
+ min-width: 260px;
120
+ max-width: 420px;
121
+ max-height: 216px;
122
+ overflow-y: auto;
123
+ padding: 2px 0;
124
+ }
125
+ .ge-table-formula-option {
126
+ display: flex;
127
+ gap: 8px;
128
+ padding: 1px 8px;
129
+ white-space: nowrap;
130
+ cursor: pointer;
131
+ }
132
+ .ge-table-formula-option[aria-selected="true"] {
133
+ background: var(--ge-table-formula-popup-active-bg);
134
+ }
135
+ .ge-table-formula-option-name {
136
+ font-weight: 600;
137
+ }
138
+ .ge-table-formula-option-description {
139
+ overflow: hidden;
140
+ text-overflow: ellipsis;
141
+ color: var(--ge-table-formula-popup-muted);
142
+ }
143
+ .ge-table-formula-hint {
144
+ padding: 2px 8px;
145
+ white-space: nowrap;
146
+ }
147
+ .ge-table-formula-hint b {
148
+ font-weight: 700;
149
+ }
@@ -0,0 +1,50 @@
1
+ /* Spreadsheet mode (since 1.1.99): the formula bar (FormulaBar) */
2
+ .ge-table-formula-bar {
3
+ display: flex;
4
+ align-items: stretch;
5
+ gap: 0;
6
+ box-sizing: border-box;
7
+ height: 30px;
8
+ border: 1px solid var(--ge-table-formula-bar-border);
9
+ background: var(--ge-table-formula-bar-bg);
10
+ color: var(--ge-table-formula-bar-text);
11
+ font: inherit;
12
+ }
13
+ .ge-table-formula-bar-address,
14
+ .ge-table-formula-bar-input {
15
+ box-sizing: border-box;
16
+ margin: 0;
17
+ padding: 0 8px;
18
+ border: 0;
19
+ outline: none;
20
+ font: inherit;
21
+ color: inherit;
22
+ background: transparent;
23
+ }
24
+ .ge-table-formula-bar-address {
25
+ flex: 0 0 96px;
26
+ width: 96px;
27
+ border-inline-end: 1px solid var(--ge-table-formula-bar-border);
28
+ font-variant-numeric: tabular-nums;
29
+ }
30
+ .ge-table-formula-bar-address[aria-invalid="true"] {
31
+ box-shadow: inset 0 0 0 2px var(--ge-table-cell-editor-invalid-border);
32
+ }
33
+ .ge-table-formula-bar-fx {
34
+ display: flex;
35
+ align-items: center;
36
+ padding: 0 8px;
37
+ font-style: italic;
38
+ color: var(--ge-table-formula-bar-muted);
39
+ border-inline-end: 1px solid var(--ge-table-formula-bar-border);
40
+ }
41
+ .ge-table-formula-bar-input {
42
+ flex: 1 1 auto;
43
+ min-width: 0;
44
+ direction: ltr; /* formulas read left to right */
45
+ text-align: left;
46
+ }
47
+ .ge-table-formula-bar-address:focus-visible,
48
+ .ge-table-formula-bar-input:focus-visible {
49
+ box-shadow: inset 0 0 0 2px var(--ge-table-cell-editor-border);
50
+ }
@@ -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: left;
4
+ text-align: start;
5
5
  }
6
6
 
7
7
  .ge-table-tree-cell .ge-table-label-div {
8
- padding-left: 0;
9
- padding-right: 10px;
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: left;
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: right;
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-left: 0;
28
+ padding-inline-start: 0;
29
29
  }
30
30
 
31
31
  .ge-table-col-tree.ge-table-tree-deep-0 {
32
- padding-left: 16px;
32
+ padding-inline-start: 16px;
33
33
  }
34
34
 
35
35
  .ge-table-col-tree.ge-table-tree-deep-1 {
36
- padding-left: 36px;
36
+ padding-inline-start: 36px;
37
37
  }
38
38
 
39
39
  .ge-table-col-tree.ge-table-tree-deep-2 {
40
- padding-left: 56px;
40
+ padding-inline-start: 56px;
41
41
  }
42
42
 
43
43
  .ge-table-col-tree.ge-table-tree-deep-3 {
44
- padding-left: 76px;
44
+ padding-inline-start: 76px;
45
45
  }
46
46
 
47
47
  .ge-table-col-tree.ge-table-tree-deep-4 {
48
- padding-left: 96px;
48
+ padding-inline-start: 96px;
49
49
  }
50
50
 
51
51
  .ge-table-col-tree.ge-table-tree-deep-5 {
52
- padding-left: 116px;
52
+ padding-inline-start: 116px;
53
53
  }
54
54
 
55
55
  .ge-table-col-tree.ge-table-tree-deep-6 {
56
- padding-left: 136px;
56
+ padding-inline-start: 136px;
57
57
  }
58
58
 
59
59
  .ge-table-col-tree.ge-table-tree-deep-7 {
60
- padding-left: 156px;
60
+ padding-inline-start: 156px;
61
61
  }
62
62
 
63
63
  .ge-table-col-tree.ge-table-tree-deep-8 {
64
- padding-left: 176px;
64
+ padding-inline-start: 176px;
65
65
  }
66
66
 
67
67
  .ge-table-col-tree.ge-table-tree-deep-9 {
68
- padding-left: 196px;
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
+ }