From d3705835bb45182fcc8035fe31a269066cf53ea2 Mon Sep 17 00:00:00 2001 From: Zamzam Nurzaman Date: Thu, 24 Oct 2024 16:58:46 +0700 Subject: [PATCH] desain dashboard, outlet, perusahaan, agen --- .env.development | 3 +- package-lock.json | 168 +++++-- package.json | 13 +- public/css/button.scss | 7 +- public/css/form.scss | 5 +- public/css/navbar.scss | 70 ++- public/css/table.scss | 2 +- public/css/template.scss | 77 +++- public/img/gedung.jpeg | Bin 0 -> 168305 bytes src/app/login/page.jsx | 9 +- src/app/main/daftarAgen/CardAgen.jsx | 77 ++++ src/app/main/daftarAgen/FormAgen.jsx | 96 ++++ src/app/main/daftarAgen/page.jsx | 251 ++++++++++ src/app/main/daftarAgen/style.scss | 80 ++++ src/app/main/daftarOutlet/CardOutlet.jsx | 80 ++++ src/app/main/daftarOutlet/FormOutlet.jsx | 194 ++++++++ src/app/main/daftarOutlet/page.jsx | 185 ++++++++ src/app/main/daftarOutlet/style.scss | 95 ++++ .../main/daftarPerusahaan/CardPerusahaan.jsx | 79 ++++ .../main/daftarPerusahaan/FormPerusahaan.jsx | 193 ++++++++ src/app/main/daftarPerusahaan/page.jsx | 170 +++++++ src/app/main/daftarPerusahaan/style.scss | 84 ++++ src/app/main/dashboard/GrafikHari.jsx | 107 +++++ src/app/main/dashboard/GrafikTahun.jsx | 106 +++++ src/app/main/dashboard/SegmentAgen.jsx | 130 ++++++ .../main/dashboard/SegmentJenisTransaksi.jsx | 56 +++ src/app/main/dashboard/SegmentProduk.jsx | 131 ++++++ .../main/dashboard/SegmentTransaksiHari.jsx | 83 ++++ src/app/main/dashboard/page.jsx | 188 +++++++- src/app/main/dashboard/style.scss | 229 +++++++++ src/app/main/layout.jsx | 63 +-- src/app/main/user/menu/page.jsx | 2 - src/app/main/user/userlist/page.jsx | 6 - src/app/page.jsx | 13 +- src/components/master/Menu.jsx | 187 ++++++-- src/components/master/Navbar.jsx | 351 -------------- src/components/refTemplate/Main.jsx | 9 +- src/components/util/Input/InputDateRange.jsx | 87 ++-- src/components/util/Input/InputSelect.jsx | 3 +- .../util/Input/InputSelectRemote.jsx | 138 ++++++ src/components/util/Input/index.jsx | 21 +- src/components/util/LoadingPage.jsx | 24 +- src/components/util/WrapperContent.jsx | 16 +- src/lib/DropdownAPI.jsx | 434 ++---------------- src/store/breadcrumbStore.js | 15 - src/store/menuStore.js | 2 + src/store/modalDashboard.js | 96 ---- src/store/store.js | 9 - 48 files changed, 3299 insertions(+), 1145 deletions(-) create mode 100644 public/img/gedung.jpeg create mode 100644 src/app/main/daftarAgen/CardAgen.jsx create mode 100644 src/app/main/daftarAgen/FormAgen.jsx create mode 100644 src/app/main/daftarAgen/page.jsx create mode 100644 src/app/main/daftarAgen/style.scss create mode 100644 src/app/main/daftarOutlet/CardOutlet.jsx create mode 100644 src/app/main/daftarOutlet/FormOutlet.jsx create mode 100644 src/app/main/daftarOutlet/page.jsx create mode 100644 src/app/main/daftarOutlet/style.scss create mode 100644 src/app/main/daftarPerusahaan/CardPerusahaan.jsx create mode 100644 src/app/main/daftarPerusahaan/FormPerusahaan.jsx create mode 100644 src/app/main/daftarPerusahaan/page.jsx create mode 100644 src/app/main/daftarPerusahaan/style.scss create mode 100644 src/app/main/dashboard/GrafikHari.jsx create mode 100644 src/app/main/dashboard/GrafikTahun.jsx create mode 100644 src/app/main/dashboard/SegmentAgen.jsx create mode 100644 src/app/main/dashboard/SegmentJenisTransaksi.jsx create mode 100644 src/app/main/dashboard/SegmentProduk.jsx create mode 100644 src/app/main/dashboard/SegmentTransaksiHari.jsx create mode 100644 src/app/main/dashboard/style.scss create mode 100644 src/components/util/Input/InputSelectRemote.jsx delete mode 100644 src/store/breadcrumbStore.js delete mode 100644 src/store/modalDashboard.js delete mode 100644 src/store/store.js diff --git a/.env.development b/.env.development index 99122df..c8d3730 100644 --- a/.env.development +++ b/.env.development @@ -1 +1,2 @@ -NEXT_PUBLIC_API_URL='https://api-silos-kpr.basys.co.id' +//NEXT_PUBLIC_API_URL='https://api-silos-kpr.basys.co.id' +NEXT_PUBLIC_API_URL='https://digital-attendance-api.basys.co.id' \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b85812c..3f2d088 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,8 @@ "dependencies": { "@ant-design/icons": "^5.3.0", "antd": "^5.12.5", + "aos": "^3.0.0-beta.6", + "apexcharts": "^3.49.1", "cookies-next": "^4.1.1", "dayjs": "^1.11.10", "docxtemplater": "^3.40.0", @@ -22,16 +24,15 @@ "next": "14.2.15", "next-image-export-optimizer": "^1.12.3", "next-pwa": "^5.6.0", - "nextjs-toploader": "^1.6.6", + "nextjs-toploader": "^1.6.12", "react": "^18", + "react-apexcharts": "^1.4.1", "react-dom": "^18", "react-hook-form": "^7.45.4", "react-query": "^3.39.3", "sass": "^1.69.5", "styled-components": "^5.3.9", "uuid": "^10.0.0", - "zingchart": "^2.9.14", - "zingchart-react": "^3.2.0", "zustand": "^4.4.7" }, "devDependencies": { @@ -3293,6 +3294,11 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "peer": true }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, "node_modules/acorn": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", @@ -3432,6 +3438,30 @@ "react-dom": ">=16.9.0" } }, + "node_modules/aos": { + "version": "3.0.0-beta.6", + "resolved": "https://registry.npmjs.org/aos/-/aos-3.0.0-beta.6.tgz", + "integrity": "sha512-VLWrpq8bfAWcetynVHMMrqdC+89Qq/Ym6UBJbHB4crIwp3RR8uq1dNGgsFzoDl03S43rlVMK+na3r5+oUCZsYw==", + "dependencies": { + "classlist-polyfill": "^1.2.0", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/apexcharts": { + "version": "3.54.1", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.54.1.tgz", + "integrity": "sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, "node_modules/archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", @@ -4198,6 +4228,11 @@ "node": ">=6.0" } }, + "node_modules/classlist-polyfill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", + "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" + }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -7138,6 +7173,11 @@ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", @@ -8558,6 +8598,18 @@ "node": ">=0.10.0" } }, + "node_modules/react-apexcharts": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.1.tgz", + "integrity": "sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": "^3.41.0", + "react": ">=0.13" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -9651,6 +9703,89 @@ "node": ">=12.0.0" } }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -10815,33 +10950,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zingchart": { - "version": "2.9.15", - "resolved": "https://registry.npmjs.org/zingchart/-/zingchart-2.9.15.tgz", - "integrity": "sha512-o0doeMS5VxL+TsQXzkZzNuMBHzlw7wCG/1TN/wAXhs2QOnABfGGz6g4TFx+EMzZYaTx0ZRKM8B+fSYTlHRDu0A==" - }, - "node_modules/zingchart-constants": { - "version": "1.0.5", - "resolved": "git+ssh://git@github.com/zingchart/zingchart-constants.git#37aaeb291bbaab2174d317c1182bbca6a8f70da5", - "license": "ISC" - }, - "node_modules/zingchart-react": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/zingchart-react/-/zingchart-react-3.2.0.tgz", - "integrity": "sha512-VTGhSBIUbbf5dLpVHxyoFRYB7rkx4umlhXKa6zJR0YjVu5tUE4pvogHu9lX5LjeTTXbPRW8quMqs+f+5d9juKw==", - "dependencies": { - "zingchart": "latest", - "zingchart-constants": "github:zingchart/zingchart-constants#master" - }, - "engines": { - "node": ">=14", - "npm": ">=5" - }, - "peerDependencies": { - "react": ">=15.0.0", - "react-dom": ">=15.0.0" - } - }, "node_modules/zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", diff --git a/package.json b/package.json index db3d763..1634d1f 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,9 @@ "export": "next build && next-image-export-optimizer" }, "dependencies": { - "react": "^18", - "react-dom": "^18", - "next": "14.2.15", "@ant-design/icons": "^5.3.0", "antd": "^5.12.5", + "aos": "^3.0.0-beta.6", "cookies-next": "^4.1.1", "dayjs": "^1.11.10", "docxtemplater": "^3.40.0", @@ -24,17 +22,20 @@ "html2canvas": "^1.4.1", "jspdf": "^2.5.1", "jspdf-autotable": "^3.8.2", + "next": "14.2.15", "next-image-export-optimizer": "^1.12.3", "next-pwa": "^5.6.0", - "nextjs-toploader": "^1.6.6", + "nextjs-toploader": "^1.6.12", + "react": "^18", + "react-dom": "^18", "react-hook-form": "^7.45.4", "react-query": "^3.39.3", "sass": "^1.69.5", "styled-components": "^5.3.9", "uuid": "^10.0.0", "zustand": "^4.4.7", - "zingchart": "^2.9.14", - "zingchart-react": "^3.2.0" + "apexcharts": "^3.49.1", + "react-apexcharts": "^1.4.1" }, "devDependencies": { "eslint": "^8", diff --git a/public/css/button.scss b/public/css/button.scss index 1fe4ec8..6b31ec3 100644 --- a/public/css/button.scss +++ b/public/css/button.scss @@ -1,8 +1,8 @@ .btn.btn-primary { color: var(--primary-inverse); - border-color: var(--primary); - background-color: var(--primary); + border: var(--bg-gradient-primary); + background: var(--bg-gradient-primary); } .btn.btn-primary:hover, @@ -112,7 +112,8 @@ height: 35px; padding: 0 28px; border-radius: 15px; - font-size: 11px; + font-size: 12px; + font-weight: 600; border: none; outline: none; cursor: pointer; diff --git a/public/css/form.scss b/public/css/form.scss index 8646008..4bcbe4c 100644 --- a/public/css/form.scss +++ b/public/css/form.scss @@ -102,9 +102,10 @@ .floating-label { position: absolute; - left: 15px; + left: 9px; + z-index: 111; top: 8px; - font-size: 14px; + font-size: 12px; font-weight: 500; padding: 0 7px; background: #fff; diff --git a/public/css/navbar.scss b/public/css/navbar.scss index a2b8dbf..29ba89e 100644 --- a/public/css/navbar.scss +++ b/public/css/navbar.scss @@ -344,24 +344,37 @@ .nav-account { - position: relative; - //background: #efefef; border-radius: 35px; + position: absolute; + bottom: 56px; + width: 100%; + padding: 0px 7px; + transition: 0.5s ease-in-out; } .nav-account .container-account .account { display: flex; - justify-content: end; + justify-content: space-between; align-items: center; gap: 1rem; - //background: rgba(255, 255, 255, 0); - padding: 8px 10px 8px 45px; border-radius: 35px; cursor: pointer; + transition: 0.5s ease-in-out; } .nav-account .container-account .account .text { - text-align: end; + text-align: start; + width: 0; + margin-left: -15px; + opacity: 0; + visibility: hidden; +} + +.nav-account .container-account .account .text.active{ + width: 100%; + margin-left: 10px; + opacity:1; + visibility: visible; } .nav-account .detail-account .header .text .name { @@ -405,26 +418,56 @@ } .nav-account .detail-account { - background: #fff; - height: 0; - right: 0; opacity: 0; visibility: hidden; + background: #fff; + right: 0; + left: 65px; + top: -200px; + height: 270px; position: absolute; transition: all 0.3s ease; - top: 100%; margin-top: 10px; min-width: 250px; border-radius: 20px; - box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15); } -.nav-account .container-account:hover .detail-account { +.nav-account .detail-account.active { + opacity: 0; + visibility: hidden; + background: #fff; + right: 0; + left: 305px; + top: -200px; + height: 270px; + position: absolute; + transition: all 0.3s ease; + margin-top: 10px; + min-width: 250px; + border-radius: 20px; +} + + +.nav-account:hover .detail-account { height: auto; opacity: 1; visibility: visible; transition: all 0.5s ease; - transform: translateY(-10px); + right: 0; + left: 55px; + top: -180px; + z-index: 1000; +} + +.nav-account:hover .detail-account.active { + height: auto; + opacity: 1; + visibility: visible; + transition: all 0.5s ease; + right: 0; + left: 255px; + top: -180px; + z-index: 1000; } .nav-account .detail-account .header { @@ -909,6 +952,7 @@ height:35px; position: absolute; bottom: 10px; + right: 8px; //background: #00000038; background: rgba(0, 0, 0, 0.1882352941); border-radius: 26px; diff --git a/public/css/table.scss b/public/css/table.scss index e053f77..d5652d5 100644 --- a/public/css/table.scss +++ b/public/css/table.scss @@ -50,7 +50,7 @@ color: var(--primary); font-weight: 600; text-align: start; - background:#d4e8ed; + background:#0179c217; border-bottom: 1px solid #ffffff; padding: 11px 16px; } diff --git a/public/css/template.scss b/public/css/template.scss index 65ee5d3..5f6783d 100644 --- a/public/css/template.scss +++ b/public/css/template.scss @@ -1,5 +1,6 @@ :root { --primary: #0179c2; + --primary-dark: #01314e; --success: #50cd89; --info: #1a98ff; --warning: #FEB82F; @@ -7,7 +8,7 @@ --secondary: #aaa; --dark: #181c32; --dark-grey: #666; - --primary-light: #9fd6ff; + --primary-light: #0179c217; --secondary-light: #f9f9f9; --success-light: #e8fff3; --info-light: #dbe8ff; @@ -15,7 +16,8 @@ --danger-light: #fff5f8; --dark-light: #e4e6e7; --white: #fff; - --text-muted: #9A9A9A; + --text-muted: #a9a9a9; + --text-muted-reverse: #ffffff85; --success-inverse: #ffffff; --info-inverse: #ffffff; --warning-inverse: #ffffff; @@ -53,16 +55,17 @@ --color-step6:#326F71; --color-step7:#1e5c6b; + --color-logo-green: #61c300; + --color-logo-orange: #e77c01; + --color-logo-purple: #a800c1; - //--color-step1:#50cd89; - //--color-step2:#43af7f; - //--color-step3:#369375; - //--color-step4:#29776b; - //--color-step5:#1e5c6b; - //--color-step6:#1c5064; - //--color-step7:#19445e; + --bg-gradient-transaksi: linear-gradient(316deg, #17374b, var(--primary)); + --bg-gradient-orange: linear-gradient(316deg, #17374b, var(--color-logo-orange)); + --bg-gradient-green: linear-gradient(316deg, #17374b, var(--color-logo-green)); + --bg-gradient-purple: linear-gradient(316deg, #17374b, var(--color-logo-purple)); + --bg-gradient-dark: linear-gradient(316deg, #17374b, var(--dark)); + --bg-gradient-primary: linear-gradient(336deg, #0a3865, var(--primary)); - --bg-menu: linear-gradient(90deg, #003775 0%, #0057b9 104.42%); --bg-sub-menu: #f8f8f840; } @@ -110,6 +113,7 @@ button { body { overflow-x: hidden; + background: #000; } .bg-nav { @@ -131,6 +135,14 @@ body { } +.nextjs-toploader { + z-index: 9999; + position: fixed; + top: 0; + left: 0; + right: 0; +} + .bg-nav-hov{ background: rgba(0, 0, 0, 0.7); height: 100px; @@ -140,6 +152,16 @@ body { z-index: 2; } +.card-content{ + background: #ffffffe0; + width: 100%; + height: 100%; + border-radius: 30px; + padding: 30px; + overflow: auto; + backdrop-filter: blur(8px); +} + section { position: fixed; // top: 10rem; @@ -147,12 +169,14 @@ section { overflow: scroll; height: 100vh; width: 100%; - padding: 15px 35px 150px; - padding-left: 300px; - border-radius: 15px 15px 0 0; + padding: 15px 10px; + padding-left: 280px; + border-radius: 20px; transition: all 0.5s ease; - background: #f3f3f3; - //background: url(/img/pat29.png); + //background: #f3f3f3; + background: url(/img/bg14.jpg); + background-size: cover; + box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15); &::-webkit-scrollbar { height: 0; @@ -166,7 +190,7 @@ section { } section.content.hover{ - padding-left: 120px; + padding-left: 80px; } .resultCard { @@ -253,7 +277,6 @@ section.content.hover{ color: var(--dark-grey); padding: 8px 12px; border: 0; - width: 100%; /* border-top: 1px dashed #e7e7e7; */ outline: 0; background: transparent; @@ -614,7 +637,7 @@ section.content.hover{ align-items: start; flex-direction: column; margin-right: 10px; - margin-top: 10px; + margin-top: -45px; width: 50%; .breadCrumb { @@ -1789,6 +1812,8 @@ hr.border{ } .check-auth{ + color: #fff; + .container { height: 100vh; position: relative; @@ -1833,10 +1858,10 @@ hr.border{ .side-menu-container{ position: fixed; - left: 10px; + left: 14px; z-index: 111; - height: 95vh; - top: 18px; + height: 97vh; + top: 14px; //background: var(--primary); border-radius: 30px; background: linear-gradient(316deg, #17374b, var(--primary)); @@ -1858,7 +1883,7 @@ hr.border{ &:hover { - background-color: rgba(0, 0, 0, 0.7) !important; + background-color: rgba(0, 0, 0, 0.2) !important; } } @@ -2398,4 +2423,12 @@ hr.border{ font-size: 11px; font-weight: 300; } +} + + +.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item, +.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item, +.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title, +.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title { + padding: 0; } \ No newline at end of file diff --git a/public/img/gedung.jpeg b/public/img/gedung.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..72067eb5b59b1cb58ddc1f77b8394a52f7262977 GIT binary patch literal 168305 zcmb5UbyOQ&)bNWJC{UbYEs_S;pb4}%1WB<3g1ZDM60}rsw?Obv+=IKc#XY!7TO10s z#p=&~oqe{P-`+X@uKxRxh+bC8|8ev79w{05zw1Oaq{Kud^rZB+uV3w9 z^#oLwynI(=Ku?Po6uXV8ZaQ)ywZcQDrW{S@-O&+FMG<{rX(l;|_)6-Xuwaig1Ihz7 z1wB<@Q4wkMR2D(eN>iC*T|Vc!IaDnGx$#B=a|arOQFC>rKu0`f2V(4d0D@(CE`em@ zGUGfhf$kXnL}+{U6ws*L1$KxOy_+~f*HWXp%AyvqZ9poMis z>U7wmy!?KnWhBr^Xxd;6n8A|)pqXLSVoc1cc1-J{4QhF7M;Dm2*=BkITQ@F+<}ah# zL(vvim>JkFD`3{MYR_cBlCp~(T+Un`vzBQ;A1@e9Q=pnXy;{3~%M;awd#+d9baGJ8 z<2NEk+SC>YCw{VgdCY5ESxG#^r?Ipl#fii_7&g4sF~*jy4see3fL2y0Zwg-d z;#we%?f@zv8HN$s5B6wa@O2JF=_OOtJ>`>U>u;N z0`|9`U=g6i$O=C826*11UmQqOi%b<=-_*~ul!2M~!>wH@g9I6GkN6oz$7U#SS}?Mz zLgyJVMEgNS7G$PWh@z@vUoOda^d+ul?TpVAb8v2u3{H>h&znmYCim*JupzvWQo8!$ zI(=2JUJ;lzhz-rH5>A9Jt{()1D6_yzXm|W(Bx}syN{{eBmMI$5NtUYFf$pn8!jaB7 z-aT?$+Oq+i*nyTFgqdEoUlF4p3&~KE9lG7!W7(0p*r<5%(i(`!-2g)+0b{URjguif z&@@O(B&ZRCmP3DH0nod@*PqvSI^t#5oJh*cG%0e)AO%(AmeV_Bz;Z{%c>!slvO%lq z4&2uCd?_m@i(@^4N6xX3gGpV{?D4lU-B68y%T}WCEKVqptmu>`(o(;HT9W!tHR`M& z?nnNmZ4dSM8@a9TfNB!gx$I{OL4^e#Isw-LB(-jaJc$;C!v=vuO!C%)$Vu2AzK4%n zX!zTM;DF>RrZzJ#vlYq%PCR|`0fi*zoq9U9ygSg?5=_i+3;hXZ$&P|C>^*a z^VRf9YnJwewwal6$j6^@-mlH=1FBI*Z+*yCtj^aBrknNCFm_NLC{K{U%5%i-1> zaL37<_6s(<@8oc2$l%gsoY_R@T|i(*0XwHtpsRrh%9d=`b%ZYyO6Cp4Eqke;%Oc{C@^4Y+^ z)ptd^E`<XhLh6Cz2YGF(4wJ7slwq#ht!&1UpC0C8mTGFlSO976cJo;%6;BAoO(sT{c zds81VcDM5blQXu9gch_wbD2*U1nl%r7eI} zboER7r5%v9AP7OeyEI^cEbP*L`er!NF^7o8rG(`&R6Iq|RcmUsVWQO|qtepW>QO4h z#PllFOzZ?cI~Jfsc%7YdvQ}5CLo!1vyz-G~wJxOEg6i^Zd+=|r4M64!le*fdtFj_R zu7xbTvBB+{nuRaN^!!2G)iHH{A0&&~kse{M8C=q&dMh#tSZnO~>^j{*v2k!ZGf@?He zw2q-fNu z+uAy6=&e3g)smXHsPWshO$t%K=x~FQ!8$Mk)!P3k?Vh_b>5!VO*iD8zS%--dEnm@Pn3Wv=q0}^_)8v6h03qIb$dWoby!I6t(!E z#dSNCK`m&}RgPK_X*(@NH95Cr$RKX#(o0Wy4>k0*;h|w`fkj1KC1SiK-6iS_t5ZP| z7_V@gv6D2K3QUG01=|Jc zFac;XZYQH`TuNHa1x@qcn&ysCxpn>1d8cqd9ux>j6L2Lv{g~0sRB3>0D90rM7(H-Z zGwY7Z${^Mp`w9S_TVwgrH8N|{&9zNTv$#U7q~G5|BjhLAa)2(a&aH!rGvMo9C{OYP zzHIC6a(?e+2-;&4ZXK{b+g|-`sph;BlI^@RGKi z#C!I0&&r<4$4^zo`SW`!_AD!PQw@a4%atr~^obT_{`s0F5VeD;8v47GxeS`BY86eD z7OcZYoU(3XFnp0l@uR?z?<8&e)*>NC!>$iu)X`v__>oH+wXE0j9^nvX}J&*R|A>M@Qh|poDAWD66_NKs=)2V@DcI|Qz2_y*R^v) zEvM2w_mqySKDVJ_D!h0n(yJ>h;|~gxpLaXkB7J{cp_OFM{#;FchCBQ$5Mj+kGi-1p zSh4Br08L(@0gW-|f~`PEt0r@yqnoYFVXN32bM;D#=)EdcM2n%pW>AkTtpAvLQ~H$e znYV5&Gn|UYYt_58)JQ}Y;1FBKuMnrpdar2o*db5X_{|5MCXJ@ahy;WKee9XN zv`{LDNnqg>cFXI#;24r+qWdS;ZDsE>Yx9m1i(cE4E{~31{ ze2Z{YIB3G3;*{Asoo!E}>1-gM{};3Lwx@2W1@9DS>!=AgMOA^<`vvt{T9NT0qr-Aq zL5s3Q+-9PYqt^0|QZ(`yx2&ugwnW{r=y|TEumbJ9>;d`~d)z{sAgc`ZBsn{i1rnn* zFadRuz3joeRG_!dtu0BbQ9FPeXIbbtRgGCq2$XXt~Lz$htu>jvOc1%<)^a zfQm%xF4Hrut7Wh>#-Qvx1|1>6ytn{%$B_cU0pU?@RC&6YJUZ00a!w|<+Nm-hr^9ab zbAI@)+uwa(^ zayFwG#V4SykcBmDv2)i&J1`{=06AqNa0yPlvUk0EM6Cn;nU9IrO1s$D0+=%tz&eaN z?6(o^1Lbi_6VRtBRL$ku~^&8~ed z4}*O#muZ>tV&g^b@Ut=YFI-LLz0Ez02lh*^7iFz1j}Xkq4F@s;ROFOjBA9Q|+fx0RShL=JFAtK?<2_V?uXf>cy$*{&_JZeF z20Qc^L-Kr0wVkTw>%RDqb)%k;UTbOzeu0-0$aN?Qlth;oFvbm_${@?&31GY95{Jt* zJl23>D4?W(sHxKtSC@=i^eRe(Qd6xZ-J1A_pIrkAbia-2)ht(ims>b@$(?6}lEA|E z*~v1Lx(G~p=rwypL}8qCbf52in+>ckA}zum$SqK&P<68HQm_`8yC)?3Kd(&S#T6Gy=H$P@*6Ac^Tj z%>}C}`kVg;WAhGIUk zabj*|7z04~Bl_S6#*KYR@YBZT8tImF**@Z2JKS}x#L9ci6R!W0xB*dv9} zcL`)hu2r}i{FlTBT+oXqE$p`$El>Z5(U>9wO0`fal;U1*Tl1b9<=-(!czwVXGt8_f z?Elo4(!t>6g=qqNUmP)N~Q7G3Jhy*7=XIjczL^3MdsI90y{$9eNI~ zfaw-CNnBN?j@SVUfZO#b2^X)Q1}LEd7T+Q!@HTH7!3Ll_|0!Dxg66US7ERMMw+5tP zF+nOgFms+`7I2?Up^0yumoG`JOE`{Y7)afFz9}hSEM|+*0L_SjUXZJc4M9K)3?IyY zdc)Yd>R|%zqDdV+hukv~M&ild$)6IVYM5|2fSdk$>*=ZP1jx*t*j7VD^o znsCfezz~Lv5S}|Lt;0Ugbj!@gNf-xLm2pX+4irEIpuv!h=iMrr1_Gl5&vA%MaqC>F zH6EyfCPbD6zyOPyzSW&q^R~pE&4ol+Z?Z#5#LsDP{gsRnGbNgEJ@D^cPH%b+Tur)Z zuIg&5$#b3RQCZ{)1FCMS-G%!Mgh0R`1cr_dNf}y`H}%=1$NyM^kKO(6&>i<)zS8%} zcZ44NWk%&$JbZIaxw}!_sT1lLsobeNSuVkkJN=0XMARG~c8P1-(&0F=#7p@`UN31} zA+9HkK9l`gmHshy55O;%eioax-Wz}AF3Qa-~zg|Be*r&AD4zb^DrGLe}^3l zl?-{g|F#dDH%NA3!(aT-^gQtGv(@Hh;K(cOC&E3>qf2!ySI=~tme4M1VsH!c;TG92 z--6e?BV^bRSS(diNzyraTOc4eS52iLBOZ|RACvswGCnJ)V=qMf`pE4ONph7`(IQiY zCIEN~UyTB;jsmw1uaCPW7#xq=gcuM_ZFCEm2AMg0Wf9bPigwHVa=oVNVJcj}OY6vD zeA3`M>LDs!kiJi&VbzUG!bKubN0P!kV(ebg!1@ArBrKBf=($X3o+HBk?azfW3XcHN z031iuNJobZm1rHfv|`zOC?|`g+DERJ5OZVpBw*`-cYV%xrKz^78Qk%iXO{_HaU<(6 ziTq8C&rJ{23M3#8UBaZJn-9F^R=kL7xr^1{`_O}iK4;z; z-S<~}?Ce>Fe1O}Q$p4uC|2apHrVWth9P3}#kyQ$0Gw6Fs2bSf|=7Rs@&qhE7qYe|8 z*))g!wwG`U$dLLVFNV`lu;4qZ^84g+zIhH&0GpIH& zhg1s2a3a;Sn^$?YpVGN+9M$_W_?`^WWo`t|*S2R~A9Ova%vjLV3e6iy^)7{BI}6_5 z|Fym=H!WHsCh*|qkKfTykMQnXia{&A{6tdZHe=IT&DfD3T+YcVB~yH9u4o}d$W`aI zgY>_IT3Y2kmx>^E&5H24xjx;2n$KCzZZT3PMSy`r5HR%-m%)uuLx%%jGb-eud$_!n zE!M}W%h?(~StSF6lAs&xF2WR@v6^Q~`XfX2+?*EyceYGE?j1H%XQcylZKWsLye>KNl=v&&*lV5ZGW^^96wtFe`{C8F~xk%;Cu*()J~I`)W)kVd2S|Nc}L{^JzJD5 z!`%7GjK%%mSIyhy-PgcY(Vc$f-&~&T8`(2cE9F-2l~UO5cl`Os4BB;w zLw`_SKDHG9=CPxB?CL{a*9VslERQo^v4h9OQ*16wgJJ@@_4hbrYljb(-H=3t_%h8UrboVD{y%MY6$Z1OnGZl>@O z{ODbAn%qP`DP?;!*ldD#=4V%Ej#2y39;^n245+o_u813zyn}Njp5ws{dC1%Gkl(TP zX1LJg?lx`XP>Yt{uT+ak1>nC3I>>Bk%>$d_$(m7go^2 z!{eYeVQaP1`W5+MA8V8F#vey;nEXTa%=8=*^DW86FIl43%bT&v8$Kad`L8lpJ1Op| zMv8Rrk1x8*gi218xU5``E%a<(roym?&MQY>#C?Nwy5TI?a>}D2LHhcFI%C1Q7+BKY zg(Zi+PI(LLWIBO_W?ATiPW&w*{Ga01tBSG9M3N*GjcFOVm(4rTk~{*kNptp&c-Dn8 zS8G;;%LVdUBW&d^uKW^?nytaO0>S2XSjd&9YlCuFCh)4kPx0~vp3d`oAy!b?RkIDd zs}}mqBpIWdt~_IbaihT^6yeU%p0_rtRGYL99)0JAF$ zAp%W57j2~=KFNX3=#721t5dpci8#8KskRqy3FYj4vS&eZb+o10Mh5nB!ycxt0Y_T z>Tv_@`Yt}3%D;_hxrkN){Y`a-E$1ix>!?{Ff~RGrYMiEhH2?F@Ip@&ejXp7UWqxJp zHl^H(wu2X3qgD0pM(9$~K2j(B=kKSL7FK$&%$!mgS~--a`1v(M9bMl0vc;bC#)O02 zG=u+@gl|FXn3S@VQp?c^xihc-vDWYqiOO8Kqp;smiPeI}77d+vDC-9BhtPOIZ3^6x3SI zZuTVSQ&2&+y!SJ&@v|>8*an~JHCd&S8-=$Y#xFK(7nLk~Sh;a;yKR9zQHGY(p@gv- zD}BkinWvJaZh_j2UD4^PUaxE)uNA!3B|wYS?LiPF69S_u({0b+K(l}T7F%*x8DUfa zN~hP9PMn6$)W+{0aR@cFjCzPtWEbiYmV{2C?*GUS;3-})uj?9gbK2(F4~-}E60*)U zP%j=^WW1<&so68`g0krC`pn7Ddl_F1uVQ57sP|xXw2He5+=U^#Hy1BwI9e*IyYiZU zNBn$GI*Yo9@(5N~sOsdsEk&(E6c1e&ZF_@B(0bXmg^zJ@bt+dDuwVndeC7y)fwQF0 zm;N<`U0@|xZAbt~R94r91&!*9xte6&wWc&OD=++ zz%D(zFGC40hY2lyTjZnn-gKqUtQ`Nz3^kA*{9K1AxB~f?bYl;N9~#s0ow3W|ix24P z1oVuwL4IcU8R4?5`Nd++I1l0+re`26Hw^QBW_X@of(lNDeXIXAAm5)BFy0pH9MZ2< zoDx;WS~ALXdmLz_TcvU*0FzdTjOmn|&E?OM=QgNnw+g$R!Ug-yQXE-(Oj;<7_465B z!>k`BFj!`;3=j+}vzj#X$?^W!nu#1+B3a#K%oHzN@+C zG~K*S{M8rE~-r8 zntI99(wd^1u{Ix-?@pr!S05xbEf3w1*Ky(Yk6|QFAj|cLK9@wi46-#5Q9gyuAMGdO zMEvLMX49Rg_PfFYZzPn~S6p-PEZAREp7$!LRw%5NOWesL5DB7My?L=ur_pnsLp9`; zo&#@Ho1!Ior_hiT_{^`e|I(oA>`zN8-2PDsfVs9;|T^4bpjhW?=MhWTsu z$k)JBv@L#~&0{m+Aiojw)?(zEYE}rIx70NC`bEhncm8?7pQpJSky(DB3_H_!V%gW# z*q(_`eMMHR0dV}Hy%+03e&dPTml@oaKThpAvHb+sW=D>J@Isd_;d|oHMb#auqk@;# z;GQru*9N6z(198AXEv(L6t#oIA^3UJJK*H!OVDx0bGh>$jj=P+GnJPw!rJHd{z{}0 zqg#%>{1dCyLR_4TJz&%8kDLm`5sl%?EztaY^i$d`I`ix1hLnlOxF`mC4LSCTJF01A ztdx9u=rlkMH;A-qjL}KJiFbbgnQrFENZW8&a@{CcjKVCyITr$5)uCvXm#L9u!{hnLmk9I7L=YVek=ZBhCHI@hif`)2RKkjC0{wt<=jDM1YI zEr}nx(M78*H2mvXwkv!$zf`A(>mZsvZRum)2wi1 z8m_q+ZILaeQgbg65(pf=I}k$csT3>d=VF)tzUa~cs5am?Z%9?#$SCDf$vfpu7#Dq! zqET6O*~z*JLJ1$5Q9bo`?Cd6llpx2b`%tD8uxOlIZ?t|Fy>CEwVodKys%qh^Oq2h@ z*=L_VaxvkX649{pv|qc^oc8W14l9v_;&|fg3(>4#-e+X2=I z3`H>(gYBMq)z?OQMcicy-KAIbA-e(}j1Q!ZHWO1>gVydA)N`wJJr_KVOwwvk&-(KZ z&K6?vs8rgNtPBs~HSGv?-G+|o8b8&}4(hEhu=N-0HAQ|rVBQSX5H%SbOF;w`%G(yNq8FZ>|EAABfqv z36H)jCNNdhPjzLLxj$3St9d+DKy+~HVJ~920m9bFBB>69fGNY%RFi?!?$QdYMR2<5 z4ryzDRlW6HS~yEy9HuzB5Z7^M(I>>CjGsxl1+SD5zCBiblv9$j4C`=}FvCv-Dq3&} z15q8kVY9g|ZDixd0a*dHEUAj|%Rl=oTgL8X)iH4e@H?dRR`_Ye6~{07%F=aQ1e@0& zM!c0g9%Mv+>C!Y+7KmKDE8G5ywX1wVIP7nDdpfEhDqi1DFqLm|P3gn{S%dmGim%7T z!H9+4$3fHPT>#MyG6dc7Y)>p*!N)n~0`CDOKz=tLhv)8r$Oxw5LzYbrCR}muHEVR4 zd7UN6*gLN3m5Ne=19ffJmrfh7K^Y@SU>o}zL)~?3-3u?)+*!Fg&R|=-Gky9 zWRVq7^FbQ->sD8j1iO7(cL52gLzw4jOmGFGLmr)KmV1I^MoeY`I4rMMCoMb zSkqHcJQrSY(SE%S4GT&&$tZ3x4b;=u^xPdxOFX(nt?H)z3d4A)8&$MJ9ypviha6Gw z?9OHcT@p~HrJcFyVxbe&1~P7XKhA4i!d|fUbX-;mY~4whesTY2^CBuCdPp&diKLDvG*ahOc2?}N%@7nPm#*tvALr=L1s99+|x%_A0S;bv!$+{ zx`WvMa&E5kxo9yxYAUv`zrf8uL);AK??@%vywTR$gok8RMe+lF-96VA@1@(Ry_@E2 zs={;?j<5zAM`6t%8+|Y!5*YyY4kG;U}^?tVIpU@7@(H*=I zwtu!rTo8TzY;yl$Z?){y@rkwXjQeJXfGjO_o~B49ZHVgj7QsC!+7w%6jX6w%u1-`b zZka*!>g46kc-4FJ8lJSQbAuqVkFFISPYVlghD_o2s17g_yxbQ2l z;No~z%hu&zdSAt)#|bH^`I7BNNA8=G)7yB3F8r$}NW^;mSFW~k(JCoY;S0CpbxV%g z=Jf^u>pe+k(IF9xH?{u9ekHXI&Q(9s0*`?H{8Bw|%Vgzq65O8&7k|UhR*nhnS<@T+ z=c9%5+hy)|b00nRe}VuHA*j{Ki@IS#yV6T-RZhEZWKIgFX*Y9b1oQ zZcl;i*-ALRBdwyrbvkG41$$oVc@jC|AoK zMP9C7+C*)?u!E?6`$qRxDWDbYMbHOR=LW=fhAD$nZqRjx?zGhE<__ytEw?4b$Zri7 z7X-s=26qioc2&}$^2a0R)$|mw#CydWc17v*vn;BwQ-BOPg3f6=xqFI5<#otFfMUfl z4>X5cnpIn%@`W1;{`z3VrL5sG_qp)`_@;0idFpxGm*ZEreFjdd=;{#MG(JMP9dwyM ze+E$`J62=GBSx(*`hev%aO{QgOi)Di##lX}P^r!6J4@&5ST{P~&9hX=y<);-0mhw; zW1x01n<+0VhA=mY+)RZ9BV>|9`P{TB`XXXR@YKd%CDVbWB5SPvbB#3?z^5@ab1ysbi^Ed-3N6_mB!)nI{?_9ZX z;*Q#k2_Gk`RhyIDm2%zPOY>f0XeKNJCB)IUW#awN&OhIE@310-VvOBvhRU0d?j05;_p1EM9OYMH(H?lrT zy@9UA7<4tRH3bI`uVR7|QKVx7XZ^Ah;?)&hkyq(-!5f1Qq~z#b-X>Cbo)ypYa?^LI z8%-+3>qs^B_s5!uh-i`B*&OiS5WYr}6owg4L|be*QJPQ-UiO(u6sEy6je0LSAFZ>V zJNf9#98BCghOC8$m^yAfsM7vu_u7K6UWOby!^PCXw&iu)%S7hlX3SicLl>M}WLJ$0 zEFCUyQdFIJZr{CVg*VQvlElNkf|M5~WZ>w?l zP~-Y*Y2Mv+*@%s5t@2YX(dyOEQG}M=b%Se%I?N|Tcpdl56a~yb*TEx6~87js%gLT;t%=x91|DCrJk`wX^&$)S3@%z!tu{-vfG%lLj z-aX6jvii%ufnkLETqH^;K2fs%#)+lyJ#nEn#hC(OpeTc@+JH_qeI}r{OhFB0t63i2 zP-Va2UCiu?W|=KB@32-siG$>z>J? z;D&xbuk*!!Cq#(vn|H$o?{mOY#$@>7NBlLP!(mH*KKp61b}AO>fAUhu(Nc}$j;3$E zHm96T%Sp4NZhX(k5DlMUNYD(7QH|4#8WGZBbbBoe3v&WnVA(v}o|aNCyV>? z7O!M8wV0=I=k5oV4+mP+bxXOqY8`jM2BFb8unFwB5tB-zZXKNr5$h0F*qQ01BeL3M z$3Lpt+KmB(R(iXQHeanR!!a0_R%e$Uc+H>q|K|1y`(3&$G%#k(1{JENA)8c<@lu2^A6rsn@3!Q}LI6vB~Y9a!ZV`Y|+%dmJIHAI+1IAWGYvq0`u= zlhw#qDcDr8R?=?|Pn3|A1O5;h&f3l=-`9+o-AbDlYGf4E04hafSo&1l>=1`&${W4r z=uMPXhx=lTi#=O9$SAB35ZZq<`%pn)iSA1o?EjNriA&=7G0 zFb7qDbGet02tua^9RKJ(;4<=&u4o1`#$Y0IaRlR#0O!J!m3nTtBf62tu7<+MQxPbO z+Pn_gyqhKzJApB#)=`*uO3Cb`ePqO^lQdsK0yWruRDmqgMK_UQLAU)as**I#dA~U9 z^x7jNhKknyQB+Kc)mo~%h$v1tmASb`LYL{-|)G1`If}E6!utDy0EG) zTP(+p@ON=~E=-|a)T&lQ$-T>Wp#%Br*uCe;TIIP*@&Wn&krK?g*zvflPc@8oO!~)J zmdLk%imx`u$8N4qF_FD1mcyPR;z9Lhnf1>--iiw->o$mpoXFKRRGEH5+WrDxtsKs@ zH6#7R>hMd}59yviCo)5gjniwkF zII4`V^DaB6moWHbXDJX`o73p)kH(4SQV+A>4(`ubXAXN*GtX#4&%N9Q6Z3zG&f4gv zE|1r}nz6D1g2%y)~y^GD330dm!&N;t9Rb9xxL=v}uav8ka zeDlR<*`EXA_KL4qx@qXeOx2CL2m|Mf7bfHj-y2xa|buq0! z^*e20_50lP9ZLk>O*I8>Hd^zjOS?R$8$rGDf~WG zY-b8067RnNS^OY6=tVz)nz}2O(qYfU1Y9q1GIN@&Ow;qMpqUY~Hlqps0jKfGNPg<@ z=4__oU!q>4JMlL!YyV_+j8LTfjyg?KnSu+vTw~hhfTvqeNg?N=Z8KkBC2Sx)X0I)`agawWQ+%kv z`~~Ur&ug%qRl^FkoKIeC7W+u=WYIePQ26o_GJ?>%uC$Pl;UQ0rJRXRn2m9Q-ulZV5J}}}A z-?FzhSk{K8`)xi%=LB84jTx*rgp(x&O3zT3EN<_M>Fn+9Ra5o(AUk532P_OYMia&0(!=*|htdePn|Yt9IoOhLuTD6|&ZOufE>7 zpnUT(y7Y0l*Dqp;P9x+q*=l#^-7YW7HdE7%$ccpSVvWXBKX;4Wo>Dz~gc1gtzZRVUkGPIoYpO;n?ZshSXA)CRg|}&fc3ZE>~`eNl28{Vfk{cyK}r9 zll`c93f&y&RUvNG+!P%8pt*}K_S5rFnZeR7^vZ{7sR~)UBsiF6l-0$f%D;OT^2S z;>m_CqGQp-iB4P0^28t`;X(T>C95>cIK|6EkR#Q)k0##e+{{zqQz<`SyFA3jyGMQT z_}Kbafk)?a)7_2koGwQvGoPEpdigo!IeO)wJA;Vu3&HrbWKqq4pZqjgJD&A(skUSY zhXs=d;cz9F(z@M$i6SZPZ0`T`yMWYfxJ|Y4NjCSQ6cV4n;diA4@nU0#&S9r^T9#gBX1Pa69=>flgHhjza#n&o zu-i1wW?6HCbDqwLY4YD1IA|t`Z6& zD}%alf4dG?D*o;pdl#3ZJPV%O z5zrzh3(1xLYO%T`3?teiObTr+AsEEQ4wl_(E1JwDWY=YkINx^!XiSwCYcz6ce&9qj zEY>(6xAE=eoc=qrz+#EwXRm?EbxESeoGeks*VysJr6Bbbdt*KvbDwJ@t*(9fY+?b? z^%|X0sI|i$xNsjaI-L6SzO-2Vqm#L&`LXMp5-0F*mxZ**pjJ`aY^)ytZZd^)rocnn zUDmftkMj!bIFjTj|0U|bH=Yq(%wF!XUw1A~ciAK6FqDZvIBithiY*stnQ-6hcK_JL z<^yjPCEZluB{3JvC3_Sko=-uLNDt_|G0AI}A0kXVi==91S5x4r+b|&TyytdV7uSQq z*B&yfCB^1buyckB1+NaNuv0s+L=4$ogQig=2yv}Sj#D{@+NVpS@tJiT3G0uA5;xUy zX#}Y8S%#Ag1)Ad&UKX+>QUQrQ`9I$fSYAxNQ#2Tedi7B|{D>f8=_zmiu4b8g0^Spu zEaI5e+~_TDxnapHYq~UG8$@MEYR%%CwCPxp%zO!^>@xdK`*g!e?P6ktAojdHpZi6Z z8f9}|qmv82e}93UXz8FzPrf}V3Hd$h6aMb^h*{rVp{E*ehZA3TadPX63?)~yc@kSU zHSLOFhbJSWi<`(4W`@0+ORXcumTCvpMcHZ6k@x#_ztxJct{^wHSOi#hOONBVT^g$U z{v}e){`=RxQ*H1#JAEtgXa2+Xw)VodkMi3n_XEOKD?}m{vCA#uSr95O+7iKgK=mb) z*kN5P`y~HcRdfWoZy2fn*0+Er3y!7Y5qdv!uf$++y;8q?3KX3KO5BLv(mJELsErAW zo$=AwHE5juOc^(o=0vK%A5r%fyD>t6NHy;AL>PChrh99rgqQAmUbI(bmueZR&rXup z^R44WtJvX|uhgZ4&n^E-r~OORS9_y)H9fY&m41iA=pCXrG&m_XGbZF)MdM~&eYoR> zUA1tFciVSSfan-`vTCB3J(KX?;VEY46-#IHZHiaM-%aj5USE62`w3$IJt*O5tSMEh zXzc6mvOT_YrH!SLzJ{RXFO?R@D$=Yu&h%ZYSYL*Lb*H7zptA8kv&a)q{oH{bUc8Q{ zU!#+BX5RxkIjs>BZZDNweSwjEPxp=*aSdP(RSC&};EupIDfiQ*zgpG<-B(N|w&$eu zK+Ua8m&NJ;2|tTyG4YNhk%{hEL`N4eA#plkctgxU=`dmNiJZi=2W-=ov%Q`+{x!#R z6tff1@Z^3>K>^*HPuZ9Vnlm9>WLep~x{%9o{bB>wX>~#~!KFiCCg-uk0l#LbSh6Zp zq?^?wn=lE7bWE0T^+SgPdX54)(Njs1-;B?rV!F>_+4h!@R<*oEJfr0n9M-zq8Z`9} z!YQS=m(6}f{qyO{Ma+8gU!uCOIOTi4vwbbr?3-r&Jrl#eva<0ts&2u*vRStOJt}s; z_e}m@qD~?fuJ5jl25@qAwj;zZ@Ry8o?x$7HBNzO%l&=wM%l8_?j2XqLv8DQZdo! zsQVrRW|H;F%>xk=V=mz&f>Lrm#6*n zsaHn0AB4Gc2@a+=K+V17CzFwW^~E}YUo`4^O33s)4<`ORf(H(+vfvFkPzPF>kH*tL zKGR5LNac^^N|O_%1F;4z^(_}iq`@@A0*l=3vW|+#=tNLZuuyRPqaoK(Dl%EKy2P(l z9A(dp61Oa~O4wG0MBOK|#5t^|D$vR@^wco%JMPRKYbPg6nDNfyC%zpcQdNdoCaI^Qy1&NhR@X)M{_Y|P%OI2;-6Xmsq+ZIi^D|n9esyBcuaCD-7z+)d>9`G){ z(Y~67S%Q(>tdr+w6mg|j(c?UwRsEJWhvn=IQ+C-6i14Qq=Yjy1?ao}K;&Odi@NixF zHd^_5zPU9tldw?D)`+|QFg%>88KfgY!7+E}G^*BI?-XAC#DMBD)(rLL^i^)vtCf{c zo>8@t(SX^rTs!>0_rTWE@7Re*x|+vjH$Mj zGa8|Z>UP=5^9y}>hqoS76F_HDwwG`V0Rql&ysmB1T^3^HW*+x3s!y@RZvmA?E--d|V*>PO2^h zzWz&O-saQroB!n1GI4ViQPR8gr|bl$z3&_UEO?v?On?HHW`|TQGPayx$AM>653Avf zgTvZe&@rolPUh7QB78-v&OOR-4m&%)yu}l4^~_@=M`O{6e2s9ad`hVa919OSV7uGQvUHS zRf7sJP~!=Iz0`t+Z}q(;IFl&(DnjoEK2X10UbLq*VIy?bd}^o7!IM+eL)EH#bn2k-XnUAa;Y(4z8=sby3}qB?OnG-&1Rh*|Y8iGgB_s>Ir{hJv5hAx|=p)ICpH% zI%+OKPv2jY)H2bZ=B&&9=ImY2zeEc^hif}*|DmF!Z)JLw!FN8xvqxhV4eLHVr4V_Gl%-&4E4i~CL`KHG<6HCfM~t$T zN0im1F%TX|H~oy0J?j2p488`aK0IbZ{V1cc8+Bj9d(kp;fK;m_aP2AZPG48Qj!al* zRPuv|Tkx>6Tb4?lzHL&p6Ew-p_L%*}E`@ACj=rSlt(2nPduJCd4y{d-(sV~(I&r*!3EO#~P?xLfIcbmBMhBf!lkKolY8^PS zgayMzJe|_c5_ar$BuCNgti}dF?@$KRN^{13scxJz`}bj~kb%TM%&N!N(&AsFQ$7Xm z!9(;oC(d%xUf*L`88Y8o6>^~#G2YsMSk=wq*%P14*4LA)%+)k%nkLe{=GLnY0@Arz zCCs&){!7G}vzq)>!96JGA-kK_-#)#nw)6iBra)Q0EM;$fZOe;>xTr?MKXH74@&lOM zAT%|D4K2PFN2x59;sk_j=*n^pa=TK<$gMjOs$l~%g~)=%BZ62T9&t5=xrFa5_`GUI zpn>P^hxY#fkNBV4QuA;8N7Tx@ls_|Lafx2zFi@w@ij!rfb?#XFqPF57MRzt7Qdv|Y z*!{;NK`Y@cyHU0!Xx2~Kw_D8hOi$Io>D-|B&ZE@lNV}R{jJX{{8yzu~?Mf1ip_e+= z9<0K{YnvMyyn6Sg>K$A>=(&7`U6s-{1T&X)Nn~o6vpuSZxR5>dI_J1=aYdkF)=N;0 z4lMmjg5*W8G$^eb8XAg?m5FJd2sEjNqc+HUjRk?AMKP*^zAArU{lDTqs7@>Y0EjEf zH^z9WLX$KrQ4s_YmRY$uQ#Ku>y+Yf#C|uMWIh{nc66W{kWZ zpWR*o7bhaTdhY6Z7Ua^)YCZrNcz6qpKE?h=FBzRhF=j7QOqW{L%Q~)UF?wD4t2WBw zbrpD(RT~v2w_yzoq+aV1@Mgh;ZZ!&LX_6(aIfFF~UP|f}g2E>-XAn-fuC@T&LFGiP zbU*PTXRpq*j!QLZ%35|7y}2Tl+1+WmYxy#|_{;1h6yqtYiMHMo`K^0{K||baX8qMv zT6kGwmpNFCR!$F3?a0Zd{b^F~K=j(~FBgg5-9m=P8ZMqBzk67$yv6@yrqYV`7^~z$B|0;HI{LUp)0RO z+hCO^o2~7N#_USFjo}sT?l=J&s<}g@TkbXvVhWCBzy&$IKx0fB21R)oU7UM~cz*xUyZDXUWJc*M|@)2VHo2NTAci_Zv`IkAdyiB~A>5iTat zVro%GA^tr^>ubmFo#ORFi!k#mX7{|nyxf=WmQC6!qTJK2BI{C=A#y9dJ+0LM;~Ngk z#~P|!?A)%SZZ;BQCTCMAgII^79F)|Uo4Jt{cS{!o^AqA|lY~>AL z&J43hQCx_(O)EoO;u54DEAut-{y_f#Pz2C1hQH8-Gpc0WjXF)oBNN3+e6@AzKJ18` ziyqhj%4(L`q7z9?GV6PD{E!<5gjTfO185==UDmK{HWep|p?UQ=7A;z}Z(CN}d{B6{ zPIENrS7>!QQL-?wI6>rOW!H+CH`$!s8q(BtRHgDT`gdu#>|B*wPB*u%G2&~jY^oy#s^_Lo&}Ri@vAdZxCA4(!^3gYAF&7eaS4FU z?iJKOn_t{2`OVF*7OW}-;~ue9c@_SmSGi-7R2F8{YQ&jUe5KZQ)Pf~dk}ZA^4otOo z80i(9*uVv{{>cVc=JcqF zHol6Q>fms#9HA0D=bn%X`b6}3=gvc<_( zib3=!3^mO(A$k$fowsw^6DjO$+Ug5Z|#H}=L zwQ3eK6H(%7r-*k6EaiLGSV67Nqpukidz@;}R=uZFhII{#TH#u^Cs4-i;WdyB zC5Ty{);?6{3T~pswO)nyxP37xD=c0uuTOZ&)nqNRz=2~{tv#@vyK6Px)4w~)eGPk@ z2#W`yUBO&LgnAF`jNIor&Qo*l4MYBh%*=YD^;$%3sd0^)d&hM%zN-cAuH}XhSPJ($ zV?k#b#sTM3USYbr)Z1RY!bix^OD(XlZSgavFDS%Rn&j2j%3ENle&fTr4;t0%?h)Zq zzB0=KPx~c{%G&D)w%96+8pBO`QRMwkux9xlq^m|}aUjV`n)@uc^t*d^XV{kNf1o_0gt*{0&+gUn;BTzdHm)*u{RcB9B~@giV9YbVPZ>*X26V_eEt z&AcG9cEX-(tAw`RF;JDQNtK{cWuYP4%F|=)>K`!ulew-lt<|(|rzD(BI%Cq#aVbiX zCQfqVi?6cR=-E8#>on7CxScPQQN{_I)N93-@Y)tg<}T~dxz=()wN!1%Z+ME+TVscvhLjcqq>#2qg=@hcQ% zW$itve9V!UZ$T48m42 zC#zx!_`+=UdyM=?Fo(*@Xk8jLb?H(vIf;#Xr?+qtr4tJe6Ci#UiXwFEZZC^aOinf7 z=(Md%!bNM`?nOH&oCTKrfZW$`pwzzo6Zb&b)`qn{{T%Lb(AS@-txM||x3x8~#r-zl zIQG6m*KcgLRX*Pr2;3^AXhZdvn^r1i^((TQrDgl9ezl0sF>B=boi!?P@tuV*F5?K; z=wr~+c2z69n71t0Fpg7$3Aj$6$bAbZIm>ffDmDGCy>&I~xEgcvTT_&6YjbmRf75qb z#l2pYmvtWZ}w`9^0dWI^-&&D&Q z<)!s1myF9=axOynuD$}xe4+&bITg?kXCbae>y$but$&}n^%%f4K9BH!Z0#I+W11H8uG+HyO7#NB2yn+>?qY`m11!%91HXb2M zDyxJe&ZT7oa3**Vd6-#dfqmH*vUJ>n2TZvIm@RDlGLb(G#-E4d2KJP!6ew=g>GiJ5 zEo%F+Ym=%3mbqj#=~A-r_!d8LLh7WfyZ~c$->*|Xy$^_fGs}`bJx;Fn5&1{?(bI11 z-({_q__*mv5$;L`S5SO|(=t1G8TkI^7My*)Crw(}N5lBY&94=3^ZoCmQCrV%#u{u> z&D1UPxTH-^*fFUBX>~d1mf4)8eiwc}fd}^I`UCnl-(3Rkt^~U(%i$!=O+Y+e;$IPpFvLndS@bEKMeK%Q30W z(XsSiCeU z6~#K1W>$}tPj;8c0wA%9`;Me2#;+MZ#ZTj@bqB^bhGxTiF>)1^mzW_`PCA7Fha5vo z2tF}ggj>w+BSL~ZcH*=QCgS{<#q=NO6Ttk}=2MR@>bBWA7CM^s;}Lvo$DFRniX9%q3$QVScWRR<6oX=3l4}sDjxq|@I;pz1c%5O$_;?t_HXDO9hQO27$ z$Ykb~o%5_5k8zKYO--4L({x6(49d={5OnUM*;yI5-tQECq!e+2tc_?a7r2X;J;G3Aq2a>aKe*XZy`uv*pzc!jCM^L)ysm1}QAO>;y5g3JssNrE9ve>o7qQ)l*v5vnPPCc1(BLyj~l~B{(5a3+#dT5K&=nS-~#=e@P^-M4utO(sx zDa&SMn9ak-3ZN5@>YBM8rpBvsKkCL*w<7F1h8IdZY>=ys z+dIZgaGvh2KIwR2T=>v$?G-$0L5#_mSkvj%#)DW^=iXb&Mqyst~NDz;e1W%bvtgO8@zjgjW$=8 zSGPquH{Y8ZaF>JOsJShK0prri972X>XF-Xj%RyF5W(0l3d|TTr;SxThB6Ut?5S zRy+AXz(w<4kj zK{C5?7T0{sTO+6BWgo&=#pzY6{vT0;rsDD#7{V@|NMqS{g9w~jX_ev1zlBS!|)P1%>Fl8ivb zelz*Y>NR3S>en30R9cr%^<+_Ah9^xnl&xzT+}Vkf5bJfL_J!`Zf;uwMTKi=*s#UN*fdtA53q#FvFs@Hg@-1jHRNsk zxeWql8xAf@#KPK+nT;yMrBv7P{w%h&4b(8!KUKjIy5=I!$Iz44?4OO~vo}`G+vjx+ z`<(L<%M9K*odnP_Dy$%P)Kt*`u|x_jyNPw41$EWr%dRXlzvE|(5I~$`uHZuo4KU+B zaVO)wFz|Z9c5?4^)-sEpyky5;sP468dXB|h>vwh+6I*OW`)T8#z_(S5aE&ctrB`bGSV;PH?{PFXzHf7aWvnKL5 zcW1S*so;!{#x9|wy({T#B4AYuRgWy{nDM%vLrXGkXcNlg+|%26_Vur(zFZqfql>kC zkwGUK`%2?vg-)GWU&Ha#ElRMB7s|)3H&nt_J!Xmc&9L<>$A>dMHTN{+j5sEit91DJ z2CET*_KKRZ-Q#2N8mJ4Fwq7E1v_VUqPL>C~cREp|3SI@`4WXwGneq~_v5u#8uOLpj zUhw)>M}G^H9;JYrCU407!F+v=u~;#Jmaep+g`AfoHF4$lTXE?*J={*SipJV%9I<*{ zj~xNzcUGm!>)Sml{!26(9B9=##785@g;c~-pv?`Ti=I&zKo3u|`(v<0C*vt!?GNS~h9TGpDHgoK{x*iY)Ww7M=8RkM9$U0R~!TWqTXLcDsZmh}u;i}hz|ZcVKcu0+vs zp3x;$szdg)xtvj3xmkj{oCw+vF)z7-Af5r^{PbtX7V4XXE=O|+7OIZ zsI=TzVq9fiKe)@%sF^ra*K*d21RiBa^pD6h{;v~Z?t>oYWV~{m39q#C0>!Tp^68al zp~BDc4#;`eb^xD7gJy;;Khhgt6R zJ=&1BR%W&ypkWNM`+I3v;y7%D)Z{=m%thqq?ZA2dT#tIc3pf3d{*Boc`R4p~A_U;kMtnfm7zm7n+M<*Mq>(lNy*gj5)AGUY^l37NgnVh2+BbRNdu+e@` zZptvnI`Qz5xl!=5BPzT^%IfyyHWqKU${;wi3e?G>jkmGShZUnEk3kn=cU@EV1 zs$-a=LTXgKy7joH%&2lZ{_`h1BqXyc?Y|kXDLmjh|NS z$;dL*S6&dUO59W;vMa7lN(0#NSCwS;6_}XS*Bc^=1NB^Ow^zK!%gSin9xZJJc9!97pumh=)fJfzt}${|6|zgH?h|@MsMKSo1=-C_2};gD&juR9LyWVu(C&A;nFRM3soW0~iCFGianxT5eky!d zj68ae?2JE@Yvw}r6AZygG z8|;GzC75*EOir6#$46KvVM_a zT{7Wb>+rRsF|Qfi*+bQ6rTJL4t(Z90-Fo!e`5v7@j*E1Wn!3WVfEZN##>lY-k*b>vu6;+=>ezi0v<`U>X$-kRP?){pV zjepvhVe~8%Uum`x;#rau{I53Azy_Y&+ZKxI51NZEw%cWRw{fSZW7h(5je1ZYFS_qV z*Tli4C6`q|eyvJ}>X}bFhUk>rE5otFVN#~FQ4K|qrl;wMGEreJ>M`<~4xedZ(`l7q z(15O$h)HKq!$RF>5Ju~MTdZX?_t~u;>sl>n97|MWB z4W86YoMkuDilumpuO1y0MoC37)z!EoSvuo;3DWkt0BUYl8=3moDX7;00ND%1o*bg5 z8P;p=V1M)1X+3OjAZ|G0KE&V5zXGF_bXu(1O0sLAZ_Bdv>G>Yx52<7D$xL=(h2PmA3b^ratDvp+>q2>!3bSjHb!i1XKp>D_XXG=lrLY;#9KC%zBOe zP1aqPk!(~eI5|;La>ZR!D>_TAtQ54FU3qMt!OJgB#}c|#1%x8MQNl>wVt`w%USaAP zt}VXS8mz#rJ64(4eqPu`#;yvGOkWgQc8Z%^g!p~MJZEwQHbYvP?KD*mZYY^KG(ELm zqFBz>1j!HD%kBitmSN=B%Y%}osLI*JwqxQSb8C=`;XaQEu(O{rz#GrlLT01fsVrY{ zM?oTL%B&*1!t9$fODOgxrvi_B?BtIEnxE`&SQjDG>Gsb!gXp??y=kJPYuo~?%mRiRpo##KMMYBPnF4t1*Oe3-R`^lLnd zzvdz0)~UqmNa5F>=kgBb`FekgzbL8ZeXm@jy@s_HscN&A4r*{s=DNjkd>DRHsC8V9 z=aV`HS1S6hFS^5A9HKSooTs{5ZL`cC0{ur#_9VRmXC4T-1j?y3y_+2O{yU?v&gZosqPxaelA59@jX7h1PB-Q^+J2} zRcir*Zx!kE%BfTq@aButXymvU%PXZ8afqi!OFh;yD|IXpKN!RTy4_@cH(?Fc@|b=p zn9$~CGW*>2J84BIR;lnvBHT=Ct_OXNqkswd9&s*jT$5m|V(0UGpJ*SkY7>07Me z5;VxnrD3}w$?fd0Rf}D6+=^*7b$UR4sg-21=dxp?kTGv^m@((E49{$UgJ!Gga_ zEcoLRRff=?Dw>+{{{YaSYJd6bd;#GE*NY!eFDM3=>9yp3-?eK#S<2L9l4dJ#v8)QX z&bc$H(X5+Lr0BU_oUWtUIJoqelyrp!YYIDyJ>KQlg0@mk@q7V3O!|aJ@j88bhkHe+x6Vs2l}V$Tvsmk%Cfqu>D5`gmoFvCis03CD>J}~gWQNovTz`>2#d;M zx?`8R>kDJ|Aw;ELK8fx!teIC@Tvy6=+=ig-6ZJ6A_K`IFe@e@158dZ0rzo$owTS7| z%CTxl%kgGZkJNCHk6OnN^{X~|u4B)2mdj%X9lFd2^RaQB*3!eLxr@`lafypNHH&!a z4+bD4=!lY)E^$Q4URd{dvbQ9m{W_JFHAK2A8v1`4E?mrTJ>4ArO&ztBI{baT;M2_=N6VZ?t|kix$wF8EfZr*Typ{ zzjnEUmycAtB`k<84u>&Hu5WPSHbdP0VJ|lHOYF7e&YoS zxwGO|=S{ViR_YdAD8*qCu!HOab)0@pQl@6k`mYb1nJ zjg*TUCf1ZEa2$J>;$hIO*I)i6zhE6!uF){Ba=keNCM78mbg!9P#Qq;oG1IX` zTv}DdU`{_iCUHFV2}Nef##q_-O2?|;3HZ(!Z^v*{#zTb)m~Ul1L}J`idj0R3ym z6@9wb_dm*3z`K5>lx>*$2t7CIzJd>3&CSjJdmU}f$jNHX9uFyQSuJBzg)(w1ywy)K zJ~Fo?Ek&WWs$*ufENq;Jg$A*{IL$v0$EIf6W_O~(pdSv3?BT@}d{}(A#9uc2Q`{!GmSI)x6B8u2;r5uFI<0;kiY0Vbp_k*t z##q+Wk@N6DJzEGy>r{qrxer>rvFf>od)(J%w<)7@EX!OAM#3z}RqiDmt8t?ADhD4B zd|6rKr&8czV%K7OMV%>M*z4px#Xu*}?uVHx$gt2SP85-;^*ZtcZ~p*2cPjV4PcX1R z_HsU2e$qbmwI^ys>$rp7S&9h5t*N-p!r=woU2B*qxi06B`fsfWkQut2N)ljAu{Rn#Nh;!z0kx0vxn!b8*AtB612Q1>O8^t4%)Y zn(S%#O~wemn+X~IKgSr`-V&X&a}VNg&7>+J(|r%lJpqCPHxKkg>PP-Q9x%M!Xv-E@ z`6nL>iRyR!{i9he%c`km&2bgH_*QFuk#T4$u)&Oxohb(}7}n&K{TmKvF82~A8icGN zWeYLfHH~iT>DH|m4Eqb&W_82bIf>Kp`F2$lDb$KLrOY7Dvw9T;a&zP7S~$R()Ze_UGUsw)U@$+xXbP3SAC{M&)Ue! z0-Re`yD}H`NqLRPCD`Iuty-mpRQy(rI#uxtc$h;c64uGNk4ebC-0T6|<{H2GAISRc z`Jc`}Z*Pb-TOfLKQ@PXeZR}i(IPa8EH5=$L&mtD#$|Chg0; zhA=kd94wYpz@b{I_L-dT%j~&tY7}FmC5wS;vUJoAxKu1!^*kiEKMi5($S2|%FB<&U zTN`tQQEIfr#I7RJ~5tRHtJC;{g!!8w8-$D=8#ThI)0;3 zmb=(TxP)c!_W5Qu9zjpRmw$yIQG-trgNqXn7eg9>E3UA-L|;G;FEdA(Q!rfBkpBQN zLh8B0bB?F+_c1wd?p8Qe=Y6?#B8z%$qTF954-7 zxws4l2AiAw+M4vuySr^w+0-t3De3gO>REf(J7ka*AaISs+e*-gEzYL7W_9*N`9Eo* z0I$=Od)p4{w(4pFsn!$NS#vH0drW%kpR_i1EkN~pfwQaRG)$}QA!%dUyN|NSGOP{8 z>Gbdvr9$s7##X*reki+5abd~Eg*P6dgp$sqOEJl@g%)L~7WD|VWwM-CF>o=+_Bf$d ziiBkN1&*hViHw_H;f+FjoK;iQFqRIhgsb@G7@v<~f%x?^@!%)p%wg--2s-{u9cMAz z^<3!vQ#4P+b0s;sR^=-qMRnHGT$URIeVm{2RN{P+E1L4d`&xmYCx!CGCXi)p*&{mf>gr07FjeB3Pi0ZqGYGXWXr~EBXz@^73CVZTHPgcJ5jB zd@&zjYGBk-t?~>!7Sa9)CAjck>4O9xn0gOOTaA1URzupjXh_CtlFXY{it$qS3Kts3 zgj0&In#5ZC!QQEv`C34QP(ev{yjq;0c2##D1 z<4%o_Q)I13TI$Nj9z$_!Zrv^QZPly$x@C7Z$;x1qW$|n~4E8k`xLE4qrC0}@7^@Ez zp6d|->Ub*$TE+@`(oe?UN33L-_>N&;cb3pylEYRR!F9r@s)EO@0pJAfpi0piH9fhY z#V93KwrdvwjBGYZ?2O3AHIIl^B;AN!yMGaLKM`quWtLY)L8h;LvUAc5`gYm%_XkkL zpNL~ib82JM%{ex7n}u0j=QDXNJGnIzlbLdN9-))fbSb{OZFShLrnPZ#C|EKnGc{8u z2&~~M^H1=xTZyM9y4rs6mvMF)F=< zcvXm~5*+MgZ*_Y|E@OL2l-Vn-?Mg9&S!FfUk6M|HK;T(tO#cA0-q%an)Kb-JvTP!Z zs|#SAdkPF(T9LTLQyFxpCl;{XO9(^NP*23IXE|AhUzwPWa&n%0nkrQ*q_{Ztq)Kcf zv23pu*$+-|wPAvu(vTM#neFHi5fTp~@`C)Atl5*MYj}iMpY`I_+|_umC0i^~^C!(p z+ZidzDGsaFpbQb2t2mj!ygQHI(1yFb3TH2 zhOgHjSXF+PY8piB&J$j`oM#!vahjU`g8FWCJf76D<3#D*KZLtGt$B2R@X{YI3H)N(AA6KmA0mM#xA$HSt#dh!1Nidvy6yXBeqC8N|YjN6TJkn0yj_ zFHq?bh?w~=P)@CQiJwK1t2>9OBh8spex^1uO?jNSn+A_DHqzS7B(IB?itERK8e&u1 zsGZ9Ol#4>C^xvmby;9zvhPbqgZO$F#QCb^p z%g5nze&@TLp52^^tE5@fDp_WJMUZ@oQqGM=rFJSK?#aIIBIhh`AK(+^q$sa=gLri}1-L;^edY8{z4U&-ipbJvn;{ zBVpqRF)^XXpeU}X!6N9aLFwn8ndBZvk0Uvm&RG6APE(ZR19Mr;CpCnCeH+!K>B7j9 zyP?mL_YC(hY9F)VsD3tN*TT=J7_`UTv@eOdVhd%pn%Tz1weW57Y;^Bk!?vLO+vN98 zsg60{%5s~7^J)*v#&MixpqlhPjp0)qdxmdxEV;5JI6T7;i<5cDb;9K=zKSE}+VlR_ z(=cU~d|A0;(lTml!ZnhtONvv8!BZBbJY(f0He1vx5cO*%+4+q*y^tv5)9H7#bn8q^ z6`sPN$&RQPeB8F3e82s{B?%d23;H<@i(kFQS@?}So2ZtLZbg;~vZu4iE!*R0!5qDY zJWMQL!ycuIpdC#fd`#kb>J|C%kH9f{M0|`<4t^ky)iC(}F^3Oa!=H|0ar}OWI{F3w z0Q58e0MI`#$L)>R@89FuQogC1d{GqadLJX~dN}>Xx?@#gYy-c^+xK8D zm(Ur`bDXCs$^s#6PIH{)H~Don`86-_mtMIsd)b*7_^FI7&jFhmt~ojM)i21k=8lse zU^fboa-+eWt1X8ao-QqGHN-Y%HF3JaiH(twn6?{jWfj&J%&c=4P^c}^$_bqemdNlW z73|ueG_iudMcCnAEm*T%Wq@VrD#|3|*h1k_SJ~qz6)M6HE+%n2_)PPsuNNJt8JIM~ z)v(0;YZx)>mCwe{Bi65^LLIH-Uk z#WnJ&1Hb_;I9c&A_|7L-)jL&=9M%)hZg4Y!nU`IT{{V= z%;gJtR&K6=lIl}s;1`V{Ws~k%5s~VfX%?rAL#Wi(W0vD>NgK>)3Mm!n+`=( z%)PL5btbf{89s%{Sp8cOaR3WStg|MHqxDn~^KxvKZOCm((XMK7s$QOf12Nef0~bbQ zqY=SnOiN-}PCdsi(i7f8R!xW5p_O6df!hFaGl}QMbEP9^;Vd0n6fK=$IJa4{KUT^y zx|U&$mz2zJe%~*Wph?G+>^XxT!v4<5?O&SVdG?<_XeY7L3<~AARHztqiI~E}N zGexCPTbqwuv#D4`mfK;jzEj(@?Qk^KET<~I-M9mcaH)mcQvMbK)&vbuTwdY!80xD< zYY~1$PLC7~nTCvdt~j5Icz&snVa&@g+mOu43`DDZ36;}nN5;E{v#`d(g9Rm+nDw`` zq#o6K?J~f*cLTFdYuMt&!^PjV#+BpMUB5F}=4Z})=g(HJ3w<%4hDReg7+zS=y3T70tk~IxWiKke zn$O&Pri)G=Kd8rZ{Alwyfdmj4%3|hnmK_@(aeikWy&Jwx`s3QtkH6xC?b3gyJqMtI z56_f!QM1~dTn_5lWpq?>GBRMts)3Q!E9G_eT2i9V+S=px!&z4DOe%L~8(CrLx9vJb z@L;uMSH^2n+iDAFt%n~MJG?bTt>+dI-;32zbJH-Zwx`0ODhL2&{b!Ya);f-Sk2dNc z`SFE?Ga0;#CR zU8o0KS}M05Ei^>YfPA>lKQ0lFYl6*J169YnNP{OFPj`(y_9$<}aU*psNm&Lb?cc9a zUN`!A2Dav&mJP4i^l&y%LZUK_TD(~KO4LF1{6zCul^!;FGYIywRt{MQPZuQC*1yjQ z32bkWPo0@Rw)0w6%!^$s%$P*f<2X(;Q&Ur4lo_}nFnYU$8=Dhibvt-f({Oy`W`rw_ zt3Ab;5G^IG?q7BuKLgukqP$kRE*?HSuePv32nHyE%MuK{i1`m-pqUc8>^!?(M|lZ+PMS{|Zn3)L$za_D*08+LTf9Ck$`w6nK2YQcU$i)digzX91SSk~?CumO4nCPP5JcapjoM#!-YWRBe z@>-59IJ7GBPAASDQMqfBCKEE$b3+%@8Bx)V;I+)Ep@;x1`-8loP+E5Tt|mQARVBEs zHy~WAipP7d&Fdk1T|G%|Glb&;&NGZ8>wQ#u2)u zFm;-x{Zv>6Wy;Q;=C{);gK0E#p2#}g(*=?GZOa~uQe=PGPEDBcdaF;wYF12|ZHMdA z`5u|0#er(BN*e!!iB4J|uu3OFPg$J6$b+nW>aYHLw98JJG%&g*Nrxz4>7LqAG!NT>vA zn9j=pQG`zs{^uVGRno%zxo%ay&w*2?D)I3<2kml0_i*uS?0a0$0%z%8GmTj{#LTGA zdqU55hGM=u6H>JH{{S2R07g~YyqpGSY%4gfCF-r0b!Dk8I~JDgS;?w#1x=w%jXM^Z z?W~^B<|@4^3o90b;V0AvdM$S0e-bL^##T5#AY`9fTEzh%JS>3?MYHXxh5H>yb*f3c;SOzGmqfo?G(=AIV z8B2edKr<$UyC#e}DPG*>IhxvVZ3;+HNCeb2LXq3?jFv){0^QKOpG#|*p4)f$`rukS zUBsN1QO2w=sD)I(t2hb5W!1DE8|l;RdROsw@Jy%YQl9oVq7yOe?lo2lm96fj&7{X) zivFe6jai7j%)edwZfr5p3Q%xJ1=Xxj@$Ne-scNq+)LG$QB2-y zt5T6|IH;FZ-ENbcYfG|?7g=rH(V5&^uA@ry*=Wb<$ua7wE!65+9hAGL?+c^7nwdEr zjI3Oxy3H&eJwK05+88LVc2;)I`zHh%sTND18KJESZAJZO&A5O3P zfCB|$yGmG@Z~eOS{u=dP`p??K_J3l{PvA;~{{S!Kfv@AxeL?hoRXErm{{XdBSvr@)B83inNNUYR z7^~$h0Goi}lA&?2#|5;Lhn4%lhge(X>J;s7pV`kg>-%r6#e z&VGCy?x!~iZ400II50|EsE0|5X70RR91009CK0}>%I5EBF-B0*6UFhF4= zGEhP@ae-6++5iXv0|5a)0qETk=+{I(ug^9|pUZB_6Qgk_Rz_@bv2EsK8HY2RzeKx< z+9jDslTtMrm)UoHBFQd@eGvTr0J0yL)fni>!5K6~*u^UslE)(Kd7pDkNlrLW+mwAG zl(hQL);z2K07R6l(#JNI;+o`A6TXf0ePUIO3#uPQC4nHm|nW~E+8x&}qjDANU zvdr1EY>!MYBRg@+B{Df8_!P26RW1(Xb!lXAsJ)pTYiSBmpQWOc zo7wJU?k(a@YCE(j#`U74rTQbgqqcU?-Sw`K7|4?9#nyaRNU!i0SoD;-$to%S`nA`4j1V5XiBJ zVkZ5BMS0rj{{S&`$&q7L$YTCSHbKiIntT~09EswAaPZKfU{5D;o+-;{qxvm#8(t<9 zMQK!WEsU8I6|rc^xh!_5^(03n@+n3}n3dAHE~$^B5XyRq&VzpeGy(|cvKVnmg{>GTT1&>b$ zsXx)H$+1F1@>h|6grr|wlhYd_m-l?K7pGQ1cvX^p%QF7}Bx(fb*^lgw7|wmqV=h@K zq=b}Hn=s_=-lKzeBZ2OOx+~(9?_#1* z++d_-RcxpIijy}C`kREn7?IX3~;D2ffwQ7NZ!frlH@ z>K;|AL4y{TsL3y6MkM81BTvDNMmsW-M7Y?Ekwwz6OVnvi*p+#aLWs_P8q4xoeS5G& z@hjMQ=kRysC$Q9{h2dmJ!#{Q}3mNDi@`byOl#?*EcJ;u}#Zd{Os@xF^)M^w*_?6^InUc!gMHz|}+nLRrSDn6!4QgT#B8jj?$cN2+=6)KUfQ=>rbA!F6a z7<`#>`y&Sw$^QURHY91-Phl>WiYQ3ZQD&iTarjK3)OjVJ;Kbzl=%O~4B(uQ}#QYkv zGqpKxeKPqMhmW|i#;Go@j^qyHNqDrK566CwsAcub#>67*w>w7I(JR(R8e5&scM}8} zTbi_@F43sTlUB%4Ar&9&QW951>PD@oLNi{>ve{x~m$_p#SK-=30G>)UPG`X$KpozI_L~$j%Czh$AKiRIC?2JAQv7%FQVs?y{rD(E0Bv!_nHtSs( zWMH`^&qepFqUg5zNu|jwp96D}*u@Pia)yVJD3^&#gTFTRJyQ2O3|J7cq;{k5DA!$4 zL(h#1JV|(jiTI|U1ao>*WT&w5(LB2vq((ON4bs?GG$f)*eaN~oV|rCdqhdGCm$jRg1&?vG{ngV~tUz8d0b8QIbti zqrHww8y5AL@g>RJP3c9s4^+?xS{e-C$cn< zi@l94F~*3;(heZknG6)69O2^ z{6q)h2c3&6`6nt|vfPai*$}}gY|-?x76xKkRX&zUYE*Vn+fm$(GE=3oKUz#!uX!0V zs2abM^u>wlBON5l6h28!M}jl8W@o0E2dQc``*|WZSz>>E68S3mEhAHW5k(G363ED> z?pZ}K(lx~r&%VRYAPmF zh(WY%1ZBwO8%CXJQ5;EfN|UnAMv~l?OW>myx+JbNMNt^GRWkQ9{>IC`lqL7k`(^wJ z18Exm4c{dk39B_PV_4+IosJfEkg-SLQLk=^Smcp#HAL>A<~y={41R*S!&K+GH_pxoHxVwHYsAbj!)0j32oLT^vydwGHlaX*m~2$L!zO zYR!?Yzv?J^vq@=kJcOkwIz}vdcN6&%_$iuba*8{V_9dHRy(76lk`ma2U%{n`GeO!G zBzEFxh@y?n%4IW4G@4BIp2nMYQi(bI6I!@Ccf5xb#VxuuCdk5tj)@GK6ot=TIwH#a z2l^ar;CWXFZM13m6i|f}IYkRCibH$uiR1VbS=vIw5o3?QlQgo5C~}FeCweD+9sdB( zr)XUzDrUB8WF3}R()Su%5!-^q#YV=$8z_<`y6KH6I%Da{LS0v$yvuR3f>}NV2KQot zUnZ!cSs0@?Ca;1kZOw}}H#DA;R7E)ak19L9$8nDM6Q%d zX%9H_Grc2QBsF4*3~%69?n!)(37v)VeL2`iZYGG4id+|cY_os450017oS&n%%{vce z(G}^wnoT7XSCv7tLnzbk$FSXt6^j?>icvKqV?{3z4nCSR$r_ohn#kn6x?h#`UU7EAOs@zOgNu%mm3x-8lBp8E+VB@yFCYzX;KQi-sk@K+<bpLUfNHDaO3T@r#6sC@UvH?-iQh~r#~PcH@|(?il@i(i5&x3A5s z?-R39?9=i}D3YNLG(OaXs9JuTVoy`ANwIf-6IF!dT5ks?2%h($LH8b z?`=;$?rEB4HeyaxxE!p6O*C!co8z2yNzY3~S>Bx%DZL%7@!uS}2aay2EBq)$&4VB)PZ zGI3rAVe&=|@P{Y*vADJTnw)x()jF(%YuHC^Nqm2xd&_9X&l@Fdn(6oyTs=&0Cv4T9 z{bEHuH_16UazRP>6x@9+5pnRy!u~|$nJHTtB~RJ6O3M(R`Yd}eN*Nfp>ty8SPH|C5 z5l#&@YELFyV*yF0!JAImCmA~@1i6bYQRH&xl8Nb*{e*Vam&an4`b{XVTOkbp0Pwj# zLL)U82{r3Abu!@*QBdTBT-_sAO+}q+Sh6Y&bL5OK!EeETWhPVjE&CSf7uu!o=IId; z2=mD=Tm0dW}t6Sffrc#>#Ve#LK5INab&mSl^_@HNhCltqM=clv^5K z2Pmn2TiI=^FOKx~Uh(Z1xjIC(JvgDI1gMN$TAL~BNP3M&6Gbm9{hl#D;$)ujj!uyB zhXR>#Y?KC?E&B_kK7Rs!^2YwQ=SYPl@*@W&kmU6qBa_m&qeXhTB=U6=4x6)5c|OG| z@I6cNHkpcONXeNOz5X<6Kaaw_%a&XSWAa8MVzF(C?>P(nlH`-GLK^Avi2ljQ)t*kG zVTCcbH{BZf6gi`&?v7D@!p86Lt(UgcXMr)XN92O$+55h09;1wK zG~lteHTujKH#@-976Ag%Iq zFHA=$s3I|GsWNiS`ba4B&SpY!j0f2FY)y+-)K6NuUQWKLz|-D_QGJ$Q`fWK>tY7_~ zwYGDpPFYk@{{RsfX0l|a<>^MB`0m7<-vnoZBA%p)!xy_Nv#CtgmT$qNu2k9mywChO zMV4O86=#oee#M{3`x1G0BEc%aQ*8joKwACu87? z{(5EwF5B#_tr;UBF~9nuB$Kk-pCfp9G~<)? z8RD@L=HzNL-y0$*)LfcdHZ7Qu@@D@4`Y*AbMG85;%YB#lR9K?B_}a>4GovDUO?eWD zG?B>#>9!_>tJHq%a!NEP{IYWAfkDHLN?u3&oEH+&XDt$S;EXTG^&f*y7vyurVuY=1i`w|1k>zb^ z7ke>BzJ`dQ`$UReyuSxdM?$=c5&36QHAhpC>NaNn_fU|uq;wz2&_=Wpj{f z=!*GdrSwKP(JAxkG~v%9`CC|z8#7K{1Cz3^X-N1o;LEo5Vjr?XTefGmFyc@ii|EAQNLq4Y(JBX0DC<9?t0BqXFMdp9V#w$=tp3~i zI%Ssj)AC8GJRHbNfy%`kc{L@;CCJ4RD9D$Mo8rj2W<1$L@IjVvR?I~U+1cb&jEk|h zQ3S7%&3qkJIk)q-FTk|q&V%_DiWZy&iXNnX$Eb%PYqY5T;$}>wa9S;Ghih(Tf(4wBmYE)kjz8 z&6&TkyWLwBoS5|3w5(bvoPAAgL{UhSDDYj0V#&!TXO&w-M}d;^L6>8@8py<#;(wJQ z%KIDJfl7<9B3FB9I%Cv2jLT(gT5@Mg?CHnsP=SPgjan4aBdn11Q}`aC)nm5o#I4fW ztoS7}AC^@y#Gw`=QE**5B_EVy_p{XcCCa`2cpmJ(%^m!nH;hD*I*6A%oC)87L7gL} zii$dm?0TqrpTPAbIlr>^qX`{39X3ygMeQD0fh9s;Wzpn}crxOc=GjD~Ev&oaWcVd2 zRz_C&8st&nq)}aux{CY}+P+xc)wPx>ZNaALokKP`U(Wb3X)~lPBsh_#QbtIgqDbqZ z>ZWRXnSp~Mso9${Y_h({@Hzbvjg{#oE(wymGAj>xJW)J7z~ zfhJWJg!Woy2*xF(btCq5QP%zkt0Bp=!Dky;V`gS%Mq<-!p|i;q$#gl3#_4Y&K1Mkt zd0cIu@KF7l+Rr9EkHN`BZ5|Amo&gIwJn| z$(b_CMoAV~kxZsxA!)OwNmDPfi4idp+N{KJ99c}{Vvf-AN6y-kaaX!~x4UJs_p>7Q zvilJjmc9ndITU_LHCMGW5|P1YB{Ek+OvGqV6cJQeXv!y19YjtyD=;uID8#@@zYP*X zW1%Nyk@U@?O4S-KjCM|h%j}_)R@7H@?6&2UFD310o}~*_*~t~jTPBj^%@URGMnWU{F*iTvjY?;qk&PbFFQWSzDKj#KZOgGMw)6g%3nLgZ<6+X z&+s8{!V@wrn!NBNd>T@8D`o~J2%!o?X0E0vmYi$<00>JbNLeOzKZB@s8IvuN=gCGU zD5O$2ING~kWVTCXzg8zvCRoZFqa!0DBFo*b*CBF64s=QLc6lkBnKL5GLTM4!M_wY< zI)(3O)qL_cpX$z@Jivy3CUO+HEfkDQM;h#{*6(Ea?U#XeIaHS2Buf=82*WGP>BWee zwl%eHMHEq6@^W%=R@juzOJ$Z>XyBw#MKalwI*ioRwrMYhbh&LaMKrxetlz-(Wgn6M z08-O5zpLlL{o-Cx{qC8m{Z;;~gw&Oq`jUe5qfb#yTI^fPXm_pkBa}!xSG2#Ul>Jvm zoGB%;K1wLWuFKj@R@6~OETXrwCS=TuI5;U3Vq#M{Es}p?e<+Nv!PJy|p((G~oo2@@ zo+99!RJ}%Y{Ek<_r~HW~xGu;}mjrd?_D5b{BL1LS=l2Wff7C@CShQrm$jN<*OKaXj z-5Oj;#H0SZF?kn`*RmIuGJk>hA@?nrtFkqGvR|nG0AwRe^*+sCBtLX~qCcpHM`z@R zmLcxMK#zJq{dWJv07(!40RsX82LuNN1_l8H0s{d700I#MArdhVB0*7MaghWQGJzvA zLQ-;qp&(+CvB4BDKw#0~Bs4=%Q=+nSgOl*$@dZ?4(*N232mt{A20sG(CEIccx^W$< z;Dutfh7z#?rr}-+x1(~(M)0Miq23APrH1?w!bGTW@+#xWOAnDi8}KR)sp7lJZfpMP z4H6FJf~YOxR>uOd(RLSZKv!z91SzI)9f~S8c(3^1^hPhqVR)a-Vg?+5^Ew{=!av<@ z`@4Syi*CS)aguK;PlRN!`$?~mB}jtQ0cjIuxbRkV^IFXzO*ix_S{$z}=B1<_U%boh zYTb>=Mtll~$C~tK$fK&YOelDcAx$R-1#t^IZeAQO;IfV(Vg}pR7uc| zD-A#gQ05=~^HhP1aLo)PsD7#9t^ru6Kgg^#+k~x- z3&L79D4A~Jt?1qKMB>8WrPp#T-ZU}0hx^uAY_Fnpz)}0$4e&SWgInTv(QwUvi2IVc z*-rKEEHMX)%c3o54sPP73c)(PEq8u?a z?neWNL=&zS7Ysbqw8ZXP3htk2%lBAWcDM7Tfj9WC%x+neq-@wk@fjGF|IbGq|kU^m~GdmTzsT&o%)NWXT zf}!l_x5n_KOL;6da9ZudD^%;ZH3hTDVjy8F6*GlRk0pYonpSw5#bt1_)^2~e!rv2? z^#y7lBCy0QVP&~XNaU^|Sgmp96t}2S+ww+CsCbScY$hM;{uc&^AzXks8)gY*< z1KPa{;QOT?VZ$XAn><_w0!O0C&k|r)Sxf zA7>H$#k7|?z${0|FSs+}x#Y80pW-XK8Esfci((&D9?nY(b3a9MB};*fipNR)3K+

