_TableList.scss 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. @mixin tableList() {
  2. .esri-table-list {
  3. color: $font-color;
  4. background-color: $background-color--offset;
  5. padding: $cap-spacing--half $side-spacing--half;
  6. overflow-y: auto;
  7. display: flex;
  8. flex-flow: column;
  9. }
  10. .esri-table-list__list {
  11. list-style: none;
  12. margin: 0 0 0 $side-spacing;
  13. padding: 0;
  14. }
  15. .esri-table-list__list[hidden] {
  16. display: none;
  17. }
  18. .esri-table-list__list--root {
  19. margin: 0;
  20. }
  21. .esri-table-list__item--selectable .esri-table-list__item-container {
  22. cursor: pointer;
  23. &:hover {
  24. border-left-color: $border-color;
  25. }
  26. }
  27. .esri-table-list__item[aria-selected="true"] > .esri-table-list__item-container {
  28. border-left-color: $border-color--active;
  29. &:hover {
  30. border-left-color: $border-color--active;
  31. }
  32. }
  33. .esri-table-list__item-container ~ .esri-table-list__list .esri-table-list__item {
  34. border-bottom-width: 0;
  35. }
  36. .esri-table-list__item {
  37. background-color: $background-color;
  38. border-bottom: 1px solid $border-color;
  39. position: relative;
  40. overflow: hidden;
  41. list-style: none;
  42. margin: $cap-spacing--quarter 0;
  43. padding: 0;
  44. @include sortableChosen("esri-table-list__item--chosen");
  45. }
  46. .esri-table-list__item-container {
  47. border-left: $border-size--active solid transparent;
  48. display: flex;
  49. justify-content: flex-start;
  50. align-items: flex-start;
  51. padding: $cap-spacing $side-spacing--half $cap-spacing ($side-spacing + 5);
  52. transition: border-color 250ms ease-in-out;
  53. }
  54. .esri-table-list__item-title {
  55. flex: 1;
  56. padding-left: $side-spacing--third;
  57. padding-right: $side-spacing--third;
  58. line-height: $line-height;
  59. word-break: break-word;
  60. overflow-wrap: break-word;
  61. transition: color 125ms ease-in-out;
  62. }
  63. .esri-table-list__item-error-message {
  64. display: flex;
  65. align-items: center;
  66. visibility: hidden;
  67. height: 0;
  68. margin-top: -1px;
  69. padding: $cap-spacing--quarter $side-spacing--half;
  70. overflow: hidden;
  71. background-color: $background-color--error;
  72. color: $font-color--error;
  73. font-size: $font-size--small;
  74. transition: transform 250ms ease-in-out;
  75. transform: scale(1, 0);
  76. animation: esri-fade-in-down 250ms ease-in-out;
  77. transform-origin: center top;
  78. }
  79. .esri-table-list__item-error-message [class^="esri-icon-"],
  80. .esri-table-list__item-error-message [class*="esri-icon-"] {
  81. margin-right: 0.3rem;
  82. }
  83. .esri-table-list__item--error {
  84. .esri-table-list__item-error-message {
  85. visibility: visible;
  86. height: auto;
  87. transform: scale(1, 1);
  88. }
  89. }
  90. .esri-table-list__item-toggle {
  91. padding: 0 $side-spacing--quarter;
  92. cursor: pointer;
  93. color: $interactive-font-color;
  94. }
  95. .esri-table-list__item-actions-menu {
  96. display: flex;
  97. }
  98. .esri-table-list__item-actions-menu-item {
  99. display: flex;
  100. flex: 1 0 floor($font-size * 1.5);
  101. justify-content: center;
  102. align-items: center;
  103. color: $interactive-font-color;
  104. cursor: pointer;
  105. padding: 0 $side-spacing--quarter;
  106. transition: border-color 250ms ease-in-out;
  107. }
  108. .esri-table-list__item-actions-menu-item:first-of-type {
  109. margin: 0 2px;
  110. }
  111. .esri-table-list__item-actions-menu-item:hover {
  112. background-color: $background-color--hover;
  113. }
  114. .esri-table-list__item-actions-menu-item--active,
  115. .esri-table-list__item-actions-menu-item--active:hover {
  116. background-color: $background-color--active;
  117. }
  118. .esri-table-list__item-actions {
  119. position: relative;
  120. background-color: $background-color--offset;
  121. color: $interactive-font-color;
  122. margin: -1px $side-spacing--half $cap-spacing--half;
  123. height: auto;
  124. }
  125. .esri-table-list__item-actions[aria-expanded="true"] {
  126. animation: esri-fade-in 250ms ease-in-out;
  127. }
  128. .esri-table-list__item-actions-section {
  129. animation: esri-fade-in 375ms ease-in-out;
  130. }
  131. .esri-table-list__item-actions[hidden] {
  132. display: none;
  133. }
  134. .esri-table-list__item-actions-close {
  135. color: $interactive-font-color;
  136. position: absolute;
  137. top: 0;
  138. right: 0;
  139. cursor: pointer;
  140. padding: 5px;
  141. z-index: 1;
  142. }
  143. .esri-table-list__item-actions-list {
  144. display: flex;
  145. flex-flow: column;
  146. justify-content: flex-start;
  147. align-items: flex-start;
  148. padding: $cap-spacing--half 0;
  149. list-style: none;
  150. border-top: 2px solid $background-color;
  151. }
  152. .esri-table-list__item-actions-list:first-of-type {
  153. border-top: 0;
  154. }
  155. .esri-table-list__item-action,
  156. .esri-table-list__action-toggle {
  157. border: 1px solid transparent;
  158. display: flex;
  159. justify-content: flex-start;
  160. align-items: flex-start;
  161. cursor: pointer;
  162. font-size: $font-size--small;
  163. width: 100%;
  164. margin: 0;
  165. padding: $cap-spacing--half $side-spacing;
  166. opacity: 1;
  167. transition: opacity 250ms ease-in-out 250ms, background-color 250ms ease-in-out;
  168. }
  169. .esri-table-list__item-action {
  170. justify-content: flex-start;
  171. flex-flow: row;
  172. }
  173. .esri-table-list__action-toggle {
  174. flex-flow: row-reverse;
  175. justify-content: space-between;
  176. .esri-table-list__item-action-title {
  177. margin-left: 0;
  178. }
  179. .esri-table-list__item-action-icon {
  180. background-color: $background-color--inverse;
  181. border-radius: $toggle-height;
  182. box-shadow: 0 0 0 1px $interactive-font-color--inverse;
  183. flex: 0 0 $toggle-width;
  184. height: $toggle-height;
  185. overflow: hidden;
  186. padding: 0;
  187. position: relative;
  188. transition: background-color 125ms ease-in-out;
  189. width: $icon-size;
  190. &:before {
  191. // Toggle handle. Overrides any icon class
  192. background-color: $interactive-font-color--inverse;
  193. border-radius: 100%;
  194. content: "";
  195. display: block;
  196. height: $toggle-handle-size;
  197. left: 0;
  198. margin: 2px;
  199. position: absolute;
  200. top: 0;
  201. transition: background-color 125ms ease-in-out, left 125ms ease-in-out;
  202. width: $toggle-handle-size;
  203. }
  204. }
  205. }
  206. .esri-table-list__action-toggle--on .esri-table-list__item-action-icon {
  207. // Toggle on
  208. background-color: $interactive-font-color--inverse;
  209. &:before {
  210. background-color: $background-color--inverse;
  211. box-shadow: 0 0 0 1px $background-color--inverse;
  212. left: $toggle-handle-size;
  213. }
  214. }
  215. .esri-table-list__item-action:hover,
  216. .esri-table-list__action-toggle:hover {
  217. background-color: $background-color--hover;
  218. }
  219. .esri-table-list__item-actions[hidden] .esri-table-list__item-action {
  220. opacity: 0;
  221. }
  222. .esri-table-list__item-action-icon {
  223. flex: 0 0 $icon-size;
  224. font-size: $icon-size;
  225. display: inline-block;
  226. width: $icon-size;
  227. height: $icon-size;
  228. margin-top: 0.1em;
  229. }
  230. .esri-table-list__item-action-image {
  231. flex: 0 0 $icon-size;
  232. width: $icon-size;
  233. height: $icon-size;
  234. font-size: $font-size;
  235. text-align: center;
  236. background-size: contain;
  237. background-repeat: no-repeat;
  238. background-position: 50% 50%;
  239. }
  240. .esri-table-list__item-action-title {
  241. margin-left: 5px;
  242. }
  243. .esri-table-list-panel {
  244. margin: $cap-spacing $side-spacing;
  245. }
  246. // Legend as content
  247. .esri-table-list-panel__content--legend .esri-legend__service {
  248. padding: 0 0 $cap-spacing 0;
  249. }
  250. html[dir="rtl"] .esri-table-list {
  251. .esri-table-list__list {
  252. margin: 0 $side-spacing 0 0;
  253. }
  254. .esri-table-list__list--root {
  255. margin: 0;
  256. }
  257. .esri-table-list__item-action-title {
  258. margin-left: 0;
  259. margin-right: 5px;
  260. }
  261. .esri-table-list__action-toggle .esri-table-list__action-toggle {
  262. margin-right: 0;
  263. }
  264. .esri-table-list__item:after {
  265. animation: looping-progresss-bar-ani $looping-progress-bar-params reverse;
  266. }
  267. .esri-table-list__item-error-message [class^="esri-icon-"],
  268. .esri-table-list__item-error-message [class*="esri-icon-"] {
  269. margin-right: 0;
  270. margin-left: 0.3rem;
  271. }
  272. }
  273. }
  274. @if $include_TableList==true {
  275. @include tableList();
  276. }