@vite(['resources/css/app.css', 'resources/js/app.js'])

Buat Akun Baru

Lengkapi data melalui langkah berikut

@php $stepMap = [ 'app_module' => 1, 'ministry_id' => 1, 'organization_unit_id' => 2, 'name' => 2, 'nik' => 2, 'nip' => 2, 'jabatan' => 2, 'surat_tugas' => 2, 'email' => 3, 'password' => 3, 'password_confirmation' => 3, 'recaptcha_accepted' => 4, ]; $errorStep = 1; foreach ($errors->keys() as $errorKey) { if (isset($stepMap[$errorKey])) { $errorStep = min($errorStep, $stepMap[$errorKey]); } } @endphp @if ($errors->any())
@endif
map(fn ($m) => ['id' => (string) $m->id, 'name' => $m->ministry_name])->values()), phlnUnits: @json($phlnUnits->map(fn ($u) => ['id' => (string) $u->id, 'name' => $u->organization_unit])->values()), unitsByMinistry: @json($careIUnitsGrouped->mapWithKeys(fn ($units, $key) => [(string) $key => $units->map(fn ($u) => ['id' => (string) $u->id, 'name' => $u->organization_unit])->values()])), isModule(m) { return this.module.includes(m); }, toggleModule(m, ev) { this.module = [m]; this.ministryId = ""; this.unitId = ""; }, get units() { const list = []; if (this.isModule("CARE_I") && this.ministryId) { (this.unitsByMinistry[this.ministryId] || []).forEach(u => { if (!list.some(x => x.id === u.id)) list.push(u); }); return list; } if (this.isModule("SIPHLN_P2P")) { this.phlnUnits.forEach(u => { if (!list.some(x => x.id === u.id)) list.push(u); }); } return list; }, ministryName() { const m = this.careIMinistries.find(x => String(x.id) === String(this.ministryId)); return m ? m.name : "-"; }, unitName() { const u = this.units.find(x => String(x.id) === String(this.unitId)); return u ? u.name : "-"; }, step1Valid() { return this.module.length > 0 && (this.isModule("CARE_I") ? !!this.ministryId : true); }, step2Valid() { return !!this.unitId && /^[\p{L}\s.-]+$/u.test(this.name.trim()) && /^\d{16}$/.test(this.nik) && (this.nip === "" || /^\d{18}$/.test(this.nip)) && /^[\p{L}\s.-]+$/u.test(this.jabatan.trim()) && !!this.file; }, step3Valid() { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email) && this.password.length >= 8 && this.password === this.password_confirmation; }, passwordScore() { let score = 0; if (this.password.length >= 8) score += 1; if (this.password.length >= 12) score += 1; if (/[a-z]/.test(this.password)) score += 1; if (/[A-Z]/.test(this.password)) score += 1; if (/\d/.test(this.password)) score += 1; if (/[^a-zA-Z0-9]/.test(this.password)) score += 1; return Math.min(6, score); }, passwordLabel() { const s = this.passwordScore(); if (s <= 2) return "Lemah"; if (s <= 4) return "Sedang"; return "Kuat"; }, passwordColor() { const s = this.passwordScore(); if (s <= 2) return "bg-red-500"; if (s <= 4) return "bg-yellow-500"; return "bg-green-500"; }, canNext() { if (this.step === 1) return this.step1Valid(); if (this.step === 2) return this.step2Valid(); if (this.step === 3) return this.step3Valid(); return true; }, next() { if (this.canNext()) this.step++; }, prev() { if (this.step > 1) this.step--; }, }'> @csrf

Form Tipe Akun

Pilih satu atau lebih modul yang ingin diakses.

wajib diisi untuk CARE-I

Belum ada unit kerja terdaftar untuk instansi ini.

Data Unit Kerja

Nama tidak boleh kosong.

Format nama tidak valid.

NIK tidak boleh kosong.

Format NIK tidak valid.

NIK harus 16 Digit.

NIP harus 18 digit angka.

Jabatan tidak boleh kosong.

Format jabatan tidak valid.

Format: PDF / JPG / PNG, maksimal 2 MB.

Data Login

Format email tidak valid.

Password minimal 8 karakter.

Kekuatan Password

Konfirmasi password tidak cocok.

Form Konfirmasi

Modul Akses
Organisasi
Unit Kerja
Nama
NIK
Email
Dokumen

Saya bukan robot

reCaptcha - verifikasi placeholder

reCAPTCHA
Sudah punya akun? Masuk Sekarang