Сравнить коммиты
14 Коммитов
| Автор | SHA1 | Дата | |
|---|---|---|---|
| c481a8e695 | |||
| d02dccac23 | |||
| d0edbd14b2 | |||
| 1b8cdc724d | |||
| 7451aaa715 | |||
| 607911e44f | |||
| c407874e58 | |||
| a23ae5c1bf | |||
| def43a902a | |||
| e08eee7c1b | |||
| 4792dde7c5 | |||
| 115ae2df32 | |||
| 07ce07bbb6 | |||
| 8224993f68 |
@@ -1,284 +1,821 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
|
||||
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
|
||||
:root {
|
||||
--topNavHeight: 75px;
|
||||
--rtrWidth: 50px;
|
||||
--lftWidth: 275px;
|
||||
--tpMenuPad: 30px;
|
||||
--icnPadng: 10px 0px;
|
||||
--prmBgColor: rgb(244, 244, 221);
|
||||
--secdBgColor: #fafaf3;
|
||||
--secdSubColor: #f4f4f3;
|
||||
--lstPgArc: 15px;
|
||||
--topNavHeightMob:65px;
|
||||
--topNavHeight: 75px;
|
||||
--rtrWidth: 60px;
|
||||
--lftWidth: 275px;
|
||||
--tpMenuPad: 30px;
|
||||
--icnPadng: 10px 0px;
|
||||
--prmBgColor: rgb(244, 244, 221);
|
||||
--secdBgColor: #fafaf3;
|
||||
--secdSubColor: #f4f4f3;
|
||||
--lstPgArc: 15px;
|
||||
--frmIfrmeWidth: 500px;
|
||||
--frmIfrmeHeight: 550px;
|
||||
--frmIfrmeHeightPopUp: 80%;
|
||||
}
|
||||
a {
|
||||
color: #000 !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-family: "Poppins", sans-serif;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.list-page {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0px !important;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.tp-bar {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: var(--topNavHeight);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
list-style: none;
|
||||
align-items: center;
|
||||
padding-left: 0px !important;
|
||||
padding-right: 0px !important;
|
||||
z-index: 1000;
|
||||
height: var(--topNavHeight);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
list-style: none;
|
||||
align-items: center;
|
||||
padding-left: 0px !important;
|
||||
padding-right: 0px !important;
|
||||
z-index: 1;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
ul.tp-bar li {
|
||||
margin: 0px 16px;
|
||||
margin: 0px 5px;
|
||||
}
|
||||
ul.tp-bar li:last-child {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
li.logo-li {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width: calc(var(--lftWidth) - var(--tpMenuPad));
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width: calc(var(--lftWidth));
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 25px;
|
||||
margin-left: 25px;
|
||||
.logo-li .logo-img {
|
||||
height: 50px;
|
||||
margin-left: 15px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.btm-bar {
|
||||
position: fixed;
|
||||
top: var(--topNavHeight);
|
||||
left: 0;
|
||||
height: calc(100vh -var(--topNavHeight));
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: calc(100vh - var(--topNavHeight));
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.lft-nav-bar {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: var(--lftWidth);
|
||||
height: inherit;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
z-index: 1;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: var(--lftWidth);
|
||||
height: calc(100vh - var(--topNavHeight));
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.lft-nav-bar .lft-nav-bar-1,
|
||||
.lft-nav-bar .lft-nav-bar-2 {
|
||||
list-style: none;
|
||||
margin-bottom: 0px !important;
|
||||
padding-left: 0px !important;
|
||||
list-style: none;
|
||||
margin-bottom: 0px !important;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.lft-nav-bar-1 {
|
||||
width: var(--rtrWidth);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background-color: var(--prmBgColor);
|
||||
padding: 0px 5px !important;
|
||||
width: var(--rtrWidth);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background-color: var(--prmBgColor);
|
||||
}
|
||||
|
||||
.lft-nav-bar-1 li,
|
||||
.lft-nav-bar-2 li {
|
||||
margin: var(--icnPadng);
|
||||
.lft-nav-bar-1 li {
|
||||
margin: 4px 0px;
|
||||
}
|
||||
|
||||
.lft-nav-bar-2 li {
|
||||
font-size: 16px;
|
||||
padding: 0px 15px;
|
||||
margin: 6px 0px;
|
||||
}
|
||||
.lft-nav-bar-2 li {
|
||||
font-size: 16px;
|
||||
padding: 0px 15px;
|
||||
}
|
||||
|
||||
.lft-nav-bar-2 {
|
||||
width: calc(var(--lftWidth) - var(--rtrWidth));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: var(--secdBgColor);
|
||||
transition: width 0.3s;
|
||||
width: calc(var(--lftWidth) - var(--rtrWidth));
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: var(--secdBgColor);
|
||||
transition: width 0.3s;
|
||||
}
|
||||
|
||||
.rtr-nav-bar {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: var(--rtrWidth);
|
||||
height: inherit;
|
||||
background-color: var(--prmBgColor);
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
display: none !important;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 0px;
|
||||
height: calc(100vh - var(--topNavHeight));
|
||||
background-color: var(--prmBgColor);
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.rtr-nav-bar span {
|
||||
margin: var(--icnPadng);
|
||||
margin: var(--icnPadng);
|
||||
}
|
||||
|
||||
.ctr-lst-pge {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
left: var(--lftWidth);
|
||||
right: var(--rtrWidth);
|
||||
height: inherit;
|
||||
margin: 0px 20px;
|
||||
background-color: var(--secdSubColor);
|
||||
border-top-left-radius: var(--lstPgArc);
|
||||
border-top-right-radius: var(--lstPgArc);
|
||||
position: fixed;
|
||||
overflow-y: hidden;
|
||||
z-index: 0;
|
||||
width: calc();
|
||||
left: var(--lftWidth);
|
||||
right: 0px;
|
||||
height: calc(100vh - var(--topNavHeight));
|
||||
margin: 0px 20px;
|
||||
background-color: var(--secdSubColor);
|
||||
border-top-left-radius: var(--lstPgArc);
|
||||
border-top-right-radius: var(--lstPgArc);
|
||||
}
|
||||
|
||||
.srch-bar {
|
||||
width: 35%;
|
||||
width: 35%;
|
||||
margin-left: 15px !important;
|
||||
}
|
||||
|
||||
.form-control#searchBar {
|
||||
padding: 10px;
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ml-auto {
|
||||
margin-left: auto !important;
|
||||
margin-left: auto !important;
|
||||
}
|
||||
|
||||
.mr-auto {
|
||||
margin-right: auto !important;
|
||||
margin-right: auto !important;
|
||||
}
|
||||
|
||||
.mt-auto {
|
||||
margin-top: auto !important;
|
||||
margin-top: auto !important;
|
||||
}
|
||||
|
||||
.mb-auto {
|
||||
margin-bottom: auto !important;
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
|
||||
.la {
|
||||
font-size: 20px;
|
||||
color: black;
|
||||
.la,
|
||||
[class^="ri-"] {
|
||||
font-size: 1.2em;
|
||||
color: black;
|
||||
}
|
||||
.lft-nav-bar-2 [class^="ri-"] {
|
||||
font-size: 1.35em;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.icn-circle:hover {
|
||||
color: white;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.icn-circle {
|
||||
background-color: firebrick;
|
||||
color: white;
|
||||
padding: 10px;
|
||||
text-decoration: none;
|
||||
font-size: 12px;
|
||||
background-color: firebrick;
|
||||
color: white;
|
||||
padding: 8px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hdr {
|
||||
font-size: 16px;
|
||||
padding: 10px 5px;
|
||||
font-weight: 600;
|
||||
text-transform: capitalize;
|
||||
background-color: #e3e3e3;
|
||||
font-size: 16px;
|
||||
padding: 10px 5px;
|
||||
font-weight: 600;
|
||||
text-transform: capitalize;
|
||||
background-color: #e3e3e3;
|
||||
}
|
||||
|
||||
.mnNvIcn,
|
||||
.mnNvIcn:focus {
|
||||
box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.mnNvIcn-div {
|
||||
width: var(--rtrWidth);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.mnNvIcn {
|
||||
text-decoration: none;
|
||||
margin: 0px 5px;
|
||||
}
|
||||
.mnNvIcn:hover {
|
||||
/* background-color: var(--prmBgColor); */
|
||||
background-color: #e8eaed;
|
||||
padding: 3px 7px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.lft-nav-bar.lft-nav-bar-Wrap {
|
||||
width: var(--rtrWidth);
|
||||
transition: width 0.3s;
|
||||
width: var(--rtrWidth);
|
||||
transition: width 0.3s;
|
||||
}
|
||||
|
||||
.lft-nav-bar.lft-nav-bar-Wrap .lft-nav-bar-2 {
|
||||
display: none;
|
||||
transition: display 0.3s;
|
||||
display: none;
|
||||
transition: display 0.3s;
|
||||
}
|
||||
|
||||
.bdy-ul {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.ctr-lst-pge.lft-nav-bar-Wrap {
|
||||
left: var(--rtrWidth);
|
||||
transition: left 0.3s;
|
||||
left: var(--rtrWidth);
|
||||
transition: left 0.3s;
|
||||
}
|
||||
|
||||
a.badge {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.badge.badge-soft-green,
|
||||
.badge.badge-soft-success {
|
||||
background: #E6FBF2;
|
||||
color: #00D67F;
|
||||
background: #e6fbf2;
|
||||
color: #00d67f;
|
||||
}
|
||||
|
||||
|
||||
/* scroll bar start here*/
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
|
||||
/* Track */
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
|
||||
/* Handle */
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #888;
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #888;
|
||||
}
|
||||
|
||||
|
||||
/* Handle on hover */
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #555;
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #555;
|
||||
}
|
||||
|
||||
|
||||
/* Scroll bar End Here */
|
||||
|
||||
.accordion-button::after {
|
||||
background-size: 0.9rem !important;
|
||||
;
|
||||
background-size: 0.9rem !important;
|
||||
}
|
||||
|
||||
a[role="button"]:focus {
|
||||
box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
#notifi-list .item-li:first .accordion-button:not(.collapsed) {
|
||||
border-top-left-radius: var(--lstPgArc);
|
||||
border-top-right-radius: var(--lstPgArc);
|
||||
border-top-left-radius: var(--lstPgArc);
|
||||
border-top-right-radius: var(--lstPgArc);
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
box-shadow: none !important;
|
||||
border-radius: 2px;
|
||||
}
|
||||
box-shadow: none !important;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.snd-fd-biz {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.tp-bar li a {
|
||||
padding: 3px 7px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
.nav-lft-item {
|
||||
padding: 3px 7px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.nav-lft-item span:nth-child(1) {
|
||||
padding: 3px 7px;
|
||||
}
|
||||
.nav-lft-item span:nth-child(2) {
|
||||
font-size: 13px;
|
||||
color: #000;
|
||||
font-weight: 400;
|
||||
}
|
||||
.tp-bar li a.nav-lft-item:hover {
|
||||
padding-bottom: 5px !important;
|
||||
padding: 8px;
|
||||
background-color: #e8eaed;
|
||||
border-radius: 50%;
|
||||
}
|
||||
button {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
button:focus {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.plus {
|
||||
color: #000;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.plus + span {
|
||||
margin-right: 8px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.create {
|
||||
display: flex !important;
|
||||
align-items: center;
|
||||
color: #000 !important;
|
||||
padding: 8px 8px !important;
|
||||
background-color: var(--prmBgColor) !important;
|
||||
border-color: var(--prmBgColor) !important;
|
||||
border-top-left-radius: 18px !important;
|
||||
border-bottom-left-radius: 18px !important;
|
||||
border-top-right-radius: 18px !important;
|
||||
border-bottom-right-radius: 18px !important;
|
||||
}
|
||||
.sub-nav-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 4px 10px !important;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
}
|
||||
.sub-nav-item.active,
|
||||
.sub-nav-item:hover {
|
||||
color: #000;
|
||||
background-color: var(--prmBgColor);
|
||||
border-top-left-radius: 16px;
|
||||
border-top-right-radius: 16px;
|
||||
border-bottom-left-radius: 16px;
|
||||
border-bottom-right-radius: 16px;
|
||||
}
|
||||
.sub-nav-item span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-lft-item.active span:nth-child(1),
|
||||
.nav-lft-item:hover span:nth-child(1) {
|
||||
background-color: var(--secdBgColor);
|
||||
border-radius: 50%;
|
||||
padding: 3px 7px;
|
||||
}
|
||||
ul.ul-drpdown li {
|
||||
padding: 0px !important;
|
||||
}
|
||||
ul.hdr-ul {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: var(--secdBgColor);
|
||||
border-top-left-radius: var(--lstPgArc);
|
||||
border-top-right-radius: var(--lstPgArc);
|
||||
height: 50px;
|
||||
}
|
||||
.chk-box-btn {
|
||||
background-color: unset;
|
||||
box-shadow: none;
|
||||
}
|
||||
ul.hdr-ul li {
|
||||
margin: 0px 8px;
|
||||
}
|
||||
.pggtn {
|
||||
padding: 0px 8px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.li-pgn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
margin-left: auto !important;
|
||||
}
|
||||
.pggtn .lss-than,
|
||||
.pggtn .grtr-than {
|
||||
margin: 0px 8px;
|
||||
}
|
||||
.nt-actve .la,
|
||||
.nt-actve [class^="ri-"] {
|
||||
color: #e3e3e3 !important;
|
||||
}
|
||||
.rtr-nav-bar .rtr-item {
|
||||
margin: 4px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
.rtr-nav-bar .rtr-item:hover {
|
||||
background-color: var(--secdBgColor);
|
||||
border-radius: 50%;
|
||||
padding: 6px 10px;
|
||||
}
|
||||
.frm-ifre {
|
||||
width: var(--frmIfrmeWidth);
|
||||
z-index: 1;
|
||||
background-color: #f3f3f3;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
margin-right: 1px;
|
||||
border: 1px solid #dadada;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.frm-hdr {
|
||||
padding: 0px 10px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.frm-hdr .ctrl {
|
||||
margin-left: auto;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.frm-hdr .ctrl .la {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
.frm-hdr .ctrl a {
|
||||
margin: 0px 8px;
|
||||
}
|
||||
.ld-frm-src {
|
||||
width: -webkit-fill-available;
|
||||
height: calc(var(--frmIfrmeHeight) - 42px);
|
||||
margin: 1px;
|
||||
}
|
||||
.wrap-iframe .ld-frm-src {
|
||||
margin: 0px !important;
|
||||
}
|
||||
#crte-btn-lst {
|
||||
max-height: 400px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.wrap-iframe {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
[data-ispop_up="false"] .app-title-ifrm {
|
||||
width: 150px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.frm-ifre .frm-bdy {
|
||||
line-height: 0 !important;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.ChtAppIfrme {
|
||||
margin-left: var(--rtrWidth);
|
||||
height: calc(100vh - var(--topNavHeight));
|
||||
overflow: hidden;
|
||||
}
|
||||
.bdy-ul .accordion-button::after {
|
||||
margin-bottom: -8px;
|
||||
}
|
||||
.wrap-iframe + div .frm-ifre {
|
||||
z-index: 0 !important;
|
||||
}
|
||||
.t-sec-min {
|
||||
font-size: 14px;
|
||||
width: 10%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
}
|
||||
.apps-list {
|
||||
width: 360px;
|
||||
max-height: 450px;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.appsBind {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 8px !important;
|
||||
width: 72px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.appsBind .appTitle {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* dont delete start here */
|
||||
.ctr-lst-pge .bdy-ul .pdng {
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 6px 15px 6px 20px !important;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #bebcbc;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ctr-lst-pge .bdy-ul .pdng.lst-Notifi:hover {
|
||||
-webkit-box-shadow: 0px 2px 3px 1px rgba(0, 0, 0, 0.75);
|
||||
-moz-box-shadow: 0px 2px 3px 1px rgba(0, 0, 0, 0.75);
|
||||
box-shadow: 0px 2px 3px 1px rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
.ctr-lst-pge .bdy-ul .pdng:hover .hover {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.wi-chck {
|
||||
width: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
}
|
||||
.wi-chck .wi-item {
|
||||
margin: 0px 8px;
|
||||
}
|
||||
.wi-sbjt-msge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
min-width: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.wi-msge {
|
||||
flex-basis: 0;
|
||||
box-flex: 1;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.wi-time {
|
||||
text-align: right;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.hdr-ul .dropdown-toggle-split {
|
||||
padding: 4px !important;
|
||||
}
|
||||
.ctr-lst-pge .bdy-ul .pdng .hover {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
padding-right: 20px;
|
||||
background-color: var(--secdSubColor);
|
||||
}
|
||||
.ctr-lst-pge .bdy-ul .pdng .hover ul li.hover-item {
|
||||
float: left;
|
||||
}
|
||||
.lst-Notifi[data-isreaded="2"],
|
||||
.ctr-lst-pge .bdy-ul .pdng.lst-Notifi[data-isreaded="2"] .hover {
|
||||
background-color: #cbceca;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.ctr-lst-pge .bdy-ul .pdng.lst-Notifi:hover .wi-time.time {
|
||||
display: none !important;
|
||||
}
|
||||
.svg-icons {
|
||||
width: 30px;
|
||||
}
|
||||
.apps-loading {
|
||||
width: 330px;
|
||||
height: 100vh;
|
||||
background-color: var(--secdSubColor);
|
||||
position: fixed;
|
||||
right: 0;
|
||||
}
|
||||
#list-page {
|
||||
height: 100vh;
|
||||
}
|
||||
.appsBind:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
.wi-from.wi-item span {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
.lst-Notifi[data-isreaded="8"] span {
|
||||
font-weight: 500;
|
||||
}
|
||||
.lst-Notifi[data-isreaded="2"] span {
|
||||
font-weight: 400;
|
||||
color: #6c757d !important;
|
||||
}
|
||||
.lst-Notifi[data-isreaded="8"] .wi-msge span,
|
||||
.lst-Notifi[data-isreaded="2"] .wi-msge span {
|
||||
color: #6c757d !important;
|
||||
font-weight: 400;
|
||||
}
|
||||
.pdng.lst-Notifi .ri-star-line {
|
||||
color: #6c757d;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.pdng.lst-Notifi:hover .ri-star-line,
|
||||
.pdng.lst-Notifi:hover .wi-item .form-check-input {
|
||||
opacity: 1;
|
||||
}
|
||||
.pdng.lst-Notifi .wi-item .form-check-input {
|
||||
border: 1px solid#6c757d !important;
|
||||
border-radius: 4px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.pdng.lst-Notifi .wi-item .form-check-input:checked {
|
||||
opacity: 1;
|
||||
background-color: #b2b2b2;
|
||||
}
|
||||
.ml-0 {
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
.chck-box-ul.dropdown-menu.show {
|
||||
border: 0px;
|
||||
}
|
||||
.dropdown-item.active,
|
||||
.dropdown-item:active,
|
||||
.dropdown-item:hover {
|
||||
background-color: var(--prmBgColor) !important;
|
||||
}
|
||||
.ctr-lst-pge.apps-loaded {
|
||||
width: calc(100% - var(--rtrWidth) - 330px - 48px) !important;
|
||||
}
|
||||
.ctr-lst-pge.apps-loaded-tr {
|
||||
width: calc(100% - var(--lftWidth) - 330px - 48px) !important;
|
||||
}
|
||||
.frm_hdr[data-frm_hdr="true"]{
|
||||
display: none !important;
|
||||
}
|
||||
/* Mobile, tab View start here */
|
||||
|
||||
@media only screen and (max-width: 1024px) {
|
||||
.btm-bar .lft-nav-bar{
|
||||
display: none;
|
||||
}
|
||||
.btm-bar .ctr-lst-pge{
|
||||
left:0px !important;
|
||||
}
|
||||
.sdr-nme{
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
border-radius: 50%;
|
||||
background-color: #00d67f;
|
||||
}
|
||||
.hdr-ul{
|
||||
display: none !important;
|
||||
}
|
||||
.ctr-lst-pge{
|
||||
border-top-left-radius:0px;
|
||||
border-top-right-radius:0px;
|
||||
}
|
||||
.ctr-lst-pge .bdy-ul .pdng{
|
||||
padding: 8px !important;
|
||||
}
|
||||
.wi-chck{
|
||||
width: unset;
|
||||
}
|
||||
.wi-item:first-of-type{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
.srch-bar{
|
||||
display: none;
|
||||
}
|
||||
.ctr-lst-pge{
|
||||
margin: 0px !important;
|
||||
}
|
||||
ul.tp-bar li:last-child{
|
||||
margin-right: 10px;
|
||||
}
|
||||
.mnNvIcn{
|
||||
margin:0px !important;
|
||||
padding: 0px !important;
|
||||
}
|
||||
.mnNvIcn-div{
|
||||
justify-content: unset;
|
||||
margin-left: 10px;
|
||||
flex-basis: content;
|
||||
}
|
||||
.tp-bar{
|
||||
height: 65px;
|
||||
}
|
||||
.tp-bar .logo-li{
|
||||
flex-basis: content;
|
||||
}
|
||||
.wi-chck{
|
||||
flex-basis: content;
|
||||
}
|
||||
.apps-loading{
|
||||
width: 100%;
|
||||
top: var(--topNavHeightMob);
|
||||
}
|
||||
.frm-ifre{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
/* Mobile, tab View End here */
|
||||
|
||||
|
||||
/*common Class start Here*/
|
||||
.w-5p{
|
||||
width: 5px;
|
||||
}.w-10p{
|
||||
width: 10px;
|
||||
}.w-15p{
|
||||
width: 15px;
|
||||
}.w-20p{
|
||||
width: 20px;
|
||||
}.w-25p{
|
||||
width: 25px;
|
||||
}.w-30p{
|
||||
width: 30px;
|
||||
}.w-35p{
|
||||
width: 35px;
|
||||
}.w-40p{
|
||||
width: 40px;
|
||||
}.w-45p{
|
||||
width: 45px;
|
||||
}.w-50p{
|
||||
width: 50px;
|
||||
}.w-55p{
|
||||
width: 55px;
|
||||
}.w-60p{
|
||||
width: 60px;
|
||||
}.w-65p{
|
||||
width: 65px;
|
||||
}.w-70p{
|
||||
width: 70px;
|
||||
}.fw-400{
|
||||
font-weight: 400;
|
||||
}.fw-500{
|
||||
font-weight: 500;
|
||||
}.fw-600{
|
||||
font-weight: 600;
|
||||
}.fw-700{
|
||||
font-weight: 700;
|
||||
}.font-10{
|
||||
font-size: 10px;
|
||||
}.font-11{
|
||||
font-size: 11px;
|
||||
}.font-12{
|
||||
font-size: 12px;
|
||||
}.font-13{
|
||||
font-size: 13px;
|
||||
}.font-14{
|
||||
font-size: 14px;
|
||||
}.font-15{
|
||||
font-size: 15px;
|
||||
}.font-16{
|
||||
font-size: 16px;
|
||||
}.font-17{
|
||||
font-size: 17px;
|
||||
}.font-18{
|
||||
font-size: 18px;
|
||||
}.font-19{
|
||||
font-size: 19px;
|
||||
}.font-20{
|
||||
font-size: 20px;
|
||||
}.font-21{
|
||||
font-size: 21px;
|
||||
}.font-22{
|
||||
font-size: 22px;
|
||||
}
|
||||
/*common Class End Here*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
|
||||
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
|
||||
|
||||
html,
|
||||
body,
|
||||
@@ -13,282 +13,281 @@ h6,
|
||||
p,
|
||||
a,
|
||||
input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
color: #3d3d3d;
|
||||
margin: 0;
|
||||
font-family: "Poppins", sans-serif;
|
||||
color: #3d3d3d;
|
||||
}
|
||||
|
||||
.d-none {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.biz-login-wrap {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-container {
|
||||
width: 375px;
|
||||
height: auto;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
padding: 40px;
|
||||
border: 1px solid #dadce0;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
width: 375px;
|
||||
height: auto;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
padding: 40px;
|
||||
border: 1px solid #dadce0;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group {
|
||||
position: relative;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group input {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #d0d0d0;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
color: #202124;
|
||||
font-size: 16px;
|
||||
margin: 1px 1px 0 1px;
|
||||
padding: 13px 15px;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #d0d0d0;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
color: #202124;
|
||||
font-size: 16px;
|
||||
margin: 1px 1px 0 1px;
|
||||
padding: 13px 15px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group input.error {
|
||||
border-color: #d93025;
|
||||
border-color: #d93025;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group label {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
color: #a5a5a5;
|
||||
font-size: 16px;
|
||||
padding: 0px 4px;
|
||||
background-color: white;
|
||||
transition-property: transform;
|
||||
transition-duration: 500ms;
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
color: #a5a5a5;
|
||||
font-size: 16px;
|
||||
padding: 0px 4px;
|
||||
background-color: white;
|
||||
transition-property: transform;
|
||||
transition-duration: 500ms;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-link a {
|
||||
color: #1a73e8;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #1a73e8;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-link label {
|
||||
color: #5f6368;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
color: #5f6368;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.email-input:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
.email-input:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.biz-login-wrap .password-input:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
.biz-login-wrap .password-input:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group input.error:focus+label {
|
||||
color: #d93025;
|
||||
.biz-login-wrap .form-group input.error:focus + label {
|
||||
color: #d93025;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-group label.password-fixed {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1 !important;
|
||||
color: #1a73e8;
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1 !important;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
row-gap: 20px;
|
||||
margin-bottom: 40px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
row-gap: 20px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-header h2 {
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-header h4 {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-login-wrap .form-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 30px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 30px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .password-form-box {
|
||||
row-gap: 60px;
|
||||
row-gap: 60px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .login-logo {
|
||||
width: 150px;
|
||||
margin: 0 auto;
|
||||
width: 150px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.biz-login-wrap .btn {
|
||||
float: right;
|
||||
color: white;
|
||||
background: #1a73e8;
|
||||
border: 0;
|
||||
padding: 8px 22px;
|
||||
border-radius: 4px;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
color: white;
|
||||
background: #1a73e8;
|
||||
border: 0;
|
||||
padding: 8px 22px;
|
||||
border-radius: 4px;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.biz-login-wrap a {
|
||||
text-decoration: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.biz-login-wrap .flex-between-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.biz-login-wrap .mt-5 {
|
||||
margin-top: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .mt-10 {
|
||||
margin-top: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .password-checkbox {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .show-password-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10px;
|
||||
margin-top: 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.biz-login-wrap .show-password-link label {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-login-wrap .err-msg:not(:empty) {
|
||||
color: #d93025;
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
color: #d93025;
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.biz-login-wrap h4 {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-login-wrap #txt_PhoneorMail:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
.biz-login-wrap #txt_PhoneorMail:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.biz-login-wrap #txt_Code:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
.biz-login-wrap #txt_Code:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.biz-login-wrap #txt_NewPassword:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
.biz-login-wrap #txt_NewPassword:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
#txt_ConfirmPassword:focus+label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
#txt_ConfirmPassword:focus + label {
|
||||
transform: translate3d(0, -175%, 0);
|
||||
z-index: 1;
|
||||
color: #1a73e8;
|
||||
}
|
||||
|
||||
.back-btn {
|
||||
text-align: right;
|
||||
margin: 0px 20px;
|
||||
text-align: right;
|
||||
margin: 0px 20px;
|
||||
}
|
||||
|
||||
.btn-block {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.btn-block {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.opt-text {
|
||||
text-align: center;
|
||||
margin: 10px 0px;
|
||||
text-align: center;
|
||||
margin: 10px 0px;
|
||||
}
|
||||
|
||||
.verify-block {
|
||||
margin: 10px 0px;
|
||||
margin: 10px 0px;
|
||||
}
|
||||
|
||||
.verify-block .btn {
|
||||
margin-left: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.biz-login-wrap h2 {
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.reset-success {
|
||||
text-align: center;
|
||||
margin: 20px 0px;
|
||||
text-align: center;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
.conformPassword {
|
||||
margin-top: 30px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
.error-warning{
|
||||
font-weight:700 ;
|
||||
color: white;
|
||||
margin-right: 5px;
|
||||
.error-warning {
|
||||
font-weight: 700;
|
||||
color: white;
|
||||
margin-right: 5px;
|
||||
}
|
||||
div#div_ValidationSummary {
|
||||
background: #ce1717;
|
||||
color: white;
|
||||
|
||||
background: #ce1717;
|
||||
color: white;
|
||||
}
|
||||
.p-2 {
|
||||
padding: 5px;
|
||||
}
|
||||
.p-2{
|
||||
padding: 5px;
|
||||
}
|
||||
@@ -1,80 +1,93 @@
|
||||
import {
|
||||
decrypt
|
||||
} from "./cookiehelper.js";
|
||||
import {
|
||||
_serverUrl
|
||||
} from "./setting.js";
|
||||
|
||||
import {decrypt, isAuthenticated} from "./cookiehelper.js";
|
||||
import {_serverUrl} from "./setting.js";
|
||||
let serverUrl = _serverUrl();
|
||||
let baseUserInfo = decrypt(document.cookie.split('=')[1]);
|
||||
let baseSessionId = baseUserInfo.sessionId;
|
||||
|
||||
let baseSessionId, baseUserInfo;
|
||||
if (isAuthenticated()) {
|
||||
baseUserInfo = decrypt(document.cookie.split("=")[1]);
|
||||
baseSessionId = baseUserInfo.sessionId;
|
||||
} else {
|
||||
window.location = "../login";
|
||||
}
|
||||
export function getData(url) {
|
||||
var datastr = null;
|
||||
var method = "GET";
|
||||
let serviceurl = serverUrl + url;
|
||||
var datastr = null;
|
||||
var method = "GET";
|
||||
let serviceurl = serverUrl + url;
|
||||
|
||||
return $.ajax({
|
||||
type: method,
|
||||
url: serviceurl,
|
||||
crossDomain: true,
|
||||
contentType: "application/json",
|
||||
cache: true,
|
||||
jsonp: false,
|
||||
data: datastr,
|
||||
beforeSend: function(xhr) {
|
||||
if (baseUserInfo != undefined && baseUserInfo != null) {
|
||||
xhr.setRequestHeader("Authorization", "Basic " + JSON.parse(baseUserInfo).sessionId);
|
||||
xhr.setRequestHeader('geoposition', 0 + ':' + 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
return $.ajax({
|
||||
type: method,
|
||||
url: serviceurl,
|
||||
crossDomain: true,
|
||||
contentType: "application/json",
|
||||
cache: true,
|
||||
jsonp: false,
|
||||
data: datastr,
|
||||
beforeSend: function (xhr) {
|
||||
if (baseUserInfo != undefined && baseUserInfo != null) {
|
||||
xhr.setRequestHeader(
|
||||
"Authorization",
|
||||
"Basic " + JSON.parse(baseUserInfo).sessionId
|
||||
);
|
||||
xhr.setRequestHeader("geoposition", 0 + ":" + 0);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function getDataObj(url, data, async, type) { //url, data, true, "POST"
|
||||
export function getDataObj(url, data, async, type) {
|
||||
//url, data, true, "POST"
|
||||
|
||||
let serviceurl = serverUrl + url;
|
||||
return $.ajax({
|
||||
type: type,
|
||||
url: serviceurl,
|
||||
data: JSON.stringify(data),
|
||||
contentType: 'application/json',
|
||||
traditional: true,
|
||||
crossDomain: true,
|
||||
async: async,
|
||||
beforeSend: function(xhr) {
|
||||
if (baseUserInfo != undefined && baseUserInfo != null) {
|
||||
xhr.setRequestHeader('Authorization', 'Basic ' + JSON.parse(baseUserInfo).sessionId);
|
||||
xhr.setRequestHeader('geoposition', 0 + ':' + 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
let serviceurl = serverUrl + url;
|
||||
return $.ajax({
|
||||
type: type,
|
||||
url: serviceurl,
|
||||
data: JSON.stringify(data),
|
||||
contentType: "application/json",
|
||||
traditional: true,
|
||||
crossDomain: true,
|
||||
async: async,
|
||||
beforeSend: function (xhr) {
|
||||
if (baseUserInfo != undefined && baseUserInfo != null) {
|
||||
xhr.setRequestHeader(
|
||||
"Authorization",
|
||||
"Basic " + JSON.parse(baseUserInfo).sessionId
|
||||
);
|
||||
xhr.setRequestHeader("geoposition", 0 + ":" + 0);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function formatLocal(dateTime) {
|
||||
var hou = new Date(dateTime).getHours(),
|
||||
sec, min, day, month, years;
|
||||
if (hou < 24) {
|
||||
min = new Date(dateTime).getMinutes();
|
||||
if (min < 60) {
|
||||
sec = new Date(dateTime).getSeconds();
|
||||
if (sec < 60) {
|
||||
return sec + ' Seconds';
|
||||
}
|
||||
} else {
|
||||
return min + ' Minutes';
|
||||
}
|
||||
return hou + ' Hours';
|
||||
} else { //24 >
|
||||
day = new Date(dateTime).getHours();
|
||||
if (day > 31) { // 31 day
|
||||
month = new Date(dateTime).getMonth();
|
||||
if (month > 12) { // 12 months
|
||||
years = new Date(dateTime).getFullYear();
|
||||
return years + ' Years';
|
||||
}
|
||||
return month + ' month';
|
||||
}
|
||||
return day + ' day';
|
||||
var hou = new Date(dateTime).getHours(),
|
||||
sec,
|
||||
min,
|
||||
day,
|
||||
month,
|
||||
years;
|
||||
if (hou < 24) {
|
||||
min = new Date(dateTime).getMinutes();
|
||||
if (min < 60) {
|
||||
sec = new Date(dateTime).getSeconds();
|
||||
if (sec < 60) {
|
||||
return sec + " Seconds";
|
||||
}
|
||||
} else {
|
||||
return min + " Minutes";
|
||||
}
|
||||
}
|
||||
return hou + " Hours";
|
||||
} else {
|
||||
//24 >
|
||||
day = new Date(dateTime).getHours();
|
||||
if (day > 31) {
|
||||
// 31 day
|
||||
month = new Date(dateTime).getMonth();
|
||||
if (month > 12) {
|
||||
// 12 months
|
||||
years = new Date(dateTime).getFullYear();
|
||||
return years + " Years";
|
||||
}
|
||||
return month + " month";
|
||||
}
|
||||
return day + " day";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
const cryptoProvider = window['CryptoJS'];
|
||||
const cryptoAlgorithm = window['CryptoJS'].AES;
|
||||
const _secretKey = 'unibase';
|
||||
|
||||
const cryptoProvider = window["CryptoJS"];
|
||||
const cryptoAlgorithm = window["CryptoJS"].AES;
|
||||
const _secretKey = "unibase";
|
||||
export function encrypt(content) {
|
||||
return cryptoAlgorithm.encrypt(content, _secretKey).toString();
|
||||
}
|
||||
@@ -13,29 +12,29 @@ export function decrypt(encoded) {
|
||||
}
|
||||
|
||||
export function setCookie(cname, cvalue, exdays) {
|
||||
let _cookievalue = '';
|
||||
let _cookievalue = "";
|
||||
if (cvalue) {
|
||||
_cookievalue = encrypt(cvalue);
|
||||
}
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
|
||||
var expires = 'expires=' + d.toUTCString();
|
||||
var expires = "expires=" + d.toUTCString();
|
||||
document.cookie =
|
||||
cname +
|
||||
'=' +
|
||||
"=" +
|
||||
_cookievalue +
|
||||
';' +
|
||||
";" +
|
||||
expires +
|
||||
';path=/;samesite=none;secure=true';
|
||||
";path=/;samesite=none;secure=true";
|
||||
}
|
||||
|
||||
export function getCookie(cname) {
|
||||
var name = cname + '=';
|
||||
var name = cname + "=";
|
||||
var decodedCookie = decodeURIComponent(document.cookie);
|
||||
var ca = decodedCookie.split(';');
|
||||
var ca = decodedCookie.split(";");
|
||||
for (var i = 0; i < ca.length; i++) {
|
||||
var c = ca[i];
|
||||
while (c.charAt(0) === ' ') {
|
||||
while (c.charAt(0) === " ") {
|
||||
c = c.substring(1);
|
||||
}
|
||||
|
||||
@@ -45,11 +44,11 @@ export function getCookie(cname) {
|
||||
return cookie_decrypt;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
return "";
|
||||
}
|
||||
|
||||
export function isAuthenticated() {
|
||||
if (getCookie('_idty')) {
|
||||
if (getCookie("_idty")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -1,142 +1,147 @@
|
||||
const serverUrl = 'http://localhost:3086/';
|
||||
const serverUrl = "http://localhost:3086/";
|
||||
let otpid;
|
||||
let sendotp;
|
||||
let unibaseid;
|
||||
async function showOtpBox() {
|
||||
let inputdetails = document.getElementById('txt_PhoneorMail').value;
|
||||
let inputdetails = document.getElementById("txt_PhoneorMail").value;
|
||||
|
||||
let sendnumber = await fetch(serverUrl + 'account/getuserbyphoneormail/' + inputdetails + '/' + inputdetails)
|
||||
let textdata = await sendnumber.json();
|
||||
if (textdata.result != null) {
|
||||
unibaseid = textdata.result.unibaseId;
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
let sendnumber = await fetch(
|
||||
serverUrl +
|
||||
"account/getuserbyphoneormail/" +
|
||||
inputdetails +
|
||||
"/" +
|
||||
inputdetails
|
||||
);
|
||||
let textdata = await sendnumber.json();
|
||||
if (textdata.result != null) {
|
||||
unibaseid = textdata.result.unibaseId;
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
|
||||
var raw = JSON.stringify({
|
||||
"FirstName": "",
|
||||
"LastName": "",
|
||||
"ContactNumber": "",
|
||||
"Email": "",
|
||||
"TenantName": "",
|
||||
"ContactOrEmail": inputdetails,
|
||||
"IsSignup": false,
|
||||
"IsRegisterUser": false,
|
||||
"IsForgotPswd": true,
|
||||
"UnibaseId": unibaseid,
|
||||
"OtpId": 0,
|
||||
"UserOtp": ""
|
||||
});
|
||||
var raw = JSON.stringify({
|
||||
FirstName: "",
|
||||
LastName: "",
|
||||
ContactNumber: "",
|
||||
Email: "",
|
||||
TenantName: "",
|
||||
ContactOrEmail: inputdetails,
|
||||
IsSignup: false,
|
||||
IsRegisterUser: false,
|
||||
IsForgotPswd: true,
|
||||
UnibaseId: unibaseid,
|
||||
OtpId: 0,
|
||||
UserOtp: "",
|
||||
});
|
||||
|
||||
var requestOptions = {
|
||||
method: 'POST',
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: 'follow'
|
||||
};
|
||||
var requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow",
|
||||
};
|
||||
|
||||
fetch(serverUrl + 'account/sendotp', requestOptions)
|
||||
.then(response => response.text())
|
||||
.then(function(result) {
|
||||
optid = result;
|
||||
document.getElementById('div_ForgotPswd').style.display = 'none';
|
||||
document.getElementById('modal_Otp').style.display = 'block';
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
})
|
||||
.catch(error => console.log('error', error));
|
||||
} else {
|
||||
let html = '<div class="p-2"><span class="error-warning">Error !</span> Email/Phonenumber does not exist</div>';
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
let error = document.getElementById('div_ValidationSummary');
|
||||
error.insertAdjacentHTML('beforeend', html);
|
||||
}
|
||||
fetch(serverUrl + "account/sendotp", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then(function (result) {
|
||||
optid = result;
|
||||
document.getElementById("div_ForgotPswd").style.display = "none";
|
||||
document.getElementById("modal_Otp").style.display = "block";
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
})
|
||||
.catch((error) => console.log("error", error));
|
||||
} else {
|
||||
let html =
|
||||
'<div class="p-2"><span class="error-warning">Error !</span> Email/Phonenumber does not exist</div>';
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
let error = document.getElementById("div_ValidationSummary");
|
||||
error.insertAdjacentHTML("beforeend", html);
|
||||
}
|
||||
}
|
||||
|
||||
/*verify otp*/
|
||||
async function showPasswordBox() {
|
||||
let inputdetails = document.getElementById('txt_Code').value;
|
||||
if (inputdetails.length > 0) {
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
var raw = JSON.stringify({
|
||||
"FirstName": "",
|
||||
"LastName": "",
|
||||
"ContactNumber": "",
|
||||
"Email": "",
|
||||
"TenantName": "",
|
||||
"ContactOrEmail": "",
|
||||
"IsForgotPswd": false,
|
||||
"IsRegisterUser": false,
|
||||
"IsSignup": true,
|
||||
"UnibaseId": "",
|
||||
"OtpId": optid,
|
||||
"UserOtp": inputdetails
|
||||
});
|
||||
|
||||
var requestOptions = {
|
||||
method: 'POST',
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: 'follow'
|
||||
};
|
||||
|
||||
fetch(serverUrl + 'account/verifyotp', requestOptions)
|
||||
.then(response => response.text())
|
||||
.then(function(result) {
|
||||
let data = JSON.parse(result);
|
||||
if (data.result.contactConfirmed == true) {
|
||||
document.getElementById('modal_Otp').style.display = 'none';
|
||||
document.getElementById('div_ResetPswd').style.display = 'block';
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
} else {
|
||||
let html = '<div class="p-2" ><span class="error-warning">Error !</span> Enter Valid OTP</div>';
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
let error = document.getElementById('div_ValidationSummary');
|
||||
error.insertAdjacentHTML('beforeend', html);
|
||||
}
|
||||
})
|
||||
.catch(error => console.log('error', error));
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
let inputdetails = document.getElementById("txt_Code").value;
|
||||
if (inputdetails.length > 0) {
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
var raw = JSON.stringify({
|
||||
FirstName: "",
|
||||
LastName: "",
|
||||
ContactNumber: "",
|
||||
Email: "",
|
||||
TenantName: "",
|
||||
ContactOrEmail: "",
|
||||
IsForgotPswd: false,
|
||||
IsRegisterUser: false,
|
||||
IsSignup: true,
|
||||
UnibaseId: "",
|
||||
OtpId: optid,
|
||||
UserOtp: inputdetails,
|
||||
});
|
||||
|
||||
var requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow",
|
||||
};
|
||||
|
||||
fetch(serverUrl + "account/verifyotp", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then(function (result) {
|
||||
let data = JSON.parse(result);
|
||||
if (data.result.contactConfirmed == true) {
|
||||
document.getElementById("modal_Otp").style.display = "none";
|
||||
document.getElementById("div_ResetPswd").style.display = "block";
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
} else {
|
||||
let html =
|
||||
'<div class="p-2" ><span class="error-warning">Error !</span> Enter Valid OTP</div>';
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
let error = document.getElementById("div_ValidationSummary");
|
||||
error.insertAdjacentHTML("beforeend", html);
|
||||
}
|
||||
})
|
||||
.catch((error) => console.log("error", error));
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
function showSuccessBox() {
|
||||
let txt_NewPassword = document.getElementById('txt_NewPassword').value;
|
||||
let txt_ConfirmPassword = document.getElementById('txt_ConfirmPassword').value;
|
||||
if (txt_NewPassword == txt_ConfirmPassword) {
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
var raw = JSON.stringify({
|
||||
"Password": txt_NewPassword,
|
||||
"UserName": unibaseid
|
||||
});
|
||||
var requestOptions = {
|
||||
method: 'POST',
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: 'follow'
|
||||
};
|
||||
fetch(serverUrl + 'account/updatepassword', requestOptions)
|
||||
.then(response => response.text())
|
||||
.then(function(result) {
|
||||
let updatepassword = JSON.parse(result);
|
||||
let message = updatepassword.message;
|
||||
if (message == 'Password Updated Successfully') {
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
document.getElementById('div_ResetPswd').style.display = 'none';
|
||||
document.getElementById('div_SuccessMsg').style.display = 'block';
|
||||
}
|
||||
})
|
||||
.catch(error => console.log('error', error));
|
||||
|
||||
} else {
|
||||
let html = '<div class="p-2"> <span class="error-warning">Error !</span> Password Does not Match</div>';
|
||||
document.getElementById('div_ValidationSummary').innerHTML = "";
|
||||
let error = document.getElementById('div_ValidationSummary');
|
||||
error.insertAdjacentHTML('beforeend', html);
|
||||
}
|
||||
|
||||
}
|
||||
let txt_NewPassword = document.getElementById("txt_NewPassword").value;
|
||||
let txt_ConfirmPassword = document.getElementById(
|
||||
"txt_ConfirmPassword"
|
||||
).value;
|
||||
if (txt_NewPassword == txt_ConfirmPassword) {
|
||||
var myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
var raw = JSON.stringify({
|
||||
Password: txt_NewPassword,
|
||||
UserName: unibaseid,
|
||||
});
|
||||
var requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow",
|
||||
};
|
||||
fetch(serverUrl + "account/updatepassword", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then(function (result) {
|
||||
let updatepassword = JSON.parse(result);
|
||||
let message = updatepassword.message;
|
||||
if (message == "Password Updated Successfully") {
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
document.getElementById("div_ResetPswd").style.display = "none";
|
||||
document.getElementById("div_SuccessMsg").style.display = "block";
|
||||
}
|
||||
})
|
||||
.catch((error) => console.log("error", error));
|
||||
} else {
|
||||
let html =
|
||||
'<div class="p-2"> <span class="error-warning">Error !</span> Password Does not Match</div>';
|
||||
document.getElementById("div_ValidationSummary").innerHTML = "";
|
||||
let error = document.getElementById("div_ValidationSummary");
|
||||
error.insertAdjacentHTML("beforeend", html);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import {
|
||||
getCookie
|
||||
} from "./cookiehelper.js";
|
||||
import {
|
||||
initListIndex
|
||||
} from "./list.index.js";
|
||||
|
||||
initListIndex();
|
||||
|
||||
import {getCookie, isAuthenticated} from "./cookiehelper.js";
|
||||
import {initListIndex} from "./list.index.js";
|
||||
if (isAuthenticated()) {
|
||||
initListIndex();
|
||||
} else {
|
||||
window.location = "../login";
|
||||
}
|
||||
|
||||
@@ -1,241 +1,679 @@
|
||||
/*Data loading start here*/
|
||||
import {
|
||||
getCookie
|
||||
} from "./cookiehelper.js";
|
||||
import {getCookie, isAuthenticated} from "./cookiehelper.js";
|
||||
import {getData, getDataObj} from "./base.js";
|
||||
import {_serverUrl} from "./setting.js";
|
||||
export var connection;
|
||||
|
||||
import {
|
||||
getData,
|
||||
getDataObj
|
||||
} from "./base.js";
|
||||
|
||||
function loadData() {
|
||||
getData(
|
||||
"apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/20"
|
||||
).then(function(result) {
|
||||
let response = JSON.parse(result.result);
|
||||
if (response.length != 0) {
|
||||
// Notifcations
|
||||
let bdyUI = '<div class="accordion" id="notifi-list">';
|
||||
for (var i = 0; i < response.length; i++) {
|
||||
bdyUI += `<li class="item-li" id="${
|
||||
response[i].ReminderId
|
||||
}" data-ref="${
|
||||
response[i].RedirectOptions.RefId
|
||||
}" data-installedAppId="${
|
||||
response[i].RedirectOptions.InstalledAppId
|
||||
}" data-formId="${response[i].RedirectOptions.CreateFormId}">
|
||||
<div class="accordion-header" id="accHeader-${
|
||||
response[i].ReminderId
|
||||
}">
|
||||
<div class="notifiListItms accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#collapse-${
|
||||
response[i].ReminderId
|
||||
}" aria-expanded="false" aria-controls="collapseOne">
|
||||
<div class="row m-0 w-100 p-0 ">
|
||||
<div class="col-1 ">
|
||||
<input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
|
||||
</div>
|
||||
<div class="col-4 text-truncate">
|
||||
<span class="mx-1">${
|
||||
response[i].Subject
|
||||
}</span>
|
||||
</div>
|
||||
<div class="col-5 text-truncate">
|
||||
<span class="mx-1">${
|
||||
response[i].Message
|
||||
}</span>
|
||||
</div>
|
||||
<div class="col-2 text-truncate">
|
||||
<span class="mx-1">22 minutes ago</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="collapse-${
|
||||
response[i].ReminderId
|
||||
}" class="accordion-collapse collapse" aria-labelledby="accHeader-${
|
||||
response[i].ReminderId
|
||||
}" data-bs-parent="#notifi-list">
|
||||
<div class="accordion-body" id="accBody${
|
||||
response[i].ReminderId
|
||||
}">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>`;
|
||||
}
|
||||
bdyUI += "</div>";
|
||||
$(".bdy-ul").append(bdyUI);
|
||||
|
||||
$(".notifiListItms").on("click", function() {
|
||||
let _this = $(this).parents(".item-li");
|
||||
let obj = {
|
||||
FromDate: "2022/11/30",
|
||||
InstalledAppId: Number($(_this).attr("data-installedAppId")),
|
||||
RecordId: Number($(_this).attr("data-ref")),
|
||||
ToDate: "2022/11/30",
|
||||
};
|
||||
//let obj = { "FromDate": "2022/11/30", "InstalledAppId": 102530270000109, "RecordId": 102533490346298, "ToDate": "2022/11/30" };
|
||||
getDataObj(
|
||||
"apis/v4/unibase/platform/widgets/getdefaultwidget",
|
||||
obj,
|
||||
true,
|
||||
"POST"
|
||||
).then(function(response) {
|
||||
let res = JSON.parse(response.result),
|
||||
html = "";
|
||||
if (response.message == "200" && response.errors == null) {
|
||||
html = `<ul class="p-0 m-0 d-flex flex-row">`;
|
||||
if (
|
||||
res.AppConfigurations != null &&
|
||||
res.AppConfigurations.length > 0
|
||||
) {
|
||||
for (var k = 0; k < res.AppConfigurations.length; k++) {
|
||||
html += `<li class="mx-2 btn-outline-primary btn btn-sm">${res.AppConfigurations[k].SettingName}</li>`;
|
||||
}
|
||||
} else {
|
||||
html += `<li class="p-1 my-0 alert alert-danger" role="alert">
|
||||
App Configurations Not configure
|
||||
</li>`;
|
||||
}
|
||||
if (res.Stages != null) {
|
||||
for (var x = 0; x < res.Stages.length; x++) {
|
||||
if (res.Stages[x].IsDefault) {
|
||||
html += `<li class="ml-auto">
|
||||
<a class="btn btn-sm btn-secondary dropdown-toggle" href="javascript:void(0)" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
${res.Stages[x].StageName}
|
||||
</a>
|
||||
<ul class="dropdown-menu">`;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < res.Stages.length; i++) {
|
||||
if (!res.Stages[i].IsDefault) {
|
||||
html += `<li><a class="dropdown-item" href="javascript:void(0);">${res.Stages[i].StageName}</a></li>`;
|
||||
}
|
||||
}
|
||||
html += "</ul></li>";
|
||||
} else {
|
||||
html += `<li class="p-1 my-0 alert alert-danger ml-auto" role="alert">
|
||||
No Stages
|
||||
</li>`;
|
||||
}
|
||||
html += `<li class="p-1 mx-2 my-0 btn-outline-info detailBtn btn btn-sm" data-appid="${Number($(_this).attr("data-installedAppId"))}" data-recordid="${Number($(_this).attr("data-ref"))}">Details-Page</li></ul>`;
|
||||
} else {
|
||||
html += `<div class="alert alert-danger" role="alert">
|
||||
${response.message} ${response.errors}
|
||||
</div>`;
|
||||
}
|
||||
$(_this).find(".accordion-body").html(html);
|
||||
detailClick();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
getData(
|
||||
"apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/20"
|
||||
).then(function(tskResp) {
|
||||
let response = JSON.parse(tskResp.result);
|
||||
if (response.length != 0) {
|
||||
let _tskhtml = '<div class="accordion" id="task-list">';
|
||||
for (var i = 0; i < response.length; i++) {
|
||||
|
||||
_tskhtml += `<li class="item-li" id="${
|
||||
response[i].ReminderId
|
||||
}" data-ref="${
|
||||
response[i].RedirectOptions.RefId
|
||||
}" data-installedAppId="${
|
||||
response[i].RedirectOptions.InstalledAppId
|
||||
}" data-formId="${response[i].RedirectOptions.CreateFormId}">
|
||||
<div class="accordion-header" id="accHeader-${
|
||||
response[i].ReminderId
|
||||
}">
|
||||
<div class="tskListItms accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#collapse-${
|
||||
response[i].ReminderId
|
||||
}" aria-expanded="false" aria-controls="collapseOne">
|
||||
<div class="row m-0 w-100 p-0 ">
|
||||
<div class="col-1 ">
|
||||
<input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
|
||||
</div>
|
||||
<div class="col-4 text-truncate">
|
||||
<span class="mx-1">${
|
||||
response[i].Subject
|
||||
}</span>
|
||||
</div>
|
||||
<div class="col-5 text-truncate">
|
||||
<span class="mx-1">${
|
||||
response[i].Message
|
||||
}</span>
|
||||
</div>
|
||||
<div class="col-2 text-truncate">
|
||||
<span class="mx-1">2 seconds</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="collapse-${
|
||||
response[i].ReminderId
|
||||
}" class="accordion-collapse collapse" aria-labelledby="accHeader-${
|
||||
response[i].ReminderId
|
||||
}" data-bs-parent="#notifi-list">
|
||||
<div class="accordion-body" id="accBody${
|
||||
response[i].ReminderId
|
||||
}">
|
||||
<ul class="p-0 m-0 d-flex flex-row justify-content-between">
|
||||
<li class="mx-2 btn-outline-success btn btn-sm">Confirm</li>
|
||||
<li class="mx-2 btn-outline-danger btn btn-sm">Reject</li>
|
||||
<li class="mx-2 btn-outline-primary btn btn-sm">Close</li>
|
||||
<li class="mx-2 btn-outline-info detailBtn btn btn-sm" data-appId="${response[i].RedirectOptions.InstalledAppId}" data-recordId="${response[i].RedirectOptions.RefId}">Details-Page</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>`;
|
||||
}
|
||||
_tskhtml += "</div>";
|
||||
$(".bdy-ul").append(_tskhtml);
|
||||
detailClick()
|
||||
}
|
||||
});
|
||||
export function dateTimeFormat(dateTime) {
|
||||
var date = moment.utc(dateTime).local();
|
||||
var difmonths = moment().diff(date, "months");
|
||||
if (difmonths == 0) {
|
||||
return moment(dateTime).fromNow();
|
||||
}
|
||||
return date.format("DD MMM, YYYY HH:mm");
|
||||
}
|
||||
export function detailClick(){
|
||||
$('.detailBtn').click(function() {
|
||||
$('.bdy-ul').addClass('d-none');
|
||||
let installedAppId = +$(this).attr('data-appId');
|
||||
let recordId = +$(this).attr('data-recordId')
|
||||
// Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(105013010001972,105010260000090,'Details','null',6,0,null)
|
||||
const cookie = getCookie('_idty');
|
||||
if (cookie) {
|
||||
const {
|
||||
unibaseId,
|
||||
tenantId,
|
||||
userId
|
||||
} = JSON.parse(cookie);
|
||||
debugger;
|
||||
$('#detailIframe').html(
|
||||
`<iframe width="100%" style="min-height:746px" name="srcframe" id="srcframe" class="srcframe" src="http://localhost:3086/#/${unibaseId}/${tenantId}/${userId}/${recordId}/${installedAppId}/loadDetail"></iframe>`
|
||||
);
|
||||
|
||||
function createLoad(data) {
|
||||
let html = "";
|
||||
if (data.length != 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
html += `<li class="p-0">
|
||||
<a href="javascript:;" class="dropdown-item create-form-btn" data-AppConfigType="${data[i].AppConfigType}" data-AppPermissionId="${data[i].AppPermissionId}" data-AppConfigurationId="${data[i].AppConfigurationId}" data-formid="${data[i].FormId}" data-installedAppid="${data[i].InstalledAppId}">${data[i].AppTitle}</a>
|
||||
</li>`;
|
||||
}
|
||||
} else {
|
||||
html += `<li class="p-0">Apps are Not Installed</li>`;
|
||||
}
|
||||
$("#crte-btn-lst").html(html);
|
||||
$(".create-form-btn").on("click", function () {
|
||||
const date = new Date();
|
||||
let number = date.getTime();
|
||||
let serverUrl = _serverUrl();
|
||||
let appName = $(this).text();
|
||||
let formId = $(this).attr("data-formid");
|
||||
let installedAppId = $(this).attr("data-installedappid");
|
||||
let appConfigurationId = $(this).attr("data-appconfigurationid");
|
||||
let pk_id = 0;
|
||||
const cookie = getCookie("_idty");
|
||||
let fomrhtml = "";
|
||||
let width = iFrmeWdth();
|
||||
if (cookie) {
|
||||
const {unibaseId, tenantId, userId} = JSON.parse(cookie);
|
||||
|
||||
fomrhtml = `<div>
|
||||
<div class="frm-ifre frm-ifre-${number}" data-formId="${formId}" id="frm-ifre-${number}" style="right:${width}px">
|
||||
<div>
|
||||
<ul class="m-0 p-0">
|
||||
<li class="frm-hdr d-none" data-frm_hdr="true">
|
||||
<div class="app-title-ifrm">${appName}</div>
|
||||
<div class="ctrl">
|
||||
<a href="javascript:;" class="minimize" data-unid="${number}" data-ispopup="true"><span><i class="la la-minus"></i></span></a>
|
||||
<a href="javascript:;" class="maximum" data-unid="${number}"><span><i class="la la-expand"></i></span></a>
|
||||
<a href="javascript:;" class="compress d-none" data-unid="${number}"><span><i class="las la-compress"></i></span></a>
|
||||
<a href="javascript:;" class="close" data-unid="${number}"><span><i class="la la-times"></i></span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="frm-bdy">
|
||||
<iframe class="ld-frm-src" data-ispopup="false" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${installedAppId}/${formId}/0/${appConfigurationId}/false/0/loadform"></iframe>
|
||||
</li>
|
||||
<li class="frm-ftr"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
$("#list-page").parent("body").append(fomrhtml);
|
||||
window.window.postMessage("ld-frm-ifrme", "*");
|
||||
hdrCrtnClckEvnt(number);
|
||||
});
|
||||
}
|
||||
|
||||
function hdrCrtnClckEvnt(number) {
|
||||
$(`.frm-ifre-${number} .minimize`).on("click", function () {
|
||||
let id = $(this).attr("data-unid");
|
||||
let isPopUpState = $(this).attr("data-ispopup");
|
||||
let height = $(`.frm-ifre-${id}`).find(".frm-hdr").height();
|
||||
$(".list-page").css({filter: "unset", opacity: 1});
|
||||
$(`.frm-ifre-${id} .frm-bdy`).toggleClass("d-none");
|
||||
if (isPopUpState == "true") {
|
||||
// popup large
|
||||
$(this).attr("data-ispopup", "false");
|
||||
$(this).parents('.frm-hdr').removeClass('d-none').attr('data-frm_hdr', 'false');
|
||||
$(`.frm-ifre-${id} .maximum`).addClass("d-none");
|
||||
$(`.frm-ifre-${id} .minimize`).attr("data-ispopup", "false");
|
||||
$(`.frm-ifre-${id}`).parent().removeClass("wrap-iframe");
|
||||
$(`.frm-ifre-${id}`).attr("data-ispop_up", "false");
|
||||
$(`.frm-ifre-${id}`).css({
|
||||
width: "20%",
|
||||
height: height,
|
||||
bottom: "0px",
|
||||
});
|
||||
} else {
|
||||
// popup small
|
||||
$(this).attr("data-ispopup", "true");
|
||||
$(this).parents('.frm-hdr').addClass('d-none').attr('data-frm_hdr', 'true');
|
||||
$(`.frm-ifre-${id} .maximum`).removeClass("d-none");
|
||||
$(`.frm-ifre-${id} .minimize`).attr("data-ispopup", "true");
|
||||
$(`.frm-ifre-${id}`).attr("data-ispop_up", "true");
|
||||
$(`.frm-ifre-${id}`).css({
|
||||
width: "",
|
||||
height: "",
|
||||
bottom: "",
|
||||
});
|
||||
if($(this).parents('.frm-hdr').attr("data-saveform") == 'true'){
|
||||
$(this).parents('.frm-hdr').removeClass('d-none')
|
||||
}
|
||||
}
|
||||
resetwidth();
|
||||
});
|
||||
$(`.frm-ifre-${number} .maximum`).on("click", function () {
|
||||
let id = $(this).attr("data-unid");
|
||||
$(this).addClass("d-none");
|
||||
$(this).siblings(".compress").removeClass("d-none");
|
||||
$(`.frm-ifre-${id}`).find(".ld-frm-src").attr("data-ispopup", "true");
|
||||
$(`.frm-ifre-${id}`).parent().addClass("wrap-iframe");
|
||||
$(`.frm-ifre-${id}`).css({width: "75%", position: "unset"});
|
||||
$(`.frm-ifre-${id} .ld-frm-src`).css({width: "100%"});
|
||||
$(`.frm-ifre-${id} .frm-bdy`).removeClass("d-none");
|
||||
$("#list-page").css({filter: "blur(2px)", opacity: "0.5"});
|
||||
$(`.frm-ifre-${id}`).find(".minimize").toggleClass("d-none");
|
||||
});
|
||||
$(`.frm-ifre-${number} .compress`).on("click", function () {
|
||||
let id = $(this).attr("data-unid");
|
||||
$(this).addClass("d-none");
|
||||
$(this).siblings(".maximum").removeClass("d-none");
|
||||
$(`.frm-ifre-${id}`).parent().removeClass("wrap-iframe");
|
||||
$(`.frm-ifre-${id}`).css({width: "", position: ""});
|
||||
$(`.frm-ifre-${id} .ld-frm-src`).css({width: ""});
|
||||
$("#list-page").css({filter: "", opacity: ""});
|
||||
$(`.frm-ifre-${id}`).find(".minimize").toggleClass("d-none");
|
||||
});
|
||||
$(`.frm-ifre-${number} .close`).on("click", function () {
|
||||
let id = $(this).attr("data-unid");
|
||||
$("#list-page").css({filter: "unset", opacity: "1"});
|
||||
$(`.frm-ifre-${id}`).parent().remove();
|
||||
resetwidth();
|
||||
});
|
||||
}
|
||||
function loadData(ApiPath, isSentBy) {
|
||||
$(".bdy-ul").empty().removeClass("d-none");
|
||||
$(".hdr-ul").removeClass("d-none");
|
||||
getData(ApiPath).then(function (result) {
|
||||
let response = JSON.parse(result.result),
|
||||
html = "";
|
||||
const cookie = getCookie("_idty");
|
||||
if (response.length != 0) {
|
||||
response.forEach(function (Item, index) {
|
||||
let isSent = false;
|
||||
if (Item.FromUserName == JSON.parse(cookie).name) {
|
||||
isSent = true;
|
||||
}
|
||||
|
||||
});
|
||||
if (Item.FromUserName == null) {
|
||||
Item.FromUserName = 'Please check it Notification Team';
|
||||
}
|
||||
//if(window.innerWidth >1024){ // Desktop Width
|
||||
html += `<li class="pdng lst-Notifi" data-ReminderTypeId="${Item.ReminderTypeId}" data-reminderurl="${Item.ReminderUrl}" data-reminderId="${Item.ReminderId}" data-isreaded="${Item.ReminderStatusId}" data-issentby=${isSent} data-refId="${Item.RedirectOptions.RefId}" data-instlledAppId="${Item.RedirectOptions.InstalledAppId}" data-formid="${Item.RedirectOptions.CreateFormId}" data-urlType="${Item.UrlType}">`;
|
||||
html += `<div class="flex-shrink-0 wi-chck"><div class="wi-item ml-0"><input class="form-check-input mr-2" type="checkbox" value="" id="flexCheckDefault"></div><div class="wi-item">`;
|
||||
if (Item.ReminderTypeId == 1) {
|
||||
html += `<i class="ri-star-fill" style="opacity:0.6"></i>`;
|
||||
} else {
|
||||
html += `<i class="ri-star-line"></i>`;
|
||||
}
|
||||
html += `</div></div>`; // check-box
|
||||
html += `<div class="wi-sbjt-msge mx-1">`;
|
||||
html += `<div class="wi-from wi-item text-truncate"><span data-isreaded="${Item.ReminderStatusId}">${Item.FromUserName}</span></div>`;
|
||||
html += `<div class="wi-sbjt wi-item text-truncate flex-shrink-1"><span class="mx-2">${Item.Subject}</span></div><div>-</div>`; // Subject
|
||||
html += `<div class="wi-msge wi-item text-truncate"><span class="mx-2">${Item.Message}</span></div>`; // Message
|
||||
html += `</div>`;
|
||||
html += `<div class="wi-time time flex-shrink-0 ml-auto"><span>${dateTimeFormat(
|
||||
Item.ReminderDate
|
||||
)}</span></div>`;
|
||||
html += `<div class="hover">
|
||||
<ul>`;
|
||||
if (Item.RedirectOptions.CreateFormId != 0) {
|
||||
html += ` <li class="mx-2 hover-item"><a class="formBtn" data-urltype="Form" href="javascript:;"><i class="ri-store-line"></i></a></li>`;
|
||||
} else {
|
||||
html += ` <li class="mx-2 hover-item"><a class="detailBtn" data-urltype=${Item.UrlType} href="javascript:;"><i class="ri-information-line"></i></a></li>`;
|
||||
}
|
||||
html += ` </ul>
|
||||
</div>`;
|
||||
html += "</li>";
|
||||
/* }else{ // Mobile Width card view
|
||||
html += `<li class="pdng lst-Notifi" data-ReminderTypeId="${Item.ReminderTypeId}" data-reminderurl="${Item.ReminderUrl}" data-reminderId="${Item.ReminderId}" data-isreaded="${Item.ReminderStatusId}" data-issentby=${isSent} data-refId="${Item.RedirectOptions.RefId}" data-instlledAppId="${Item.RedirectOptions.InstalledAppId}" data-formid="${Item.RedirectOptions.CreateFormId}" data-urlType="${Item.UrlType}">`
|
||||
html += ` <div><span class="align-items-center d-flex justify-content-center sdr-nme fs-4">S</span></div>
|
||||
<div class="d-flex flex-column ms-2 w-100">
|
||||
<div class="d-flex justify-content-between align-items-baseline">
|
||||
<span class="me-2 text-truncate">${Item.FromUserName}</span>
|
||||
<span class="w-60p text-truncate font-11">${dateTimeFormat(
|
||||
Item.ReminderDate
|
||||
)}</span>
|
||||
</div>
|
||||
<div><span class="fw-500">${Item.Subject}</span></div>
|
||||
<div class="d-flex justify-content-between"><span>${Item.Message}</span><span>`;
|
||||
if (Item.ReminderTypeId == 1) {
|
||||
html += `<i class="ri-star-fill" style="opacity:0.6"></i>`;
|
||||
} else {
|
||||
html += `<i class="ri-star-line"></i>`;
|
||||
}
|
||||
html += `</span></div>
|
||||
</div>`
|
||||
html +=`</li>`
|
||||
}*/
|
||||
|
||||
});
|
||||
$(".ctr-lst-pge .bdy-ul").html(html);
|
||||
if (isSentBy) {
|
||||
$(".pdng.lst-Notifi").addClass("d-none");
|
||||
$(".pdng.lst-Notifi[data-issentby='true']").removeClass("d-none");
|
||||
}
|
||||
detailClick();
|
||||
//stagesLoad();
|
||||
}
|
||||
});
|
||||
|
||||
getData("apis/v4/unibase/reminders/platform/getunreadreminderscount").then(
|
||||
function (response) {
|
||||
let result = JSON.parse(response.result);
|
||||
let count = Number(result.NotificationCount) + Number(result.TasksCount);
|
||||
$('[data-buttontype="inbox"] .length.rounded-pill').remove();
|
||||
$('[data-buttontype="inbox"]').append(
|
||||
`<span class="length badge rounded-pill bg-light text-dark ml-auto" data-TasksCount="${result.TasksCount}" data-notifiCount="${result.NotificationCount}">${count}</span>`
|
||||
);
|
||||
$('[data-notification="count"]').text(count);
|
||||
if (count > 40) {
|
||||
$('[data-paggtn="true"]').text(`1-40`);
|
||||
} else {
|
||||
$(".li-pgn").empty();
|
||||
}
|
||||
}
|
||||
);
|
||||
if(window.innerWidth < 1024){
|
||||
$('.ctr-lst-pge').on('click', function(){
|
||||
$('.mnNvIcn').click()
|
||||
})
|
||||
}
|
||||
}
|
||||
function iFrmeWdth() {
|
||||
let width = 0,
|
||||
erwdth = 15;
|
||||
$(".frm-ifre").each(function (i, e) {
|
||||
if ($(this).length == 0) {
|
||||
erwdth = 0;
|
||||
}
|
||||
if (window.innerWidth > width) {
|
||||
width = width + $(this).width() + erwdth;
|
||||
}
|
||||
});
|
||||
return width;
|
||||
}
|
||||
function resetwidth() {
|
||||
let width = 0,
|
||||
erwdth = 15;
|
||||
$(".frm-ifre").each(function (i, e) {
|
||||
if (i == 0) {
|
||||
$(this).css("right", width + "px");
|
||||
}
|
||||
if (i != 0) {
|
||||
$(this).css("right", width + "px");
|
||||
}
|
||||
if (window.innerWidth > width) {
|
||||
width = width + $(this).width() + erwdth;
|
||||
}
|
||||
});
|
||||
}
|
||||
export function detailClick() {
|
||||
// Details Popup Abihram popup page
|
||||
$(".wi-sbjt-msge").on("click", function (e) {
|
||||
e.stopPropagation();
|
||||
detailsPage(this, true, "Details-page");
|
||||
});
|
||||
// Details Page Loading
|
||||
$(".detailBtn[data-urltype='Details']").click(function (e) {
|
||||
e.stopPropagation();
|
||||
detailsPage(this, false, "Details-page");
|
||||
});
|
||||
//Form Page Loading
|
||||
$(".formBtn[data-urltype='Form']").on("click", function (e) {
|
||||
e.stopPropagation();
|
||||
detailsPage(this, true, "Form-page");
|
||||
});
|
||||
//List Page Loading
|
||||
$("[data-urltype='List']").on("click", function (e) {
|
||||
e.stopPropagation();
|
||||
detailsPage(this, true, "List-page");
|
||||
});
|
||||
// get stages
|
||||
}
|
||||
export function detailsPage(e, ifrmPopup, isPage) {
|
||||
let serverUrl = _serverUrl();
|
||||
$(".bdy-ul").addClass("d-none");
|
||||
$(".hdr-ul").addClass("d-none");
|
||||
let installedAppId = $(e)
|
||||
.parents(".pdng.lst-Notifi")
|
||||
.attr("data-instlledappid");
|
||||
let recordId = $(e).parents(".pdng.lst-Notifi").attr("data-refid");
|
||||
let reminderid = $(e).parents(".pdng.lst-Notifi").attr("data-reminderid");
|
||||
let remindertype = $(e)
|
||||
.parents(".pdng.lst-Notifi")
|
||||
.attr("data-remindertypeid");
|
||||
// Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(105013010001972,105010260000090,'Details','null',6,0,null)
|
||||
const cookie = getCookie("_idty");
|
||||
if (cookie) {
|
||||
const {unibaseId, tenantId, userId} = JSON.parse(cookie);
|
||||
if (isPage == "Details-page") {
|
||||
$("#detailIframe").html(
|
||||
`<iframe width="100%" style="min-height:calc(100vh - ${$(
|
||||
".tp-bar"
|
||||
).height()}px)" name="srcframe" id="srcframe" class="srcframe" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${recordId}/${installedAppId}/${remindertype}/${reminderid}/${ifrmPopup}/loadDetail"></iframe>`
|
||||
);
|
||||
} else if (isPage == "Form-page") {
|
||||
getData(
|
||||
`apis/v4/unibase/platform/apps/listappconfigurations/installedappid/${installedAppId}`
|
||||
).then(function (result) {
|
||||
let _data = JSON.parse(result.result);
|
||||
let data = _data.filter((x) => x.SettingUrlType == 1);
|
||||
$("#detailIframe").html(
|
||||
`<iframe width="100%" style="min-height:calc(100vh - ${$(
|
||||
".tp-bar"
|
||||
).height()}px)" name="srcframe" id="srcframe" class="srcframe" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${installedAppId}/${
|
||||
data[0].FormId
|
||||
}/0/${
|
||||
data[0].AppConfigurationId
|
||||
}/${reminderid}/${ifrmPopup}/loadform"></iframe>`
|
||||
);
|
||||
});
|
||||
} else if (isPage == "List-page") {
|
||||
$("#detailIframe").html(
|
||||
`<iframe width="100%" style="min-height:calc(100vh - ${$(
|
||||
".tp-bar"
|
||||
).height()}px)" name="srcframe" id="srcframe" class="srcframe" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${installedAppId}/${reminderid}/${ifrmPopup}/loadList"></iframe>`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
export function signaRInit() {
|
||||
var huburl = _serverUrl() + "notificationhub";
|
||||
connection = new window["signalR"].HubConnectionBuilder()
|
||||
.withUrl(huburl)
|
||||
.build();
|
||||
register();
|
||||
}
|
||||
export async function register() {
|
||||
connection.on("sendnotification", (obj) => {
|
||||
$(".ctr-lst-pge .bdy-ul").empty();
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
});
|
||||
const cookie = getCookie("_idty");
|
||||
const {unibaseId, tenantId, userId, sessionId, name} = JSON.parse(cookie);
|
||||
let packet = {
|
||||
UserId: Number(userId),
|
||||
UserName: name,
|
||||
UnibaseId: unibaseId,
|
||||
TenantId: Number(tenantId),
|
||||
SessionId: sessionId,
|
||||
};
|
||||
try {
|
||||
const stringConnection = await connection.start();
|
||||
await connection.invoke("Connect", packet);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
export function resetClckEvnt() {
|
||||
$(".ChtAppIfrme").remove();
|
||||
$(".lft-nav-bar .lft-nav-bar-2").removeClass("d-none");
|
||||
$(".ctr-lst-pge, .rtr-nav-bar").removeClass("d-none");
|
||||
$(".lft-nav-bar").css("width", "");
|
||||
}
|
||||
|
||||
export function initListIndex() {
|
||||
let _userInfo = atob(document.cookie.split("=")[1]);
|
||||
let userInfo = " JSON.parse(_userInfo).result";
|
||||
let sessionId = "userInfo.sessionId";
|
||||
let userInfo = JSON.parse(getCookie("_idty"));
|
||||
let sessionId = userInfo.sessionId;
|
||||
|
||||
let usrinfoHTML = `<li><a class="dropdown-item" href="javascript:void(0);">${userInfo.name}</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);">Cloud Settings</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);">Help</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);">Logoff</a></li>`;
|
||||
$(".icn-circle").text(userInfo?.name?.charAt(0)?.toUpperCase());
|
||||
$(".uindtls").html(usrinfoHTML);
|
||||
signaRInit();
|
||||
let usrinfoHTML = `<li><a class="dropdown-item text-capitalize" href="javascript:void(0);">${userInfo.name}</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);">Help</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);" data-btn="logoff">Logoff</a></li>`;
|
||||
$(".icn-circle").text(userInfo?.name?.charAt(0)?.toUpperCase());
|
||||
$(".uindtls").html(usrinfoHTML);
|
||||
|
||||
// List Page loading
|
||||
$('[data-btn="logoff"]').on("click", function () {
|
||||
document.cookie = "_idty=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||
window.location = "../login";
|
||||
});
|
||||
// List Page loading
|
||||
|
||||
/*Data loading start here*/
|
||||
$(".mnNvIcn").click(function() {
|
||||
$(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap");
|
||||
$(".ctr-lst-pge").toggleClass("lft-nav-bar-Wrap");
|
||||
/*Data loading start here*/
|
||||
$(".nav-lft-item").on("click", function () {
|
||||
$(".nav-lft-item").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
if ($(this).attr("data-application") != "Chat Application") {
|
||||
resetClckEvnt();
|
||||
}
|
||||
});
|
||||
$(".nav-lft-item[data-application='Chat Application']").on(
|
||||
"click",
|
||||
function () {
|
||||
const serverUrl = _serverUrl();
|
||||
const cookie = getCookie("_idty");
|
||||
const {unibaseId, tenantId, userId} = JSON.parse(cookie);
|
||||
$(".lft-nav-bar .lft-nav-bar-2").addClass("d-none");
|
||||
$(".ctr-lst-pge, .rtr-nav-bar").addClass("d-none");
|
||||
$(".lft-nav-bar").css("width", "var(--rtrWidth)");
|
||||
$(".btm-bar .ChtAppIfrme").remove();
|
||||
$(".btm-bar").append(`<div class="ChtAppIfrme w-100">
|
||||
<iframe class="" style="height:100%; width:100%" data-ispopup="false" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/loadChat"></iframe>
|
||||
</div>`);
|
||||
}
|
||||
);
|
||||
$(".mnNvIcn").click(function () {
|
||||
$(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap");
|
||||
$(".ctr-lst-pge").toggleClass("lft-nav-bar-Wrap");
|
||||
if ($(".apps-loading:visible").length != 0) {
|
||||
$(".ctr-lst-pge").css("width", "");
|
||||
$(".ctr-lst-pge").toggleClass("apps-loaded");
|
||||
$(".ctr-lst-pge").toggleClass("apps-loaded-tr");
|
||||
}
|
||||
if(window.innerWidth < 1025){
|
||||
$(".ctr-lst-pge").toggleClass('d-block');
|
||||
$(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap d-flex w-100").css('background-color','rgb(0 0 0 / 50%)');
|
||||
}
|
||||
});
|
||||
$(".mre-drp a.sub-nav-item.more").on("click", function () {
|
||||
$(".sub-nav-item").removeClass("active");
|
||||
if ($(this)[0].className.includes("active")) {
|
||||
$(this).find("i").css("transform", "rotate(0deg)");
|
||||
$(this).removeClass("active");
|
||||
} else {
|
||||
$(this).find("i").css("transform", "rotate(180deg)");
|
||||
$(this).addClass("active");
|
||||
}
|
||||
$(this).siblings(".ul-drpdown").toggleClass("d-none");
|
||||
});
|
||||
$("a.sub-nav-item")
|
||||
.not(".more.active")
|
||||
.on("click", function () {
|
||||
$(".sub-nav-item").not(".more.active").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
loadData();
|
||||
}
|
||||
|
||||
$('[data-buttontype="inbox"], [data-application="Mail Application"]').on(
|
||||
"click",
|
||||
function () {
|
||||
$("#detailIframe").empty();
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
}
|
||||
);
|
||||
window.addEventListener("message", function (e) {
|
||||
if (e.data != undefined) {
|
||||
if(e.data == "Edit-form"){
|
||||
$('.frm-hdr').addClass('d-none')
|
||||
}
|
||||
if (e.data == "closeForm") {
|
||||
$("#detailIframe").empty();
|
||||
$(".hdr-ul, .bdy-ul").removeClass("d-none");
|
||||
$('.frm-bdy [class="close"]')[0].click();
|
||||
}
|
||||
if (e.data == "clickToBack") {
|
||||
$("#detailIframe").empty();
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
}
|
||||
if (e.data.includes("save-form")) {
|
||||
let spilt = e.data.split("/");
|
||||
$(`.frm-ifre[data-formid="${spilt[1]}"] .frm-hdr`).removeClass(
|
||||
"d-none"
|
||||
).attr('data-frm_hdr','false');
|
||||
}
|
||||
if (e.data == "close apps") {
|
||||
$("body").removeClass("d-flex flex-row");
|
||||
$("#detailIframe").empty();
|
||||
$(".hdr-ul, .bdy-ul").removeClass("d-none");
|
||||
$(".apps-loading").remove();
|
||||
$("#list-page").css("width", "100%");
|
||||
$(".lft-nav-bar").removeClass(".lft-nav-bar-Wrap");
|
||||
$(".ctr-lst-pge").removeClass("apps-loaded");
|
||||
$(".ctr-lst-pge").removeClass("apps-loaded-tr");
|
||||
}
|
||||
if (e.data.includes("/")) {
|
||||
let spilt = e.data.split("/");
|
||||
$(
|
||||
`.frm-ifre[data-formid="${spilt[1]}"] .frm-hdr .ctrl .${spilt[0]}`
|
||||
).click();
|
||||
if(spilt[0].includes('success')){
|
||||
$(`.frm-ifre[data-formid="${spilt[1]}"] .frm-hdr`).removeClass("d-none").attr({'data-frm_hdr': 'false', 'data-saveform':'true'});
|
||||
}
|
||||
if(!spilt[0].includes('maximum') && !spilt[0].includes('compress')){
|
||||
$(`.frm-ifre[data-formid="${spilt[1]}"] .frm-hdr`).removeClass("d-none").attr({'data-frm_hdr': 'false'});
|
||||
}
|
||||
}
|
||||
if (e.data == "closeForm_detailIframe") {
|
||||
$("#detailIframe").empty();
|
||||
$(".hdr-ul, .bdy-ul").removeClass("d-none");
|
||||
}
|
||||
}
|
||||
});
|
||||
$('[class="refrsh"]').on("click", function () {
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
getData("apis/v4/unibase/platform/apps/myapps").then(function (response) {
|
||||
if(response.message.includes("User Authentication Failed")){
|
||||
window.location = "../login";
|
||||
}else{
|
||||
let result = JSON.parse(response.result);
|
||||
let html = "<li class='m-0 p-0'><ul class='d-flex flex-wrap m-0 p-0'>";
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
html += `<li class="appsBind" data-myappid="${result[i].MyAppId}">`;
|
||||
if (
|
||||
result[i].SvgIconUrl != undefined &&
|
||||
result[i].SvgIconUrl != null &&
|
||||
result[i].SvgIconUrl != ""
|
||||
) {
|
||||
html += `<span class="svg-icons">${result[i].SvgIconUrl}</span>`;
|
||||
} else {
|
||||
html +=
|
||||
'<span class="svg-icons"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> <path class="biz-svg-highlight-color" d="M16.01,31c-1.38,0-2.77-.09-4.14-.28-3.57-.49-6.58-1.42-9.21-2.86-.25-.14-.53-.42-.57-.71-.02-.19-.05-.37-.07-.56-.17-1.33-.34-2.7-.12-4.09,.31-1.92,1.27-3.07,2.95-3.5,1.88-.49,3.74-1.32,5.7-2.55,.07-.04,.14-.08,.24-.13,.04-.02,.09-.05,.15-.08l.28-.15,2.84,8.94c.03-.07,.05-.14,.08-.21,.05-.14,.1-.28,.15-.42,.19-.51,.38-1.04,.53-1.56,0,0,0-.01,0-.02-.03-.03-.05-.07-.06-.11l-1.46-3.77c-.06-.14-.04-.31,.05-.44,.09-.13,.23-.2,.39-.2h4.52c.16,0,.3,.08,.39,.2,.09,.13,.11,.29,.05,.44l-1.46,3.77s-.04,.09-.07,.13c.01,.05,.02,.09,.04,.14,.23,.6,.45,1.22,.66,1.82,.03,.07,.05,.15,.08,.22l2.83-8.89,.28,.14c.35,.18,.7,.37,1.04,.55,.79,.42,1.53,.81,2.3,1.16,.91,.41,1.82,.74,2.72,.98,1.71,.45,2.69,1.61,2.99,3.54h0c.22,1.38,.04,2.74-.13,4.06-.03,.2-.05,.39-.08,.59-.04,.33-.39,.6-.58,.7-2.61,1.43-5.61,2.36-9.16,2.85-1.38,.19-2.77,.28-4.16,.28Zm-5.11-14.14s-.05,.03-.07,.04c-2,1.26-3.91,2.11-5.85,2.61-1.48,.38-2.29,1.36-2.56,3.07-.21,1.31-.04,2.65,.12,3.94,.02,.19,.05,.37,.07,.56,0,.06,.14,.22,.29,.31,2.57,1.4,5.52,2.32,9.03,2.8,2.71,.37,5.45,.37,8.16,0,3.49-.48,6.43-1.39,8.98-2.79,.16-.09,.3-.24,.3-.3,.02-.2,.05-.39,.08-.59,.17-1.28,.34-2.6,.13-3.91h0c-.27-1.72-1.1-2.71-2.6-3.11-.93-.25-1.87-.59-2.8-1.01-.79-.36-1.54-.76-2.33-1.18-.25-.13-.5-.27-.75-.4l-3.11,9.79-.27-.74c-.12-.32-.23-.65-.34-.97-.21-.6-.42-1.21-.65-1.81-.06-.15-.09-.29-.1-.43v-.18s.14-.06,.14-.06l1.42-3.66h-4.34l1.42,3.66,.11,.07v.15c0,.1-.01,.19-.03,.27-.16,.54-.35,1.08-.54,1.6-.05,.14-.1,.28-.15,.42-.06,.18-.14,.35-.21,.51-.05,.13-.11,.26-.16,.39l-.27,.71-3.1-9.76Z"></path> <path class="biz-svg-highlight-color" d="M16.09,16.2c-.81,0-1.63-.16-2.42-.48-2.36-.98-3.89-3.26-3.89-5.82,0-.62,.51-1.13,1.13-1.13s1.13,.51,1.13,1.13c0,1.64,.98,3.11,2.5,3.74,1.52,.63,3.25,.28,4.41-.88,1.16-1.16,1.51-2.89,.88-4.41-.63-1.52-2.1-2.5-3.74-2.5h-2.45l.66,.66c.44,.44,.44,1.16,0,1.6-.21,.21-.5,.33-.8,.33s-.59-.12-.8-.33l-2.59-2.59c-.21-.21-.33-.5-.33-.8s.12-.59,.33-.8l2.59-2.59c.21-.21,.5-.33,.8-.33s.59,.12,.8,.33c.21,.21,.33,.5,.33,.8s-.12,.59-.33,.8l-.66,.66h2.45c2.56,0,4.84,1.53,5.82,3.89,.98,2.36,.44,5.06-1.37,6.87-1.21,1.21-2.81,1.85-4.45,1.85Zm-5.18-6.9c-.33,0-.6,.27-.6,.6,0,2.34,1.4,4.44,3.56,5.33,2.16,.9,4.63,.41,6.29-1.25s2.15-4.13,1.25-6.29c-.9-2.16-2.99-3.56-5.33-3.56h-3.74l1.58-1.57c.23-.23,.23-.61,0-.85-.23-.23-.62-.23-.85,0l-2.59,2.59c-.11,.11-.18,.27-.18,.42s.06,.31,.18,.42l2.59,2.59c.23,.23,.62,.23,.85,0,.23-.23,.23-.61,0-.85l-1.58-1.57h3.74c1.86,0,3.52,1.11,4.23,2.83,.71,1.72,.32,3.68-.99,4.99-1.31,1.31-3.27,1.7-4.99,.99-1.72-.71-2.83-2.37-2.83-4.23,0-.33-.27-.6-.6-.6Z"></path> </svg></span>';
|
||||
}
|
||||
html += `<span class="appTitle">${result[i].AppTitle}</span></li>`;
|
||||
}
|
||||
html += "</ul></li>";
|
||||
$("#apps-list").html(html);
|
||||
$(".appsBind").on("click", function () {
|
||||
let width = "330px";
|
||||
if(window.innerWidth> 1024){
|
||||
$("#list-page").css("width", `calc(100% - ${width})`);
|
||||
}
|
||||
if( $('.lft-nav-bar-2:visible').length !=0 ){
|
||||
$(".ctr-lst-pge").addClass("apps-loaded-tr");
|
||||
}else{
|
||||
$(".ctr-lst-pge").addClass("apps-loaded lft-nav-bar-Wrap")
|
||||
}
|
||||
let installedAppId = $(this).attr("data-myappid");
|
||||
const cookie = getCookie("_idty");
|
||||
if (cookie) {
|
||||
let serverUrl = _serverUrl();
|
||||
const {unibaseId, tenantId, userId} = JSON.parse(cookie);
|
||||
$("body").addClass("d-flex flex-row");
|
||||
$(".apps-loading").remove();
|
||||
$("#list-page").after(
|
||||
`<section id="" class="apps-loading"><iframe width="100%" style="height:inherit" name="lstSrcFrame" id="lstSrcFrame" class="lstSrcFrame" src="${serverUrl}#/${unibaseId}/${tenantId}/${userId}/${installedAppId}/0/false/loadList"></iframe></section>`
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$(".btn.dropdown-toggle.create").on("click", function () {
|
||||
let appName = [];
|
||||
getData("apis/v4/unibase/platform/apps/myapps").then(async function (res) {
|
||||
let response = await JSON.parse(res.result);
|
||||
jQuery.each(response, async function (index, item) {
|
||||
let installedAppId = Number(item.MyAppId);
|
||||
await getData(
|
||||
`apis/v4/unibase/platform/apps/listappconfigurations/installedappid/${installedAppId}`
|
||||
).then(function (result) {
|
||||
if (
|
||||
result.result != null &&
|
||||
result.result != "" &&
|
||||
result.result != "[]"
|
||||
) {
|
||||
let _data = JSON.parse(result.result);
|
||||
let data = _data.filter((x) => x.SettingUrlType == 1);
|
||||
if (data.length != 0) {
|
||||
appName.push({
|
||||
SettingUrlType: data[0].SettingUrlType,
|
||||
AppTitle: data[0].AppTitle,
|
||||
FormId: data[0].FormId,
|
||||
InstalledAppId: data[0].InstalledAppId,
|
||||
RoleSettingAppId: data[0].RoleSettingAppId,
|
||||
InstalledAppGuid: data[0].InstalledAppGuid,
|
||||
AppConfigurationId: data[0].AppConfigurationId,
|
||||
AppPermissionId: data[0].AppPermissionId,
|
||||
AppConfigType: data[0].AppConfigType,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
await appName.sort(function (a, b) {
|
||||
var a1 = a.AppTitle.toLowerCase().trim(), b1 = b.AppTitle.toLowerCase().trim();
|
||||
if (a1 == b1) return 0;
|
||||
return a1 > b1 ? 1 : -1;
|
||||
});
|
||||
await createLoad(appName);
|
||||
});
|
||||
});
|
||||
});
|
||||
$('[data-buttontype="Starred"]').on("click", function () {
|
||||
let count = 20;
|
||||
if (
|
||||
$('[data-buttontype="inbox"] .length').attr("data-taskscount") !=
|
||||
undefined
|
||||
) {
|
||||
count = $('[data-buttontype="inbox"] .length').attr("data-taskscount");
|
||||
}
|
||||
loadData(
|
||||
`apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/${count}`,
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
$('[data-buttontype="unstarred"]').on("click", function () {
|
||||
let count = 20;
|
||||
if (
|
||||
$('[data-buttontype="inbox"] .length').attr("data-notificount") !=
|
||||
undefined
|
||||
) {
|
||||
count = $('[data-buttontype="inbox"] .length').attr("data-notificount");
|
||||
}
|
||||
loadData(
|
||||
`apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/${count}`,
|
||||
false
|
||||
);
|
||||
});
|
||||
$('[data-buttontype="all"]').on("click", function () {
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
});
|
||||
$('[data-buttontype="read"]').on("click", function () {
|
||||
$(".pdng.lst-Notifi").addClass("d-none");
|
||||
$(".pdng.lst-Notifi[data-isreaded='2']").removeClass("d-none");
|
||||
});
|
||||
$('[data-buttontype="unread"]').on("click", function () {
|
||||
$(".pdng.lst-Notifi").addClass("d-none");
|
||||
$(".pdng.lst-Notifi[data-isreaded='8']").removeClass("d-none");
|
||||
});
|
||||
$('[data-buttontype="sent"]').on("click", function () {
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
true
|
||||
);
|
||||
});
|
||||
try {
|
||||
loadData(
|
||||
"apis/v4/unibase/reminders/platform/getuserreminders/PageSize/0",
|
||||
false
|
||||
);
|
||||
} catch (error) {
|
||||
console.log("LoadData Method is not loading, and getting error");
|
||||
}
|
||||
}
|
||||
|
||||
export function stagesLoad() {
|
||||
$(".stgs-li").each(function () {
|
||||
let html = "";
|
||||
let InstalledAppId = $(this).attr("data-installedappid");
|
||||
getData(
|
||||
`apis/v4/unibase/platform/apps/getallchangestageroles/installedappid/${InstalledAppId}`
|
||||
).then(function (stg_rslt) {
|
||||
let data = JSON.parse(stg_rslt.result);
|
||||
let _stage = data.filter(function (o) {
|
||||
return o.IsDefault == true;
|
||||
});
|
||||
html += `<button type="button" class="btn btn-sm btn-info dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-isdefault="${_stage[0].IsDefault}" data-stageid="${_stage[0].StageId}" >
|
||||
${_stage[0].StageName}
|
||||
</button>
|
||||
<ul class="dropdown-menu">`;
|
||||
for (var s = 0; s < data.length; s++) {
|
||||
let stage = data[s];
|
||||
if (!stage.IsDefault) {
|
||||
html += `<li><a class="dropdown-item" href="javascript:;" data-isdefault="${stage.IsDefault}" data-stageid="${stage.StageId}">${stage.StageName}</a></li>`;
|
||||
}
|
||||
}
|
||||
html += "</ul>";
|
||||
$(`.stgs-li[data-installedappid='${InstalledAppId}']`).html(html);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,147 +1,141 @@
|
||||
import {
|
||||
setCookie
|
||||
} from "./cookiehelper.js";
|
||||
import {
|
||||
_serverUrl
|
||||
} from "./setting.js";
|
||||
|
||||
import {setCookie} from "./cookiehelper.js";
|
||||
import {_serverUrl} from "./setting.js";
|
||||
|
||||
const serverUrl = _serverUrl();
|
||||
|
||||
const emailInputEl = document.getElementById("email");
|
||||
const passwordInputEl = document.getElementById("password");
|
||||
const emailErrEl = document.getElementById("emailErrMsg");
|
||||
const passwordErrEl = document.getElementById("passwordErrMsg");
|
||||
const emailContainerEl = document.getElementById("emailBox");
|
||||
const passwordContainerEl = document.getElementById("passwordBox");
|
||||
const showPasswordChk = document.getElementById("showPassword");
|
||||
const emailNextBtn = document.getElementById("emailNextBtn");
|
||||
const renterEmailLink = document.getElementById("renterEmail");
|
||||
const loginSubmitBtn = document.getElementById("loginSubmitBtn");
|
||||
|
||||
const emailInputEl = document.getElementById('email');
|
||||
const passwordInputEl = document.getElementById('password');
|
||||
const emailErrEl = document.getElementById('emailErrMsg');
|
||||
const passwordErrEl = document.getElementById('passwordErrMsg');
|
||||
const emailContainerEl = document.getElementById('emailBox');
|
||||
const passwordContainerEl = document.getElementById('passwordBox');
|
||||
const showPasswordChk = document.getElementById('showPassword');
|
||||
const emailNextBtn = document.getElementById('emailNextBtn');
|
||||
const renterEmailLink = document.getElementById('renterEmail');
|
||||
const loginSubmitBtn = document.getElementById('loginSubmitBtn');
|
||||
|
||||
passwordContainerEl.style.display = 'none';
|
||||
passwordContainerEl.style.display = "none";
|
||||
emailInputEl.focus();
|
||||
|
||||
function showPasswordBox() {
|
||||
const email = emailInputEl.value;
|
||||
if (validateEmailOrPhone()) {
|
||||
emailContainerEl.style.display = 'none';
|
||||
passwordContainerEl.style.display = 'block';
|
||||
document.getElementById('entered-email').innerHTML = email;
|
||||
passwordInputEl.focus();
|
||||
emailInputEl.classList.remove('error');
|
||||
emailErrEl.innerText = '';
|
||||
} else {
|
||||
emailInputEl.classList.add('error');
|
||||
emailErrEl.innerText = 'Please enter valid email or phone';
|
||||
}
|
||||
const email = emailInputEl.value;
|
||||
if (validateEmailOrPhone()) {
|
||||
emailContainerEl.style.display = "none";
|
||||
passwordContainerEl.style.display = "block";
|
||||
document.getElementById("entered-email").innerHTML = email;
|
||||
passwordInputEl.focus();
|
||||
emailInputEl.classList.remove("error");
|
||||
emailErrEl.innerText = "";
|
||||
} else {
|
||||
emailInputEl.classList.add("error");
|
||||
emailErrEl.innerText = "Please enter valid email or phone";
|
||||
}
|
||||
}
|
||||
|
||||
function validateEmailOrPhone() {
|
||||
const value = emailInputEl.value.trim();
|
||||
const regx = /^[6-9]\d{9}$/;
|
||||
if (value.includes('@') || regx.test(value)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
const value = emailInputEl.value.trim();
|
||||
const regx = /^[6-9]\d{9}$/;
|
||||
if (value.includes("@") || regx.test(value)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function togglePassword() {
|
||||
const ele = document.getElementById('showPassword');
|
||||
const password = passwordInputEl;
|
||||
const ele = document.getElementById("showPassword");
|
||||
const password = passwordInputEl;
|
||||
|
||||
if (password.value.length > 0) {
|
||||
passwordInputEl.value = password.value;
|
||||
password.focus();
|
||||
if (ele.checked) {
|
||||
password.setAttribute('type', 'text');
|
||||
} else {
|
||||
password.setAttribute('type', 'password');
|
||||
}
|
||||
if (password.value.length > 0) {
|
||||
passwordInputEl.value = password.value;
|
||||
password.focus();
|
||||
if (ele.checked) {
|
||||
password.setAttribute("type", "text");
|
||||
} else {
|
||||
password.setAttribute("type", "password");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onPasswordFocusOut() {
|
||||
const passwordLabel = document.getElementById('passwordLabel');
|
||||
if (passwordInputEl.value.length > 0) {
|
||||
passwordLabel.classList.add('password-fixed');
|
||||
} else {
|
||||
passwordLabel.classList.remove('password-fixed');
|
||||
}
|
||||
const passwordLabel = document.getElementById("passwordLabel");
|
||||
if (passwordInputEl.value.length > 0) {
|
||||
passwordLabel.classList.add("password-fixed");
|
||||
} else {
|
||||
passwordLabel.classList.remove("password-fixed");
|
||||
}
|
||||
}
|
||||
|
||||
function onEmailFocusOut() {
|
||||
const emailLabel = document.getElementById('emailLabel');
|
||||
if (emailInputEl.value.trim()) {
|
||||
emailLabel.classList.add('password-fixed');
|
||||
} else {
|
||||
emailLabel.classList.remove('password-fixed');
|
||||
}
|
||||
const emailLabel = document.getElementById("emailLabel");
|
||||
if (emailInputEl.value.trim()) {
|
||||
emailLabel.classList.add("password-fixed");
|
||||
} else {
|
||||
emailLabel.classList.remove("password-fixed");
|
||||
}
|
||||
}
|
||||
|
||||
function loginUser(email, password) {
|
||||
const postData = JSON.stringify({
|
||||
UserName: email,
|
||||
Password: password,
|
||||
UnibaseId: '',
|
||||
RememberMe: false,
|
||||
const postData = JSON.stringify({
|
||||
UserName: email,
|
||||
Password: password,
|
||||
UnibaseId: "",
|
||||
RememberMe: false,
|
||||
});
|
||||
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: postData,
|
||||
redirect: "follow",
|
||||
};
|
||||
|
||||
fetch(serverUrl + "account/login", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then((result) => {
|
||||
const data = JSON.parse(result);
|
||||
if (data.status === 0) {
|
||||
setCookie("_idty", JSON.stringify(data.result), 1);
|
||||
window.location = "../authentication";
|
||||
} else {
|
||||
passwordErrEl.innerText = data.message;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
passwordErrEl.innerText = error;
|
||||
});
|
||||
|
||||
const requestOptions = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: postData,
|
||||
redirect: 'follow',
|
||||
};
|
||||
|
||||
fetch(serverUrl + 'account/login', requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then((result) => {
|
||||
const data = JSON.parse(result);
|
||||
if (data.status === 0) {
|
||||
setCookie('_idty', JSON.stringify(data.result), 1);
|
||||
window.location = '../authentication';
|
||||
} else {
|
||||
passwordErrEl.innerText = data.message;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
passwordErrEl.innerText = error;
|
||||
});
|
||||
}
|
||||
|
||||
function validateLogin() {
|
||||
const email = emailInputEl.value;
|
||||
const password = passwordInputEl.value;
|
||||
if (password.trim().length !== 0) {
|
||||
loginUser(email, password);
|
||||
} else {
|
||||
passwordInputEl.classList.add('error');
|
||||
passwordErrEl.innerText = 'Please enter valid password';
|
||||
}
|
||||
const email = emailInputEl.value;
|
||||
const password = passwordInputEl.value;
|
||||
if (password.trim().length !== 0) {
|
||||
loginUser(email, password);
|
||||
} else {
|
||||
passwordInputEl.classList.add("error");
|
||||
passwordErrEl.innerText = "Please enter valid password";
|
||||
}
|
||||
}
|
||||
|
||||
function reEnterEmailClickHandler() {
|
||||
emailContainerEl.style.display = 'block';
|
||||
passwordContainerEl.style.display = 'none';
|
||||
emailInputEl.focus();
|
||||
emailContainerEl.style.display = "block";
|
||||
passwordContainerEl.style.display = "none";
|
||||
emailInputEl.focus();
|
||||
}
|
||||
|
||||
function initializeEventListeners() {
|
||||
emailNextBtn.addEventListener('click', showPasswordBox);
|
||||
emailNextBtn.addEventListener("click", showPasswordBox);
|
||||
|
||||
showPasswordChk.addEventListener('click', togglePassword);
|
||||
showPasswordChk.addEventListener("click", togglePassword);
|
||||
|
||||
passwordInputEl.addEventListener('focusout', onPasswordFocusOut);
|
||||
passwordInputEl.addEventListener("focusout", onPasswordFocusOut);
|
||||
|
||||
emailInputEl.addEventListener('focusout', onEmailFocusOut);
|
||||
emailInputEl.addEventListener("focusout", onEmailFocusOut);
|
||||
|
||||
loginSubmitBtn.addEventListener('click', validateLogin);
|
||||
loginSubmitBtn.addEventListener("click", validateLogin);
|
||||
|
||||
renterEmailLink.addEventListener('click', reEnterEmailClickHandler);
|
||||
renterEmailLink.addEventListener("click", reEnterEmailClickHandler);
|
||||
}
|
||||
|
||||
initializeEventListeners();
|
||||
initializeEventListeners();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { isAuthenticated } from "./cookiehelper.js";
|
||||
import {isAuthenticated} from "./cookiehelper.js";
|
||||
|
||||
function checkUser(params) {
|
||||
if (isAuthenticated()) {
|
||||
window.location = './authentication';
|
||||
} else {
|
||||
window.location = './login';
|
||||
}
|
||||
if (isAuthenticated()) {
|
||||
window.location = "./authentication";
|
||||
} else {
|
||||
window.location = "./login";
|
||||
}
|
||||
}
|
||||
|
||||
checkUser();
|
||||
checkUser();
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
export function _serverUrl() {
|
||||
// sachin 2.0 commitw
|
||||
// sudheer 1.0 new branch
|
||||
return 'http://localhost:3086/';
|
||||
}
|
||||
// sachin 2.0 commitw
|
||||
// sudheer 1.0 new branch
|
||||
// merge request another time
|
||||
return "http://localhost:3088/";
|
||||
//return "http://localhost:3086/";
|
||||
//return "https://c02.bizgaze.app/";
|
||||
//return "https://dev.bizgaze.app/";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,138 @@
|
||||
[](https://remixicon.com)
|
||||
|
||||
[](https://www.npmjs.com/package/remixicon)
|
||||
[](https://www.npmjs.com/package/remixicon)
|
||||
[](https://www.jsdelivr.com/package/npm/remixicon)
|
||||
[](https://spectrum.chat/remixdesign/remixicon)
|
||||
[](https://remixicon.com/#donate)
|
||||
|
||||
English | [简体中文](./README_CN.md)
|
||||
|
||||
Remix Icon is a set of open-source neutral-style system symbols for designers and developers. Unlike a patchwork icon library, 2200+ icons are all elaborately crafted so that they are born with the gene of readability, consistency and perfect pixels. Each icon was designed in "Outlined" and "Filled" styles based on a 24x24 grid. Of course, all the icons are free for both personal and commercial use.
|
||||
|
||||
[](https://remixicon.com)
|
||||
View the full set of Remix Icons at [remixicon.com](https://remixicon.com).
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Usage
|
||||
|
||||
Just click the icons you want from [remixicon.com](https://remixicon.com), and then you can download the icons in SVG or PNG format.
|
||||
|
||||
Designers can click the `Copy SVG` button and then press `⌘+V` or `Ctrl+V` to paste the vector graphic into your design tool directly, easy and simple.
|
||||
|
||||
> We recommend that designers download or copy icons from our website when needed instead of managing all of them in a local folder. The website's search engine allows you to quickly locate the icon you are looking for and the icons on the website are being continuously updated.
|
||||
>
|
||||
> The `Copy SVG` now supports Sketch, Figma, Adobe XD, Adobe Illustrator, Affinity Designer, Affinity Photo, etc.
|
||||
|
||||
Using SVG on the web is as simple as JPEG or PNG. Such as:
|
||||
|
||||
```html
|
||||
<img height="32" width="32" src="img/admin-fill.svg" />
|
||||
```
|
||||
|
||||
### Webfont Usage
|
||||
> **Note:** You can import Remix Icon with npm install, cdn or download it manually.
|
||||
|
||||
#### Installation
|
||||
> **Note:** If you'd like to use Remix Icon with a CDN, you can skip this installation step.
|
||||
|
||||
```
|
||||
npm install remixicon --save
|
||||
```
|
||||
|
||||
|
||||
|
||||
```
|
||||
import 'remixicon/fonts/remixicon.css'
|
||||
```
|
||||
> import CSS to your main.js
|
||||
|
||||
#### CDN
|
||||
Copy the following code and add it to the <head> tag of your html document.
|
||||
|
||||
```html
|
||||
<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
|
||||
```
|
||||
|
||||
> ==**Important Note:**== We've changed our CDN service to jsDelivr from v2.2.0, and the previous CDN service will be terminated on Jan 30, 2020. Please replace your old CDN to the new link above so as not to affect your business. We apologize for the inconvenience.
|
||||
>
|
||||
> The `@2.5.0` in the CDN link can be changed to any history version we've published.
|
||||
|
||||
#### Download Manually
|
||||
|
||||
Download [`remixicon.css`](https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css) file, add it to the <head> tag of your html document.
|
||||
|
||||
#### Use
|
||||
|
||||
Add icon with class name, class name rule: ri-{name}-{style}
|
||||
|
||||
```html
|
||||
<i class="ri-admin-line"></i>
|
||||
<i class="ri-admin-fill"></i>
|
||||
```
|
||||
> **Note:** We changed the class name prefixes from `remixicon-` to `ri` from v2.0.0;
|
||||
|
||||
> **Note:** You can go to [remixicon.com](https://remixicon.com) to check the name of the icons. `-line` means the outlined style icon, and `-fill` means the filled style icon.
|
||||
|
||||
#### Sizing
|
||||
|
||||
RemixIcon can be resized by css class integrated by `remixicon.css` . Icons inherit the `font-size` of their parent container and with the following classes you can increase or decrease the size of icons relative to that inherited `font-size`. You can also use `ri-fw` class for a fixed width for icons. For example:
|
||||
|
||||
```html
|
||||
<div style="font-size: 24px;">
|
||||
<i class="ri-admin-line ri-fw"></i> <!-- fixed width -->
|
||||
<i class="ri-admin-line ri-xxs"></i> <!-- 0.5em -->
|
||||
<i class="ri-admin-line ri-xs"></i> <!-- 0.75em -->
|
||||
<i class="ri-admin-line ri-sm"></i> <!-- 0.875em -->
|
||||
<i class="ri-admin-line ri-1x"></i> <!-- 1em -->
|
||||
<i class="ri-admin-line ri-lg"></i> <!-- 1.3333em -->
|
||||
<i class="ri-admin-line ri-xl"></i> <!-- 1.5em -->
|
||||
<i class="ri-admin-line ri-2x"></i> <!-- 2em -->
|
||||
<i class="ri-admin-line ri-3x"></i> <!-- 3em -->
|
||||
...
|
||||
<i class="ri-admin-line ri-10x"></i> <!-- 10em -->
|
||||
</div>
|
||||
```
|
||||
|
||||
> You can check the [`remixicon.css`](https://github.com/Remix-Design/RemixIcon/blob/master/fonts/remixicon.css) file for more info and details.
|
||||
|
||||
### SVG Sprite Usage
|
||||
|
||||
Download [`remixicon.symbol.svg`](https://cdn.remixicon.com/releases/v2.5.0/remixicon.symbol.svg) file into your project directory,use icons with the `<use>` element, such as:
|
||||
|
||||
```html
|
||||
<svg class='remix'>
|
||||
<use xlink:href="your-path/remixicon.symbol.svg#ri-admin-fill"></use>
|
||||
</svg>
|
||||
```
|
||||
```css
|
||||
.remix {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: #333;
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** `ri-admin-fill` after the `#` in the above example can be replaced with any valid icon name of Remix Icon. You can go to [remixicon.com](https://remixicon.com) to check the name of the icons. `-line` means the outlined style icon, and `-fill` means the filled style icon.
|
||||
|
||||
## Contributing
|
||||
|
||||
> **Note:** In order to ensure the quality of each icon, we currently do not accept third-party drawn icons. If you want to contribute an icon to Remix Icon, you can create an [issue](https://github.com/Remix-Design/remixicon/issues) with a screenshot or url to your svg-format file. If you are not familiar with github, you can also email us directly `jimmy@remixdesign.cn`.
|
||||
|
||||
### Icon Request
|
||||
|
||||
If there is no suitable icon for your usage scenario, you can create an [issue](https://github.com/Remix-Design/remixicon/issues) with a title of "Icon request: <Icon name>" and fill the issue template.
|
||||
|
||||
> RemixIcon is mainly focuses on user interface icons. If we did not include the logo icons you were looking for, I recommend this icon library - [Simple Icons](https://github.com/simple-icons/simple-icons)
|
||||
|
||||
### Icon Search Keywords
|
||||
|
||||
We use [`tags.json`](https://github.com/Remix-Design/remixicon/blob/master/tags.json) file to manage the search keywords of our [website](https://remixicon.com). But at the moment, we don't have a good automatic method to complete the keywords for each icon. So we hope you can help us to improve the `tags.json` file by creating [issues](https://github.com/Remix-Design/remixicon/issues), sending emails or "pull request" of tags.json file to make the search engine better. Especially when one of our icons matches your scene but you don't find the icon with your keywords.
|
||||
|
||||
## Sub-projects
|
||||
[RemixIcon-Slides](https://github.com/Remix-Design/RemixIcon-Slides) PowerPoint and Keynote verison of Remix Icon.
|
||||
|
||||
## License
|
||||
|
||||
Remix Icon is licensed under the [Apache License Version 2.0](https://github.com/Remix-Design/remixicon/blob/master/License). Feel free to use these icons in your products and distribute them. We would be very grateful if you mention "Remix Icon" in your product info, but it's not required. The only thing we ask is that these icons are not for sale.
|
||||
@@ -0,0 +1,135 @@
|
||||
[](https://remixicon.com)
|
||||
|
||||
[](https://www.npmjs.com/package/remixicon)
|
||||
[](https://www.npmjs.com/package/remixicon)
|
||||
[](https://www.jsdelivr.com/package/npm/remixicon)
|
||||
[](https://spectrum.chat/remixdesign/remixicon)
|
||||
[](https://remixicon.com/#donate)
|
||||
|
||||
[English](./README.md) | 简体中文
|
||||
|
||||
Remix Icon 是一套面向设计师和开发者的开源图标库。我们在设计之初将图标风格定义为中性风格,以便适用于各种用户群的项目。与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,并确保每一枚图标在拥有完美像素对齐的基础上风格一致且简洁易读。图标以24x24网格为基准,分为“线性图标”和“面型图标”两种风格。所有的图标均可免费用于个人项目和商业项目,Enjoy it~
|
||||
|
||||
[](https://remixicon.com)
|
||||
前往官网查看整套图标库 [remixicon.com](https://remixicon.com).
|
||||
|
||||
## 使用说明
|
||||
|
||||
### 基本用法
|
||||
|
||||
直接在[remixicon.com](https://remixicon.com)点击您想要的图标, 在打开的图标窗口中可以以 PNG 或者 SVG 格式进行下载,也可以直接复制 SVG 代码。
|
||||
|
||||
设计师小伙伴可以直接点击 `Copy SVG` 之后在UI设计软件中直接粘贴矢量图形,使用起来像插件一样简单便捷。
|
||||
|
||||
> 我们建议设计师小伙伴在需要使用某些图标的时候通过官网搜索下载使用,而不是将一整套图标全部下载放在本地文件夹中进行管理;官网的搜索栏可以帮助您快速定位您想要的图标,而且支持中文关键词搜索,这相比本地文件夹管理图标效率要高很多;最重要的是,官网的图标会持续更新。
|
||||
> 在官网点击 Copy SVG 之后,可以在 Sketch 中直接粘贴矢量图标,也可以在代码文本编辑器中粘贴 SVG 代码。
|
||||
>
|
||||
> `Copy SVG` 功能目前支持在 Sketch、Figma、Adobe XD、Adobe Illustrator、Affinity Designer、Affinity Photo 软件中直接粘贴矢量图形。
|
||||
|
||||
SVG本身也是一种图片格式,所以您可以像使用其他格式(如JPG、PNG)的图片文件一样使用SVG文件,例如直接引入的方式:
|
||||
|
||||
```html
|
||||
<img height="32" width="32" src="img/admin-fill.svg" />
|
||||
```
|
||||
|
||||
### Webfont 用法
|
||||
> **Note:** Webfont支持npm安装引入、CDN引入或者手动下载的方式引入到项目当中,三选一即可。
|
||||
|
||||
#### 安装引入
|
||||
|
||||
> **Note:** 如果您打算通过CDN的方式使用 Remix Icon,可以跳过安装引入这一步。
|
||||
|
||||
```
|
||||
npm install remixicon --save
|
||||
```
|
||||
|
||||
```
|
||||
import 'remixicon/fonts/remixicon.css'
|
||||
```
|
||||
> 入口文件引入CSS
|
||||
|
||||
#### CDN引入
|
||||
如果不打算通过安装的方式使用,可以直接复制下面这行代码到您HTML文档的 <head> 标签中,这样就完成了CDN方式的图标引入,简单快捷,推荐方式。
|
||||
|
||||
```html
|
||||
<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
|
||||
```
|
||||
|
||||
> ==**重要提醒**==:我们从 v2.2.0 版本开始将我们的 CDN 服务迁移到了 jsDelivr 上,之前的 CDN 链接将在2020年1月30日停止服务,请务必切换您的 CDN 为最新的服务链接,以免影响您的业务,对于由此带来的影响和不便,我们深感抱歉。
|
||||
>
|
||||
> 上面 CDN 链接中的 `@2.5.0` 可以更改为任何我们曾经发布过的历史版本号。
|
||||
|
||||
#### 手动下载引入
|
||||
|
||||
下载保存[`remixicon.css`](https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css)文件,添加到项目的<head> 标签中即可。
|
||||
|
||||
#### 使用
|
||||
|
||||
引入Remix Icon图标库后,就可以在web项目中使用了,只要在使用图标的时候将图标名称作为类名就可以了。类名规则:ri-{name}-{style}
|
||||
```html
|
||||
<i class="ri-admin-line"></i>
|
||||
<i class="ri-admin-fill"></i>
|
||||
```
|
||||
> **注意:** 从 v2.0.0 开始,我们修改了 class 名称的前缀,从 `remixicon-` 改为了 `ri-`;
|
||||
|
||||
> **Note:** 您可以到官网 [remixicon.com](https://remixicon.com) 查阅图标对应的名称,然后在名称后添加图标风格,`-line` 代表线性风格,`-fill`代表面型风格。
|
||||
|
||||
#### 大小
|
||||
|
||||
在`v1.3.1`及以上版本的字体使用方式下,RemixIcon 可以通过 `remixicon.css` 中集成的一些 class 来快捷改变图标的大小。这些 class 使用 `em` 相对大小单位来控制图标尺寸,相对值为图标的父类元素的字体大小值。您也可以通过 `ri-fw` 来使得图标宽度固定,例如在列表场景中使用。class 举例:
|
||||
|
||||
```html
|
||||
<div style="font-size: 24px;">
|
||||
<i class="ri-admin-line ri-fw"></i> <!-- fixed width -->
|
||||
<i class="ri-admin-line ri-xxs"></i> <!-- 0.5em -->
|
||||
<i class="ri-admin-line ri-xs"></i> <!-- 0.75em -->
|
||||
<i class="ri-admin-line ri-sm"></i> <!-- 0.875em -->
|
||||
<i class="ri-admin-line ri-1x"></i> <!-- 1em -->
|
||||
<i class="ri-admin-line ri-lg"></i> <!-- 1.3333em -->
|
||||
<i class="ri-admin-line ri-xl"></i> <!-- 1.5em -->
|
||||
<i class="ri-admin-line ri-2x"></i> <!-- 2em -->
|
||||
<i class="ri-admin-line ri-3x"></i> <!-- 3em -->
|
||||
...
|
||||
<i class="ri-admin-line ri-10x"></i> <!-- 10em -->
|
||||
</div>
|
||||
```
|
||||
|
||||
> 您也可以在 [`remixicon.css`](https://github.com/Remix-Design/RemixIcon/blob/master/fonts/remixicon.css) 中查看到更多的尺寸定义相关信息。
|
||||
|
||||
### SVG Sprite用法
|
||||
|
||||
下载 [`remixicon.symbol.svg`](https://cdn.remixicon.com/releases/v2.5.0/remixicon.symbol.svg) 并添加到您的项目目录中,通过 `<use>` 标签来引用图标,通过css可以自定义图标的大小和颜色等属性,例如:
|
||||
|
||||
```html
|
||||
<svg class='remix'>
|
||||
<use xlink:href="存放路径/remixicon.symbol.svg#ri-admin-fill"></use>
|
||||
</svg>
|
||||
```
|
||||
```css
|
||||
.remix {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: #333;
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** 上面示例中 `#` 后面的`ri-admin-fill`可以替换为任何 Remix Icon 图标名称,您可以到官网 [remixicon.com](https://remixicon.com) 查阅图标对应的名称,然后在名称后添加图标风格,`-line` 代表线性风格,`-fill` 代表面型风格。`remixicon.symbol.svg`文件默认是无法预览查看的,只能通过 `<use>` 使用之后查看。
|
||||
|
||||
## 协作共建
|
||||
> **Note:** 为了保证每一枚图标的质量,现阶段我们还不接受第三方小伙伴绘制的图标。如果您想要向 Remix Icon 贡献自己设计的图标,请创建一个[issue](https://github.com/Remix-Design/remixicon/issues)来提交自己的图标设计,并在issue详情中附上自己图标的下载地址,我们会按照 Remix Icon图标风格规范进行审核,通过后将会添加到图标库中,并在更新日志中署上作者的ID。如果你对GitHub不是很熟悉,不清除issue和pull request是什么,也可以直接给我们发邮件 `jimmy@remixdesign.cn`,内容表述清楚即可。
|
||||
|
||||
### 图标申请
|
||||
|
||||
如果图标库中缺少某个适合您业务场景的图标,您可以通过创建[issue](https://github.com/Remix-Design/remixicon/issues)的方式进行申请,issue标题格式为:“Icon request: <图标名称>”,并完善issue模板中的相应信息。感谢您提出图标申请,这也是帮助我们完善图标库的一种协作共建方式。
|
||||
|
||||
> RemixIcon 主要聚焦于用户界面类的图标,如果 RemixIcon 没有包含您需要的 logo 类的图标,推荐使用 [Simple Icons](https://github.com/simple-icons/simple-icons),这是一个优秀的 logo 类图标合集。如果您需要的 logo 经常在 UI 端展示,比如社交媒体类图标,也可以发出申请。
|
||||
|
||||
### 图标搜索关键词
|
||||
|
||||
目前我们的[图标官网](https://remixicon.com)是通过[`tags.json`](https://github.com/Remix-Design/remixicon/blob/master/tags.json)文件来管理搜索关键词的,目前我们已经为所有图标添加了中文关键词,因此我们可以通过中文对图标进行搜索和定位;但是由于关键词不是很健全,所以用户还是经常无法通过某个特定关键词搜索到已有图标。而目前我们还没有一个很好的自动化策略来穷举每一个图标的关键词,只能通过人肉添加的方式来进行完善,希望用户可以通过提[issue](https://github.com/Remix-Design/remixicon/issues) 或者pull request的方式来帮我们一块完善维护`tags.json`,让搜索功能变得更加好用。
|
||||
|
||||
## 相关项目
|
||||
[RemixIcon-Slides](https://github.com/Remix-Design/RemixIcon-Slides) Remix Icon的PPT版本和Keynote版本。
|
||||
|
||||
## 协议许可
|
||||
Remix Icon 使用的是 [Apache License Version 2.0](https://github.com/Remix-Design/remixicon/blob/master/License) 开源协议。请放心使用和分享本图标库,您可以查看协议详情来了解详细的开源策略。如果您能在您的产品介绍中署名 Remix Icon,我们将会非常感激,但这并不是必须的。唯一需要注意的是,您不能二次销售本图标库中的图标,否则我们会进行追究。
|
||||
|
После Ширина: | Высота: | Размер: 1.1 MiB |
|
После Ширина: | Высота: | Размер: 877 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-6v-2a3 3 0 0 0-5.995-.176L9 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-1.865-7a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 448 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path fill-rule="nonzero" d="M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-7v-2a2 2 0 0 0-1.85-1.995L12 17a2 2 0 0 0-1.995 1.85L10 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-.971 2H6.069l-.076.079c-.431.42-.935.76-1.486 1.002l-.096.039.589.28-.001 5.6 3.002-.001v-.072l.01-.223c.149-2.016 1.78-3.599 3.854-3.698l.208-.005.223.01a4 4 0 0 1 3.699 3.787l.004.201L19 19l.001-5.6.587-.28-.095-.04a5.002 5.002 0 0 1-1.486-1.001L17.93 12zm-.894-9a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072zM15.6 5H8.399a5.507 5.507 0 0 1-1.49 1.816L6.661 7h10.677l-.012-.008a5.518 5.518 0 0 1-1.579-1.722L15.6 5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 860 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 332 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path fill-rule="nonzero" d="M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7zm-5-6.673l-.11.155A11.012 11.012 0 0 1 5.4 9.736l-.358.073.673.19h12.573l.668-.19-.011-.002a11.01 11.01 0 0 1-6.836-4.326L12 5.326z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 483 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm10 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 281 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm2 1.236V9h16v-.764l-8-4-8 4zM12 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 310 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M12 19h2V6l6.394 2.74a1 1 0 0 1 .606.92V19h2v2H1v-2h2V5.65a1 1 0 0 1 .594-.914l7.703-3.424A.5.5 0 0 1 12 1.77V19z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 265 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 19V5.7a1 1 0 0 1 .658-.94l9.671-3.516a.5.5 0 0 1 .671.47v4.953l6.316 2.105a1 1 0 0 1 .684.949V19h2v2H1v-2h2zm2 0h7V3.855L5 6.401V19zm14 0v-8.558l-5-1.667V19h5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 314 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M10 10.111V1l11 6v14H3V7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 177 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M10 10.111V1l11 6v14H3V7l7 3.111zm2-5.742v8.82l-7-3.111V19h14V8.187L12 4.37z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 228 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM8 11v2h3v-2H8zm0-4v2h3V7H8zm0 8v2h3v-2H8zm5 0v2h3v-2h-3zm0-4v2h3v-2h-3zm0-4v2h3V7h-3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 292 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 308 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h2V9h3a1 1 0 0 1 1 1v9zM7 11v2h4v-2H7zm0-4v2h4V7H7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 256 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h4v-8h-2V9h3a1 1 0 0 1 1 1v9zM5 5v14h8V5H5zm2 6h4v2H7v-2zm0-4h4v2H7V7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 275 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm12 2H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-5-10v2h2v-2h-2zm0 4v2h2v-2h-2zm0-8v2h2V7h-2zm-4 0v2h2V7h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 364 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 21H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zM9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm5 0h6V5H8v2.127c.234 0 .469.082.657.247l5 4.359a1 1 0 0 1 .343.754V19zm2-8h2v2h-2v-2zm0 4h2v2h-2v-2zm0-8h2v2h-2V7zm-4 0h2v2h-2V7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 434 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 19V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3v2h-1v11h1v2H1v-2h1zm11 0v-7h-2v7h2zm-5 0v-7H6v7h2zm10 0v-7h-2v7h2zM6 5v1h12V5H6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 283 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 6h3v2h-1v11h1v2H1v-2h1V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2H4v11h3v-7h2v7h2v-7h2v7h2v-7h2v7h3V8zM6 5v1h12V5H6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 277 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 236 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 271 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8 15v2h8v-2H8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 251 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2-4h8v2H8v-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 285 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-9-7v6h2v-6h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 252 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zm-6-2h5V9.157l-6-5.454-6 5.454V19h5v-6h2v6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 279 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-10-7v6h2v-6h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 285 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M13 19h6V9.978l-7-5.444-7 5.444V19h6v-6h2v6zm8 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 310 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zM7 15v2h10v-2H7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 284 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14zM7 15h10v2H7v-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 319 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H0l10.327-9.388a1 1 0 0 1 1.346 0L22 11h-3v9zm-8-5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 278 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm6-4a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 312 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM9 10v6h6v-6H9zm2 2h2v2h-2v-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 266 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm3-9h6v6H9v-6zm2 2v2h2v-2h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 300 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 268 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8.592 13.808l-.991.572 1 1.733.993-.573a3.5 3.5 0 0 0 1.405.811v1.145h2.002V16.35a3.5 3.5 0 0 0 1.405-.81l.992.572L16.4 14.38l-.991-.572a3.504 3.504 0 0 0 0-1.62l.991-.573-1-1.733-.993.573A3.5 3.5 0 0 0 13 9.645V8.5h-2.002v1.144a3.5 3.5 0 0 0-1.405.811l-.992-.573L7.6 11.616l.991.572a3.504 3.504 0 0 0 0 1.62zm3.408.69a1.5 1.5 0 1 1-.002-3.001 1.5 1.5 0 0 1 .002 3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 602 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2.591-5.191a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.404.812l.991-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 638 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-8-3l3.359-3.359a2.25 2.25 0 1 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 1 0-3.182 3.182L12 17z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 336 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path fill-rule="nonzero" d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-2-1V9.157l-6-5.454-6 5.454V19h12zm-6-2l-3.359-3.359a2.25 2.25 0 1 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 1 1 3.182 3.182L12 17z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 390 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 303 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 307 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M19 19V9.799l-7-5.522-7 5.522V19h14zm2 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 340 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7.5 13a4.5 4.5 0 1 0 9 0h-2a2.5 2.5 0 1 1-5 0h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 286 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM7.5 13h2a2.5 2.5 0 1 0 5 0h2a4.5 4.5 0 1 1-9 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 318 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7 11v2a5 5 0 0 1 5 5h2a7 7 0 0 0-7-7zm0 4v3h3a3 3 0 0 0-3-3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 297 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM8 10a7 7 0 0 1 7 7h-2a5 5 0 0 0-5-5v-2zm0 4a3 3 0 0 1 3 3H8v-3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 334 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8H9v2h2v2h2v-2h2V8h-2V6h-2v2zm3 12h2v-6H8v6h2v-4h4v4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 263 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path fill-rule="nonzero" d="M8 20v-6h8v6h3V4H5v16h3zm2 0h4v-4h-4v4zm11 0h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8V6h2v2h2v2h-2v2h-2v-2H9V8h2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 297 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M17 19h2v-8h-6v8h2v-6h2v6zM3 19V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2H2v-2h1zm4-8v2h2v-2H7zm0 4v2h2v-2H7zm0-8v2h2V7H7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 276 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M22 21H2v-2h1V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2zm-5-2h2v-8h-6v8h2v-6h2v6zm0-10V5H5v14h6V9h6zM7 11h2v2H7v-2zm0 4h2v2H7v-2zm0-8h2v2H7V7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 296 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M22 20v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242V20h1zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 486 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 13.242V20h1v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242zm-2 .73a4.496 4.496 0 0 1-3.75-1.36A4.496 4.496 0 0 1 12 14.001a4.496 4.496 0 0 1-3.25-1.387A4.496 4.496 0 0 1 5 13.973V20h14v-6.027zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 623 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm1 1h8v3H6v-3zM3 3h18v2H3V3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 259 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm-.96-2h15.92l-.6-3H4.64l-.6 3zM6 14h8v3H6v-3zM3 3h18v2H3V3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 291 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 368 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zm-2 1.228a4.007 4.007 0 0 1-4-1.228A3.99 3.99 0 0 1 12 13a3.99 3.99 0 0 1-3-1.354 3.99 3.99 0 0 1-4 1.228V20h14v-7.126zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 487 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM9.399 8h-2l-3.2 8h2.154l.4-1h3.29l.4 1h2.155L9.399 8zM19 8h-2v2h-1a3 3 0 0 0-.176 5.995L16 16h3V8zm-2 4v2h-1l-.117-.007a1 1 0 0 1 0-1.986L16 12h1zm-8.601-1.115L9.244 13H7.552l.847-2.115z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 411 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path fill-rule="nonzero" d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM9.399 8l3.199 8h-2.155l-.4-1h-3.29l-.4 1H4.199l3.2-8h2zM19 8v8h-3a3 3 0 0 1 0-6h.999L17 8h2zm-2 4h-1a1 1 0 0 0-.117 1.993L16 14h1v-2zm-8.601-1.115L7.552 13h1.692l-.845-2.115z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 435 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 13h18v8.002c0 .551-.445.998-.993.998H3.993A.995.995 0 0 1 3 21.002V13zM3 2.998C3 2.447 3.445 2 3.993 2h16.014c.548 0 .993.446.993.998V11H3V2.998zM9 5v2h6V5H9zm0 11v2h6v-2H9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 328 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 331 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 10h18v10.004c0 .55-.445.996-.993.996H3.993A.994.994 0 0 1 3 20.004V10zm6 2v2h6v-2H9zM2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.444.992 1v4H2V4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 299 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 10H2V4.003C2 3.449 2.455 3 2.992 3h18.016A.99.99 0 0 1 22 4.003V10h-1v10.001a.996.996 0 0 1-.993.999H3.993A.996.996 0 0 1 3 20.001V10zm16 0H5v9h14v-9zM4 5v3h16V5H4zm5 7h6v2H9v-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 333 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm8-10a8 8 0 1 0-3.968 6.911l-1.008-1.727A6 6 0 1 1 18 12v1a1 1 0 0 1-2 0V9h-1.354a4 4 0 1 0 .066 5.94A3 3 0 0 0 20 13v-1zm-8-2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 380 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 374 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M20.997 2.992L21 21.008a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.01c.549 0 .994.444.994.992zM9 13V9a1 1 0 1 1 2 0v4a1 1 0 0 0 2 0V9a3 3 0 0 0-6 0v4a5 5 0 0 0 10 0V8h-2v5a3 3 0 0 1-6 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 371 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M14 13.5V8a4 4 0 1 0-8 0v5.5a6.5 6.5 0 1 0 13 0V4h2v9.5a8.5 8.5 0 1 1-17 0V8a6 6 0 1 1 12 0v5.5a3.5 3.5 0 0 1-7 0V8h2v5.5a1.5 1.5 0 0 0 3 0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 292 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 319 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zm-8 1.173v3.05l3-1.8 3 1.8v-3.05A7.978 7.978 0 0 1 12 17a7.978 7.978 0 0 1-3-.582zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 368 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 13h6v8H2v-8zM9 3h6v18H9V3zm7 5h6v13h-6V8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 196 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 13h6v8H2v-8zm14-5h6v13h-6V8zM9 3h6v18H9V3zM4 15v4h2v-4H4zm7-10v14h2V5h-2zm7 5v9h2v-9h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 243 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 10v4h2v-4H7zm4-6v10h2V7h-2zm4 3v7h2v-7h-2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 268 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 8h2v4H7v-4zm4-6h2v10h-2V7zm4 3h2v7h-2v-7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 282 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 12h4v9H3v-9zm14-4h4v13h-4V8zm-7-6h4v19h-4V2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 199 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 242 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 242 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M12 3v4H3V3h9zm4 14v4H3v-4h13zm6-7v4H3v-4h19z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 197 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M12 3v2H3V3h9zm4 16v2H3v-2h13zm6-8v2H3v-2h19z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 197 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M3 12h2v9H3v-9zm16-4h2v13h-2V8zm-8-6h2v19h-2V2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 199 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<g>
|
||||
<path fill="none" d="M0 0h24v24H0z"/>
|
||||
<path d="M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm3 7v2h8V9H8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
После Ширина: | Высота: | Размер: 272 B |