Compare commits

...

28 Commits

Author SHA1 Message Date
sindhu
59d21a6d6d step 3 custom text field search 2024-05-03 21:50:20 +07:00
sindhu
bac17e8a69 step 2 : custom text field search 2024-05-03 13:49:25 +07:00
sindhu
21925fc423 step 1 : custom text field biasa 2024-05-03 13:11:30 +07:00
sindhu
80ff72e3b3 from stash menu sidebar 2024-05-03 09:21:49 +07:00
f5e512aa6e fix bug 2024-05-02 17:16:34 +07:00
a4f262af4c add margin 2024-05-02 17:11:56 +07:00
3baa3a2cac footer + responsive layout 2024-05-02 16:59:33 +07:00
df96880e76 create component footer 2024-05-02 16:59:33 +07:00
f4c7507e6d footer + responsive layout 2024-05-02 16:58:26 +07:00
sindhu
cca5fe06d1 Merge branch 'fixcdnall' googlefont and other cdn 2024-05-02 16:38:25 +07:00
sindhu
90d632a515 fix cdn all dan google font 2024-05-02 16:37:32 +07:00
sindhu
a90d4843cc Merge branch 'fixrelative' base href 2024-05-02 15:50:00 +07:00
sindhu
202f4d22f4 fix relative base href 2024-05-02 15:49:09 +07:00
8a474a3082 create component footer 2024-05-02 14:04:03 +07:00
Hanan Askarim
defc0d41c2 fix sub title jumbotron 2024-05-02 14:01:28 +07:00
Hanan Askarim
01d0c0ec07 Merge branch 'hanan/responsive-tablet-and-hp' 2024-05-02 13:36:56 +07:00
Hanan Askarim
7cc0ce51ba add responsive tablet dan hp 2024-05-02 13:35:38 +07:00
Hanan Askarim
62d7735ee1 add under development card employee page 2024-05-02 09:36:37 +07:00
Hanan Askarim
e193769da1 Merge branch 'hanan/employee-medical-analityc' 2024-05-02 09:29:28 +07:00
Hanan Askarim
f6eb31c242 add templ medical analityc 2024-05-02 08:46:05 +07:00
Sas Andy
b25c1c3669 Merge branch 'andy/bar-chart' 2024-05-01 16:55:49 +07:00
sindhu
638e9724c8 Merge branch 'sindhu_dev_peserta' pie chart mcu peserta 2024-05-01 11:00:27 +07:00
sindhu
6260d3bc25 step 1 : komponen mcu peserta 2024-05-01 10:28:57 +07:00
Sas Andy
d601cc0801 kelainan global chart 2024-04-30 17:16:21 +07:00
Hanan Askarim
0219959594 Merge branch 'hanan/login' 2024-04-30 17:15:35 +07:00
Hanan Askarim
c267c26260 employee medical analityc 2024-04-30 17:07:59 +07:00
sindhu
3c9c63dd2a Merge branch 'sindhu_pie_chart' 2024-04-30 14:01:48 +07:00
Hanan Askarim
3281472f67 create templ login 2024-04-30 13:10:53 +07:00
69 changed files with 7228 additions and 796 deletions

View File

@@ -219,6 +219,9 @@ a.text-white:focus {
.bg-gray {
background-color: var(--gray) !important;
}
.bg-field {
background-color: var(--fieldbg) !important;
}
/* ### BACKGROUND TRANSPARENT */
.bg-black-transparent {
background-color: var(--dark) !important;
@@ -4000,19 +4003,6 @@ a.text-white:focus {
box-shadow: 0px 9px 16px 0px rgba(var(--dangerrgb), var(--opacity03)) !important;
}
/* ### NAV*/
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
color: var(--primary) !important;
background-color: #ffffff;
border-color: #e4e6ef #e4e6ef #ffffff;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #ffffff;
background-color: var(--primary) !important;
}
/* ### BUTTON HOVER TEXT */
/* ## PRIMARY */
.btn.btn-hover-text-primary:not(:disabled):not(.disabled):active:not(.btn-text),
.btn.btn-hover-text-primary:not(:disabled):not(.disabled).active,
@@ -4057,7 +4047,63 @@ a.text-white:focus {
.show .btn.btn-hover-text-danger.btn-dropdown {
color: var(--danger) !important;
}
/* ### NAV & BREADCRUMB*/
.breadcrumb {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
padding: 0px 0px !important;
padding-left: 0 !important;
margin-bottom: 1rem;
list-style: none;
background-color: var(--white) !important;
border-radius: 0.42rem;
}
.breadcrumb-item a {
color: var(--text-black) !important;
font-family: Poppins !important;
font-size: 13px !important;
font-style: normal !important;
font-weight: 500 !important;
line-height: 21px !important;
}
.breadcrumb-item.active {
color: var(--text-disabled) !important;
font-family: Poppins !important;
font-size: 13px !important;
font-style: normal !important;
font-weight: 500 !important;
line-height: 21px !important;
}
.nav-tabs {
border-bottom: 0px solid #000000 !important;
}
.nav-link {
color: var(--text-grey) !important;
font-family: Public Sans !important;
font-size: 14px !important;
font-style: normal !important;
font-weight: 600 !important;
line-height: 22px !important;
text-align: center !important;
}
.nav-link.active {
color: var(--text-black) !important; /* Warna teks untuk tab yang aktif */
border-bottom: 2px solid var(--primary) !important; /* Garis bawah untuk tab yang aktif */
font-family: Public Sans !important;
font-size: 14px !important;
font-style: normal !important;
font-weight: 600 !important;
line-height: 22px !important;
text-align: center !important;
}
/* ### BUTTON HOVER TEXT */
/* ### */
/* ## PRIMARY */
/* ## SECONDARY */

View File

@@ -0,0 +1,80 @@
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,120 @@
/* vietnamese */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 600;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 600;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 600;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Public Sans';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,224 @@
/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2');
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,2 @@
@charset 'UTF-8';.slick-loading .slick-list{background:#fff url(ajax-loader.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(fonts/slick.eot);src:url(fonts/slick.eot?#iefix) format('embedded-opentype'),url(fonts/slick.woff) format('woff'),url(fonts/slick.ttf) format('truetype'),url(fonts/slick.svg#slick) format('svg')}.slick-next,.slick-prev{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:0;background:0 0}.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{color:transparent;outline:0;background:0 0}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:'←'}[dir=rtl] .slick-prev:before{content:'→'}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:'→'}[dir=rtl] .slick-next:before{content:'←'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:0;background:0 0}.slick-dots li button:focus,.slick-dots li button:hover{outline:0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
/*# sourceMappingURL=slick-theme.min.css.map */

View File

@@ -0,0 +1,119 @@
/* Slider */
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

1
assets/assets/js/htmx/htmx.min.js vendored Normal file

File diff suppressed because one or more lines are too long

13
assets/assets/js/iconify/iconify.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/assets/js/slick/slick.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,431 @@
<!DOCTYPE html>
<!--
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
Author: KeenThemes
Website: http://www.keenthemes.com/
Contact: support@keenthemes.com
Follow: www.twitter.com/keenthemes
Dribbble: www.dribbble.com/keenthemes
Like: www.facebook.com/keenthemes
Purchase: https://1.envato.market/EA4JP
Renew Support: https://1.envato.market/EA4JP
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
-->
<html lang="en">
<!--begin::Head-->
<head>
<base href="../" />
<meta charset="utf-8" />
<title>Westerindo</title>
<meta name="description" content="Updates and statistics" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!--begin::Fonts-->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
/>
<!--end::Fonts-->
<!--begin::Page Vendors Styles(used by this page)-->
<link
href="assets/plugins/custom/fullcalendar/fullcalendar.bundle.css"
rel="stylesheet"
type="text/css"
/>
<!--end::Page Vendors Styles-->
<!--begin::Global Theme Styles(used by all pages)-->
<link
href="assets/plugins/global/plugins.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
<!--end::Global Theme Styles-->
<!--begin::Layout Themes(used by all pages)-->
<link
href="assets/css/themes/layout/header/base/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/header/menu/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/brand/dark.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/aside/dark.css"
rel="stylesheet"
type="text/css"
/>
<!-- <link href="asset-corporate-portal/media/landingpage/" rel="stylesheet" type="text/css" /> -->
<!--end::Layout Themes-->
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
<link
href=" https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
rel="stylesheet"
type="text/css"
/>
<script src="//code.iconify.design/1/1.0.6/iconify.min.js"></script>
<!-- CUSTOM BUNDLE CSS -->
<link
href="asset-corporate-portal/css/sas.bundle.css"
rel="stylesheet"
type="text/css"
/>
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
.navbar-lp {
padding-top: 40px;
padding-bottom: 40px;
}
.title {
/* color: #FFF; */
font-family: Poppins;
font-size: 15px;
/* font-size: 1vw; */
font-style: normal;
font-weight: 700;
}
.custom-card-lp {
border-radius: 24px;
border: 1px solid #d9d9d9;
margin-top: 40px;
}
.wrapper-custom {
/* background: #1B1D1F; */
padding-left: 10vw;
padding-right: 10vw;
}
.media-left-icon {
width: 40px;
height: 40px;
}
.items-content {
padding: 24px;
margin-bottom: 24px;
}
.content-page {
padding-top: 24px;
padding-left: 24px;
padding-right: 24px;
padding-bottom: 24px;
}
.item-foto {
width: 32px;
height: 32px;
}
.heading {
padding-top: 40px;
}
.card:hover {
background-color: rgba(197, 200, 211, 0.5);
}
</style>
</head>
<!--end::Head-->
<!--begin::Body-->
<body
id="kt_body"
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
>
<div class="wrapper-custom">
<!-- Navbar Start -->
<nav
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
>
<a class="navbar-brand" href="#">
<img
src="../assets/asset-corporate-portal/media/landingpage/logo.png"
width="126"
height="40"
class="d-inline-block align-top"
alt="Your Brand"
/>
</a>
<img
src="../assets/asset-corporate-portal/media/logo/foto.png"
alt="..."
class="item-foto rounded-circle"
/>
</nav>
<!-- Navbar End -->
<!--begin::Page Heading-->
<div class="heading d-flex justify-content-between">
<div class="align-items-center flex-wrap">
<!--begin::Page Title-->
<h5 class="text-dark font-weight-bold my-1 mr-5">
PT. Sadhana Abiyasa Sampoerna
</h5>
<!--end::Page Title-->
<!--begin::Breadcrumb-->
<ul
class="breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm"
>
<li class="breadcrumb-item">
<a href="" class="text-muted">Dashboard</a>
</li>
<li class="breadcrumb-item">
<a href="" class="text-muted">Employee Health Medical Analytic</a>
</li>
</ul>
<!--end::Breadcrumb-->
</div>
<div class="d-flex align-items-center">
<!--begin::Actions-->
<a href="#" class="btn btn-primary font-weight-bolder btn-lg">
<i class="fas fa-filter"></i> Filter
</a>
<!--end::Actions-->
</div>
</div>
<!--end::Page Heading-->
<!-- content -->
<div class="align-items-center pt-15 flex-column">
<div class="bg-field rounded">
<div class="content-page">
<!-- card -->
<a href="">
<div class="items-content card shadow">
<div class="row d-flex align-items-center">
<div class="col-7">
<h3 class="text-black">MCU Calon Karyawan</h3>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>Tanggal Pelaksanaan</span
>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>01/04/2024 - 06/04/2024</span
>
</div>
</div>
</div>
</a>
<!-- end card -->
<!-- card -->
<a href="">
<div class="items-content card shadow">
<div class="row d-flex align-items-center">
<div class="col-7">
<h3 class="text-black">MCU Karyawan</h3>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>Tanggal Pelaksanaan</span
>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>01/04/2024 - 06/04/2024</span
>
</div>
</div>
</div>
</a>
<!-- end card -->
<!-- card -->
<a href="">
<div class="items-content card shadow">
<div class="row d-flex align-items-center">
<div class="col-7">
<h3 class="text-black">MCU Eselon 1</h3>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>Tanggal Pelaksanaan</span
>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>01/04/2024 - 06/04/2024</span
>
</div>
</div>
</div>
</a>
<!-- end card -->
<!-- card -->
<a href="">
<div class="items-content card shadow">
<div class="row d-flex align-items-center">
<div class="col-7">
<h3 class="text-black">MCU Eselon 2</h3>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>Tanggal Pelaksanaan</span
>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde"
>01/04/2024 - 06/04/2024</span
>
</div>
</div>
</div>
</a>
<!-- end card -->
</div>
</div>
</div>
<!-- end content -->
</div>
<script>
var HOST_URL =
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
</script>
<!--begin::Global Config(global config for global JS scripts)-->
<script>
var KTAppSettings = {
breakpoints: {
sm: 576,
md: 768,
lg: 992,
xl: 1200,
xxl: 1400,
},
colors: {
theme: {
base: {
white: "#ffffff",
primary: "#3699FF",
secondary: "#E5EAEE",
success: "#1BC5BD",
info: "#8950FC",
warning: "#FFA800",
danger: "#F64E60",
light: "#E4E6EF",
dark: "#181C32",
},
light: {
white: "#ffffff",
primary: "#E1F0FF",
secondary: "#EBEDF3",
success: "#C9F7F5",
info: "#EEE5FF",
warning: "#FFF4DE",
danger: "#FFE2E5",
light: "#F3F6F9",
dark: "#D6D6E0",
},
inverse: {
white: "#ffffff",
primary: "#ffffff",
secondary: "#3F4254",
success: "#ffffff",
info: "#ffffff",
warning: "#ffffff",
danger: "#ffffff",
light: "#464E5F",
dark: "#ffffff",
},
},
gray: {
"gray-100": "#F3F6F9",
"gray-200": "#EBEDF3",
"gray-300": "#E4E6EF",
"gray-400": "#D1D3E0",
"gray-500": "#B5B5C3",
"gray-600": "#7E8299",
"gray-700": "#5E6278",
"gray-800": "#3F4254",
"gray-900": "#181C32",
},
},
"font-family": "Poppins",
};
</script>
<!--end::Global Config-->
<!--begin::Global Theme Bundle(used by all pages)-->
<script src="assets/plugins/global/plugins.bundle.js"></script>
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<!--end::Global Theme Bundle-->
<!--begin::Page Vendors(used by this page)-->
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
<!--end::Page Vendors-->
<!--begin::Page Scripts(used by this page)-->
<script src="assets/js/pages/widgets.js"></script>
<!--end::Page Scripts-->
<!-- echartjs.min.js -->
<script src="assets/js/echarts-js/echart.min.js"></script>
<!-- helper htmx -->
<script src="assets/js/helper-htmx/helper.js"></script>
<!-- iconify -->
<script
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<!-- htmx -->
<script
src="https://unpkg.com/htmx.org@1.9.11/dist/htmx.js"
integrity="sha384-l9bYT9SL4CAW0Hl7pAOpfRc18mys1b0wK4U8UtGnWOxPVbVMgrOdB+jyz/WY8Jue"
crossorigin="anonymous"
></script>
<!-- SCRIPT -->
<script type="text/javascript" async></script>
<!-- SCRIPT -->
</body>
<!--end::Body-->
</html>

View File

@@ -0,0 +1,338 @@
<!DOCTYPE html>
<!--
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
Author: KeenThemes
Website: http://www.keenthemes.com/
Contact: support@keenthemes.com
Follow: www.twitter.com/keenthemes
Dribbble: www.dribbble.com/keenthemes
Like: www.facebook.com/keenthemes
Purchase: https://1.envato.market/EA4JP
Renew Support: https://1.envato.market/EA4JP
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
-->
<html lang="en">
<!--begin::Head-->
<head>
<base href="../" />
<meta charset="utf-8" />
<title>KELAINAN GLOBAL | MCU004</title>
<meta name="description" content="Login page example" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!--begin::Fonts-->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
/>
<!--end::Fonts-->
<!--begin::Page Custom Styles(used by this page)-->
<link
href="assets/css/pages/login/login-1.css"
rel="stylesheet"
type="text/css"
/>
<!--end::Page Custom Styles-->
<!--begin::Global Theme Styles(used by all pages)-->
<link
href="assets/plugins/global/plugins.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
<!--end::Global Theme Styles-->
<!--begin::Layout Themes(used by all pages)-->
<link
href="assets/css/themes/layout/header/base/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/header/menu/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/brand/dark.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/aside/dark.css"
rel="stylesheet"
type="text/css"
/>
<!--end::Layout Themes-->
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
<style>
#mcu-004 {
height: 50%;
width: auto;
}
#mcu-005 {
height: 40%;
width: "100%";
}
</style>
</head>
<!--end::Head-->
<!--begin::Body-->
<body
id="kt_body"
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
>
<!--begin::Main-->
<div class="d-flex flex-column flex-root bg-white">
<!-- begin::Navbar -->
<div class="d-flex justify-content-center">
<h3 class="mb-3">Data Persentase Kelainan Global</h3>
</div>
<div id="mcu-004" class="mt-5"></div>
<div id="mcu-005"></div>
<!-- end::Navbar -->
</div>
<!--end::Main-->
<script>
var HOST_URL =
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
</script>
<!--begin::Global Config(global config for global JS scripts)-->
<script>
var KTAppSettings = {
breakpoints: {
sm: 576,
md: 768,
lg: 992,
xl: 1200,
xxl: 1400,
},
colors: {
theme: {
base: {
white: "#ffffff",
primary: "#3699FF",
secondary: "#E5EAEE",
success: "#1BC5BD",
info: "#8950FC",
warning: "#FFA800",
danger: "#F64E60",
light: "#E4E6EF",
dark: "#181C32",
},
light: {
white: "#ffffff",
primary: "#E1F0FF",
secondary: "#EBEDF3",
success: "#C9F7F5",
info: "#EEE5FF",
warning: "#FFF4DE",
danger: "#FFE2E5",
light: "#F3F6F9",
dark: "#D6D6E0",
},
inverse: {
white: "#ffffff",
primary: "#ffffff",
secondary: "#3F4254",
success: "#ffffff",
info: "#ffffff",
warning: "#ffffff",
danger: "#ffffff",
light: "#464E5F",
dark: "#ffffff",
},
},
gray: {
"gray-100": "#F3F6F9",
"gray-200": "#EBEDF3",
"gray-300": "#E4E6EF",
"gray-400": "#D1D3E0",
"gray-500": "#B5B5C3",
"gray-600": "#7E8299",
"gray-700": "#5E6278",
"gray-800": "#3F4254",
"gray-900": "#181C32",
},
},
"font-family": "Poppins",
};
</script>
<!--end::Global Config-->
<!--begin::Global Theme Bundle(used by all pages)-->
<script src="assets/plugins/global/plugins.bundle.js"></script>
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<!--end::Global Theme Bundle-->
<!--begin::Page Vendors(used by this page)-->
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
<!--end::Page Vendors-->
<!--begin::Page Scripts(used by this page)-->
<script src="assets/js/pages/widgets.js"></script>
<!--end::Page Scripts-->
<!-- echartjs.min.js -->
<script src="assets/js/echarts-js/echart.min.js"></script>
<!-- SCRIPT -->
<script type="text/javascript">
// Initialize the echarts instance based on the prepared dom
var chartMCU004 = echarts.init(document.getElementById("mcu-004"));
var optMCU004 = {
title: {
text: "Kelainan MCU",
// subtext: 'Living Expenses in Shenzhen'
},
dataset: {
source: [
["score", "amount", "product", "percentage"],
[200, 447, "Body Mass Index"],
[150, 314, "Pemeriksaan Mata"],
[125, 314, "Fungsi Lemak"],
[100, 254, "Autospirometri"],
[90, 200, "Hematologi"],
[80, 180, "ECG"],
[75, 160, "Hiperuricemia"],
[70, 125, "Tekanan Darah"],
[60, 118, "Urine Lengkap"],
[50, 87, "Fungsi Hati"],
],
},
grid: {
containLabel: true,
},
xAxis: {
name: "amount",
},
yAxis: {
type: "category",
},
visualMap: {
orient: "horizontal",
left: "center",
min: 10,
max: 100,
show: false,
// text: ['High Score', 'Low Score'],
// Map the score column to color
dimension: 0,
inRange: {
color: ["#42aaf5", "#00eaf2", "#035bff"],
},
},
series: [
{
label: {
position: "right",
show: true,
formatter: "{@[3]} %",
},
type: "bar",
encode: {
// Map the "amount" column to X axis.
x: "amount",
// Map the "product" column to Y axis
y: "product",
},
},
],
};
window.addEventListener("resize", function () {
chartMCU004.resize();
});
// Display the chart using the configuration items and data just specified.
chartMCU004.setOption(optMCU004);
//MCU005
// Initialize the echarts instance based on the prepared dom
var chartMCU005 = echarts.init(document.getElementById("mcu-005"));
var optMCU005 = {
title: {
text: "Kelainan Fisik",
// subtext: 'Living Expenses in Shenzhen'
},
dataset: {
source: [
["score", "amount", "product", "percentage"],
[200, 400, "Obesitas Stage 1"],
[150, 300, "Pre Hipertensi"],
[133, 250, "Kelainan Refraksi"],
[125, 180, "Overweight"],
[100, 125, "Obesitas Stage 2"],
[80, 100, "Hipertensi grade 1"],
[70, 80, "Kel. Refrakti terkoreksi"],
[60, 70, "Kel. Refrakti tidak terkoreksi"],
[55, 55, "Hipertensi grade 2"],
],
},
grid: {
containLabel: true,
},
xAxis: {
name: "amount",
},
yAxis: {
type: "category",
},
visualMap: {
orient: "horizontal",
left: "center",
min: 10,
max: 100,
show: false,
// text: ['High Score', 'Low Score'],
// Map the score column to color
dimension: 0,
inRange: {
color: ["#42aaf5", "#00eaf2", "#035bff"],
},
},
series: [
{
label: {
position: "right",
show: true,
formatter: "{@[3]} %",
},
type: "bar",
encode: {
// Map the "amount" column to X axis.
x: "amount",
// Map the "product" column to Y axis
y: "product",
},
},
],
};
window.addEventListener("resize", function () {
chartMCU005.resize();
});
// Display the chart using the configuration items and data just specified.
chartMCU005.setOption(optMCU005);
</script>
<!-- SCRIPT -->
</body>
<!--end::Body-->
</html>

View File

@@ -1,301 +0,0 @@
<!DOCTYPE html>
<!--
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
Author: KeenThemes
Website: http://www.keenthemes.com/
Contact: support@keenthemes.com
Follow: www.twitter.com/keenthemes
Dribbble: www.dribbble.com/keenthemes
Like: www.facebook.com/keenthemes
Purchase: https://1.envato.market/EA4JP
Renew Support: https://1.envato.market/EA4JP
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
-->
<html lang="en">
<!--begin::Head-->
<head>
<base href="../" />
<meta charset="utf-8" />
<title>KELAINAN GLOBAL | MCU004</title>
<meta name="description" content="Login page example" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<!--begin::Fonts-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
<!--end::Fonts-->
<!--begin::Page Custom Styles(used by this page)-->
<link href="assets/css/pages/login/login-1.css" rel="stylesheet" type="text/css" />
<!--end::Page Custom Styles-->
<!--begin::Global Theme Styles(used by all pages)-->
<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
<link href="assets/plugins/custom/prismjs/prismjs.bundle.css" rel="stylesheet" type="text/css" />
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
<!--end::Global Theme Styles-->
<!--begin::Layout Themes(used by all pages)-->
<link href="assets/css/themes/layout/header/base/light.css" rel="stylesheet" type="text/css" />
<link href="assets/css/themes/layout/header/menu/light.css" rel="stylesheet" type="text/css" />
<link href="assets/css/themes/layout/brand/dark.css" rel="stylesheet" type="text/css" />
<link href="assets/css/themes/layout/aside/dark.css" rel="stylesheet" type="text/css" />
<!--end::Layout Themes-->
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
<style>
#mcu-004 {
height: 100vh;
/* overflow-x: scroll; */
width: "100%";
}
#mcu-005 {
height: 100vh;
/* overflow-x: scroll; */
width: "100%";
}
</style>
</head>
<!--end::Head-->
<!--begin::Body-->
<body id="kt_body" class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading">
<!--begin::Main-->
<div class="d-flex flex-column flex-root bg-white">
<!-- begin::Navbar -->
<div class="d-flex justify-content-center ">
<h3 class="mb-3">Data Persentase Kelainan Global</h3>
</div>
<div id="mcu-004" class="mt-5">
</div>
<div id="mcu-005">
</div>
<!-- end::Navbar -->
</div>
<!--end::Main-->
<script>
var HOST_URL = "https://preview.keenthemes.com/metronic/theme/html/tools/preview";
</script>
<!--begin::Global Config(global config for global JS scripts)-->
<script>
var KTAppSettings = {
"breakpoints": {
"sm": 576,
"md": 768,
"lg": 992,
"xl": 1200,
"xxl": 1400
},
"colors": {
"theme": {
"base": {
"white": "#ffffff",
"primary": "#3699FF",
"secondary": "#E5EAEE",
"success": "#1BC5BD",
"info": "#8950FC",
"warning": "#FFA800",
"danger": "#F64E60",
"light": "#E4E6EF",
"dark": "#181C32"
},
"light": {
"white": "#ffffff",
"primary": "#E1F0FF",
"secondary": "#EBEDF3",
"success": "#C9F7F5",
"info": "#EEE5FF",
"warning": "#FFF4DE",
"danger": "#FFE2E5",
"light": "#F3F6F9",
"dark": "#D6D6E0"
},
"inverse": {
"white": "#ffffff",
"primary": "#ffffff",
"secondary": "#3F4254",
"success": "#ffffff",
"info": "#ffffff",
"warning": "#ffffff",
"danger": "#ffffff",
"light": "#464E5F",
"dark": "#ffffff"
}
},
"gray": {
"gray-100": "#F3F6F9",
"gray-200": "#EBEDF3",
"gray-300": "#E4E6EF",
"gray-400": "#D1D3E0",
"gray-500": "#B5B5C3",
"gray-600": "#7E8299",
"gray-700": "#5E6278",
"gray-800": "#3F4254",
"gray-900": "#181C32"
}
},
"font-family": "Poppins"
};
</script>
<!--end::Global Config-->
<!--begin::Global Theme Bundle(used by all pages)-->
<script src="assets/plugins/global/plugins.bundle.js"></script>
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<!--end::Global Theme Bundle-->
<!--begin::Page Vendors(used by this page)-->
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
<!--end::Page Vendors-->
<!--begin::Page Scripts(used by this page)-->
<script src="assets/js/pages/widgets.js"></script>
<!--end::Page Scripts-->
<!-- echartjs.min.js -->
<script src="assets/js/echarts-js/echart.min.js"></script>
<!-- SCRIPT -->
<script type="text/javascript">
// Initialize the echarts instance based on the prepared dom
var chartMCU004 = echarts.init(document.getElementById('mcu-004'));
var optMCU004 = {
title: {
text: 'Kelainan MCU',
// subtext: 'Living Expenses in Shenzhen'
},
dataset: {
source: [
['score', 'amount', 'product', 'percentage'],
[200, 447, 'Body Mass Index'],
[150, 314, 'Pemeriksaan Mata'],
[125, 314, 'Fungsi Lemak'],
[100, 254, 'Autospirometri'],
[90, 200, 'Hematologi'],
[80, 180, 'ECG'],
[75, 160, 'Hiperuricemia'],
[70, 125, 'Tekanan Darah'],
[60, 118, 'Urine Lengkap'],
[50, 87, 'Fungsi Hati']
]
},
grid: {
containLabel: true
},
xAxis: {
name: 'amount'
},
yAxis: {
type: 'category'
},
visualMap: {
orient: 'horizontal',
left: 'center',
min: 10,
max: 100,
show: false,
// text: ['High Score', 'Low Score'],
// Map the score column to color
dimension: 0,
inRange: {
color: ['#42aaf5', '#00eaf2', '#035bff']
}
},
series: [{
label: {
position: 'right',
show: true,
formatter: "{@[3]} %"
},
type: 'bar',
encode: {
// Map the "amount" column to X axis.
x: 'amount',
// Map the "product" column to Y axis
y: 'product'
}
}]
};
window.addEventListener('resize', function() {
chartMCU004.resize();
});
// Display the chart using the configuration items and data just specified.
chartMCU004.setOption(optMCU004);
//MCU005
// Initialize the echarts instance based on the prepared dom
var chartMCU005 = echarts.init(document.getElementById('mcu-005'));
var optMCU005 = {
title: {
text: 'Kelainan Fisik',
// subtext: 'Living Expenses in Shenzhen'
},
dataset: {
source: [
['score', 'amount', 'product', 'percentage'],
[200, 400, 'Obesitas Stage 1'],
[150, 300, 'Pre Hipertensi'],
[133, 250, 'Kelainan Refraksi'],
[125, 180, 'Overweight'],
[100, 125, 'Obesitas Stage 2'],
[80, 100, 'Hipertensi grade 1'],
[70, 80, 'Kel. Refrakti terkoreksi'],
[60, 70, 'Kel. Refrakti tidak terkoreksi'],
[55, 55, 'Hipertensi grade 2']
]
},
grid: {
containLabel: true
},
xAxis: {
name: 'amount'
},
yAxis: {
type: 'category'
},
visualMap: {
orient: 'horizontal',
left: 'center',
min: 10,
max: 100,
show: false,
// text: ['High Score', 'Low Score'],
// Map the score column to color
dimension: 0,
inRange: {
color: ['#42aaf5', '#00eaf2', '#035bff']
}
},
series: [{
label: {
position: 'right',
show: true,
formatter: "{@[3]} %"
},
type: 'bar',
encode: {
// Map the "amount" column to X axis.
x: 'amount',
// Map the "product" column to Y axis
y: 'product'
}
}]
};;
window.addEventListener('resize', function() {
chartMCU005.resize();
});
// Display the chart using the configuration items and data just specified.
chartMCU005.setOption(optMCU005);
</script>
<!-- SCRIPT -->
</body>
<!--end::Body-->
</html>

