deals pre-initial

This commit is contained in:
merelendor 2023-09-13 10:54:32 +03:00
parent 3c34e9fb2c
commit 06ac3c38c8
33 changed files with 2989 additions and 1093 deletions

View File

@ -43,61 +43,175 @@ opp_number- номер Лизинговой сделки
statuscode_id - номер этапа statuscode_id - номер этапа
statuscode_name - имя этапа statuscode_name - имя этапа
comment - сопроводительный текст для данного этапа, который надо выводить comment - сопроводительный текст для данного этапа, который надо выводить
*/ */
export const getDeals = ({ dispatch }) => export const getDeals = ({ dispatch }) =>
{ {
console.log("ACTION", "deals", "getDeals()", `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals`); const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals`;
console.log("ACTION", "deals", "getDeals()", { url });
return new Promise((resolve, reject) => return new Promise((resolve, reject) =>
{ {
console.log("??????????????????????? WTF"); axios.post(url, {}, {
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals`, {}, {
withCredentials: true, withCredentials: true,
}) })
.then((response) => .then((response) =>
{ {
console.log("!!!!!!!!!!!!!!!!!!!!!!!!! GOOOOOOD");
console.log("ACTION", "deals", "getDeals()", "response", response.data); console.log("ACTION", "deals", "getDeals()", "response", response.data);
dispatch({ dispatch({
type: actionTypes.DEALS_LIST, type: actionTypes.DEALS_LIST,
data: { data: {
list: [{ list: response.data
"opp_number": "780",
"statuscode_id": 107,
"statuscode_name": " ",
"comment": null,
}, {
"opp_number": "37197",
"statuscode_id": 101,
"statuscode_name": " ",
"comment": null,
}]
} }
}); });
resolve(); resolve();
}) })
.catch((error) => .catch((error) =>
{ {
console.log("!!!!!!!!!!!!!!!!!!!!!!!!! ERROR", { action: actionTypes.DEALS_LIST }); console.error("ACTION", "deals", "getDeals()", "ERROR");
console.error(error);
dispatch({ dispatch({
type: actionTypes.DEALS_LIST, type: actionTypes.DEALS_LIST,
data: { data: {
list: [{ list: []
"opp_number": "780",
"statuscode_id": 107,
"statuscode_name": " ",
"comment": null,
}, {
"opp_number": "37197",
"statuscode_id": 101,
"statuscode_name": " ",
"comment": null,
}]
} }
}); });
reject();
});
});
}
export const getDealOffers = ({ dispatch, deal_id }) =>
{
const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals/offers`;
console.log("ACTION", "deals", "getDealOffers()", { url });
console.log("ACTION", "deals", "getDealOffers()", { deal_id });
return new Promise((resolve, reject) =>
{
axios.post(url, { deal_id }, {
withCredentials: true,
})
.then((response) =>
{
console.log("ACTION", "deals", "getDealOffers()", "response", response.data);
dispatch({
type: actionTypes.DEAL_OFFERS_LIST,
data: {
deal_id,
list: response.data
}
});
resolve();
})
.catch((error) =>
{
console.error("ACTION", "deals", "getDealOffers()", "ERROR");
console.error(error); console.error(error);
dispatch({
type: actionTypes.DEAL_OFFERS_LIST,
data: {
deal_id,
list: []
}
});
reject();
});
});
}
export const getDealDocuments = ({ dispatch, deal_id }) =>
{
const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals/documents`;
console.log("ACTION", "deals", "getDealDocuments()", { url });
console.log("ACTION", "deals", "getDealDocuments()", { deal_id, });
return new Promise((resolve, reject) =>
{
axios.post(url, { deal_id }, {
withCredentials: true,
})
.then((response) =>
{
console.log("ACTION", "deals", "getDealDocuments()", "response", response.data);
dispatch({
type: actionTypes.DEAL_DOCUMENTS_LIST,
data: {
deal_id,
list: response.data
}
});
resolve();
})
.catch((error) =>
{
console.error("ACTION", "deals", "getDealDocuments()", "ERROR");
console.error(error);
dispatch({
type: actionTypes.DEAL_DOCUMENTS_LIST,
data: {
deal_id,
list: []
}
});
reject();
});
});
}
export const getDealContracts = ({ dispatch, deal_id }) =>
{
const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/deals/contracts`;
console.log("ACTION", "deals", "getDealContracts()", { url });
console.log("ACTION", "deals", "getDealContracts()", { deal_id, });
return new Promise((resolve, reject) =>
{
axios.post(url, { deal_id }, {
withCredentials: true,
})
.then((response) =>
{
console.log("ACTION", "deals", "getDealContracts()", "response", response.data);
dispatch({
type: actionTypes.DEAL_CONTRACTS_LIST,
data: {
deal_id,
list: response.data
}
});
resolve();
})
.catch((error) =>
{
console.error("ACTION", "deals", "getDealContracts()", "ERROR");
console.error(error);
dispatch({
type: actionTypes.DEAL_CONTRACTS_LIST,
data: {
deal_id,
list: []
}
});
reject(); reject();
}); });
}); });

View File

@ -7,25 +7,57 @@ export default class DealsList extends React.Component
constructor(props) constructor(props)
{ {
super(props); super(props);
this.list_ref = React.createRef();
this.items_ref = [];
}
_handle_onSelectDeal = (deal_id, index) =>
{
const { onSelectDeal } = this.props;
onSelectDeal(deal_id);
setTimeout(() =>
{
const element = this.list_ref.current.children[index];
const y = (element.getBoundingClientRect().top + window.scrollY - 90);
window.scrollTo({top: y, behavior: 'smooth'});
}, 50);
}
_handle_onCloseDeal = () =>
{
const { onCloseDeal } = this.props;
onCloseDeal();
setTimeout(() =>
{
const element = this.list_ref.current;
const y = (element.getBoundingClientRect().top + window.scrollY - 160);
window.scrollTo({top: y, behavior: 'smooth'});
}, 50);
} }
render() render()
{ {
const { deals, dealSelected } = this.props; const { status, deals, questionnaire_status, dealSelected, onCloseDeal } = this.props;
console.log({ deals }); console.log({ deals });
return ( return (
<div className="contractStatus_list"> <div className="contractStatus_list" ref={ this.list_ref }>
{ deals.list !== undefined && deals.list !== null && deals.list.map((deal, index) => { deals.list !== undefined && deals.list !== null && deals.list.map((deal, index) =>
{ {
if(index === dealSelected) if(dealSelected === deal.opp_number)
{ {
return (<SingleDeal return (<SingleDeal
key={ index } key={ index }
close={() => { index={ index }
this._handleModalToggle("current") ref={ ref => this.items_ref[index] = ref }
}} status={ status }
dealSelected={ dealSelected }
deals={ deals }
questionnaire_status={ questionnaire_status }
onCloseDeal={ this._handle_onCloseDeal }
/>) />)
} }
else else
@ -34,7 +66,9 @@ export default class DealsList extends React.Component
<DealsListDeal <DealsListDeal
key={ index } key={ index }
index={ index } index={ index }
ref={ ref => this.items_ref[index] = ref }
{ ...deal } { ...deal }
onSelectDeal={ this._handle_onSelectDeal }
/> />
) )
} }

View File

@ -1,12 +1,43 @@
import React from "react"; import React from "react";
import pluralize from 'pluralize-ru'; import pluralize from 'pluralize-ru';
const statuses = [ const statuses = {
{ "0": {
title: "Сбор пакета документов", index: undefined,
title: "Выбор КП",
icon: "/assets/images/status/1.svg", icon: "/assets/images/status/1.svg",
} },
]; "101": {
index: 1,
title: "Выбор программы финансирования",
icon: "/assets/images/status/2.svg",
},
"102": {
index: 2,
title: "Сбор пакета документов",
icon: "/assets/images/status/3.svg",
},
"3": {
index: 3,
title: "Проверка документов",
icon: "/assets/images/status/4.svg",
},
"1": {
index: 4,
title: "Принятие решения по заявке",
icon: "/assets/images/status/5.svg",
},
"107": {
index: 5,
title: "Оформление лизинга",
icon: "/assets/images/status/6.svg",
},
"2": {
index: 6,
title: "Выбор типа подписания",
icon: "/assets/images/status/7.svg",
},
};
export default class DealsListDeal extends React.Component export default class DealsListDeal extends React.Component
{ {
@ -15,9 +46,11 @@ export default class DealsListDeal extends React.Component
super(props) super(props)
} }
//getDealOffers
render() render()
{ {
const { index, comment, opp_number, statuscode_id, statuscode_name } = this.props; const { onSelectDeal, index, comment, opp_number, statuscode_id, statuscode_name } = this.props;
const step = statuscode_id - 100; const step = statuscode_id - 100;
console.log("deal list item", { props: this.props }); console.log("deal list item", { props: this.props });
@ -29,7 +62,7 @@ export default class DealsListDeal extends React.Component
</div> </div>
<div> <div>
<p> <p>
{ step === 0 ? "Не начата" : `${ step } ${ pluralize(step, 'этапа', 'этап', 'этапа', 'этапов') } ${ pluralize(step, 'пройдено', 'пройден', 'пройдено', 'пройдено') }` } { statuses[ statuscode_id ] === undefined ? "Не начата" : `${ statuses[ statuscode_id ].index } ${ pluralize(step, 'этапа', 'этап', 'этапа', 'этапов') } ${ pluralize(statuses[ statuscode_id ].index, 'пройдено', 'пройден', 'пройдено', 'пройдено') }` }
{/*} {/*}
<svg xmlns="http://www.w3.org/2000/svg" width={18} height={18} fill="none"> <svg xmlns="http://www.w3.org/2000/svg" width={18} height={18} fill="none">
<path stroke="#8E94A7" strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14.625 6.75 9 12.375 3.375 6.75" /> <path stroke="#8E94A7" strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14.625 6.75 9 12.375 3.375 6.75" />
@ -38,12 +71,12 @@ export default class DealsListDeal extends React.Component
</p> </p>
</div> </div>
<div> <div>
<img src="/assets/images/status/1.svg" width="50" height="50" /> <img src={ statuses[ statuscode_id ].icon } width="50" height="50" />
<p>Сбор пакета документов</p> <p>{ statuscode_name }</p>
</div> </div>
<div> <div>
<button className="button" onClick={() => { this._handleModalToggle("all") }} > <button className="button" onClick={() => { onSelectDeal(opp_number, index) }} >
Еще 4 этапа Еще { statuses[ statuscode_id ] !== undefined ? (7 - statuses[ statuscode_id ].index) : 7 } { pluralize(statuses[ statuscode_id ] !== undefined ? (7 - statuses[ statuscode_id ].index) : 7, 'этапа', 'этап', 'этапа', 'этапов') }
<svg xmlns="http://www.w3.org/2000/svg" width={18} height={18} fill="none"> <svg xmlns="http://www.w3.org/2000/svg" width={18} height={18} fill="none">
<path stroke="#1C01A9" strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14.625 6.75 9 12.375 3.375 6.75" /> <path stroke="#1C01A9" strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14.625 6.75 9 12.375 3.375 6.75" />
</svg> </svg>

View File

@ -1,4 +1,597 @@
import React from "react" import React from "react"
import numeral from "numeral";
import moment from "moment";
import { SpinnerCircular } from "spinners-react";
import FileDropzoneDeals from "../FileDropzoneDeals";
class Step extends React.Component
{
componentDidMount()
{
if(this.props.status === this.status)
{
this.setState({ open: true });
}
}
_handle_onSwitch = () =>
{
this.setState({ open: !this.state.open ? true : false });
}
_renderHeader = (title) =>
{
const { status } = this.props;
const { open } = this.state;
return (
<div className="status_header" style={{ position: "relative" }} onClick={ this._handle_onSwitch }>
{ status >= this.status && ( <div className="background"></div> )}
<i className={`status_${ this.status } ${ status < this.status ? "inactive" : "" }`}></i>
<p>{ title }</p>
<div className="button_arrow">
<div className={`icon ${ open ? "up" : "down" }`}></div>
</div>
</div>
)
}
}
class Offers extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 1;
}
render()
{
const { index, status, offers } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Выбор КП") }
<div className="wrap" style={{ display: open ? "block" : "none" }}>
{ offers === undefined ? (
<div style={{ minHeight: 100, display: "flex", justifyContent: "center", alignItems: "center", }}>
<SpinnerCircular size={ 50 } thickness={ 51 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
</div>
) : (
<>
{ offers.length > 0 ? (
<table>
<thead>
<tr>
<th></th>
<th></th>
<th>Стоимость</th>
<th>Первый платеж, р.</th>
<th>Первый платеж, %</th>
<th>Марка</th>
<th>Модель</th>
<th>Объектов лизинга</th>
<th></th>
</tr>
</thead>
<tbody>
{ offers.map((offer, offer_index) => (
<tr key={ offer_index }>
<td>
<div className="form_field checkbox">
<input type="checkbox" name="row" id="row" checked="" onChange={ () => {} }/>
<label htmlFor="row"></label>
</div>
</td>
<td>{ offer_index + 1 }</td>
<td>{ numeral(offer.price).format(' ., ') } р.</td>
<td>{ numeral(offer.first_payment_rub).format(' ., ') } р.</td>
<td>{ offer.first_payment_perc }%</td>
<td>{ offer.brand_name }</td>
<td>{ offer.model_name }</td>
<td>{ offer.object_count }</td>
<td>
<div className="dosc_list">
<div className="row">
<div className="small-icon">
<p className="doc_name i-pdf">
КП
<span>{ offer.quote_number }</span>
</p>
</div>
</div>
</div>
</td>
</tr>
)) }
</tbody>
</table>
) : (
<p>Нет предложений</p>
) }
</>
) }
</div>
</div>
</div>
)
}
}
class FinancialProgram extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 2;
}
render()
{
const { index, status } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Программа финансирования") }
<div className="wrap" style={{ display: open ? "block" : "none" }}>
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
)
}
}
class DocumentsForm extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
files: {},
};
this.status = 3;
}
_handle_onAddFile = (file_id, files) =>
{
console.log("_handle_onAddFile", { file_id, files });
const existed_files = this.state.files;
const document_files = existed_files[ file_id ] === undefined ? [] : existed_files[ file_id ];
for(let nf in files)
{
let e = false;
for(let ef in document_files)
{
if(document_files[ef].name === files[nf].name) { e = true; }
}
if(!e)
{
document_files.push(files[nf]);
}
existed_files[ file_id ] = document_files;
this.setState({ files: existed_files });
}
}
_handle_onDeleteFile = (file_id, file) =>
{
}
render()
{
const { index, status, documents, questionnaire_status } = this.props;
const { open, files } = this.state;
console.log({ documents });
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Сборка пакета документов") }
<div className="wrap form" style={{ display: open ? "block" : "none" }}>
<div className="block">
<div className="left">
<p><b>Устав организации:</b></p>
</div>
<div className="right">
{ questionnaire_status === "need_to_fill" ? (
<div className="message alert">
<p>Требуется обновить данные в анкете</p>
<button className="button button-blue">Актуализировать данные</button>
</div>
) : (
<>
{ questionnaire_status !== "up_to_date" ? (
<div className="message wait">
<p>Проводится проверка анкеты Вашей организации</p>
</div>
) : (
<div className="message ok">
<p>Вам не требуется актуализация данных анкеты Клиента</p>
</div>
) }
</>
) }
</div>
</div>
{ documents === undefined ? (
<></>
) : (
<>
{ documents.map((document, index) => (
<div className="block" key={ index }>
<div className="left">
<p><b><span>{ document.name }</span>:</b></p>
</div>
<div className="right">
<FileDropzoneDeals
files={ files[ document.doc_id ] !== undefined ? files[ document.doc_id ] : [] }
onAddFile={ (file) => { this._handle_onAddFile(document.doc_id, file) } }
onDeleteFile={ (file) => this._handle_onDeleteFile(document.doc_id, file) }
/>
</div>
</div>
)) }
</>
)}
{/*}
<div className="message documents">
<div className="doc_list">
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-pdf i-medium">123/2023 от 01.01.2023</p>
</div>
</div>
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-pdf i-medium">123/2023 от 01.01.2023</p>
</div>
</div>
</div>
<p>Документы, отправленные Вами принадлежат другой организации бла бла коммент от менеджера</p>
</div>
{*/}
</div>
</div>
</div>
)
}
}
class StatusDocumentsCheck extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 4;
}
render()
{
const { index, status } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Проверка документов") }
<div className="wrap" style={{ display: open ? "block" : "none" }}>
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
)
}
}
class StatusDecisionMaking extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 5;
}
render()
{
const { index, status } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Принятие решения по заявке") }
<div className="wrap" style={{ display: open ? "block" : "none" }}>
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
)
}
}
class StatusLeasingRegistration extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 6;
}
render()
{
const { index, status } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Оформление лизинга") }
<div className="wrap" style={{ display: open ? "block" : "none" }}>
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
)
}
}
class SigningTypeSelection extends Step
{
constructor(props)
{
super(props);
this.state = {
open: false,
};
this.status = 7;
this.types = [
{
title: "Подготовлено",
key: "prepared_contracts",
},
/*
{
title: "К подписанию",
key: "signing_plan_contracts",
},
{
title: "Выдано",
key: "issued_contracts",
},
{
title: "Подписано",
key: "signing_fact_contracts",
},
{
title: "Анулировано",
key: "annulled_contracts",
},
*/
];
}
_render_preparedContracts = () =>
{
const contracts = this.props.contracts['prepared_contracts'];
console.log({ contracts });
return (
<div className="block-column">
<div className="dosc_list acts_list-checkbox medium-icon">
{ contracts.map((contract, index) => (
<div className="row" key={ index }>
<div className="doc_name i-doc i-medium blue deals_contracts" style={{ alignItems: "flex-start" }}>
<input type="checkbox" name="" id="" checked="" onChange={ () => {} }/>
<label htmlFor="">{ contract.name }</label>
<div className="info">
<span>{ moment(contract.date).format('MM.DD.YYYY') }</span>
<span>{ contract.brand_name }</span>
<span>{ contract.model_name }</span>
</div>
</div>
</div>
)) }
</div>
<div className="block_footer_btn">
<button className="button button-blue">Подписать в ЭДО</button>
<button className="button button-blue">Подписать в бумажном виде</button>
</div>
</div>
)
}
_render_signingPlanContracts = () =>
{
const { contracts } = this.props;
return (
<div className="block-column">
<div className="dosc_list medium-icon">
<div className="row flex-start">
<p className="doc_name i-doc i-medium" >
123/2023 от 01.01.2023
</p>
<button className="button">Перейти в ЭДО</button>
</div>
<div className="row flex-start">
<p className="doc_name i-doc i-medium" >
123/2023 от 01.01.2023
</p>
<button className="button">Скачать документ</button>
<button className="button">Загрузить подписанный экземпляр</button>
</div>
</div>
</div>
)
}
_render_issuedContracts = () =>
{
const { contracts } = this.props;
return (
<div className="block-column">
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium" >
<a href="#">Скачать 129/2023 от 01.01.2023 - Ожидание оплаты</a>
</p>
</div>
</div>
</div>
)
}
_render_signingFactContracts = () =>
{
const { contracts } = this.props;
return (
<div className="block-column">
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium">
123/2023 от 01.01.2023
</p>
</div>
</div>
</div>
)
}
_render_annuledContracts = () =>
{
const { contracts } = this.props;
return (
<div className="block-column">
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium">
123/2023 от 01.01.2023
</p>
</div>
</div>
</div>
)
}
_render_contracts = (type) =>
{
const { contracts } = this.props;
if(contracts !== undefined)
{
switch (type)
{
case "prepared_contracts":
{
return this._render_preparedContracts();
}
case "signing_plan_contracts":
{
return this._render_signingPlanContracts();
}
case "issued_contracts":
{
return this._render_issuedContracts();
}
case "signing_fact_contracts":
{
return this._render_signingFactContracts();
}
case "annulled_contracts":
{
return this._render_annuledContracts();
}
}
}
else
{
return null;
}
}
render()
{
const { index, status } = this.props;
const { open } = this.state;
return (
<div className={`${ status === this.status ? "current" : status > this.status ? "done" : "" }`}>
<p>Сделка { index + 1 }</p>
<span></span>
<div className="status_body">
{ this._renderHeader("Выбор типа подписания") }
<div className="wrap form" style={{ display: open ? "block" : "none" }}>
{ this.types.map((type, index) => (
<div className="block" key={ index }>
<div className="left">
<p><b>{ type.title }</b></p>
</div>
<div className="right">
{ this._render_contracts(type.key) }
</div>
</div>
)) }
</div>
</div>
</div>
)
}
}
export default class SingleDeal extends React.Component export default class SingleDeal extends React.Component
{ {
@ -9,9 +602,14 @@ export default class SingleDeal extends React.Component
render() render()
{ {
const { close } = this.props; const { index, status, deals, dealSelected, onCloseDeal } = this.props;
console.log({ "deals": deals });
return ( const offers = deals.details[ dealSelected ] !== undefined ? deals.details[ dealSelected ].offers : undefined;
const documents = deals.details[ dealSelected ] !== undefined ? deals.details[ dealSelected ].documents : undefined;
const contracts = deals.details[ dealSelected ] !== undefined ? deals.details[ dealSelected ].contracts : undefined;
return (
<div className="contractStatus_modal"> <div className="contractStatus_modal">
{/*} {/*}
<div className="modal_header"> <div className="modal_header">
@ -20,287 +618,17 @@ export default class SingleDeal extends React.Component
</div> </div>
{*/} {*/}
<div className="modal_body single_status"> <div className="modal_body single_status">
<div className="current"> <Offers { ...this.props } offers={ offers }/>
<p>Сделка 1</p> <FinancialProgram { ...this.props }/>
<span></span> <DocumentsForm { ...this.props } documents={ documents }/>
<div className="status_body"> <StatusDocumentsCheck { ...this.props }/>
<div className="status_header"> <StatusDecisionMaking { ...this.props }/>
<i className="status_1"></i> <StatusLeasingRegistration { ...this.props }/>
<p>Выбор КП</p> <SigningTypeSelection { ...this.props } contracts={ contracts }/>
</div> </div>
<div className="wrap"> <div className="bottom_button_close" onClick={ onCloseDeal } >
<table> <span>Свернуть</span>
<thead> <div className="icon"></div>
<tr>
<th></th>
<th></th>
<th>Стоимость</th>
<th>Первый платеж, р.</th>
<th>Первый платеж, %</th>
<th>Марка</th>
<th>Модель</th>
<th>Объектов лизинга</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div className="form_field checkbox">
<input type="checkbox" name="row" id="row" checked="" onChange={ () => {} }/>
<label htmlFor="row"></label>
</div>
</td>
<td>1</td>
<td>5 600 000 р.</td>
<td>560 000 р.</td>
<td>10 %</td>
<td>Audi</td>
<td>A8</td>
<td>1</td>
<td>
<div className="dosc_list">
<div className="row">
<div className="small-icon">
<p className="doc_name i-pdf">
КП
<span>1</span>
</p>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div className="form_field checkbox">
<input type="checkbox" name="row" id="row" checked="" onChange={ () => {} }/>
<label htmlFor="row"></label>
</div>
</td>
<td>1</td>
<td>5 600 000 р.</td>
<td>560 000 р.</td>
<td>10 %</td>
<td>Audi</td>
<td>A8</td>
<td>1</td>
<td>
<div className="dosc_list">
<div className="row">
<div className="small-icon">
<p className="doc_name i-pdf">
КП
<span>1</span>
</p>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div>
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_2"></i>
<p className="header">Программа финансирования</p>
</div>
<div className="wrap">
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
<div>
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_3"></i>
<p>Сборка пакета документов</p>
</div>
<div className="wrap">
<div className="message ok">
<p>Вам не требуется актуализация данных анкеты Клиента</p>
</div>
<div className="message alert">
<p>Требуется обновить данные в анкете</p>
<button className="button button-blue">Актуализировать данные</button>
</div>
<div className="message wait">
<p>Проводится проверка анкеты Вашей организации</p>
</div>
<p><b>Устав организации</b></p>
<div className="attach_file">
<label>
<input type="file" hidden onChange={ () => {} }/>
Прикрепить скан документов
</label>
</div>
<div className="message documents">
<div className="doc_list">
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-pdf i-medium">123/2023 от 01.01.2023</p>
</div>
</div>
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-pdf i-medium">123/2023 от 01.01.2023</p>
</div>
</div>
</div>
<p>Документы, отправленные Вами принадлежат другой организации бла бла коммент от менеджера</p>
</div>
<div className="attach_file">
<label>
<input type="file" hidden onChange={ () => {} }/>
Прикрепить ещё
</label>
</div>
<p><b>Другое название документа</b></p>
<div className="attach_file">
<label>
<input type="file" hidden onChange={ () => {} }/>
Прикрепить скан документов
</label>
</div>
</div>
</div>
</div>
<div className="">
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_4"></i>
<p>Проверка документов</p>
</div>
<div className="wrap">
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
<div>
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_5"></i>
<p>Принятие решения по заявке</p>
</div>
<div className="wrap">
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
<div>
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_6"></i>
<p>Оформление лизинга</p>
</div>
<div className="wrap">
<div className="single_text">
<p>Статусный текст о том что выбирается программа финансированияи может быть по центру иконочка часиков или слева от статусного текста иконочка часиков</p>
</div>
</div>
</div>
</div>
<div>
<p>Сделка 1</p>
<span></span>
<div className="status_body">
<div className="status_header">
<i className="status_7"></i>
<p>Выбор типа подписания</p>
</div>
<div className="wrap">
<div className="block-column">
<div className="dropdown_block open" >
<div className="block_header default">
<p><b>Подготовлено 3 из 12</b></p>
</div>
</div>
<div className="dosc_list acts_list-checkbox medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium" >
<input type="checkbox" name="" id="" checked="" onChange={ () => {} }/>
<label htmlFor="">2022_6875 от 28.06.2022</label>
</p>
</div>
</div>
<div className="block_footer_btn">
<button className="button button-blue">Подписать в ЭДО</button>
<button className="button button-blue">Подписать в бумажном виде</button>
</div>
</div>
<div className="block-column">
<div className="dropdown_block open" >
<div className="block_header default">
<p><b>К подписанию 3 из 12</b></p>
</div>
</div>
<div className="dosc_list medium-icon">
<div className="row flex-start">
<p className="doc_name i-doc i-medium" >
123/2023 от 01.01.2023
</p>
<button className="button">Перейти в ЭДО</button>
</div>
<div className="row flex-start">
<p className="doc_name i-doc i-medium" >
123/2023 от 01.01.2023
</p>
<button className="button">Скачать документ</button>
<button className="button">Загрузить подписанный экземпляр</button>
</div>
</div>
</div>
<div className="block-column">
<div className="dropdown_block open" >
<div className="block_header default">
<p><b>Подписано 3 из 12</b></p>
</div>
</div>
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium" >
<a href="#">Скачать 129/2023 от 01.01.2023 - Ожидание оплаты</a>
</p>
</div>
</div>
</div>
<div className="block-column">
<div className="dropdown_block open">
<div className="block_header default">
<p><b>Подготовлено 3 из 12</b></p>
</div>
</div>
<div className="dosc_list medium-icon">
<div className="row">
<p className="doc_name i-doc i-medium">
123/2023 от 01.01.2023
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
) )

View File

@ -2,7 +2,7 @@ import React from "react"
import { connect } from "react-redux" import { connect } from "react-redux"
import DealsList from "./DealsList"; import DealsList from "./DealsList";
import SingleDeal from "./SingleDeal"; import SingleDeal from "./SingleDeal";
import { getDeals } from "../../actions"; import { getDeals, getDealOffers, getDealDocuments, getDealContracts } from "../../actions";
class AllContractsModal extends React.Component class AllContractsModal extends React.Component
{ {
@ -82,10 +82,11 @@ class DealsStatus extends React.Component
{ {
super(props) super(props)
this.state = { this.state = {
status: 2,
currentContractModalOpened: false, currentContractModalOpened: false,
allContractModalOpened: false, allContractModalOpened: false,
currentSelected: null, currentSelected: null,
dealSelected: false, dealSelected: undefined,
deals: undefined, deals: undefined,
} }
} }
@ -129,16 +130,41 @@ class DealsStatus extends React.Component
}) })
} }
_handle_onSelectDeal = (deal_id) =>
{
const { dispatch } = this.props;
console.log("_handle_onSelectDeal", { deal_id });
this.setState({ dealSelected: deal_id });
getDealOffers({ dispatch, deal_id, });
getDealDocuments({ dispatch, deal_id, });
getDealContracts({ dispatch, deal_id, });
}
_handle_onCloseDeal = () =>
{
this.setState({ dealSelected: undefined });
}
render() render()
{ {
const { currentContractModalOpened, allContractModalOpened, currentSelected, dealSelected, deals } = this.state const { currentContractModalOpened, allContractModalOpened, currentSelected, dealSelected, deals, status } = this.state
const { questionnaire_status } = this.props;
return ( return (
<> <>
<div> <div>
<p className="deals_list_title">Статусы сделок</p> <p className="deals_list_title">Статусы сделок</p>
</div> </div>
<DealsList deals={ deals } dealSelected={ dealSelected }/> <DealsList
status={ status }
deals={ deals }
questionnaire_status={ questionnaire_status }
dealSelected={ dealSelected }
onSelectDeal={ this._handle_onSelectDeal }
onCloseDeal={ this._handle_onCloseDeal }
/>
{/*} {/*}
<AllContractsModal <AllContractsModal
open={allContractModalOpened} open={allContractModalOpened}

View File

@ -0,0 +1,55 @@
import React from "react";
import Dropzone from 'react-dropzone';
const LIMIT = 10000000;
const LIMIT_FILES = 10;
export default class FileDropzone extends React.Component
{
constructor(props)
{
super(props);
this.state = {};
}
render()
{
const { files, onAddFile, onDeleteFile } = this.props;
return (
<>
{ files.length > 0 && (
<div className="column">
<div className="column_text_block">
<p><b>Приложенные файлы ({ files.length }/{ LIMIT_FILES })</b></p>
{ files.map((file, index) => (
<p key={ index }>{ file.size > LIMIT && (<span style={{ color: "#A8026B", }}>Ошибка, превышен допустимый размер файла в 10 мб.</span>) } { file.name } - { parseFloat(file.size / 1000000).toFixed(file.size < 100000 ? 3 : 2) } мб. <small style={{ color: "#A8026B", textDecoration: "underline", cursor: "pointer" }} onClick={ () => onDeleteFile(file.name) }>[ удалить ]</small></p>
)) }
</div>
</div>
) }
<div className="column">
<div className="column_text_block">
<p style={{ color: "#999", fontStyle: "italic" }}>Вы можете приложить до 10 файлов, максимальный размер одного файла: 10 мегабайт.</p>
</div>
</div>
{ files.length < LIMIT_FILES && (
<Dropzone onDrop={ (acceptedFiles) => onAddFile(acceptedFiles) } maxFiles={ LIMIT_FILES }>
{ ({getRootProps, getInputProps}) => (
<div className="file_upload dropzone" { ...getRootProps() }>
<div className="files"></div>
<div>
<p data-sm-text="Выберите файлы">
<span>Перенесите файлы на экран для быстрой загрузки или выберите файл с компьютера </span>
</p>
<label htmlFor="" className="button button-blue">Загрузить файл</label>
</div>
<input { ...getInputProps() } />
</div>
) }
</Dropzone>
) }
</>
)
}
}

View File

@ -0,0 +1,56 @@
import Dropzone from 'react-dropzone';
import FileDropzone from "../FileDropzone";
import moment from "moment";
const LIMIT = 10000000;
const LIMIT_FILES = 10;
export default class FileDropzoneDeals extends FileDropzone
{
render()
{
const { files, onAddFile, onDeleteFile, } = this.props;
return (
<>
{ files.length > 0 && (
<div className="horizontal_dropzone_files">
{ files.map((file, index) => (
<div className="file" key={ index }>
<div className="delete">
<div className="icon"></div>
</div>
<div className="doc_icon">
<span className="extension">PDF</span>
</div>
<div className="title">
<span>{ file.name }</span>
<span>{ moment().format("DD.MM.YYYY") }</span>
</div>
</div>
)) }
{/*}
<p key={ index }>{ file.size > LIMIT && (<span style={{ color: "#A8026B", }}>Ошибка, превышен допустимый размер файла в 10 мб.</span>) } { file.name } - { parseFloat(file.size / 1000000).toFixed(file.size < 100000 ? 3 : 2) } мб. <small style={{ color: "#A8026B", textDecoration: "underline", cursor: "pointer" }} onClick={ () => onDeleteFile(file.name) }>[ удалить ]</small></p>
{*/}
</div>
) }
{ files.length < LIMIT_FILES && (
<Dropzone onDrop={ (acceptedFiles) => onAddFile(acceptedFiles) } maxFiles={ LIMIT_FILES }>
{ ({getRootProps, getInputProps}) => (
<div className={`file_upload dropzone horizontal_dropzone_wrapper`} { ...getRootProps() }>
<div className={`files`}></div>
<div className={`horizontal_dropzone_inner`}>
<p data-sm-text="Выберите файлы">
<span>Перенесите файлы на экран для быстрой загрузки или выберите файл с компьютера </span>
</p>
<label htmlFor="" className="button button-blue">Загрузить файл</label>
</div>
<input { ...getInputProps() } />
</div>
) }
</Dropzone>
) }
</>
)
}
}

View File

@ -5299,7 +5299,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
display: block !important; display: block !important;
} }
.contractStatus_list { .contractStatus_list {
margin: 20px 0; margin: 50px 0;
} }
.contractStatus_list .list_item { .contractStatus_list .list_item {
display: flex; display: flex;
@ -5437,7 +5437,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
align-items: unset; align-items: unset;
justify-content: flex-start; justify-content: flex-start;
gap: 0 30px; gap: 0 30px;
padding: 2px 0; padding: 0px 0;
} }
.contractStatus_modal .single_status > div:last-child .status_body .wrap { .contractStatus_modal .single_status > div:last-child .status_body .wrap {
padding-bottom: 0; padding-bottom: 0;
@ -5453,48 +5453,68 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
font-weight: 700; font-weight: 700;
white-space: nowrap; white-space: nowrap;
padding: 15px 0; padding: 15px 0;
height: 80px;
display: flex; display: flex;
align-items: center; align-items: center;
box-sizing: border-box; box-sizing: border-box;
} }
.contractStatus_modal .single_status > div i { .contractStatus_modal .single_status > div i {
display: block; display: block;
width: 50px; width: 40px;
height: 50px; height: 40px;
} }
.contractStatus_modal .single_status > div i.status_1 { .contractStatus_modal .single_status > div i.status_1 {
background: url("/assets/images/status/1.svg") no-repeat center; background: url("/assets/images/status/1_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_1.inactive {
background: url("/assets/images/status/1_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_2 { .contractStatus_modal .single_status > div i.status_2 {
background: url("/assets/images/status/2.svg") no-repeat center; background: url("/assets/images/status/2_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_2.inactive {
background: url("/assets/images/status/2_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_3 { .contractStatus_modal .single_status > div i.status_3 {
background: url("/assets/images/status/3.svg") no-repeat center; background: url("/assets/images/status/3_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_3.inactive {
background: url("/assets/images/status/3_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_4 { .contractStatus_modal .single_status > div i.status_4 {
background: url("/assets/images/status/4.svg") no-repeat center; background: url("/assets/images/status/4_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_4.inactive {
background: url("/assets/images/status/4_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_5 { .contractStatus_modal .single_status > div i.status_5 {
background: url("/assets/images/status/5.svg") no-repeat center; background: url("/assets/images/status/5_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_5.inactive {
background: url("/assets/images/status/5_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_6 { .contractStatus_modal .single_status > div i.status_6 {
background: url("/assets/images/status/6.svg") no-repeat center; background: url("/assets/images/status/6_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_6.inactive {
background: url("/assets/images/status/6_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div i.status_7 { .contractStatus_modal .single_status > div i.status_7 {
background: url("/assets/images/status/7.svg") no-repeat center; background: url("/assets/images/status/7_on.svg") no-repeat center;
}
.contractStatus_modal .single_status > div i.status_7.inactive {
background: url("/assets/images/status/7_off.svg") no-repeat center;
} }
.contractStatus_modal .single_status > div > span { .contractStatus_modal .single_status > div > span {
display: block; display: block;
width: 20px; width: 20px;
min-width: 20px; min-width: 20px;
margin: 0; margin: 0;
background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.92871 3.50024L4.92871 8.50002L2.42871 6.00024' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23EDEFF5'/%3E%3Cpath d='M9.9986 14.2857C12.3655 14.2857 14.2843 12.3669 14.2843 10C14.2843 7.63307 12.3655 5.71429 9.9986 5.71429C7.63167 5.71429 5.71289 7.63307 5.71289 10C5.71289 12.3669 7.63167 14.2857 9.9986 14.2857Z' stroke='%238E94A7' stroke-miterlimit='10'/%3E%3Cpath d='M10 7.5V10H12.5' stroke='%238E94A7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top center; background-position: top center;
position: relative; position: relative;
z-index: 1; z-index: 2;
top: 30px; top: 15px;
} }
.contractStatus_modal .single_status > div > span:before { .contractStatus_modal .single_status > div > span:before {
content: ""; content: "";
@ -5502,7 +5522,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
position: absolute; position: absolute;
width: 0px; width: 0px;
height: auto; height: auto;
border: 1px dashed #5FB158; border: 1px dashed #EDEFF5;
top: 20px; top: 20px;
bottom: -20px; bottom: -20px;
left: 0; left: 0;
@ -5516,7 +5536,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
height: 0; height: 0;
border-left: 3px solid transparent; border-left: 3px solid transparent;
border-right: 3px solid transparent; border-right: 3px solid transparent;
border-top: 5px solid #5FB158; border-top: 5px solid #EDEFF5;
position: absolute; position: absolute;
top: -5px; top: -5px;
left: 0; left: 0;
@ -5527,6 +5547,18 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
display: none; display: none;
} }
.contractStatus_modal .single_status > div:last-child span:before { .contractStatus_modal .single_status > div:last-child span:before {
content: "";
display: block;
position: absolute;
width: 0px;
height: auto;
border: 1px dashed #EDEFF5;
top: 20px;
bottom: -20px;
left: 0;
right: 0;
margin: auto;
z-index: -1;
bottom: 0; bottom: 0;
} }
.contractStatus_modal .single_status > div:not(:first-child) > p:first-child { .contractStatus_modal .single_status > div:not(:first-child) > p:first-child {
@ -5535,6 +5567,55 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
.contractStatus_modal .single_status > div:not(.current) img { .contractStatus_modal .single_status > div:not(.current) img {
filter: grayscale(1); filter: grayscale(1);
} }
.contractStatus_modal .single_status > div.current {
/*
&~div {
> span {
//background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.00056 10.2858C8.36749 10.2858 10.2863 8.367 10.2863 6.00007C10.2863 3.63313 8.36749 1.71436 6.00056 1.71436C3.63362 1.71436 1.71484 3.63313 1.71484 6.00007C1.71484 8.367 3.63362 10.2858 6.00056 10.2858Z' stroke='%238E94A7' stroke-miterlimit='10'/%3E%3Cpath d='M6 3.5V6H8.5' stroke='%238E94A7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
background-position: top center;
&:before {
border-color: #2F80ED;
}
&:after {
border-top-color: #2F80ED;
}
}
i {
//&.status_1 {
// background: url("/assets/images/status/1_inactive.svg") no-repeat center;
//}
//&.status_2 {
// background: url("/assets/images/status/2_inactive.svg") no-repeat center;
//}
//&.status_3 {
// background: url("/assets/images/status/3_inactive.svg") no-repeat center;
//}
//&.status_4 {
// background: url("/assets/images/status/4_inactive.svg") no-repeat center;
//}
//&.status_5 {
// background: url("/assets/images/status/5_inactive.svg") no-repeat center;
//}
//&.status_6 {
// background: url("/assets/images/status/6_inactive.svg") no-repeat center;
//}
//&.status_7 {
// background: url("/assets/images/status/7_inactive.svg") no-repeat center;
//}
}
}
*/
}
.contractStatus_modal .single_status > div.current > span { .contractStatus_modal .single_status > div.current > span {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232F80ED'/%3E%3Cpath d='M9.99888 13.9286C12.1686 13.9286 13.9275 12.1697 13.9275 9.99998C13.9275 7.83029 12.1686 6.07141 9.99888 6.07141C7.82919 6.07141 6.07031 7.83029 6.07031 9.99998C6.07031 12.1697 7.82919 13.9286 9.99888 13.9286Z' stroke='white' stroke-miterlimit='10'/%3E%3Cpath d='M10 10L11.7678 8.23224' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8.92773 4.64282H11.0706' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232F80ED'/%3E%3Cpath d='M9.99888 13.9286C12.1686 13.9286 13.9275 12.1697 13.9275 9.99998C13.9275 7.83029 12.1686 6.07141 9.99888 6.07141C7.82919 6.07141 6.07031 7.83029 6.07031 9.99998C6.07031 12.1697 7.82919 13.9286 9.99888 13.9286Z' stroke='white' stroke-miterlimit='10'/%3E%3Cpath d='M10 10L11.7678 8.23224' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8.92773 4.64282H11.0706' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
background-repeat: no-repeat; background-repeat: no-repeat;
@ -5543,51 +5624,35 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
.contractStatus_modal .single_status > div.current > span:before { .contractStatus_modal .single_status > div.current > span:before {
border-color: #2F80ED; border-color: #2F80ED;
} }
.contractStatus_modal .single_status > div.current ~ div > span { .contractStatus_modal .single_status > div.current > span:after {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23EDEFF5'/%3E%3Cpath d='M9.9986 14.2857C12.3655 14.2857 14.2843 12.3669 14.2843 10C14.2843 7.63307 12.3655 5.71429 9.9986 5.71429C7.63167 5.71429 5.71289 7.63307 5.71289 10C5.71289 12.3669 7.63167 14.2857 9.9986 14.2857Z' stroke='%238E94A7' stroke-miterlimit='10'/%3E%3Cpath d='M10 7.5V10H12.5' stroke='%238E94A7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); border-top-color: #2F80ED;
background-repeat: no-repeat;
background-position: top center;
}
.contractStatus_modal .single_status > div.current ~ div > span:before {
border-color: var(--inactive, #EDEFF5);
}
.contractStatus_modal .single_status > div.current ~ div > span:after {
border-top-color: var(--inactive, #EDEFF5);
}
.contractStatus_modal .single_status > div.current ~ div i {
/*
&.status_1 {
background: url("/assets/images/status/1_inactive.svg") no-repeat center;
}
&.status_2 {
background: url("/assets/images/status/2_inactive.svg") no-repeat center;
}
&.status_3 {
background: url("/assets/images/status/3_inactive.svg") no-repeat center;
}
&.status_4 {
background: url("/assets/images/status/4_inactive.svg") no-repeat center;
}
&.status_5 {
background: url("/assets/images/status/5_inactive.svg") no-repeat center;
}
&.status_6 {
background: url("/assets/images/status/6_inactive.svg") no-repeat center;
}
&.status_7 {
background: url("/assets/images/status/7_inactive.svg") no-repeat center;
}
*/
} }
.contractStatus_modal .single_status > div.current + div span:after { .contractStatus_modal .single_status > div.current + div span:after {
border-top-color: #2F80ED; border-top-color: #2F80ED;
} }
.contractStatus_modal .single_status > div.done {
/*
&~div {
> span {
&:before {
border-color: #5FB158;
}
}
}
*/
}
.contractStatus_modal .single_status > div.done > span {
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='%235FB158'/%3E%3Cpath d='M13.9277 7.5L8.92773 12.4998L6.42773 10' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.contractStatus_modal .single_status > div.done > span:before {
border-color: #5FB158;
}
.contractStatus_modal .single_status > div.done > span:after {
border-top-color: #5FB158;
}
.contractStatus_modal .single_status > div.done + div span:after {
border-top-color: #5FB158;
}
.contractStatus_modal .single_status > div .toggle_status { .contractStatus_modal .single_status > div .toggle_status {
margin: auto; margin: auto;
gap: 0 8px; gap: 0 8px;
@ -5607,16 +5672,72 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
gap: 0 30px; gap: 0 30px;
padding: 15px 0; padding: 0px 0;
position: relative;
cursor: pointer;
}
.contractStatus_modal .single_status > div .status_body .status_header .background {
background-color: #edeff5;
position: absolute;
left: -65px;
top: 0px;
width: calc(100% + 65px);
height: 50px;
z-index: 1;
}
.contractStatus_modal .single_status > div .status_body .status_header i {
z-index: 2;
}
.contractStatus_modal .single_status > div .status_body .status_header p {
z-index: 2;
}
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow {
width: 50px;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
z-index: 2;
margin-left: -30px;
}
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow .icon {
width: 18px;
height: 18px;
}
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow .down {
background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.625 6.75L9 12.375L3.375 6.75' stroke='%238E94A7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.contractStatus_modal .single_status > div .status_body .status_header .button_arrow .up {
background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.375 11.25L9 5.625L14.625 11.25' stroke='%238E94A7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
} }
.contractStatus_modal .single_status > div .status_body .header { .contractStatus_modal .single_status > div .status_body .header {
visibility: visible !important; visibility: visible !important;
} }
.contractStatus_modal .single_status > div .status_body .wrap { .contractStatus_modal .single_status > div .status_body .wrap {
margin-top: 10px; margin-top: 25px;
padding-bottom: 40px; padding-bottom: 25px;
border-bottom: 1px solid var(--inactive, #EDEFF5); border-bottom: 1px solid var(--inactive, #EDEFF5);
} }
.contractStatus_modal .single_status > div .status_body .wrap.form {
display: flex;
flex-direction: column;
}
.contractStatus_modal .single_status > div .status_body .wrap.form .block {
display: flex;
flex-direction: row;
}
.contractStatus_modal .single_status > div .status_body .wrap.form .block .left {
width: 20%;
}
.contractStatus_modal .single_status > div .status_body .wrap.form .block .left p {
line-height: 14px;
margin: 15px 0px 15px 0px;
}
.contractStatus_modal .single_status > div .status_body .wrap.form .block .right {
width: 80%;
padding-left: 30px;
padding-bottom: 30px;
}
.contractStatus_modal .single_status > div .status_body .wrap input[type="checkbox"] + label { .contractStatus_modal .single_status > div .status_body .wrap input[type="checkbox"] + label {
width: 16px; width: 16px;
padding: 0; padding: 0;
@ -5628,9 +5749,20 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
.contractStatus_modal .single_status > div .status_body .wrap p { .contractStatus_modal .single_status > div .status_body .wrap p {
font-weight: 400; font-weight: 400;
} }
.contractStatus_modal .single_status > div .status_body .wrap .single_text { .contractStatus_modal .single_status > div .status_body .wrap .single_text p {
max-width: 565px; display: flex;
margin: auto; color: #8E94A7;
margin-right: 20%;
}
.contractStatus_modal .single_status > div .status_body .wrap .single_text p:before {
content: "";
display: block;
width: 40px;
min-height: 40px;
height: 40px;
min-width: 40px;
margin-right: 20px;
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='40' height='40' rx='8' fill='%232F80ED' fill-opacity='0.1'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20 29C24.9706 29 29 24.9706 29 20C29 15.0294 24.9706 11 20 11C15.0294 11 11 15.0294 11 20C11 24.9706 15.0294 29 20 29ZM21 14.5C21 13.9477 20.5523 13.5 20 13.5C19.4477 13.5 19 13.9477 19 14.5V19.75C19 20.4404 19.5596 21 20.25 21H23.5C24.0523 21 24.5 20.5523 24.5 20C24.5 19.4477 24.0523 19 23.5 19H21V14.5Z' fill='%232F80ED'/%3E%3C/svg%3E");
} }
.contractStatus_modal .single_status > div .status_body .wrap table { .contractStatus_modal .single_status > div .status_body .wrap table {
font-size: 12px; font-size: 12px;
@ -5639,19 +5771,12 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
} }
.contractStatus_modal .single_status > div .status_body .wrap table td, .contractStatus_modal .single_status > div .status_body .wrap table td,
.contractStatus_modal .single_status > div .status_body .wrap table th { .contractStatus_modal .single_status > div .status_body .wrap table th {
border: 1px solid rgba(0, 0, 0, 0.17); border: solid 1px #EDEFF5;
border-collapse: collapse;
padding: 13px; padding: 13px;
text-align: left; text-align: left;
vertical-align: middle; vertical-align: middle;
} }
.contractStatus_modal .single_status > div .status_body .wrap table td:not(:last-child),
.contractStatus_modal .single_status > div .status_body .wrap table th:not(:last-child) {
border-right: 0;
}
.contractStatus_modal .single_status > div .status_body .wrap table td:not(:first-child),
.contractStatus_modal .single_status > div .status_body .wrap table th:not(:first-child) {
border-left: 0;
}
.contractStatus_modal .single_status > div .status_body .wrap table td:nth-child(3), .contractStatus_modal .single_status > div .status_body .wrap table td:nth-child(3),
.contractStatus_modal .single_status > div .status_body .wrap table td:nth-child(4) { .contractStatus_modal .single_status > div .status_body .wrap table td:nth-child(4) {
white-space: nowrap; white-space: nowrap;
@ -5673,6 +5798,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10px; padding: 10px;
padding-left: 0px;
} }
.contractStatus_modal .single_status > div .status_body .wrap .message:before { .contractStatus_modal .single_status > div .status_body .wrap .message:before {
content: ""; content: "";
@ -5778,6 +5904,26 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M28.1241 31.5H7.87305C7.57468 31.5 7.28853 31.3815 7.07755 31.1705C6.86657 30.9595 6.74805 30.6734 6.74805 30.375V5.625C6.74805 5.32663 6.86657 5.04048 7.07755 4.82951C7.28853 4.61853 7.57468 4.5 7.87305 4.5H21.3741L29.2491 12.375V30.375C29.2491 30.5227 29.22 30.669 29.1635 30.8055C29.107 30.942 29.0241 31.066 28.9196 31.1705C28.8152 31.275 28.6912 31.3578 28.5547 31.4144C28.4182 31.4709 28.2719 31.5 28.1241 31.5Z' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.375 4.5V12.375H29.2511' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M14.625 21.375H21.375' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18 18V24.75' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M28.1241 31.5H7.87305C7.57468 31.5 7.28853 31.3815 7.07755 31.1705C6.86657 30.9595 6.74805 30.6734 6.74805 30.375V5.625C6.74805 5.32663 6.86657 5.04048 7.07755 4.82951C7.28853 4.61853 7.57468 4.5 7.87305 4.5H21.3741L29.2491 12.375V30.375C29.2491 30.5227 29.22 30.669 29.1635 30.8055C29.107 30.942 29.0241 31.066 28.9196 31.1705C28.8152 31.275 28.6912 31.3578 28.5547 31.4144C28.4182 31.4709 28.2719 31.5 28.1241 31.5Z' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.375 4.5V12.375H29.2511' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M14.625 21.375H21.375' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18 18V24.75' stroke='%231C01A9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.contractStatus_modal .bottom_button_close {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 18px 54px 18px 54px;
margin-left: 82px;
width: fit-content;
gap: 12px;
cursor: pointer;
}
.contractStatus_modal .bottom_button_close span {
font-weight: 600;
color: #1C01A9;
}
.contractStatus_modal .bottom_button_close .icon {
width: 16px;
height: 16px;
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 10L8 5L13 10' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.all_contracts_modal .contractStatus_list .list_item .step { .all_contracts_modal .contractStatus_list .list_item .step {
width: 50%; width: 50%;
gap: 0 16px; gap: 0 16px;
@ -5816,3 +5962,97 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
.all_contracts_modal .contractStatus_list .list_item div:last-child p { .all_contracts_modal .contractStatus_list .list_item div:last-child p {
color: var(--blue); color: var(--blue);
} }
.horizontal_dropzone_wrapper {
margin: 0px;
padding: 30px;
height: 100px;
}
.horizontal_dropzone_wrapper .horizontal_dropzone_inner {
display: flex;
width: 100%;
max-width: 80%;
gap: 20px;
}
.horizontal_dropzone_wrapper .horizontal_dropzone_inner p {
text-align: left;
margin: 0px;
}
.horizontal_dropzone_wrapper .horizontal_dropzone_inner label {
white-space: nowrap;
}
.horizontal_dropzone_files {
display: flex;
flex-direction: column;
grid-gap: 10px 0px;
margin-bottom: 30px;
}
.horizontal_dropzone_files .file {
display: flex;
flex-direction: row;
width: 40%;
}
.horizontal_dropzone_files .file .delete {
margin-left: 0px;
padding-right: 16px;
padding-top: 10px;
cursor: pointer;
}
.horizontal_dropzone_files .file .delete .icon {
width: 16px;
height: 16px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14Z' fill='%23ED0A34' stroke='%23ED0A34' stroke-miterlimit='10'/%3E%3Cpath d='M10 6L6 10' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 10L6 6' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.horizontal_dropzone_files .file .doc_icon {
display: flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
min-width: 56px;
min-height: 56px;
position: relative;
background: url(/assets/images/icons/icon-file.svg) no-repeat left center;
background-size: contain;
padding: 0;
zoom: 0.65;
}
.horizontal_dropzone_files .file .doc_icon .extension {
font-weight: 600;
font-size: 12px;
color: #fff;
}
.horizontal_dropzone_files .file .title {
display: flex;
flex-direction: column;
}
.horizontal_dropzone_files .file .title span:nth-child(odd) {
font-weight: 600;
margin-left: 16px;
}
.horizontal_dropzone_files .file .title span:nth-child(even) {
font-weight: 300;
margin-left: 16px;
}
.horizontal_dropzone_files .file .description {
display: block;
font-weight: 400;
margin-top: 2px;
color: #8e94a7;
}
.deals_contracts {
display: flex;
flex-direction: column;
}
.deals_contracts label {
height: 16px !important;
min-height: 16px !important;
}
.deals_contracts label::before {
margin-top: 18px;
}
.deals_contracts .info {
margin-left: 72px;
display: flex;
flex-direction: row;
grid-gap: 10px 10px;
}

File diff suppressed because it is too large Load Diff

View File

@ -507,6 +507,9 @@ div {
background-position: 0 5px; background-position: 0 5px;
} }
} }
.i-doc.blue {
background-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3.5C2 1.84315 3.34315 0.5 5 0.5H18.3701L20.7774 4L23.1848 7.06354V24.5C23.1848 26.1569 21.8417 27.5 20.1848 27.5H5C3.34314 27.5 2 26.1569 2 24.5V3.5Z' fill='%231C01A9'/%3E%3Cpath opacity='0.4' d='M23.1858 11.5V7L19.334 6.5L23.1858 11.5Z' fill='%230C0C0C'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 7.50098)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 12.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 17.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 22.501)' stroke='%23F0F0F0'/%3E%3Cpath d='M23.1858 7H19.3711C18.8188 7 18.3711 6.55228 18.3711 6V3.5V0.5L23.1858 7Z' fill='%232F80ED'/%3E%3C/svg%3E");
}
.success { .success {
color: var(--green); color: var(--green);
} }

View File

@ -524,20 +524,24 @@ div {
} }
.i-doc { .i-doc {
padding-left: 80px; padding-left: 80px;
background: url("/assets/images/icons/icon-doc.svg") no-repeat left center; background: url("/assets/images/icons/icon-doc.svg") no-repeat left center;
background-size: 56px; background-size: 56px;
@media all and (max-width: 1600px) and (min-width: 1280px) { @media all and (max-width: 1600px) and (min-width: 1280px) {
padding-left: 56px; padding-left: 56px;
background-size: 42px; background-size: 42px;
} }
@media all and (max-width: 960px) { @media all and (max-width: 960px) {
padding-left: 55px; padding-left: 55px;
background-size: 32px; background-size: 32px;
background-position: 0 5px; background-position: 0 5px;
} }
&.blue {
background-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3.5C2 1.84315 3.34315 0.5 5 0.5H18.3701L20.7774 4L23.1848 7.06354V24.5C23.1848 26.1569 21.8417 27.5 20.1848 27.5H5C3.34314 27.5 2 26.1569 2 24.5V3.5Z' fill='%231C01A9'/%3E%3Cpath opacity='0.4' d='M23.1858 11.5V7L19.334 6.5L23.1858 11.5Z' fill='%230C0C0C'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 7.50098)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 12.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 17.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 22.501)' stroke='%23F0F0F0'/%3E%3Cpath d='M23.1858 7H19.3711C18.8188 7 18.3711 6.55228 18.3711 6V3.5V0.5L23.1858 7Z' fill='%232F80ED'/%3E%3C/svg%3E");
}
} }
.success { .success {

View File

@ -1,4 +1,17 @@
/* /*
2.7.6 - Метод получения списка договоров со статусами по Лизинговой сделке в CRM 2.7.6 - Метод получения списка договоров со статусами по Лизинговой сделке в CRM
GET /lk/ConsiderationOpportunity/contract GET /lk/ConsiderationOpportunity/contract
*/ */
import CRMRequestGet from '../../../lib/CRMRequestGet';
export default async function handler(req, res)
{
console.log("API", "DEALS", "contracts");
console.log(req.body);
console.log("-".repeat(50));
const { deal_id } = req.body;
await CRMRequestGet(req, res, `${ process.env.CRM_API_HOST }/lk/ConsiderationOpportunity/contract`, { ...{ opp_number: deal_id } });
}

View File

@ -1,4 +1,17 @@
/* /*
2.7.4 - Метод получения списка документов для рассмотрения Лизинговой сделке в CRM 2.7.4 - Метод получения списка документов для рассмотрения Лизинговой сделке в CRM
GET /lk/ConsiderationOpportunity/document GET /lk/ConsiderationOpportunity/document
*/ */
import CRMRequestGet from '../../../lib/CRMRequestGet';
export default async function handler(req, res)
{
console.log("API", "DEALS", "documents");
console.log(req.body);
console.log("-".repeat(50));
const { deal_id } = req.body;
await CRMRequestGet(req, res, `${ process.env.CRM_API_HOST }/lk/ConsiderationOpportunity/document`, { ...{ opp_number: deal_id } });
}

View File

@ -35,7 +35,7 @@ export default async function handler(req, res)
console.log("client_jwt_decoded", client_jwt_decoded); console.log("client_jwt_decoded", client_jwt_decoded);
console.log("crm_jwt", crm_jwt); console.log("crm_jwt", crm_jwt);
const url = `${ process.env.CRM_API_HOST }/lk/ConsiderationOpportunity`; const url = `${ process.env.CRM_API_HOST }/lk/ConsiderationOpportunity/`;
console.log({ url }); console.log({ url });
try try

View File

@ -1,4 +1,17 @@
/* /*
2.7.2 - Метод получения списка Предложений по Лизинговой сделке в CRM 2.7.2 - Метод получения списка Предложений по Лизинговой сделке в CRM
GET /lk/ConsiderationOpportunity/quote GET /lk/ConsiderationOpportunity/quote
*/ */
import CRMRequestGet from '../../../lib/CRMRequestGet';
export default async function handler(req, res)
{
console.log("API", "DEALS", "offers");
console.log(req.body);
console.log("-".repeat(50));
const { deal_id } = req.body;
await CRMRequestGet(req, res, `${ process.env.CRM_API_HOST }/lk/ConsiderationOpportunity/quote`, { ...{ opp_number: deal_id } });
}

View File

@ -277,269 +277,267 @@ class IndexPage extends React.Component
console.log("contracts", contracts) console.log("contracts", contracts)
console.log("company", company) console.log("company", company)
return ( return (
<React.Fragment> <React.Fragment>
<Head> <Head>
<title>ЛК Эволюция автолизинга</title> <title>ЛК Эволюция автолизинга</title>
<meta name="description" content="ЛК Эволюция автолизинга" /> <meta name="description" content="ЛК Эволюция автолизинга" />
</Head> </Head>
<Header {...this.props} /> <Header {...this.props} />
<AccountLayout> <AccountLayout>
<div className="title_wrapper"> <div className="title_wrapper">
<div className="left"> <div className="left">
<h1 className="section_title">Личный кабинет</h1> <h1 className="section_title">Личный кабинет</h1>
</div>
<div className="right">
<Company company={company} {...this.props} />
</div>
</div>
<AnnouncementsList />
{ contracts !== null && contracts.length > 0 && company.questionnaire_status === "need_to_fill" && (
<div className="questionnaire message notify" style={{ marginLeft: "0" }}>
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z"
fill="white"
/>
</svg>
<p>
<b>Уточните данные</b>
Требуется уточнить данные в анкете клиента
</p>
<button className="button" onClick={this._handle_onQuestionnaire}>
Подробнее
</button>
</div>
)}
{/*}
<DealsStatus />
{*/}
{ contracts !== null && contracts.length > 0 && (
<>
<div>
<p className="contracts_list_title">Список договоров</p>
</div> </div>
<div className="contract_search"> <div className="right">
<form <Company company={company} {...this.props} />
onSubmit={(event) => { </div>
event.preventDefault() </div>
}}
> <AnnouncementsList />
<div className="form_field">
<input { contracts !== null && contracts.length > 0 && company.questionnaire_status === "need_to_fill" && (
type="search" <div className="questionnaire message notify" style={{ marginLeft: "0" }}>
value={search} <svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
placeholder="Поиск" <path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white" />
onChange={(event) => { </svg>
this._handle_onChange_search(event.target.value) <p>
}} <b>Уточните данные</b>
/> Требуется уточнить данные в анкете клиента
</div> </p>
<div className="form_field"> <button className="button" onClick={this._handle_onQuestionnaire}>
{/* Подробнее
<input type={ date_from_type } id="date_from" className="date_input" value="" placeholder="Дата договора от" onFocus={ () => this.setState({ date_from_type: "date" }) } onBlur={ () => { this.setState({ date_from_type: "text" }) } } onChange={ (date) => { </button>
this._handle_onChange_date_from(date); </div>
} }/> ) }
<label htmlFor="date_from">Дата<br/>договора от</label>
*/} {/*}{*/}
<DateInput <DealsStatus questionnaire_status={ company.questionnaire_status }/>
placeholder="Дата договора от" {/*}{*/}
id={"date_from"}
onChange={(date) => this.setState({ date_from: date })} { contracts !== null && contracts.length > 0 && (
/> <>
</div> <div>
<div className="form_field"> <p className="contracts_list_title">Список договоров</p>
{/*<input type={ date_to_type } id="date_for" className="date_input" value="" placeholder="Дата договора по" onFocus={ () => this.setState({ date_from_type: "date" }) } onBlur={ () => { this.setState({ date_from_type: "text" }) } } onChange={ (date) => { </div>
this._handle_onChange_date_to(date); <div className="contract_search">
} }/> <form
<label htmlFor="date_for">Дата<br/>договора по</label>*/} onSubmit={(event) => {
<DateInput event.preventDefault()
placeholder="Дата договора по" }}
id={"date_to"}
onChange={(date) => this.setState({ date_to: date })}
/>
</div>
<button
className="button"
disabled={search !== "" || date_from !== "" || date_to !== "" ? false : true}
onClick={this._handle_onSearch}
> >
Поиск <div className="form_field">
</button> <input
</form> type="search"
</div> value={search}
</> placeholder="Поиск"
)} onChange={(event) => {
{ loading ? ( this._handle_onChange_search(event.target.value)
<div }}
className="table_row table_header" />
style={{ minHeight: 450, display: "flex", justifyContent: "center", alignItems: "center" }}
>
<SpinnerCircular
size={90}
thickness={51}
speed={100}
color="rgba(28, 1, 169, 1)"
secondaryColor="rgba(236, 239, 244, 1)"
/>
</div>
) : (
<React.Fragment>
{contracts === null || contracts.length === 0 ? (
this._renderQuestionnaireStatus()
) : (
<div className="contract_table">
<div className="table_row table_header">
<div className={`table_cell caret ${sort_number === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_number}>Номер договора</div>
<div className={`table_cell caret ${sort_date === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_date} >Дата договора</div>
<div className="table_cell">Автомобиль</div>
<div className="table_cell">Гос.номер / VIN</div>
<div className={`table_cell caret ${sort_status === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_status}>Статус</div>
<div className="table_cell">Следующий платеж</div>
<div className="table_cell">Дополнительные услуги</div>
</div>
{ contracts !== undefined && contracts !== null && (
<>
{contracts.length > 0 ? ( contracts.map((contract, index) => (
<Link href={`/contract/${contract.number}/payments`} key={index}>
<div className="table_row" key={index} style={{ cursor: "pointer" }}>
<div className="table_cell">
<a>{ contract.number }</a>
</div>
<div className="table_cell">{ moment(contract.date).format("DD.MM.YYYY") }</div>
<div className="table_cell">
{ contract.car?.brand?.name } { contract.car?.model?.name }
</div>
<div className="table_cell">
{ contract.car?.reg_number !== null ? contract.car?.reg_number : "Без рег. номера" }
<span>{ contract.car?.vin_number }</span>
</div>
<div className="table_cell">
<p className={contract_status[contract.status]}>{contract.status}</p>
{ contract.debt_leasing !== undefined && contract.debt_leasing !== null && parseFloat(contract.debt_leasing) > 0 && (
<p className="contract_debt">
<span>Задолжность:</span>
{numeral(contract.debt_leasing).format(" ., ")}&nbsp;
</p>
) }
{ contract.debt_penalty_fee !== undefined && contract.debt_penalty_fee !== null && parseFloat(contract.debt_penalty_fee) > 0 && (
<p className="contract_debt">
<span>Пени:</span>
{numeral(contract.debt_penalty_fee).format(" ., ")}&nbsp;
</p>
) }
</div>
<div className="table_cell">
{ contract.current_payment_date !== null ? (
<>
{moment(contract.current_payment_date).format("DD.MM.YYYY")}
<b className="price" style={{ whiteSpace: "nowrap" }}>
{numeral(contract.current_payment_amount).format(" ., ")}&nbsp;
</b>
</>
) : ( "-" ) }
</div>
<div className="table_cell">
<div className="service_list">
{ contract.telematics_exists && (
<i title="Телематика" data-additional-service="1" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#telematic`)
}}
/>
) }
{ contract.rat_exists && (
<i title="РАТ" data-additional-service="2" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#ratcard`)
}}
/>
) }
{ contract.gibddreg_exists && (
<i title="Регистрация в ГИБДД" data-additional-service="3" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#registration`)
}}
/>
) }
{ contract.fuelcard_exists && (
<i title="Топливные карты" data-additional-service="4" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#fuelcards`)
}}
/>
) }
{contract.kasko_exists && (
<i title="КАСКО" data-additional-service="5" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.osago_exists && (
<i title="ОСАГО" data-additional-service="6" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.nsib_exists && (
<i title="НСИБ" data-additional-service="7" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.fingap_exists && (
<i title="Safe Finance" data-additional-service="8" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
</div>
</div>
</div> </div>
</Link> <div className="form_field">
)) {/*
<input type={ date_from_type } id="date_from" className="date_input" value="" placeholder="Дата договора от" onFocus={ () => this.setState({ date_from_type: "date" }) } onBlur={ () => { this.setState({ date_from_type: "text" }) } } onChange={ (date) => {
this._handle_onChange_date_from(date);
} }/>
<label htmlFor="date_from">Дата<br/>договора от</label>
*/}
<DateInput
placeholder="Дата договора от"
id={"date_from"}
onChange={(date) => this.setState({ date_from: date })}
/>
</div>
<div className="form_field">
{/*<input type={ date_to_type } id="date_for" className="date_input" value="" placeholder="Дата договора по" onFocus={ () => this.setState({ date_from_type: "date" }) } onBlur={ () => { this.setState({ date_from_type: "text" }) } } onChange={ (date) => {
this._handle_onChange_date_to(date);
} }/>
<label htmlFor="date_for">Дата<br/>договора по</label>*/}
<DateInput
placeholder="Дата договора по"
id={"date_to"}
onChange={(date) => this.setState({ date_to: date })}
/>
</div>
<button
className="button"
disabled={search !== "" || date_from !== "" || date_to !== "" ? false : true}
onClick={this._handle_onSearch}
>
Поиск
</button>
</form>
</div>
</>
) }
{ loading ? (
<div
className="table_row table_header"
style={{ minHeight: 450, display: "flex", justifyContent: "center", alignItems: "center" }}
>
<SpinnerCircular
size={90}
thickness={51}
speed={100}
color="rgba(28, 1, 169, 1)"
secondaryColor="rgba(236, 239, 244, 1)"
/>
</div>
) : (
<React.Fragment>
{ contracts === null || contracts.length === 0 ? (
this._renderQuestionnaireStatus()
) : ( ) : (
<div className="table_row"> <div className="contract_table">
<div className="table_cell">-</div> <div className="table_row table_header">
<div className="table_cell">-</div> <div className={`table_cell caret ${sort_number === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_number}>Номер договора</div>
<div className="table_cell">-</div> <div className={`table_cell caret ${sort_date === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_date} >Дата договора</div>
<div className="table_cell">-</div> <div className="table_cell">Автомобиль</div>
<div className="table_cell">-</div> <div className="table_cell">Гос.номер / VIN</div>
<div className="table_cell">-</div> <div className={`table_cell caret ${sort_status === "asc" ? "reverse" : ""}`} onClick={this._handle_onChangeSort_status}>Статус</div>
<div className="table_cell">-</div> <div className="table_cell">Следующий платеж</div>
<div className="table_cell">Дополнительные услуги</div>
</div>
{ contracts !== undefined && contracts !== null && (
<>
{contracts.length > 0 ? ( contracts.map((contract, index) => (
<Link href={`/contract/${contract.number}/payments`} key={index}>
<div className="table_row" key={index} style={{ cursor: "pointer" }}>
<div className="table_cell">
<a>{ contract.number }</a>
</div>
<div className="table_cell">{ moment(contract.date).format("DD.MM.YYYY") }</div>
<div className="table_cell">
{ contract.car?.brand?.name } { contract.car?.model?.name }
</div>
<div className="table_cell">
{ contract.car?.reg_number !== null ? contract.car?.reg_number : "Без рег. номера" }
<span>{ contract.car?.vin_number }</span>
</div>
<div className="table_cell">
<p className={contract_status[contract.status]}>{contract.status}</p>
{ contract.debt_leasing !== undefined && contract.debt_leasing !== null && parseFloat(contract.debt_leasing) > 0 && (
<p className="contract_debt">
<span>Задолжность:</span>
{numeral(contract.debt_leasing).format(" ., ")}&nbsp;
</p>
) }
{ contract.debt_penalty_fee !== undefined && contract.debt_penalty_fee !== null && parseFloat(contract.debt_penalty_fee) > 0 && (
<p className="contract_debt">
<span>Пени:</span>
{numeral(contract.debt_penalty_fee).format(" ., ")}&nbsp;
</p>
) }
</div>
<div className="table_cell">
{ contract.current_payment_date !== null ? (
<>
{moment(contract.current_payment_date).format("DD.MM.YYYY")}
<b className="price" style={{ whiteSpace: "nowrap" }}>
{numeral(contract.current_payment_amount).format(" ., ")}&nbsp;
</b>
</>
) : ( "-" ) }
</div>
<div className="table_cell">
<div className="service_list">
{ contract.telematics_exists && (
<i title="Телематика" data-additional-service="1" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#telematic`)
}}
/>
) }
{ contract.rat_exists && (
<i title="РАТ" data-additional-service="2" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#ratcard`)
}}
/>
) }
{ contract.gibddreg_exists && (
<i title="Регистрация в ГИБДД" data-additional-service="3" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#registration`)
}}
/>
) }
{ contract.fuelcard_exists && (
<i title="Топливные карты" data-additional-service="4" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#fuelcards`)
}}
/>
) }
{contract.kasko_exists && (
<i title="КАСКО" data-additional-service="5" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.osago_exists && (
<i title="ОСАГО" data-additional-service="6" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.nsib_exists && (
<i title="НСИБ" data-additional-service="7" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
{ contract.fingap_exists && (
<i title="Safe Finance" data-additional-service="8" onClick={(event) => {
event.stopPropagation()
event.preventDefault()
this._handle_onService(`/contract/${contract.number}/services#insurance`)
}}
/>
) }
</div>
</div>
</div>
</Link>
))
) : (
<div className="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 className="table_cell">-</div>
</div>
)}
</>
)}
</div> </div>
)} )}
</> </React.Fragment>
)} ) }
</div> { !all && (
)} <Pagination
</React.Fragment> page={page}
)} pages={pages}
{!all && ( onPage={this._handle_onPage}
<Pagination onAll={this._handle_onAll}
page={page} all={all}
pages={pages} showAll={true}
onPage={this._handle_onPage} />
onAll={this._handle_onAll} ) }
all={all}
showAll={true}
/>
)}
</AccountLayout> </AccountLayout>
<Footer /> <Footer />
</React.Fragment> </React.Fragment>
@ -557,29 +555,37 @@ function mapStateToProps(state, ownProps)
} }
} }
export const getServerSideProps = reduxWrapper.getServerSideProps((store) => async ({ req, res, query }) => { export const getServerSideProps = reduxWrapper.getServerSideProps((store) => async ({ req, res, query }) =>
let props = {} {
let props = {}
if (req.headers.cookie !== undefined) { if (req.headers.cookie !== undefined)
const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : "") {
const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : "")
if (cookies.jwt === undefined || cookies.jwt === null) { if (cookies.jwt === undefined || cookies.jwt === null)
res.statusCode = 302 {
res.setHeader("Location", `/login`) res.statusCode = 302
} else { res.setHeader("Location", `/login`)
//const tokenValid = await checkToken(cookies.jwt); }
const tokenValid = true else
if (!tokenValid) { {
res.statusCode = 302 //const tokenValid = await checkToken(cookies.jwt);
res.setHeader("Location", `/login`) const tokenValid = true
} if (!tokenValid)
} {
} else { res.statusCode = 302
res.statusCode = 302 res.setHeader("Location", `/login`)
res.setHeader("Location", `/login`) }
} }
}
else
{
res.statusCode = 302
res.setHeader("Location", `/login`)
}
return { props: props } return { props: props }
}) })
export default withRouter(connect(mapStateToProps)(IndexPage)) export default withRouter(connect(mapStateToProps)(IndexPage))