sUJm&hIlUUHNo3P@PpfMe$jKX2)W?hTj;H< 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%0DtsswjFNn}xFA1^Kdo)*8?iTdy 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 W3LNnOa0#Bg%N;G~?=>clC;!=~NEpcg literal 0 HcmV?d00001 diff --git a/src/app/login/page.jsx b/src/app/login/page.jsx index f635b4d..10e0dd8 100644 --- a/src/app/login/page.jsx +++ b/src/app/login/page.jsx @@ -10,6 +10,7 @@ import {getCookie} from "cookies-next"; import {LoadingOutlined} from "@ant-design/icons"; import usePreventBackNavigation from "@/hooks/usePreventBackNavigation"; import CheckAuth from "@/components/util/CheckAuth"; +import packageJson from "@@/package.json"; export default function Login() { @@ -37,10 +38,8 @@ export default function Login() { return setErrorLogin(result.message); } - await setAuth(result.token, result.users.id); - - let userData = await API.GET('/ref/user/' + result?.users?.id) - localStorage.setItem('user_roleId', userData?.result?.users?.idBranch); + await setAuth(result.token, result.userId); + localStorage.setItem('user_roleId', result.roleId); router.push("/main/dashboard"); }; @@ -104,7 +103,7 @@ export default function Login() { /> -

