_TableList.scss 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  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 {
  80. @include icomoonIconSelector() {
  81. margin-right: 0.3rem;
  82. }
  83. }
  84. .esri-table-list__item--error {
  85. .esri-table-list__item-error-message {
  86. visibility: visible;
  87. height: auto;
  88. transform: scale(1, 1);
  89. }
  90. }
  91. .esri-table-list__item-toggle {
  92. padding: 0 $side-spacing--quarter;
  93. cursor: pointer;
  94. color: $interactive-font-color;
  95. }
  96. .esri-table-list__item-actions-menu {
  97. display: flex;
  98. }
  99. .esri-table-list__item-actions-menu-item {
  100. display: flex;
  101. flex: 1 0 floor($font-size * 1.5);
  102. justify-content: center;
  103. align-items: center;
  104. color: $interactive-font-color;
  105. cursor: pointer;
  106. padding: 0 $side-spacing--quarter;
  107. transition: border-color 250ms ease-in-out;
  108. }
  109. .esri-table-list__item-actions-menu-item:first-of-type {
  110. margin: 0 2px;
  111. }
  112. .esri-table-list__item-actions-menu-item:hover {
  113. background-color: $background-color--hover;
  114. }
  115. .esri-table-list__item-actions-menu-item--active,
  116. .esri-table-list__item-actions-menu-item--active:hover {
  117. background-color: $background-color--active;
  118. }
  119. .esri-table-list__item-actions {
  120. position: relative;
  121. background-color: $background-color--offset;
  122. color: $interactive-font-color;
  123. margin: -1px $side-spacing--half $cap-spacing--half;
  124. height: auto;
  125. }
  126. .esri-table-list__item-actions[aria-expanded="true"] {
  127. animation: esri-fade-in 250ms ease-in-out;
  128. }
  129. .esri-table-list__item-actions-section {
  130. animation: esri-fade-in 375ms ease-in-out;
  131. }
  132. .esri-table-list__item-actions[hidden] {
  133. display: none;
  134. }
  135. .esri-table-list__item-actions-close {
  136. color: $interactive-font-color;
  137. position: absolute;
  138. top: 0;
  139. right: 0;
  140. cursor: pointer;
  141. padding: 5px;
  142. z-index: 1;
  143. }
  144. .esri-table-list__item-actions-list {
  145. display: flex;
  146. flex-flow: column;
  147. justify-content: flex-start;
  148. align-items: flex-start;
  149. padding: $cap-spacing--half 0;
  150. list-style: none;
  151. border-top: 2px solid $background-color;
  152. }
  153. .esri-table-list__item-actions-list:first-of-type {
  154. border-top: 0;
  155. }
  156. .esri-table-list__item-action,
  157. .esri-table-list__action-toggle {
  158. border: 1px solid transparent;
  159. display: flex;
  160. justify-content: flex-start;
  161. align-items: flex-start;
  162. cursor: pointer;
  163. font-size: $font-size--small;
  164. width: 100%;
  165. margin: 0;
  166. padding: $cap-spacing--half $side-spacing;
  167. opacity: 1;
  168. transition: opacity 250ms ease-in-out 250ms, background-color 250ms ease-in-out;
  169. }
  170. .esri-table-list__item-action {
  171. justify-content: flex-start;
  172. flex-flow: row;
  173. }
  174. .esri-table-list__action-toggle {
  175. flex-flow: row-reverse;
  176. justify-content: space-between;
  177. .esri-table-list__item-action-title {
  178. margin-left: 0;
  179. }
  180. .esri-table-list__item-action-icon {
  181. background-color: $background-color--inverse;
  182. border-radius: $toggle-height;
  183. box-shadow: 0 0 0 1px $interactive-font-color--inverse;
  184. flex: 0 0 $toggle-width;
  185. height: $toggle-height;
  186. overflow: hidden;
  187. padding: 0;
  188. position: relative;
  189. transition: background-color 125ms ease-in-out;
  190. width: $icon-size;
  191. &:before {
  192. // Toggle handle. Overrides any icon class
  193. background-color: $interactive-font-color--inverse;
  194. border-radius: 100%;
  195. content: "";
  196. display: block;
  197. height: $toggle-handle-size;
  198. left: 0;
  199. margin: 2px;
  200. position: absolute;
  201. top: 0;
  202. transition: background-color 125ms ease-in-out, left 125ms ease-in-out;
  203. width: $toggle-handle-size;
  204. }
  205. }
  206. }
  207. .esri-table-list__action-toggle--on .esri-table-list__item-action-icon {
  208. // Toggle on
  209. background-color: $interactive-font-color--inverse;
  210. &:before {
  211. background-color: $background-color--inverse;
  212. box-shadow: 0 0 0 1px $background-color--inverse;
  213. left: $toggle-handle-size;
  214. }
  215. }
  216. .esri-table-list__item-action:hover,
  217. .esri-table-list__action-toggle:hover {
  218. background-color: $background-color--hover;
  219. }
  220. .esri-table-list__item-actions[hidden] .esri-table-list__item-action {
  221. opacity: 0;
  222. }
  223. .esri-table-list__item-action-icon {
  224. flex: 0 0 $icon-size;
  225. font-size: $icon-size;
  226. display: inline-block;
  227. width: $icon-size;
  228. height: $icon-size;
  229. margin-top: 0.1em;
  230. }
  231. .esri-table-list__item-action-image {
  232. flex: 0 0 $icon-size;
  233. width: $icon-size;
  234. height: $icon-size;
  235. font-size: $font-size;
  236. text-align: center;
  237. background-size: contain;
  238. background-repeat: no-repeat;
  239. background-position: 50% 50%;
  240. }
  241. .esri-table-list__item-action-title {
  242. margin-left: 5px;
  243. }
  244. .esri-table-list-panel {
  245. margin: $cap-spacing $side-spacing;
  246. }
  247. // Legend as content
  248. .esri-table-list-panel__content--legend .esri-legend__service {
  249. padding: 0 0 $cap-spacing 0;
  250. }
  251. [dir="rtl"] .esri-table-list {
  252. .esri-table-list__list {
  253. margin: 0 $side-spacing 0 0;
  254. }
  255. .esri-table-list__list--root {
  256. margin: 0;
  257. }
  258. .esri-table-list__item-action-title {
  259. margin-left: 0;
  260. margin-right: 5px;
  261. }
  262. .esri-table-list__action-toggle .esri-table-list__action-toggle {
  263. margin-right: 0;
  264. }
  265. .esri-table-list__item:after {
  266. animation: looping-progresss-bar-ani $looping-progress-bar-params reverse;
  267. }
  268. .esri-table-list__item-error-message {
  269. @include icomoonIconSelector() {
  270. margin-right: 0;
  271. margin-left: 0.3rem;
  272. }
  273. }
  274. .esri-table-list__item--selectable .esri-table-list__item-container {
  275. border-left: none;
  276. border-right: $border-size--active solid transparent;
  277. &:hover {
  278. border-right-color: $border-color;
  279. }
  280. }
  281. .esri-table-list__item[aria-selected="true"] > .esri-table-list__item-container {
  282. border-right-color: $border-color--active;
  283. &:hover {
  284. border-right-color: $border-color--active;
  285. }
  286. }
  287. }
  288. }
  289. @if $include_TableList==true {
  290. @include tableList();
  291. }