View File

@@ -0,0 +1,432 @@
<!DOCTYPE html>
<!--
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
Author: KeenThemes
Website: http://www.keenthemes.com/
Contact: support@keenthemes.com
Follow: www.twitter.com/keenthemes
Dribbble: www.dribbble.com/keenthemes
Like: www.facebook.com/keenthemes
Purchase: https://1.envato.market/EA4JP
Renew Support: https://1.envato.market/EA4JP
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
-->
<html lang="en">
<!--begin::Head-->
<head>
<base href="../" />
<meta charset="utf-8" />
<title>Westerindo</title>
<meta name="description" content="Updates and statistics" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!--begin::Fonts-->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
/>
<!--end::Fonts-->
<!--begin::Page Vendors Styles(used by this page)-->
<link
href="assets/plugins/custom/fullcalendar/fullcalendar.bundle.css"
rel="stylesheet"
type="text/css"
/>
<!--end::Page Vendors Styles-->
<!--begin::Global Theme Styles(used by all pages)-->
<link
href="assets/plugins/global/plugins.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
rel="stylesheet"
type="text/css"
/>
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
<!--end::Global Theme Styles-->
<!--begin::Layout Themes(used by all pages)-->
<link
href="assets/css/themes/layout/header/base/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/header/menu/light.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/brand/dark.css"
rel="stylesheet"
type="text/css"
/>
<link
href="assets/css/themes/layout/aside/dark.css"
rel="stylesheet"
type="text/css"
/>
<!-- <link href="asset-corporate-portal/media/landingpage/" rel="stylesheet" type="text/css" /> -->
<!--end::Layout Themes-->
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
<link
href=" https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
rel="stylesheet"
type="text/css"
/>
<script src="//code.iconify.design/1/1.0.6/iconify.min.js"></script>
<!-- CUSTOM BUNDLE CSS -->
<link
href="asset-corporate-portal/css/sas.bundle.css"
rel="stylesheet"
type="text/css"
/>
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
.navbar-lp {
padding-top: 40px;
padding-bottom: 40px;
}
.jumbotron-lp {
border-radius: 32px;
/* background: #3B4F9F; */
}
.title {
/* color: #FFF; */
font-family: Poppins;
font-size: 15px;
/* font-size: 1vw; */
font-style: normal;
font-weight: 700;
}
.title-jumbotron {
/* color: #FFF; */
font-family: Poppins;
font-size: 52px;
/* font-size: 3vw; */
font-style: normal;
font-weight: 600;
}
.sub-title-jumbotron {
/* color: #FFF; */
font-family: Poppins;
font-size: 16px;
/* font-size: 1vw; */
font-style: normal;
font-weight: 400;
}
.btn-login {
border-radius: 40px;
/* background-color: #3B4F9F; */
box-shadow: 0px 8px 16px 0px rgba(59, 79, 159, 0.24);
}
.title-get-started {
/* color: #0C518C; */
font-family: Poppins;
font-size: 20px;
/* font-size: 1vw; */
font-style: normal;
font-weight: 700;
}
.custom-button-get-started {
border-radius: 40px;
/* background-color: #FFF; */
box-shadow: 0px 8px 16px 0px rgba(12, 81, 140, 0.24);
padding: 20px;
margin-top: 44px;
justify-content: center;
align-items: center;
width: 242px;
}
.title-section {
/* color: #000; */
font-family: Poppins;
font-size: 40px;
/* font-size: 3vw; */
font-style: normal;
font-weight: 600;
line-height: 80px;
margin-bottom: 16px;
}
.sub-title-section {
/* color: #212B36; */
font-family: Poppins;
font-size: 20px;
/* font-size: 1.5vw; */
font-style: normal;
font-weight: 400;
line-height: 36px;
}
.custom-card-lp {
border-radius: 24px;
border: 1px solid #d9d9d9;
margin-top: 40px;
}
.title-fs-20 {
/* color: #0E1E28; */
font-family: Poppins;
font-size: 20px;
/* font-size: 1.5vw; */
font-style: normal;
/* font-weight: 500; */
line-height: 36px;
}
.sub-title-fs-12 {
/* color: #0E1E28; */
font-family: Poppins;
font-size: 12px;
/* font-size: 0.9vw; */
font-style: normal;
font-weight: 400;
line-height: 20px;
margin-bottom: 16px;
}
.icon-container {
display: inline-block;
border-radius: 8px;
margin-bottom: 16px;
width: 40px;
height: 40px;
text-align: center;
line-height: 40px;
}
.link-learn-more {
/* color: #3B4F9F; */
font-family: Poppins;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-decoration: none;
}
.wrapper-custom {
/* background: #1B1D1F; */
padding-left: 10vw;
padding-right: 10vw;
}
.media-left-icon {
width: 40px;
height: 40px;
}
.footer-title {
/* color: #FFF; */
font-family: Poppins;
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: 20px;
}
.footer-sub-title {
/* color: #C3C4C5; */
font-family: Poppins;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 20px;
}
.logo-footer {
margin-bottom: 24px;
margin-top: -20px;
}
.garis {
/* background: #C3C4C5; */
height: 0.2px;
}
.img-header {
object-fit: contain;
}
</style>
</head>
<!--end::Head-->
<!--begin::Body-->
<body
id="kt_body"
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
>
<div class="form-group">
<label class="text-black" style="font-family: Poppins; font-weight: 600;"> Kode </label>
<input
id="kode"
name="kode"
type="text"
class="form-control bg-field border-0"
placeholder="Kode ..."
/>
<div>
<div id="alert"></div>
<button hx-get="/info"
hx-select="#info-details"
hx-swap="outerHTML"
hx-select-oob="#alert">
Get Info!
</button>
</div>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Holy guacamole!</strong> You should check in on some of those fields below.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<!-- <span class="form-text text-muted"
>We'll never share your email with anyone else.</span
> -->
</div>
<script>
var HOST_URL =
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
</script>
<!--begin::Global Config(global config for global JS scripts)-->
<script>
var KTAppSettings = {
breakpoints: {
sm: 576,
md: 768,
lg: 992,
xl: 1200,
xxl: 1400,
},
colors: {
theme: {
base: {
white: "#ffffff",
primary: "#3699FF",
secondary: "#E5EAEE",
success: "#1BC5BD",
info: "#8950FC",
warning: "#FFA800",
danger: "#F64E60",
light: "#E4E6EF",
dark: "#181C32",
},
light: {
white: "#ffffff",
primary: "#E1F0FF",
secondary: "#EBEDF3",
success: "#C9F7F5",
info: "#EEE5FF",
warning: "#FFF4DE",
danger: "#FFE2E5",
light: "#F3F6F9",
dark: "#D6D6E0",
},
inverse: {
white: "#ffffff",
primary: "#ffffff",
secondary: "#3F4254",
success: "#ffffff",
info: "#ffffff",
warning: "#ffffff",
danger: "#ffffff",
light: "#464E5F",
dark: "#ffffff",
},
},
gray: {
"gray-100": "#F3F6F9",
"gray-200": "#EBEDF3",
"gray-300": "#E4E6EF",
"gray-400": "#D1D3E0",
"gray-500": "#B5B5C3",
"gray-600": "#7E8299",
"gray-700": "#5E6278",
"gray-800": "#3F4254",
"gray-900": "#181C32",
},
},
"font-family": "Poppins",
};
</script>
<!--end::Global Config-->
<!--begin::Global Theme Bundle(used by all pages)-->
<script src="assets/plugins/global/plugins.bundle.js"></script>
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<!--end::Global Theme Bundle-->
<!--begin::Page Vendors(used by this page)-->
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
<!--end::Page Vendors-->
<!--begin::Page Scripts(used by this page)-->
<script src="assets/js/pages/widgets.js"></script>
<!--end::Page Scripts-->
<!-- echartjs.min.js -->
<script src="assets/js/echarts-js/echart.min.js"></script>
<!-- helper htmx -->
<script src="assets/js/helper-htmx/helper.js"></script>
<!-- iconify -->
<script
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<!-- htmx -->
<script
src="https://unpkg.com/htmx.org@1.9.11/dist/htmx.js"
integrity="sha384-l9bYT9SL4CAW0Hl7pAOpfRc18mys1b0wK4U8UtGnWOxPVbVMgrOdB+jyz/WY8Jue"
crossorigin="anonymous"
></script>
<!-- SCRIPT -->
<script type="text/javascript" async></script>
<!-- SCRIPT -->
</body>
<!--end::Body-->
</html>

View File

@@ -42,6 +42,14 @@ func main() {
handlers.SetupRoutes(app, h)
LStore, err := db.NewLoginStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
}
l := services.NewServicesLogin(services.Login{}, LStore)
lh := handlers.NewLoginHandler(l)
handlers.SetupRoutesLogin(app, lh)
xStore, err := db.NewXsampleStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
@@ -56,17 +64,37 @@ func main() {
}
lps := services.NewServicesLandingPage(services.LandingPage{}, LpStore)
lphs := handlers.NewLandingPageHandler(lps)
handlers.SetupRoutesLandingPage(app, lphs)
// handlers.SetupRoutesLandingPage(app, lphs)
Lpmastermenustore, err := db.NewMasterMenuUserGroupStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
}
mastermenuservices := services.NewServicesMasterMenuUserGroup(services.MasterMenu{}, Lpmastermenustore)
mastermenuhandler := handlers.NewMasterMenuUserGroupHandler(mastermenuservices)
handlers.SetupRoutesLandingPage(app, lphs, mastermenuhandler)
LpchartStore, err := db.NewPieChartStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
}
bchart, err := db.NewBarChartStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
}
lpchart := services.NewServicesPiechart(services.Piechart{}, LpchartStore)
lpchart := services.NewServicesPiechart(services.Piechart{}, services.Barchart{}, LpchartStore, bchart)
lphsx := handlers.NewPiechartHandler(lpchart)
handlers.SetupRoutesPieChart(app, lphsx)
eStore, err := db.NewEmployeeStore(dbName)
if err != nil {
app.Logger.Fatalf("failed to create store: %s", err)
}
el := services.NewServicesEmployee(services.Employee{}, eStore)
ehs := handlers.NewEmployeeHandler(el)
handlers.SetupRoutesEmployee(app, ehs)
app.Logger.Fatal(app.Start(":5000"))
}

View File