View File

@ -17,6 +17,7 @@ import InnerMenu from "./components/InnerMenu";
import SuccessMessage from "./components/SuccessMessage"; import SuccessMessage from "./components/SuccessMessage";
import AccountLayout from "../components/Layout/Account"; import AccountLayout from "../components/Layout/Account";
import TemplateFile from "./components/TemplateFile"; import TemplateFile from "./components/TemplateFile";
import FileDropzone from "../../components/FileDropzone";
import { import {
getSupportThemes, getSupportThemes,
@ -26,59 +27,6 @@ import {
sendAppealAttachments sendAppealAttachments
} from "../../actions"; } from "../../actions";
const LIMIT = 10000000;
const LIMIT_FILES = 10;
class FileDropzone extends React.Component
{
constructor(props)
{
super(props);
this.state = {};
}
render()
{
const { files, onAddFile, onDeleteFile } = this.props;
return (
<>
{ files.length > 0 && (
<div className="column">
<div className="column_text_block">
<p><b>Приложенные файлы ({ files.length }/{ LIMIT_FILES })</b></p>
{ files.map((file, index) => (
<p key={ index }>{ file.size > LIMIT && (<span style={{ color: "#A8026B", }}>Ошибка, превышен допустимый размер файла в 10 мб.</span>) } { file.name } - { parseFloat(file.size / 1000000).toFixed(file.size < 100000 ? 3 : 2) } мб. <small style={{ color: "#A8026B", textDecoration: "underline", cursor: "pointer" }} onClick={ () => onDeleteFile(file.name) }>[ удалить ]</small></p>
)) }
</div>
</div>
) }
<div className="column">
<div className="column_text_block">
<p style={{ color: "#999", fontStyle: "italic" }}>Вы можете приложить до 10 файлов, максимальный размер одного файла: 10 мегабайт.</p>
</div>
</div>
{ files.length < LIMIT_FILES && (
<Dropzone onDrop={ (acceptedFiles) => onAddFile(acceptedFiles) } maxFiles={ LIMIT_FILES }>
{ ({getRootProps, getInputProps}) => (
<div className="file_upload dropzone" { ...getRootProps() }>
<div className="files"></div>
<div>
<p data-sm-text="Выберите файлы">
<span>Перенесите файлы на экран для быстрой загрузки или выберите файл с компьютера </span>
</p>
<label htmlFor="" className="button button-blue">Загрузить файл</label>
</div>
<input { ...getInputProps() } />
</div>
) }
</Dropzone>
) }
</>
)
}
}
class SupportRequestPage extends React.Component class SupportRequestPage extends React.Component
{ {
constructor(props) { constructor(props) {

View File

@ -0,0 +1,59 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<path d="M32.5561 3.62981L10.2643 0.888874C9.16869 0.754161 8.17111 1.53255 8.0354 2.62804L4.11851 34.2461C3.98211 35.347 4.76794 36.3487 5.86976 36.4783L28.3498 39.1217C29.4448 39.2505 30.4374 38.4689 30.5691 37.3743L32.6144 20.3715C32.7014 19.6482 33.1895 19.0361 33.8752 18.7902C34.5641 18.5433 35.0532 17.9268 35.1371 17.1998L36.1389 8.51953C36.2614 7.45813 35.528 6.48789 34.4735 6.31622L34.2508 6.27997L34.3 5.83387C34.4199 4.74573 33.6426 3.76341 32.5561 3.62981Z" fill="#8E94A7"/>
<g filter="url(#filter0_d_5582_80101)">
<path d="M4.71409 31.139L14.2396 1.81738L35.2602 8.48708L25.7606 37.8932L4.71409 31.139Z" fill="white"/>
</g>
<g filter="url(#filter1_d_5582_80101)">
<path d="M6.15394 33.9674L11.2047 2.86088L33.48 6.32101L28.4687 37.5088L6.15394 33.9674Z" fill="white"/>
</g>
<g filter="url(#filter2_d_5582_80101)">
<path d="M8.01172 34.332L8.77121 3.51123L30.821 3.90323L30.1105 34.7975L8.01172 34.332Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8287 19.5162C10.7475 19.5162 10.6817 19.582 10.6817 19.6632V21.8191C10.6817 21.9003 10.7475 21.9661 10.8287 21.9661H13.0827C13.1639 21.9661 13.2297 21.9003 13.2297 21.8191V19.6632C13.2297 19.582 13.1639 19.5162 13.0827 19.5162H10.8287ZM10.3877 19.6632C10.3877 19.4196 10.5851 19.2222 10.8287 19.2222H13.0827C13.3262 19.2222 13.5237 19.4196 13.5237 19.6632V21.8191C13.5237 22.0627 13.3262 22.2601 13.0827 22.2601H10.8287C10.5851 22.2601 10.3877 22.0627 10.3877 21.8191V19.6632Z" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.894 20.2608L11.7629 21.5212L11.1152 20.8304L11.4012 20.5623L11.7566 20.9414L12.6023 19.999L12.894 20.2608Z" fill="#8E94A7"/>
<rect x="15" y="19" width="11" height="1" rx="0.5" fill="#8E94A7"/>
<rect x="15" y="22" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<rect x="15" y="24" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8287 9.51617C10.7475 9.51617 10.6817 9.58198 10.6817 9.66316V11.8191C10.6817 11.9003 10.7475 11.9661 10.8287 11.9661H13.0827C13.1639 11.9661 13.2297 11.9003 13.2297 11.8191V9.66316C13.2297 9.58198 13.1639 9.51617 13.0827 9.51617H10.8287ZM10.3877 9.66316C10.3877 9.41961 10.5851 9.22217 10.8287 9.22217H13.0827C13.3262 9.22217 13.5237 9.41961 13.5237 9.66316V11.8191C13.5237 12.0627 13.3262 12.2601 13.0827 12.2601H10.8287C10.5851 12.2601 10.3877 12.0627 10.3877 11.8191V9.66316Z" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.894 10.2608L11.7629 11.5212L11.1152 10.8304L11.4012 10.5623L11.7566 10.9414L12.6023 9.99902L12.894 10.2608Z" fill="#8E94A7"/>
<rect x="15" y="9" width="11" height="1" rx="0.5" fill="#8E94A7"/>
<rect x="15" y="12" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<rect x="15" y="14" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<path d="M10.5352 31.686L17.1746 31.9065" stroke="#8E94A7" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M25.1611 31.3433C25.567 31.3433 25.896 31.0142 25.896 30.6083C25.896 30.2024 25.567 29.8733 25.1611 29.8733C24.7551 29.8733 24.4261 30.2024 24.4261 30.6083C24.4261 31.0142 24.7551 31.3433 25.1611 31.3433ZM25.1611 31.9803C25.9188 31.9803 26.533 31.366 26.533 30.6083C26.533 29.8506 25.9188 29.2363 25.1611 29.2363C24.4033 29.2363 23.7891 29.8506 23.7891 30.6083C23.7891 31.366 24.4033 31.9803 25.1611 31.9803Z" fill="#8E94A7"/>
<path opacity="0.7" d="M26.239 30.6083C26.239 30.0129 25.7564 29.5303 25.161 29.5303M25.161 31.6863C24.5656 31.6863 24.083 31.2036 24.083 30.6083" stroke="white" stroke-width="0.5"/>
<path opacity="0.7" d="M25.8483 29.1991C25.0699 28.8195 24.1312 29.1428 23.7517 29.9212M26.5704 31.2957C26.1909 32.074 25.2522 32.3973 24.4738 32.0178" stroke="#8E94A7" stroke-width="0.5"/>
<defs>
<filter id="filter0_d_5582_80101" x="3.71387" y="0.817383" width="32.5459" height="38.0757" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80101"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80101" result="shape"/>
</filter>
<filter id="filter1_d_5582_80101" x="5.1543" y="1.86084" width="29.3262" height="36.6479" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80101"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80101" result="shape"/>
</filter>
<filter id="filter2_d_5582_80101" x="7.01172" y="2.51123" width="24.8096" height="33.2861" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80101"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80101" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,59 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<path d="M32.5561 3.62981L10.2643 0.888874C9.16869 0.754161 8.17111 1.53255 8.0354 2.62804L4.11851 34.2461C3.98211 35.347 4.76794 36.3487 5.86976 36.4783L28.3498 39.1217C29.4448 39.2505 30.4374 38.4689 30.5691 37.3743L32.6144 20.3715C32.7014 19.6482 33.1895 19.0361 33.8752 18.7902C34.5641 18.5433 35.0532 17.9268 35.1371 17.1998L36.1389 8.51953C36.2614 7.45813 35.528 6.48789 34.4735 6.31622L34.2508 6.27997L34.3 5.83387C34.4199 4.74573 33.6426 3.76341 32.5561 3.62981Z" fill="#1C01A9"/>
<g filter="url(#filter0_d_5582_79671)">
<path d="M4.71409 31.139L14.2396 1.81738L35.2602 8.48708L25.7606 37.8932L4.71409 31.139Z" fill="white"/>
</g>
<g filter="url(#filter1_d_5582_79671)">
<path d="M6.15394 33.9674L11.2047 2.86088L33.48 6.32101L28.4687 37.5088L6.15394 33.9674Z" fill="white"/>
</g>
<g filter="url(#filter2_d_5582_79671)">
<path d="M8.01172 34.332L8.77121 3.51123L30.821 3.90323L30.1105 34.7975L8.01172 34.332Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8287 19.5162C10.7475 19.5162 10.6817 19.582 10.6817 19.6632V21.8191C10.6817 21.9003 10.7475 21.9661 10.8287 21.9661H13.0827C13.1639 21.9661 13.2297 21.9003 13.2297 21.8191V19.6632C13.2297 19.582 13.1639 19.5162 13.0827 19.5162H10.8287ZM10.3877 19.6632C10.3877 19.4196 10.5851 19.2222 10.8287 19.2222H13.0827C13.3262 19.2222 13.5237 19.4196 13.5237 19.6632V21.8191C13.5237 22.0627 13.3262 22.2601 13.0827 22.2601H10.8287C10.5851 22.2601 10.3877 22.0627 10.3877 21.8191V19.6632Z" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.894 20.2608L11.7629 21.5212L11.1152 20.8304L11.4012 20.5623L11.7566 20.9414L12.6023 19.999L12.894 20.2608Z" fill="#A8026B"/>
<rect x="15" y="19" width="11" height="1" rx="0.5" fill="#1C01A9"/>
<rect x="15" y="22" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<rect x="15" y="24" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8287 9.51617C10.7475 9.51617 10.6817 9.58198 10.6817 9.66316V11.8191C10.6817 11.9003 10.7475 11.9661 10.8287 11.9661H13.0827C13.1639 11.9661 13.2297 11.9003 13.2297 11.8191V9.66316C13.2297 9.58198 13.1639 9.51617 13.0827 9.51617H10.8287ZM10.3877 9.66316C10.3877 9.41961 10.5851 9.22217 10.8287 9.22217H13.0827C13.3262 9.22217 13.5237 9.41961 13.5237 9.66316V11.8191C13.5237 12.0627 13.3262 12.2601 13.0827 12.2601H10.8287C10.5851 12.2601 10.3877 12.0627 10.3877 11.8191V9.66316Z" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.894 10.2608L11.7629 11.5212L11.1152 10.8304L11.4012 10.5623L11.7566 10.9414L12.6023 9.99902L12.894 10.2608Z" fill="#A8026B"/>
<rect x="15" y="9" width="11" height="1" rx="0.5" fill="#1C01A9"/>
<rect x="15" y="12" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<rect x="15" y="14" width="13" height="0.5" rx="0.25" fill="#8E94A7"/>
<path d="M10.5352 31.686L17.1746 31.9065" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M25.1611 31.3433C25.567 31.3433 25.896 31.0142 25.896 30.6083C25.896 30.2024 25.567 29.8733 25.1611 29.8733C24.7551 29.8733 24.4261 30.2024 24.4261 30.6083C24.4261 31.0142 24.7551 31.3433 25.1611 31.3433ZM25.1611 31.9803C25.9188 31.9803 26.533 31.366 26.533 30.6083C26.533 29.8506 25.9188 29.2363 25.1611 29.2363C24.4033 29.2363 23.7891 29.8506 23.7891 30.6083C23.7891 31.366 24.4033 31.9803 25.1611 31.9803Z" fill="#1C01A9"/>
<path opacity="0.7" d="M26.239 30.6083C26.239 30.0129 25.7564 29.5303 25.161 29.5303M25.161 31.6863C24.5656 31.6863 24.083 31.2036 24.083 30.6083" stroke="white" stroke-width="0.5"/>
<path opacity="0.7" d="M25.8483 29.1991C25.0699 28.8195 24.1312 29.1428 23.7517 29.9212M26.5704 31.2957C26.1909 32.074 25.2522 32.3973 24.4738 32.0178" stroke="#1C01A9" stroke-width="0.5"/>
<defs>
<filter id="filter0_d_5582_79671" x="3.71387" y="0.817383" width="32.5459" height="38.0757" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79671"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79671" result="shape"/>
</filter>
<filter id="filter1_d_5582_79671" x="5.1543" y="1.86084" width="29.3262" height="36.6479" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79671"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79671" result="shape"/>
</filter>
<filter id="filter2_d_5582_79671" x="7.01172" y="2.51123" width="24.8096" height="33.2861" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79671"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79671" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,91 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 2.16272C27.7085 -0.104066 23.7626 1.79892 17.9417 1.79892C11.7011 1.79892 6.83168 -0.775697 3.16564 0.875421C-0.500405 2.52654 -0.6963 7.6478 1.12273 10.8941C2.94176 14.1403 4.62086 17.5545 3.16564 22.6478C1.71041 27.7411 2.88579 30.1758 6.43989 33.7858C9.99399 37.3959 21.3839 32.9183 28.9119 31.687C36.4399 30.4556 38.5947 27.0135 38.7066 23.3474C38.8186 19.6814 35.7962 16.5191 34.9567 13.1329C34.1171 9.74668 34.0331 4.42951 30.8708 2.16272Z" fill="#EDEFF5"/>
<rect x="8.54102" y="2.2583" width="20.4275" height="34.8387" rx="2" fill="#8E94A7"/>
<g filter="url(#filter0_i_5582_80152)">
<path d="M11.0596 6.5957H26.3102V11.4927H11.0596V6.5957Z" fill="#8E94A7"/>
</g>
<g filter="url(#filter1_i_5582_80152)">
<rect x="12.3184" y="7.71533" width="12.7322" height="2.65838" fill="#EDEFF5"/>
</g>
<circle opacity="0.2" cx="11.9693" cy="15.2002" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="14.6407" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="14.9205" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="15.2002" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="14.6407" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="14.9205" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<path d="M2.48044 1.56448C2.71586 2.82436 3.70147 3.80997 4.96135 4.04539C3.69274 4.26411 2.69916 5.25769 2.48044 6.5263C2.27825 5.24919 1.27663 4.24758 -0.000467344 4.04539C1.26814 3.82666 2.26171 2.83309 2.48044 1.56448Z" fill="#EDEFF5"/>
<path d="M5.43455 10.105C5.56763 10.8172 6.12476 11.3743 6.83692 11.5074C6.11983 11.631 5.55819 12.1926 5.43455 12.9097C5.32026 12.1878 4.75408 11.6217 4.03218 11.5074C4.74928 11.3837 5.31092 10.8221 5.43455 10.105Z" fill="#EDEFF5"/>
<path d="M35.749 20.8316C35.8821 21.5437 36.4392 22.1009 37.1514 22.2339C36.4343 22.3576 35.8726 22.9192 35.749 23.6363C35.6347 22.9144 35.0685 22.3482 34.3466 22.2339C35.0637 22.1103 35.6254 21.5487 35.749 20.8316Z" fill="#EDEFF5"/>
<path d="M36.2158 34.357C36.3489 35.0691 36.906 35.6262 37.6182 35.7593C36.9011 35.883 36.3394 36.4446 36.2158 37.1617C36.1015 36.4398 35.5353 35.8736 34.8134 35.7593C35.5305 35.6357 36.0922 35.074 36.2158 34.357Z" fill="#EDEFF5"/>
<circle cx="39.089" cy="30.237" r="0.544112" fill="#EDEFF5"/>
<defs>
<filter id="filter0_i_5582_80152" x="11.0596" y="6.5957" width="15.251" height="4.89697" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="10"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5582_80152"/>
</filter>
<filter id="filter1_i_5582_80152" x="12.3184" y="7.71533" width="12.7324" height="2.6582" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5582_80152"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,91 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 2.16272C27.7085 -0.104066 23.7626 1.79892 17.9417 1.79892C11.7011 1.79892 6.83168 -0.775697 3.16564 0.875421C-0.500405 2.52654 -0.6963 7.6478 1.12273 10.8941C2.94176 14.1403 4.62086 17.5545 3.16564 22.6478C1.71041 27.7411 2.88579 30.1758 6.43989 33.7858C9.99399 37.3959 21.3839 32.9183 28.9119 31.687C36.4399 30.4556 38.5947 27.0135 38.7066 23.3474C38.8186 19.6814 35.7962 16.5191 34.9567 13.1329C34.1171 9.74668 34.0331 4.42951 30.8708 2.16272Z" fill="#EDEFF5"/>
<rect x="8.54102" y="2.2583" width="20.4275" height="34.8387" rx="2" fill="#1C01A9"/>
<g filter="url(#filter0_i_5582_79674)">
<path d="M11.0596 6.5957H26.3102V11.4927H11.0596V6.5957Z" fill="#1C01A9"/>
</g>
<g filter="url(#filter1_i_5582_79674)">
<rect x="12.3184" y="7.71533" width="12.7322" height="2.65838" fill="#2F80ED"/>
</g>
<circle opacity="0.2" cx="11.9693" cy="15.2002" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="14.6407" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="14.9205" r="1.04936" fill="#A8026B"/>
<circle opacity="0.2" cx="11.9693" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="11.9693" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="11.9693" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="11.9693" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="15.2002" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="14.6407" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="14.9205" r="1.04936" fill="#A8026B"/>
<circle opacity="0.2" cx="16.4458" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="16.4458" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="16.4458" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="16.4458" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="20.9234" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="20.9234" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="20.9234" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="19.6778" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="19.1182" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="19.398" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="24.1548" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="23.5953" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="23.875" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="28.6319" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="28.0723" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="28.3521" r="1.04936" fill="#EDEFF5"/>
<circle opacity="0.2" cx="25.4009" cy="33.1094" r="1.04936" fill="#0C0C0C"/>
<circle opacity="0.2" cx="25.4009" cy="32.5498" r="1.04936" fill="white"/>
<circle cx="25.4009" cy="32.8296" r="1.04936" fill="#EDEFF5"/>
<path d="M2.48044 1.56448C2.71586 2.82436 3.70147 3.80997 4.96135 4.04539C3.69274 4.26411 2.69916 5.25769 2.48044 6.5263C2.27825 5.24919 1.27663 4.24758 -0.000467344 4.04539C1.26814 3.82666 2.26171 2.83309 2.48044 1.56448Z" fill="#2F80ED"/>
<path d="M5.43455 10.105C5.56763 10.8172 6.12476 11.3743 6.83692 11.5074C6.11983 11.631 5.55819 12.1926 5.43455 12.9097C5.32026 12.1878 4.75408 11.6217 4.03218 11.5074C4.74928 11.3837 5.31092 10.8221 5.43455 10.105Z" fill="#2F80ED"/>
<path d="M35.749 20.8316C35.8821 21.5437 36.4392 22.1009 37.1514 22.2339C36.4343 22.3576 35.8726 22.9192 35.749 23.6363C35.6347 22.9144 35.0685 22.3482 34.3466 22.2339C35.0637 22.1103 35.6254 21.5487 35.749 20.8316Z" fill="#2F80ED"/>
<path d="M36.2158 34.357C36.3489 35.0691 36.906 35.6262 37.6182 35.7593C36.9011 35.883 36.3394 36.4446 36.2158 37.1617C36.1015 36.4398 35.5353 35.8736 34.8134 35.7593C35.5305 35.6357 36.0922 35.074 36.2158 34.357Z" fill="#2F80ED"/>
<circle cx="39.089" cy="30.237" r="0.544112" fill="#2F80ED"/>
<defs>
<filter id="filter0_i_5582_79674" x="11.0596" y="6.5957" width="15.251" height="4.89697" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="10"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.33 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5582_79674"/>
</filter>
<filter id="filter1_i_5582_79674" x="12.3184" y="7.71533" width="12.7324" height="2.6582" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.56 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5582_79674"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,111 @@
<svg width="50" height="46" viewBox="0 0 50 46" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.8708 7.83997C30.7085 5.57318 26.7626 7.47616 20.9417 7.47616C14.7011 7.47616 9.83168 4.90155 6.16564 6.55267C2.49959 8.20378 2.3037 13.325 4.12273 16.5713C5.94176 19.8176 7.62086 23.2318 6.16564 28.325C4.71041 33.4183 5.88579 35.853 9.43989 39.4631C12.994 43.0732 24.3839 38.5955 31.9119 37.3642C39.4399 36.1329 41.5947 32.6907 41.7066 29.0247C41.8186 25.3586 38.7962 22.1963 37.9567 18.8101C37.1171 15.4239 37.0331 10.1068 33.8708 7.83997Z" fill="#EDEFF5"/>
<path d="M8.71192 39.8872L4.83402 26.955C4.47871 25.7701 5.03927 24.5029 6.15506 23.9688L10.9182 38.9387L8.71192 39.8872Z" fill="#8E94A7"/>
<g filter="url(#filter0_d_5582_80237)">
<path d="M27.6802 17.2016C27.7839 16.6577 28.3098 16.3016 28.8533 16.4072L36.4648 17.8863C36.7238 17.9366 36.9524 18.0873 37.1008 18.3054L38.4153 20.2373C38.5645 20.4565 38.6205 20.7259 38.571 20.9864L36.3364 32.7562C36.2331 33.3002 35.7076 33.6567 35.164 33.5515L25.9192 31.7628C25.378 31.6581 25.0236 31.1352 25.1268 30.5938L27.6802 17.2016Z" fill="white"/>
</g>
<rect x="29.1602" y="19.3223" width="3.06023" height="3.34271" transform="rotate(10.9501 29.1602 19.3223)" fill="#8E94A7"/>
<rect x="33.0195" y="20.0688" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 33.0195 20.0688)" fill="#8E94A7"/>
<rect x="32.7285" y="21.5708" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 32.7285 21.5708)" fill="#8E94A7"/>
<rect x="32.4385" y="23.0732" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 32.4385 23.0732)" fill="#8E94A7"/>
<rect x="28.29" y="23.8262" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 28.29 23.8262)" fill="#8E94A7"/>
<rect x="27.999" y="25.3281" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.999 25.3281)" fill="#8E94A7"/>
<rect x="27.708" y="26.8306" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.708 26.8306)" fill="#8E94A7"/>
<rect x="27.418" y="28.333" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.418 28.333)" fill="#8E94A7"/>
<g filter="url(#filter1_d_5582_80237)">
<path d="M36.4377 20.1508L36.8623 17.9561L38.6496 20.5872L36.4377 20.1508Z" fill="#8E94A7"/>
</g>
<g filter="url(#filter2_d_5582_80237)">
<path d="M17.0027 12.0035C17.0012 11.4499 17.4499 11.0004 18.0035 11.0008L25.7574 11.0071C26.0213 11.0073 26.2743 11.1118 26.4615 11.2977L28.119 12.9448C28.3071 13.1316 28.4133 13.3855 28.4142 13.6506L28.456 25.6307C28.4579 26.1843 28.0096 26.6342 27.456 26.6342H18.0397C17.4885 26.6342 17.0412 26.1881 17.0397 25.6369L17.0027 12.0035Z" fill="white"/>
</g>
<rect x="18.8584" y="13.8042" width="3.06023" height="3.34271" fill="#8E94A7"/>
<rect x="22.7891" y="13.8042" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="22.7891" y="15.3345" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="22.7891" y="16.8647" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="18.3916" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="19.9219" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="21.4517" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="22.9819" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<g filter="url(#filter3_d_5582_80237)">
<path d="M26.1611 13.2354V11L28.4157 13.2437L26.1611 13.2354Z" fill="#8E94A7"/>
</g>
<g filter="url(#filter4_d_5582_80237)">
<path d="M3.29864 19.688C3.13388 19.1595 3.42996 18.5976 3.95911 18.4347L11.3698 16.1534C11.622 16.0757 11.8946 16.1009 12.1282 16.2234L14.1979 17.3081C14.4327 17.4312 14.6091 17.6425 14.6882 17.8955L18.2621 29.3301C18.4273 29.8586 18.1317 30.4206 17.6027 30.5839L8.60548 33.3617C8.07879 33.5243 7.51983 33.23 7.35579 32.7038L3.29864 19.688Z" fill="white"/>
</g>
<rect x="5.60254" y="20.8613" width="3.06023" height="3.34271" transform="rotate(-17.1573 5.60254 20.8613)" fill="#8E94A7"/>
<rect x="9.35938" y="19.7017" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 9.35938 19.7017)" fill="#8E94A7"/>
<rect x="9.81055" y="21.1636" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 9.81055 21.1636)" fill="#8E94A7"/>
<rect x="10.2627" y="22.6255" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 10.2627 22.6255)" fill="#8E94A7"/>
<rect x="6.95801" y="25.2441" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 6.95801 25.2441)" fill="#8E94A7"/>
<rect x="7.40918" y="26.7061" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 7.40918 26.7061)" fill="#8E94A7"/>
<rect x="7.86035" y="28.168" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 7.86035 28.168)" fill="#8E94A7"/>
<rect x="8.31152" y="29.6304" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 8.31152 29.6304)" fill="#8E94A7"/>
<g filter="url(#filter5_d_5582_80237)">
<path d="M12.4133 18.1633L11.7539 16.0273L14.57 17.5061L12.4133 18.1633Z" fill="#8E94A7"/>
</g>
<path d="M20.8775 24.7318L19.496 22.6698C16.1831 22.6491 9.31804 22.6079 8.36128 22.6079C7.16533 22.6079 6.67045 23.6595 6.75293 24.2987C6.83541 24.9379 7.06223 27.103 7.18595 28.0722C7.30967 29.0413 8.15508 36.2376 8.40252 38.3615C8.64996 40.4853 9.45413 40.5678 10.3614 40.609C10.9905 40.6376 23.0976 40.627 31.4643 40.6147C33.4856 40.6117 35.1838 39.1012 35.4259 37.0944C35.9968 32.362 36.703 26.5144 36.7548 26.1133C36.8373 25.4741 36.5898 24.7318 35.2908 24.7318H20.8775Z" fill="#8E94A7" stroke="#8E94A7"/>
<circle cx="33.5172" cy="38.5265" r="4.24768" fill="#8E94A7"/>
<path d="M31.332 38.6501L33.3528 40.8152L36.3839 36.8149" stroke="white"/>
<defs>
<filter id="filter0_d_5582_80237" x="24.1094" y="15.3887" width="15.4795" height="19.1812" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
<filter id="filter1_d_5582_80237" x="25.4375" y="6.95605" width="24.2119" height="24.6313" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
<filter id="filter2_d_5582_80237" x="16.0029" y="10.001" width="13.4531" height="17.6333" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
<filter id="filter3_d_5582_80237" x="15.1611" y="0" width="24.2549" height="24.2437" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
<filter id="filter4_d_5582_80237" x="2.25293" y="15.1089" width="17.0547" height="19.2974" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
<filter id="filter5_d_5582_80237" x="0.753906" y="5.02734" width="24.8164" height="24.1357" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80237"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80237" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,111 @@
<svg width="50" height="46" viewBox="0 0 50 46" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.8708 7.83997C30.7085 5.57318 26.7626 7.47616 20.9417 7.47616C14.7011 7.47616 9.83168 4.90155 6.16564 6.55267C2.49959 8.20378 2.3037 13.325 4.12273 16.5713C5.94176 19.8176 7.62086 23.2318 6.16564 28.325C4.71041 33.4183 5.88579 35.853 9.43989 39.4631C12.994 43.0732 24.3839 38.5955 31.9119 37.3642C39.4399 36.1329 41.5947 32.6907 41.7066 29.0247C41.8186 25.3586 38.7962 22.1963 37.9567 18.8101C37.1171 15.4239 37.0331 10.1068 33.8708 7.83997Z" fill="#EDEFF5"/>
<path d="M8.71192 39.8872L4.83402 26.955C4.47871 25.7701 5.03927 24.5029 6.15506 23.9688L10.9182 38.9387L8.71192 39.8872Z" fill="#0C0C0C"/>
<g filter="url(#filter0_d_5582_79675)">
<path d="M27.6802 17.2016C27.7839 16.6577 28.3098 16.3016 28.8533 16.4072L36.4648 17.8863C36.7238 17.9366 36.9524 18.0873 37.1008 18.3054L38.4153 20.2373C38.5645 20.4565 38.6205 20.7259 38.571 20.9864L36.3364 32.7562C36.2331 33.3002 35.7076 33.6567 35.164 33.5515L25.9192 31.7628C25.378 31.6581 25.0236 31.1352 25.1268 30.5938L27.6802 17.2016Z" fill="white"/>
</g>
<rect x="29.1602" y="19.3223" width="3.06023" height="3.34271" transform="rotate(10.9501 29.1602 19.3223)" fill="#8E94A7"/>
<rect x="33.0195" y="20.0688" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 33.0195 20.0688)" fill="#8E94A7"/>
<rect x="32.7285" y="21.5708" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 32.7285 21.5708)" fill="#8E94A7"/>
<rect x="32.4385" y="23.0732" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(10.9501 32.4385 23.0732)" fill="#8E94A7"/>
<rect x="28.29" y="23.8262" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 28.29 23.8262)" fill="#8E94A7"/>
<rect x="27.999" y="25.3281" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.999 25.3281)" fill="#8E94A7"/>
<rect x="27.708" y="26.8306" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.708 26.8306)" fill="#8E94A7"/>
<rect x="27.418" y="28.333" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(10.9501 27.418 28.333)" fill="#8E94A7"/>
<g filter="url(#filter1_d_5582_79675)">
<path d="M36.4377 20.1508L36.8623 17.9561L38.6496 20.5872L36.4377 20.1508Z" fill="#2F80ED"/>
</g>
<g filter="url(#filter2_d_5582_79675)">
<path d="M17.0027 12.0035C17.0012 11.4499 17.4499 11.0004 18.0035 11.0008L25.7574 11.0071C26.0213 11.0073 26.2743 11.1118 26.4615 11.2977L28.119 12.9448C28.3071 13.1316 28.4133 13.3855 28.4142 13.6506L28.456 25.6307C28.4579 26.1843 28.0096 26.6342 27.456 26.6342H18.0397C17.4885 26.6342 17.0412 26.1881 17.0397 25.6369L17.0027 12.0035Z" fill="white"/>
</g>
<rect x="18.8584" y="13.8042" width="3.06023" height="3.34271" fill="#8E94A7"/>
<rect x="22.7891" y="13.8042" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="22.7891" y="15.3345" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="22.7891" y="16.8647" width="3.78998" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="18.3916" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="19.9219" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="21.4517" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<rect x="18.8594" y="22.9819" width="7.7212" height="0.282483" rx="0.141241" fill="#8E94A7"/>
<g filter="url(#filter3_d_5582_79675)">
<path d="M26.1611 13.2354V11L28.4157 13.2437L26.1611 13.2354Z" fill="#2F80ED"/>
</g>
<g filter="url(#filter4_d_5582_79675)">
<path d="M3.29864 19.688C3.13388 19.1595 3.42996 18.5976 3.95911 18.4347L11.3698 16.1534C11.622 16.0757 11.8946 16.1009 12.1282 16.2234L14.1979 17.3081C14.4327 17.4312 14.6091 17.6425 14.6882 17.8955L18.2621 29.3301C18.4273 29.8586 18.1317 30.4206 17.6027 30.5839L8.60548 33.3617C8.07879 33.5243 7.51983 33.23 7.35579 32.7038L3.29864 19.688Z" fill="white"/>
</g>
<rect x="5.60254" y="20.8613" width="3.06023" height="3.34271" transform="rotate(-17.1573 5.60254 20.8613)" fill="#8E94A7"/>
<rect x="9.35938" y="19.7017" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 9.35938 19.7017)" fill="#8E94A7"/>
<rect x="9.81055" y="21.1636" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 9.81055 21.1636)" fill="#8E94A7"/>
<rect x="10.2627" y="22.6255" width="3.78998" height="0.282483" rx="0.141241" transform="rotate(-17.1573 10.2627 22.6255)" fill="#8E94A7"/>
<rect x="6.95801" y="25.2441" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 6.95801 25.2441)" fill="#8E94A7"/>
<rect x="7.40918" y="26.7061" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 7.40918 26.7061)" fill="#8E94A7"/>
<rect x="7.86035" y="28.168" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 7.86035 28.168)" fill="#8E94A7"/>
<rect x="8.31152" y="29.6304" width="7.7212" height="0.282483" rx="0.141241" transform="rotate(-17.1573 8.31152 29.6304)" fill="#8E94A7"/>
<g filter="url(#filter5_d_5582_79675)">
<path d="M12.4133 18.1633L11.7539 16.0273L14.57 17.5061L12.4133 18.1633Z" fill="#2F80ED"/>
</g>
<path d="M20.8775 24.7318L19.496 22.6698C16.1831 22.6491 9.31804 22.6079 8.36128 22.6079C7.16533 22.6079 6.67045 23.6595 6.75293 24.2987C6.83541 24.9379 7.06223 27.103 7.18595 28.0722C7.30967 29.0413 8.15508 36.2376 8.40252 38.3615C8.64996 40.4853 9.45413 40.5678 10.3614 40.609C10.9905 40.6376 23.0976 40.627 31.4643 40.6147C33.4856 40.6117 35.1838 39.1012 35.4259 37.0944C35.9968 32.362 36.703 26.5144 36.7548 26.1133C36.8373 25.4741 36.5898 24.7318 35.2908 24.7318H20.8775Z" fill="#1C01A9" stroke="#1C01A9"/>
<circle cx="33.5172" cy="38.5265" r="4.24768" fill="#A8026B"/>
<path d="M31.332 38.6501L33.3528 40.8152L36.3839 36.8149" stroke="white"/>
<defs>
<filter id="filter0_d_5582_79675" x="24.1094" y="15.3887" width="15.4795" height="19.1812" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
<filter id="filter1_d_5582_79675" x="25.4375" y="6.95605" width="24.2119" height="24.6313" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
<filter id="filter2_d_5582_79675" x="16.0029" y="10.001" width="13.4531" height="17.6333" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
<filter id="filter3_d_5582_79675" x="15.1611" y="0" width="24.2549" height="24.2437" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
<filter id="filter4_d_5582_79675" x="2.25293" y="15.1089" width="17.0547" height="19.2974" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
<filter id="filter5_d_5582_79675" x="0.753906" y="5.02734" width="24.8164" height="24.1357" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="5.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79675"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79675" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,31 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_80385)">
<path d="M5.80762 4.95459C5.80762 3.85002 6.70305 2.95459 7.80762 2.95459H22.6125C23.1413 2.95459 23.6486 3.16403 24.0234 3.5371L32.364 11.8392C32.7411 12.2145 32.9531 12.7246 32.9531 13.2567V34.9829C32.9531 36.0875 32.0577 36.9829 30.9531 36.9829H7.80762C6.70305 36.9829 5.80762 36.0875 5.80762 34.9829V4.95459Z" fill="#8E94A7"/>
</g>
<rect x="10.2295" y="9.60352" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="13.2354" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="16.8672" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="20.4995" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="24.1313" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="27.7632" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="31.395" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="19.0156" y="20.3228" width="11.6129" height="2.25806" rx="1.12903" transform="rotate(45 19.0156 20.3228)" fill="white"/>
<rect x="12.5801" y="15.1611" width="11.0261" height="10.8958" rx="5.44788" fill="white"/>
<rect x="13.8701" y="16.4517" width="8.3871" height="8.3871" rx="4.19355" fill="#8E94A7"/>
<path d="M18.0638 19.0122C16.2492 19.0122 15.5234 20.6454 15.5234 20.6454C15.5234 20.6454 16.2492 22.2783 18.0638 22.2783C19.8783 22.2783 20.6041 20.6454 20.6041 20.6454C20.6041 20.6454 19.8783 19.0122 18.0638 19.0122Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.0635 21.5528C18.5646 21.5528 18.9708 21.1466 18.9708 20.6455C18.9708 20.1445 18.5646 19.7383 18.0635 19.7383C17.5624 19.7383 17.1562 20.1445 17.1562 20.6455C17.1562 21.1466 17.5624 21.5528 18.0635 21.5528Z" fill="white"/>
<path d="M23.4385 12.3696V2.95459L32.9254 12.3696H23.4385Z" fill="white"/>
<defs>
<filter id="filter0_d_5582_80385" x="4.80762" y="1.95459" width="29.1455" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80385"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80385" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,31 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_79676)">
<path d="M5.80762 4.95459C5.80762 3.85002 6.70305 2.95459 7.80762 2.95459H22.6125C23.1413 2.95459 23.6486 3.16403 24.0234 3.5371L32.364 11.8392C32.7411 12.2145 32.9531 12.7246 32.9531 13.2567V34.9829C32.9531 36.0875 32.0577 36.9829 30.9531 36.9829H7.80762C6.70305 36.9829 5.80762 36.0875 5.80762 34.9829V4.95459Z" fill="white"/>
</g>
<rect x="10.2295" y="9.60352" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="13.2354" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="16.8672" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="20.4995" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="24.1313" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="27.7632" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="31.395" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="19.0156" y="20.3228" width="11.6129" height="2.25806" rx="1.12903" transform="rotate(45 19.0156 20.3228)" fill="#1C01A9"/>
<rect x="12.5801" y="15.1611" width="11.0261" height="10.8958" rx="5.44788" fill="#1C01A9"/>
<rect x="13.8701" y="16.4517" width="8.3871" height="8.3871" rx="4.19355" fill="#EDEFF5"/>
<path d="M18.0638 19.0122C16.2492 19.0122 15.5234 20.6454 15.5234 20.6454C15.5234 20.6454 16.2492 22.2783 18.0638 22.2783C19.8783 22.2783 20.6041 20.6454 20.6041 20.6454C20.6041 20.6454 19.8783 19.0122 18.0638 19.0122Z" fill="#A8026B" stroke="#A8026B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.0635 21.5528C18.5646 21.5528 18.9708 21.1466 18.9708 20.6455C18.9708 20.1445 18.5646 19.7383 18.0635 19.7383C17.5624 19.7383 17.1562 20.1445 17.1562 20.6455C17.1562 21.1466 17.5624 21.5528 18.0635 21.5528Z" fill="white"/>
<path d="M23.4385 12.3696V2.95459L32.9254 12.3696H23.4385Z" fill="#1C01A9"/>
<defs>
<filter id="filter0_d_5582_79676" x="4.80762" y="1.95459" width="29.1455" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79676"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79676" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,25 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_80413)">
<path d="M5.80762 4.95459C5.80762 3.85002 6.70305 2.95459 7.80762 2.95459H22.6125C23.1413 2.95459 23.6486 3.16403 24.0234 3.5371L32.364 11.8392C32.7411 12.2145 32.9531 12.7246 32.9531 13.2567V34.9829C32.9531 36.0875 32.0577 36.9829 30.9531 36.9829H7.80762C6.70305 36.9829 5.80762 36.0875 5.80762 34.9829V4.95459Z" fill="#8E94A7"/>
</g>
<path d="M25.0366 24.7493C25.3961 24.1882 26.2161 24.1882 26.5756 24.7493C26.8303 25.1468 27.3457 25.2849 27.765 25.068C28.357 24.7618 29.067 25.1718 29.0978 25.8375C29.1197 26.3091 29.497 26.6864 29.9685 26.7082C30.6343 26.739 31.0442 27.4491 30.7381 28.041C30.5212 28.4603 30.6593 28.9758 31.0567 29.2304C31.6179 29.59 31.6179 30.4099 31.0567 30.7695C30.6593 31.0241 30.5212 31.5396 30.7381 31.9589C31.0442 32.5508 30.6343 33.2609 29.9685 33.2917C29.497 33.3135 29.1197 33.6908 29.0978 34.1624C29.067 34.8281 28.357 35.2381 27.765 34.9319C27.3457 34.715 26.8303 34.8531 26.5756 35.2506C26.2161 35.8117 25.3961 35.8117 25.0366 35.2506C24.7819 34.8531 24.2665 34.715 23.8472 34.9319C23.2552 35.2381 22.5452 34.8281 22.5144 34.1624C22.4925 33.6908 22.1152 33.3135 21.6437 33.2917C20.9779 33.2609 20.568 32.5508 20.8742 31.9589C21.091 31.5396 20.9529 31.0241 20.5555 30.7695C19.9943 30.4099 19.9943 29.59 20.5555 29.2304C20.9529 28.9758 21.091 28.4603 20.8742 28.041C20.568 27.4491 20.9779 26.739 21.6437 26.7082C22.1152 26.6864 22.4925 26.3091 22.5144 25.8375C22.5452 25.1718 23.2552 24.7618 23.8472 25.068C24.2665 25.2849 24.7819 25.1468 25.0366 24.7493Z" fill="white"/>
<path d="M23.884 31.3712C23.884 31.3057 23.8597 31.249 23.8112 31.2011C23.7627 31.1532 23.7052 31.1293 23.6388 31.1293C23.5699 31.1293 23.5118 31.1532 23.4645 31.2011C23.4173 31.249 23.3936 31.3057 23.3936 31.3712C23.3936 31.4392 23.4173 31.4966 23.4645 31.5432C23.5118 31.5898 23.5699 31.6131 23.6388 31.6131C23.7052 31.6131 23.7627 31.5898 23.8112 31.5432C23.8597 31.4966 23.884 31.4392 23.884 31.3712ZM24.4969 29.4357V31.8551C24.4969 31.9206 24.4726 31.9773 24.4241 32.0252C24.3756 32.0731 24.3181 32.097 24.2517 32.097H23.1485C23.0821 32.097 23.0246 32.0731 22.9761 32.0252C22.9276 31.9773 22.9033 31.9206 22.9033 31.8551V29.4357C22.9033 29.3702 22.9276 29.3135 22.9761 29.2656C23.0246 29.2177 23.0821 29.1938 23.1485 29.1938H24.2517C24.3181 29.1938 24.3756 29.2177 24.4241 29.2656C24.4726 29.3135 24.4969 29.3702 24.4969 29.4357ZM29.0324 29.4357C29.0324 29.6524 28.9621 29.8402 28.8217 29.999C28.86 30.1098 28.8791 30.2056 28.8791 30.2863C28.8868 30.4778 28.8319 30.6504 28.7144 30.8042C28.7578 30.9453 28.7578 31.0927 28.7144 31.2464C28.6761 31.3901 28.6072 31.5085 28.5076 31.6018C28.5305 31.884 28.468 32.1121 28.3199 32.286C28.1564 32.4775 27.9049 32.5758 27.5652 32.5809H27.0711C26.9025 32.5809 26.7186 32.5613 26.5194 32.5223C26.3203 32.4832 26.1651 32.4467 26.054 32.4126C25.9429 32.3786 25.7891 32.3288 25.5924 32.2633C25.2783 32.155 25.0766 32.0995 24.9872 32.097C24.9208 32.0945 24.8633 32.0699 24.8148 32.0233C24.7663 31.9767 24.742 31.9206 24.742 31.8551V29.4319C24.742 29.3689 24.765 29.3141 24.811 29.2675C24.8569 29.2209 24.9119 29.195 24.9757 29.19C25.037 29.1849 25.134 29.1106 25.2668 28.967C25.3996 28.8233 25.5286 28.6708 25.6537 28.5095C25.8274 28.2903 25.9563 28.1391 26.0406 28.0559C26.0866 28.0106 26.1262 27.9501 26.1594 27.8745C26.1926 27.7989 26.2149 27.7377 26.2264 27.6911C26.2379 27.6445 26.2551 27.5683 26.2781 27.4624C26.296 27.3641 26.312 27.2873 26.326 27.2318C26.34 27.1764 26.3649 27.1109 26.4007 27.0353C26.4365 26.9596 26.4799 26.8966 26.5309 26.8462C26.5795 26.7984 26.6369 26.7744 26.7033 26.7744C26.8208 26.7744 26.9261 26.7876 27.0193 26.8141C27.1126 26.8406 27.1892 26.8733 27.2492 26.9124C27.3092 26.9515 27.3603 27.0025 27.4024 27.0655C27.4446 27.1285 27.4752 27.1852 27.4943 27.2356C27.5135 27.286 27.5288 27.349 27.5403 27.4246C27.5518 27.5002 27.5582 27.5569 27.5595 27.5947C27.5607 27.6325 27.5614 27.6817 27.5614 27.7422C27.5614 27.8379 27.5493 27.9337 27.525 28.0295C27.5007 28.1252 27.4765 28.2008 27.4522 28.2563C27.428 28.3117 27.3928 28.3823 27.3469 28.468C27.3392 28.4831 27.3264 28.5058 27.3086 28.536C27.2907 28.5662 27.2766 28.594 27.2664 28.6192C27.2562 28.6444 27.246 28.6746 27.2358 28.7099H28.2969C28.4961 28.7099 28.6684 28.7817 28.814 28.9254C28.9596 29.069 29.0324 29.2391 29.0324 29.4357Z" fill="#8E94A7"/>
<rect x="10.2295" y="9.60352" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="13.2354" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="16.8672" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<rect x="10.2295" y="20.4995" width="18.3582" height="0.670509" rx="0.335254" fill="white"/>
<path d="M23.4385 12.3696V2.95459L32.9254 12.3696H23.4385Z" fill="white"/>
<defs>
<filter id="filter0_d_5582_80413" x="4.80762" y="1.95459" width="29.1455" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80413"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80413" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,25 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_79679)">
<path d="M5.80762 4.95459C5.80762 3.85002 6.70305 2.95459 7.80762 2.95459H22.6125C23.1413 2.95459 23.6486 3.16403 24.0234 3.5371L32.364 11.8392C32.7411 12.2145 32.9531 12.7246 32.9531 13.2567V34.9829C32.9531 36.0875 32.0577 36.9829 30.9531 36.9829H7.80762C6.70305 36.9829 5.80762 36.0875 5.80762 34.9829V4.95459Z" fill="white"/>
</g>
<path d="M25.0366 24.7493C25.3961 24.1882 26.2161 24.1882 26.5756 24.7493C26.8303 25.1468 27.3457 25.2849 27.765 25.068C28.357 24.7618 29.067 25.1718 29.0978 25.8375C29.1197 26.3091 29.497 26.6864 29.9685 26.7082C30.6343 26.739 31.0442 27.4491 30.7381 28.041C30.5212 28.4603 30.6593 28.9758 31.0567 29.2304C31.6179 29.59 31.6179 30.4099 31.0567 30.7695C30.6593 31.0241 30.5212 31.5396 30.7381 31.9589C31.0442 32.5508 30.6343 33.2609 29.9685 33.2917C29.497 33.3135 29.1197 33.6908 29.0978 34.1624C29.067 34.8281 28.357 35.2381 27.765 34.9319C27.3457 34.715 26.8303 34.8531 26.5756 35.2506C26.2161 35.8117 25.3961 35.8117 25.0366 35.2506C24.7819 34.8531 24.2665 34.715 23.8472 34.9319C23.2552 35.2381 22.5452 34.8281 22.5144 34.1624C22.4925 33.6908 22.1152 33.3135 21.6437 33.2917C20.9779 33.2609 20.568 32.5508 20.8742 31.9589C21.091 31.5396 20.9529 31.0241 20.5555 30.7695C19.9943 30.4099 19.9943 29.59 20.5555 29.2304C20.9529 28.9758 21.091 28.4603 20.8742 28.041C20.568 27.4491 20.9779 26.739 21.6437 26.7082C22.1152 26.6864 22.4925 26.3091 22.5144 25.8375C22.5452 25.1718 23.2552 24.7618 23.8472 25.068C24.2665 25.2849 24.7819 25.1468 25.0366 24.7493Z" fill="#A8026B"/>
<path d="M23.884 31.3712C23.884 31.3057 23.8597 31.249 23.8112 31.2011C23.7627 31.1532 23.7052 31.1293 23.6388 31.1293C23.5699 31.1293 23.5118 31.1532 23.4645 31.2011C23.4173 31.249 23.3936 31.3057 23.3936 31.3712C23.3936 31.4392 23.4173 31.4966 23.4645 31.5432C23.5118 31.5898 23.5699 31.6131 23.6388 31.6131C23.7052 31.6131 23.7627 31.5898 23.8112 31.5432C23.8597 31.4966 23.884 31.4392 23.884 31.3712ZM24.4969 29.4357V31.8551C24.4969 31.9206 24.4726 31.9773 24.4241 32.0252C24.3756 32.0731 24.3181 32.097 24.2517 32.097H23.1485C23.0821 32.097 23.0246 32.0731 22.9761 32.0252C22.9276 31.9773 22.9033 31.9206 22.9033 31.8551V29.4357C22.9033 29.3702 22.9276 29.3135 22.9761 29.2656C23.0246 29.2177 23.0821 29.1938 23.1485 29.1938H24.2517C24.3181 29.1938 24.3756 29.2177 24.4241 29.2656C24.4726 29.3135 24.4969 29.3702 24.4969 29.4357ZM29.0324 29.4357C29.0324 29.6524 28.9621 29.8402 28.8217 29.999C28.86 30.1098 28.8791 30.2056 28.8791 30.2863C28.8868 30.4778 28.8319 30.6504 28.7144 30.8042C28.7578 30.9453 28.7578 31.0927 28.7144 31.2464C28.6761 31.3901 28.6072 31.5085 28.5076 31.6018C28.5305 31.884 28.468 32.1121 28.3199 32.286C28.1564 32.4775 27.9049 32.5758 27.5652 32.5809H27.0711C26.9025 32.5809 26.7186 32.5613 26.5194 32.5223C26.3203 32.4832 26.1651 32.4467 26.054 32.4126C25.9429 32.3786 25.7891 32.3288 25.5924 32.2633C25.2783 32.155 25.0766 32.0995 24.9872 32.097C24.9208 32.0945 24.8633 32.0699 24.8148 32.0233C24.7663 31.9767 24.742 31.9206 24.742 31.8551V29.4319C24.742 29.3689 24.765 29.3141 24.811 29.2675C24.8569 29.2209 24.9119 29.195 24.9757 29.19C25.037 29.1849 25.134 29.1106 25.2668 28.967C25.3996 28.8233 25.5286 28.6708 25.6537 28.5095C25.8274 28.2903 25.9563 28.1391 26.0406 28.0559C26.0866 28.0106 26.1262 27.9501 26.1594 27.8745C26.1926 27.7989 26.2149 27.7377 26.2264 27.6911C26.2379 27.6445 26.2551 27.5683 26.2781 27.4624C26.296 27.3641 26.312 27.2873 26.326 27.2318C26.34 27.1764 26.3649 27.1109 26.4007 27.0353C26.4365 26.9596 26.4799 26.8966 26.5309 26.8462C26.5795 26.7984 26.6369 26.7744 26.7033 26.7744C26.8208 26.7744 26.9261 26.7876 27.0193 26.8141C27.1126 26.8406 27.1892 26.8733 27.2492 26.9124C27.3092 26.9515 27.3603 27.0025 27.4024 27.0655C27.4446 27.1285 27.4752 27.1852 27.4943 27.2356C27.5135 27.286 27.5288 27.349 27.5403 27.4246C27.5518 27.5002 27.5582 27.5569 27.5595 27.5947C27.5607 27.6325 27.5614 27.6817 27.5614 27.7422C27.5614 27.8379 27.5493 27.9337 27.525 28.0295C27.5007 28.1252 27.4765 28.2008 27.4522 28.2563C27.428 28.3117 27.3928 28.3823 27.3469 28.468C27.3392 28.4831 27.3264 28.5058 27.3086 28.536C27.2907 28.5662 27.2766 28.594 27.2664 28.6192C27.2562 28.6444 27.246 28.6746 27.2358 28.7099H28.2969C28.4961 28.7099 28.6684 28.7817 28.814 28.9254C28.9596 29.069 29.0324 29.2391 29.0324 29.4357Z" fill="white"/>
<rect x="10.2295" y="9.60352" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="13.2354" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="16.8672" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2295" y="20.4995" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<path d="M23.4385 12.3696V2.95459L32.9254 12.3696H23.4385Z" fill="#1C01A9"/>
<defs>
<filter id="filter0_d_5582_79679" x="4.80762" y="1.95459" width="29.1455" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79679"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79679" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,12 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<path d="M6.19336 2.90332H33.8063C34.9108 2.90332 35.8063 3.79875 35.8063 4.90332V29.2904C35.8063 30.395 34.9108 31.2904 33.8063 31.2904H6.19336C5.08879 31.2904 4.19336 30.395 4.19336 29.2904V4.90332C4.19336 3.79875 5.08879 2.90332 6.19336 2.90332Z" fill="#8E94A7"/>
<path d="M26.9619 35.9157V33.2261H30.349V35.9343C30.349 36.4022 29.7731 36.6248 29.4584 36.2786C29.0651 35.8461 28.3902 35.83 27.9769 36.2434L27.9113 36.309C27.5609 36.6593 26.9619 36.4112 26.9619 35.9157Z" fill="#8E94A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.9035 13.2469C13.8595 12.7718 14.5164 11.7853 14.5164 10.6454C14.5164 9.04201 13.2166 7.74219 11.6132 7.74219C10.0098 7.74219 8.70996 9.04201 8.70996 10.6454C8.70996 11.9095 9.51784 12.9849 10.6454 13.3834V20.6454H11.7745L12.9035 19.3551V18.0648H12.2583V17.4196H12.9035V16.7744H12.2583V16.1293H12.9035V15.4841L11.9358 14.839L12.9035 14.1938V13.2469ZM12.9039 10.6131C12.9039 11.3257 12.3262 11.9034 11.6136 11.9034C10.9009 11.9034 10.3232 11.3257 10.3232 10.6131C10.3232 9.90045 10.9009 9.32275 11.6136 9.32275C12.3262 9.32275 12.9039 9.90045 12.9039 10.6131Z" fill="white"/>
<path d="M26.7738 12.5806H18.0641C17.7078 12.5806 17.4189 12.8694 17.4189 13.2257C17.4189 13.582 17.7078 13.8709 18.0641 13.8709H26.7738C27.1301 13.8709 27.4189 13.582 27.4189 13.2257C27.4189 12.8694 27.1301 12.5806 26.7738 12.5806Z" fill="white"/>
<path d="M32.2577 8.38721H18.3867C17.8522 8.38721 17.4189 8.82048 17.4189 9.35495C17.4189 9.88942 17.8522 10.3227 18.3867 10.3227H32.2577C32.7921 10.3227 33.2254 9.88942 33.2254 9.35495C33.2254 8.82048 32.7921 8.38721 32.2577 8.38721Z" fill="#EDEFF5"/>
<path d="M25.4835 15.1616H18.0641C17.7078 15.1616 17.4189 15.4505 17.4189 15.8068C17.4189 16.1631 17.7078 16.4519 18.0641 16.4519H25.4835C25.8398 16.4519 26.1286 16.1631 26.1286 15.8068C26.1286 15.4505 25.8398 15.1616 25.4835 15.1616Z" fill="white"/>
<path d="M29.677 17.4194H18.0641C17.7078 17.4194 17.4189 17.7083 17.4189 18.0646C17.4189 18.4209 17.7078 18.7098 18.0641 18.7098H29.677C30.0333 18.7098 30.3222 18.4209 30.3222 18.0646C30.3222 17.7083 30.0333 17.4194 29.677 17.4194Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.3443 21.8462C28.9848 21.285 28.1649 21.285 27.8053 21.8462C27.5507 22.2436 27.0352 22.3817 26.6159 22.1649C26.024 21.8587 25.3139 22.2686 25.2831 22.9344C25.2613 23.4059 24.8839 23.7832 24.4124 23.8051C23.7466 23.8359 23.3367 24.5459 23.6429 25.1379C23.8598 25.5572 23.7216 26.0726 23.3242 26.3273C22.763 26.6868 22.763 27.5068 23.3242 27.8663C23.7216 28.121 23.8598 28.6364 23.6429 29.0557C23.3367 29.6477 23.7466 30.3577 24.4124 30.3885C24.8839 30.4104 25.2613 30.7877 25.2831 31.2592C25.3139 31.925 26.024 32.3349 26.6159 32.0287C27.0352 31.8119 27.5507 31.95 27.8053 32.3474C28.1649 32.9086 28.9848 32.9086 29.3443 32.3474C29.599 31.95 30.1145 31.8119 30.5337 32.0287C31.1257 32.3349 31.8358 31.925 31.8666 31.2592C31.8884 30.7877 32.2657 30.4104 32.7373 30.3885C33.403 30.3577 33.813 29.6477 33.5068 29.0557C33.2899 28.6364 33.428 28.121 33.8255 27.8663C34.3866 27.5068 34.3866 26.6868 33.8255 26.3273C33.428 26.0726 33.2899 25.5572 33.5068 25.1379C33.813 24.5459 33.403 23.8359 32.7373 23.8051C32.2657 23.7832 31.8884 23.4059 31.8666 22.9344C31.8358 22.2686 31.1257 21.8587 30.5337 22.1649C30.1145 22.3817 29.599 22.2436 29.3443 21.8462ZM28.5748 30.3226C30.3564 30.3226 31.8006 28.8784 31.8006 27.0968C31.8006 25.3152 30.3564 23.871 28.5748 23.871C26.7933 23.871 25.349 25.3152 25.349 27.0968C25.349 28.8784 26.7933 30.3226 28.5748 30.3226Z" fill="white"/>
<circle cx="28.5748" cy="27.0967" r="3.54839" fill="#8E94A7"/>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,12 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<path d="M6.19336 2.90332H33.8063C34.9108 2.90332 35.8063 3.79875 35.8063 4.90332V29.2904C35.8063 30.395 34.9108 31.2904 33.8063 31.2904H6.19336C5.08879 31.2904 4.19336 30.395 4.19336 29.2904V4.90332C4.19336 3.79875 5.08879 2.90332 6.19336 2.90332Z" fill="#1C01A9"/>
<path d="M26.9619 35.9157V33.2261H30.349V35.9343C30.349 36.4022 29.7731 36.6248 29.4584 36.2786C29.0651 35.8461 28.3902 35.83 27.9769 36.2434L27.9113 36.309C27.5609 36.6593 26.9619 36.4112 26.9619 35.9157Z" fill="#A8026B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.9035 13.2469C13.8595 12.7718 14.5164 11.7853 14.5164 10.6454C14.5164 9.04201 13.2166 7.74219 11.6132 7.74219C10.0098 7.74219 8.70996 9.04201 8.70996 10.6454C8.70996 11.9095 9.51784 12.9849 10.6454 13.3834V20.6454H11.7745L12.9035 19.3551V18.0648H12.2583V17.4196H12.9035V16.7744H12.2583V16.1293H12.9035V15.4841L11.9358 14.839L12.9035 14.1938V13.2469ZM12.9039 10.6131C12.9039 11.3257 12.3262 11.9034 11.6136 11.9034C10.9009 11.9034 10.3232 11.3257 10.3232 10.6131C10.3232 9.90045 10.9009 9.32275 11.6136 9.32275C12.3262 9.32275 12.9039 9.90045 12.9039 10.6131Z" fill="white"/>
<path d="M26.7738 12.5806H18.0641C17.7078 12.5806 17.4189 12.8694 17.4189 13.2257C17.4189 13.582 17.7078 13.8709 18.0641 13.8709H26.7738C27.1301 13.8709 27.4189 13.582 27.4189 13.2257C27.4189 12.8694 27.1301 12.5806 26.7738 12.5806Z" fill="#2F80ED"/>
<path d="M32.2577 8.38721H18.3867C17.8522 8.38721 17.4189 8.82048 17.4189 9.35495C17.4189 9.88942 17.8522 10.3227 18.3867 10.3227H32.2577C32.7921 10.3227 33.2254 9.88942 33.2254 9.35495C33.2254 8.82048 32.7921 8.38721 32.2577 8.38721Z" fill="#EDEFF5"/>
<path d="M25.4835 15.1616H18.0641C17.7078 15.1616 17.4189 15.4505 17.4189 15.8068C17.4189 16.1631 17.7078 16.4519 18.0641 16.4519H25.4835C25.8398 16.4519 26.1286 16.1631 26.1286 15.8068C26.1286 15.4505 25.8398 15.1616 25.4835 15.1616Z" fill="#2F80ED"/>
<path d="M29.677 17.4194H18.0641C17.7078 17.4194 17.4189 17.7083 17.4189 18.0646C17.4189 18.4209 17.7078 18.7098 18.0641 18.7098H29.677C30.0333 18.7098 30.3222 18.4209 30.3222 18.0646C30.3222 17.7083 30.0333 17.4194 29.677 17.4194Z" fill="#2F80ED"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.3443 21.8462C28.9848 21.285 28.1649 21.285 27.8053 21.8462C27.5507 22.2436 27.0352 22.3817 26.6159 22.1649C26.024 21.8587 25.3139 22.2686 25.2831 22.9344C25.2613 23.4059 24.8839 23.7832 24.4124 23.8051C23.7466 23.8359 23.3367 24.5459 23.6429 25.1379C23.8598 25.5572 23.7216 26.0726 23.3242 26.3273C22.763 26.6868 22.763 27.5068 23.3242 27.8663C23.7216 28.121 23.8598 28.6364 23.6429 29.0557C23.3367 29.6477 23.7466 30.3577 24.4124 30.3885C24.8839 30.4104 25.2613 30.7877 25.2831 31.2592C25.3139 31.925 26.024 32.3349 26.6159 32.0287C27.0352 31.8119 27.5507 31.95 27.8053 32.3474C28.1649 32.9086 28.9848 32.9086 29.3443 32.3474C29.599 31.95 30.1145 31.8119 30.5337 32.0287C31.1257 32.3349 31.8358 31.925 31.8666 31.2592C31.8884 30.7877 32.2657 30.4104 32.7373 30.3885C33.403 30.3577 33.813 29.6477 33.5068 29.0557C33.2899 28.6364 33.428 28.121 33.8255 27.8663C34.3866 27.5068 34.3866 26.6868 33.8255 26.3273C33.428 26.0726 33.2899 25.5572 33.5068 25.1379C33.813 24.5459 33.403 23.8359 32.7373 23.8051C32.2657 23.7832 31.8884 23.4059 31.8666 22.9344C31.8358 22.2686 31.1257 21.8587 30.5337 22.1649C30.1145 22.3817 29.599 22.2436 29.3443 21.8462ZM28.5748 30.3226C30.3564 30.3226 31.8006 28.8784 31.8006 27.0968C31.8006 25.3152 30.3564 23.871 28.5748 23.871C26.7933 23.871 25.349 25.3152 25.349 27.0968C25.349 28.8784 26.7933 30.3226 28.5748 30.3226Z" fill="#A8026B"/>
<circle cx="28.5748" cy="27.0967" r="3.54839" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,26 @@
<svg width="40" height="38" viewBox="0 0 40 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.5154 1.83687C28.3531 -0.4261 24.4072 1.47367 18.5863 1.47367C12.3456 1.47367 7.47621 -1.0966 3.81017 0.551735C0.144126 2.20007 -0.051769 7.3127 1.76726 10.5535C3.58629 13.7943 5.26539 17.2027 3.81017 22.2874C2.35494 27.3721 3.53032 29.8027 7.08442 33.4067C10.6385 37.0106 22.0284 32.5406 29.5564 31.3113C37.0844 30.0821 39.2392 26.6457 39.3512 22.9858C39.4631 19.326 36.4407 16.169 35.6012 12.7885C34.7616 9.40804 34.6777 4.09983 31.5154 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_80473)">
<path d="M6.45312 4.95459C6.45312 3.85002 7.34856 2.95459 8.45312 2.95459H23.258C23.7868 2.95459 24.2941 3.16403 24.6689 3.5371L33.0096 11.8392C33.3866 12.2145 33.5986 12.7246 33.5986 13.2567V34.9829C33.5986 36.0875 32.7032 36.9829 31.5986 36.9829H8.45312C7.34855 36.9829 6.45312 36.0875 6.45312 34.9829V4.95459Z" fill="#8E94A7"/>
</g>
<rect x="11.0426" y="9.77114" width="18.0229" height="0.335254" rx="0.167627" fill="#2F80ED" stroke="white" stroke-width="0.335254"/>
<rect x="11.0426" y="13.403" width="18.0229" height="0.335254" rx="0.167627" fill="#2F80ED" stroke="white" stroke-width="0.335254"/>
<rect x="11.0426" y="17.0348" width="18.0229" height="0.335254" rx="0.167627" fill="#2F80ED" stroke="white" stroke-width="0.335254"/>
<rect x="11.0426" y="20.6671" width="18.0229" height="0.335254" rx="0.167627" fill="#2F80ED" stroke="white" stroke-width="0.335254"/>
<rect x="11.0494" y="31.6934" width="6.93548" height="0.16129" rx="0.0806452" fill="#2F80ED" stroke="white" stroke-width="0.16129"/>
<path d="M11.291 29.7057C11.803 29.8355 13.5644 27.625 13.8717 26.6129C14.2557 25.3479 13.2111 23.807 12.7311 23.7097C12.2511 23.6124 12.0975 24.3548 12.1551 25.5587C12.2025 26.5494 12.347 31.0681 13.3071 30.5815C13.6111 30.4275 13.8449 30.2176 14.0204 30C14.4468 29.4714 14.5782 28.9649 14.6781 28.5484C14.8112 27.9938 14.2068 27.5806 14.1942 28.7097C14.1785 28.9811 14.221 29.2029 14.3401 29.5161C14.4629 29.8392 14.9333 30.4016 15.3233 30.3226C16.2833 30.128 16.5099 28.8299 16.4139 28.246C16.3179 27.6621 15.9338 27.7329 15.9338 28.4406C15.9338 29.0323 16.1873 30.3869 17.0514 29.7057C17.9154 29.0245 18.238 28.246 18.238 27.8568C18.238 27.4675 17.8884 27.3101 17.6619 27.8568C17.42 28.4406 17.2434 30.1923 18.2994 29.803C19.1443 29.4916 19.3555 28.5055 19.3555 28.0514" stroke="white"/>
<path d="M24.084 12.3696V2.95459L33.5709 12.3696H24.084Z" fill="#EDEFF5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.6977 14.8826C33.0039 14.324 31.9885 14.4336 31.4299 15.1274L30.2161 16.635L32.7288 18.658L33.9426 17.1504C34.5012 16.4565 34.3916 15.4412 33.6977 14.8826ZM31.9196 19.663L29.4069 17.6401L22.5288 26.1831L21.2565 30.3354L25.0415 28.2061L31.9196 19.663Z" fill="white"/>
<defs>
<filter id="filter0_d_5582_80473" x="5.45312" y="1.95459" width="29.1445" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_80473"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_80473" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,26 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.8708 1.83687C27.7085 -0.4261 23.7626 1.47367 17.9417 1.47367C11.7011 1.47367 6.83168 -1.0966 3.16564 0.551735C-0.500405 2.20007 -0.6963 7.3127 1.12273 10.5535C2.94176 13.7943 4.62086 17.2027 3.16564 22.2874C1.71041 27.3721 2.88579 29.8027 6.43989 33.4067C9.99399 37.0106 21.3839 32.5406 28.9119 31.3113C36.4399 30.0821 38.5947 26.6457 38.7066 22.9858C38.8186 19.326 35.7962 16.169 34.9567 12.7885C34.1171 9.40804 34.0331 4.09983 30.8708 1.83687Z" fill="#EDEFF5"/>
<g filter="url(#filter0_d_5582_79685)">
<path d="M5.80859 4.95459C5.80859 3.85002 6.70402 2.95459 7.80859 2.95459H22.6135C23.1423 2.95459 23.6496 3.16403 24.0244 3.5371L32.365 11.8392C32.7421 12.2145 32.9541 12.7246 32.9541 13.2567V34.9829C32.9541 36.0875 32.0587 36.9829 30.9541 36.9829H7.80859C6.70402 36.9829 5.80859 36.0875 5.80859 34.9829V4.95459Z" fill="white"/>
</g>
<rect x="10.2305" y="9.60352" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2305" y="13.2354" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2305" y="16.8672" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.2305" y="20.4995" width="18.3582" height="0.670509" rx="0.335254" fill="#2F80ED"/>
<rect x="10.3242" y="31.6128" width="7.09677" height="0.322581" rx="0.16129" fill="#2F80ED"/>
<path d="M10.6465 29.7057C11.1585 29.8355 12.9199 27.625 13.2271 26.6129C13.6112 25.3479 12.5666 23.807 12.0866 23.7097C11.6065 23.6124 11.4529 24.3548 11.5105 25.5587C11.5579 26.5494 11.7025 31.0681 12.6626 30.5815C12.9665 30.4275 13.2003 30.2176 13.3758 30C13.8023 29.4714 13.9337 28.9649 14.0336 28.5484C14.1666 27.9938 13.5623 27.5806 13.5497 28.7097C13.534 28.9811 13.5765 29.2029 13.6956 29.5161C13.8184 29.8392 14.2888 30.4016 14.6787 30.3226C15.6388 30.128 15.8653 28.8299 15.7693 28.246C15.6733 27.6621 15.2893 27.7329 15.2893 28.4406C15.2893 29.0323 15.5428 30.3869 16.4068 29.7057C17.2709 29.0245 17.5935 28.246 17.5935 27.8568C17.5935 27.4675 17.2439 27.3101 17.0174 27.8568C16.7755 28.4406 16.5988 30.1923 17.6549 29.803C18.4998 29.4916 18.711 28.5055 18.711 28.0514" stroke="black"/>
<path d="M23.4395 12.3696V2.95459L32.9264 12.3696H23.4395Z" fill="#1C01A9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.0532 14.8826C32.3594 14.324 31.344 14.4336 30.7854 15.1274L29.5716 16.635L32.0843 18.658L33.298 17.1504C33.8567 16.4565 33.7471 15.4412 33.0532 14.8826ZM31.2751 19.663L28.7624 17.6401L21.8843 26.1831L20.6119 30.3354L24.397 28.2061L31.2751 19.663Z" fill="#A8026B"/>
<defs>
<filter id="filter0_d_5582_79685" x="4.80859" y="1.95459" width="29.1445" height="36.0283" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="0.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5582_79685"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5582_79685" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -39,25 +39,38 @@ const dealsReducer = (state = initialState.deals, action) =>
case actionTypes.DEAL_OFFERS_LIST: case actionTypes.DEAL_OFFERS_LIST:
{ {
console.log("ACTION", actionTypes.DEAL_OFFERS_LIST, { action });
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ offers: action.data.list } };
return { return {
...state, ...state,
deal: { ...state.deal, ...{ offers: action.data.offers, } }, details: details,
}; };
} }
case actionTypes.DEAL_DOCUMENTS_LIST: case actionTypes.DEAL_DOCUMENTS_LIST:
{ {
console.log("ACTION", actionTypes.DEAL_DOCUMENTS_LIST, { action });
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ documents: action.data.list } };
return { return {
...state, ...state,
deal: { ...state.deal, ...{ documents: action.data.documents, } }, details: details,
}; };
} }
case actionTypes.DEAL_CONTRACTS_LIST: case actionTypes.DEAL_CONTRACTS_LIST:
{ {
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ contracts: action.data.list } };
return { return {
...state, ...state,
deal: { ...state.deal, ...{ contracts: action.data.contracts, } }, details: details,
}; };
} }

View File

@ -236,7 +236,8 @@ export const defaultState = {
{ {
loaded: false, loaded: false,
list: null, list: null,
deal: { details: {},
/*{
loaded: false, loaded: false,
offers: { offers: {
list: null, list: null,
@ -249,6 +250,7 @@ export const defaultState = {
list: null, list: null,
}, },
}, },
*/
}, },
}; };