Merge branch 'master' of github.com:merelendor/evoleasing-account

This commit is contained in:
merelendor 2022-07-14 01:44:42 +03:00
commit 4ca47f1ac4
16 changed files with 2067 additions and 89 deletions

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"sources":["style.less"],"names":[],"mappings":"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"}
{"version":3,"sources":["style.less"],"names":[],"mappings":"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"}

View File

@ -200,6 +200,7 @@ input[type="checkbox"] {
&:before {
background: url("/assets/images/icons/checkbox_gray.svg") no-repeat center var(--gray-light);
cursor: none;
border-color: var(--gray-light);
}
}
}
@ -230,9 +231,10 @@ input[type="radio"] {
&:checked + label {
&:before {
background: var(--blue);
box-shadow: inset 0px 0 0px 4px white;
border-color: var(--blue);
background: #fff;
box-shadow: inset 0px 0 0px 5px #005FF9;
border-color: #005FF9;
border: 0;
}
}
&:disabled + label {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -481,6 +481,15 @@
justify-content: space-between;
.form_field {
&.full {
width: 100% !important;
margin-right: 30px !important;
@media all and (max-width: 960px) {
margin-right: 0 !important;
}
}
&:first-child {
width: calc(50% - 15px);
min-width: calc(50% - 15px);
@ -829,3 +838,160 @@
}
}
}
.settings_user_control {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 45px;
p {
font-weight: 700;
}
div {
display: flex;
align-items: center;
gap: 0 7px;
}
}
.settings_table {
display: table;
border-collapse: collapse;
width: 100%;
.table_row {
display: table-row;
.table_cell {
display: table-cell;
padding: 18px 12px;
border: 1px solid #EDEFF5;
position: relative;
&:last-child {
border-left: 0;
min-width: 36px;
button {
position: absolute;
width: 16px;
height: 16px;
padding: 0;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
visibility: hidden;
pointer-events: none;
background: url("../../public/assets/images/icons/icon-delete.svg") no-repeat center;
}
}
&:nth-last-child(2) {
border-right: 0;
}
input {
border: 0;
outline: none;
background: #fff;
font-size: 15px;
padding: 0;
&::placeholder {
color: var(--text_not_active);
font-size: 15px;
}
}
.settings_dropdown {
font-family: 'Montserrat',sans-serif;
font-weight: 400;
cursor: pointer;
width: 100%;
text-align: left;
font-weight: 400;
justify-content: flex-start;
font-size: 15px;
line-height: 20px;
color: #0C0C0C;
padding: 0;
background: url(/assets/images/icons/company-arrow.svg) no-repeat 100% 50%;
&[data-selected="false"] {
color: var(--text_not_active);
}
}
.dropdown_list {
position: absolute;
top: 100%;
left: 0;
width: 412px;
display: none;
background: #FFFFFF;
box-shadow: 0px 4px 32px rgba(0, 0, 0, 0.16);
padding: 25px 35px;
z-index: 9;
&.opened {
display: block;
}
.list_item {
position: relative;
padding-bottom: 16px;
margin-bottom: 16px;
border-bottom: 1px solid var(--inactive);
label {
font-weight: 700;
padding-left: 0;
padding-right: 30px;
line-height: 23px;
&:before {
right: 0;
left: auto;
}
span {
display: block;
font-weight: 400;
}
}
}
}
}
&.table_header {
.table_cell {
color: #8E94A7;
font-weight: 700;
border: 0;
&:last-child {
border-left: 0 !important;
}
}
}
}
&.editable {
.table_row {
.table_cell {
&:last-child {
border: 1px solid #EDEFF5;
button {
pointer-events: all;
visibility: visible;
}
}
}
}
}
}

View File

@ -3487,6 +3487,35 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li {
margin-top: 50px;
}
}
.feed .feed_item {
box-sizing: border-box;
padding: 24px 16px;
background: var(--inactive);
}
.feed .feed_item.user {
background: transparent;
display: flex !important;
align-items: center;
}
.feed .feed_item.user div {
margin-left: 16px;
}
.feed .feed_item.user div p {
margin-bottom: 7px;
}
.feed .feed_item.user div p:last-child {
margin-bottom: 0;
}
.feed p {
margin-bottom: 16px;
color: #0C0C0C;
}
.feed p.item_title {
font-weight: 700;
}
.feed .item_link {
color: var(--blue);
}
.feed .feed_list {
margin-right: -50px;
}
@ -3512,35 +3541,6 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li {
min-width: 289px;
}
}
.feed .feed_list .slick-slide .feed_item {
box-sizing: border-box;
padding: 24px 16px;
background: var(--inactive);
}
.feed .feed_list .slick-slide .feed_item.user {
background: transparent;
display: flex !important;
align-items: center;
}
.feed .feed_list .slick-slide .feed_item.user div {
margin-left: 16px;
}
.feed .feed_list .slick-slide .feed_item.user div p {
margin-bottom: 7px;
}
.feed .feed_list .slick-slide .feed_item.user div p:last-child {
margin-bottom: 0;
}
.feed .feed_list .slick-slide p {
margin-bottom: 16px;
color: #0C0C0C;
}
.feed .feed_list .slick-slide p.item_title {
font-weight: 700;
}
.feed .feed_list .slick-slide .item_link {
color: var(--blue);
}
.feed .slick-arrow {
width: 96px;
height: 28px;
@ -3812,7 +3812,6 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li {
padding: 16px 16px 56px 16px;
background: #fff;
position: relative;
min-height: ;
}
.help_tooltip .help_content .button {
display: block;
@ -3886,3 +3885,369 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li {
top: 5px;
}
}
.compare {
width: 100% !important;
position: relative;
}
.compare:before {
content: "";
position: absolute;
top: -60px;
bottom: -60px;
width: 1px;
background: #EDEFF5;
display: none;
}
@media all and (min-width: 1280px) {
.compare:before {
display: block;
}
}
.compare .compare_top {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 35px;
}
@media all and (max-width: 1279px) {
.compare .compare_top {
display: block;
}
}
.compare .compare_top p {
font-weight: 700;
}
.compare .compare_top p a {
font-weight: 400;
display: inline-block;
margin-left: 30px;
}
@media all and (max-width: 1279px) {
.compare .compare_top p {
margin-bottom: 12px;
max-width: 60%;
}
.compare .compare_top p a {
display: block;
margin-left: 0;
margin-top: 20px;
font-weight: 700;
}
}
@media all and (max-width: 768px) {
.compare .compare_top p {
max-width: none;
}
}
.compare .compare_data {
display: flex;
flex-wrap: wrap;
width: 100%;
padding-bottom: 10px;
margin-bottom: 30px;
border-bottom: 1px solid var(--inactive);
padding-right: 30%;
}
@media all and (min-width: 1280px) {
.compare .compare_data {
padding-left: 16px;
}
}
.compare .compare_data .form_field {
width: 50%;
margin-bottom: 20px;
}
@media all and (max-width: 768px) {
.compare .compare_data .form_field {
width: 100%;
}
}
.compare .compare_data .form_field p span {
color: var(--text_not_active);
}
@media all and (max-width: 1279px) {
.compare .compare_data {
padding-right: 0;
}
}
.compare .compare_tables {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 45px;
}
.compare .compare_tables .compare_table {
width: calc(50% - 15px);
display: table;
}
.compare .compare_tables .compare_table.touchable {
display: none;
}
@media all and (max-width: 1279px) {
.compare .compare_tables .compare_table.touchable {
display: block;
width: 100%;
}
.compare .compare_tables .compare_table.touchable .table_body {
display: block;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row.opened .row_title {
border-color: transparent;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row.opened .row_title:after {
transform: rotate(180deg);
}
.compare .compare_tables .compare_table.touchable .table_body .table_row.opened .table_group {
display: flex;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .row_title {
font-weight: 700;
width: 100%;
border-bottom: 1px solid #EDEFF5;
padding: 3px 0;
display: flex;
align-items: center;
justify-content: space-between;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .row_title:after {
content: "";
width: 24px;
height: 24px;
background: url("../../public/assets/images/icons/dropdown.svg") no-repeat center;
transform: rotate(0deg);
transition: transform 175ms ease;
display: block;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group {
border: 1px solid #EDEFF5;
width: 100%;
display: none;
justify-content: space-between;
padding: 24px 16px;
position: relative;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group:after {
content: "";
display: block;
width: 1px;
position: absolute;
left: 0;
right: 0;
top: 24px;
bottom: 24px;
height: auto;
background: #EDEFF5;
margin: auto;
gap: 0 30px;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_cell {
width: calc(50% - 30px);
display: block;
border: 0;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_cell div {
border: 0;
font-weight: 700;
display: flex;
margin-bottom: 16px;
width: 100% !important;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_cell div:last-child {
margin-bottom: 0;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_cell div span {
font-weight: 400;
width: 50%;
padding-right: 15px;
box-sizing: border-box;
}
}
@media all and (max-width: 768px) {
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group {
flex-wrap: wrap;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group .table_cell {
width: 100%;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group .table_cell:first-child {
padding-bottom: 16px;
margin-bottom: 16px;
border-bottom: 1px solid #EDEFF5;
}
.compare .compare_tables .compare_table.touchable .table_body .table_row .table_group:after {
display: none;
}
}
@media all and (max-width: 1279px) {
.compare .compare_tables .compare_table:not(.touchable) {
display: none;
}
}
.compare .compare_tables .compare_table .table_title {
font-weight: 700;
margin-bottom: 16px;
display: table-caption;
}
.compare .compare_tables .compare_table button {
width: 100%;
color: var(--blue);
height: 58px;
}
.compare .compare_tables .compare_table:not(.touchable) .table_body {
display: table;
border-collapse: collapse;
width: 100%;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row {
display: table-row;
width: 100%;
border-collapse: collapse;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.table_header {
display: table-header-group;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.table_header div {
font-weight: 700;
color: var(--text_not_active);
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.table_header div.sortable {
padding-right: 35px;
position: relative;
cursor: pointer;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.table_header div.sortable:after {
content: "";
display: block;
position: absolute;
right: 5px;
top: 17px;
width: 16px;
height: 16px;
background: url("../../public/assets/images/icons/sortable.svg") no-repeat center;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row div {
padding: 16px 5px;
width: calc(33.333% - 12px);
min-width: calc(33.333% - 12px);
border: 1px solid #EDEFF5;
display: table-cell;
border-bottom: 0;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row div:first-child {
width: 35px;
min-width: 35px;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.row-button {
height: 58px;
position: relative;
display: table-row;
}
.compare .compare_tables .compare_table:not(.touchable) .table_row.row-button button {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.compare .compare_suscr {
margin-bottom: 80px;
}
@media all and (max-width: 1279px) {
.compare .compare_suscr {
margin-bottom: 40px;
}
}
.compare .compare_suscr .block_title {
font-weight: 700;
width: 100%;
margin-bottom: 20px;
}
.compare .compare_suscr .block_title a {
font-weight: 400;
margin-left: 30px;
}
.compare .compare_suscr .feed {
gap: 0 8px;
display: flex;
flex-wrap: wrap;
}
.compare .compare_suscr .feed .feed_item {
position: relative;
padding-left: 30px;
width: calc(33.33% - 8px);
margin-bottom: 16px;
padding-top: 0;
padding-bottom: 0;
}
@media all and (max-width: 1279px) {
.compare .compare_suscr .feed .feed_item {
width: calc(50% - 8px);
}
}
@media all and (max-width: 768px) {
.compare .compare_suscr .feed .feed_item {
width: 100%;
}
}
.compare .compare_suscr .feed .feed_item input + label {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
.compare .compare_suscr .feed .feed_item input + label:before {
top: 0;
bottom: 0;
margin: auto;
}
.compare .compare_suscr .feed .feed_item img {
width: 48px;
min-width: 48px;
border-radius: 100%;
height: 48px;
}
.compare .btn_group {
display: flex;
gap: 0 20px;
}
@media all and (max-width: 1279px) {
.compare .btn_group {
display: block;
}
}
.compare .btn_group button {
width: 100%;
max-width: 420px;
}
@media all and (max-width: 1279px) {
.compare .btn_group button {
display: flex;
margin-bottom: 15px;
}
}
@media all and (max-width: 768px) {
.compare .btn_group button {
max-width: none;
height: auto;
padding: 10px 20px;
font-weight: 600;
}
}
.compare .compare_message {
margin: 70px 0;
}
.compare .compare_message p {
max-width: 446px;
font-weight: 700;
text-align: center;
margin: auto;
display: block;
}

File diff suppressed because one or more lines are too long

View File

@ -3917,6 +3917,46 @@ main .dropdown_blocks_list .dropdown_block .block_body {
margin-top: 50px;
}
.feed_item {
box-sizing: border-box;
padding: 24px 16px;
background: var(--inactive);
&.user {
background: transparent;
display: flex !important;
align-items: center;
div {
margin-left: 16px;
p {
margin-bottom: 7px;
&:last-child {
margin-bottom: 0;
}
}
}
}
}
p {
margin-bottom: 16px;
color: #0C0C0C;
&.item_title {
font-weight: 700;
}
&.item_desc {}
}
.item_link {
color: var(--blue);
}
.feed_list {
//display: flex;
margin-right: -50px;
@ -3946,44 +3986,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
min-width: 289px;
}
.feed_item {
box-sizing: border-box;
padding: 24px 16px;
background: var(--inactive);
&.user {
background: transparent;
display: flex !important;
align-items: center;
div {
margin-left: 16px;
p {
margin-bottom: 7px;
&:last-child {
margin-bottom: 0;
}
}
}
}
}
p {
margin-bottom: 16px;
color: #0C0C0C;
&.item_title {
font-weight: 700;
}
&.item_desc {}
}
.item_link {
color: var(--blue);
}
}
@ -4197,7 +4200,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
@media all and (max-width: 1279px) {
overflow: visible;
}
}
.slick-track:after {
display: none;
@ -4213,7 +4216,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
display: flex;
align-items: center;
padding: 6px 0;
margin-bottom: 10px;
margin-bottom: 10px;
label {
position: relative;
@ -4225,7 +4228,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
.help_tooltip {
margin-left: 16px;
position: relative;
.help_icon {
padding: 0;
height: 24px;
@ -4242,11 +4245,11 @@ main .dropdown_blocks_list .dropdown_block .block_body {
}
}
& + .help_content {
&+.help_content {
display: block;
}
}
}
@ -4291,9 +4294,9 @@ main .dropdown_blocks_list .dropdown_block .block_body {
left: 0;
right: 0;
width: auto;
z-index: 99999;
background: rgba(12,12,12,0.5);
background: rgba(12, 12, 12, 0.5);
&:before {
display: none;
@ -4303,7 +4306,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
margin: 70px 16px 40px 16px;
padding: 16px 16px 56px 16px;
background: #fff;
position: relative;min-height: ;
position: relative;
}
.button {
@ -4320,7 +4323,9 @@ main .dropdown_blocks_list .dropdown_block .block_body {
.calc {
input, select, .date_input_wrapper {
input,
select,
.date_input_wrapper {
max-width: 320px;
margin-left: 20px;
@ -4330,13 +4335,13 @@ main .dropdown_blocks_list .dropdown_block .block_body {
}
}
> .form_field {
>.form_field {
@media all and (max-width: 768px) {
display: block !important;
display: block !important;
label {
padding-right: 30px;
}
label {
padding-right: 30px;
}
}
}
@ -4355,6 +4360,7 @@ main .dropdown_blocks_list .dropdown_block .block_body {
.btn_group {
display: flex;
flex-wrap: wrap;
.button {
&:first-child {
width: 160px;
@ -4386,4 +4392,423 @@ main .dropdown_blocks_list .dropdown_block .block_body {
top: 5px;
}
}
}
.compare {
width: 100% !important;
position: relative;
&:before {
content: "";
position: absolute;
top: -60px;
bottom: -60px;
width: 1px;
background: #EDEFF5;
display: none;
@media all and (min-width: 1280px) {
display: block;
}
}
.compare_top {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 35px;
@media all and (max-width: 1279px) {
display: block;
}
p {
font-weight: 700;
a {
font-weight: 400;
display: inline-block;
margin-left: 30px;
}
@media all and (max-width: 1279px) {
margin-bottom: 12px;
max-width: 60%;
a {
display: block;
margin-left: 0;
margin-top: 20px;
font-weight: 700;
}
}
@media all and (max-width: 768px) {
max-width: none;
}
}
}
.compare_data {
display: flex;
flex-wrap: wrap;
width: 100%;
padding-bottom: 10px;
margin-bottom: 30px;
border-bottom: 1px solid var(--inactive);
padding-right: 30%;
@media all and (min-width: 1280px) {
padding-left: 16px;
}
.form_field {
width: 50%;
margin-bottom: 20px;
@media all and (max-width: 768px) {
width: 100%;
}
p {
span {
color: var(--text_not_active);
}
}
}
@media all and (max-width: 1279px) {
padding-right: 0;
}
}
.compare_tables {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 45px;
.compare_table {
width: calc(50% - 15px);
display: table;
&.touchable {
display: none;
@media all and (max-width: 1279px) {
display: block;
width: 100%;
.table_body {
display: block;
.table_row {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 16px;
&.opened {
.row_title {
border-color: transparent;
&:after {
transform: rotate(180deg);
}
}
.table_group {
display: flex;
}
}
.row_title {
font-weight: 700;
width: 100%;
border-bottom: 1px solid #EDEFF5;
padding: 3px 0;
display: flex;
align-items: center;
justify-content: space-between;
&:after {
content: "";
width: 24px;
height: 24px;
background: url("../../public/assets/images/icons/dropdown.svg") no-repeat center;
transform: rotate(0deg);
transition: transform 175ms ease;
display: block;
}
}
.table_group {
border: 1px solid #EDEFF5;
width: 100%;
display: none;
justify-content: space-between;
padding: 24px 16px;
position: relative;
&:after {
content: "";
display: block;
width: 1px;
position: absolute;
left: 0;
right: 0;
top: 24px;
bottom: 24px;
height: auto;
background: #EDEFF5;
margin: auto;
gap: 0 30px;
}
}
.table_cell {
width: calc(50% - 30px);
display: block;
border: 0;
div {
border: 0;
font-weight: 700;
display: flex;
margin-bottom: 16px;
width: 100% !important;
&:last-child {
margin-bottom: 0;
}
span {
font-weight: 400;
width: 50%;
padding-right: 15px;
box-sizing: border-box;
}
}
}
}
}
}
@media all and (max-width: 768px) {
.table_body .table_row .table_group {
flex-wrap: wrap;
.table_cell {
width: 100%;
&:first-child {
padding-bottom: 16px;
margin-bottom: 16px;
border-bottom: 1px solid #EDEFF5;
}
}
&:after {
display: none;
}
}
}
}
@media all and (max-width: 1279px) {
&:not(.touchable) {
display: none;
}
}
.table_title {
font-weight: 700;
margin-bottom: 16px;
display: table-caption;
}
button {
width: 100%;
color: var(--blue);
height: 58px;
}
&:not(.touchable) {
.table_body {
display: table;
border-collapse: collapse;
width: 100%;
}
.table_row {
display: table-row;
width: 100%;
border-collapse: collapse;
&.table_header {
display: table-header-group;
div {
font-weight: 700;
color: var(--text_not_active);
&.sortable {
padding-right: 35px;
position: relative;
cursor: pointer;
&:after {
content: "";
display: block;
position: absolute;
right: 5px;
top: 17px;
width: 16px;
height: 16px;
background: url("../../public/assets/images/icons/sortable.svg") no-repeat center;
}
}
}
}
div {
padding: 16px 5px;
width: calc(33.333% - 12px);
min-width: calc(33.333% - 12px);
border: 1px solid #EDEFF5;
display: table-cell;
border-bottom: 0;
&:first-child {
width: 35px;
min-width: 35px;
}
}
&.row-button {
height: 58px;
position: relative;
display: table-row;
button {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
}
}
}
}
}
.compare_suscr {
margin-bottom: 80px;
@media all and (max-width: 1279px) {
margin-bottom: 40px;
}
.block_title {
font-weight: 700;
width: 100%;
margin-bottom: 20px;
a {
font-weight: 400;
margin-left: 30px;
}
}
.feed {
gap: 0 8px;
display: flex;
flex-wrap: wrap;
.feed_item {
position: relative;
padding-left: 30px;
width: calc(33.33% - 8px);
margin-bottom: 16px;
padding-top: 0;
padding-bottom: 0;
@media all and (max-width: 1279px) {
width: calc(50% - 8px);
}
@media all and (max-width: 768px) {
width: 100%;
}
input+label {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
&:before {
top: 0;
bottom: 0;
margin: auto;
}
}
img {
width: 48px;
min-width: 48px;
border-radius: 100%;
height: 48px;
}
}
}
}
.btn_group {
display: flex;
gap: 0 20px;
@media all and (max-width: 1279px) {
display: block;
}
button {
width: 100%;
max-width: 420px;
@media all and (max-width: 1279px) {
display: flex;
margin-bottom: 15px;
}
@media all and (max-width: 768px) {
max-width: none;
height: auto;
height: auto;
padding: 10px 20px;
font-weight: 600;
}
}
}
.compare_message {
margin: 70px 0;
p {
max-width: 446px;
font-weight: 700;
text-align: center;
margin: auto;
display: block;
}
}
}

View File

@ -0,0 +1,80 @@
import React from "react";
import Link from "next/link";
export default class InnerMenu extends React.Component
{
constructor(props)
{
super(props);
this.menuRef = React.createRef();
}
componentDidMount()
{
let l = 0;
let m = 0;
const menu = ["payments", "services", "agreement", "documents", "materials","events","change"];
for(let i in menu)
{
if(this.props.router.asPath.indexOf(menu[i]) > -1)
{
m = i;
}
}
for(let i = 0; i < m; i++)
{
l = l + this.menuRef.current.children[i].getBoundingClientRect().width;
}
this.menuRef.current.scrollLeft = l - 50;
}
render()
{
const { number } = this.props;
return (
<aside>
<ul className="aside_nav" ref={ this.menuRef }>
<li>
<Link href={`/contract/${ number }/events`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("events") > -1 ? "active" : "" }>Все события</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/change`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("change") > -1 ? "active" : "" }>Ограничения</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/services`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("services") > -1 ? "active" : "" }>Платежи</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/agreement`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("agreement") > -1 ? "active" : "" }>Дополнительные услуги</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/documents`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("documents") > -1 ? "active" : "" }>Штрафы</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/materials`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("materials") > -1 ? "active" : "" }>Банки</a>
</Link>
</li>
<li>
<Link href={`/contract/${ number }/payments`} shallow>
<a className={ this.props.router && this.props.router.asPath.indexOf("payments") > -1 ? "active" : "" }>ПТС</a>
</Link>
</li>
</ul>
</aside>
)
}
}

516
pages/contract/compare.js Normal file
View File

@ -0,0 +1,516 @@
import React from "react";
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";
import { withRouter } from "next/router";
import moment from "moment";
import { SpinnerCircular } from "spinners-react";
import Link from "next/link";
import { reduxWrapper } from "../../store";
import Header from "../components/Header";
import Footer from "../components/Footer";
import Company from "../components/Company";
import InnerMenu from "./components/InnerMenu";
import DateInput from "./../components/DatePicker";
import Feed from "./../components/Feed";
import FeedUsers from "./../components/Feed/users";
import {
getContractInfo,
getContractAgreement,
getContractRules,
getFile,
} from "../../actions";
class ContractPage extends React.Component {
constructor(props) {
super(props);
this.state = {
date: null,
car: null,
contract_date: null,
agreement: null,
rules: null,
loading: false,
};
}
static getDerivedStateFromProps(nextProps, prevState) {
return {
date: nextProps.date,
car: nextProps.car,
contract_date: nextProps.contract_date,
agreement: nextProps.agreement,
rules: nextProps.rules,
};
}
componentDidMount() {
if (!this.state.loading && this.props.number !== undefined) {
this.setState({ loading: true }, () => {
getContractInfo({
dispatch: this.props.dispatch,
number: this.props.number,
})
.then((info) => {
console.log("info", info);
getContractRules({
dispatch: this.props.dispatch,
date: moment(info.date, "YYYY-MM-DD").format("DD.MM.YYYY"),
})
.then(() => {})
.catch(() => {});
})
.catch(() => {});
getContractAgreement({
dispatch: this.props.dispatch,
number: this.props.number,
})
.then(() => {
this.setState({ loading: false });
})
.catch(() => {});
});
}
}
render() {
const { loading, date, car, contract_date, agreement, rules } = this.state;
const { number } = this.props;
console.log("rules", rules);
const types = {
contracts: "Договор",
redemptions: "Выкупные документы",
agreements: "Дополнительное соглашение",
assignments: "Договор цессии",
};
return (
<React.Fragment>
<Head>
<title>ЛК Эволюция автолизинга</title>
<meta name="description" content="ЛК Эволюция автолизинга" />
</Head>
<Header {...this.props} />
<main>
<section>
<div className="clear"></div>
<div className="container">
<div className="title_wrapper">
<div className="left" style={{ flexDirection: "column" }}>
<h1 className="section_title">Договор {number}</h1>
<h5 style={{ fontSize: "14px" }}>
{date !== undefined && date !== null && date !== null && (
<> от {moment(date).format("DD.MM.YYYY")}</>
)}
{car !== undefined && car !== null
? ` - ${car.brand.name} ${car.model.name} | ${
car.reg_number !== null
? car.reg_number
: "без рег. номера"
} | ${
car.vin_number !== null
? car.vin_number
: "без VIN номера"
}`
: ""}
</h5>
</div>
<Company />
</div>
<div className="aside_container about">
<article className="compare">
<div className="compare_top">
<p>
Выбранный(ые) варианты изменения графика
<Link href="#">
<a>Вернуться к параметрам изменения графика</a>
</Link>
</p>
<button className="button button-blue">Скачать PDF</button>
</div>
<div className="compare_data">
<div className="form_field">
<input
type="checkbox"
hidden
id=""
name=""
checked
disabled
/>
<label htmlFor="">Изменить дату платежа</label>
</div>
<div className="form_field">
<input
type="checkbox"
hidden
id=""
name=""
checked
disabled
/>
<label htmlFor="">Изменение кол-ва платежей</label>
</div>
<div className="form_field">
<p>
<span>Дата платежа:</span> 1 месяц (37 платежей)
</p>
</div>
<div className="form_field">
<p>
<span>Тип каникул:</span> С увеличением срока
</p>
</div>
</div>
<div className="compare_tables">
<div className="compare_table">
<p className="table_title">Текущий график</p>
<div className="table_body">
<div className="table_row table_header">
<div></div>
<div className="sortable">
Дата лизингового платежа
</div>
<div className="sortable">Лизинговый платеж с НДС </div>
<div className="sortable">Сумма досрочного выкупа</div>
</div>
<div className="table_row row-button">
<button className="button button-gray">
Показать прошедшие платежи
</button>
</div>
<div className="table_row">
<div>14</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>15</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>16</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>17</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>18</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>19</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>20</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
</div>
</div>
<div className="compare_table">
<p className="table_title">
Изменения с платежа ХХ от ХХ.ХХ.ХХХХ
</p>
<div className="table_body">
<div className="table_row table_header">
<div></div>
<div className="sortable">
Дата лизингового платежа
</div>
<div className="sortable">
Лизинговый платеж с НДС
</div>
<div className="sortable">
Сумма досрочного выкупа
</div>
</div>
<div className="table_row row-button">
<button className="button button-gray">
Показать прошедшие платежи
</button>
</div>
<div className="table_row">
<div>14</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>15</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>16</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>17</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>18</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>19</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
<div className="table_row">
<div>20</div>
<div>21.02.2021</div>
<div>239 724,05</div>
<div>43 079,18</div>
</div>
</div>
</div>
<div className="compare_table touchable">
<div className="table_body">
<button className="button button-gray">
Показать прошедшие платежи
</button>
<div className="table_row opened">
<p className="row_title">Платеж 14</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
<div className="table_row">
<p className="row_title">Платеж 15</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
<div className="table_row">
<p className="row_title">Платеж 15</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
<div className="table_row">
<p className="row_title">Платеж 15</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
<div className="table_row">
<p className="row_title">Платеж 15</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
<div className="table_row">
<p className="row_title">Платеж 15</p>
<div className="table_group">
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
<div className="table_cell">
<div><span>Текущий график</span> 21.02.2021</div>
<div><span>На сумму</span> 239 724,05</div>
<div><span>Сумма досрочного выкупа</span> 43 079,18</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="compare_suscr">
<p className="block_title">
Подписанты
<Link href="#">
<a>Все</a>
</Link>
</p>
<div className="feed static">
<div className="feed_item user">
<input type="radio" hidden id="user_1" name="user_1" />
<label htmlFor="user_1"></label>
<img src="/assets/images/icons/avatar.svg" alt="" />
<div>
<p className="item_title">Иванов Иван</p>
<p className="item_desc">Менеджер по продажам</p>
</div>
</div>
<div className="feed_item user">
<input type="radio" hidden id="user_1" name="user_1" />
<label htmlFor="user_1"></label>
<img src="/assets/images/icons/avatar.svg" alt="" />
<div>
<p className="item_title">Иванов Иван</p>
<p className="item_desc">Менеджер по продажам</p>
</div>
</div>
<div className="feed_item user">
<input type="radio" hidden id="user_1" name="user_1" />
<label htmlFor="user_1"></label>
<img src="/assets/images/icons/avatar.svg" alt="" />
<div>
<p className="item_title">Иванов Иван</p>
<p className="item_desc">Менеджер по продажам</p>
</div>
</div>
<div className="feed_item user">
<input type="radio" hidden id="user_2" name="user_2" />
<label htmlFor="user_2"></label>
<img src="/assets/images/icons/avatar.svg" alt="" />
<div>
<p className="item_title">Иванов Иван</p>
<p className="item_desc">Менеджер по продажам</p>
</div>
</div>
<div className="feed_item user">
<input type="radio" hidden id="user_3" name="user_3" />
<label htmlFor="user_3"></label>
<img src="/assets/images/icons/avatar.svg" alt="" />
<div>
<p className="item_title">Иванов Иван</p>
<p className="item_desc">Менеджер по продажам</p>
</div>
</div>
</div>
</div>
<div className="btn_group">
<button className="button button-blue">
Согласовать и подписать в бумажном виде
</button>
<button className="button button-blue">
Согласовать и подписать по ЭДО
</button>
</div>
<div className="compare_message">
<p>
Дополнительное соглашение отправлено на согласование. После согласования документ появится на странице <br />
<Link href="#">«Документы по договору» </Link>
</p>
</div>
</article>
</div>
</div>
</section>
</main>
<Footer />
</React.Fragment>
);
}
}
function mapStateToProps(state, ownProps) {
return {
contract_date: state.contract.date,
date: state.contract.date,
car: state.contract.car,
agreement: state.contract.agreement,
rules: state.contract.rules,
};
}
export const getServerSideProps = reduxWrapper.getServerSideProps(
(store) =>
async ({ req, res, query }) => {
return {
props: {
//number: query.number,
number: null,
},
};
}
);
export default withRouter(connect(mapStateToProps)(ContractPage));

210
pages/events.js Normal file
View File

@ -0,0 +1,210 @@
import React from "react";
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";
import { withRouter } from "next/router";
import moment from "moment";
import { SpinnerCircular } from "spinners-react";
import { reduxWrapper } from "../store";
import Header from "./components/Header";
import Footer from "./components/Footer";
import Company from "./components/Company";
import InnerMenu from "./components/Events/InnerMenu";
import {
getContractInfo,
getContractAgreement,
getContractRules,
getFile,
} from "../actions";
class ContractPage extends React.Component {
constructor(props) {
super(props);
this.state = {
date: null,
car: null,
contract_date: null,
agreement: null,
rules: null,
loading: false,
search: ""
};
}
static getDerivedStateFromProps(nextProps, prevState) {
return {
date: nextProps.date,
car: nextProps.car,
contract_date: nextProps.contract_date,
agreement: nextProps.agreement,
rules: nextProps.rules,
};
}
componentDidMount() {
if (!this.state.loading && this.props.number !== undefined) {
this.setState({ loading: true }, () => {
getContractInfo({
dispatch: this.props.dispatch,
number: this.props.number,
})
.then((info) => {
console.log("info", info);
getContractRules({
dispatch: this.props.dispatch,
date: moment(info.date, "YYYY-MM-DD").format("DD.MM.YYYY"),
})
.then(() => {})
.catch(() => {});
})
.catch(() => {});
getContractAgreement({
dispatch: this.props.dispatch,
number: this.props.number,
})
.then(() => {
this.setState({ loading: false });
})
.catch(() => {});
});
}
}
render() {
const { loading, date, car, contract_date, agreement, rules, search } = this.state;
const { number } = this.props;
console.log("rules", rules);
const types = {
contracts: "Договор",
redemptions: "Выкупные документы",
agreements: "Дополнительное соглашение",
assignments: "Договор цессии",
};
return (
<React.Fragment>
<Head>
<title>ЛК Эволюция автолизинга</title>
<meta name="description" content="ЛК Эволюция автолизинга" />
</Head>
<Header {...this.props} />
<main>
<section>
<div className="clear"></div>
<div className="container">
<div className="title_wrapper">
<div className="left" style={{ flexDirection: "column" }}>
<h1 className="section_title">События</h1>
<h5 style={{ fontSize: "14px" }}>
{date !== undefined && date !== null && date !== null && (
<> от {moment(date).format("DD.MM.YYYY")}</>
)}
{car !== undefined && car !== null
? ` - ${car.brand.name} ${car.model.name} | ${
car.reg_number !== null
? car.reg_number
: "без рег. номера"
} | ${
car.vin_number !== null
? car.vin_number
: "без VIN номера"
}`
: ""}
</h5>
</div>
<Company />
</div>
<div className="aside_container about">
<InnerMenu number={number} {...this.props} />
<article>
<div className="contract_search">
<form onSubmit={ (event) => { event.preventDefault(); } }>
<div className="form_field full">
<input type="search" value={ search } placeholder="Поиск" onChange={ (event) => {
this._handle_onChange_search(event.target.value);
} }/>
</div>
<button className="button" disabled={ search !== "" ? false : true } onClick={ this._handle_onSearch }>Поиск</button>
</form>
</div>
<ul className="list events-list">
<li className="new">
<p className="name">
<b>
Внимание! Просрочена дата возврата СТС по договору:
ХХ.ХХ.ХХХХ
</b>
</p>
<p className="type">Важное</p>
<p className="date">10.01.2022</p>
<p className="action">
<a href="">Посмотрите порядок возврата СТС</a>&nbsp; или
&nbsp;<a href="">Загрузите скан СТС</a>
</p>
</li>
<li className="new">
<p className="name">
<b>
Внимание! Просрочена дата возврата СТС по договору:
ХХ.ХХ.ХХХХ
</b>
</p>
<p className="date">10.01.2022</p>
<p className="action">
<a href="">Посмотрите порядок возврата СТС</a>&nbsp; или
&nbsp;<a href="">Загрузите скан СТС</a>
</p>
</li>
<li className="new">
<p className="name">
Внимание! Осталось ХХ дней до пролонгации КАСКО по
договору ХХХХ: ХХ.ХХ.ХХХХ. Не забудьте самостоятельно
продлить полис ОСАГО
</p>
<p className="date">10.01.2022</p>
<p className="action">
<a href="">Подробнее</a>
</p>
</li>
</ul>
</article>
</div>
</div>
</section>
</main>
<Footer />
</React.Fragment>
);
}
}
function mapStateToProps(state, ownProps) {
return {
contract_date: state.contract.date,
date: state.contract.date,
car: state.contract.car,
agreement: state.contract.agreement,
rules: state.contract.rules,
};
}
export const getServerSideProps = reduxWrapper.getServerSideProps(
(store) =>
async ({ req, res, query }) => {
return {
props: {
//number: query.number,
number: null,
},
};
}
);
export default withRouter(connect(mapStateToProps)(ContractPage));

201
pages/settings/index.js Normal file
View File

@ -0,0 +1,201 @@
import React from "react";
import Head from 'next/head';
import Image from 'next/image';
import Link from "next/link";
import cookie from 'cookie';
import { connect } from "react-redux";
import numeral from "numeral";
import pluralize from 'pluralize-ru';
import { SpinnerCircular } from 'spinners-react';
import { withRouter } from 'next/router';
import { reduxWrapper } from '../../store';
import InnerMenu from "./components/InnerMenu";
import Header from '../components/Header';
import Footer from '../components/Footer';
import Pagination from '../components/Pagination';
import Company from "../components/Company";
import { sendPhoneChangeNumber, sendPhoneChangeNumberSmsCode, setUserPhone } from '../../actions';
class IndexPage extends React.Component
{
constructor(props)
{
super(props);
this.state = {
user: {},
};
}
static getDerivedStateFromProps(nextProps, prevState)
{
return {
user: nextProps.user,
};
}
render()
{
return (
<React.Fragment>
<Head>
<title>ЛК Эволюция автолизинга</title>
<meta
name="description"
content="ЛК Эволюция автолизинга"
/>
</Head>
<Header { ...this.props }/>
<main>
<section>
<div className="clear"></div>
<div className="container">
<div className="title_wrapper">
<div className="left">
<h1 className="section_title">Личный кабинет</h1>
</div>
<Company/>
</div>
<div className="aside_container about">
<InnerMenu { ...this.props }/>
<article>
<div className="settings_user_control">
<p>Настройки доступа к личному кабинету</p>
<div>
<button className="button button-blue">Добавить пользователя</button>
<button className="button button-blue">Редактировать</button>
</div>
</div>
<div className="settings_table editable">
<div className="table_header table_row">
<div className="table_cell">ФИО пользователя</div>
<div className="table_cell">Почта</div>
<div className="table_cell">Роль</div>
<div className="table_cell">Доступные организации</div>
<div className="table_cell">Статус</div>
<div className="table_cell"></div>
</div>
<div className="table_row">
<div className="table_cell">Иванов Иван Иванович</div>
<div className="table_cell">iivanov@mail.com</div>
<div className="table_cell">Администратор</div>
<div className="table_cell">Все организации</div>
<div className="table_cell">Активен</div>
<div className="table_cell">
<button className="delete_user" title="Удалить пользователя"></button>
</div>
</div>
<div className="table_row">
<div className="table_cell">Иванов Иван Иванович</div>
<div className="table_cell">iivanov@mail.com</div>
<div className="table_cell">Администратор</div>
<div className="table_cell">Все организации</div>
<div className="table_cell">Активен</div>
<div className="table_cell">
<button className="delete_user" title="Удалить пользователя"></button>
</div>
</div>
<div className="table_row editable">
<div className="table_cell">
<input type="text" placeholder="Введите ФИО" />
</div>
<div className="table_cell">
<input type="email" placeholder="Введите почту" />
</div>
<div className="table_cell">Пользователь</div>
<div className="table_cell">
<button className="settings_dropdown" data-selected="false">Выберите организацию</button>
<div className="dropdown_list opened">
<div className="list_item">
<input type="checkbox" value="" name="companies_list" id="company_1" hidden />
<label htmlFor="company_1">
Все организации
</label>
</div>
<div className="list_item">
<input type="checkbox" value="" name="companies_list" id="company_2" hidden />
<label htmlFor="company_2">
ООО Еще одно название
<span>ИНН: 12345678765 КПП: 13432-02</span>
</label>
</div>
<div className="list_item">
<input type="checkbox" value="" name="companies_list" id="company_3" hidden />
<label htmlFor="company_3">
ООО Друзья и КО
<span>ИНН: 12345678765 КПП: 13432-02</span>
</label>
</div>
</div>
</div>
<div className="table_cell">-</div>
<div className="table_cell">
<button className="delete_user" title="Удалить пользователя"></button>
</div>
</div>
</div>
</article>
</div>
</div>
</section>
</main>
<Footer/>
</React.Fragment>
)
}
}
function mapStateToProps(state, ownProps)
{
return {
user: state.user,
}
}
export const getServerSideProps = reduxWrapper.getServerSideProps(store =>
async ({ req, res, query }) =>
{
let props = {};
if(req.headers.cookie !== undefined)
{
const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : "");
if(cookies.jwt === undefined || cookies.jwt === null)
{
res.statusCode = 302;
res.setHeader('Location', `/login`);
}
else
{
//const tokenValid = await checkToken(cookies.jwt);
const tokenValid = true;
if(!tokenValid)
{
res.statusCode = 302;
res.setHeader('Location', `/login`);
}
}
}
else
{
res.statusCode = 302;
res.setHeader('Location', `/login`);
}
return { props: props };
}
);
export default withRouter(connect(mapStateToProps)(IndexPage));

View File

@ -0,0 +1,3 @@
<svg width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 1L6 6L1 1" stroke="#1C01A9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 208 B

View File

@ -0,0 +1,7 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5 3.5L2.5 3.50001" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.5 6.5V10.5" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.5 6.5V10.5" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12.5 3.5V13C12.5 13.1326 12.4473 13.2598 12.3536 13.3536C12.2598 13.4473 12.1326 13.5 12 13.5H4C3.86739 13.5 3.74021 13.4473 3.64645 13.3536C3.55268 13.2598 3.5 13.1326 3.5 13V3.5" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.5 3.5V2.5C10.5 2.23478 10.3946 1.98043 10.2071 1.79289C10.0196 1.60536 9.76522 1.5 9.5 1.5H6.5C6.23478 1.5 5.98043 1.60536 5.79289 1.79289C5.60536 1.98043 5.5 2.23478 5.5 2.5V3.5" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

View File

@ -0,0 +1,3 @@
<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.228 1.635C0.085 1.462 0 1.241 0 1C0 0.448 0.448 0 1 0H7C7.552 0 8 0.448 8 1C8 1.241 7.915 1.462 7.772 1.635L4.808 5.589C4.626 5.838 4.332 6 4 6C3.668 6 3.374 5.838 3.192 5.589L0.228 1.635Z" fill="#8E94A7"/>
</svg>

After

Width:  |  Height:  |  Size: 358 B