+
v{packageJson.version}
diff --git a/src/app/main/daftarAgen/CardAgen.jsx b/src/app/main/daftarAgen/CardAgen.jsx new file mode 100644 index 0000000..e9022d6 --- /dev/null +++ b/src/app/main/daftarAgen/CardAgen.jsx @@ -0,0 +1,77 @@ +import React, {useEffect, useState} from "react"; +import {Col, Dropdown, Row} from "antd"; +import "./style.scss"; +import {CheckCircleOutlined, CloseCircleOutlined, ContainerOutlined, EditOutlined, SettingOutlined, UserOutlined} from "@ant-design/icons"; + +export default function CardAgen({data,modalOpen}) { + + return ( + {data && data?.map((v, k) => { + + let items = [ + { + key: '1', + label: (), + }, + { + key: '2', + label: (), + } + ] + + return ( +
+
+
{v?.karyawanNm}
+
{v?.jabatanNm}
+
+ +
+
+
ID
+
{v?.nik}
+
+
+
username
+
{v?.username}
+
+
+
telpon/hp
+
{v?.phoneNo}
+
+ +
+ +
+ + + +
+ +
+ {(v?.isActive) ?
+ +
Aktif
+
:
+ +
Tidak Aktif
+
} +
+
+ {(v?.profilePict) ? {"agen"} : } + +
+
+ + + ) + })} + +
) +} \ No newline at end of file diff --git a/src/app/main/daftarAgen/FormAgen.jsx b/src/app/main/daftarAgen/FormAgen.jsx new file mode 100644 index 0000000..2de20c8 --- /dev/null +++ b/src/app/main/daftarAgen/FormAgen.jsx @@ -0,0 +1,96 @@ +import {Col, Modal, Row, Spin} from "antd"; +import {CloseOutlined} from "@ant-design/icons"; +import Input from "@/components/util/Input"; +import React, {useEffect, useState} from "react"; +import {useForm} from "react-hook-form"; +import {Helper} from "@/lib/Helper"; +import {DropdownAPI} from "@/lib/DropdownAPI"; + +export default function FormAgen({modalStatus, actClose, data, loadingModal,jenis}) { + const [viewReadonly, setViewReadonly] = useState(false) + const [dropdownLoading, setDropdownLoading] = useState(false) + const [dropdown, setDropdown] = useState( + { + roleId : [], + branchId : [], + jabatanId : [], + jenisKelaminId : [], + agamaId : [], + statusAgenId : [] + } + ) + + const { + register, setValue, watch, getValues, formState: {errors}, + } = useForm(); + + const dropdownInit = async () => { + setDropdownLoading(true) + let listRole = await DropdownAPI.role(); + + setDropdownLoading(false) + } + + const TypeAction = () => { + if(jenis === 'detail'){ + return( + <> + ) + }else{ + return( + + ) + } + } + + useEffect(() => { + if (jenis === 'detail'){ + setViewReadonly(true); + }else{ + + setViewReadonly(false); + } + }, [jenis]); + + useEffect(() => { + if (data){ + setValue('karyawanNm',data?.karyawanNm) + setValue('roleId',data?.roleId) + } + }, [data]); + + useEffect(() => { + dropdownInit() + }, []); + + return ( + +
+ +
+
+
Data Agen
+
Data Agen
+
+
+ + + + + + + + + +
+ +
+
+ +
+ + + + ) + +} \ No newline at end of file diff --git a/src/app/main/daftarAgen/page.jsx b/src/app/main/daftarAgen/page.jsx new file mode 100644 index 0000000..af9e6fc --- /dev/null +++ b/src/app/main/daftarAgen/page.jsx @@ -0,0 +1,251 @@ +"use client" +import SearchInput from "@/components/util/SearchInput"; +import WrapperContent from "@/components/util/WrapperContent"; +import React, {useEffect, useState} from "react"; +import CardAgen from "./CardAgen"; +import {API} from "@/lib/API"; +import notifStore from "@/store/notifStore"; +import FormAgen from "@/app/main/daftarAgen/FormAgen"; +import {ReloadOutlined} from "@ant-design/icons"; + +export default function DaftarAgen() { + const {notifOpen} = notifStore() + const [searchText, setSearchText] = useState(null) + const [dataAgen, setDataAgen] = useState([]) + const [modalAgen, setModalAgen] = useState({ + loadingModal: false, modalStatus: false, jenis: null, data: [] + }) + + const handleSearch = (event) => { + const handler = setTimeout(() => { + setSearchText(event.target.value); + }, 1000); + return () => { + clearTimeout(handler); + }; + }; + + const getAgen = async () => { + // let res = await API.GET('/ref/karyawan') + // if (res.status !== 200) { + // notifOpen("Gagal", res.result.message, "danger"); + // return false + // } + + let dummyData = { + "page": 0, + "size": 1, + "totalPages": 1, + "totalElements": 1, + "data": [ + { + "karyawanId": 3, + "profilePict": null, + "username": "karyawanbackend", + "roleId": 4, + "roleNm": "Backend Developer", + "isActive": true, + "statusUserId": 2, + "statusUserNm": "Baru", + "jenisKelaminId": 1, + "jenisKelaminNm": "Laki-laki", + "email": "karyawanbackend@basys.co.id", + "phoneNo": "085300000003", + "companyId": 1, + "companyNm": "PT Bayu Sinergi Solusi", + "branchId": 1, + "branchCode": "001", + "branchNm": "Cabang Utama PT. Basys", + "divisiId": 1, + "divisiNm": "Backend Developer", + "jabatanId": 1, + "jabatanNm": "Outlet Alzam Store", + "statusAgenId": 1, + "statusAgenNm": "Pegawai Tetap", + "spvId": null, + "spvUsername": null, + "spvNm": null, + "recognizeId": "e12ff5c2-919b-4e40-8841-3b876696d619", + "hasRecognized": false, + "nik": "0000000000000002", + "nip": "0000000000000002", + "npwp": 2, + "birthPlace": "Kota Bandung", + "birthDt": "2000-09-17", + "address": "Jalan Jalan 2", + "tanggalBekerja": "2023-01-01", + "agamaId": 1, + "agamaNm": "Islam", + "tanggalBerhentiBekerja": null, + "userCrtId": 1, + "userCrtNm": "Webmin Basys", + "userCrtUsername": "webminbasys", + "userUpdtId": 1, + "userUpdtNm": "Webmin Basys", + "userUpdtUsername": "webminbasys", + "crtdt": "2024-07-31 11:28:26", + "uptdt": "2024-07-31 11:28:26", + "karyawanNm": "Nama Agen A" + }, { + "karyawanId": 3, + "profilePict": null, + "username": "karyawanbackend", + "roleId": 4, + "roleNm": "Backend Developer", + "isActive": true, + "statusUserId": 2, + "statusUserNm": "Baru", + "jenisKelaminId": 1, + "jenisKelaminNm": "Laki-laki", + "email": "karyawanbackend@basys.co.id", + "phoneNo": "085300000003", + "companyId": 1, + "companyNm": "PT Bayu Sinergi Solusi", + "branchId": 1, + "branchCode": "001", + "branchNm": "Cabang Utama PT. Basys", + "divisiId": 1, + "divisiNm": "Backend Developer", + "jabatanId": 1, + "jabatanNm": "Outlet Alzam Store", + "statusAgenId": 1, + "statusAgenNm": "Pegawai Tetap", + "spvId": null, + "spvUsername": null, + "spvNm": null, + "recognizeId": "e12ff5c2-919b-4e40-8841-3b876696d619", + "hasRecognized": false, + "nik": "0000000000000002", + "nip": "0000000000000002", + "npwp": 2, + "birthPlace": "Kota Bandung", + "birthDt": "2000-09-17", + "address": "Jalan Jalan 2", + "tanggalBekerja": "2023-01-01", + "agamaId": 1, + "agamaNm": "Islam", + "tanggalBerhentiBekerja": null, + "userCrtId": 1, + "userCrtNm": "Webmin Basys", + "userCrtUsername": "webminbasys", + "userUpdtId": 1, + "userUpdtNm": "Webmin Basys", + "userUpdtUsername": "webminbasys", + "crtdt": "2024-07-31 11:28:26", + "uptdt": "2024-07-31 11:28:26", + "karyawanNm": "Nama Agen A" + }, { + "karyawanId": 3, + "profilePict": null, + "username": "karyawanbackend", + "roleId": 4, + "roleNm": "Backend Developer", + "isActive": true, + "statusUserId": 2, + "statusUserNm": "Baru", + "jenisKelaminId": 1, + "jenisKelaminNm": "Laki-laki", + "email": "karyawanbackend@basys.co.id", + "phoneNo": "085300000003", + "companyId": 1, + "companyNm": "PT Bayu Sinergi Solusi", + "branchId": 1, + "branchCode": "001", + "branchNm": "Cabang Utama PT. Basys", + "divisiId": 1, + "divisiNm": "Backend Developer", + "jabatanId": 1, + "jabatanNm": "Outlet Alzam Store", + "statusAgenId": 1, + "statusAgenNm": "Pegawai Tetap", + "spvId": null, + "spvUsername": null, + "spvNm": null, + "recognizeId": "e12ff5c2-919b-4e40-8841-3b876696d619", + "hasRecognized": false, + "nik": "0000000000000002", + "nip": "0000000000000002", + "npwp": 2, + "birthPlace": "Kota Bandung", + "birthDt": "2000-09-17", + "address": "Jalan Jalan 2", + "tanggalBekerja": "2023-01-01", + "agamaId": 1, + "agamaNm": "Islam", + "tanggalBerhentiBekerja": null, + "userCrtId": 1, + "userCrtNm": "Webmin Basys", + "userCrtUsername": "webminbasys", + "userUpdtId": 1, + "userUpdtNm": "Webmin Basys", + "userUpdtUsername": "webminbasys", + "crtdt": "2024-07-31 11:28:26", + "uptdt": "2024-07-31 11:28:26", + "karyawanNm": "Nama Agen A" + } + ] + } + + // setDataAgen(res.result.data) + setDataAgen(dummyData.data) + } + + const modalOpen = async (id, type) => { + setModalAgen(prev => ({ + ...prev, modalStatus: true, jenis: type, loadingModal: true + })); + + let res = await API.GET('/ref/karyawan/' + id) + + setModalAgen(prev => ({ + ...prev, data: res.result, loadingModal: false + })); + + + } + + useEffect(() => { + getAgen() + }, []); + + return (<> + +
+
+
+
+
Data Agen
+
Daftar Agen
+
+
Daftar Agen
+
+
+ + + +
+
+ +
+ +
+
+
+ { + setModalAgen(prev => ({ + ...prev, modalStatus: false, loadingModal: false + })); + }} + data={modalAgen?.data}/> + ) +} \ No newline at end of file diff --git a/src/app/main/daftarAgen/style.scss b/src/app/main/daftarAgen/style.scss new file mode 100644 index 0000000..0154d6a --- /dev/null +++ b/src/app/main/daftarAgen/style.scss @@ -0,0 +1,80 @@ +.card-karyawan{ + background: #fff; + padding: 10px; + border-radius: 25px; + box-shadow: 0px 8px 50px rgb(0 0 0 / 8%); + margin-top: 15px; + transition: 0.5s ease-in-out; + + &:hover{ + box-shadow: 0px 25px 50px rgb(0 0 0 / 15%); + } + + .content-title{ + background: #f7f7f7; + padding: 10px 15px; + border-radius: 20px; + width: 60%; + + .name{ + font-weight: 600; + font-size: 14px; + color: var(--dark); + } + .position{ + font-weight: 400; + font-size: 12px; + color: var(--text-muted); + } + } + + .container-karyawan{ + padding: 15px; + } + + .content-karyawan{ + margin-bottom: 15px; + + .title{ + font-size: 12px; + font-weight: 400; + color: var(--text-muted); + } + .value{ + font-size: 13px; + font-weight: 500; + color: #0c111c; + } + } + + .content-status{ + position: absolute; + top: 5px; + right: 20px; + border-radius: 20px; + padding: 3px 30px 3px 10px; + + .status-flag{ + display: flex; + gap: 0px; + font-weight: 400; + font-size: 12px; + } + } + + .content-foto{ + position: absolute; + bottom: 10px; + right: 5px; + + .icon{ + font-size: 180px; + color: rgba(0, 0, 0, 0.05); + } + .img{ + width: 150px; + object-fit: contain; + } + } + +} \ No newline at end of file diff --git a/src/app/main/daftarOutlet/CardOutlet.jsx b/src/app/main/daftarOutlet/CardOutlet.jsx new file mode 100644 index 0000000..ab51106 --- /dev/null +++ b/src/app/main/daftarOutlet/CardOutlet.jsx @@ -0,0 +1,80 @@ +import React, {useEffect, useState} from "react"; +import {Col, Dropdown, Row} from "antd"; +import "./style.scss"; +import {CheckCircleOutlined, CloseCircleOutlined, ContainerOutlined, DeleteOutlined, EditOutlined, SettingOutlined, UserOutlined} from "@ant-design/icons"; + +export default function CardOutlet({data,modalOpen, deleteData}) { + + return ( + {data && data?.map((v, k) => { + + let items = [ + { + key: '1', + label: (), + }, + { + key: '2', + label: (), + }, + { + key: '3', + label: (), + } + ] + + return ( +
+ +
+ {(v?.isActive) ?
+ +
Aktif
+
:
+ +
Tidak Aktif
+
} +
+ +
+
+
Perusahaan A
+
Nama Outlet A
+
{v?.address}
+
+ + +
+ + + +
+
+ +
+
+
Jenis Outlet
+
Jenis Outlet A
+
+
+
Penanggungjawab
+
Zamzam Nurzaman
+
+ +
+
+ + + ) + })} + +
) +} \ No newline at end of file diff --git a/src/app/main/daftarOutlet/FormOutlet.jsx b/src/app/main/daftarOutlet/FormOutlet.jsx new file mode 100644 index 0000000..7f7f133 --- /dev/null +++ b/src/app/main/daftarOutlet/FormOutlet.jsx @@ -0,0 +1,194 @@ +import { Col, Modal, Row, Spin } from "antd"; +import { CloseOutlined } from "@ant-design/icons"; +import Input from "@/components/util/Input"; +import React, { useEffect, useState } from "react"; +import { useForm } from "react-hook-form"; +import dynamic from "next/dynamic"; + +let timer; +export default function FormOutlet({ + modalStatus, + actClose, actStoreData, + data, + loadingModal, + jenis, +}) { + + + const [viewReadonly, setViewReadonly] = useState(false); + const [latlon, setLatlon] = useState(null); + const [showMap, setShowMap] = useState(false); + + const { + register, + setValue, + watch, + getValues, + reset, + handleSubmit, + formState: { errors }, + } = useForm(); + + const TypeAction = () => { + if (jenis === "detail") { + return <>; + } else { + return ; + } + }; + + const onSubmit = async (data) => { + actStoreData(data) + } + + + useEffect(() => { + if (jenis === "detail") { + setViewReadonly(true); + } else { + setViewReadonly(false); + } + + + }, [jenis]); + + useEffect(() => { + if (data) { + console.log(data) + setValue('address',data.address) + setValue('picNm', data.picNm) + setValue('phoneNo', data.phoneNo) + setValue('lat', data.lat) + setValue('lon', data.lon) + setValue('companyNm', data.companyNm) + setValue('wilayahId', data?.wilayah?.wilayahId) + setValue('companyId', data.companyId) + + setLatlon({ + lat: data.lat, + lon: data.lon + }) + + } + }, [data]); + + + useEffect(() => { + if (modalStatus === true){ + setLatlon(null) + reset() + timer = setTimeout(() => { + setShowMap(true); + }, 2000); + + } + }, [modalStatus]); + + useEffect(() => { + setLatlon({ + lat: watch('lat'), + lon:watch('lon') + }) + }, [watch('lat')]); + + return ( + + +
+ +
+
+
+ Data Outlet +
+
Data Outlet
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + + ); +} diff --git a/src/app/main/daftarOutlet/page.jsx b/src/app/main/daftarOutlet/page.jsx new file mode 100644 index 0000000..0500025 --- /dev/null +++ b/src/app/main/daftarOutlet/page.jsx @@ -0,0 +1,185 @@ +"use client" +import SearchInput from "@/components/util/SearchInput"; +import WrapperContent from "@/components/util/WrapperContent"; +import React, {useEffect, useState} from "react"; +import CardOutlet from "./CardOutlet"; +import {API} from "@/lib/API"; +import notifStore from "@/store/notifStore"; +import FormOutlet from "./FormOutlet"; +import {ReloadOutlined} from "@ant-design/icons"; +import {Pagination} from "antd"; +import confirmStore from "@/store/confirmStore"; +import "./style.scss" + +export default function DaftarOutlet() { + const {notifOpen} = notifStore() + const {confirmOpen, confirmClose, setConfirmLoading} = confirmStore(); + + const [searchText, setSearchText] = useState(null) + const [currentPage, setCurrentPage] = useState(1) + + const [dataCabang, setDataCabang] = useState([]) + const [modalCabang, setModalCabang] = useState({ + loadingModal:false, + modalStatus:false, + jenis:null, + data:[] + }) + + const handleSearch = (event) => { + const handler = setTimeout(() => { + setSearchText(event.target.value); + }, 1000); + return () => { + clearTimeout(handler); + }; + }; + + const getCabang = async (page,size) => { + let setPage = (page) ? page : 0; + let setSize = (size) ? size : 6; + let res = await API.GET(`/ref/branch?page=${setPage}&size=${setSize}`) + if(res.status !== 200){ + notifOpen("Gagal", res.result.message, "danger"); + return false + } + setDataCabang(res.result) + } + + const modalOpen = async (id,type) => { + + if (type === 'tambah'){ + setModalCabang(prev => ({ + ...prev, + modalStatus: true, + jenis: type, + data:null + })); + + }else{ + setModalCabang(prev => ({ + ...prev, + modalStatus: true, + jenis: type, + loadingModal: true + })); + let res = await API.GET('/ref/branch/' + id) + setModalCabang(prev => ({ + ...prev, + data: res.result, + loadingModal: false + })); + } + + + + + } + + const storeData = async (data) => { + let res = await API.POST('/ref/branch', data) + if (res.status === 200) { + setModalCabang(prev => ({ + ...prev, + modalStatus: false, + })); + + notifOpen("Berhasil", res.result.message); + await getCabang(); + setCurrentPage(1) + } else { + notifOpen("Gagal", res.result.message, "danger"); + } + } + + const deleteData = async (id) => { + confirmOpen("Hapus Data", "Yakin Hapus Data Ini", async () => { + setConfirmLoading(true); + let response = await API.DELETE(`/ref/branch/${id}`); + if (response.status === 200) { + notifOpen("Berhasil", "berhasil hapus data"); + await getCabang(); + setConfirmLoading(false); + confirmClose(); + setCurrentPage(1) + } else { + console.log(response); + setConfirmLoading(false); + notifOpen("Gagal", response.result.message, "danger"); + confirmClose(); + } + }); + }; + + const onChangePage = (page, pageSize) => { + console.log({page, pageSize}) + setCurrentPage(page) + getCabang(page-1,pageSize) + } + + const onChangePageSize = (current, size) => { + console.log({current, size}) + + } + + useEffect(() => { + getCabang() + }, []); + + return(<> + +
+
+
+
+
Data Outlet
+
Daftar Outlet
+
+
Daftar Outlet
+
+
+ + + +
+
+ +
+ + `${range[0]}-${range[1]} dari ${total} Data`} + defaultPageSize={6} + pageSizeOptions={['6', '12', '24']} + showSizeChanger={true} + defaultCurrent={1} + current={currentPage} + onChange={onChangePage} + onShowSizeChange={onChangePageSize} + /> +
+
+
+ { + setModalCabang(prev => ({ + ...prev, + modalStatus: false, + loadingModal: false + })); + }} + actStoreData={storeData} + data={modalCabang?.data} /> + ) +} \ No newline at end of file diff --git a/src/app/main/daftarOutlet/style.scss b/src/app/main/daftarOutlet/style.scss new file mode 100644 index 0000000..dba14f2 --- /dev/null +++ b/src/app/main/daftarOutlet/style.scss @@ -0,0 +1,95 @@ +.card-branch{ + background: #fff; + padding: 10px 10px; + border-radius: 25px; + box-shadow: 0px 8px 50px rgb(0 0 0 / 8%); + margin-top: 15px; + transition: 0.5s ease-in-out; + position: relative; + display: flex; + justify-content: space-between; + + &:hover{ + box-shadow: 0px 25px 50px rgb(0 0 0 / 15%); + } + + .content-detail{ + text-align: right; + background: #F1F1F1; + padding: 30px; + border-radius: 20px; + } + + .content-title{ + margin-bottom: 20px; + margin-top: 10px; + padding: 10px 15px; + border-radius: 20px; + width: 100%; + + .name{ + margin-top: 10px; + font-weight: 700; + font-size: 14px; + color: var(--dark); + text-transform: uppercase; + } + .position{ + font-weight: 300; + font-size: 12px; + } + } + + .container-branch{ + padding: 15px; + } + + .content-branch{ + margin-bottom: 15px; + + .title{ + font-size: 12px; + font-weight: 400; + color: var(--text-muted); + } + .value{ + font-size: 13px; + font-weight: 500; + color: #0c111c; + } + } + + .content-status{ + position: absolute; + top: -10px; + left: 30px; + border-radius: 20px; + padding: 3px 30px 3px 10px; + + .status-flag{ + display: flex; + gap: 0px; + font-weight: 400; + font-size: 12px; + } + } + + .content-foto{ + position: absolute; + top: 0px; + right: 0px; + border-radius: 25px; + + .icon{ + font-size: 180px; + color: rgba(0, 0, 0, 0.05); + } + .img{ + width: 170px; + height: 250px; + object-fit: cover; + border-radius: 0 25px 100px 100px; + } + } + +} \ No newline at end of file diff --git a/src/app/main/daftarPerusahaan/CardPerusahaan.jsx b/src/app/main/daftarPerusahaan/CardPerusahaan.jsx new file mode 100644 index 0000000..4e985ac --- /dev/null +++ b/src/app/main/daftarPerusahaan/CardPerusahaan.jsx @@ -0,0 +1,79 @@ +import React, {useEffect, useState} from "react"; +import {Col, Dropdown, Row} from "antd"; +import "./style.scss"; +import {CheckCircleOutlined, CloseCircleOutlined, ContainerOutlined, DeleteOutlined, EditOutlined, SettingOutlined, UserOutlined} from "@ant-design/icons"; + +export default function CardPerusahaan({data,modalOpen, deleteData}) { + + return ( + {data && data?.map((v, k) => { + + let items = [ + { + key: '1', + label: (), + }, + { + key: '2', + label: (), + }, + { + key: '3', + label: (), + } + ] + + return ( +
+
+
{v?.companyNm}
+
{v?.address}
+
+ +
+
+
Jenis Perusahaan
+
PT (Perseroan Terbatas)
+
+
+
Jenis Bisnis
+
Perdagangan
+
+ +
+ +
+ + + +
+ +
+ {(v?.isActive) ?
+ +
Aktif
+
:
+ +
Tidak Aktif
+
} +
+
+ {(v?.profilePict) ? {"company"} : } + +
+
+ + + ) + })} + +
) +} \ No newline at end of file diff --git a/src/app/main/daftarPerusahaan/FormPerusahaan.jsx b/src/app/main/daftarPerusahaan/FormPerusahaan.jsx new file mode 100644 index 0000000..db3d458 --- /dev/null +++ b/src/app/main/daftarPerusahaan/FormPerusahaan.jsx @@ -0,0 +1,193 @@ +import { Col, Modal, Row, Spin } from "antd"; +import { CloseOutlined } from "@ant-design/icons"; +import Input from "@/components/util/Input"; +import React, { useEffect, useState } from "react"; +import { useForm } from "react-hook-form"; + +let timer; +export default function FormPerusahaan({ + modalStatus, + actClose, actStoreData, + data, + loadingModal, + jenis, +}) { + + + const [viewReadonly, setViewReadonly] = useState(false); + const [latlon, setLatlon] = useState(null); + const [showMap, setShowMap] = useState(false); + + const { + register, + setValue, + watch, + getValues, + reset, + handleSubmit, + formState: { errors }, + } = useForm(); + + const TypeAction = () => { + if (jenis === "detail") { + return <>; + } else { + return ; + } + }; + + const onSubmit = async (data) => { + actStoreData(data) + } + + + useEffect(() => { + if (jenis === "detail") { + setViewReadonly(true); + } else { + setViewReadonly(false); + } + + + }, [jenis]); + + useEffect(() => { + if (data) { + console.log(data) + setValue('address',data.address) + setValue('picNm', data.picNm) + setValue('phoneNo', data.phoneNo) + setValue('lat', data.lat) + setValue('lon', data.lon) + setValue('companyNm', data.companyNm) + setValue('wilayahId', data?.wilayah?.wilayahId) + setValue('companyId', data.companyId) + + setLatlon({ + lat: data.lat, + lon: data.lon + }) + + } + }, [data]); + + + useEffect(() => { + if (modalStatus === true){ + setLatlon(null) + reset() + timer = setTimeout(() => { + setShowMap(true); + }, 2000); + + } + }, [modalStatus]); + + useEffect(() => { + setLatlon({ + lat: watch('lat'), + lon:watch('lon') + }) + }, [watch('lat')]); + + return ( + + +
+ +
+
+
+ Data Perusahaan +
+
Data Perusahaan
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + + ); +} diff --git a/src/app/main/daftarPerusahaan/page.jsx b/src/app/main/daftarPerusahaan/page.jsx new file mode 100644 index 0000000..ca5b17e --- /dev/null +++ b/src/app/main/daftarPerusahaan/page.jsx @@ -0,0 +1,170 @@ +"use client" +import SearchInput from "@/components/util/SearchInput"; +import WrapperContent from "@/components/util/WrapperContent"; +import React, {useEffect, useState} from "react"; +import CardPerusahaan from "./CardPerusahaan"; +import {API} from "@/lib/API"; +import notifStore from "@/store/notifStore"; +import {ReloadOutlined} from "@ant-design/icons"; +import {Pagination} from "antd"; +import confirmStore from "@/store/confirmStore"; +import FormPerusahaan from "@/app/main/daftarPerusahaan/FormPerusahaan"; + +export default function DaftarPerusahaan() { + const {notifOpen} = notifStore() + const {confirmOpen, confirmClose, setConfirmLoading} = confirmStore(); + + const [searchText, setSearchText] = useState(null) + const [currentPage, setCurrentPage] = useState(1) + + const [dataPerusahaan, setDataPerusahaan] = useState([]) + const [modalPerusahaan, setModalPerusahaan] = useState({ + loadingModal: false, modalStatus: false, jenis: null, data: [] + }) + + const handleSearch = (event) => { + const handler = setTimeout(() => { + setSearchText(event.target.value); + }, 1000); + return () => { + clearTimeout(handler); + }; + }; + + const getPerusahaan = async (page, size) => { + let setPage = (page) ? page : 0; + let setSize = (size) ? size : 6; + let res = await API.GET(`/ref/company?page=${setPage}&size=${setSize}`) + if (res.status !== 200) { + notifOpen("Gagal", res.result.message, "danger"); + return false + } + setDataPerusahaan(res.result) + } + + const modalOpen = async (id, type) => { + + if (type === 'tambah') { + setModalPerusahaan(prev => ({ + ...prev, modalStatus: true, jenis: type, data: null + })); + + } else { + setModalPerusahaan(prev => ({ + ...prev, modalStatus: true, jenis: type, loadingModal: true + })); + let res = await API.GET('/ref/company/' + id) + setModalPerusahaan(prev => ({ + ...prev, data: res.result, loadingModal: false + })); + } + + + } + + const storeData = async (data) => { + let res = await API.POST('/ref/company', data) + if (res.status === 200) { + setModalPerusahaan(prev => ({ + ...prev, modalStatus: false, + })); + + notifOpen("Berhasil", res.result.message); + await getPerusahaan(); + setCurrentPage(1) + } else { + notifOpen("Gagal", res.result.message, "danger"); + } + } + + const deleteData = async (id) => { + confirmOpen("Hapus Data", "Yakin Hapus Data Ini", async () => { + setConfirmLoading(true); + let response = await API.DELETE(`/ref/company/${id}`); + if (response.status === 200) { + notifOpen("Berhasil", "berhasil hapus data"); + await getPerusahaan(); + setConfirmLoading(false); + confirmClose(); + setCurrentPage(1) + } else { + console.log(response); + setConfirmLoading(false); + notifOpen("Gagal", response.result.message, "danger"); + confirmClose(); + } + }); + }; + + const onChangePage = (page, pageSize) => { + console.log({page, pageSize}) + setCurrentPage(page) + getPerusahaan(page - 1, pageSize) + } + + const onChangePageSize = (current, size) => { + console.log({current, size}) + + } + + useEffect(() => { + getPerusahaan() + }, []); + + return (<> + +
+
+
+
+
Data Perusahaan
+
Daftar Perusahaan
+
+
Daftar Perusahaan
+
+
+ + + +
+
+ +
+ + `${range[0]}-${range[1]} dari ${total} Data`} + defaultPageSize={6} + pageSizeOptions={['6', '12', '24']} + showSizeChanger={true} + defaultCurrent={1} + current={currentPage} + onChange={onChangePage} + onShowSizeChange={onChangePageSize} + /> +
+
+
+ { + setModalPerusahaan(prev => ({ + ...prev, + modalStatus: false, + loadingModal: false + })); + }} + actStoreData={storeData} + data={modalPerusahaan?.data} /> + ) +} \ No newline at end of file diff --git a/src/app/main/daftarPerusahaan/style.scss b/src/app/main/daftarPerusahaan/style.scss new file mode 100644 index 0000000..5b93b42 --- /dev/null +++ b/src/app/main/daftarPerusahaan/style.scss @@ -0,0 +1,84 @@ +.card-company{ + background: #fff; + padding: 15px 20px; + border-radius: 25px; + box-shadow: 0px 8px 50px rgb(0 0 0 / 8%); + margin-top: 15px; + transition: 0.5s ease-in-out; + position: relative; + + &:hover{ + box-shadow: 0px 25px 50px rgb(0 0 0 / 15%); + } + + .content-title{ + margin-top: 15px; + padding: 10px 15px; + border-radius: 20px; + width: 60%; + + .name{ + font-weight: 600; + font-size: 14px; + color: var(--dark); + text-transform: uppercase; + } + .position{ + font-weight: 300; + font-size: 12px; + } + } + + .container-company{ + padding: 15px; + } + + .content-company{ + margin-bottom: 15px; + + .title{ + font-size: 12px; + font-weight: 400; + color: var(--text-muted); + } + .value{ + font-size: 13px; + font-weight: 500; + color: #0c111c; + } + } + + .content-status{ + position: absolute; + top: -10px; + left: 30px; + border-radius: 20px; + padding: 3px 30px 3px 10px; + + .status-flag{ + display: flex; + gap: 0px; + font-weight: 400; + font-size: 12px; + } + } + + .content-foto{ + position: absolute; + top: 0px; + right: 0px; + border-radius: 25px; + + .icon{ + font-size: 180px; + color: rgba(0, 0, 0, 0.05); + } + .img{ + width: 170px; + height: 250px; + object-fit: cover; + border-radius: 0 25px 100px 100px; + } + } + +} \ No newline at end of file diff --git a/src/app/main/dashboard/GrafikHari.jsx b/src/app/main/dashboard/GrafikHari.jsx new file mode 100644 index 0000000..f2f9ba0 --- /dev/null +++ b/src/app/main/dashboard/GrafikHari.jsx @@ -0,0 +1,107 @@ +import dynamic from "next/dynamic"; +import {useEffect, useState} from "react"; +import {Helper} from "@/lib/Helper"; + +const ReactApexChart = dynamic(() => import("react-apexcharts"), {ssr: false}); + +export default function GrafikHari() { + const [grafik, setGrafik] = useState([]); + const [optionGrafik, setOptionGrafik] = useState( + { + chart: { + type: 'area', + + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth' + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 1, + opacityFrom: 0.1, + opacityTo: 0.9, + stops: [0, 100] + } + }, + yaxis: { + labels: { + formatter: (val) => { + return Helper.numFormat(val) + }, + }, + }, + tooltip: { + shared: true, + intersect: false, + y: { + formatter: function (y) { + if (typeof y !== "undefined") { + return Helper.numFormat(y); + } + return y; + } + } + }, + colors: ['#0179c2', '#930200'], + legend: { + markers: { + fillColors: ['#0179c2', '#930200'] + } + } + } + ) + + const getChart = (data) => { + + let result = [ + { + name: 'Transaksi', + data: [1000000,21000000,31000000,41000000,41000000,71000000, 11000000, 21000000, 31000000, 10000004, 10000004, 71000000, 1000000, 21000000, 31000000, 41000000, 41000000, 71000000, 11000000, 21000000, 31000000, 10000004, 10000004, 71000000] + }, + ] + + let data_jam = []; + for (let i = 1; i <= 24; i++) { + data_jam.push(i + ':00') + } + + setOptionGrafik(prev => ({ + ...prev, + xaxis: { + categories: data_jam + // categories: ["Jan", + // "Feb", + // "Mar", + // "Apr", + // "Mei", + // "Jun", + // "Jul", + // "Ags", + // "Sep", + // "Okt", + // "Nov", + // "Des"] + }, + })); + + setGrafik(result); + } + + useEffect(() => { + getChart() + }, []); + + return(<> + +
+
Grafik Transaksi Hari Ini
+
Grafik Transaksi Hari Ini
+ +
+ + ) +} \ No newline at end of file diff --git a/src/app/main/dashboard/GrafikTahun.jsx b/src/app/main/dashboard/GrafikTahun.jsx new file mode 100644 index 0000000..2263741 --- /dev/null +++ b/src/app/main/dashboard/GrafikTahun.jsx @@ -0,0 +1,106 @@ +import dynamic from "next/dynamic"; +import {useEffect, useState} from "react"; +import {Helper} from "@/lib/Helper"; + +const ReactApexChart = dynamic(() => import("react-apexcharts"), {ssr: false}); + +export default function GrafikTahun() { + const [grafik, setGrafik] = useState([]); + const [optionGrafik, setOptionGrafik] = useState( + { + chart: { + type: 'area', + + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth' + }, + fill: { + type: 'gradient', + gradient: { + shadeIntensity: 1, + opacityFrom: 0.1, + opacityTo: 0.9, + stops: [0, 100] + } + }, + yaxis: { + labels: { + formatter: (val) => { + return Helper.numFormat(val) + }, + }, + }, + tooltip: { + shared: true, + intersect: false, + y: { + formatter: function (y) { + if (typeof y !== "undefined") { + return Helper.numFormat(y); + } + return y; + } + } + }, + colors: ['#0179c2', '#930200'], + legend: { + markers: { + fillColors: ['#0179c2', '#930200'] + } + } + } + ) + + const getChart = (data) => { + + let result = [ + { + name: 'Transaksi', + data: [1000000,21000000,31000000,41000000,41000000,71000000, 11000000, 21000000, 31000000, 10000004, 10000004, 71000000] + }, + ] + + let data_jam = []; + for (let i = 1; i <= 24; i++) { + data_jam.push(i + ':00') + } + + setOptionGrafik(prev => ({ + ...prev, + xaxis: { + categories: ["Jan", + "Feb", + "Mar", + "Apr", + "Mei", + "Jun", + "Jul", + "Ags", + "Sep", + "Okt", + "Nov", + "Des"] + }, + })); + + setGrafik(result); + } + + useEffect(() => { + getChart() + }, []); + + return(<> + +
+
Grafik Semua Transaksi
+
Data Grafik Semua Transaksi
+ +
+ + ) +} \ No newline at end of file diff --git a/src/app/main/dashboard/SegmentAgen.jsx b/src/app/main/dashboard/SegmentAgen.jsx new file mode 100644 index 0000000..531ef50 --- /dev/null +++ b/src/app/main/dashboard/SegmentAgen.jsx @@ -0,0 +1,130 @@ +import {IdcardOutlined} from "@ant-design/icons"; + +export default function SegmentAgen() { + return( +
+
+
Transaksi Per Agen
+
Perolehan Transaksi Per Agen 10 Teratas
+ +
+ +
+
+
+
Agen Alzam Zain Hamizan
+
Outlet Alzam Store
+
+
+
+
Rp 20.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Agen A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+ +
+
+ ) +} \ No newline at end of file diff --git a/src/app/main/dashboard/SegmentJenisTransaksi.jsx b/src/app/main/dashboard/SegmentJenisTransaksi.jsx new file mode 100644 index 0000000..ec3e7da --- /dev/null +++ b/src/app/main/dashboard/SegmentJenisTransaksi.jsx @@ -0,0 +1,56 @@ +import {CreditCardOutlined} from "@ant-design/icons"; + +export default function SegmentJenisTransaksi() { + return (
+
+
Transaksi Per Jenis Pembayaran
+
Perolehan Transaksi Per Jenis Pembayaran
+ +
+ +
+
+
Jenis Pembayaran A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Jenis Pembayaran A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Jenis Pembayaran A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Jenis Pembayaran A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+ +
+
) +} \ No newline at end of file diff --git a/src/app/main/dashboard/SegmentProduk.jsx b/src/app/main/dashboard/SegmentProduk.jsx new file mode 100644 index 0000000..8aeb8e7 --- /dev/null +++ b/src/app/main/dashboard/SegmentProduk.jsx @@ -0,0 +1,131 @@ +import {InboxOutlined} from "@ant-design/icons"; + +export default function SegmentProduk() { + return( +
+
+
Transaksi Per Produk
+
Perolehan Transaksi Per Produk 10 Teratas
+ +
+ +
+
+
+
Produk A
+
Outlet Alzam Store
+
+
+
+
Rp 20.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+ +
+
+
Produk A
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+ + +
+
+ ) +} \ No newline at end of file diff --git a/src/app/main/dashboard/SegmentTransaksiHari.jsx b/src/app/main/dashboard/SegmentTransaksiHari.jsx new file mode 100644 index 0000000..36bb8da --- /dev/null +++ b/src/app/main/dashboard/SegmentTransaksiHari.jsx @@ -0,0 +1,83 @@ +import {FieldTimeOutlined, UserOutlined} from "@ant-design/icons"; + +export default function SegmentTransaksiHari() { + return( +
+
+
Transaksi Per Hari
+
Total Transaksi Per Hari
+ +
+
+
+
Minggu
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Senin
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Selasa
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Rabu
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Kamis
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Jum'at
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+
+
Sabtu
+
+
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/app/main/dashboard/page.jsx b/src/app/main/dashboard/page.jsx index d0d0049..938c157 100644 --- a/src/app/main/dashboard/page.jsx +++ b/src/app/main/dashboard/page.jsx @@ -1,5 +1,187 @@ +"use client" +import {Col, Row, Spin} from "antd"; +import Input from "@/components/util/Input"; +import {useState} from "react"; +import {useForm} from "react-hook-form"; +import "./style.scss" +import GrafikHari from "@/app/main/dashboard/GrafikHari"; +import CardTransaksiHari from "@/app/main/dashboard/SegmentTransaksiHari"; +import SegmentTransaksiHari from "@/app/main/dashboard/SegmentTransaksiHari"; +import SegmentAgen from "@/app/main/dashboard/SegmentAgen"; +import GrafikTahun from "@/app/main/dashboard/GrafikTahun"; +import SegmentProduk from "@/app/main/dashboard/SegmentProduk"; +import SegmentJenisTransaksi from "@/app/main/dashboard/SegmentJenisTransaksi"; +import {CreditCardOutlined, IdcardOutlined, InboxOutlined, ShakeOutlined, ShopOutlined} from "@ant-design/icons"; + export default function Dashboard() { - return( - <>dashboard - ) + const {register, setValue, watch, getValues, formState: {errors},} = useForm(); + + const [dropdownData, setDropdownData] = useState({}); + const [dropdownLoading, setDropdownLoading] = useState({ + company: false, outlet: false, + }); + + return (
+
+
+
+
Dashboard
+
Data Dashboard
+
+
Dashboard
+
+
+
+
+ + +
+
+ + + +
+
+ + + +
+ + +
+
+ + +
+
+ + + + +
+
+
Total Agen
+
100.000
+
+ + +
+
+
Total Outlet
+
1.000
+
+ + +
+
+
Total EDC Aktif
+
100.000
+
+ + +
+
+
Total Produk
+
5.000
+
+ +
+ + + +
+ + +
+
Total Transaksi
+
Rp 500.000.000
+
Dari 100 Transaksi yang di lakukan. Transaksi rata-rata perhari adalah 10 Transaksi dengan nominal Rata-rata sebesar Rp 100.000
+
+ + + +
+
Omzet
+
Rp 50.000.000
+
Dari 100 Transaksi
+
+
+
Laba
+
Rp 50.000.000
+
Dari 100 Transaksi
+
+ + +
+
Fee Agen
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+
+
Fee Bank
+
Rp 10.000.000
+
Dari 100 Transaksi
+
+ + +
+ +
+ + + + +
+ +
+
+ +
+ + + +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
) } \ No newline at end of file diff --git a/src/app/main/dashboard/style.scss b/src/app/main/dashboard/style.scss new file mode 100644 index 0000000..3d5682f --- /dev/null +++ b/src/app/main/dashboard/style.scss @@ -0,0 +1,229 @@ +.dashboard { + + .card { + background: #fff; + color: #000; + text-align: center; + padding: 25px; + //border:2px solid #f3f3f3; + box-shadow: none; + border-radius: 25px; + + .icon-summary{ + position: absolute; + top: 0; + font-size: 72px; + opacity: 0.09; + } + + + .title { + font-size: 13px; + font-weight: 400; + color: #000; + } + + .desc { + font-size: 12px; + color: #a1a1a1; + } + + .nominal { + font-size: 24px; + font-weight: 600; + + &.low { + font-size: 18px; + } + + small { + font-size: 13px; + font-weight: 400; + color: var(--text-muted); + } + } + + + .transaksi { + text-align: left; + margin-top: 20px; + //padding: 12px 20px; + } + + &.dark { + border-bottom: 3px solid var(--dark); + + .nominal { + color: var(--dark); + } + + .icon-summary{ + color: var(--dark); + } + } + + &.green { + border-bottom: 3px solid var(--color-logo-green); + + .nominal { + color: var(--color-logo-green); + } + + .icon-summary { + color: var(--color-logo-green); + } + } + + &.purple { + border-bottom: 3px solid var(--color-logo-purple); + + .nominal { + color: var(--color-logo-purple); + } + + .icon-summary { + color: var(--color-logo-purple); + } + } + + &.orange { + border-bottom: 3px solid var(--color-logo-orange); + + .nominal { + color: var(--color-logo-orange); + } + + .icon-summary { + color: var(--color-logo-orange); + } + } + + &.primary { + border-bottom: 3px solid var(--primary); + + .nominal { + color: var(--primary); + } + } + + + } + + + .transaksi-hari { + color: #fff !important; + + &.light { + color: var(--dark) !important; + + .subTitle { + color: var(--text-muted); + } + + .title { + color: var(--dark) !important; + } + + + .nominal { + + .amount { + small { + color: var(--text-muted) !important; + } + + } + + .count { + color: var(--text-muted) !important; + } + + } + } + + + .title { + font-size: 14px; + font-weight: 600; + color: #fff !important; + } + + .subTitle { + font-size: 12px; + font-weight: 400; + color: var(--text-muted-reverse); + margin-bottom: 30px; + } + + .content { + display: flex; + justify-content: space-between; + border-top: 1px solid rgb(255 255 255 / 9%); + padding: 15px 0; + + &.reward-product { + background: #f7963e24; + border-radius: 20px; + padding: 15px; + margin: 0 -15px; + + .icon { + color: #ffffff !important; + background: #f7963e; + } + } + + &.reward-agen { + background: #181c3214; + border-radius: 20px; + padding: 15px; + margin: 0 -15px; + + .icon { + color: #ffffff !important; + background: var(--dark); + } + } + + .icon { + font-size: 16px; + background: rgba(0, 0, 0, 0.06); + width: 30px; + height: 30px; + padding: 3px 7px; + border-radius: 50%; + } + + .name { + font-size: 12px; + font-weight: 600; + display: flex; + gap: 10px; + align-items: center; + text-align: left; + } + + .nominal { + + .amount { + font-size: 16px; + font-weight: 600; + + small { + font-size: 12px; + font-weight: 400; + color: var(--text-muted-reverse); + } + + } + + .count { + font-size: 11px; + color: var(--text-muted-reverse); + } + + } + } + } + +} \ No newline at end of file diff --git a/src/app/main/layout.jsx b/src/app/main/layout.jsx index 5f47a96..e686d7a 100644 --- a/src/app/main/layout.jsx +++ b/src/app/main/layout.jsx @@ -3,33 +3,33 @@ import React, {useEffect, useState} from "react"; import {QueryClient, QueryClientProvider} from "react-query"; - -import dynamic from "next/dynamic"; import ModalConfirm from '@/components/util/ModalConfirm'; import ModalNotif from "@/components/util/ModalNotif"; import ChangePassword from "@/app/main/ChangePassword"; import ChangeProfile from "@/app/main/ChangeProfile"; -import LoadingPage from "@/components/util/LoadingPage"; import {getCookie} from "cookies-next"; import {API} from "@/lib/API"; -import {notFound, usePathname, useRouter} from "next/navigation"; -import {LoadingOutlined} from "@ant-design/icons"; +import {usePathname, useRouter} from "next/navigation"; import ModalSessionTimeout from "@/components/util/ModalSessionTimeout"; import useIdleDetection from "@/hooks/useIdleDetection"; import MenuList from "@/components/master/Menu"; import menuStore from "@/store/menuStore"; import CheckAuth from "@/components/util/CheckAuth"; - -const Navbar = dynamic(() => import("@/components/master/Navbar"), {ssr: false,}); +import LoadingPage from "@/components/util/LoadingPage"; +import {Spin} from "antd"; +import {LoadingOutlined} from "@ant-design/icons"; const queryClient = new QueryClient(); + export default function MainLayout({children}) { const pathname = usePathname() const router = useRouter(); const [checkAuth, setCheckAuth] = useState(true) const {isIdle, setIsIdle} = useIdleDetection(); - const {toggleStatus} = menuStore() + const {toggleStatus, loadingPageStatus} = menuStore() + + const checkToken = async () => { @@ -61,36 +61,37 @@ export default function MainLayout({children}) { } useEffect(() => { checkToken() + }, []); - return ( - - <> - {(checkAuth) ? - - : <> - {isIdle && } - + return ( - {/**/} - -
-
-
{children}
- - - - + <> + {(checkAuth) ? : <> + {isIdle && } + {/**/} + - - } +
+
+ } style={{color:'var(--primary)'}} tip={
Loading
} spinning={loadingPageStatus}> + + {children} + +
+
+
+ + + + + + } - -
- ); + +
); } diff --git a/src/app/main/user/menu/page.jsx b/src/app/main/user/menu/page.jsx index 1eaf9a3..5a520ee 100644 --- a/src/app/main/user/menu/page.jsx +++ b/src/app/main/user/menu/page.jsx @@ -1,6 +1,5 @@ "use client"; import React, {useEffect, useRef, useState} from "react"; -import breadcrumbStore from "@/store/breadcrumbStore"; import modalStore from "@/store/modal"; import confirmStore from "@/store/confirmStore"; import {API} from "@/lib/API"; @@ -22,7 +21,6 @@ const MenuPrivilage = () => { const formRef = useRef(); const {modalOpen, modalClose, FormId, modalStat, setModalLoading, setModalDetail, actionType} = modalStore(); - const {setSubTitle, setTitle} = breadcrumbStore(); const {confirmOpen, confirmClose, setConfirmLoading} = confirmStore(); const {notifOpen} = notifStore() diff --git a/src/app/main/user/userlist/page.jsx b/src/app/main/user/userlist/page.jsx index cbfe753..353ca3c 100644 --- a/src/app/main/user/userlist/page.jsx +++ b/src/app/main/user/userlist/page.jsx @@ -3,8 +3,6 @@ import {useEffect, useState} from "react"; import {DropdownAPI} from "@/lib/DropdownAPI"; import RefTemplate from "@/components/refTemplate/Main"; -import BadgeStatus from "@/components/util/BadgeStatus"; -import BadgeStatusApproval from "@/components/util/BadgeStatusApproval"; export default function UserList() { const [listForm, setListForm] = useState() @@ -142,15 +140,11 @@ export default function UserList() { { title: "Status", dataIndex: 'active', - render: (active) => , - sorter: (a, b) => a.active - b.active, align: 'center' }, { title: "Status Persetujuan", dataIndex: 'statusApprovalId', - render: (statusApprovalId) => , - sorter: (a, b) => a.statusApprovalId - b.statusApprovalId, align: 'center' }, ]} diff --git a/src/app/page.jsx b/src/app/page.jsx index e22dd9f..9ddf94e 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -7,6 +7,7 @@ import {LoadingOutlined} from "@ant-design/icons"; import {getCookie} from "cookies-next"; import {useRouter} from "next/navigation"; import {API} from "@/lib/API"; +import CheckAuth from "@/components/util/CheckAuth"; export default function Home(){ const router = useRouter(); @@ -30,17 +31,7 @@ export default function Home(){ return ( <> -
-
-
- -
SILOS KPR - Tapera Connect
-
Bank Kalteng
-
check authorization
- -
-
-
+ { + let valTheme = localStorage.getItem('valTheme') + let state = null + if (valTheme == 'true') { + state = true + document.body.classList.add('darkMode') + } else { + state = false + } + const pathname = usePathname() - const [MenuList, setMenuList] = useState([]) - const [menuTapera, setMenuTapera] = useState([]) - const [menuSilos, setMenuSilos] = useState([]) - const [menuUsers, setMenuUsers] = useState([]) - const [menuManajemenData, setMenuManajemenData] = useState([]) + const [menuList, setMenuList] = useState([]) + const {setModalPassword, setModalProfile} = modalStore() const [current, setCurrent] = useState(null); const [collapsed, setCollapsed] = useState(false); - const {toggleStatus, setToggle} = menuStore() + const {toggleStatus, setToggle, setLoadingPageStatus} = menuStore() const {notifOpen} = notifStore() + const {removeAuth} = useAuth() + const [isTheme, setTheme] = useState(state); const toggleCollapsed = () => { setCollapsed(!collapsed); @@ -40,11 +51,11 @@ const MenuList = () => { let resultListChildThird = null if (vChild.childs) { resultListChildThird = vChild?.childs?.map((vChildThird, kChildThird) => { - if(vChildThird.url){ + if (vChildThird.url) { return { - label: ({vChildThird.menuNm}), key: vChildThird.menuId, icon: (
), + label: ( eventChange(vChildThird.url)} href={vChildThird.url}>{vChildThird.menuNm}), key: vChildThird.menuId, icon: (
), } - }else{ + } else { return { label: vChildThird.menuNm, key: vChildThird.menuId, icon: (
), } @@ -53,11 +64,11 @@ const MenuList = () => { }) } - if(vChild.url){ + if (vChild.url) { tmpChild.push({ - label: ({vChild.menuNm}), key: vChild.menuId, icon: (
), children: resultListChildThird + label: ( eventChange(vChild.url)} href={vChild.url}>{vChild.menuNm}), key: vChild.menuId, icon: (
), children: resultListChildThird }) - }else{ + } else { tmpChild.push({ label: vChild.menuNm, key: vChild.menuId, icon: (
), children: resultListChildThird @@ -69,14 +80,14 @@ const MenuList = () => { tmpChild = null } - if(v.url){ + if (v.url) { tmpMenu.push({ - label: ({v.menuNm}), key: v.menuId, icon: (
), children: tmpChild + label: (eventChange(v.url)} href={v.url}>{v.menuNm}), key: v.menuId, icon: (
), children: tmpChild }) - }else{ + } else { tmpMenu.push({ - label: v.menuNm, key: v.menuId, icon: (
), children:[{ - key: 'g1', label: 'Menu '+v.menuNm, type: 'group', children: tmpChild + label: v.menuNm, key: v.menuId, icon: (
), children: [{ + key: 'g1', label: 'Menu ' + v.menuNm, type: 'group', children: tmpChild }] }) @@ -86,16 +97,20 @@ const MenuList = () => { console.log(tmpMenu) - setMenuTapera(tmpMenu) + // setMenuTapera(tmpMenu) // setMenuTapera(tmpMenu.filter((v)=>v.key === 1)) // setMenuSilos(tmpMenu.filter((v)=>v.key === 2)) // setMenuManajemenData(tmpMenu.filter((v)=>v.key === 3)) - // setMenuUsers(tmpMenu.filter((v)=>v.key === 8)) + setMenuList(tmpMenu.filter((v)=>v.key === 8)) } } + const eventChange = (url) => { + if (pathname !== url) setLoadingPageStatus(true) + } + const getMenuDummy = () => { const items = [{ key: 'sub1', label:
Tapera Connect
, icon: , children: [{ @@ -113,6 +128,45 @@ const MenuList = () => { setMenuList(items) } + const modalChangeProfile = () => { + setModalProfile(true) + } + const modalChangePassword = (type) => { + setModalPassword(true, type) + } + + const ViewImage = ({fotoMember}) => { + if (fotoMember == null) return ; + + let getImage = '/'; + return ; + }; + + const logout = async () => { + let response = await API.POST('/auth/logout'); + if (response.status === 200) { + await removeAuth() + // router.push("/login"); + } + } + + + const buttonHandler = (val) => { + setTheme((status) => !status); + let theme = null + if (val != true) { + theme = 'lightMode' + document.body.classList.add(theme); + document.body.classList.remove('darkMode'); + } else { + theme = 'darkMode' + document.body.classList.add(theme); + document.body.classList.remove('lightMode'); + } + localStorage.setItem('setTheme', theme) + localStorage.setItem('valTheme', val) + }; + useEffect(() => { getMenu() // getMenuDummy() @@ -124,38 +178,73 @@ const MenuList = () => { return (<> -
- -
-
- logo -
-
GIS - Digital Transaction
-
version {packageJson.version}
+
+ +
+
+ logo +
+
GIS - Digital Transaction
+
version {packageJson.version}
+
+
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+
Zamzam
+
Administrator
+
+ + +
+ +
+
+ +
+
Administrator
+
Administrator
+
+
+
+ + +
+ } unCheckedChildren={} onChange={buttonHandler} checked={isTheme}/> +
+
+
+
- -
-
- -
- -
- - - -
- ); + + + + + +
+ ); }; export default React.memo(MenuList); diff --git a/src/components/master/Navbar.jsx b/src/components/master/Navbar.jsx index d473ca1..e69de29 100644 --- a/src/components/master/Navbar.jsx +++ b/src/components/master/Navbar.jsx @@ -1,351 +0,0 @@ -"use client"; -import React, {useEffect, useState} from "react"; -import {BellOutlined, CloseOutlined, MenuFoldOutlined, MenuOutlined, MenuUnfoldOutlined, MoonOutlined, SunOutlined, UserOutlined} from '@ant-design/icons'; -import useAuth from "@/hooks/useAuth"; -import {useRouter} from "next/navigation"; -import {useAPI} from "@/hooks/useAPI"; -import modalStore from "@/store/modal"; -import {API} from "@/lib/API"; -import {Button, Drawer, Menu, Switch} from "antd"; -import Link from "next/link"; -import notifStore from "@/store/notifStore"; -import ExportedImage from "next-image-export-optimizer" -import menuStore from "@/store/menuStore"; - -function Navbar() { - const router = useRouter(); - const {notifOpen} = notifStore() - const {setToggle} = menuStore() - const {data: dataUser, isSuccess} = useAPI.GET('user', '/ref/user/' + localStorage.getItem('userId')) - const {removeAuth} = useAuth() - const [MenuList, setMenuList] = useState([]) - const {setModalPassword, setModalProfile} = modalStore() - const [current, setCurrent] = useState(null); - const [collapsed, setCollapsed] = useState(false); - - - const ViewImage = ({fotoMember}) => { - if (fotoMember == null) return ; - - let getImage = '/'; - return ; - }; - - - const logout = async () => { - let response = await API.GET('/auth/logout'); - console.log(response) - if (response.status === 200) { - await removeAuth() - router.push("/login"); - } - } - - let valTheme = localStorage.getItem('valTheme') - let state = null - if (valTheme == 'true') { - state = true - document.body.classList.add('darkMode') - } else { - state = false - } - - const [isTheme, setTheme] = useState(state); - - const buttonHandler = (val) => { - setTheme((status) => !status); - let theme = null - if (val != true) { - theme = 'lightMode' - document.body.classList.add(theme); - document.body.classList.remove('darkMode'); - } else { - theme = 'darkMode' - document.body.classList.add(theme); - document.body.classList.remove('lightMode'); - } - localStorage.setItem('setTheme', theme) - localStorage.setItem('valTheme', val) - }; - - const modalChangeProfile = () => { - setModalProfile(true) - } - const modalChangePassword = (type) => { - console.log(type) - setModalPassword(true, type) - } - - const getMenu = async () => { - let menu = await API.GET('/ref/menu'); - if (menu.status !== 200) { - notifOpen("Gagal", menu?.result?.message, "danger"); - } else { - let tmpMenu = [] - menu?.result?.forEach((v, k) => { - - let tmpChild = [] - - if (v.childs) { - v?.childs?.forEach((vChild, kChild) => { - - let resultListChildThird = null - if (vChild.childs) { - resultListChildThird = vChild?.childs?.map((vChildThird, kChildThird) => { - return { - label: ({vChildThird.menuNm}), - key: vChildThird.menuId, - icon: (
), - } - }) - } - - tmpChild.push( - { - label: ({vChild.menuNm}), - key: vChild.menuId, - icon: (
), - children: resultListChildThird - } - ) - }) - - } else { - tmpChild = null - } - - tmpMenu.push( - { - label: ({v.menuNm}), - key: v.menuId, - icon: (
), - children: tmpChild - }, - ) - }) - - setMenuList(tmpMenu) - } - } - - - const checkFirstLogin = () => { - if (dataUser?.result?.userStatusId === 3) { - modalChangePassword('first') - } - } - - const checkPasswordExpired = () => { - if (dataUser?.result?.passwordExpired) { - modalChangePassword('expired') - } - } - - useEffect(() => { - if (isSuccess) { - checkFirstLogin() - checkPasswordExpired() - } - - }, [isSuccess]); - - - useEffect(() => { - getMenu() - - }, []); - - const onClickMenu = (e) => { - // console.log('click ', e); - setCollapsed(!collapsed); - // document.querySelector(".backdrop").classList.remove("backdropMenu"); - // document.querySelector(".menuInline").classList.remove("in"); - // document.querySelector(".menuInline").classList.add("out"); - setCurrent(e.key); - }; - - const [scroll, setScroll] = useState(false); - useEffect(() => { - window.addEventListener("scroll", () => { - setScroll(window.scrollY > 15); - }); - }, []); - - const [openDraw, setOpenDraw] = useState(false); - const showDrawer = () => { - setOpenDraw(true); - }; - const closeDraw = () => { - setOpenDraw(false); - }; - - const toggleCollapsed = () => { - setCollapsed(!collapsed); - }; - - return ( - <> - {/*
*/} - - - - - -
    -
  • -
    - - 20 Januari 2024 -
    -
    -
    -
    - -
    -
    -
    -
    Aktifitas
    -
    update hasil aktifitas
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    Aktifitas
    -
    update hasil aktifitas
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    Aktifitas
    -
    update hasil aktifitas
    -
    -
    -
  • -
  • -
    - - 19 Januari 2024 -
    -
    -
    -
    - -
    -
    -
    -
    Aktifitas
    -
    update hasil aktifitas
    -
    -
    -
  • - -
-
- -
- - - - ); -} - -export default React.memo(Navbar); \ No newline at end of file diff --git a/src/components/refTemplate/Main.jsx b/src/components/refTemplate/Main.jsx index 5e67c18..06f6aa0 100644 --- a/src/components/refTemplate/Main.jsx +++ b/src/components/refTemplate/Main.jsx @@ -1,6 +1,5 @@ "use client"; import React, {useEffect, useRef, useState} from "react"; -import breadcrumbStore from "@/store/breadcrumbStore"; import modalStore from "@/store/modal"; import confirmStore from "@/store/confirmStore"; import {API} from "@/lib/API"; @@ -33,7 +32,7 @@ const RefTemplate = ({ }) => { const formRef = useRef(); const {modalOpen, modalClose, FormId, modalStat, setModalLoading, setModalDetail, actionType} = modalStore(); - const {setSubTitle, setTitle, setShow} = breadcrumbStore(); + const {confirmOpen, confirmClose, setConfirmLoading} = confirmStore(); const {notifOpen} = notifStore() @@ -458,8 +457,6 @@ const RefTemplate = ({ }; useEffect(() => { - setTitle(refTitle); - setSubTitle(refSubTitle); initColumn(); if (!serverSide){ getData(); @@ -486,8 +483,6 @@ const RefTemplate = ({
- -
{refTitle}
@@ -496,7 +491,7 @@ const RefTemplate = ({
{refSubTitle}
-
+
{ - let setRequired = (required) ? { required: `Data ${title} Harus di Isi` } : {} - let setMaxLength = (maxlength) ? { maxLength: { value: maxlength, message: `Maksimal ${maxlength} Karakter` } } : {} - - let validateList = {...setRequired,...setMaxLength} + title, name, register, error, placeholder, maxlength, required, setValue, format = 'DD MMM YYYY', picker = 'default', + }) => { + let setRequired = (required) ? {required: `Data ${title} Harus di Isi`} : {} + let setMaxLength = (maxlength) ? {maxLength: {value: maxlength, message: `Maksimal ${maxlength} Karakter`}} : {} + + let validateList = {...setRequired, ...setMaxLength} const onChange = (_, dateString) => { setValue(name, { - startDate: dateString[0], - endDate: dateString[1] - }, { shouldValidate: true }) + startDate: dateString[0], endDate: dateString[1] + }, {shouldValidate: true}) }; const newFormat = Helper.setFormatInputDate(picker, format) - return ( -
-
- - - - - {error[name] &&
{error[name]?.message}
} -
-
- ); - }; - - export default InputDateRange; + return (
+
+ + + + + {error[name] &&
{error[name]?.message}
} +
+
); +}; + +export default InputDateRange; \ No newline at end of file diff --git a/src/components/util/Input/InputSelect.jsx b/src/components/util/Input/InputSelect.jsx index 636cff7..f7c037f 100644 --- a/src/components/util/Input/InputSelect.jsx +++ b/src/components/util/Input/InputSelect.jsx @@ -13,6 +13,7 @@ const InputSelect = ({ setDisabled, val, loading, + style, withSearch = true, getDataOnChange }) => { @@ -33,7 +34,7 @@ const InputSelect = ({ return ( <> -
+
Data tidak ditemukan
} + options={(data || []).map((d) => ({ + value: d.value, + label: d.text, + }))} + /> + + + {error[name] && ( +
{error[name]?.message}
+ )} +
+
+ + ); +}; + +export default InputSelectRemote; diff --git a/src/components/util/Input/index.jsx b/src/components/util/Input/index.jsx index 0973f1a..8a3e938 100644 --- a/src/components/util/Input/index.jsx +++ b/src/components/util/Input/index.jsx @@ -15,12 +15,14 @@ import InputCustom from "./InputCustom"; import InputPercentage from "./InputPercentage"; import InputSwitch from "./InputSwitch"; import InputAntFile from "./InputAntFile"; +import InputSelectRemote from "@/components/util/Input/InputSelectRemote"; const Input = { Text: InputText, Number: InputNumber, Money: InputMoney, Select: InputSelect, + SelectRemote: InputSelectRemote, Username: InputUsername, Email: InputEmail, Password: InputPassword, @@ -36,23 +38,4 @@ const Input = { AntFile: InputAntFile } -export const REF_INPUT_NAME = { - TEXT: 'Text', - NUMBER: 'Number', - MONEY: 'Money', - SELECT: 'Select', - USERNAME: 'Username', - EMAIL: 'Email', - PASSWORD: 'Password', - TEXTAREA: 'Textarea', - IMAGE: 'Image', - DATERANGE: 'DateRange', - TEXT_TASK: 'TextTask', - DATE: 'Date', - UPLOAD_IMAGE: 'UploadImage', - CUSTOM: 'Custom', - PERCENTAGE: 'Percentage', - SWITCH: 'Switch', -} - export default Input diff --git a/src/components/util/LoadingPage.jsx b/src/components/util/LoadingPage.jsx index 08c763f..84bf79c 100644 --- a/src/components/util/LoadingPage.jsx +++ b/src/components/util/LoadingPage.jsx @@ -2,18 +2,18 @@ import React from 'react' import NextTopLoader from 'nextjs-toploader'; const LoadingPage = () => { - return ( - - ) + return ( + + ) } export default LoadingPage \ No newline at end of file diff --git a/src/components/util/WrapperContent.jsx b/src/components/util/WrapperContent.jsx index 0f77479..e654612 100644 --- a/src/components/util/WrapperContent.jsx +++ b/src/components/util/WrapperContent.jsx @@ -1,12 +1,22 @@ import {motion} from "framer-motion" +import {useEffect} from "react"; +import {useRouter} from "next/navigation"; +import menuStore from "@/store/menuStore"; export default function WrapperContent({children,type}) { + + const router = useRouter() + const {setLoadingPageStatus} = menuStore() + + useEffect(() => { + setLoadingPageStatus(false) + }, [router]); return( <> {children}
diff --git a/src/lib/DropdownAPI.jsx b/src/lib/DropdownAPI.jsx index cb242db..571da46 100644 --- a/src/lib/DropdownAPI.jsx +++ b/src/lib/DropdownAPI.jsx @@ -9,451 +9,89 @@ const role = async () => { }; }); } - const cabang = async () => { +const cabang = async () => { let response = await API.GET(`/ref/branch`); return response?.result?.data?.map((v) => { return { - value: v.kdCab, - label: v.namaCabang, + value: v.branchId, + label: v.nm, }; }); } -const productType = async () => { - let response = await API.GET(`/ref/productType`); +const divisi = async () => { + let response = await API.GET(`/ref/divisi`); return response?.result?.data?.map((v) => { return { - value: v.productTypeId, - label: v.definition, + value: v.divisiId, + label: v.divisiNm, }; }); } -const product = async () => { - let response = await API.GET(`/ref/product`); +const agama = async () => { + let response = await API.GET(`/ref/agama`); return response?.result?.data?.map((v) => { return { - value: v.id, - label: v.prodName, + value: v.agamaId, + label: v.agamaNm, }; }); } - -const branchType = async () => { - let response = await API.GET(`/ref/branch-type`); +const jabatan = async () => { + let response = await API.GET(`/ref/jabatan`); return response?.result?.data?.map((v) => { return { - value: v.id, - label: v.definition, + value: v.jabatanId, + label: v.jabatanNm, }; }); } - -const branch = async () => { - let response = await API.GET(`/ref/branch`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.branchName, - }; - }); -} - -const wilayah = async () => { - let response = await API.GET(`/ref/wilayah`); - return response?.result?.data?.map((v) => { - return { - value: v.wilayahId, - label: v.wil, - }; - }); -} - -const bank = async () => { - let response = await API.GET(`/ref/bank`); - return response?.result?.data?.map((v) => { - return { - value: v.bankCode, - label: v.bankDescription, - }; - }); -} - -const productGroup = async () => { - let response = await API.GET(`/ref/group-product`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.productGrpName, - }; - }); -} - -const developer = async () => { - let response = await API.GET(`/ref/developer`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.developerName, - }; - }); -} - -const productCode = async () => { - let response = await API.GET(`/cbs/loan-product`); - return response?.result?.data?.map((v) => { - return { - value: v.prodid, - label: v.prodnm, - }; - }); -} - -const aplId = async () => { - let response = await API.GET(`/cbs-config/applid`); - return response?.result?.data?.map((v) => { - return { - value: v.parmid, - label: v.parmnm, - }; - }); -} - -const govPRG = async () => { - let response = await API.GET(`/cbs-config/govprg`); - return response?.result?.data?.map((v) => { - return { - value: v.parmid, - label: v.parmnm, - }; - }); -} - -const proposalType = async () => { - let response = await API.GET(`/ref/proposal-type`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const workflowStatus = async () => { - let response = await API.GET(`/ref/workflow-status`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.statusDefinition, - }; - }); -} - -const groupUser = async () => { - let response = await API.GET(`/ref/user-group`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.groupDefinition, - }; - }); -} - -const workflowType = async () => { - let response = await API.GET(`/ref/workflow-type`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const pekerjaanPPDPP = async () => { - let response = await API.GET(`/ref/pekerjaan-ppdpp`); - return response?.result?.data?.map((v) => { - return { - value: v.pekerjaan, - label: v.nmPekerjaan, - }; - }); -} - -const statusPembiayaan = async () => { - let response = await API.GET(`/ref/status-pembiayaan`); - return response?.result?.data?.map((v) => { - return { - value: v.statusPembiayaan, - label: v.namaStatusPembiayaan, - }; - }); -} - -const pekerjaan = async () => { - let response = await API.GET(`/ref/pekerjaan`); - return response?.result?.data?.map((v) => { - return { - value: v.idPekerjaan, - label: v.nmPekerjaan, - }; - }); -} - -const accountTypeFLPP = async () => { - let response = await API.GET(`/ref/jenis_accflpp`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const masterGroupScoring = async () => { - let response = await API.GET(`/ref/master-group-scoring`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.paramName, - }; - }); -} - -const developerScoring = async () => { - let response = await API.GET(`/ref/developer-param-scoring`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const productTapera = async (filter = '') => { - if ( filter ) { - filter = '?' + new URLSearchParams(filter).toString() - } - - let response = await API.GET(`/ref-tapera/product${filter}`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.namaProduk, - }; - }); -} - -const jenisPerumahanTapera = async () => { - let response = await API.GET(`/ref-tapera/jenis-perumahan`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const perumahanTapera = async () => { - let response = await API.GET(`/ref-tapera/rumah`); - return response?.result?.data?.map((v) => { - return { - value: v.idRumah, - label: v.namaPerumahan, - ...v - }; - }); -} - -const wilayahTapera = async () => { - let response = await API.GET(`/ref-tapera/wilayah/dropdown`); - return response?.result?.map((v) => { - return { - value: v.wilayahId, - label: v.wil, - }; - }); -} - -const jenisImbPbg = async () => { - let response = await API.GET(`/ref-tapera/jenis-imb/dropdown`); - return response?.result?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const segemenPekerjaan = async () => { - let response = await API.GET(`/ref-tapera/segmen-pekerjaan/dropdown`); - return response?.result?.map((v) => { - return { - value: v.segmenCode, - label: v.definition, - }; - }); -} - -const jenisAkadTapera = async () => { - let response = await API.GET(`/ref-tapera/jenis-akad/dropdown`); - return response?.result?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const jenisBungaTapera = async () => { - let response = await API.GET(`/ref-tapera/jenis-bunga/dropdown`); - return response?.result?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const jenisPembayaranAngsuran = async () => { - let response = await API.GET(`/ref-tapera/jenis-bayar-angsuran/dropdown`); - return response?.result?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - const jenisKelamin = async () => { - let response = await API.GET(`/ref/jenis-kelamin`); + let response = await API.GET(`/ref/jenisKelamin`); return response?.result?.data?.map((v) => { return { - value: v.id, - label: v.description, + value: v.jenisKelaminId, + label: v.jenisKelaminNm, }; }); } - -const statusKawin = async () => { - let response = await API.GET(`/ref/status-kawin`); +const statusKaryawan = async () => { + let response = await API.GET(`/ref/statusKaryawan`); return response?.result?.data?.map((v) => { return { - value: v.idStatusKawin, - label: v.nmStatusKawin, + value: v.statusKaryawanId, + label: v.statusKaryawanNm, }; }); } -const jenisPembiayaan = async () => { - let response = await API.GET(`/ref-tapera/jenis-pembiayaan`); +const karyawan = async () => { + let response = await API.GET(`/ref/karyawan`); return response?.result?.data?.map((v) => { return { - value: v.id, - label: v.definition, + value: v.karyawanId, + label: v.karyawanNm, }; }); } - -const prinsipPembiayaan = async () => { - let response = await API.GET(`/ref-tapera/prinsip-pembiayaan`); +const jenisPenjadwalan = async () => { + let response = await API.GET(`/ref/tipeQuotes`); return response?.result?.data?.map((v) => { return { - value: v.id, - label: v.definition, + value: v.tipeQuotesId, + label: v.tipeQuotesNm, }; }); } -const tipeProgram = async () => { - let response = await API.GET(`/ref-tapera/tipe-program`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const lokasiPerumahanTapera = async () => { - let response = await API.GET(`/ref-tapera/perumahaan/dropdown`); - return response?.result?.map((v) => { - return { - value: v.idLokasi, - label: v.namaPerumahan, - }; - }); -} - -const kolektibilitas = async () => { - let response = await API.GET(`/ref-tapera/kolektibilitas`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.definition, - }; - }); -} - -const developerTapera = async () => { - let response = await API.GET(`/ref-tapera/developer`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.developerName, - }; - }); -} - -const jenisSertifikat = async () => { - let response = await API.GET(`/ref/jenis-sertifikat`); - return response?.result?.data?.map((v) => { - return { - value: v.id, - label: v.defJenis, - }; - }); -} - - export const DropdownAPI = { role, cabang, - productType, - branchType, - branch, - bank, - wilayah, - productGroup, - productCode, - aplId, - govPRG, - developer, - product, - proposalType, - workflowStatus, - groupUser, - workflowType, - pekerjaanPPDPP, - statusPembiayaan, - pekerjaan, - accountTypeFLPP, - masterGroupScoring, - developerScoring, - productTapera, - jenisPerumahanTapera, - perumahanTapera, - wilayahTapera, - jenisImbPbg, - segemenPekerjaan, - jenisAkadTapera, - jenisBungaTapera, - jenisPembayaranAngsuran, + divisi, + agama, + jabatan, jenisKelamin, - statusKawin, - jenisPembiayaan, - prinsipPembiayaan, - tipeProgram, - lokasiPerumahanTapera, - kolektibilitas, - developerTapera, - jenisSertifikat + statusKaryawan, + karyawan, + jenisPenjadwalan }; diff --git a/src/store/breadcrumbStore.js b/src/store/breadcrumbStore.js deleted file mode 100644 index 458d688..0000000 --- a/src/store/breadcrumbStore.js +++ /dev/null @@ -1,15 +0,0 @@ -import {create} from 'zustand'; - -const breadcrumbStore = create((set) => ({ - title: '', - subTitle: '', - widthTitle: '0px', - setTitle: (data) => set(() => ({title: data})), - setSubTitle: (data) => set(() => ({subTitle: data})), - setHide: () => set(() => ({widthTitle: '0px'})), - setShow: () => set(() => ({widthTitle: '270px'})), - - -})); - -export default breadcrumbStore; \ No newline at end of file diff --git a/src/store/menuStore.js b/src/store/menuStore.js index 5356db0..3672284 100644 --- a/src/store/menuStore.js +++ b/src/store/menuStore.js @@ -2,7 +2,9 @@ import {create} from 'zustand'; const menuStore = create((set) => ({ toggleStatus: true, + loadingPageStatus:false, setToggle: () => set((prev) => ({toggleStatus: !prev.toggleStatus})), + setLoadingPageStatus: (stat) => set((prev) => ({loadingPageStatus: stat})), })); export default menuStore; \ No newline at end of file diff --git a/src/store/modalDashboard.js b/src/store/modalDashboard.js deleted file mode 100644 index c0fb52b..0000000 --- a/src/store/modalDashboard.js +++ /dev/null @@ -1,96 +0,0 @@ -import {create} from "zustand"; - -const modalDashboardStore = create((set) => ({ - modalStat: false, - modalLoading: false, - FormId: null, - actionType: null, - typeData: null, - typeKolek: null, - datatableDetail: false, - datatableDetailCabang: false, - datatableDetailKolektability: false, - datatableDetailNasabah: false, - dataNasabah: false, - kdCabangKonsol: null, - kdCabang: null, - nmCabangKonsol: null, - nmCabang: null, - customerId: null, - title: null, - subTitle: null, - modalOpen: (id, action) => - set(() => ({ - modalStat: true, - modalLoading: true, - FormId: id, - actionType: action - })), - modalClose: () => - set(() => ({ - modalStat: false, - FormId: null, - })), - setModalLoading: (status, type) => - set(() => ({ - modalLoading: status, - })), - setTypeData: (text) => - set(() => ({ - typeData: text - })), - setTypeKolek: (text) => - set(() => ({ - typeKolek: text - })), - setDatatableDetail: (status) => - set(() => ({ - datatableDetail: status - })), - setDatatableDetailCabang: (status) => - set(() => ({ - datatableDetailCabang: status - })), - setDatatableDetailKolektability: (status) => - set(() => ({ - datatableDetailKolektability: status - })), - setDatatableDetailNasabah: (status) => - set(() => ({ - datatableDetailNasabah: status - })), - setDataNasabah: (status) => - set(() => ({ - dataNasabah: status - })), - setKdCabangKonsol: (status) => - set(() => ({ - kdCabangKonsol: status - })), - setKdCabang: (status) => - set(() => ({ - kdCabang: status - })), - setNmCabangKonsol: (status) => - set(() => ({ - nmCabangKonsol: status - })), - setNmCabang: (status) => - set(() => ({ - nmCabang: status - })), - setCustomerId: (status) => - set(() => ({ - customerId: status - })), - setTitle: (status) => - set(() => ({ - title: status - })), - setSubTitle: (status) => - set(() => ({ - subTitle: status - })) -})); - -export default modalDashboardStore; diff --git a/src/store/store.js b/src/store/store.js deleted file mode 100644 index 926ff9a..0000000 --- a/src/store/store.js +++ /dev/null @@ -1,9 +0,0 @@ -import {create} from 'zustand'; - -const useStore = create((set) => ({ - count: 0, - increment: () => set((state) => ({ count: state.count + 1 })), - decrement: () => set((state) => ({ count: state.count - 1 })), -})); - -export default useStore; \ No newline at end of file