project-list-react.less 19 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010
  1. @project-list-sidebar-wrapper-flex: 0 0 15%;
  2. .project-list-react {
  3. body > .content& {
  4. padding-top: @header-height;
  5. padding-bottom: 0;
  6. min-height: calc(~'100vh -' @header-height);
  7. display: flex;
  8. flex-direction: column;
  9. }
  10. .container:before {
  11. content: '';
  12. display: block;
  13. float: left;
  14. height: 100%;
  15. }
  16. .fill {
  17. position: relative;
  18. &:after {
  19. content: '';
  20. display: block;
  21. clear: left;
  22. }
  23. }
  24. .project-list-wrapper {
  25. display: flex;
  26. align-items: stretch;
  27. width: 100%;
  28. min-height: calc(~'100vh -' @header-height);
  29. }
  30. .project-list-sidebar-wrapper-react {
  31. position: relative;
  32. background-color: @sidebar-bg;
  33. flex: @project-list-sidebar-wrapper-flex;
  34. min-height: calc(~'100vh -' @header-height);
  35. max-width: 320px;
  36. min-width: 200px;
  37. .project-list-sidebar-subwrapper {
  38. display: flex;
  39. flex-direction: column;
  40. height: 100%;
  41. .project-list-sidebar-react {
  42. flex-grow: 1;
  43. padding-left: 15px;
  44. padding-right: 15px;
  45. -ms-overflow-style: -ms-autohiding-scrollbar;
  46. padding-top: @content-margin-vertical;
  47. padding-bottom: @content-margin-vertical;
  48. color: @sidebar-color;
  49. .small {
  50. color: @sidebar-color;
  51. }
  52. button {
  53. white-space: normal;
  54. word-wrap: anywhere;
  55. // prevents buttons from expanding sidebar width
  56. }
  57. > .dropdown {
  58. width: 100%;
  59. .new-project-button {
  60. width: 100%;
  61. }
  62. }
  63. }
  64. }
  65. }
  66. .project-list-welcome-wrapper {
  67. width: 100%;
  68. padding-bottom: 25px;
  69. .welcome-new-wrapper {
  70. .welcome-title {
  71. font-size: 32px;
  72. }
  73. .welcome-message-cards-wrapper {
  74. display: flex;
  75. flex-direction: column;
  76. justify-content: space-between;
  77. align-items: center;
  78. margin-top: 50px;
  79. @media (min-width: @screen-md-min) {
  80. flex-direction: row;
  81. justify-content: center;
  82. }
  83. }
  84. .welcome-message-card {
  85. border: 1px solid @neutral-20;
  86. border-radius: 16px;
  87. display: flex;
  88. flex-direction: column;
  89. align-items: center;
  90. justify-content: space-between;
  91. padding: 24px 16px;
  92. margin: @margin-sm 0;
  93. width: 280px;
  94. height: 200px;
  95. position: relative;
  96. cursor: pointer;
  97. @media (min-width: @screen-md-min) {
  98. margin: 0 15px;
  99. height: 240px;
  100. }
  101. &:hover {
  102. background-color: @ol-blue-gray-0;
  103. }
  104. .welcome-message-card-img {
  105. @media (min-width: @screen-md-min) {
  106. margin-bottom: 20px;
  107. }
  108. }
  109. .create-new-project-dropdown {
  110. border: 1px solid @neutral-20;
  111. position: absolute;
  112. top: 100%;
  113. left: 5%;
  114. width: 90%;
  115. margin-top: 8px;
  116. padding: 0;
  117. border-radius: 3px;
  118. z-index: 1;
  119. text-align: left;
  120. button,
  121. a,
  122. .dropdown-header {
  123. padding: 5px 10px;
  124. }
  125. > button {
  126. background-color: white;
  127. border: none;
  128. box-shadow: none;
  129. display: flex;
  130. align-items: center;
  131. width: 100%;
  132. &:hover {
  133. background-color: @ol-blue-gray-0;
  134. }
  135. }
  136. > a {
  137. color: @ol-blue-gray-3;
  138. display: block;
  139. &:hover {
  140. text-decoration: none;
  141. background-color: @ol-blue-gray-0;
  142. }
  143. }
  144. hr {
  145. margin-top: 6px;
  146. margin-bottom: 6px;
  147. }
  148. }
  149. }
  150. .welcome-message-card-link {
  151. &,
  152. &:hover {
  153. text-decoration: none;
  154. color: @ol-blue-gray-3;
  155. }
  156. }
  157. }
  158. }
  159. .project-list-main-react {
  160. flex: 1;
  161. overflow-x: hidden;
  162. padding: @content-margin-vertical @grid-gutter-width / 2;
  163. }
  164. .project-list-header-row {
  165. display: flex;
  166. align-items: center;
  167. margin-bottom: @margin-sm;
  168. min-height: 36px;
  169. }
  170. .project-list-title {
  171. min-width: 0;
  172. color: @content-secondary;
  173. font-family: Lato, sans-serif;
  174. font-size: @font-size-large;
  175. line-height: 28px;
  176. font-weight: bold;
  177. overflow: hidden;
  178. text-overflow: ellipsis;
  179. }
  180. ul.project-list-filters {
  181. margin: @margin-sm @folders-menu-margin;
  182. .subdued {
  183. color: @gray-light;
  184. }
  185. > li {
  186. cursor: pointer;
  187. position: relative;
  188. > button {
  189. display: block;
  190. width: 100%;
  191. font-weight: normal;
  192. text-align: left;
  193. color: @sidebar-link-color;
  194. background-color: transparent;
  195. border-radius: unset;
  196. border: none;
  197. border-bottom: solid 1px transparent;
  198. padding: @folders-menu-item-v-padding @folders-menu-item-h-padding;
  199. &:hover {
  200. background-color: @sidebar-hover-bg;
  201. text-decoration: @sidebar-hover-text-decoration;
  202. }
  203. &:focus {
  204. text-decoration: none;
  205. outline: none;
  206. }
  207. }
  208. &.separator {
  209. padding: @folders-menu-item-v-padding @folders-menu-item-h-padding;
  210. cursor: auto;
  211. }
  212. }
  213. > li.active {
  214. border-radius: @sidebar-active-border-radius;
  215. > button {
  216. background-color: @sidebar-active-bg;
  217. font-weight: @sidebar-active-font-weight;
  218. color: @sidebar-active-color;
  219. .subdued {
  220. color: @sidebar-active-color;
  221. }
  222. }
  223. }
  224. h2 {
  225. margin-top: @folders-title-margin-top;
  226. margin-bottom: @folders-title-margin-bottom;
  227. font-size: @folders-title-font-size;
  228. color: @folders-title-color;
  229. text-transform: @folders-title-text-transform;
  230. padding: @folders-title-padding;
  231. font-weight: @folders-title-font-weight;
  232. font-family: @font-family-sans-serif;
  233. }
  234. > li.tag {
  235. &.active {
  236. .tag-menu > button {
  237. color: white;
  238. border-color: white;
  239. &:hover {
  240. background-color: @folders-tag-menu-active-hover;
  241. }
  242. }
  243. }
  244. &.untagged {
  245. button.tag-name {
  246. span.name {
  247. font-style: italic;
  248. padding-left: 0;
  249. }
  250. }
  251. }
  252. &:hover {
  253. &:not(.active) {
  254. background-color: @folders-tag-hover;
  255. }
  256. .tag-menu {
  257. display: block;
  258. }
  259. }
  260. &:not(.active) {
  261. .tag-menu > a:hover {
  262. background-color: @folders-tag-menu-hover;
  263. }
  264. }
  265. button.tag-name {
  266. position: relative;
  267. padding: @folders-tag-padding;
  268. display: @folders-tag-display;
  269. align-items: center;
  270. word-wrap: anywhere;
  271. span.name {
  272. padding-left: 0.5em;
  273. line-height: @folders-tag-line-height;
  274. }
  275. }
  276. }
  277. .tag-menu {
  278. button.dropdown-toggle {
  279. border: 1px solid @folders-tag-border-color;
  280. border-radius: @border-radius-small;
  281. background-color: transparent;
  282. color: @folders-tag-menu-color;
  283. display: block;
  284. width: 16px;
  285. height: 16px;
  286. position: relative;
  287. .caret {
  288. position: absolute;
  289. top: 6px;
  290. left: 1px;
  291. }
  292. }
  293. display: none;
  294. width: auto;
  295. position: absolute;
  296. top: 50%;
  297. margin-top: -8px; // Half the element height.
  298. right: 4px;
  299. &.open {
  300. display: block;
  301. }
  302. button.tag-action {
  303. border-radius: unset;
  304. width: 100%;
  305. background-color: transparent;
  306. border-color: transparent;
  307. color: @gray-dark;
  308. text-align: left;
  309. font-weight: normal;
  310. &:hover {
  311. color: @white;
  312. background-color: @ol-green;
  313. }
  314. &:active {
  315. outline: none;
  316. }
  317. }
  318. }
  319. }
  320. .project-tools {
  321. flex-shrink: 0;
  322. margin-left: auto;
  323. }
  324. .project-dash-table {
  325. width: 100%;
  326. table-layout: fixed;
  327. tr {
  328. border-bottom: 1px solid @structured-list-border-color;
  329. }
  330. th,
  331. td {
  332. padding: (@line-height-computed / 4) @line-height-computed / 2;
  333. vertical-align: top;
  334. }
  335. tr {
  336. th:first-child,
  337. td:first-child,
  338. th:last-child,
  339. td:last-child {
  340. padding-right: @line-height-computed - (@grid-gutter-width / 2);
  341. }
  342. }
  343. tbody {
  344. tr:not(.no-projects):hover {
  345. background-color: @structured-list-hover-color;
  346. }
  347. tr:last-child {
  348. border-bottom: 0 none;
  349. }
  350. }
  351. .table-header-sort-btn {
  352. border: 0;
  353. text-align: left;
  354. color: @ol-type-color;
  355. background-color: transparent;
  356. padding: 0;
  357. font-weight: bold;
  358. max-width: 100%;
  359. overflow: hidden;
  360. text-overflow: ellipsis;
  361. text-decoration: none;
  362. &:hover,
  363. &:focus {
  364. color: @ol-type-color;
  365. text-decoration: none;
  366. }
  367. }
  368. .dash-cell-checkbox {
  369. width: 5%;
  370. line-height: 1.55;
  371. input[type='checkbox'] {
  372. margin-top: 5px;
  373. }
  374. .dash-cell-checkbox-wrapper {
  375. label {
  376. display: block;
  377. margin: 0;
  378. line-height: 1;
  379. }
  380. }
  381. }
  382. .dash-cell-name {
  383. hyphens: auto;
  384. width: 50%;
  385. word-break: break-word;
  386. }
  387. .dash-cell-owner {
  388. width: 20%;
  389. }
  390. .dash-cell-date {
  391. width: 25%;
  392. }
  393. .dash-cell-actions {
  394. display: none;
  395. text-align: right;
  396. }
  397. .dash-cell-date-owner {
  398. font-size: 14px;
  399. .text-overflow();
  400. }
  401. .dash-cell-tag,
  402. .clone-project-tag {
  403. .tag-label {
  404. padding: 14px 0;
  405. cursor: pointer;
  406. &:not(.tag-label-close-hover) {
  407. &:hover,
  408. &:focus {
  409. .label.tag-label-name {
  410. color: @tag-color;
  411. background-color: @tag-bg-hover-color;
  412. outline-width: 0;
  413. }
  414. }
  415. }
  416. &:first-child {
  417. margin-left: initial;
  418. }
  419. }
  420. }
  421. @media (min-width: @screen-xs) {
  422. .dash-cell-checkbox {
  423. width: 4%;
  424. }
  425. .dash-cell-name {
  426. width: 50%;
  427. }
  428. .dash-cell-owner {
  429. width: 21%;
  430. }
  431. .dash-cell-date {
  432. width: 25%;
  433. }
  434. .dash-cell-actions {
  435. width: 0%;
  436. }
  437. }
  438. @media (min-width: @screen-sm) {
  439. .dash-cell-checkbox {
  440. width: 3%;
  441. }
  442. .dash-cell-name {
  443. width: 45%;
  444. }
  445. .dash-cell-owner {
  446. width: 16%;
  447. }
  448. .dash-cell-date {
  449. width: 21%;
  450. }
  451. .dash-cell-actions {
  452. display: table-cell;
  453. width: 15%;
  454. }
  455. .project-tools {
  456. float: none;
  457. }
  458. }
  459. @media (min-width: @screen-md) {
  460. .dash-cell-checkbox {
  461. width: 3%;
  462. }
  463. .dash-cell-name {
  464. width: 46%;
  465. }
  466. .dash-cell-owner {
  467. width: 13%;
  468. }
  469. .dash-cell-date {
  470. width: 16%;
  471. }
  472. .dash-cell-actions {
  473. width: 22%;
  474. }
  475. tbody {
  476. .dash-cell-actions {
  477. white-space: nowrap;
  478. }
  479. }
  480. }
  481. @media (min-width: @screen-lg) {
  482. .dash-cell-checkbox {
  483. width: 3%;
  484. }
  485. .dash-cell-name {
  486. width: 46%;
  487. }
  488. .dash-cell-owner {
  489. width: 15%;
  490. }
  491. .dash-cell-date {
  492. width: 19%;
  493. }
  494. .dash-cell-actions {
  495. width: 17%;
  496. }
  497. }
  498. @media (min-width: 1440px) {
  499. .dash-cell-checkbox {
  500. width: 2%;
  501. }
  502. .dash-cell-name {
  503. width: 49%;
  504. }
  505. .dash-cell-owner {
  506. width: 16%;
  507. }
  508. .dash-cell-date {
  509. width: 19%;
  510. }
  511. .dash-cell-actions {
  512. width: 14%;
  513. }
  514. }
  515. @media (max-width: @screen-xs-max) {
  516. @actions-btn-size: 48px;
  517. tr {
  518. position: relative;
  519. display: flex;
  520. flex-direction: column;
  521. td {
  522. padding-top: @line-height-computed / 6;
  523. padding-bottom: @line-height-computed / 6;
  524. }
  525. td:not(.dash-cell-actions) {
  526. padding-right: @actions-btn-size + 12.5px;
  527. }
  528. }
  529. .dash-cell-name,
  530. .dash-cell-owner,
  531. .dash-cell-date,
  532. .dash-cell-tag,
  533. .dash-cell-actions {
  534. display: block;
  535. width: auto;
  536. }
  537. .dash-cell-actions {
  538. position: absolute;
  539. top: 0;
  540. right: 0;
  541. padding: 0 !important;
  542. .dropdown-toggle {
  543. padding: 13px 15px;
  544. border-radius: 0;
  545. font-size: 14px;
  546. }
  547. }
  548. }
  549. }
  550. .loading-container {
  551. display: flex;
  552. flex-direction: column;
  553. justify-content: center;
  554. align-items: center;
  555. min-height: calc(~'100vh -' @header-height);
  556. .loading-screen-brand-container {
  557. margin: 0 auto;
  558. }
  559. }
  560. @media (max-width: @screen-xs-max) {
  561. .project-tools {
  562. float: left;
  563. margin-left: initial;
  564. }
  565. }
  566. .projects-toolbar,
  567. .tag-item {
  568. display: flex;
  569. align-items: center;
  570. }
  571. .projects-toolbar {
  572. .dropdown,
  573. .dropdown-toggle {
  574. max-width: 100%;
  575. }
  576. .dropdown {
  577. min-width: 0;
  578. }
  579. .dropdown-toggle {
  580. display: inline-flex;
  581. align-items: baseline;
  582. }
  583. }
  584. .projects-sort-dropdown {
  585. flex-shrink: 0;
  586. margin-left: auto;
  587. }
  588. #projects-types-dropdown {
  589. font-family: @font-family-serif;
  590. & + .projects-dropdown-menu {
  591. min-width: 226px;
  592. }
  593. }
  594. #projects-sort-dropdown {
  595. & + .projects-dropdown-menu {
  596. min-width: 156px;
  597. }
  598. }
  599. .projects-dropdown-menu {
  600. &.dropdown-menu {
  601. // Avoid line breaks for labels in menu items.
  602. // There is enough space for these on mobile devices (checked DE and EN translations).
  603. white-space: nowrap;
  604. }
  605. .dropdown-header {
  606. padding: 14px 20px;
  607. font-size: 13px;
  608. text-transform: uppercase;
  609. }
  610. }
  611. .projects-types-menu-item {
  612. .menu-item-button-icon {
  613. left: 10px;
  614. }
  615. &.projects-types-menu-tag-item {
  616. display: flex;
  617. .edit-btn {
  618. padding: 12px 14px;
  619. }
  620. }
  621. }
  622. .projects-sort-menu-item {
  623. .menu-item-button-icon {
  624. left: 14px;
  625. }
  626. }
  627. .projects-action-menu-item {
  628. .menu-item-button-icon {
  629. left: 11px;
  630. }
  631. }
  632. }
  633. .current-plan {
  634. vertical-align: middle;
  635. line-height: @line-height-base;
  636. a.current-plan-label {
  637. text-decoration: none;
  638. color: @text-color;
  639. }
  640. }
  641. .project-list-upload-project-modal-uppy-dashboard .uppy-Root {
  642. .uppy-Dashboard-AddFiles-title {
  643. display: flex;
  644. flex-direction: column;
  645. color: @ol-blue-gray-3;
  646. white-space: pre-line;
  647. button.uppy-Dashboard-browse {
  648. background-color: @ol-green;
  649. color: @white;
  650. margin-bottom: @margin-md;
  651. padding: 4px 16px 5px;
  652. height: 46px;
  653. border-radius: 23px;
  654. font-weight: 700;
  655. display: flex;
  656. justify-content: center;
  657. align-items: center;
  658. font-size: @font-size-large;
  659. font-family: @font-family-sans-serif;
  660. }
  661. }
  662. }
  663. .btn-transparent {
  664. box-shadow: none !important;
  665. background: none !important;
  666. border-radius: 0 !important;
  667. color: inherit !important;
  668. font-weight: 400;
  669. &:hover {
  670. box-shadow: none !important;
  671. background: none !important;
  672. color: inherit !important;
  673. }
  674. }
  675. .menu-item-button,
  676. #new-project-button-projects-table + .dropdown-menu [role='menuitem'] {
  677. padding: 12px 20px;
  678. }
  679. .menu-item-button {
  680. position: relative;
  681. width: 100%;
  682. border: none;
  683. box-shadow: none;
  684. background: inherit;
  685. color: @ol-blue-gray-5;
  686. text-align: left;
  687. .menu-item-button-text {
  688. padding-left: 14px;
  689. }
  690. .menu-item-button-icon {
  691. position: absolute;
  692. top: 50%;
  693. transform: translateY(-50%);
  694. &.fa-spinner {
  695. top: 30%;
  696. }
  697. }
  698. }
  699. .project-list-load-more-button {
  700. margin-bottom: @margin-sm;
  701. }
  702. .tag-dropdown-button {
  703. display: block;
  704. width: 100%;
  705. font-weight: normal;
  706. font-size: @font-size-base;
  707. text-align: left;
  708. color: @gray-dark;
  709. background-color: transparent;
  710. border-radius: unset;
  711. border: none;
  712. border-bottom: solid 1px transparent;
  713. padding: 3px 20px;
  714. &:active,
  715. &:focus {
  716. color: @gray-dark;
  717. background-color: transparent;
  718. text-decoration: none;
  719. outline: none;
  720. }
  721. &:hover {
  722. color: @white;
  723. background-color: @ol-green;
  724. }
  725. .tag-checkbox {
  726. width: 16px;
  727. }
  728. .tag-dot {
  729. display: inline-block;
  730. position: relative;
  731. border: 1px solid #ffffff;
  732. width: 14px;
  733. height: 14px;
  734. border-radius: 7px;
  735. text-align: center;
  736. top: 1px;
  737. }
  738. }
  739. .project-list-sidebar-survey-wrapper {
  740. position: sticky;
  741. bottom: 0;
  742. .alert-info-alt {
  743. font-size: @font-size-small;
  744. margin-bottom: 0;
  745. a {
  746. text-decoration: none;
  747. }
  748. }
  749. @media (max-width: @screen-xs-max) {
  750. position: static;
  751. margin-top: @margin-sm;
  752. .alert-info-alt {
  753. font-size: unset;
  754. &:before {
  755. display: none;
  756. }
  757. .project-list-sidebar-survey-link {
  758. display: block;
  759. align-items: center;
  760. min-width: @mobile-action-element-width;
  761. min-height: @mobile-action-element-height;
  762. padding-top: @padding-md;
  763. }
  764. }
  765. }
  766. }
  767. .color-picker-item {
  768. height: 28px;
  769. width: 28px;
  770. cursor: pointer;
  771. position: relative;
  772. outline: none;
  773. border-radius: 4px;
  774. margin: 0 14px 0 0;
  775. display: inline-block;
  776. vertical-align: middle;
  777. &:focus-visible {
  778. box-shadow:
  779. 0 0 0 2px @white,
  780. 0 0 0 3px @blue-50,
  781. 0 0 0 5px @blue-30;
  782. }
  783. &.more-button {
  784. border: 1px solid @gray-dark;
  785. .color-picker-more {
  786. color: @gray-dark;
  787. margin: 3px;
  788. font-weight: bold;
  789. @media (max-width: @screen-xs-max) {
  790. margin: 5px;
  791. }
  792. }
  793. .color-picker-more-open {
  794. color: @gray-dark;
  795. margin: 3px;
  796. font-weight: bold;
  797. @media (max-width: @screen-xs-max) {
  798. margin: 5px;
  799. }
  800. }
  801. }
  802. .color-picker-item-icon {
  803. margin: 4px;
  804. color: @white;
  805. font-weight: bold;
  806. }
  807. @media (max-width: @screen-xs-max) {
  808. height: 32px;
  809. width: 32px;
  810. margin: 24px 24px;
  811. .color-picker-item-icon {
  812. margin: 6px;
  813. color: @white;
  814. }
  815. }
  816. }
  817. .color-picker-more-wrapper {
  818. position: relative;
  819. display: inline-block;
  820. .custom-picker {
  821. position: absolute;
  822. user-select: none;
  823. @media (max-width: @screen-xs-max) {
  824. top: 56px;
  825. left: 24px;
  826. }
  827. }
  828. .popover-backdrop {
  829. position: fixed;
  830. top: 0;
  831. right: 0;
  832. bottom: 0;
  833. left: 0;
  834. }
  835. }
  836. .clone-project-tag {
  837. display: flex;
  838. &:hover .label.tag-label-name {
  839. background-color: @tag-bg-color;
  840. }
  841. }