@@ -9,6 +9,9 @@ import (
type PieChartStore struct {
Db *sql.DB
}
type BarChartStore struct {
Db *sql.DB
}
func NewPieChartStore(dbName string) (PieChartStore, error) {
Db, err := getConnection(dbName)
@@ -24,3 +27,17 @@ func NewPieChartStore(dbName string) (PieChartStore, error) {
Db,
}, nil
}
func NewBarChartStore(dbName string) (BarChartStore, error) {
Db, err := getConnection(dbName)
if err != nil {
return BarChartStore{}, err
}
if err := createMigrations(dbName, Db); err != nil {
return BarChartStore{}, err
}
return BarChartStore{
Db,
}, nil
}

26
db/employee.store.go Normal file
View File

@@ -0,0 +1,26 @@
package db
import (
"database/sql"
_ "github.com/glebarez/go-sqlite"
)
type EmployeeStore struct {
Db *sql.DB
}
func NewEmployeeStore(dbName string) (EmployeeStore, error) {
Db, err := getConnection(dbName)
if err != nil {
return EmployeeStore{}, err
}
if err := createMigrations(dbName, Db); err != nil {
return EmployeeStore{}, err
}
return EmployeeStore{
Db,
}, nil
}

26
db/login.store.go Normal file
View File

@@ -0,0 +1,26 @@
package db
import (
"database/sql"
_ "github.com/glebarez/go-sqlite"
)
type LoginStore struct {
Db *sql.DB
}
func NewLoginStore(dbName string) (LoginStore, error) {
Db, err := getConnection(dbName)
if err != nil {
return LoginStore{}, err
}
if err := createMigrations(dbName, Db); err != nil {
return LoginStore{}, err
}
return LoginStore{
Db,
}, nil
}

26
db/mastermenuusergroup.go Normal file
View File

@@ -0,0 +1,26 @@
package db
import (
"database/sql"
_ "github.com/glebarez/go-sqlite"
)
type MasterMenuUserGroupStore struct {
Db *sql.DB
}
func NewMasterMenuUserGroupStore(dbName string) (MasterMenuUserGroupStore, error) {
Db, err := getConnection(dbName)
if err != nil {
return MasterMenuUserGroupStore{}, err
}
if err := createMigrations(dbName, Db); err != nil {
return MasterMenuUserGroupStore{}, err
}
return MasterMenuUserGroupStore{
Db,
}, nil
}

3
go.mod
View File

@@ -4,14 +4,13 @@ go 1.21.0
require (
github.com/a-h/templ v0.2.663
github.com/glebarez/go-sqlite v1.22.0
github.com/labstack/echo/v4 v4.11.3
github.com/mattn/go-sqlite3 v1.14.19
golang.org/x/text v0.14.0
)
require (
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/glebarez/go-sqlite v1.22.0 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/google/uuid v1.5.0 // indirect
github.com/labstack/gommon v0.4.0 // indirect

16
go.sum
View File

@@ -1,5 +1,3 @@
github.com/a-h/templ v0.2.476 h1:+H4hP4CwK4kfJwXsE6kHeFWMGtcVOVoOm/I64uzARBk=
github.com/a-h/templ v0.2.476/go.mod h1:zQ95mSyadNTGHv6k5Fm+wQU8zkBMMbHCHg7eAvUZKNM=
github.com/a-h/templ v0.2.663 h1:aa0WMm27InkYHGjimcM7us6hJ6BLhg98ZbfaiDPyjHE=
github.com/a-h/templ v0.2.663/go.mod h1:SA7mtYwVEajbIXFRh3vKdYm/4FYyLQAtPH1+KxzGPA8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -13,6 +11,8 @@ github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keL
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM=
@@ -24,12 +24,8 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI=
github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
@@ -43,12 +39,8 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -56,12 +48,8 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=

View File

@@ -10,14 +10,16 @@ import (
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
kelainanglobal "github.com/emarifer/go-templ-project-structure/views/mcu/kelainan_global"
mcupeserta "github.com/emarifer/go-templ-project-structure/views/mcu/peserta"
"github.com/emarifer/go-templ-project-structure/views/piechart"
"github.com/emarifer/go-templ-project-structure/views/xsample"
"github.com/labstack/echo/v4"
)
type PiechartService interface {
GetPieChart(string, int) (string, services.Piechart, error)
GetBarChart(code string, id int) (string, services.Barchart, error)
}
func NewPiechartHandler(us PiechartService) *PiechartHandler {
@@ -35,6 +37,7 @@ func (uh *PiechartHandler) Hello(c echo.Context) error {
return uh.View(c, helo)
}
// example pie chart
func (uh *PiechartHandler) ShowPieChart(c echo.Context) error {
// helo := piechart.MainPieChart("main_001")
var code = "mcu006"
@@ -60,6 +63,116 @@ func (uh *PiechartHandler) ShowPieChart(c echo.Context) error {
helo := piechart.ShowPieChart("Chart", piechart.MainPieChart(randomID, string(jsonData)), piechart.CssPieChart(), piechart.JsPieChart())
return uh.View(c, helo)
}
func (uh *PiechartHandler) ShowBarChart(c echo.Context) error {
// helo := piechart.MainPieChart("main_001")
var code = "mcu004"
title, udata, err := uh.PiechartService.GetBarChart(code, 1)
if err != nil {
// fmt.Println(err)
return err
}
var code2 = "mcu005"
title2, udata2, err := uh.PiechartService.GetBarChart(code2, 1)
if err != nil {
// fmt.Println(err)
return err
}
jsonData, err := json.MarshalIndent(udata, "", " ")
if err != nil {
fmt.Println("Error:", err)
return err
}
jsonData2, err := json.MarshalIndent(udata2, "", " ")
if err != nil {
fmt.Println("Error:", err)
return err
}
// randomID := md5.Sum([]byte(title + time.Now().String()))
seed := title + time.Now().String()
hash := md5.Sum([]byte(seed))
randomID := hex.EncodeToString(hash[:])
randomID = strings.ReplaceAll(randomID, "-", "")
seed2 := title2 + time.Now().String()
hash2 := md5.Sum([]byte(seed2))
randomID2 := hex.EncodeToString(hash2[:])
randomID2 = strings.ReplaceAll(randomID2, "-", "")
// randomID := hex.EncodeToString(md5.Sum([]byte(title + time.Now().String())))
helo := kelainanglobal.ShowKelainanGlobal("Kelainan global", kelainanglobal.MainKelainanGlobal(randomID, string(jsonData), randomID2, string(jsonData2)), kelainanglobal.CssKelainanGlobal(), kelainanglobal.JsKelainanGlobal())
return uh.View(c, helo)
}
// mcu peserta
func (uh *PiechartHandler) ShowMcuPeserta(c echo.Context) error {
// 1
var code001 = "mcu001"
title001, udata001, err001 := uh.PiechartService.GetPieChart(code001, 1)
if err001 != nil {
return err001
}
jsonData001, err001 := json.MarshalIndent(udata001, "", " ")
if err001 != nil {
fmt.Println("Error:", err001)
return err001
}
seed001 := title001 + time.Now().String()
hash001 := md5.Sum([]byte(seed001))
randomID001 := hex.EncodeToString(hash001[:])
randomID001 = strings.ReplaceAll(randomID001, "-", "")
// 2
var code002 = "mcu002"
title002, udata002, err002 := uh.PiechartService.GetPieChart(code002, 1)
if err002 != nil {
return err002
}
jsonData002, err002 := json.MarshalIndent(udata002, "", " ")
if err002 != nil {
fmt.Println("Error:", err002)
return err002
}
seed002 := title002 + time.Now().String()
hash002 := md5.Sum([]byte(seed002))
randomID002 := hex.EncodeToString(hash002[:])
randomID002 = strings.ReplaceAll(randomID002, "-", "")
// 3
var code003 = "mcu003"
title003, udata003, err003 := uh.PiechartService.GetPieChart(code003, 1)
if err003 != nil {
return err003
}
jsonData003, err003 := json.MarshalIndent(udata003, "", " ")
if err003 != nil {
fmt.Println("Error:", err003)
return err003
}
seed003 := title003 + time.Now().String()
hash003 := md5.Sum([]byte(seed003))
randomID003 := hex.EncodeToString(hash003[:])
randomID003 = strings.ReplaceAll(randomID003, "-", "")
helo := mcupeserta.ShowMcuPeserta("Peserta", mcupeserta.MainMcuPeserta(
randomID001, string(jsonData001),
randomID002, string(jsonData002),
randomID003, string(jsonData003),
),
mcupeserta.CssMcuPeserta(),
mcupeserta.JsMcuPeserta(),
)
return uh.View(c, helo)
}
func (uh *PiechartHandler) View(c echo.Context, cmp templ.Component) error {
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)

View File

@@ -0,0 +1,42 @@
package handlers
import (
"fmt"
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
"github.com/emarifer/go-templ-project-structure/views/employee"
"github.com/labstack/echo/v4"
)
type EmployeeService interface {
GetEmployeeService() ([]services.EmployeeService, error)
}
func NewEmployeeHandler(us EmployeeService) *EmployeeHandler {
return &EmployeeHandler{
EmployeeService: us,
}
}
type EmployeeHandler struct {
EmployeeService EmployeeService
}
func (eh *EmployeeHandler) ShowEmployee(c echo.Context) error {
udata, err := eh.EmployeeService.GetEmployeeService()
if err != nil {
// fmt.Println(err)
return err
}
fmt.Printf("%+v\n", udata)
e := employee.ShowEmployee("Employee", employee.MainEmployee(employee.ListCardService(udata)), employee.CssEmployee(), employee.JsEmployee())
return eh.View(c, e)
}
func (eh *EmployeeHandler) View(c echo.Context, cmp templ.Component) error {
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
return cmp.Render(c.Request().Context(), c.Response().Writer)
}

View File

@@ -14,6 +14,7 @@ type LandingPageService interface {
GetClientService() ([]services.ClientService, error)
GetClientAdvantage() ([]services.AdvantageClient, error)
GetPromotionList() ([]services.Promotion, error)
GetFooterNavList() ([]services.FooterNav, error)
}
func NewLandingPageHandler(us LandingPageService) *LandingPageHandler {
@@ -42,11 +43,15 @@ func (uh *LandingPageHandler) ShowLandingPage(c echo.Context) error {
// fmt.Println(err)
return err
}
ftNav, err := uh.LandingPageService.GetFooterNavList()
if err != nil {
return err
}
fmt.Printf("%+v\n", udata)
helo := landingpage.ShowLandingPage("Hello World",
landingpage.MainLandingPage(landingpage.ListMedicalService(udata),
landingpage.ListAdvantage(adData), landingpage.ListPromotion(lpData),
landingpage.Footer()),
landingpage.FooterSection(ftNav)),
landingpage.CssLandingPage(),
landingpage.JsLandingPage())
return uh.View(c, helo)

View File

@@ -2,19 +2,34 @@ package handlers
import (
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
"github.com/emarifer/go-templ-project-structure/views/login"
"github.com/labstack/echo/v4"
)
func HandlerShowLoginCompany(c echo.Context) error {
// si := user.ShowIndex("| Home", user.Show(udata))
si := login.ShowLogin("Login ", login.DivLogin(), login.CssLogin(), login.JsLogin())
return ViewLoginCompany(c, si)
type LoginService interface {
GetLogin(Email string, Password string) (services.Login, error)
}
func ViewLoginCompany(c echo.Context, cmp templ.Component) error {
func NewLoginHandler(us LoginService) *LoginHandler {
return &LoginHandler{
LoginService: us,
}
}
type LoginHandler struct {
LoginService LoginService
}
func (lh *LoginHandler) HandlerShowLogin(c echo.Context) error {
si := login.ShowLogin("Login ", login.MainLogin(), login.CssLogin(), login.JsLogin())
return lh.ViewLogin(c, si)
}
func (uh *LoginHandler) ViewLogin(c echo.Context, cmp templ.Component) error {
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
return cmp.Render(c.Request().Context(), c.Response().Writer)

View File

@@ -0,0 +1,55 @@
package handlers
import (
"fmt"
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
mastermenuusergroup "github.com/emarifer/go-templ-project-structure/views/mastermenuusergroup"
"github.com/labstack/echo/v4"
)
type MasterMenuUserGroupService interface {
GetMasterMenus() ([]services.MasterMenu, error)
}
func NewMasterMenuUserGroupHandler(us MasterMenuUserGroupService) *MasterMenuUserGroupHandler {
return &MasterMenuUserGroupHandler{
MasterMenuUserGroupService: us,
}
}
type MasterMenuUserGroupHandler struct {
MasterMenuUserGroupService MasterMenuUserGroupService
}
func (lh *MasterMenuUserGroupHandler) HandlerShowMasterMenuUserGroup(c echo.Context) error {
dataMenu, err := lh.MasterMenuUserGroupService.GetMasterMenus()
fmt.Println(dataMenu)
fmt.Println(err)
if err != nil {
fmt.Println(dataMenu)
return err
}
// fmt.Printf("%+v\n", dataMenu)
// si := mastermenu.ShowMasterMenu("Master Menu",
// mastermenu.MainMasterMenu(dataMenu),
// mastermenu.CssMasterMenu(),
// mastermenu.JsMasterMenu(),
// )
si := mastermenuusergroup.ShowMasterMenuUserGroup(
"Master Menu",
mastermenuusergroup.MainMasterMenuUserGroup(dataMenu),
mastermenuusergroup.CssMasterMenuUserGroup(),
mastermenuusergroup.JsMasterMenuUserGroup(),
)
return lh.View(c, si)
}
func (uh *MasterMenuUserGroupHandler) View(c echo.Context, cmp templ.Component) error {
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
return cmp.Render(c.Request().Context(), c.Response().Writer)
}

View File

@@ -11,17 +11,31 @@ func SetupRoutes(app *echo.Echo, h *UserHandler) {
}
//PLAYGROUND TESTING
func SetupRoutesLogin(app *echo.Echo, h *LoginHandler) {
l := app.Group("/login")
l.GET("/", h.HandlerShowLogin)
}
func SetupRoutesXsample(app *echo.Echo, h *XsampleHandler) {
xSample := app.Group("/xsample")
xSample.GET("/xsample01", h.Hello)
}
func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler) {
func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler, mastermenuusergroupHandler *MasterMenuUserGroupHandler) {
Lp := app.Group("/landing_page")
Lp.GET("/", h.ShowLandingPage)
clientgroup := app.Group("/client")
// mdgroup := clientgroup.Group("/md")
// clientusergroup.GET("/md", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
clientgroup.GET("/usergroup", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
}
func SetupRoutesPieChart(app *echo.Echo, h *PiechartHandler) {
Lp := app.Group("/pie_chart")
Lp.GET("/", h.ShowPieChart)
Lp.GET("/peserta", h.ShowMcuPeserta)
Lp.GET("/bar", h.ShowBarChart)
}
func SetupRoutesEmployee(app *echo.Echo, e *EmployeeHandler) {
employee := app.Group("/employee")
employee.GET("/", e.ShowEmployee)
}
func SetupRoutesProject(app *echo.Echo) {

View File

@@ -6,10 +6,12 @@ import (
"github.com/emarifer/go-templ-project-structure/db"
)
func NewServicesPiechart(u Piechart, uStore db.PieChartStore) *ServicesPiechart {
func NewServicesPiechart(u Piechart, b Barchart, uStore db.PieChartStore, bStore db.BarChartStore) *ServicesPiechart {
return &ServicesPiechart{
Piechart: u,
Barchart: b,
BarChartStore: bStore,
PieChartStore: uStore,
}
}
@@ -106,8 +108,9 @@ type Piechart struct {
// CreatedAt time.Time `json:"created_at,omitempty"`
Title struct {
Text string `json:"text"`
Left string `json:"left"`
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
} `json:"title"`
Tooltip struct {
Trigger string `json:"trigger"`
@@ -122,6 +125,8 @@ type Piechart struct {
type ServicesPiechart struct {
Piechart Piechart
Barchart Barchart
BarChartStore db.BarChartStore
PieChartStore db.PieChartStore
}
@@ -180,14 +185,16 @@ type ServicesPiechart struct {
// Peserta MCU -- MCU001
func GetPieChartMcu001(code string, id int) (string, Piechart, error) {
var title = "Status Index Masa Tubuh (BMI)"
var title = "Peserta MCU"
option := Piechart{
Title: struct {
Text string `json:"text"`
Left string `json:"left"`
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
Left: "center",
Text: title,
SubText: "Total Peserta 506",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
@@ -202,6 +209,11 @@ func GetPieChartMcu001(code string, id int) (string, Piechart, error) {
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
@@ -252,17 +264,17 @@ func GetPieChartMcu001(code string, id int) (string, Piechart, error) {
}
// Kepersertaan MCU Berdasarkan Jenis Kelamin -- MCU002
// Status Index Masa Tubuh (BMI) -- MCU006
func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
var title = "Status Index Masa Tubuh (BMI)"
func GetPieChartMcu002(code string, id int) (string, Piechart, error) {
var title = "Kepesertaan MCU"
option := Piechart{
Title: struct {
Text string `json:"text"`
Left string `json:"left"`
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
Left: "center",
Text: title,
SubText: "Berdasarkan Jenis Kelamin",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
@@ -277,6 +289,173 @@ func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
Label: struct {
Position string `json:"position"`
Formatter string `json:"formatter"`
}{
Position: "inner",
Formatter: "{d}%",
},
Name: "Access From",
Type: "pie",
Radius: []string{"20%", "50%"},
ItemStyle: struct {
BorderRadius int `json:"borderRadius"`
BorderColor string `json:"borderColor"`
BorderWidth int `json:"borderWidth"`
}{
BorderRadius: 10,
BorderColor: "#fff",
BorderWidth: 2,
},
Data: []SeriesData{
{Value: 143, Name: "Laki-laki : 143 Peserta"},
{Value: 114, Name: "Perempuan : 114 Peserta"},
},
Emphasis: struct {
ItemStyle struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
} `json:"itemStyle"`
}{
ItemStyle: struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
}{
ShadowBlur: 10,
ShadowOffsetX: 0,
ShadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
},
}
return title, option, nil
}
// Peserta MCU berdasarkan umur
func GetPieChartMcu003(code string, id int) (string, Piechart, error) {
var title = "Peserta MCU"
option := Piechart{
Title: struct {
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
SubText: "Berdasarkan Umur",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
}{
Trigger: "item",
},
Legend: struct {
Top string `json:"top"`
Left string `json:"left"`
Orient string `json:"orient"`
}{
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
Label: struct {
Position string `json:"position"`
Formatter string `json:"formatter"`
}{
Position: "inner",
Formatter: "{d}%",
},
Name: "Access From",
Type: "pie",
Radius: []string{"20%", "50%"},
ItemStyle: struct {
BorderRadius int `json:"borderRadius"`
BorderColor string `json:"borderColor"`
BorderWidth int `json:"borderWidth"`
}{
BorderRadius: 10,
BorderColor: "#fff",
BorderWidth: 2,
},
Data: []SeriesData{
{Value: 188, Name: "< 30 Tahun : 188 Peserta"},
{Value: 194, Name: "30 - < 40 Tahun : 194 Peserta"},
{Value: 123, Name: "40 - < 50 Tahun : 123 Peserta"},
{Value: 55, Name: "≥ 50 Tahun : 55 Peserta"},
},
Emphasis: struct {
ItemStyle struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
} `json:"itemStyle"`
}{
ItemStyle: struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
}{
ShadowBlur: 10,
ShadowOffsetX: 0,
ShadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
},
}
return title, option, nil
}
// Status Index Masa Tubuh (BMI) -- MCU006
func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
var title = "Status Index Masa Tubuh (BMI)"
option := Piechart{
Title: struct {
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
SubText: "",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
}{
Trigger: "item",
},
Legend: struct {
Top string `json:"top"`
Left string `json:"left"`
Orient string `json:"orient"`
}{
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
@@ -329,14 +508,323 @@ func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
return title, option, nil
}
// Kriteria Hipertensi -- MCU007
func GetPieChartMcu007(code string, id int) (string, Piechart, error) {
var title = "Kriteria Hipertensi"
option := Piechart{
Title: struct {
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
SubText: "",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
}{
Trigger: "item",
},
Legend: struct {
Top string `json:"top"`
Left string `json:"left"`
Orient string `json:"orient"`
}{
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
Label: struct {
Position string `json:"position"`
Formatter string `json:"formatter"`
}{
Position: "inner",
Formatter: "{d}%",
},
Name: "Access From",
Type: "pie",
Radius: []string{"20%", "50%"},
ItemStyle: struct {
BorderRadius int `json:"borderRadius"`
BorderColor string `json:"borderColor"`
BorderWidth int `json:"borderWidth"`
}{
BorderRadius: 10,
BorderColor: "#fff",
BorderWidth: 2,
},
Data: []SeriesData{
{Value: 237, Name: "Normal : 237 Peserta"},
{Value: 215, Name: "Prehipertensi : 215 Peserta"},
{Value: 66, Name: "Hipertensi Grade I : 66 Peserta"},
{Value: 33, Name: "Hipertensi Grade II : 33 Peserta"},
},
Emphasis: struct {
ItemStyle struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
} `json:"itemStyle"`
}{
ItemStyle: struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
}{
ShadowBlur: 10,
ShadowOffsetX: 0,
ShadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
},
}
return title, option, nil
}
// Visus Jauh -- MCU008
func GetPieChartMcu008(code string, id int) (string, Piechart, error) {
var title = "Visus Jauh"
option := Piechart{
Title: struct {
Text string `json:"text"`
SubText string `json:"subtext"`
Left string `json:"left"`
}{
Text: title,
SubText: "",
Left: "center",
},
Tooltip: struct {
Trigger string `json:"trigger"`
}{
Trigger: "item",
},
Legend: struct {
Top string `json:"top"`
Left string `json:"left"`
Orient string `json:"orient"`
}{
Top: "bottom",
Left: "center",
Orient: "vertical",
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
// Top: "bottom",
// Left: "center",
// Orient: "horizontal",
},
Series: []Series{
{
Label: struct {
Position string `json:"position"`
Formatter string `json:"formatter"`
}{
Position: "inner",
Formatter: "{d}%",
},
Name: "Access From",
Type: "pie",
Radius: []string{"20%", "50%"},
ItemStyle: struct {
BorderRadius int `json:"borderRadius"`
BorderColor string `json:"borderColor"`
BorderWidth int `json:"borderWidth"`
}{
BorderRadius: 10,
BorderColor: "#fff",
BorderWidth: 2,
},
Data: []SeriesData{
{Value: 237, Name: "Normal : 237 Peserta"},
{Value: 194, Name: "Kelainan Refraksi : 194 Peserta"},
{Value: 64, Name: "Kelainan Refraksi terkoreksi : 64 Peserta"},
{Value: 56, Name: "Kelainan Refraksi tidak terkoreksi : 56 Peserta"},
},
Emphasis: struct {
ItemStyle struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
} `json:"itemStyle"`
}{
ItemStyle: struct {
ShadowBlur int `json:"shadowBlur"`
ShadowOffsetX int `json:"shadowOffsetX"`
ShadowColor string `json:"shadowColor"`
}{
ShadowBlur: 10,
ShadowOffsetX: 0,
ShadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
},
}
return title, option, nil
}
// Kelainan MCU - MCU004
func GetBarChartMcu004(code string, id int) (string, Barchart, error) {
title := "Kelainan MCU"
option := Barchart{}
option.Title = struct {
Text string "json:\"text\""
}{title}
option.Dataset = struct {
Source [][]interface{} "json:\"source\""
}{[][]interface{}{
{"score", "amount", "product", "percentage"},
{200, 447, "Body Mass Index"},
{150, 314, "Pemeriksaan Mata"},
{125, 314, "Fungsi Lemak"},
{100, 254, "Autospirometri"},
{90, 200, "Hematologi"},
{80, 180, "ECG"},
{75, 160, "Hiperuricemia"},
{70, 125, "Tekanan Darah"},
{60, 118, "Urine Lengkap"},
{50, 87, "Fungsi Hati"},
}}
option.Grid.ContainLabel = true
option.XAxis.Name = "amount"
option.YAxis.Type = "category"
option.VisualMap.Orient = "horizontal"
option.VisualMap.Left = "center"
option.VisualMap.Min = 10
option.VisualMap.Max = 100
option.VisualMap.Show = false
option.VisualMap.Dimension = 0
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
option.Series = []struct {
Label struct {
Position string "json:\"position\""
Show bool "json:\"show\""
Formatter string "json:\"formatter\""
} "json:\"label\""
Type string "json:\"type\""
Encode struct {
X string "json:\"x\""
Y string "json:\"y\""
} "json:\"encode\""
}{
{Label: struct {
Position string "json:\"position\""
Show bool "json:\"show\""
Formatter string "json:\"formatter\""
}{Position: "right", Show: true, Formatter: "{@[3]} %"},
Type: "bar", Encode: struct {
X string "json:\"x\""
Y string "json:\"y\""
}{X: "amount", Y: "product"}},
}
return title, option, nil
}
// Kelainan MCU - MCU004
func GetBarChartMcu005(code string, id int) (string, Barchart, error) {
title := "Kelainan Fisik"
option := Barchart{}
option.Title = struct {
Text string "json:\"text\""
}{title}
option.Dataset = struct {
Source [][]interface{} "json:\"source\""
}{[][]interface{}{
{"score", "amount", "product", "percentage"},
{200, 400, "Obesitas Stage 1"},
{150, 300, "Pre Hipertensi"},
{133, 250, "Kelainan Refraksi"},
{125, 180, "Overweight"},
{100, 125, "Obesitas Stage 2"},
{80, 100, "Hipertensi grade 1"},
{70, 80, "Kel. Refrakti terkoreksi"},
{60, 70, "Kel. Refrakti tidak terkoreksi"},
{55, 55, "Hipertensi grade 2"},
}}
option.Grid.ContainLabel = true
option.XAxis.Name = "amount"
option.YAxis.Type = "category"
option.VisualMap.Orient = "horizontal"
option.VisualMap.Left = "center"
option.VisualMap.Min = 10
option.VisualMap.Max = 100
option.VisualMap.Show = false
option.VisualMap.Dimension = 0
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
option.Series = []struct {
Label struct {
Position string "json:\"position\""
Show bool "json:\"show\""
Formatter string "json:\"formatter\""
} "json:\"label\""
Type string "json:\"type\""
Encode struct {
X string "json:\"x\""
Y string "json:\"y\""
} "json:\"encode\""
}{
{Label: struct {
Position string "json:\"position\""
Show bool "json:\"show\""
Formatter string "json:\"formatter\""
}{Position: "right", Show: true, Formatter: "{@[3]} %"},
Type: "bar", Encode: struct {
X string "json:\"x\""
Y string "json:\"y\""
}{X: "amount", Y: "product"}},
}
return title, option, nil
}
func (su *ServicesPiechart) GetPieChart(code string, id int) (string, Piechart, error) {
if code == "mcu001" {
return GetPieChartMcu001(code, id)
}
if code == "mcu002" {
return GetPieChartMcu002(code, id)
}
if code == "mcu003" {
return GetPieChartMcu003(code, id)
}
if code == "mcu006" {
return GetPieChartMcu006(code, id)
}
if code == "mcu007" {
return GetPieChartMcu007(code, id)
}
if code == "mcu008" {
return GetPieChartMcu008(code, id)
}
return "", Piechart{}, fmt.Errorf("code " + code + " not found")
}
func (su *ServicesPiechart) GetBarChart(code string, id int) (string, Barchart, error) {
if code == "mcu004" {
return GetBarChartMcu004(code, id)
}
if code == "mcu005" {
return GetBarChartMcu005(code, id)
}
return "", Barchart{}, fmt.Errorf("code " + code + " not found")
}

View File

@@ -0,0 +1,71 @@
package services
import (
"time"
"github.com/emarifer/go-templ-project-structure/db"
)
func NewServicesEmployee(u Employee, uStore db.EmployeeStore) *ServicesEmployee {
return &ServicesEmployee{
Employee: u,
EmployeeStore: uStore,
}
}
type Employee struct {
ID int `json:"id"`
Employeename string `json:"Employeename"`
Email string `json:"email"`
CreatedAt time.Time `json:"created_at,omitempty"`
}
type EmployeeService struct {
EmployeeID int `json:"EmployeeID"`
EmployeeTitle string `json:"EmployeeTitle"`
EmployeeDescription string `json:"EmployeeDescription"`
EmployeeStartDate string `json:"EmployeeStartDate"`
EmployeeEndDate string `json:"EmployeeEndDate"`
}
type ServicesEmployee struct {
Employee Employee
EmployeeStore db.EmployeeStore
}
func (se *ServicesEmployee) GetEmployeeService() ([]EmployeeService, error) {
data := []EmployeeService{
{
EmployeeID: 1,
EmployeeTitle: "MCU Calon Karyawan",
EmployeeDescription: "Tanggal Pelaksanaan",
EmployeeStartDate: "01/04/2024",
EmployeeEndDate: "06/04/2024",
},
{
EmployeeID: 2,
EmployeeTitle: "MCU Karyawan",
EmployeeDescription: "Tanggal Pelaksanaan",
EmployeeStartDate: "01/04/2024",
EmployeeEndDate: "06/04/2024",
},
{
EmployeeID: 1,
EmployeeTitle: "MCU Eselon 1",
EmployeeDescription: "Tanggal Pelaksanaan",
EmployeeStartDate: "01/04/2024",
EmployeeEndDate: "06/04/2024",
},
{
EmployeeID: 1,
EmployeeTitle: "MCU Eselon 2",
EmployeeDescription: "Tanggal Pelaksanaan",
EmployeeStartDate: "01/04/2024",
EmployeeEndDate: "06/04/2024",
},
}
return data, nil
}

View File

@@ -40,6 +40,18 @@ type Promotion struct {
PromotionLink string `json:"PromotionLink"`
}
type FooterSubNav struct {
FootSubNavID int `json:"FootSubNavID"`
FootSubNavTitle string `json:"FootSubNavTitle"`
FootSubNavLink string `json:"FootSubNavLink"`
}
type FooterNav struct {
FooterNavID int `json:"FooterNavID"`
FooterNavTitle string `json:"FooterNavTitle"`
FooteSubNav []FooterSubNav `json:"FooterSubNav,omitempty"`
}
type ServicesLandingPage struct {
LandingPage LandingPage
LandingPageStore db.LandingPageStore
@@ -203,3 +215,73 @@ func (su *ServicesLandingPage) GetPromotionList() ([]Promotion, error) {
return data, nil
}
func (su *ServicesLandingPage) GetFooterNavList() ([]FooterNav, error) {
data := []FooterNav{
{
FooterNavID: 1,
FooterNavTitle: "Dashboard",
FooteSubNav: []FooterSubNav{
{
FootSubNavID: 1,
FootSubNavTitle: "Dashboard #1",
FootSubNavLink: "/",
},
{
FootSubNavID: 2,
FootSubNavTitle: "Dashboard #2",
FootSubNavLink: "/",
},
},
},
{
FooterNavID: 2,
FooterNavTitle: "Benefit",
FooteSubNav: []FooterSubNav{
{
FootSubNavID: 1,
FootSubNavTitle: "Benefit #1",
FootSubNavLink: "/",
},
{
FootSubNavID: 2,
FootSubNavTitle: "Benefit #2",
FootSubNavLink: "/",
},
},
},
{
FooterNavID: 3,
FooterNavTitle: "Finance & Claims",
FooteSubNav: []FooterSubNav{
{
FootSubNavID: 1,
FootSubNavTitle: "Finance & Claims #1",
FootSubNavLink: "/",
},
{
FootSubNavID: 2,
FootSubNavTitle: "Finance & Claims #2",
FootSubNavLink: "/",
},
},
},
{
FooterNavID: 4,
FooterNavTitle: "Memberships",
FooteSubNav: []FooterSubNav{
{
FootSubNavID: 1,
FootSubNavTitle: "Memberships #1",
FootSubNavLink: "/",
},
{
FootSubNavID: 2,
FootSubNavTitle: "Memberships #2",
FootSubNavLink: "/",
},
},
},
}
return data, nil
}

View File

@@ -0,0 +1,59 @@
package services
import (
"time"
"github.com/emarifer/go-templ-project-structure/db"
)
func NewServicesLogin(u Login, uStore db.LoginStore) *ServicesLogin {
return &ServicesLogin{
Login: u,
LoginStore: uStore,
}
}
type Login struct {
ID int `json:"id"`
Loginname string `json:"Loginname"`
Email string `json:"Email"`
Password string `json:"Password"`
CreatedAt time.Time `json:"created_at,omitempty"`
}
type ServicesLogin struct {
Login Login
LoginStore db.LoginStore
}
func (su *ServicesLogin) GetLogin(Email string, Password string) (Login, error) {
query := `SELECT id, Loginname, Email, Password, created_at FROM Login
WHERE Email = ? AND Password = ?`
stmt, err := su.LoginStore.Db.Prepare(query)
if err != nil {
return Login{}, err
}
defer stmt.Close()
su.Login.Email = Email
su.Login.Password = Password
err = stmt.QueryRow(
su.Login.Email,
su.Login.Password,
).Scan(
&su.Login.ID,
&su.Login.Loginname,
&su.Login.Email,
&su.Login.Password,
&su.Login.CreatedAt,
)
if err != nil {
return Login{}, err
}
return su.Login, nil
}

View File

@@ -0,0 +1,597 @@
package services
import (
"github.com/emarifer/go-templ-project-structure/db"
)
func NewServicesMasterMenuUserGroup(u MasterMenu, uStore db.MasterMenuUserGroupStore) *ServicesMasterMenuUserGroup {
return &ServicesMasterMenuUserGroup{
MasterMenu: u,
MasterMenuUserGroupStore: uStore,
}
}
// MasterMenu struct
type Breadcrumb struct {
IDBreadcrumb string `json:"id_breadcrumb"`
Name string `json:"name"`
Url string `json:"url"`
}
type ChildrenMenu struct {
ChildrenParentID string `json:"children_parent_id"`
ChildrenMenuID string `json:"children_menu_id"`
ChildrenMenuName string `json:"children_menu_name"`
ChildrenMenuURL string `json:"children_menu_url"`
// Breadcrumb []Breadcrumb `json:"breadcrumb"`
}
type MasterMenu struct {
ID string `json:"id"`
ParentMenuID string `json:"parent_menu_id"`
ParentMenuName string `json:"parent_menu_name"`
ParentUrl string `json:"parent_url"`
ParentIcon string `json:"parent_icon"`
Children []ChildrenMenu `json:"children"`
}
type ServicesMasterMenuUserGroup struct {
MasterMenu MasterMenu
MasterMenuUserGroupStore db.MasterMenuUserGroupStore
}
func (su *ServicesMasterMenuUserGroup) GetMasterMenus() ([]MasterMenu, error) {
// dummyBreadcrumb := []Breadcrumb{
// {
// Name: "Dashboard",
// Url: "/client/dashboard",
// },
// {
// Name: "Front Office",
// Url: "/client/usermanagement",
// },
// }
dummyMenu := []MasterMenu{
// 1. Dashboard
{
ID: "1",
ParentMenuID: "0",
ParentMenuName: "Dashboard",
ParentUrl: "/client/md/dashboard",
ParentIcon: "",
Children: []ChildrenMenu{
{
ChildrenParentID: "1",
ChildrenMenuID: "1",
ChildrenMenuName: "Master User",
ChildrenMenuURL: "/client/md/user",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "Y",
// },
// },
},
},
},
// 2. Front Office
{
ID: "2",
ParentMenuID: "1",
ParentMenuName: "Front Office",
ParentUrl: "#",
ParentIcon: "",
Children: []ChildrenMenu{
{
ChildrenParentID: "1",
ChildrenMenuID: "1",
ChildrenMenuName: "Registrasi",
ChildrenMenuURL: "/fo/registrasi",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User",
// IsActive: "Y",
// },
// },
},
},
},
// 3. Station
{
ID: "3",
ParentMenuID: "2",
ParentMenuName: "Station",
ParentUrl: "#",
ParentIcon: "",
Children: []ChildrenMenu{
{
ChildrenParentID: "2",
ChildrenMenuID: "1",
ChildrenMenuName: "Sample Station",
ChildrenMenuURL: "/station/sample",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User",
// IsActive: "Y",
// },
// },
},
},
},
// 4. Management MCU
{
ID: "4",
ParentMenuID: "3",
ParentMenuName: "Management MCU",
ParentUrl: "#",
ParentIcon: "",
Children: []ChildrenMenu{
{
ChildrenParentID: "3",
ChildrenMenuID: "1",
ChildrenMenuName: "Setup MCU",
ChildrenMenuURL: "/mcu/setup",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User",
// IsActive: "Y",
// },
// },
},
{
ChildrenParentID: "3",
ChildrenMenuID: "2",
ChildrenMenuName: "Pre-Registrasi",
ChildrenMenuURL: "/mcu/preregister",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User",
// IsActive: "Y",
// },
// },
},
},
},
// 5. Master Data
{
ID: "5",
ParentMenuID: "4",
ParentMenuName: "Master Data",
ParentUrl: "#",
ParentIcon: "",
Children: []ChildrenMenu{
// * Master User
{
ChildrenParentID: "4",
ChildrenMenuID: "1",
ChildrenMenuName: "Master User",
ChildrenMenuURL: "/client/md/user",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User",
// IsActive: "Y",
// },
// },
},
// * Master User Group
{
ChildrenParentID: "4",
ChildrenMenuID: "2",
ChildrenMenuName: "Master User Group",
ChildrenMenuURL: "/client/md/usergroup",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Master Corporate
{
ChildrenParentID: "4",
ChildrenMenuID: "3",
ChildrenMenuName: "Corporate",
ChildrenMenuURL: "/client/md/corp",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Test
{
ChildrenParentID: "4",
ChildrenMenuID: "4",
ChildrenMenuName: "Test",
ChildrenMenuURL: "/client/md/test",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Bahan
{
ChildrenParentID: "4",
ChildrenMenuID: "5",
ChildrenMenuName: "Bahan",
ChildrenMenuURL: "/client/md/bahan",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Sample Type
{
ChildrenParentID: "4",
ChildrenMenuID: "6",
ChildrenMenuName: "Sample Type",
ChildrenMenuURL: "/client/sample/type",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Sample Station
{
ChildrenParentID: "4",
ChildrenMenuID: "7",
ChildrenMenuName: "Sample Station",
ChildrenMenuURL: "/station/sample",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Result Non Lab
{
ChildrenParentID: "4",
ChildrenMenuID: "8",
ChildrenMenuName: "Result Non Lab",
ChildrenMenuURL: "/client/md/resultnonlab",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Template Fisik
{
ChildrenParentID: "4",
ChildrenMenuID: "9",
ChildrenMenuName: "Template Fisik",
ChildrenMenuURL: "/client/md/template-fisik",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Pasien
{
ChildrenParentID: "4",
ChildrenMenuID: "10",
ChildrenMenuName: "Pasien",
ChildrenMenuURL: "/client/md/pasien",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Dokter
{
ChildrenParentID: "4",
ChildrenMenuID: "11",
ChildrenMenuName: "Dokter",
ChildrenMenuURL: "/client/md/dokter",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Paket
{
ChildrenParentID: "4",
ChildrenMenuID: "12",
ChildrenMenuName: "Paket",
ChildrenMenuURL: "/client/md/paket",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
// * Harga Single
{
ChildrenParentID: "4",
ChildrenMenuID: "13",
ChildrenMenuName: "Harga Single",
ChildrenMenuURL: "/client/md/hargasingle",
// Breadcrumb: []Breadcrumb{
// {
// IDBreadcrumb: "1",
// Title: "Dashboard",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "2",
// Title: "Master",
// IsActive: "N",
// },
// {
// IDBreadcrumb: "3",
// Title: "User Group",
// IsActive: "Y",
// },
// },
},
},
},
}
return dummyMenu, nil
}
// func (su *ServicesMasterMenuUserGroup) GetAllMasterMenus() ([]MasterMenu, error) {
// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus ORDER BY created_at DESC`
// rows, err := su.MasterMenuUserGroupStore.Db.Query(query)
// if err != nil {
// return []MasterMenu{}, err
// }
// // We close the resource
// defer rows.Close()
// MasterMenus := []MasterMenu{}
// for rows.Next() {
// rows.Scan(
// &su.MasterMenu.ID,
// &su.MasterMenu.MasterMenuname,
// &su.MasterMenu.Email,
// &su.MasterMenu.CreatedAt,
// )
// MasterMenus = append(MasterMenus, su.MasterMenu)
// }
// return MasterMenus, nil
// }
// func (su *ServicesMasterMenuUserGroup) GetMasterMenuById(id int) (MasterMenu, error) {
// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus
// WHERE id = ?`
// stmt, err := su.MasterMenuUserGroupStore.Db.Prepare(query)
// if err != nil {
// return MasterMenu{}, err
// }
// defer stmt.Close()
// su.MasterMenu.ID = id
// err = stmt.QueryRow(
// su.MasterMenu.ID,
// ).Scan(
// &su.MasterMenu.ID,
// &su.MasterMenu.MasterMenuname,
// &su.MasterMenu.Email,
// &su.MasterMenu.CreatedAt,
// )
// if err != nil {
// return MasterMenu{}, err
// }
// return su.MasterMenu, nil
// }

View File

@@ -0,0 +1,23 @@
package breadcrumadmin
templ MainBreadcrumbAdmin() {
<div class="col-11">
<h1 class="title text-black" style="margin-bottom: 0">
PT. Sadhana Abiyasa Sampoerna
</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb" style="margin-bottom: 0">
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
<li class="breadcrumb-item">
<a href="#">Employee Health Medical Analytic</a>
</li>
<li class="breadcrumb-item">
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
Mcu Karyawan
</li>
</ol>
</nav>
</div>
}

View File

@@ -0,0 +1,35 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package breadcrumadmin
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
func MainBreadcrumbAdmin() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,17 @@
package customtextfield
templ MainCustomTextField(inpLabelText,
inpName,
inpPlaceHolder,
inpType string) {
<div class="form-group">
<label class="text-black" style="font-family: Poppins; font-weight: 600;">{ inpLabelText } </label>
<input
id={ inpName }
name={ inpName }
type={ inpType }
placeholder={ inpPlaceHolder }
class="form-control bg-field border-0"
/>
</div>
}

View File

@@ -0,0 +1,103 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package customtextfield
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
func MainCustomTextField(inpLabelText,
inpName,
inpPlaceHolder,
inpType string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"form-group\"><label class=\"text-black\" style=\"font-family: Poppins; font-weight: 600;\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(inpLabelText)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 8, Col: 90}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</label> <input id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 10, Col: 15}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" name=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 11, Col: 17}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(inpType)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 12, Col: 17}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" placeholder=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(inpPlaceHolder)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 13, Col: 31}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"form-control bg-field border-0\"></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,22 @@
package customtextfieldsearch
templ MainCustomTextFieldSearch(
inpName,
inpPlaceHolder,
inpType,
hxPost,
hxTrigger,
hxTarget,
hxIndicator string) {
<input
class="form-control bg-field border-0"
type={ inpType }
name={ inpName }
id={ inpName }
placeholder={ inpPlaceHolder }
hx-post={ hxPost }
hx-trigger={ hxTrigger }
hx-target={ hxTarget }
hx-indicator={ hxIndicator }
/>
}

View File

@@ -0,0 +1,146 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package customtextfieldsearch
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
func MainCustomTextFieldSearch(
inpName,
inpPlaceHolder,
inpType,
hxPost,
hxTrigger,
hxTarget,
hxIndicator string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<input class=\"form-control bg-field border-0\" type=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(inpType)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 13, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" name=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 14, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 15, Col: 20}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" placeholder=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(inpPlaceHolder)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 16, Col: 36}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-post=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(hxPost)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 17, Col: 24}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-trigger=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(hxTrigger)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 18, Col: 30}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 19, Col: 28}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-indicator=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(hxIndicator)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 20, Col: 34}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,102 @@
package sidebarmaster
import (
"github.com/emarifer/go-templ-project-structure/services"
)
templ MenuDashboard(ParentMenuName string, ParentMenuUrl string) {
<li class="menu-item menu-item-active" aria-haspopup="true">
<a
href={ templ.SafeURL(ParentMenuUrl) }
class="menu-link "
>
<span
class="svg-icon menu-icon"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Design/Layers.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 24 0 24 24 0 24"></polygon>
<path
d="M12.9336061,16.072447 L19.36,10.9564761 L19.5181585,10.8312381 C20.1676248,10.3169571 20.2772143,9.3735535 19.7629333,8.72408713 C19.6917232,8.63415859 19.6104327,8.55269514 19.5206557,8.48129411 L12.9336854,3.24257445 C12.3871201,2.80788259 11.6128799,2.80788259 11.0663146,3.24257445 L4.47482784,8.48488609 C3.82645598,9.00054628 3.71887192,9.94418071 4.23453211,10.5925526 C4.30500305,10.6811601 4.38527899,10.7615046 4.47382636,10.8320511 L4.63,10.9564761 L11.0659024,16.0730648 C11.6126744,16.5077525 12.3871218,16.5074963 12.9336061,16.072447 Z"
fill="#000000"
fill-rule="nonzero"
></path>
<path
d="M11.0563554,18.6706981 L5.33593024,14.122919 C4.94553994,13.8125559 4.37746707,13.8774308 4.06710397,14.2678211 C4.06471678,14.2708238 4.06234874,14.2738418 4.06,14.2768747 L4.06,14.2768747 C3.75257288,14.6738539 3.82516916,15.244888 4.22214834,15.5523151 C4.22358765,15.5534297 4.2250303,15.55454 4.22647627,15.555646 L11.0872776,20.8031356 C11.6250734,21.2144692 12.371757,21.2145375 12.909628,20.8033023 L19.7677785,15.559828 C20.1693192,15.2528257 20.2459576,14.6784381 19.9389553,14.2768974 C19.9376429,14.2751809 19.9363245,14.2734691 19.935,14.2717619 L19.935,14.2717619 C19.6266937,13.8743807 19.0546209,13.8021712 18.6572397,14.1104775 C18.654352,14.112718 18.6514778,14.1149757 18.6486172,14.1172508 L12.9235044,18.6705218 C12.377022,19.1051477 11.6029199,19.1052208 11.0563554,18.6706981 Z"
fill="#000000"
opacity="0.3"
></path>
</g>
</svg><!--end::Svg Icon-->
</span><span class="menu-text">{ ParentMenuName }</span>
</a>
</li>
}
templ ListMenuChildren(ChildrenMenuURL string, ChildrenMenuName string) {
<li class="menu-item" aria-haspopup="true">
<a href={ templ.SafeURL(ChildrenMenuURL) } class="menu-link">
<i class="menu-bullet menu-bullet-line"><span></span></i>
<span class="menu-text">{ ChildrenMenuName }</span>
</a>
</li>
}
templ ListMenuNavbar(ParentMenuName string, datamenuchildren []services.ChildrenMenu) {
<li class="menu-item menu-item-submenu" aria-haspopup="true" data-menu-toggle="hover">
<a
href="javascript:;"
class="menu-link menu-toggle"
>
<span
class="svg-icon menu-icon"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Shopping/Barcode-read.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M7,3 L17,3 C19.209139,3 21,4.790861 21,7 C21,9.209139 19.209139,11 17,11 L7,11 C4.790861,11 3,9.209139 3,7 C3,4.790861 4.790861,3 7,3 Z M7,9 C8.1045695,9 9,8.1045695 9,7 C9,5.8954305 8.1045695,5 7,5 C5.8954305,5 5,5.8954305 5,7 C5,8.1045695 5.8954305,9 7,9 Z"
fill="#000000"
></path>
<path
d="M7,13 L17,13 C19.209139,13 21,14.790861 21,17 C21,19.209139 19.209139,21 17,21 L7,21 C4.790861,21 3,19.209139 3,17 C3,14.790861 4.790861,13 7,13 Z M17,19 C18.1045695,19 19,18.1045695 19,17 C19,15.8954305 18.1045695,15 17,15 C15.8954305,15 15,15.8954305 15,17 C15,18.1045695 15.8954305,19 17,19 Z"
fill="#000000"
opacity="0.3"
></path>
</g>
</svg><!--end::Svg Icon-->
</span><span class="menu-text">{ ParentMenuName }</span><i
class="menu-arrow"
></i>
</a>
<div class="menu-submenu ">
<i class="menu-arrow"></i>
<ul class="menu-subnav">
<li class="menu-item menu-item-parent" aria-haspopup="true">
<span
class="menu-link"
><span class="menu-text">{ ParentMenuName }</span></span>
</li>
for _, dx := range datamenuchildren {
@ListMenuChildren(dx.ChildrenMenuURL, dx.ChildrenMenuName)
}
</ul>
</div>
</li>
}

View File

@@ -0,0 +1,167 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package sidebarmaster
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
"github.com/emarifer/go-templ-project-structure/services"
)
func MenuDashboard(ParentMenuName string, ParentMenuUrl string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item menu-item-active\" aria-haspopup=\"true\"><a href=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var2 templ.SafeURL = templ.SafeURL(ParentMenuUrl)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var2)))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"menu-link \"><span class=\"svg-icon menu-icon\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Design/Layers.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><polygon points=\"0 0 24 0 24 24 0 24\"></polygon> <path d=\"M12.9336061,16.072447 L19.36,10.9564761 L19.5181585,10.8312381 C20.1676248,10.3169571 20.2772143,9.3735535 19.7629333,8.72408713 C19.6917232,8.63415859 19.6104327,8.55269514 19.5206557,8.48129411 L12.9336854,3.24257445 C12.3871201,2.80788259 11.6128799,2.80788259 11.0663146,3.24257445 L4.47482784,8.48488609 C3.82645598,9.00054628 3.71887192,9.94418071 4.23453211,10.5925526 C4.30500305,10.6811601 4.38527899,10.7615046 4.47382636,10.8320511 L4.63,10.9564761 L11.0659024,16.0730648 C11.6126744,16.5077525 12.3871218,16.5074963 12.9336061,16.072447 Z\" fill=\"#000000\" fill-rule=\"nonzero\"></path> <path d=\"M11.0563554,18.6706981 L5.33593024,14.122919 C4.94553994,13.8125559 4.37746707,13.8774308 4.06710397,14.2678211 C4.06471678,14.2708238 4.06234874,14.2738418 4.06,14.2768747 L4.06,14.2768747 C3.75257288,14.6738539 3.82516916,15.244888 4.22214834,15.5523151 C4.22358765,15.5534297 4.2250303,15.55454 4.22647627,15.555646 L11.0872776,20.8031356 C11.6250734,21.2144692 12.371757,21.2145375 12.909628,20.8033023 L19.7677785,15.559828 C20.1693192,15.2528257 20.2459576,14.6784381 19.9389553,14.2768974 C19.9376429,14.2751809 19.9363245,14.2734691 19.935,14.2717619 L19.935,14.2717619 C19.6266937,13.8743807 19.0546209,13.8021712 18.6572397,14.1104775 C18.654352,14.112718 18.6514778,14.1149757 18.6486172,14.1172508 L12.9235044,18.6705218 C12.377022,19.1051477 11.6029199,19.1052208 11.0563554,18.6706981 Z\" fill=\"#000000\" opacity=\"0.3\"></path></g></svg><!--end::Svg Icon--></span><span class=\"menu-text\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 39, Col: 50}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></a></li>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ListMenuChildren(ChildrenMenuURL string, ChildrenMenuName string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
if templ_7745c5c3_Var4 == nil {
templ_7745c5c3_Var4 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item\" aria-haspopup=\"true\"><a href=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 templ.SafeURL = templ.SafeURL(ChildrenMenuURL)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var5)))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"menu-link\"><i class=\"menu-bullet menu-bullet-line\"><span></span></i> <span class=\"menu-text\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(ChildrenMenuName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 48, Col: 45}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></a></li>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ListMenuNavbar(ParentMenuName string, datamenuchildren []services.ChildrenMenu) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var7 := templ.GetChildren(ctx)
if templ_7745c5c3_Var7 == nil {
templ_7745c5c3_Var7 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item menu-item-submenu\" aria-haspopup=\"true\" data-menu-toggle=\"hover\"><a href=\"javascript:;\" class=\"menu-link menu-toggle\"><span class=\"svg-icon menu-icon\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Shopping/Barcode-read.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><rect x=\"0\" y=\"0\" width=\"24\" height=\"24\"></rect> <path d=\"M7,3 L17,3 C19.209139,3 21,4.790861 21,7 C21,9.209139 19.209139,11 17,11 L7,11 C4.790861,11 3,9.209139 3,7 C3,4.790861 4.790861,3 7,3 Z M7,9 C8.1045695,9 9,8.1045695 9,7 C9,5.8954305 8.1045695,5 7,5 C5.8954305,5 5,5.8954305 5,7 C5,8.1045695 5.8954305,9 7,9 Z\" fill=\"#000000\"></path> <path d=\"M7,13 L17,13 C19.209139,13 21,14.790861 21,17 C21,19.209139 19.209139,21 17,21 L7,21 C4.790861,21 3,19.209139 3,17 C3,14.790861 4.790861,13 7,13 Z M17,19 C18.1045695,19 19,18.1045695 19,17 C19,15.8954305 18.1045695,15 17,15 C15.8954305,15 15,15.8954305 15,17 C15,18.1045695 15.8954305,19 17,19 Z\" fill=\"#000000\" opacity=\"0.3\"></path></g></svg><!--end::Svg Icon--></span><span class=\"menu-text\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 84, Col: 50}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span><i class=\"menu-arrow\"></i></a><div class=\"menu-submenu \"><i class=\"menu-arrow\"></i><ul class=\"menu-subnav\"><li class=\"menu-item menu-item-parent\" aria-haspopup=\"true\"><span class=\"menu-link\"><span class=\"menu-text\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 94, Col: 46}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></span></li>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, dx := range datamenuchildren {
templ_7745c5c3_Err = ListMenuChildren(dx.ChildrenMenuURL, dx.ChildrenMenuName).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</ul></div></li>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,121 @@
package employee
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
"github.com/emarifer/go-templ-project-structure/views/under_development"
)
templ MainEmployee(cardServiceComponent templ.Component) {
<div class="wrapper-custom">
<!-- Navbar Start -->
<nav
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
>
<a class="navbar-brand" href="#">
<img
src="/asset-corporate-portal/media/landingpage/logo.png"
width="126"
height="40"
class="d-inline-block align-top"
alt="Your Brand"
/>
</a>
<img
src="/asset-corporate-portal/media/logo/foto.png"
alt="..."
class="item-foto rounded-circle"
/>
</nav>
<!-- Navbar End -->
<div class="d-block d-lg-none d-xl-none">
@under_development.UnderDevelopment()
</div>
<div class="d-none d-lg-block">
<!--begin::Page Heading-->
@HeadingEmployee("PT. Sadhana Abiyasa Sampoerna")
<!--end::Page Heading-->
<!-- content -->
<div class="align-items-center pt-15 flex-column">
<div class="bg-field rounded">
<div class="content-page">
<!-- card -->
@cardServiceComponent
<!-- end card -->
</div>
</div>
</div>
<!-- end content -->
</div>
</div>
}
templ CssEmployee() {
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
.navbar-lp {
padding-top: 40px;
padding-bottom: 40px;
}
.title {
/* color: #FFF; */
font-family: Poppins;
font-size: 15px;
/* font-size: 1vw; */
font-style: normal;
font-weight: 700;
}
.custom-card-lp {
border-radius: 24px;
border: 1px solid #d9d9d9;
margin-top: 40px;
}
.wrapper-custom {
/* background: #1B1D1F; */
padding-left: 10vw;
padding-right: 10vw;
}
.media-left-icon {
width: 40px;
height: 40px;
}
.items-content {
padding: 24px;
margin-bottom: 24px;
}
.content-page {
padding-top: 24px;
padding-left: 24px;
padding-right: 24px;
padding-bottom: 24px;
}
.item-foto {
width: 32px;
height: 32px;
}
.heading {
padding-top: 40px;
}
.card:hover {
background-color: rgba(197, 200, 211, 0.5);
}
</style>
}
templ JsEmployee() {
}
templ ShowEmployee(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

View File

@@ -0,0 +1,147 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package employee
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
"github.com/emarifer/go-templ-project-structure/views/under_development"
)
func MainEmployee(cardServiceComponent templ.Component) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"wrapper-custom\"><!-- Navbar Start --><nav class=\"navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between\"><a class=\"navbar-brand\" href=\"#\"><img src=\"/asset-corporate-portal/media/landingpage/logo.png\" width=\"126\" height=\"40\" class=\"d-inline-block align-top\" alt=\"Your Brand\"></a> <img src=\"/asset-corporate-portal/media/logo/foto.png\" alt=\"...\" class=\"item-foto rounded-circle\"></nav><!-- Navbar End --><div class=\"d-block d-lg-none d-xl-none\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = under_development.UnderDevelopment().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"d-none d-lg-block\"><!--begin::Page Heading-->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = HeadingEmployee("PT. Sadhana Abiyasa Sampoerna").Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Page Heading--><!-- content --><div class=\"align-items-center pt-15 flex-column\"><div class=\"bg-field rounded\"><div class=\"content-page\"><!-- card -->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = cardServiceComponent.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- end card --></div></div></div><!-- end content --></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func CssEmployee() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n\r\n .navbar-lp {\r\n padding-top: 40px;\r\n padding-bottom: 40px;\r\n }\r\n\r\n .title {\r\n /* color: #FFF; */\r\n font-family: Poppins;\r\n font-size: 15px;\r\n /* font-size: 1vw; */\r\n font-style: normal;\r\n font-weight: 700;\r\n }\r\n\r\n .custom-card-lp {\r\n border-radius: 24px;\r\n border: 1px solid #d9d9d9;\r\n margin-top: 40px;\r\n }\r\n\r\n .wrapper-custom {\r\n /* background: #1B1D1F; */\r\n padding-left: 10vw;\r\n padding-right: 10vw;\r\n }\r\n\r\n .media-left-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n\r\n .items-content {\r\n padding: 24px;\r\n margin-bottom: 24px;\r\n }\r\n .content-page {\r\n padding-top: 24px;\r\n padding-left: 24px;\r\n padding-right: 24px;\r\n padding-bottom: 24px;\r\n }\r\n .item-foto {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n .heading {\r\n padding-top: 40px;\r\n }\r\n .card:hover {\r\n background-color: rgba(197, 200, 211, 0.5);\r\n }\r\n </style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func JsEmployee() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
if templ_7745c5c3_Var3 == nil {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ShowEmployee(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
if templ_7745c5c3_Var4 == nil {
templ_7745c5c3_Var4 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Var5 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
}
return templ_7745c5c3_Err
})
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,60 @@
package employee
import (
"github.com/emarifer/go-templ-project-structure/services"
)
templ CardService(title string, description string, startdate string, enddate string) {
<a href="">
<div class="items-content card shadow">
<div class="row d-flex align-items-center">
<div class="col-7">
<h3 class="text-black">{ title }</h3>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde">{ description }</span>
</div>
<div class="col-md col-lg text-right">
<span class="text-black font-weight-bolde">{ startdate } - { enddate }</span>
</div>
</div>
</div>
</a>
}
templ ListCardService(cardData []services.EmployeeService) {
for _, d := range cardData {
@CardService(d.EmployeeTitle, d.EmployeeDescription, d.EmployeeStartDate, d.EmployeeEndDate)
}
}
templ HeadingEmployee(title string) {
<div class="heading d-flex justify-content-between">
<div class="align-items-center flex-wrap">
<!--begin::Page Title-->
<h5 class="text-dark font-weight-bold my-1 mr-5">
{ title }
</h5>
<!--end::Page Title-->
<!--begin::Breadcrumb-->
<ul
class="breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm"
>
<li class="breadcrumb-item">
<a href="" class="text-muted">Dashboard</a>
</li>
<li class="breadcrumb-item">
<a href="" class="text-muted">Employee Health Medical Analytic</a>
</li>
</ul>
<!--end::Breadcrumb-->
</div>
<div class="d-flex align-items-center">
<!--begin::Actions-->
<a href="#" class="btn btn-primary font-weight-bolder btn-lg">
<i class="fas fa-filter"></i> Filter
</a>
<!--end::Actions-->
</div>
</div>
}

View File

@@ -0,0 +1,154 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package employee
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
"github.com/emarifer/go-templ-project-structure/services"
)
func CardService(title string, description string, startdate string, enddate string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a href=\"\"><div class=\"items-content card shadow\"><div class=\"row d-flex align-items-center\"><div class=\"col-7\"><h3 class=\"text-black\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 12, Col: 35}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h3></div><div class=\"col-md col-lg text-right\"><span class=\"text-black font-weight-bolde\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(description)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 15, Col: 61}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></div><div class=\"col-md col-lg text-right\"><span class=\"text-black font-weight-bolde\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(startdate)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 18, Col: 59}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" - ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(enddate)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 18, Col: 73}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></div></div></div></a>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ListCardService(cardData []services.EmployeeService) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
if templ_7745c5c3_Var6 == nil {
templ_7745c5c3_Var6 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
for _, d := range cardData {
templ_7745c5c3_Err = CardService(d.EmployeeTitle, d.EmployeeDescription, d.EmployeeStartDate, d.EmployeeEndDate).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func HeadingEmployee(title string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var7 := templ.GetChildren(ctx)
if templ_7745c5c3_Var7 == nil {
templ_7745c5c3_Var7 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"heading d-flex justify-content-between\"><div class=\"align-items-center flex-wrap\"><!--begin::Page Title--><h5 class=\"text-dark font-weight-bold my-1 mr-5\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(title)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 36, Col: 11}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h5><!--end::Page Title--><!--begin::Breadcrumb--><ul class=\"breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm\"><li class=\"breadcrumb-item\"><a href=\"\" class=\"text-muted\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"\" class=\"text-muted\">Employee Health Medical Analytic</a></li></ul><!--end::Breadcrumb--></div><div class=\"d-flex align-items-center\"><!--begin::Actions--><a href=\"#\" class=\"btn btn-primary font-weight-bolder btn-lg\"><i class=\"fas fa-filter\"></i> Filter\r</a><!--end::Actions--></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,132 @@
package landingpage
import "github.com/emarifer/go-templ-project-structure/services"
templ FooterContact() {
<div class="text-white d-flex flex-row mb-3">
<!-- style="display: flex; flex-direction: row; color: white;align-items: start; margin-bottom: 24px;" -->
<div class="mr-3 mt-1">
<i
class="fas fa-map-marker-alt marker footer-icon text-warning"
></i>
</div>
<div class="flex-grow-1">
// <p class="footer-sub-title text-grey">
// { alamat }
// </p>
<p class="footer-sub-title text-grey">
Jl. Cipaku I No.5, RT.2/RW.4, Petogogan, Kec. Kby. Baru, Kota
Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12170
</p>
</div>
</div>
<div class="d-flex flex-row">
<div class="mr-3 mt-1">
<i class="fas fa-phone footer-icon text-warning"></i>
</div>
<div class="flex-grow-1">
// for _, d := range phone {
// <p class="footer-sub-title text-grey">{ d }</p>
// }
<p class="footer-sub-title text-grey">021-7392345</p>
<p class="footer-sub-title text-grey">021-2702525</p>
<p class="footer-sub-title text-grey">021-7255080</p>
</div>
</div>
}
templ FooterNav(title string, data []services.FooterSubNav) {
<div class="col-md col-lg mb-5">
<h4 class="footer-title text-white mb-6">{ title }</h4>
for _, d := range data {
<div>
<a class="footer-sub-title text-grey" href={ templ.SafeURL(d.FootSubNavLink) }>{ d.FootSubNavTitle }</a>
</div>
}
</div>
}
templ FooterSection(navlist []services.FooterNav) {
<footer class="wrapper-custom bg-black pb-25 pt-25 mt-25">
// HP
<div class="d-xs-block d-sm-block d-md-none">
<div class="row mb-5">
<div class="col-md col-lg">
<img
src="asset-corporate-portal/media/landingpage/logo.png"
class="logo-footer"
width="126"
height="40"
alt="Your Brand"
/>
@FooterContact()
</div>
<div class="mt-5">
for _, d := range navlist {
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
}
</div>
</div>
</div>
// End HP
// Tablet
<div class="d-none d-md-block d-lg-none">
<div class="row mb-5">
<div class="col-md col-lg">
<img
src="asset-corporate-portal/media/landingpage/logo.png"
class="logo-footer"
width="126"
height="40"
alt="Your Brand"
/>
@FooterContact()
</div>
<div class="col-md col-lg">
for _, d := range navlist {
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
}
</div>
</div>
</div>
// End Tablet
// Dekstop
<div class="d-none d-lg-block">
<div class="row mb-5">
<div class="col-md-12 col-lg">
<img
src="asset-corporate-portal/media/landingpage/logo.png"
class="logo-footer"
width="126"
height="40"
alt="Your Brand"
/>
@FooterContact()
</div>
for _, d := range navlist {
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
}
</div>
</div>
// End Dekstop
<div class="garis bg-grey"></div>
<div class="row mt-4">
<div class="col-md-6">
<p class="footer-sub-title text-grey">
© Copyright 2024. Organized PT SADHANA ABIYASA SAMPOERNA (Privacy
Policy)
</p>
</div>
<div class="col-md-6 text-right">
<p class="footer-icons">
<a href="#" class="mr-3"><i class="fab fa-whatsapp"></i></a>
<a href="#" class="mr-3"><i class="fab fa-facebook"></i></a>
<a href="#"><i class="fab fa-instagram"></i></a>
</p>
</div>
</div>
</footer>
}

View File

@@ -0,0 +1,184 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package landingpage
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import "github.com/emarifer/go-templ-project-structure/services"
func FooterContact() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"text-white d-flex flex-row mb-3\"><!-- style=\"display: flex; flex-direction: row; color: white;align-items: start; margin-bottom: 24px;\" --><div class=\"mr-3 mt-1\"><i class=\"fas fa-map-marker-alt marker footer-icon text-warning\"></i></div><div class=\"flex-grow-1\"><p class=\"footer-sub-title text-grey\">Jl. Cipaku I No.5, RT.2/RW.4, Petogogan, Kec. Kby. Baru, Kota\r Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12170\r</p></div></div><div class=\"d-flex flex-row\"><div class=\"mr-3 mt-1\"><i class=\"fas fa-phone footer-icon text-warning\"></i></div><div class=\"flex-grow-1\"><p class=\"footer-sub-title text-grey\">021-7392345</p><p class=\"footer-sub-title text-grey\">021-2702525</p><p class=\"footer-sub-title text-grey\">021-7255080</p></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func FooterNav(title string, data []services.FooterSubNav) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-md col-lg mb-5\"><h4 class=\"footer-title text-white mb-6\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(title)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\footer.templ`, Line: 40, Col: 56}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h4>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range data {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><a class=\"footer-sub-title text-grey\" href=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 templ.SafeURL = templ.SafeURL(d.FootSubNavLink)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var4)))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(d.FootSubNavTitle)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\footer.templ`, Line: 43, Col: 114}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</a></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func FooterSection(navlist []services.FooterNav) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
if templ_7745c5c3_Var6 == nil {
templ_7745c5c3_Var6 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<footer class=\"wrapper-custom bg-black pb-25 pt-25 mt-25\"><div class=\"d-xs-block d-sm-block d-md-none\"><div class=\"row mb-5\"><div class=\"col-md col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"mt-5\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range navlist {
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div><div class=\"d-none d-md-block d-lg-none\"><div class=\"row mb-5\"><div class=\"col-md col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-md col-lg\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range navlist {
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div><div class=\"d-none d-lg-block\"><div class=\"row mb-5\"><div class=\"col-md-12 col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range navlist {
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"garis bg-grey\"></div><div class=\"row mt-4\"><div class=\"col-md-6\"><p class=\"footer-sub-title text-grey\">© Copyright 2024. Organized PT SADHANA ABIYASA SAMPOERNA (Privacy\r Policy)\r</p></div><div class=\"col-md-6 text-right\"><p class=\"footer-icons\"><a href=\"#\" class=\"mr-3\"><i class=\"fab fa-whatsapp\"></i></a> <a href=\"#\" class=\"mr-3\"><i class=\"fab fa-facebook\"></i></a> <a href=\"#\"><i class=\"fab fa-instagram\"></i></a></p></div></div></footer>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -2,7 +2,6 @@ package landingpage
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
"github.com/emarifer/go-templ-project-structure/views/under_development"
)
templ MainLandingPage(medicalServiceComponent templ.Component, listAdvantageComponent templ.Component, listPromotion templ.Component, footer templ.Component) {
@@ -13,7 +12,7 @@ templ MainLandingPage(medicalServiceComponent templ.Component, listAdvantageComp
>
<a class="navbar-brand" href="#">
<img
src="../../asset-corporate-portal/media/landingpage/logo.png"
src="/asset-corporate-portal/media/landingpage/logo.png"
width="126"
height="40"
class="d-inline-block align-top"
@@ -24,67 +23,62 @@ templ MainLandingPage(medicalServiceComponent templ.Component, listAdvantageComp
<span class="title">Login</span>
</button>
</nav>
<div class="d-block d-lg-none d-xl-none">
@under_development.UnderDevelopment()
<!-- Navbar End -->
<!-- jumbotron START -->
<!-- <div class="jumbotron jumbotron-lp d-none d-lg-block"> -->
@HeaderCard()
<!-- jumbotron END -->
<!-- Our Medical Service START -->
<div class="row">
@HeaderSection("Our Medical Services", "Discover excellence in healthcare at Our Medical Services. From diagnosis to treatment, our dedicated team provides personalized care for your well-being.")
</div>
<div class="d-none d-lg-block">
<!-- Navbar End -->
<!-- jumbotron START -->
<!-- <div class="jumbotron jumbotron-lp d-none d-lg-block"> -->
@HeaderCard()
<!-- jumbotron END -->
<!-- Our Medical Service START -->
@medicalServiceComponent
<!-- Our Medical Service END -->
<!-- Why Westerindo START belum fix di ukuran < 1400 -->
<div class="container p-0 mt-5 ">
<div class="row">
@HeaderSection("Our Medical Services", "Discover excellence in healthcare at Our Medical Services. From diagnosis to treatment, our dedicated team provides personalized care for your well-being.")
@HeaderSection("Why Westerindo", "With a dedicated team of professionals were committed to providing medical attention tailored to your needs, ensuring a journey to optimal health and vitality.")
</div>
@medicalServiceComponent
<!-- Our Medical Service END -->
<!-- Why Westerindo START belum fix di ukuran < 1400 -->
<div class="container p-0 mt-5 ">
<div class="row">
@HeaderSection("Why Westerindo", "With a dedicated team of professionals were committed to providing medical attention tailored to your needs, ensuring a journey to optimal health and vitality.")
</div>
@listAdvantageComponent
</div>
<!-- Why Westerindo END -->
<!-- Promotion START -->
<div class="container mt-4">
<div class="row">
@HeaderSection("Promotions", "Seize This Opportunity to Enhance Your Health")
</div>
@listPromotion
</div>
<!-- Promotion END -->
<!-- footer START -->
@footer
<!-- footer END -->
@listAdvantageComponent
</div>
<!-- Why Westerindo END -->
<!-- Promotion START -->
<div class="container mt-4">
<div class="row">
@HeaderSection("Promotions", "Seize This Opportunity to Enhance Your Health")
</div>
@listPromotion
</div>
<!-- Promotion END -->
<!-- footer START -->
@footer
<!-- footer END -->
</div>
}
templ CssLandingPage() {
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
href="assets/css/googlefont/roboto.css"
/>
<!-- slick -->
<link
rel="stylesheet"
type="text/css"
href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"
href="assets/css/slick/slick.css"
/>
<link
rel="stylesheet"
type="text/css"
href="https://cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick-theme.css"
href="assets/css/slick/slick-theme.css"
/>
<style>
body {
@@ -112,6 +106,24 @@ templ CssLandingPage() {
font-weight: 700;
}
.title-jumbotron-sm {
/* color: #FFF; */
font-family: Poppins;
font-size: 32px;
/* font-size: 3vw; */
font-style: normal;
font-weight: 600;
}
.title-jumbotron-md {
/* color: #FFF; */
font-family: Poppins;
font-size: 42px;
/* font-size: 3vw; */
font-style: normal;
font-weight: 600;
}
.title-jumbotron {
/* color: #FFF; */
font-family: Poppins;
@@ -292,7 +304,7 @@ templ CssLandingPage() {
templ JsLandingPage() {
<!-- SCRIPT -->
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<script type="text/javascript" src="assets/js/slick/slick.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// lg
@@ -316,8 +328,8 @@ templ JsLandingPage() {
autoplaySpeed: 2000,
infinite: true,
lazyLoad: "ondemand",
slidesToShow: 3,
slidesToScroll: 3,
slidesToShow: 2,
slidesToScroll: 2,
});
// sm

File diff suppressed because one or more lines are too long

View File

@@ -34,7 +34,17 @@ templ MedicalService(title string, desciption string, icon string, link string)
}
templ ListMedicalService(medserData []services.ClientService) {
<div class="row responsive-lg">
<div class="row responsive-sm d-xs-block d-sm-block d-md-none">
for _, d := range medserData {
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
}
</div>
<div class="row responsive-md d-none d-md-block d-lg-none">
for _, d := range medserData {
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
}
</div>
<div class="row responsive-lg d-none d-lg-block">
for _, d := range medserData {
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
}
@@ -73,7 +83,7 @@ templ ListAdvantage(adData []services.AdvantageClient) {
<div class="row mt-5">
<div class="col-md-6">
<img
src="../../asset-corporate-portal/media/landingpage/why_westerindo_right.png"
src="/asset-corporate-portal/media/landingpage/why_westerindo_right.png"
alt="Your Brand"
class="align-top w-100 h-100 pt-4 pb-4"
/>
@@ -87,7 +97,76 @@ templ ListAdvantage(adData []services.AdvantageClient) {
}
templ HeaderCard() {
<div class="jumbotron bg-primary">
// Hp
<div class="jumbotron bg-primary d-xs-block d-sm-block d-md-none">
<div class="container">
<div class="row">
<div class="col-sm-12 mb-3 d-flex justify-content-sm-end">
<div class="d-flex m-1 align-items-center">
<img
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
class="img-fluid w-100 h-100 img-header"
alt="Your Brand"
/>
</div>
</div>
<div class="col-sm-12 d-flex flex-column">
<div class="mb-3">
<h1 class="title-jumbotron-sm text-white">
Invest in Your Well-being with Our Comprehensive Medical
Check-Up
</h1>
<p class="sub-title-jumbotron text-white">
Elevate your health journey with our thorough medical
assessments, empowering you to take proactive steps towards a
healthier, happier life.
</p>
<button type="button" class="btn btn-lg btn-pill bg-white">
<span class="title-get-started">Get Started</span>
</button>
</div>
<div class="mt-auto"></div>
</div>
</div>
</div>
</div>
// End Hp
// Tablet
<div class="jumbotron bg-primary d-none d-md-block d-lg-none">
<div class="container">
<div class="row">
<div class="col-md-12 mb-3 d-flex justify-content-md-end">
<div class="d-flex m-1 align-items-center">
<img
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
class="img-fluid w-100 h-100 img-header"
alt="Your Brand"
/>
</div>
</div>
<div class="col-md-12 d-flex flex-column">
<div class="mb-3">
<h1 class="title-jumbotron-md text-white">
Invest in Your Well-being with Our Comprehensive Medical
Check-Up
</h1>
<p class="sub-title-jumbotron text-white">
Elevate your health journey with our thorough medical
assessments, empowering you to take proactive steps towards a
healthier, happier life.
</p>
<button type="button" class="btn btn-lg btn-pill bg-white">
<span class="title-get-started">Get Started</span>
</button>
</div>
<div class="mt-auto"></div>
</div>
</div>
</div>
</div>
// End Tablet
// Dekstop
<div class="jumbotron bg-primary d-none d-lg-block">
<div class="container">
<div class="row">
<div class="col-md-8 d-flex flex-column">
@@ -116,7 +195,7 @@ templ HeaderCard() {
" -->
<div class="d-flex m-1o align-items-center">
<img
src="../asset-corporate-portal/media/landingpage/jumbotron_left.png"
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
class="img-fluid w-100 h-100 img-header"
alt="Your Brand"
/>
@@ -125,6 +204,7 @@ templ HeaderCard() {
</div>
</div>
</div>
// End Dekstop
}
templ Promotion(prm services.Promotion) {
@@ -138,6 +218,16 @@ templ Promotion(prm services.Promotion) {
}
templ ListPromotion(prm []services.Promotion) {
<div class="row responsive-sm d-xs-block d-sm-block d-md-none">
for _, d := range prm {
@Promotion(d)
}
</div>
<div class="row responsive-md d-none d-md-block d-lg-none">
for _, d := range prm {
@Promotion(d)
}
</div>
<div class="row responsive-lg d-none d-lg-block d-xl-block">
for _, d := range prm {
@Promotion(d)

View File

@@ -99,7 +99,27 @@ func ListMedicalService(medserData []services.ClientService) templ.Component {
templ_7745c5c3_Var6 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-lg\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-sm d-xs-block d-sm-block d-md-none\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range medserData {
templ_7745c5c3_Err = MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-md d-none d-md-block d-lg-none\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range medserData {
templ_7745c5c3_Err = MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-lg d-none d-lg-block\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -140,7 +160,7 @@ func HeaderSection(title string, desc string) templ.Component {
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(title)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 46, Col: 46}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 56, Col: 46}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
@@ -153,7 +173,7 @@ func HeaderSection(title string, desc string) templ.Component {
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(desc)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 48, Col: 9}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 58, Col: 9}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
@@ -190,7 +210,7 @@ func Advantage(title string, desc string) templ.Component {
var templ_7745c5c3_Var11 string
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(title)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 63, Col: 51}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 73, Col: 51}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
if templ_7745c5c3_Err != nil {
@@ -203,7 +223,7 @@ func Advantage(title string, desc string) templ.Component {
var templ_7745c5c3_Var12 string
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(desc)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 65, Col: 11}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 75, Col: 11}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
if templ_7745c5c3_Err != nil {
@@ -233,7 +253,7 @@ func ListAdvantage(adData []services.AdvantageClient) templ.Component {
templ_7745c5c3_Var13 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-5\"><div class=\"col-md-6\"><img src=\"../../asset-corporate-portal/media/landingpage/why_westerindo_right.png\" alt=\"Your Brand\" class=\"align-top w-100 h-100 pt-4 pb-4\"></div><div class=\"col-md-6 d-flex flex-column\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-5\"><div class=\"col-md-6\"><img src=\"/asset-corporate-portal/media/landingpage/why_westerindo_right.png\" alt=\"Your Brand\" class=\"align-top w-100 h-100 pt-4 pb-4\"></div><div class=\"col-md-6 d-flex flex-column\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -267,7 +287,7 @@ func HeaderCard() templ.Component {
templ_7745c5c3_Var14 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"jumbotron bg-primary\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-8 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div><div class=\"col-md-4 d-flex justify-content-md-end\"><!-- style=\"\r\n flex: 2;\r\n margin: 10px;\r\n display: flex;\r\n align-items: center;\r\n \" --><div class=\"d-flex m-1o align-items-center\"><img src=\"../asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div></div></div></div>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"jumbotron bg-primary d-xs-block d-sm-block d-md-none\"><div class=\"container\"><div class=\"row\"><div class=\"col-sm-12 mb-3 d-flex justify-content-sm-end\"><div class=\"d-flex m-1 align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div><div class=\"col-sm-12 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron-sm text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div></div></div></div><div class=\"jumbotron bg-primary d-none d-md-block d-lg-none\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-12 mb-3 d-flex justify-content-md-end\"><div class=\"d-flex m-1 align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div><div class=\"col-md-12 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron-md text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div></div></div></div><div class=\"jumbotron bg-primary d-none d-lg-block\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-8 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div><div class=\"col-md-4 d-flex justify-content-md-end\"><!-- style=\"\r\n flex: 2;\r\n margin: 10px;\r\n display: flex;\r\n align-items: center;\r\n \" --><div class=\"d-flex m-1o align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div></div></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -298,7 +318,7 @@ func Promotion(prm services.Promotion) templ.Component {
var templ_7745c5c3_Var16 string
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(prm.PromotionAsset)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 133, Col: 27}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 213, Col: 27}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
if templ_7745c5c3_Err != nil {
@@ -328,7 +348,27 @@ func ListPromotion(prm []services.Promotion) templ.Component {
templ_7745c5c3_Var17 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-lg d-none d-lg-block d-xl-block\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-sm d-xs-block d-sm-block d-md-none\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range prm {
templ_7745c5c3_Err = Promotion(d).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-md d-none d-md-block d-lg-none\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
for _, d := range prm {
templ_7745c5c3_Err = Promotion(d).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-lg d-none d-lg-block d-xl-block\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -12,8 +12,8 @@ templ Base(title string) {
/>
<meta name="google" content="notranslate"/>
<link rel="shortcut icon" href="/img/templ.png" type="image/png"/>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css" rel="stylesheet" type="text/css"/>
// <script src="https://cdn.tailwindcss.com"></script>
// <link href="https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="/css/styles.css"/>
<title>Project Structure Demo { title }</title>
<script src="https://unpkg.com/htmx.org@1.9.9" integrity="sha384-QFjmbokDn2DjBjq+fM+8LUIVrAgqcNW2s0PjAxHETgRn9l4fvX31ZxDxvwQnyMOX" crossorigin="anonymous"></script>

View File

@@ -23,7 +23,7 @@ func Base(title string) templ.Component {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><html lang=\"en\" data-theme=\"dark\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"description\" content=\"Go/Echo+Templ: User List App as an example of a project structured in layers, use of &#39;Templ&#39; Template language and frontend with HTMx technology\"><meta name=\"google\" content=\"notranslate\"><link rel=\"shortcut icon\" href=\"/img/templ.png\" type=\"image/png\"><script src=\"https://cdn.tailwindcss.com\"></script><link href=\"https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css\" rel=\"stylesheet\" type=\"text/css\"><link rel=\"stylesheet\" href=\"/css/styles.css\"><title>Project Structure Demo ")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><html lang=\"en\" data-theme=\"dark\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"description\" content=\"Go/Echo+Templ: User List App as an example of a project structured in layers, use of &#39;Templ&#39; Template language and frontend with HTMx technology\"><meta name=\"google\" content=\"notranslate\"><link rel=\"shortcut icon\" href=\"/img/templ.png\" type=\"image/png\"><link rel=\"stylesheet\" href=\"/css/styles.css\"><title>Project Structure Demo ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -17,7 +17,7 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
<html lang="en">
<!--begin::Head-->
<head>
<base href="../"/>
<base href="/"/>
<meta charset="utf-8"/>
<title>Company Portal | { title }</title>
<meta name="description" content="Company Portal"/>
@@ -28,7 +28,7 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
<!--begin::Fonts-->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
href="assets/css/googlefont/poppins.css"
/>
<!--end::Fonts-->
<!--begin::Page Custom Styles(used by this page)-->
@@ -160,12 +160,7 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
};
</script>
<!-- iconify -->
<script
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script src="assets/js/iconify/iconify.min.js"></script>
<!--end::Global Config-->
<!--begin::Global Theme Bundle(used by all pages)-->
<script src="assets/plugins/global/plugins.bundle.js"></script>

View File

@@ -23,7 +23,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"../\"><meta charset=\"utf-8\"><title>Company Portal | ")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"/\"><meta charset=\"utf-8\"><title>Company Portal | ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -36,7 +36,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -52,7 +52,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!-- iconify --><script src=\"https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js\" integrity=\"sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle-->")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!-- iconify --><script src=\"assets/js/iconify/iconify.min.js\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle-->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -18,7 +18,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
<html lang="en">
<!--begin::Head-->
<head>
<base href="../"/>
<base href="/"/>
<meta charset="utf-8"/>
<title>Company Portal | { title }</title>
<meta name="description" content="Company Portal"/>
@@ -29,7 +29,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
<!--begin::Fonts-->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
href="assets/css/googlefont/poppins.css"
/>
<!--end::Fonts-->
<!--begin::Page Custom Styles(used by this page)-->
@@ -93,7 +93,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
>
// htmx
<script src="https://unpkg.com/htmx.org@1.9.12"></script>
<script src="assets/js/htmx/htmx.min.js"></script>
<!--begin::Main-->
{ children... }
<!--end::Main-->
@@ -168,7 +168,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<!--end::Global Theme Bundle-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js" integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="assets/js/iconify/iconify.min.js"></script>
@js
<!--end::Page Scripts-->
</body>

View File

@@ -24,7 +24,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"../\"><meta charset=\"utf-8\"><title>Company Portal | ")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"/\"><meta charset=\"utf-8\"><title>Company Portal | ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -37,7 +37,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -45,7 +45,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</head><!--end::Head--><!--begin::Body--><body id=\"kt_body\" class=\"header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading\"><script src=\"https://unpkg.com/htmx.org@1.9.12\"></script><!--begin::Main-->")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</head><!--end::Head--><!--begin::Body--><body id=\"kt_body\" class=\"header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading\"><script src=\"assets/js/htmx/htmx.min.js\"></script><!--begin::Main-->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -53,7 +53,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle--><script src=\"https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js\" integrity=\"sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle--><script src=\"assets/js/iconify/iconify.min.js\"></script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -4,44 +4,14 @@ import (
"github.com/emarifer/go-templ-project-structure/views/layout"
)
templ DivLogin() {
templ MainLogin() {
<div class="d-flex flex-column flex-root">
<div
class="login login-1 login-signin-on d-flex flex-column flex-lg-row flex-column-fluid bg-white"
id="kt_login"
>
<!--begin::Aside-->
<div
class="login-aside d-flex flex-column flex-row-auto"
style="background-color: #3b4f9f"
>
<!--begin::Aside Top-->
<div class="d-flex flex-column-auto flex-column pt-lg-40 pt-15 px-10">
<!--begin::Aside header-->
<div class="aside-title mb-5">
Empowering Your Workforce's Health
</div>
<!--end::Aside header-->
<!--begin::Aside title-->
<div class="aside-subtitle">
Discover peace of mind and prioritize your health with our
comprehensive medical check-up packages
</div>
<!--end::Aside title-->
</div>
<!--end::Aside Top-->
<!--begin::Aside Bottom-->
<div
class="d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end"
>
<img
src="asset-corporate-portal/media/login-company-vector.png"
class="img-fluid"
style="height: 55vh; width: 55vh"
/>
</div>
<!--end::Aside Bottom-->
</div>
@AsideLeft()
<!--begin::Aside-->
<!--begin::Content-->
<div
@@ -52,254 +22,21 @@ templ DivLogin() {
<!--begin::Signin-->
<div class="login-form login-signin">
<!--begin::Form-->
<form
class="form"
novalidate="novalidate"
id="kt_login_signin_form"
>
<!--begin::Title-->
<div class="d-flex justify-content-center mb-5">
<img
src="asset-corporate-portal/media/logo.png"
alt=""
style="height: 103px"
/>
</div>
<div class="pt-2">
<h3
class="d-flex justify-content-center title-company"
style="color: black"
>
Welcome to Corporate Portal
</h3>
</div>
<div class="pb-10 pt-0">
<h3 class="subtitle-company" style="color: #a7a8bb">
Sign in to access your account
</h3>
</div>
<!--begin::Title-->
<!--begin::Form group-->
<div class="form-group">
<label class="font-size-h6 font-weight-bolder text-dark">Email</label>
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg"
type="text"
name="username"
autocomplete="off"
placeholder="Enter your email"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<div class="d-flex justify-content-between mt-n5">
<label
class="font-size-h6 font-weight-bolder text-dark pt-5"
>Password</label>
</div>
<div class="input-group">
<!-- form-control form-control-solid -->
<input
class="h-auto form-control form-control-solid py-7 px-6 rounded-lg rounded-right-0"
type="password"
name="password"
id="user-password"
autocomplete="off"
placeholder="Enter your password"
/>
<div class="input-group-append">
<span
class="input-group-text rounded-lg rounded-left-0"
style="border: 0"
>
<!-- far fa-eye-slash -->
<a class="btn" role="button" id="btn-show">
<i class="far fa-eye-slash" id="password-icon"></i>
</a>
</span>
</div>
</div>
</div>
<div class="d-flex justify-content-end">
<a
href="javascript:;"
class="font-size-h6 font-weight-bolder text-hover-primary mb-5"
id="kt_login_forgot"
style="color: #0c518c"
>
Forgot Password ?
</a>
</div>
<!--end::Form group-->
<!--begin::Action-->
<div class="pb-lg-0 pb-5 pt-5">
<button
type="button"
id="kt_login_signin_submit"
style="background-color: #0c518c"
class="btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5"
>
Sign In
</button>
</div>
<!--end::Action-->
</form>
@FormSignin()
<!--end::Form-->
</div>
<!--end::Signin-->
<!--begin::Signup -->
<div class="login-form login-signup">
<!--begin::Form -->
<form
class="form"
novalidate="novalidate"
id="kt_login_signup_form"
>
<!--begin::Title -->
<div class="pb-13 pt-lg-0 pt-5">
<h3
class="font-weight-bolder text-dark font-size-h4 font-size-h1-lg"
>
Sign Up
</h3>
<p class="text-muted font-weight-bold font-size-h4">
Enter your details to create your account
</p>
</div>
<!--end::Title -->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="text"
placeholder="Fullname"
name="fullname"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="email"
placeholder="Email"
name="email"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="password"
placeholder="Password"
name="password"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="password"
placeholder="Confirm password"
name="cpassword"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<label class="checkbox mb-0">
<input type="checkbox" name="agree"/>I Agree the
<a href="#">terms and conditions</a>.
<span></span>
</label>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group d-flex flex-wrap pb-lg-0 pb-3">
<button
type="button"
id="kt_login_signup_submit"
class="btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 mr-4"
>
Submit
</button>
<button
type="button"
id="kt_login_signup_cancel"
class="btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3"
>
Cancel
</button>
</div>
<!--end::Form group-->
</form>
@FormSignup()
<!--end::Form -->
</div>
<!--end::Signup -->
<!--begin::Forgot-->
<div class="login-form login-forgot">
<!--begin::Form-->
<form
class="form"
novalidate="novalidate"
id="kt_login_forgot_form"
>
<!--begin::Title-->
<div class="d-flex justify-content-center mb-5">
<img
src="asset-corporate-portal/media/logo.png"
alt=""
style="height: 103px"
/>
</div>
<div class="pb-13 pt-lg-0 pt-5">
<h3
class="font-weight-bolder text-dark font-size-h4 font-size-h1-lg"
>
Forgotten Password ?
</h3>
<p class="text-muted font-weight-bold font-size-h4">
Enter your email to reset your password
</p>
</div>
<!--end::Title-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="email"
placeholder="Email"
name="email"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group d-flex flex-wrap pb-lg-0">
<button
type="button"
id="kt_login_forgot_submit"
class="btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-submit"
>
Submit
</button>
<button
type="button"
id="kt_login_forgot_cancel"
class="btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-cancel"
>
Cancel
</button>
</div>
<!--end::Form group-->
</form>
@ForgotPassword()
<!--end::Form-->
</div>
<!--end::Forgot-->
@@ -315,73 +52,52 @@ templ DivLogin() {
templ CssLogin() {
<style>
.title-company {
color: #181c32;
font-family: Poppins;
font-size: 31px;
font-style: normal;
font-weight: 600;
line-height: normal;
letter-spacing: -0.3px;
}
.subtitle-company {
color: #a7a8bb;
font-family: Poppins;
font-size: 18px;
font-style: normal;
font-weight: 500;
line-height: normal;
.title-company {
color: #181c32;
font-family: Poppins;
font-size: 31px;
font-style: normal;
font-weight: 600;
line-height: normal;
letter-spacing: -0.3px;
}
.subtitle-company {
color: #a7a8bb;
font-family: Poppins;
font-size: 18px;
font-style: normal;
font-weight: 500;
line-height: normal;
}
.aside-title {
color: #fff;
text-align: center;
font-family: Poppins;
font-size: 28px;
font-style: normal;
font-weight: 600;
line-height: normal;
letter-spacing: -0.84px;
}
.aside-subtitle {
color: #fff;
text-align: center;
font-family: Poppins;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 30px; /* 187.5% */
letter-spacing: -0.48px;
}
</style>
}
.aside-title {
color: #fff;
text-align: center;
font-family: Poppins;
font-size: 28px;
font-style: normal;
font-weight: 600;
line-height: normal;
letter-spacing: -0.84px;
}
.aside-subtitle {
color: #fff;
text-align: center;
font-family: Poppins;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 30px;
/* 187.5% */
letter-spacing: -0.48px;
}
.btn-submit {
background-color: #3b4f9f !important
}
.btn-cancel {
color: #3b4f9f !important;
background-color: #e1f0ff !important;
}
</style>
}
// templ CssLoginCompany() {
// <link
// rel="stylesheet"
// type="text/css"
// href="asset-corporate-portal/css/login.css"
// />
// }
templ JsLogin() {
<script src="asset-corporate-portal/js/login-general.js"></script>
<script src="/asset-corporate-portal/js/login-general.js"></script>
}
templ ShowLogin(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.CanvasLayout(title, css, js) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,274 @@
package login
templ AsideLeft() {
<div class="login-aside d-flex flex-column flex-row-auto bg-primary">
<!--begin::Aside Top-->
<div class="d-flex flex-column-auto flex-column pt-lg-40 pt-15 px-10">
<!--begin::Aside header-->
<div class="aside-title mb-5">
Empowering Your Workforce's Health
</div>
<!--end::Aside header-->
<!--begin::Aside title-->
<div class="aside-subtitle">
Discover peace of mind and prioritize your health with our
comprehensive medical check-up packages
</div>
<!--end::Aside title-->
</div>
<!--end::Aside Top-->
<!--begin::Aside Bottom-->
<div
class="d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end"
>
<img
src="/asset-corporate-portal/media/login/login-company-vector.png"
class="img-fluid"
style="height: 55vh; width: 55vh"
/>
</div>
<!--end::Aside Bottom-->
</div>
}
templ FormSignin() {
<form
class="form"
novalidate="novalidate"
id="kt_login_signin_form"
>
<!--begin::Title-->
<div class="d-flex justify-content-center mb-5">
<img
src="/asset-corporate-portal/media/logo/logo.png"
alt=""
style="height: 103px"
/>
</div>
<div class="pt-2">
<h3
class="d-flex justify-content-center title-company text-dark"
>
Welcome to Corporate Portal
</h3>
</div>
<div class="pb-10 pt-0">
<h3 class="subtitle-company" style="color: #a7a8bb">
Sign in to access your account
</h3>
</div>
<!--begin::Title-->
<!--begin::Form group-->
<div class="form-group">
<label class="font-size-h6 font-weight-bolder text-dark">Email</label>
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg"
type="text"
name="username"
autocomplete="off"
placeholder="Enter your email"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<div class="d-flex justify-content-between mt-n5">
<label
class="font-size-h6 font-weight-bolder text-dark pt-5"
>Password</label>
</div>
<div class="input-group">
<!-- form-control form-control-solid -->
<input
class="h-auto form-control form-control-solid py-7 px-6 rounded-lg rounded-right-0"
type="password"
name="password"
id="user-password"
autocomplete="off"
placeholder="Enter your password"
/>
<div class="input-group-append">
<span
class="input-group-text rounded-lg rounded-left-0"
style="border: 0"
>
<!-- far fa-eye-slash -->
<a class="btn" role="button" id="btn-show">
<i class="far fa-eye-slash" id="password-icon"></i>
</a>
</span>
</div>
</div>
</div>
<div class="d-flex justify-content-end">
<a
href="javascript:;"
class="font-size-h6 font-weight-bolder text-hover-primary mb-5 text-primary"
id="kt_login_forgot"
>
Forgot Password ?
</a>
</div>
<!--end::Form group-->
<!--begin::Action-->
<div class="pb-lg-0 pb-5 pt-5">
<button
type="button"
id="kt_login_signin_submit"
class="btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary"
>
Sign In
</button>
</div>
<!--end::Action-->
</form>
}
templ FormSignup() {
<form
class="form"
novalidate="novalidate"
id="kt_login_signup_form"
>
<!--begin::Title -->
<div class="pb-13 pt-lg-0 pt-5">
<h3
class="font-weight-bolder text-dark font-size-h4 font-size-h1-lg"
>
Sign Up
</h3>
<p class="text-muted font-weight-bold font-size-h4">
Enter your details to create your account
</p>
</div>
<!--end::Title -->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="text"
placeholder="Fullname"
name="fullname"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="email"
placeholder="Email"
name="email"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="password"
placeholder="Password"
name="password"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="password"
placeholder="Confirm password"
name="cpassword"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group">
<label class="checkbox mb-0">
<input type="checkbox" name="agree"/>I Agree the
<a href="#">terms and conditions</a>.
<span></span>
</label>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group d-flex flex-wrap pb-lg-0 pb-3">
<button
type="button"
id="kt_login_signup_submit"
class="btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 mr-4"
>
Submit
</button>
<button
type="button"
id="kt_login_signup_cancel"
class="btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3"
>
Cancel
</button>
</div>
<!--end::Form group-->
</form>
}
templ ForgotPassword() {
<form
class="form"
novalidate="novalidate"
id="kt_login_forgot_form"
>
<!--begin::Title-->
<div class="d-flex justify-content-center mb-5">
<img
src="/asset-corporate-portal/media/logo/logo.png"
alt=""
style="height: 103px"
/>
</div>
<div class="pb-13 pt-lg-0 pt-5">
<h3
class="font-weight-bolder text-dark font-size-h4 font-size-h1-lg"
>
Forgotten Password ?
</h3>
<p class="text-muted font-weight-bold font-size-h4">
Enter your email to reset your password
</p>
</div>
<!--end::Title-->
<!--begin::Form group-->
<div class="form-group">
<input
class="form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6"
type="email"
placeholder="Email"
name="email"
autocomplete="off"
/>
</div>
<!--end::Form group-->
<!--begin::Form group-->
<div class="form-group d-flex flex-wrap pb-lg-0">
<button
type="button"
id="kt_login_forgot_submit"
class="btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-submit"
>
Submit
</button>
<button
type="button"
id="kt_login_forgot_cancel"
class="btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-cancel"
>
Cancel
</button>
</div>
<!--end::Form group-->
</form>
}

View File

@@ -0,0 +1,107 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package login
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
func AsideLeft() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"login-aside d-flex flex-column flex-row-auto bg-primary\"><!--begin::Aside Top--><div class=\"d-flex flex-column-auto flex-column pt-lg-40 pt-15 px-10\"><!--begin::Aside header--><div class=\"aside-title mb-5\">Empowering Your Workforce's Health\r</div><!--end::Aside header--><!--begin::Aside title--><div class=\"aside-subtitle\">Discover peace of mind and prioritize your health with our\r comprehensive medical check-up packages\r</div><!--end::Aside title--></div><!--end::Aside Top--><!--begin::Aside Bottom--><div class=\"d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end\"><img src=\"/asset-corporate-portal/media/login/login-company-vector.png\" class=\"img-fluid\" style=\"height: 55vh; width: 55vh\"></div><!--end::Aside Bottom--></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func FormSignin() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_signin_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"/asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pt-2\"><h3 class=\"d-flex justify-content-center title-company text-dark\">Welcome to Corporate Portal\r</h3></div><div class=\"pb-10 pt-0\"><h3 class=\"subtitle-company\" style=\"color: #a7a8bb\">Sign in to access your account\r</h3></div><!--begin::Title--><!--begin::Form group--><div class=\"form-group\"><label class=\"font-size-h6 font-weight-bolder text-dark\">Email</label> <input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg\" type=\"text\" name=\"username\" autocomplete=\"off\" placeholder=\"Enter your email\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><div class=\"d-flex justify-content-between mt-n5\"><label class=\"font-size-h6 font-weight-bolder text-dark pt-5\">Password</label></div><div class=\"input-group\"><!-- form-control form-control-solid --><input class=\"h-auto form-control form-control-solid py-7 px-6 rounded-lg rounded-right-0\" type=\"password\" name=\"password\" id=\"user-password\" autocomplete=\"off\" placeholder=\"Enter your password\"><div class=\"input-group-append\"><span class=\"input-group-text rounded-lg rounded-left-0\" style=\"border: 0\"><!-- far fa-eye-slash --><a class=\"btn\" role=\"button\" id=\"btn-show\"><i class=\"far fa-eye-slash\" id=\"password-icon\"></i></a></span></div></div></div><div class=\"d-flex justify-content-end\"><a href=\"javascript:;\" class=\"font-size-h6 font-weight-bolder text-hover-primary mb-5 text-primary\" id=\"kt_login_forgot\">Forgot Password ?\r</a></div><!--end::Form group--><!--begin::Action--><div class=\"pb-lg-0 pb-5 pt-5\"><button type=\"button\" id=\"kt_login_signin_submit\" class=\"btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary\">Sign In\r</button></div><!--end::Action--></form>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func FormSignup() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
if templ_7745c5c3_Var3 == nil {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_signup_form\"><!--begin::Title --><div class=\"pb-13 pt-lg-0 pt-5\"><h3 class=\"font-weight-bolder text-dark font-size-h4 font-size-h1-lg\">Sign Up\r</h3><p class=\"text-muted font-weight-bold font-size-h4\">Enter your details to create your account\r</p></div><!--end::Title --><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"text\" placeholder=\"Fullname\" name=\"fullname\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"email\" placeholder=\"Email\" name=\"email\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"password\" placeholder=\"Password\" name=\"password\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"password\" placeholder=\"Confirm password\" name=\"cpassword\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><label class=\"checkbox mb-0\"><input type=\"checkbox\" name=\"agree\">I Agree the\r <a href=\"#\">terms and conditions</a>.\r <span></span></label></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group d-flex flex-wrap pb-lg-0 pb-3\"><button type=\"button\" id=\"kt_login_signup_submit\" class=\"btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 mr-4\">Submit\r</button> <button type=\"button\" id=\"kt_login_signup_cancel\" class=\"btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3\">Cancel\r</button></div><!--end::Form group--></form>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ForgotPassword() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
if templ_7745c5c3_Var4 == nil {
templ_7745c5c3_Var4 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_forgot_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"/asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pb-13 pt-lg-0 pt-5\"><h3 class=\"font-weight-bolder text-dark font-size-h4 font-size-h1-lg\">Forgotten Password ?\r</h3><p class=\"text-muted font-weight-bold font-size-h4\">Enter your email to reset your password\r</p></div><!--end::Title--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"email\" placeholder=\"Email\" name=\"email\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group d-flex flex-wrap pb-lg-0\"><button type=\"button\" id=\"kt_login_forgot_submit\" class=\"btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-submit\">Submit\r</button> <button type=\"button\" id=\"kt_login_forgot_cancel\" class=\"btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-cancel\">Cancel\r</button></div><!--end::Form group--></form>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,778 @@
package mastermenuusergroup
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
"github.com/emarifer/go-templ-project-structure/services"
"github.com/emarifer/go-templ-project-structure/views/component/sidebarmaster"
"github.com/emarifer/go-templ-project-structure/views/component/breadcrumbadmin"
"github.com/emarifer/go-templ-project-structure/views/component/customtextfield"
"github.com/emarifer/go-templ-project-structure/views/component/customtextfieldsearch"
)
templ MainNavbar(datamenu []services.MasterMenu) {
<div class="aside-menu-wrapper flex-column-fluid" id="kt_aside_menu_wrapper">
<!--begin::Menu Container-->
<div
id="kt_aside_menu"
class="aside-menu my-4 "
data-menu-vertical="1"
data-menu-scroll="1"
data-menu-dropdown-timeout="500"
>
<!--begin::Menu Nav-->
<ul class="menu-nav ">
for index, d := range datamenu {
if index == 0 {
// @MenuDashboard(d.ParentMenuName, d.ParentUrl)
@sidebarmaster.MenuDashboard(d.ParentMenuName, d.ParentUrl)
<li class="menu-section ">
<h4 class="menu-text">Menu</h4>
<i class="menu-icon ki ki-bold-more-hor icon-md"></i>
</li>
}
if index+1 < len(datamenu) {
// @ListMenuNavbar(datamenu[index+1].ParentMenuName, d.Children)
@sidebarmaster.ListMenuNavbar(datamenu[index+1].ParentMenuName, datamenu[index+1].Children)
}
}
</ul>
<!--end::Menu Nav-->
</div>
<!--end::Menu Container-->
</div>
}
templ MainMasterMenuUserGroup(datamenu []services.MasterMenu) {
<!--begin::Main-->
<!--begin::Header Mobile-->
<div id="kt_header_mobile" class="header-mobile align-items-center header-mobile-fixed ">
<!--begin::Logo-->
<a href="index.html">
<img alt="Logo" src="/assets/media/logos/logo-light.png"/>
</a>
<!--end::Logo-->
<!--begin::Toolbar-->
<div class="d-flex align-items-center">
<!--begin::Aside Mobile Toggle-->
<button class="btn p-0 burger-icon burger-icon-left" id="kt_aside_mobile_toggle">
<span></span>
</button>
<!--end::Aside Mobile Toggle-->
<!--begin::Header Menu Mobile Toggle-->
<button class="btn p-0 burger-icon ml-4" id="kt_header_mobile_toggle">
<span></span>
</button>
<!--end::Header Menu Mobile Toggle-->
<!--begin::Topbar Mobile Toggle-->
<button class="btn btn-hover-text-primary p-0 ml-2" id="kt_header_mobile_topbar_toggle">
<span
class="svg-icon svg-icon-xl"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/General/User.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 24 0 24 24 0 24"></polygon>
<path
d="M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z"
fill="#000000"
fill-rule="nonzero"
opacity="0.3"
></path>
<path
d="M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z"
fill="#000000"
fill-rule="nonzero"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</button>
<!--end::Topbar Mobile Toggle-->
</div>
<!--end::Toolbar-->
</div>
<!--end::Header Mobile-->
<div class="d-flex flex-column flex-root">
<!--begin::Page-->
<div class="d-flex flex-row flex-column-fluid page">
<!--begin::Aside-->
<div class="aside aside-left aside-fixed d-flex flex-column flex-row-auto" id="kt_aside">
<!--begin::Brand-->
<div class="brand flex-column-auto " id="kt_brand">
<!--begin::Logo-->
<a href="index.html" class="brand-logo">
<img alt="Logo" class="img-fluid" src="/assets/asset-corporate-portal/media/logo/logo.png"/>
</a>
<!--end::Logo-->
<!--begin::Toggle-->
<button class="brand-toggle btn btn-sm px-0" id="kt_aside_toggle">
<span
class="svg-icon svg-icon svg-icon-xl"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Navigation/Angle-double-left.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 24 0 24 24 0 24"></polygon>
<path
d="M5.29288961,6.70710318 C4.90236532,6.31657888 4.90236532,5.68341391 5.29288961,5.29288961 C5.68341391,4.90236532 6.31657888,4.90236532 6.70710318,5.29288961 L12.7071032,11.2928896 C13.0856821,11.6714686 13.0989277,12.281055 12.7371505,12.675721 L7.23715054,18.675721 C6.86395813,19.08284 6.23139076,19.1103429 5.82427177,18.7371505 C5.41715278,18.3639581 5.38964985,17.7313908 5.76284226,17.3242718 L10.6158586,12.0300721 L5.29288961,6.70710318 Z"
fill="#000000"
fill-rule="nonzero"
transform="translate(8.999997, 11.999999) scale(-1, 1) translate(-8.999997, -11.999999) "
></path>
<path
d="M10.7071009,15.7071068 C10.3165766,16.0976311 9.68341162,16.0976311 9.29288733,15.7071068 C8.90236304,15.3165825 8.90236304,14.6834175 9.29288733,14.2928932 L15.2928873,8.29289322 C15.6714663,7.91431428 16.2810527,7.90106866 16.6757187,8.26284586 L22.6757187,13.7628459 C23.0828377,14.1360383 23.1103407,14.7686056 22.7371482,15.1757246 C22.3639558,15.5828436 21.7313885,15.6103465 21.3242695,15.2371541 L16.0300699,10.3841378 L10.7071009,15.7071068 Z"
fill="#000000"
fill-rule="nonzero"
opacity="0.3"
transform="translate(15.999997, 11.999999) scale(-1, 1) rotate(-270.000000) translate(-15.999997, -11.999999) "
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</button>
<!--end::Toolbar-->
</div>
<!--end::Brand-->
<!--begin::Aside Menu-->
@MainNavbar(datamenu)
<!--end::Aside Menu-->
</div>
<!--end::Aside-->
<!--begin::Wrapper-->
<div class="d-flex flex-column flex-row-fluid wrapper" id="kt_wrapper">
<!--begin::Header-->
<div id="kt_header" class="header header-fixed ">
<!--begin::Container-->
<div class=" container-fluid d-flex align-items-stretch justify-content-between">
<!--begin::Header Menu Wrapper-->
<div class="header-menu-wrapper header-menu-wrapper-left" id="kt_header_menu_wrapper"></div>
<!--end::Header Menu Wrapper-->
<!--begin::Topbar-->
<div class="topbar">
<!--begin::User-->
<div class="topbar-item">
<div
class="btn btn-icon btn-icon-mobile w-auto btn-clean d-flex align-items-center btn-lg px-2"
id="kt_quick_user_toggle"
>
<span
class="text-muted font-weight-bold font-size-base d-none d-md-inline mr-1"
>Hi,</span>
<span
class="text-dark-50 font-weight-bolder font-size-base d-none d-md-inline mr-3"
>Sean</span>
<span class="symbol symbol-lg-35 symbol-25 symbol-light-success">
<span class="symbol-label font-size-h5 font-weight-bold">S</span>
</span>
</div>
</div>
<!--end::User-->
</div>
<!--end::Topbar-->
</div>
<!--end::Container-->
</div>
<!--end::Header-->
<!--begin::Content-->
<div class=" container">
<div class="row">
@breadcrumadmin.MainBreadcrumbAdmin()
</div>
// EXAMPLE INPUTAN START
// inputan biasa
@customtextfield.MainCustomTextField("Kode", "Kode", "kode", "text")
// inputan dengan search
@customtextfieldsearch.MainCustomTextFieldSearch("cariNama", "Cari PID / Nama", "search", "/search", "input changed delay:500ms, search", "#search-results", ".htmx-indicator")
// EXAMPLE INPUTAN END
</div>
<!--end::Content-->
<!--begin::Footer-->
<div class="footer bg-white py-4 d-flex flex-lg-column " id="kt_footer">
<!--begin::Container-->
<div
class=" container-fluid d-flex flex-column flex-md-row align-items-center justify-content-between"
>
<!--begin::Copyright-->
<div class="text-dark order-2 order-md-1">
<span class="text-muted font-weight-bold mr-2">2020&copy;</span>
<a
href="http://keenthemes.com/metronic"
target="_blank"
class="text-dark-75 text-hover-primary"
>Keenthemes</a>
</div>
<!--end::Copyright-->
<!--begin::Nav-->
<div class="nav nav-dark">
<a
href="http://keenthemes.com/metronic"
target="_blank"
class="nav-link pl-0 pr-5"
>About</a>
<a href="http://keenthemes.com/metronic" target="_blank" class="nav-link pl-0 pr-5">Team</a>
<a
href="http://keenthemes.com/metronic"
target="_blank"
class="nav-link pl-0 pr-0"
>Contact</a>
</div>
<!--end::Nav-->
</div>
<!--end::Container-->
</div>
<!--end::Footer-->
</div>
<!--end::Wrapper-->
</div>
<!--end::Page-->
</div>
<!--end::Main-->
<!-- begin::User Panel-->
<div id="kt_quick_user" class="offcanvas offcanvas-right p-10">
<!--begin::Header-->
<div class="offcanvas-header d-flex align-items-center justify-content-between pb-5">
<h3 class="font-weight-bold m-0">
User Profile
<small class="text-muted font-size-sm ml-2">12 messages</small>
</h3>
<a href="#" class="btn btn-xs btn-icon btn-light btn-hover-primary" id="kt_quick_user_close">
<i class="ki ki-close icon-xs text-muted"></i>
</a>
</div>
<!--end::Header-->
<!--begin::Content-->
<div class="offcanvas-content pr-5 mr-n5">
<!--begin::Header-->
<div class="d-flex align-items-center mt-5">
<div class="symbol symbol-100 mr-5">
<div class="symbol-label" style="background-image:url('/assets/media/users/300_21.jpg')"></div>
<i class="symbol-badge bg-success"></i>
</div>
<div class="d-flex flex-column">
<a href="#" class="font-weight-bold font-size-h5 text-dark-75 text-hover-primary">
James Jones
</a>
<div class="text-muted mt-1">
Application Developer
</div>
<div class="navi mt-2">
<a href="#" class="navi-item">
<span class="navi-link p-0 pb-2">
<span class="navi-icon mr-1">
<span
class="svg-icon svg-icon-lg svg-icon-primary"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Communication/Mail-notification.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M21,12.0829584 C20.6747915,12.0283988 20.3407122,12 20,12 C16.6862915,12 14,14.6862915 14,18 C14,18.3407122 14.0283988,18.6747915 14.0829584,19 L5,19 C3.8954305,19 3,18.1045695 3,17 L3,8 C3,6.8954305 3.8954305,6 5,6 L19,6 C20.1045695,6 21,6.8954305 21,8 L21,12.0829584 Z M18.1444251,7.83964668 L12,11.1481833 L5.85557487,7.83964668 C5.4908718,7.6432681 5.03602525,7.77972206 4.83964668,8.14442513 C4.6432681,8.5091282 4.77972206,8.96397475 5.14442513,9.16035332 L11.6444251,12.6603533 C11.8664074,12.7798822 12.1335926,12.7798822 12.3555749,12.6603533 L18.8555749,9.16035332 C19.2202779,8.96397475 19.3567319,8.5091282 19.1603533,8.14442513 C18.9639747,7.77972206 18.5091282,7.6432681 18.1444251,7.83964668 Z"
fill="#000000"
></path>
<circle fill="#000000" opacity="0.3" cx="19.5" cy="17.5" r="2.5"></circle>
</g>
</svg><!--end::Svg Icon-->
</span>
</span>
<span class="navi-text text-muted text-hover-primary">jm@softplus.com</span>
</span>
</a>
<a href="#" class="btn btn-sm btn-light-primary font-weight-bolder py-2 px-5">Sign Out</a>
</div>
</div>
</div>
<!--end::Header-->
<!--begin::Separator-->
<div class="separator separator-dashed mt-8 mb-5"></div>
<!--end::Separator-->
<!--begin::Nav-->
<div class="navi navi-spacer-x-0 p-0">
<!--begin::Item-->
<a href="custom/apps/user/profile-1/personal-information.html" class="navi-item">
<div class="navi-link">
<div class="symbol symbol-40 bg-light mr-3">
<div class="symbol-label">
<span
class="svg-icon svg-icon-md svg-icon-success"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/General/Notification2.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M13.2070325,4 C13.0721672,4.47683179 13,4.97998812 13,5.5 C13,8.53756612 15.4624339,11 18.5,11 C19.0200119,11 19.5231682,10.9278328 20,10.7929675 L20,17 C20,18.6568542 18.6568542,20 17,20 L7,20 C5.34314575,20 4,18.6568542 4,17 L4,7 C4,5.34314575 5.34314575,4 7,4 L13.2070325,4 Z"
fill="#000000"
></path>
<circle fill="#000000" opacity="0.3" cx="18.5" cy="5.5" r="2.5"></circle>
</g>
</svg><!--end::Svg Icon-->
</span>
</div>
</div>
<div class="navi-text">
<div class="font-weight-bold">
My Profile
</div>
<div class="text-muted">
Account settings and more
<span class="label label-light-danger label-inline font-weight-bold">update</span>
</div>
</div>
</div>
</a>
<!--end:Item-->
<!--begin::Item-->
<a href="custom/apps/user/profile-3.html" class="navi-item">
<div class="navi-link">
<div class="symbol symbol-40 bg-light mr-3">
<div class="symbol-label">
<span
class="svg-icon svg-icon-md svg-icon-warning"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Shopping/Chart-bar1.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<rect
fill="#000000"
opacity="0.3"
x="12"
y="4"
width="3"
height="13"
rx="1.5"
></rect>
<rect
fill="#000000"
opacity="0.3"
x="7"
y="9"
width="3"
height="8"
rx="1.5"
></rect>
<path
d="M5,19 L20,19 C20.5522847,19 21,19.4477153 21,20 C21,20.5522847 20.5522847,21 20,21 L4,21 C3.44771525,21 3,20.5522847 3,20 L3,4 C3,3.44771525 3.44771525,3 4,3 C4.55228475,3 5,3.44771525 5,4 L5,19 Z"
fill="#000000"
fill-rule="nonzero"
></path>
<rect
fill="#000000"
opacity="0.3"
x="17"
y="11"
width="3"
height="6"
rx="1.5"
></rect>
</g>
</svg><!--end::Svg Icon-->
</span>
</div>
</div>
<div class="navi-text">
<div class="font-weight-bold">
My Messages
</div>
<div class="text-muted">
Inbox and tasks
</div>
</div>
</div>
</a>
<!--end:Item-->
<!--begin::Item-->
<a href="custom/apps/user/profile-2.html" class="navi-item">
<div class="navi-link">
<div class="symbol symbol-40 bg-light mr-3">
<div class="symbol-label">
<span
class="svg-icon svg-icon-md svg-icon-danger"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Files/Selected-file.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 24 0 24 24 0 24"></polygon>
<path
d="M4.85714286,1 L11.7364114,1 C12.0910962,1 12.4343066,1.12568431 12.7051108,1.35473959 L17.4686994,5.3839416 C17.8056532,5.66894833 18,6.08787823 18,6.52920201 L18,19.0833333 C18,20.8738751 17.9795521,21 16.1428571,21 L4.85714286,21 C3.02044787,21 3,20.8738751 3,19.0833333 L3,2.91666667 C3,1.12612489 3.02044787,1 4.85714286,1 Z M8,12 C7.44771525,12 7,12.4477153 7,13 C7,13.5522847 7.44771525,14 8,14 L15,14 C15.5522847,14 16,13.5522847 16,13 C16,12.4477153 15.5522847,12 15,12 L8,12 Z M8,16 C7.44771525,16 7,16.4477153 7,17 C7,17.5522847 7.44771525,18 8,18 L11,18 C11.5522847,18 12,17.5522847 12,17 C12,16.4477153 11.5522847,16 11,16 L8,16 Z"
fill="#000000"
fill-rule="nonzero"
opacity="0.3"
></path>
<path
d="M6.85714286,3 L14.7364114,3 C15.0910962,3 15.4343066,3.12568431 15.7051108,3.35473959 L20.4686994,7.3839416 C20.8056532,7.66894833 21,8.08787823 21,8.52920201 L21,21.0833333 C21,22.8738751 20.9795521,23 19.1428571,23 L6.85714286,23 C5.02044787,23 5,22.8738751 5,21.0833333 L5,4.91666667 C5,3.12612489 5.02044787,3 6.85714286,3 Z M8,12 C7.44771525,12 7,12.4477153 7,13 C7,13.5522847 7.44771525,14 8,14 L15,14 C15.5522847,14 16,13.5522847 16,13 C16,12.4477153 15.5522847,12 15,12 L8,12 Z M8,16 C7.44771525,16 7,16.4477153 7,17 C7,17.5522847 7.44771525,18 8,18 L11,18 C11.5522847,18 12,17.5522847 12,17 C12,16.4477153 11.5522847,16 11,16 L8,16 Z"
fill="#000000"
fill-rule="nonzero"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</div>
</div>
<div class="navi-text">
<div class="font-weight-bold">
My Activities
</div>
<div class="text-muted">
Logs and notifications
</div>
</div>
</div>
</a>
<!--end:Item-->
<!--begin::Item-->
<a href="custom/apps/userprofile-1/overview.html" class="navi-item">
<div class="navi-link">
<div class="symbol symbol-40 bg-light mr-3">
<div class="symbol-label">
<span
class="svg-icon svg-icon-md svg-icon-primary"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Communication/Mail-opened.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M6,2 L18,2 C18.5522847,2 19,2.44771525 19,3 L19,12 C19,12.5522847 18.5522847,13 18,13 L6,13 C5.44771525,13 5,12.5522847 5,12 L5,3 C5,2.44771525 5.44771525,2 6,2 Z M7.5,5 C7.22385763,5 7,5.22385763 7,5.5 C7,5.77614237 7.22385763,6 7.5,6 L13.5,6 C13.7761424,6 14,5.77614237 14,5.5 C14,5.22385763 13.7761424,5 13.5,5 L7.5,5 Z M7.5,7 C7.22385763,7 7,7.22385763 7,7.5 C7,7.77614237 7.22385763,8 7.5,8 L10.5,8 C10.7761424,8 11,7.77614237 11,7.5 C11,7.22385763 10.7761424,7 10.5,7 L7.5,7 Z"
fill="#000000"
opacity="0.3"
></path>
<path
d="M3.79274528,6.57253826 L12,12.5 L20.2072547,6.57253826 C20.4311176,6.4108595 20.7436609,6.46126971 20.9053396,6.68513259 C20.9668779,6.77033951 21,6.87277228 21,6.97787787 L21,17 C21,18.1045695 20.1045695,19 19,19 L5,19 C3.8954305,19 3,18.1045695 3,17 L3,6.97787787 C3,6.70173549 3.22385763,6.47787787 3.5,6.47787787 C3.60510559,6.47787787 3.70753836,6.51099993 3.79274528,6.57253826 Z"
fill="#000000"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</div>
</div>
<div class="navi-text">
<div class="font-weight-bold">
My Tasks
</div>
<div class="text-muted">
latest tasks and projects
</div>
</div>
</div>
</a>
<!--end:Item-->
</div>
<!--end::Nav-->
<!--begin::Separator-->
<div class="separator separator-dashed my-7"></div>
<!--end::Separator-->
<!--begin::Notifications-->
<div>
<!--begin:Heading-->
<h5 class="mb-5">
Recent Notifications
</h5>
<!--end:Heading-->
<!--begin::Item-->
<div class="d-flex align-items-center bg-light-warning rounded p-5 gutter-b">
<span class="svg-icon svg-icon-warning mr-5">
<span
class="svg-icon svg-icon-lg"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Home/Library.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M5,3 L6,3 C6.55228475,3 7,3.44771525 7,4 L7,20 C7,20.5522847 6.55228475,21 6,21 L5,21 C4.44771525,21 4,20.5522847 4,20 L4,4 C4,3.44771525 4.44771525,3 5,3 Z M10,3 L11,3 C11.5522847,3 12,3.44771525 12,4 L12,20 C12,20.5522847 11.5522847,21 11,21 L10,21 C9.44771525,21 9,20.5522847 9,20 L9,4 C9,3.44771525 9.44771525,3 10,3 Z"
fill="#000000"
></path>
<rect
fill="#000000"
opacity="0.3"
transform="translate(17.825568, 11.945519) rotate(-19.000000) translate(-17.825568, -11.945519) "
x="16.3255682"
y="2.94551858"
width="3"
height="18"
rx="1"
></rect>
</g>
</svg><!--end::Svg Icon-->
</span>
</span>
<div class="d-flex flex-column flex-grow-1 mr-2">
<a href="#" class="font-weight-normal text-dark-75 text-hover-primary font-size-lg mb-1">
Another
purpose persuade
</a>
<span class="text-muted font-size-sm">Due in 2 Days</span>
</div>
<span class="font-weight-bolder text-warning py-1 font-size-lg">+28%</span>
</div>
<!--end::Item-->
<!--begin::Item-->
<div class="d-flex align-items-center bg-light-success rounded p-5 gutter-b">
<span class="svg-icon svg-icon-success mr-5">
<span
class="svg-icon svg-icon-lg"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Communication/Write.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M12.2674799,18.2323597 L12.0084872,5.45852451 C12.0004303,5.06114792 12.1504154,4.6768183 12.4255037,4.38993949 L15.0030167,1.70195304 L17.5910752,4.40093695 C17.8599071,4.6812911 18.0095067,5.05499603 18.0083938,5.44341307 L17.9718262,18.2062508 C17.9694575,19.0329966 17.2985816,19.701953 16.4718324,19.701953 L13.7671717,19.701953 C12.9505952,19.701953 12.2840328,19.0487684 12.2674799,18.2323597 Z"
fill="#000000"
fill-rule="nonzero"
transform="translate(14.701953, 10.701953) rotate(-135.000000) translate(-14.701953, -10.701953) "
></path>
<path
d="M12.9,2 C13.4522847,2 13.9,2.44771525 13.9,3 C13.9,3.55228475 13.4522847,4 12.9,4 L6,4 C4.8954305,4 4,4.8954305 4,6 L4,18 C4,19.1045695 4.8954305,20 6,20 L18,20 C19.1045695,20 20,19.1045695 20,18 L20,13 C20,12.4477153 20.4477153,12 21,12 C21.5522847,12 22,12.4477153 22,13 L22,18 C22,20.209139 20.209139,22 18,22 L6,22 C3.790861,22 2,20.209139 2,18 L2,6 C2,3.790861 3.790861,2 6,2 L12.9,2 Z"
fill="#000000"
fill-rule="nonzero"
opacity="0.3"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</span>
<div class="d-flex flex-column flex-grow-1 mr-2">
<a href="#" class="font-weight-normal text-dark-75 text-hover-primary font-size-lg mb-1">
Would
be to people
</a>
<span class="text-muted font-size-sm">Due in 2 Days</span>
</div>
<span class="font-weight-bolder text-success py-1 font-size-lg">+50%</span>
</div>
<!--end::Item-->
<!--begin::Item-->
<div class="d-flex align-items-center bg-light-danger rounded p-5 gutter-b">
<span class="svg-icon svg-icon-danger mr-5">
<span
class="svg-icon svg-icon-lg"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/Communication/Group-chat.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M16,15.6315789 L16,12 C16,10.3431458 14.6568542,9 13,9 L6.16183229,9 L6.16183229,5.52631579 C6.16183229,4.13107011 7.29290239,3 8.68814808,3 L20.4776218,3 C21.8728674,3 23.0039375,4.13107011 23.0039375,5.52631579 L23.0039375,13.1052632 L23.0206157,17.786793 C23.0215995,18.0629336 22.7985408,18.2875874 22.5224001,18.2885711 C22.3891754,18.2890457 22.2612702,18.2363324 22.1670655,18.1421277 L19.6565168,15.6315789 L16,15.6315789 Z"
fill="#000000"
></path>
<path
d="M1.98505595,18 L1.98505595,13 C1.98505595,11.8954305 2.88048645,11 3.98505595,11 L11.9850559,11 C13.0896254,11 13.9850559,11.8954305 13.9850559,13 L13.9850559,18 C13.9850559,19.1045695 13.0896254,20 11.9850559,20 L4.10078614,20 L2.85693427,21.1905292 C2.65744295,21.3814685 2.34093638,21.3745358 2.14999706,21.1750444 C2.06092565,21.0819836 2.01120804,20.958136 2.01120804,20.8293182 L2.01120804,18.32426 C1.99400175,18.2187196 1.98505595,18.1104045 1.98505595,18 Z M6.5,14 C6.22385763,14 6,14.2238576 6,14.5 C6,14.7761424 6.22385763,15 6.5,15 L11.5,15 C11.7761424,15 12,14.7761424 12,14.5 C12,14.2238576 11.7761424,14 11.5,14 L6.5,14 Z M9.5,16 C9.22385763,16 9,16.2238576 9,16.5 C9,16.7761424 9.22385763,17 9.5,17 L11.5,17 C11.7761424,17 12,16.7761424 12,16.5 C12,16.2238576 11.7761424,16 11.5,16 L9.5,16 Z"
fill="#000000"
opacity="0.3"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</span>
<div class="d-flex flex-column flex-grow-1 mr-2">
<a href="#" class="font-weight-normel text-dark-75 text-hover-primary font-size-lg mb-1">
Purpose
would be to persuade
</a>
<span class="text-muted font-size-sm">Due in 2 Days</span>
</div>
<span class="font-weight-bolder text-danger py-1 font-size-lg">-27%</span>
</div>
<!--end::Item-->
<!--begin::Item-->
<div class="d-flex align-items-center bg-light-info rounded p-5">
<span class="svg-icon svg-icon-info mr-5">
<span
class="svg-icon svg-icon-lg"
>
<!--begin::Svg Icon | path:/assets/media/svg/icons/General/Attachment2.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M11.7573593,15.2426407 L8.75735931,15.2426407 C8.20507456,15.2426407 7.75735931,15.6903559 7.75735931,16.2426407 C7.75735931,16.7949254 8.20507456,17.2426407 8.75735931,17.2426407 L11.7573593,17.2426407 L11.7573593,18.2426407 C11.7573593,19.3472102 10.8619288,20.2426407 9.75735931,20.2426407 L5.75735931,20.2426407 C4.65278981,20.2426407 3.75735931,19.3472102 3.75735931,18.2426407 L3.75735931,14.2426407 C3.75735931,13.1380712 4.65278981,12.2426407 5.75735931,12.2426407 L9.75735931,12.2426407 C10.8619288,12.2426407 11.7573593,13.1380712 11.7573593,14.2426407 L11.7573593,15.2426407 Z"
fill="#000000"
opacity="0.3"
transform="translate(7.757359, 16.242641) rotate(-45.000000) translate(-7.757359, -16.242641) "
></path>
<path
d="M12.2426407,8.75735931 L15.2426407,8.75735931 C15.7949254,8.75735931 16.2426407,8.30964406 16.2426407,7.75735931 C16.2426407,7.20507456 15.7949254,6.75735931 15.2426407,6.75735931 L12.2426407,6.75735931 L12.2426407,5.75735931 C12.2426407,4.65278981 13.1380712,3.75735931 14.2426407,3.75735931 L18.2426407,3.75735931 C19.3472102,3.75735931 20.2426407,4.65278981 20.2426407,5.75735931 L20.2426407,9.75735931 C20.2426407,10.8619288 19.3472102,11.7573593 18.2426407,11.7573593 L14.2426407,11.7573593 C13.1380712,11.7573593 12.2426407,10.8619288 12.2426407,9.75735931 L12.2426407,8.75735931 Z"
fill="#000000"
transform="translate(16.242641, 7.757359) rotate(-45.000000) translate(-16.242641, -7.757359) "
></path>
<path
d="M5.89339828,3.42893219 C6.44568303,3.42893219 6.89339828,3.87664744 6.89339828,4.42893219 L6.89339828,6.42893219 C6.89339828,6.98121694 6.44568303,7.42893219 5.89339828,7.42893219 C5.34111353,7.42893219 4.89339828,6.98121694 4.89339828,6.42893219 L4.89339828,4.42893219 C4.89339828,3.87664744 5.34111353,3.42893219 5.89339828,3.42893219 Z M11.4289322,5.13603897 C11.8194565,5.52656326 11.8194565,6.15972824 11.4289322,6.55025253 L10.0147186,7.96446609 C9.62419433,8.35499039 8.99102936,8.35499039 8.60050506,7.96446609 C8.20998077,7.5739418 8.20998077,6.94077682 8.60050506,6.55025253 L10.0147186,5.13603897 C10.4052429,4.74551468 11.0384079,4.74551468 11.4289322,5.13603897 Z M0.600505063,5.13603897 C0.991029355,4.74551468 1.62419433,4.74551468 2.01471863,5.13603897 L3.42893219,6.55025253 C3.81945648,6.94077682 3.81945648,7.5739418 3.42893219,7.96446609 C3.0384079,8.35499039 2.40524292,8.35499039 2.01471863,7.96446609 L0.600505063,6.55025253 C0.209980772,6.15972824 0.209980772,5.52656326 0.600505063,5.13603897 Z"
fill="#000000"
opacity="0.3"
transform="translate(6.014719, 5.843146) rotate(-45.000000) translate(-6.014719, -5.843146) "
></path>
<path
d="M17.9142136,15.4497475 C18.4664983,15.4497475 18.9142136,15.8974627 18.9142136,16.4497475 L18.9142136,18.4497475 C18.9142136,19.0020322 18.4664983,19.4497475 17.9142136,19.4497475 C17.3619288,19.4497475 16.9142136,19.0020322 16.9142136,18.4497475 L16.9142136,16.4497475 C16.9142136,15.8974627 17.3619288,15.4497475 17.9142136,15.4497475 Z M23.4497475,17.1568542 C23.8402718,17.5473785 23.8402718,18.1805435 23.4497475,18.5710678 L22.0355339,19.9852814 C21.6450096,20.3758057 21.0118446,20.3758057 20.6213203,19.9852814 C20.2307961,19.5947571 20.2307961,18.9615921 20.6213203,18.5710678 L22.0355339,17.1568542 C22.4260582,16.76633 23.0592232,16.76633 23.4497475,17.1568542 Z M12.6213203,17.1568542 C13.0118446,16.76633 13.6450096,16.76633 14.0355339,17.1568542 L15.4497475,18.5710678 C15.8402718,18.9615921 15.8402718,19.5947571 15.4497475,19.9852814 C15.0592232,20.3758057 14.4260582,20.3758057 14.0355339,19.9852814 L12.6213203,18.5710678 C12.2307961,18.1805435 12.2307961,17.5473785 12.6213203,17.1568542 Z"
fill="#000000"
opacity="0.3"
transform="translate(18.035534, 17.863961) scale(1, -1) rotate(45.000000) translate(-18.035534, -17.863961) "
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</span>
<div class="d-flex flex-column flex-grow-1 mr-2">
<a href="#" class="font-weight-normel text-dark-75 text-hover-primary font-size-lg mb-1">
The
best product
</a>
<span class="text-muted font-size-sm">Due in 2 Days</span>
</div>
<span class="font-weight-bolder text-info py-1 font-size-lg">+8%</span>
</div>
<!--end::Item-->
</div>
<!--end::Notifications-->
</div>
<!--end::Content-->
</div>
<!-- end::User Panel-->
<!--begin::Scrolltop-->
<div id="kt_scrolltop" class="scrolltop">
<span class="svg-icon">
<!--begin::Svg Icon | path:/assets/media/svg/icons/Navigation/Up-2.svg-->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 24 0 24 24 0 24"></polygon>
<rect fill="#000000" opacity="0.3" x="11" y="10" width="2" height="10" rx="1"></rect>
<path
d="M6.70710678,12.7071068 C6.31658249,13.0976311 5.68341751,13.0976311 5.29289322,12.7071068 C4.90236893,12.3165825 4.90236893,11.6834175 5.29289322,11.2928932 L11.2928932,5.29289322 C11.6714722,4.91431428 12.2810586,4.90106866 12.6757246,5.26284586 L18.6757246,10.7628459 C19.0828436,11.1360383 19.1103465,11.7686056 18.7371541,12.1757246 C18.3639617,12.5828436 17.7313944,12.6103465 17.3242754,12.2371541 L12.0300757,7.38413782 L6.70710678,12.7071068 Z"
fill="#000000"
fill-rule="nonzero"
></path>
</g>
</svg><!--end::Svg Icon-->
</span>
</div>
<!--end::Scrolltop-->
}
templ CssMasterMenuUserGroup() {
<link
rel="stylesheet"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/roboto.css"
/>
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
#div-chart {
/* overflow-x: scroll; */
margin: 40px 10vw 40px 10vw;
}
.title {
font-size:20px;
font-weight: bold;
}
#title {
font-weight: 600;
}
</style>
}
templ JsMasterMenuUserGroup() {
}
templ ShowMasterMenuUserGroup(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,131 @@
package kelainanglobal
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
)
templ MainKelainanGlobal(divMcu string, dataMcu string, divFisik string, dataFisik string) {
<div id="div-chart">
@HeaderKelainanGlobal()
<div class="d-flex flex-column flex-root bg-white mt-25">
<!-- begin::Navbar -->
<div class="d-flex justify-content-center ">
<h3 class="mb-3 title">Data Persentase Kelainan Global</h3>
</div>
<div class="row justify-content-center">
<div class="col-12 text-center mb-10">
@chart.ShowChart(divMcu, dataMcu)
</div>
<div class="col-12 text-center">
@chart.ShowChart(divFisik, dataFisik)
</div>
</div>
<!-- end::Navbar -->
</div>
</div>
}
templ CssKelainanGlobal() {
<link
rel="stylesheet"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/roboto.css"
/>
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
#div-chart {
/* overflow-x: scroll; */
margin: 40px 10vw 40px 10vw;
}
.title {
font-size:20px;
font-weight: bold;
}
#title {
font-weight: 600;
}
</style>
}
templ JsKelainanGlobal() {
// echart
<script src="assets/js/echarts-js/echart.min.js"></script>
}
templ HeaderKelainanGlobal() {
<!-- breadcrumb & icon tanya START -->
<div class="row">
<div class="col-11">
<h1 class="title text-black" style="margin-bottom: 0">
PT. Sadhana Abiyasa Sampoerna
</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb" style="margin-bottom: 0">
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
<li class="breadcrumb-item">
<a href="#">Employee Health Medical Analytic</a>
</li>
<li class="breadcrumb-item">
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
Mcu Karyawan
</li>
</ol>
</nav>
</div>
<div class="col-1 align-content-center">
<!-- align-content-center -->
<div class="d-flex justify-content-end">
<a href="#">
<i class="fas fa-info-circle text-primary"></i>
</a>
</div>
</div>
</div>
<!-- breadcrumb & icon tanya END -->
<div class="mt-10">
<ul class="nav nav-tabs nav-tabs-line">
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_1">Peserta</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2">Kelainan global</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3">Kelainan Lab</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4">kelainan Non Lab</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5">kelainan Fisik</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6">Kesimpulan & Saran</a>
</li>
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_7">Daftar Peserta</a>
</li>
</ul>
</div>
}
templ ShowKelainanGlobal(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

View File

@@ -0,0 +1,175 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package kelainanglobal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
"github.com/emarifer/go-templ-project-structure/views/layout"
)
func MainKelainanGlobal(divMcu string, dataMcu string, divFisik string, dataFisik string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"div-chart\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = HeaderKelainanGlobal().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex flex-column flex-root bg-white mt-25\"><!-- begin::Navbar --><div class=\"d-flex justify-content-center \"><h3 class=\"mb-3 title\">Data Persentase Kelainan Global</h3></div><div class=\"row justify-content-center\"><div class=\"col-12 text-center mb-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = chart.ShowChart(divMcu, dataMcu).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = chart.ShowChart(divFisik, dataFisik).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><!-- end::Navbar --></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func CssKelainanGlobal() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n #div-chart {\r\n /* overflow-x: scroll; */\r\n margin: 40px 10vw 40px 10vw;\r\n }\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n #title {\r\n font-weight: 600;\r\n }\r\n \r\n</style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func JsKelainanGlobal() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
if templ_7745c5c3_Var3 == nil {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func HeaderKelainanGlobal() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
if templ_7745c5c3_Var4 == nil {
templ_7745c5c3_Var4 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- breadcrumb & icon tanya START --><div class=\"row\"><div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div><div class=\"col-1 align-content-center\"><!-- align-content-center --><div class=\"d-flex justify-content-end\"><a href=\"#\"><i class=\"fas fa-info-circle text-primary\"></i></a></div></div></div><!-- breadcrumb & icon tanya END --><div class=\"mt-10\"><ul class=\"nav nav-tabs nav-tabs-line\"><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_1\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\">Kesimpulan & Saran</a></li><li class=\"nav-item\"><a class=\"nav-link active\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\">Daftar Peserta</a></li></ul></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ShowKelainanGlobal(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
if templ_7745c5c3_Var5 == nil {
templ_7745c5c3_Var5 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Var6 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
}
return templ_7745c5c3_Err
})
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -0,0 +1,132 @@
package mcupeserta
import (
"github.com/emarifer/go-templ-project-structure/views/layout"
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
)
templ MainMcuPeserta(divPesertaMcu string, dataPesertaMcu string, divKepesertaanMcu string, dataKepesertaanMcu string, divPesertaMcuUmur string, dataPesertaMcuUmur string) {
<div id="div-chart">
@HeaderMcuPeserta()
<div class="d-flex flex-column flex-root bg-white mt-25">
<div class="d-flex justify-content-center ">
<h3 class="mb-3 title">Data Kepesertaan MCU</h3>
</div>
<div class="row justify-content-center">
<div class="col-12 text-center mb-10">
@chart.ShowChart(divPesertaMcu, dataPesertaMcu)
</div>
<div class="col-12 text-center mb-10">
@chart.ShowChart(divKepesertaanMcu, dataKepesertaanMcu)
</div>
<div class="col-12 text-center">
@chart.ShowChart(divPesertaMcuUmur, dataPesertaMcuUmur)
</div>
</div>
</div>
</div>
}
templ CssMcuPeserta() {
<link
rel="stylesheet"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/roboto.css"
/>
<style>
body {
background-color: white;
/* padding-right: 100px;
padding-left: 100px; */
}
#div-chart {
/* overflow-x: scroll; */
margin: 40px 10vw 40px 10vw;
}
.title {
font-size:20px;
font-weight: bold;
}
#title {
font-weight: 600;
}
</style>
}
templ JsMcuPeserta() {
// echart
<script src="assets/js/echarts-js/echart.min.js"></script>
}
templ HeaderMcuPeserta() {
<!-- breadcrumb & icon tanya START -->
<div class="row">
<div class="col-11">
<h1 class="title text-black" style="margin-bottom: 0">
PT. Sadhana Abiyasa Sampoerna
</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb" style="margin-bottom: 0">
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
<li class="breadcrumb-item">
<a href="#">Employee Health Medical Analytic</a>
</li>
<li class="breadcrumb-item">
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
Mcu Karyawan
</li>
</ol>
</nav>
</div>
<div class="col-1 align-content-center">
<!-- align-content-center -->
<div class="d-flex justify-content-end">
<a href="#">
<i class="fas fa-info-circle text-primary"></i>
</a>
</div>
</div>
</div>
<!-- breadcrumb & icon tanya END -->
<div class="mt-10">
<ul class="nav nav-tabs nav-tabs-line">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_1">Peserta</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2">Kelainan global</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3">Kelainan Lab</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4">kelainan Non Lab</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5">kelainan Fisik</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6">Kesimpulan & Saran</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_7">Daftar Peserta</a>
</li>
</ul>
</div>
}
templ ShowMcuPeserta(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

View File

@@ -0,0 +1,183 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package mcupeserta
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
"github.com/emarifer/go-templ-project-structure/views/layout"
)
func MainMcuPeserta(divPesertaMcu string, dataPesertaMcu string, divKepesertaanMcu string, dataKepesertaanMcu string, divPesertaMcuUmur string, dataPesertaMcuUmur string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
if templ_7745c5c3_Var1 == nil {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"div-chart\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = HeaderMcuPeserta().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex flex-column flex-root bg-white mt-25\"><div class=\"d-flex justify-content-center \"><h3 class=\"mb-3 title\">Data Kepesertaan MCU</h3></div><div class=\"row justify-content-center\"><div class=\"col-12 text-center mb-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = chart.ShowChart(divPesertaMcu, dataPesertaMcu).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center mb-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = chart.ShowChart(divKepesertaanMcu, dataKepesertaanMcu).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = chart.ShowChart(divPesertaMcuUmur, dataPesertaMcuUmur).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func CssMcuPeserta() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
if templ_7745c5c3_Var2 == nil {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n #div-chart {\r\n /* overflow-x: scroll; */\r\n margin: 40px 10vw 40px 10vw;\r\n }\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n #title {\r\n font-weight: 600;\r\n }\r\n \r\n</style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func JsMcuPeserta() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
if templ_7745c5c3_Var3 == nil {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func HeaderMcuPeserta() templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
if templ_7745c5c3_Var4 == nil {
templ_7745c5c3_Var4 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- breadcrumb & icon tanya START --><div class=\"row\"><div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div><div class=\"col-1 align-content-center\"><!-- align-content-center --><div class=\"d-flex justify-content-end\"><a href=\"#\"><i class=\"fas fa-info-circle text-primary\"></i></a></div></div></div><!-- breadcrumb & icon tanya END --><div class=\"mt-10\"><ul class=\"nav nav-tabs nav-tabs-line\"><li class=\"nav-item\"><a class=\"nav-link active\" data-toggle=\"tab\" href=\"#kt_tab_pane_1\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\">Kesimpulan & Saran</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\">Daftar Peserta</a></li></ul></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ShowMcuPeserta(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
if templ_7745c5c3_Var5 == nil {
templ_7745c5c3_Var5 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Var6 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
}
return templ_7745c5c3_Err
})
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}

View File

@@ -23,15 +23,15 @@ templ MainPieChart(idDiv string, udata string) {
templ CssPieChart() {
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
href="assets/css/googlefont/roboto.css"
/>
<style>
body {
@@ -49,7 +49,7 @@ templ CssPieChart() {
templ JsPieChart() {
// echart
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js" integrity="sha512-k37wQcV4v2h6jgYf5IUz1MoSKPpDs630XGSmCaCCOXxy2awgAWKHGZWr9nMyGgk3IOxA1NxdkN8r1JHgkUtMoQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="assets/js/echarts-js/echart.min.js"></script>
}
templ ShowPieChart(title string, cmp templ.Component, css templ.Component, js templ.Component) {

View File

@@ -60,7 +60,7 @@ func CssPieChart() templ.Component {
templ_7745c5c3_Var2 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\"><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700\"><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n </style>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n </style>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -84,7 +84,7 @@ func JsPieChart() templ.Component {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js\" integrity=\"sha512-k37wQcV4v2h6jgYf5IUz1MoSKPpDs630XGSmCaCCOXxy2awgAWKHGZWr9nMyGgk3IOxA1NxdkN8r1JHgkUtMoQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -8,7 +8,7 @@ templ UnderDevelopment() {
</div>
<div>
<img
src="../asset-corporate-portal/media/under_development/under_development.png"
src="/asset-corporate-portal/media/under_development/under_development.png"
class="img-fluid"
alt="Your Brand"
/>

View File

@@ -23,7 +23,7 @@ func UnderDevelopment() templ.Component {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center text-center flex-column mt-20\"><div class=\"text-primary underdev\">Site Under Development</div><div class=\"text-disabled underdevsub mb-10\">\"Stay Tuned, We're Building Excitement!\"\r</div><div><img src=\"../asset-corporate-portal/media/under_development/under_development.png\" class=\"img-fluid\" alt=\"Your Brand\"></div></div>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center text-center flex-column mt-20\"><div class=\"text-primary underdev\">Site Under Development</div><div class=\"text-disabled underdevsub mb-10\">\"Stay Tuned, We're Building Excitement!\"\r</div><div><img src=\"/asset-corporate-portal/media/under_development/under_development.png\" class=\"img-fluid\" alt=\"Your Brand\"></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}