UNPKG

35.1 kBSCSSView Raw
1
2/**
3 ****************************
4 * Generic Styles
5 ****************************
6*/
7// if we don't do this, then the width and height of the grid would be ignored,
8// as there is no default display for the element ag-grid-a2 (as it's not a natural dom element)
9ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
10 display: block;
11}
12
13.ag-hidden {
14 display: none !important;
15}
16
17.ag-invisible {
18 visibility: hidden !important;
19}
20
21.ag-drag-handle {
22 cursor: grab;
23}
24
25.ag-column-drop-wrapper {
26 display: flex;
27}
28
29.ag-column-drop-horizontal-half-width {
30 display: inline-block;
31 width: 50% !important;
32}
33
34.ag-unselectable {
35 @include ag-selectable(none);
36}
37
38.ag-selectable {
39 @include ag-selectable(text);
40}
41
42.ag-tab {
43 position: relative;
44}
45
46.ag-tab-guard {
47 position: absolute;
48 width: 0;
49 height: 0;
50 display: block;
51}
52
53.ag-select-agg-func-popup {
54 position: absolute;
55}
56
57.ag-input-wrapper, .ag-picker-field-wrapper {
58 display: flex;
59 flex: 1 1 auto;
60 align-items: center;
61 line-height: normal;
62 position: relative;
63}
64
65// setting shake class to an item will give it a left ot right animation
66// used for the 'left' and 'rigth' arrows when dragging columns and scrolling
67.ag-shake-left-to-right {
68 animation-direction: alternate;
69 animation-duration: 0.2s;
70 animation-iteration-count: infinite;
71 animation-name: ag-shake-left-to-right;
72}
73
74@keyframes ag-shake-left-to-right {
75 from {
76 padding-left: 6px;
77 padding-right: 2px;
78 }
79
80 to {
81 padding-left: 2px;
82 padding-right: 6px;
83 }
84}
85
86.ag-root-wrapper {
87 cursor: default;
88 position: relative; // set to relative, so absolute popups appear relative to this
89 display: flex;
90 flex-direction: column;
91 overflow: hidden;
92
93 &.ag-layout-normal {
94 height: 100%;
95 }
96}
97
98.ag-watermark {
99 position: absolute;
100 bottom: 20px;
101 right: 25px;
102 opacity: 0.5;
103 transition: opacity 1s ease-out 3s;
104 &::before {
105 content: '';
106 background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
107 background-repeat: no-repeat;
108 background-size: 170px 40px;
109 display: block;
110 height: 40px;
111 width: 170px;
112 opacity: 0.5;
113 }
114}
115
116.ag-watermark-text {
117 opacity: 0.5;
118 font-weight: bold;
119 font-family: Impact, sans-serif;
120 font-size: 19px;
121 padding-left: 0.7rem;
122}
123
124.ag-root-wrapper-body {
125 display: flex;
126 flex-direction: row;
127
128 &.ag-layout-normal {
129 flex: 1 1 auto;
130 height: 0;
131 min-height: 0;
132 }
133}
134
135.ag-root {
136 position: relative; // set to relative, so absolute popups appear relative to this
137 display: flex;
138 flex-direction: column;
139
140 &.ag-layout-normal,
141 &.ag-layout-auto-height {
142 overflow: hidden; // was getting some 'shouldn't be there' scrolls, this sorts it out
143 flex: 1 1 auto;
144 width: 0;
145 }
146
147 &.ag-layout-normal {
148 height: 100%;
149 }
150}
151
152/**
153 ****************************
154 * Viewports
155 ****************************
156*/
157.ag-header-viewport,
158.ag-floating-top-viewport,
159.ag-body-viewport,
160.ag-center-cols-viewport,
161.ag-floating-bottom-viewport,
162.ag-body-horizontal-scroll-viewport,
163.ag-virtual-list-viewport {
164 position: relative;
165 height: 100%;
166 min-width: 0px;
167 overflow: hidden;
168 flex: 1 1 auto;
169}
170
171.ag-body-viewport {
172 display: flex;
173
174 &.ag-layout-normal {
175 overflow-y: auto;
176 -webkit-overflow-scrolling: touch;
177 }
178}
179
180.ag-center-cols-viewport {
181 width: 100%;
182 overflow-x: auto;
183}
184
185.ag-body-horizontal-scroll-viewport {
186 overflow-x: scroll;
187}
188
189.ag-virtual-list-viewport {
190 overflow: auto;
191 width: 100%;
192}
193
194/**
195 ****************************
196 * Containers
197 ****************************
198*/
199.ag-header-container,
200.ag-floating-top-container,
201.ag-body-container,
202.ag-pinned-right-cols-container,
203.ag-center-cols-container,
204.ag-pinned-left-cols-container,
205.ag-floating-bottom-container,
206.ag-body-horizontal-scroll-container,
207.ag-full-width-container,
208.ag-floating-bottom-full-width-container,
209.ag-virtual-list-container {
210 position: relative;
211}
212
213// for when auto height is used but there is no row data
214.ag-header-container, .ag-floating-top-container, .ag-floating-bottom-container {
215 height: 100%;
216 white-space: nowrap;
217}
218
219.ag-center-cols-container {
220 display: block;
221}
222
223.ag-pinned-right-cols-container {
224 display: block;
225}
226
227.ag-body-horizontal-scroll-container {
228 height: 100%;
229}
230
231.ag-full-width-container,
232.ag-floating-top-full-width-container,
233.ag-floating-bottom-full-width-container {
234 position: absolute;
235 top: 0px;
236 left: 0px;
237 // turn off pointer events, because this container overlays the main row containers.
238 // so when user clicks on space between full width rows, we want the mouse clicks to
239 // pass onto the underlying container where the real rows are. eg if using full width
240 // for row grouping, the groups will be in the full width container, but when user
241 // opens a group the children are shown in the other containers - we want to make sure we
242 // don't block mouse clicks to those other containers with the children.
243 pointer-events: none;
244}
245.ag-full-width-container {
246 width: 100%;
247}
248
249.ag-floating-bottom-full-width-container, .ag-floating-top-full-width-container {
250 display: inline-block;
251 overflow: hidden;
252 height: 100%;
253 width: 100%;
254}
255
256.ag-virtual-list-container {
257 overflow: hidden;
258}
259
260/**
261 ****************************
262 * Scrollers
263 ****************************
264*/
265.ag-center-cols-clipper {
266 flex: 1 1 auto;
267 min-width: 0;
268 overflow: hidden;
269 min-height: 100%;
270 // translate3d is necessary here due to a BUG in Safari
271 // where it becomes impossible to click on scrollbars
272 // that are only visible during scroll.
273 transform: translate3d(0,0,0);
274}
275
276.ag-body-horizontal-scroll {
277 min-height: 0;
278 min-width: 0;
279 width: 100%;
280 display: flex;
281 position: relative;
282 &.ag-scrollbar-invisible {
283 position: absolute;
284 bottom: 0;
285 left: 0;
286 right: 0;
287 pointer-events: none;
288 &.ag-scrollbar-scrolling, &.ag-scrollbar-active {
289 pointer-events: all;
290 }
291 }
292}
293
294.ag-force-vertical-scroll {
295 overflow-y: scroll !important;
296}
297
298.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {
299 height: 100%;
300 min-width: 0;
301 overflow-x: scroll;
302 &.ag-scroller-corner {
303 overflow-x: hidden;
304 }
305}
306
307/**
308 ****************************
309 * Headers
310 ****************************
311*/
312.ag-header, .ag-pinned-left-header, .ag-pinned-right-header {
313 display: inline-block;
314 overflow: hidden;
315 position: relative;
316}
317
318.ag-header-cell-sortable {
319 cursor: pointer;
320}
321
322.ag-header {
323 display: flex;
324 width: 100%;
325 white-space: nowrap;
326}
327
328.ag-pinned-left-header {
329 height: 100%;
330}
331
332.ag-pinned-right-header {
333 height: 100%;
334}
335
336.ag-header-row {
337 position: absolute;
338 overflow: hidden; // so when floating filters are height 0px, the contents don't spill out
339}
340
341.ag-header-cell {
342 display: inline-flex;
343 align-items: center;
344 position: absolute;
345 height: 100%;
346 overflow: hidden;
347}
348
349.ag-header-cell.ag-header-active .ag-header-cell-menu-button {
350 opacity: 1;
351}
352
353.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {
354 transition: opacity 0.2s;
355 opacity: 0;
356}
357
358.ag-header-group-cell-label, .ag-header-cell-label {
359 display: flex;
360 flex: 1 1 auto;
361 overflow: hidden;
362 align-items: center;
363 text-overflow: ellipsis;
364 align-self: stretch;
365}
366
367.ag-header-cell-text {
368 overflow: hidden;
369 text-overflow: ellipsis;
370 white-space: nowrap;
371}
372
373.ag-right-aligned-header .ag-header-cell-label {
374 flex-direction: row-reverse;
375}
376
377.ag-header-group-text {
378 overflow: hidden;
379 text-overflow: ellipsis;
380 white-space: nowrap;
381}
382
383.ag-header-cell-resize {
384 position: absolute;
385 z-index: 2;
386 height: 100%;
387 width: 8px;
388 top: 0;
389
390 cursor: ew-resize;
391
392 // unpinned headers get their rezise handle on the right in normal mode and left in RTL mode
393 @include ag-unthemed-rtl((
394 right: -4px
395 ));
396}
397
398.ag-pinned-left-header .ag-header-cell-resize {
399 right: -4px; // pinned left headers always have their resize on the right, even in RTL mode
400}
401
402.ag-pinned-right-header .ag-header-cell-resize {
403 left: -4px; // pinned right headers always have their resize on the left, even in RTL mode
404}
405
406.ag-header-select-all {
407 display: flex;
408}
409
410/**
411 ****************************
412 * Columns
413 ****************************
414*/
415.ag-column-moving {
416 .ag-cell {
417 transition: left 0.2s;
418 }
419
420 .ag-header-cell {
421 transition: left 0.2s;
422 }
423
424 .ag-header-group-cell {
425 transition: left 0.2s, width 0.2s;
426 }
427}
428
429/**
430 ****************************
431 * Column Panel
432 ****************************
433*/
434
435.ag-column-panel {
436 display: flex;
437 flex-direction: column;
438 overflow: hidden;
439 flex: 1 1 auto;
440}
441
442.ag-column-select {
443 position: relative;
444 display: flex;
445 flex-direction: column;
446 overflow: hidden;
447 flex: 3 1 0px;
448}
449
450.ag-column-select-header {
451 position: relative;
452 display: flex;
453 flex: none;
454}
455
456.ag-column-select-header-icon {
457 position: relative;
458}
459
460.ag-column-select-header-filter-wrapper {
461 flex: 1 1 auto;
462}
463
464.ag-column-select-header-filter {
465 width: 100%;
466}
467
468.ag-column-select-list {
469 flex: 1 1 0px;
470 overflow: hidden;
471}
472
473.ag-column-drop {
474 position: relative;
475 display: inline-flex;
476 align-items: center;
477 overflow: auto;
478 width: 100%;
479}
480
481.ag-column-drop-list {
482 display: flex;
483 align-items: center;
484}
485
486.ag-column-drop-cell {
487 position: relative;
488 display: flex;
489 align-items: center;
490}
491
492.ag-column-drop-cell-text {
493 overflow: hidden;
494 flex: 1 1 auto;
495 text-overflow: ellipsis;
496 white-space: nowrap;
497}
498
499.ag-column-drop-vertical {
500 display: flex;
501 flex-direction: column;
502 overflow: hidden;
503 align-items: stretch;
504 flex: 1 1 0px;
505}
506
507.ag-column-drop-vertical-title-bar {
508 display: flex;
509 align-items: center;
510 flex: none;
511}
512
513.ag-column-drop-vertical-list {
514 position: relative;
515 align-items: stretch;
516 flex-grow: 1;
517 flex-direction: column;
518 overflow-x: auto;
519
520 > * {
521 flex: none;
522 }
523}
524
525.ag-column-drop-empty .ag-column-drop-vertical-list {
526 overflow: hidden;
527}
528
529.ag-column-drop-vertical-empty-message {
530 display: block;
531}
532
533.ag-column-drop.ag-column-drop-horizontal {
534 white-space: nowrap;
535 overflow: hidden;
536}
537
538.ag-column-drop-cell-button {
539 cursor: pointer;
540}
541
542.ag-filter-toolpanel {
543 flex: 1 1 0px;
544 min-width: 0;
545}
546
547.ag-filter-toolpanel-header {
548 position: relative;
549}
550
551.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {
552 display: flex;
553 align-items: center;
554
555 > * {
556 display: flex;
557 align-items: center;
558 }
559}
560
561.ag-filter-apply-panel {
562 display: flex;
563 justify-content: flex-end;
564 overflow: hidden;
565}
566
567/**
568 ****************************
569 * Rows
570 ****************************
571*/
572// for row animations.
573.ag-row-animation .ag-row {
574 transition: transform 0.4s, top 0.4s, background-color 0.1s, opacity 0.2s;
575}
576// for rows older than one second, we also animate the height. we don't include the height
577// initially so we are not animating auto-height rows on initial render.
578.ag-row-animation .ag-row.ag-after-created {
579 transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;
580}
581
582.ag-row-no-animation .ag-row {
583 transition: background-color 0.1s;
584}
585
586.ag-row {
587 white-space: nowrap;
588 width: 100%;
589}
590
591.ag-row-loading {
592 display: flex;
593 align-items: center;
594}
595
596.ag-row-position-absolute {
597 position: absolute;
598}
599
600.ag-row-position-relative {
601 position: relative;
602}
603
604.ag-full-width-row {
605 overflow: hidden;
606 // turn events back on, as we removed them in the parent
607 pointer-events: all;
608}
609
610.ag-row-inline-editing {
611 z-index: 1;
612}
613
614.ag-row-dragging {
615 z-index: 2;
616}
617
618.ag-stub-cell {
619 display: flex;
620 align-items: center;
621}
622
623/**
624 ****************************
625 * Cells
626 ****************************
627*/
628.ag-cell {
629 display: inline-block;
630 position: absolute;
631 white-space: nowrap;
632 height: 100%;
633}
634
635// This is used when using a Cell Wrapper (eg row drag, selection, or auto-height).
636// If not using wrapper, ag-cell-value is on a div, which is 100% width. However when
637// in a wrapper, it's a span (not a div), so we need 100% width to provide consistent
638// behaviour regardless of wrapper used or not. If we did not do this, Cell Renderer's
639// with 100% width wouldn't get the full width when using a wrapper.
640// Instead of just 100% width we use flex, as it's not the only item on the line, so it
641// fills the remaining space.
642.ag-cell-value {
643 flex: 1 1 auto;
644}
645
646.ag-cell-value, .ag-group-value {
647 overflow: hidden;
648 text-overflow: ellipsis;
649}
650
651.ag-cell-wrap-text {
652 white-space: normal;
653 word-break: break-all;
654}
655
656.ag-cell-wrapper {
657 display: flex;
658 align-items: center;
659 // adding overflow: hidden breaks the checkbox focus outline
660 // overflow: hidden;
661 // adding width: 100% here breaks text-overflow: ellipsis
662 // width: 100%;
663 &.ag-row-group {
664 align-items: flex-start;
665 }
666}
667
668.ag-sparkline-wrapper {
669 position: absolute;
670 height: 100%;
671 width: 100%;
672 left: 0;
673 top: 0;
674}
675
676.ag-full-width-row .ag-cell-wrapper.ag-row-group {
677 height: 100%;
678 align-items: center;
679}
680
681.ag-cell-inline-editing {
682 z-index: 1;
683
684 .ag-cell-wrapper,
685 .ag-cell-edit-wrapper,
686 .ag-cell-editor,
687 .ag-cell-editor .ag-wrapper,
688 .ag-cell-editor input {
689 height: 100%;
690 width: 100%;
691 line-height: normal;
692 }
693}
694
695.ag-cell .ag-icon {
696 display: inline-block;
697 vertical-align: middle;
698}
699
700/**
701 ****************************
702 * Filters
703 ****************************
704*/
705.ag-set-filter-item {
706 display: flex;
707 align-items: center;
708 height: 100%;
709}
710
711.ag-set-filter-item-value {
712 overflow: hidden;
713 text-overflow: ellipsis;
714 white-space: nowrap;
715}
716
717.ag-set-filter-item-checkbox {
718 display: flex;
719}
720
721.ag-filter-body-wrapper {
722 display: flex;
723 flex-direction: column;
724}
725
726.ag-filter-filter {
727 flex: 1 1 0px;
728}
729
730.ag-filter-condition {
731 display: flex;
732 justify-content: center;
733}
734
735/**
736 ****************************
737 * Floating Filter
738 ****************************
739*/
740
741.ag-floating-filter-body {
742 position: relative;
743 display: flex;
744 flex: 1 1 auto;
745 height: 100%;
746}
747
748.ag-floating-filter-full-body {
749 display: flex;
750 flex: 1 1 auto;
751 height: 100%;
752 width: 100%;
753 align-items: center;
754 overflow: hidden;
755}
756
757.ag-floating-filter-full-body > div {
758 flex: 1 1 auto;
759}
760
761.ag-floating-filter-input {
762 align-items: center;
763 display: flex;
764 width: 100%;
765
766 > * {
767 flex: 1 1 auto;
768 }
769}
770
771.ag-floating-filter-button {
772 display: flex;
773 flex: none;
774}
775
776/**
777 ****************************
778 * Drag & Drop
779 ****************************
780*/
781
782.ag-dnd-ghost {
783 position: absolute;
784 display: inline-flex;
785 align-items: center;
786 cursor: move;
787 white-space: nowrap;
788 z-index: 9999;
789}
790
791/**
792 ****************************
793 * Overlay
794 ****************************
795*/
796.ag-overlay {
797 height: 100%;
798 left: 0;
799 pointer-events: none;
800 position: absolute;
801 top: 0;
802 width: 100%;
803}
804
805.ag-overlay-panel {
806 display: flex;
807 height: 100%;
808 width: 100%;
809}
810
811.ag-overlay-wrapper {
812 display: flex;
813 flex: none;
814 width: 100%;
815 height: 100%;
816 align-items: center;
817 justify-content: center;
818 text-align: center;
819}
820
821.ag-overlay-loading-wrapper {
822 // prevent interaction with grid while it's loading
823 pointer-events: all;
824}
825
826/**
827 ****************************
828 * Popup
829 ****************************
830*/
831
832.ag-popup-child {
833 z-index: 5;
834 top: 0;
835}
836
837.ag-popup-editor {
838 position: absolute;
839 user-select: none;
840 z-index: 1;
841}
842
843.ag-large-text-input {
844 display: block;
845}
846
847/**
848 ****************************
849 * Virtual Lists
850 ****************************
851*/
852.ag-virtual-list-item {
853 position: absolute;
854 width: 100%;
855}
856
857/**
858 ****************************
859 * Floating Top and Bottom
860 ****************************
861*/
862.ag-floating-top {
863 overflow: hidden;
864 white-space: nowrap;
865 width: 100%;
866 position: relative;
867 display: flex;
868}
869
870.ag-pinned-left-floating-top {
871 display: inline-block;
872 overflow: hidden;
873 position: relative;
874 min-width: 0px;
875}
876
877.ag-pinned-right-floating-top {
878 display: inline-block;
879 overflow: hidden;
880 position: relative;
881 min-width: 0px;
882}
883
884.ag-floating-bottom {
885 overflow: hidden;
886 white-space: nowrap;
887 width: 100%;
888 position: relative;
889 display: flex;
890}
891
892.ag-pinned-left-floating-bottom {
893 display: inline-block;
894 overflow: hidden;
895 position: relative;
896 min-width: 0px;
897}
898
899.ag-pinned-right-floating-bottom {
900 display: inline-block;
901 overflow: hidden;
902 position: relative;
903 min-width: 0px;
904}
905
906
907/**
908 ****************************
909 * Dialog
910 ****************************
911*/
912
913.ag-dialog, .ag-panel {
914 display: flex;
915 flex-direction: column;
916 position: relative;
917 overflow: hidden;
918}
919
920.ag-panel-title-bar {
921 display: flex;
922 flex: none;
923 align-items: center;
924 cursor: default;
925}
926
927.ag-panel-title-bar-title {
928 flex: 1 1 auto;
929}
930
931.ag-panel-title-bar-buttons {
932 display: flex;
933}
934
935.ag-panel-title-bar-button {
936 cursor: pointer;
937}
938
939.ag-panel-content-wrapper {
940 display: flex;
941 flex: 1 1 auto;
942 position: relative;
943 overflow: hidden;
944}
945
946.ag-dialog {
947 position: absolute;
948}
949
950.ag-resizer {
951 position: absolute;
952 pointer-events: none;
953 user-select: none;
954 z-index: 1;
955 &.ag-resizer-topLeft {
956 top: 0;
957 left: 0;
958 height: 5px;
959 width: 5px;
960 cursor: nwse-resize;
961 }
962 &.ag-resizer-top {
963 top: 0;
964 left: 5px;
965 right: 5px;
966 height: 5px;
967 cursor: ns-resize;
968 }
969 &.ag-resizer-topRight {
970 top: 0;
971 right: 0;
972 height: 5px;
973 width: 5px;
974 cursor: nesw-resize;
975 }
976 &.ag-resizer-right {
977 top: 5px;
978 right: 0;
979 bottom: 5px;
980 width: 5px;
981 cursor: ew-resize;
982 }
983 &.ag-resizer-bottomRight {
984 bottom: 0;
985 right: 0;
986 height: 5px;
987 width: 5px;
988 cursor: nwse-resize;
989 }
990 &.ag-resizer-bottom {
991 bottom: 0;
992 left: 5px;
993 right: 5px;
994 height: 5px;
995 cursor: ns-resize;
996 }
997 &.ag-resizer-bottomLeft {
998 bottom: 0;
999 left: 0;
1000 height: 5px;
1001 width: 5px;
1002 cursor: nesw-resize;
1003 }
1004 &.ag-resizer-left {
1005 left: 0;
1006 top: 5px;
1007 bottom: 5px;
1008 width: 5px;
1009 cursor: ew-resize;
1010 }
1011}
1012
1013/**
1014 ****************************
1015 * Tooltip
1016 ****************************
1017*/
1018
1019.ag-tooltip {
1020 position: absolute;
1021 pointer-events: none;
1022 z-index: 99999;
1023}
1024
1025.ag-tooltip-custom {
1026 position: absolute;
1027 pointer-events: none;
1028 z-index: 99999;
1029}
1030
1031/**
1032 ****************************
1033 * Animations
1034 ****************************
1035*/
1036
1037// this is used by the animateShowChangeCellRenderer. it is arguable that this belongs in the themes,
1038// however it is not tied to color, only placement and visiblity, which is behaviour and not style,
1039// thus belongs here, besides it doesn't change wih the themes
1040.ag-value-slide-out {
1041 margin-right: 5px;
1042 opacity: 1;
1043 transition: opacity 3s, margin-right 3s; // as value fades, it also moves to the left via the margin setting
1044 transition-timing-function: linear;
1045}
1046
1047.ag-value-slide-out-end {
1048 margin-right: 10px;
1049 opacity: 0;
1050}
1051
1052.ag-opacity-zero {
1053 opacity: 0 !important;
1054}
1055
1056/**
1057 ****************************
1058 * Menu
1059 ****************************
1060*/
1061.ag-menu {
1062 max-height: 100%;
1063 overflow-y: auto;
1064 position: absolute;
1065 user-select: none;
1066}
1067
1068.ag-menu-column-select-wrapper {
1069 height: 265px;
1070 overflow: auto;
1071
1072 .ag-column-select {
1073 height: 100%;
1074 }
1075}
1076
1077.ag-menu-list {
1078 display: table;
1079 width: 100%;
1080}
1081
1082.ag-menu-option, .ag-menu-separator {
1083 display: table-row;
1084}
1085
1086.ag-menu-option-part, .ag-menu-separator-part {
1087 display: table-cell;
1088 vertical-align: middle;
1089}
1090
1091.ag-menu-option-text {
1092 white-space: nowrap;
1093}
1094
1095.ag-compact-menu-option {
1096 width: 100%;
1097 display: flex;
1098 flex-wrap: nowrap;
1099}
1100
1101.ag-compact-menu-option-text {
1102 white-space: nowrap;
1103 flex: 1 1 auto;
1104}
1105
1106/**
1107 ****************************
1108 * Rich Select
1109 ****************************
1110*/
1111.ag-rich-select {
1112 cursor: default;
1113 outline: none;
1114}
1115
1116.ag-rich-select-value {
1117 display: flex;
1118 align-items: center;
1119}
1120
1121.ag-rich-select-value-icon {
1122 flex: 1 1 auto;
1123 order: 1;
1124 @include ag-unthemed-rtl(( text-align: right ));
1125}
1126
1127
1128.ag-rich-select-list {
1129 position: relative;
1130}
1131
1132.ag-rich-select-virtual-list-item {
1133 display: flex;
1134}
1135
1136.ag-rich-select-row {
1137 display: flex;
1138 flex: 1 1 auto;
1139 align-items: center;
1140 white-space: nowrap;
1141}
1142
1143/**
1144 ****************************
1145 * Pagination
1146 ****************************
1147*/
1148.ag-paging-panel {
1149 align-items: center;
1150 display: flex;
1151 justify-content: flex-end;
1152}
1153
1154.ag-paging-page-summary-panel {
1155 display: flex;
1156 align-items: center;
1157}
1158
1159.ag-paging-button {
1160 position: relative;
1161}
1162
1163.ag-disabled .ag-paging-page-summary-panel {
1164 pointer-events: none;
1165}
1166
1167/**
1168 ****************************
1169 * Tool Panel
1170 ****************************
1171*/
1172.ag-tool-panel-wrapper {
1173 display: flex;
1174 overflow-y: auto;
1175 overflow-x: hidden;
1176 cursor: default;
1177 user-select: none;
1178}
1179
1180.ag-column-select-column,
1181.ag-column-select-column-group,
1182.ag-select-agg-func-item {
1183 position: relative;
1184 align-items: center;
1185 display: flex;
1186 flex-direction: row;
1187 flex-wrap: nowrap;
1188 text-overflow: ellipsis;
1189 white-space: nowrap;
1190 height: 100%;
1191 > * {
1192 flex: none;
1193 }
1194}
1195
1196.ag-column-select-checkbox {
1197 display: flex;
1198}
1199
1200.ag-tool-panel-horizontal-resize {
1201 cursor: ew-resize;
1202 height: 100%;
1203 position: absolute;
1204 top: 0;
1205 width: 5px;
1206 z-index: 1;
1207}
1208
1209.ag-side-bar-left .ag-tool-panel-horizontal-resize {
1210 @include ag-unthemed-rtl(( right: -3px ));
1211}
1212
1213.ag-side-bar-right .ag-tool-panel-horizontal-resize {
1214 @include ag-unthemed-rtl(( left: -3px ));
1215}
1216
1217.ag-details-row {
1218 width: 100%;
1219}
1220
1221.ag-details-row-fixed-height {
1222 height: 100%;
1223}
1224
1225.ag-details-grid {
1226 width: 100%;
1227}
1228
1229.ag-details-grid-fixed-height {
1230 height: 100%;
1231}
1232
1233.ag-header-group-cell {
1234 display: flex;
1235 align-items: center;
1236 height: 100%;
1237 position: absolute;
1238}
1239
1240.ag-cell-label-container {
1241 display: flex;
1242 justify-content: space-between;
1243 flex-direction: row-reverse;
1244 align-items: center;
1245 width: 100%;
1246 height: 100%;
1247 overflow: hidden;
1248}
1249
1250.ag-right-aligned-header .ag-cell-label-container {
1251 flex-direction: row;
1252}
1253
1254/**
1255 ****************************
1256 * Side Bar
1257 ****************************
1258*/
1259.ag-side-bar {
1260 display: flex;
1261 flex-direction: row-reverse;
1262}
1263
1264.ag-side-bar-left {
1265 order: -1;
1266 flex-direction: row;
1267}
1268
1269.ag-side-button-button {
1270 position: relative;
1271 display: flex;
1272 flex-direction: column;
1273 align-items: center;
1274 justify-content: center;
1275 flex-wrap: nowrap;
1276 white-space: nowrap;
1277 outline: none;
1278 cursor: pointer;
1279}
1280
1281.ag-side-button-label {
1282 writing-mode: vertical-lr;
1283}
1284
1285/**
1286 ****************************
1287 * Status Bar
1288 ****************************
1289*/
1290.ag-status-bar {
1291 display: flex;
1292 justify-content: space-between;
1293 overflow: hidden;
1294}
1295
1296.ag-status-panel {
1297 display: inline-flex;
1298}
1299
1300.ag-status-name-value {
1301 white-space: nowrap;
1302}
1303
1304.ag-status-bar-left {
1305 display: inline-flex;
1306}
1307
1308.ag-status-bar-center {
1309 display: inline-flex;
1310}
1311
1312.ag-status-bar-right {
1313 display: inline-flex;
1314}
1315
1316/**
1317 ****************************
1318 * Widgets
1319 ****************************
1320*/
1321
1322
1323.ag-icon {
1324 display: block;
1325 speak: none;
1326}
1327
1328.ag-group {
1329 position: relative;
1330 width: 100%;
1331}
1332
1333.ag-group-title-bar {
1334 display: flex;
1335 align-items: center;
1336}
1337
1338.ag-group-title {
1339 display: block;
1340 flex: 1 1 auto;
1341 min-width: 0;
1342 overflow: hidden;
1343 white-space: nowrap;
1344 text-overflow: ellipsis;
1345}
1346
1347.ag-group-title-bar
1348.ag-group-title {
1349 cursor: default;
1350}
1351
1352.ag-group-toolbar {
1353 display: flex;
1354 align-items: center;
1355}
1356
1357.ag-group-container {
1358 display: flex;
1359}
1360
1361.ag-disabled .ag-group-container {
1362 pointer-events: none;
1363}
1364
1365.ag-group-container-horizontal {
1366 flex-direction: row;
1367 flex-wrap: wrap;
1368}
1369
1370.ag-group-container-vertical {
1371 flex-direction: column;
1372}
1373
1374.ag-column-group-icons {
1375 display: block;
1376 > * {
1377 cursor: pointer;
1378 }
1379}
1380
1381.ag-group-item-alignment-stretch .ag-group-item {
1382 align-items: stretch;
1383}
1384
1385.ag-group-item-alignment-start .ag-group-item {
1386 align-items: flex-start;
1387}
1388
1389.ag-group-item-alignment-end .ag-group-item {
1390 align-items: flex-end;
1391}
1392
1393.ag-toggle-button-icon {
1394 transition: right 0.3s;
1395 position: absolute;
1396 top: -1px;
1397}
1398
1399.ag-input-field, .ag-select {
1400 display: flex;
1401 flex-direction: row;
1402 align-items: center;
1403}
1404
1405.ag-input-field-input {
1406 flex: 1 1 auto;
1407 width: 100%;
1408 min-width: 0;
1409}
1410
1411.ag-floating-filter-input .ag-input-field-input[type='date'] {
1412 // Fix a bug in Blink rendering engine where date input will not shrink from its default size in a
1413 // flex container, but it will grow. So we give it a very small width and it will grow to the right size
1414 width: 1px;
1415}
1416
1417.ag-range-field {
1418 display: flex;
1419 align-items: center;
1420}
1421
1422.ag-angle-select {
1423 display: flex;
1424 align-items: center;
1425}
1426
1427.ag-angle-select-wrapper {
1428 display: flex;
1429}
1430
1431.ag-angle-select-parent-circle {
1432 display: block;
1433 position: relative;
1434}
1435.ag-angle-select-child-circle {
1436 position: absolute;
1437}
1438
1439.ag-slider-wrapper {
1440 display: flex;
1441 .ag-input-field {
1442 flex: 1 1 auto;
1443 }
1444}
1445
1446.ag-picker-field-display {
1447 flex: 1 1 auto;
1448}
1449
1450.ag-picker-field {
1451 display: flex;
1452 align-items: center;
1453}
1454
1455.ag-picker-field-icon {
1456 display: flex;
1457 border: 0;
1458 padding: 0;
1459 margin: 0;
1460 cursor: pointer;
1461}
1462
1463.ag-picker-field-wrapper {
1464 overflow: hidden;
1465}
1466
1467.ag-label-align-right {
1468 .ag-label {
1469 order: 1;
1470 }
1471 > * {
1472 flex: none;
1473 }
1474}
1475
1476.ag-label-align-top {
1477 flex-direction: column;
1478 align-items: flex-start;
1479 > * {
1480 align-self: stretch;
1481 }
1482}
1483
1484.ag-color-panel {
1485 width: 100%;
1486 display: flex;
1487 flex-direction: column;
1488 text-align: center;
1489}
1490
1491.ag-spectrum-color {
1492 flex: 1 1 auto;
1493 position: relative;
1494 overflow: hidden;
1495 cursor: default;
1496}
1497
1498.ag-spectrum-fill {
1499 position: absolute;
1500 top: 0;
1501 left: 0;
1502 right: 0;
1503 bottom: 0;
1504}
1505
1506.ag-spectrum-val {
1507 cursor: pointer;
1508}
1509
1510.ag-spectrum-dragger {
1511 position: absolute;
1512 pointer-events: none;
1513 cursor: pointer;
1514}
1515
1516.ag-spectrum-hue {
1517 cursor: default;
1518 background: linear-gradient(to left,
1519 #ff0000 3%, #ffff00 17%,
1520 #00ff00 33%, #00ffff 50%,
1521 #0000ff 67%, #ff00ff 83%,
1522 #ff0000 100%
1523 );
1524}
1525
1526.ag-spectrum-alpha {
1527 cursor: default;
1528}
1529
1530.ag-spectrum-hue-background {
1531 width: 100%;
1532 height: 100%;
1533}
1534
1535.ag-spectrum-alpha-background {
1536 background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));
1537 width: 100%;
1538 height: 100%;
1539}
1540
1541.ag-spectrum-tool {
1542 cursor: pointer;
1543}
1544
1545.ag-spectrum-slider {
1546 position: absolute;
1547 pointer-events: none;
1548}
1549
1550.ag-recent-colors {
1551 display: flex;
1552}
1553
1554.ag-recent-color {
1555 cursor: pointer;
1556}
1557
1558// Default values for themes that do not use the mixins
1559@for $i from 1 to 100 {
1560 .ag-column-select-indent-#{$i} {
1561 @include ag-unthemed-rtl(( padding-left: $i * 20px ));
1562 }
1563
1564 .ag-row-group-indent-#{$i} {
1565 @include ag-unthemed-rtl(( padding-left: $i * 20px ));
1566 }
1567}
1568
1569.ag-ltr {
1570 direction: ltr;
1571 .ag-body, .ag-floating-top, .ag-floating-bottom, .ag-header, .ag-body-viewport, .ag-body-horizontal-scroll {
1572 flex-direction: row;
1573 }
1574}
1575
1576.ag-rtl {
1577 direction: rtl;
1578 .ag-body, .ag-floating-top, .ag-floating-bottom, .ag-header, .ag-body-viewport, .ag-body-horizontal-scroll {
1579 flex-direction: row-reverse;
1580 }
1581
1582 .ag-icon-contracted,
1583 .ag-icon-tree-closed {
1584 display: block;
1585 transform: rotate(180deg);
1586 }
1587}