@if(isset($live_session))
{{-- window.Echo (Reverb client) — sadece canlı ders sayfasında yükleniyor,
normal /panel hiç Vite kullanmıyor, bu satır ona dokunmuyor. --}}
@vite(['resources/js/app.js'])
@endif
@php
$defaultKey = array_key_exists('natal', $charts) ? 'natal' : array_key_first($charts);
$requestedMainRaw = trim((string) request()->input('main_chart', ''));
$requestedMainKey = preg_replace('/_transit$/', '', $requestedMainRaw);
if (!is_string($requestedMainKey)) {
$requestedMainKey = '';
}
$previewTarget = request()->input('preview_target');
$isPreviewFocused = !empty($previewTarget) && in_array(
$previewTarget,
['natal', 'solar_return', 'secondary_progression_361', 'secondary_progression_naibod'],
true
);
// Sol ve Sağ anahtarları duruma göre belirle
if ((isset($is_relationship_view) && $is_relationship_view) || (isset($is_dual_view) && $is_dual_view)) {
// İLİŞKİ / ÇOKLU MODU
// Bu modda sol/sağ paneller boş başlar; kullanıcı ilişkiye ait haritaları elle yerleştirir.
$leftKeys = [];
$rightKeys = [];
$defaultKey = array_key_exists('synastry', $charts) ? 'synastry' : array_key_first($charts);
} else {
// NORMAL MOD (Eski Hali)
$leftKeys = ['solar_arc', 'solar_return'];
$rightKeys = ['draconic', 'secondary_progression_naibod'];
$defaultKey = array_key_exists('natal', $charts) ? 'natal' : array_key_first($charts);
// URL ile açıkça istenen harita mevcutsa ilk render'da onu göster.
if ($requestedMainKey !== '' && isset($charts[$requestedMainKey])) {
$defaultKey = $requestedMainKey;
} elseif (!empty($panelLayoutState) && is_array($panelLayoutState)) {
$savedMain = trim((string) ($panelLayoutState['main'] ?? ''));
if ($savedMain !== '' && isset($charts[$savedMain])) {
$defaultKey = $savedMain;
}
}
// Kayıtlı panel düzeni varsa, ilk render'ı da bu düzenden başlat.
// Böylece loader sonrası "secondary -> heliocentric" geçişi yaşanmaz.
if (!empty($panelLayoutState) && is_array($panelLayoutState)) {
$normalizeKeys = function ($keys, $fallback, $preserveUnknown = false, $fillWithFallback = true) use ($charts) {
$picked = [];
if (is_array($keys)) {
foreach ($keys as $k) {
if (!is_string($k)) {
continue;
}
$k = trim($k);
if ($k === '' || in_array($k, $picked, true)) {
continue;
}
if (!isset($charts[$k]) && !$preserveUnknown) {
continue;
}
$picked[] = $k;
if (count($picked) >= 2) {
break;
}
}
}
if ($fillWithFallback) {
foreach ($fallback as $k) {
if (!isset($charts[$k]) || in_array($k, $picked, true)) {
continue;
}
$picked[] = $k;
if (count($picked) >= 2) {
break;
}
}
}
return $picked;
};
$hasSavedLeftSlots = array_key_exists('left', $panelLayoutState);
$hasSavedRightSlots = array_key_exists('right', $panelLayoutState);
$leftKeys = $normalizeKeys(
$hasSavedLeftSlots ? ($panelLayoutState['left'] ?? []) : null,
$leftKeys,
true,
!$hasSavedLeftSlots
);
$rightKeys = $normalizeKeys(
$hasSavedRightSlots ? ($panelLayoutState['right'] ?? []) : null,
$rightKeys,
true,
!$hasSavedRightSlots
);
}
}
// Preview'da ortadaki harita, seçilen master'a göre gelmeli.
if ($isPreviewFocused) {
$defaultKey = $previewTarget;
if (in_array($previewTarget, ['secondary_progression_361', 'secondary_progression_naibod'], true)) {
$rightKeys = ['draconic', 'natal'];
}
}
if (in_array((string) $defaultKey, ['secondary_progression_361', 'secondary_progression_naibod'], true)) {
$rightKeys = ['draconic', 'natal'];
}
// Kişi sekmeleri için değişkenler (toolbar'da kullanılır)
$showPersonTabs = (!empty($is_relationship_view) || !empty($is_dual_view))
&& !empty($charts[$defaultKey]['visual']['statsB'] ?? null);
$personATitle = $relationshipA['title'] ?? ($dualA['title'] ?? 'Kişi A');
$personBTitle = $relationshipB['title'] ?? ($dualB['title'] ?? 'Kişi B');
$personAColor = $relationshipA['color'] ?? ($dualA['color'] ?? '#e91e63');
$personBColor = $relationshipB['color'] ?? ($dualB['color'] ?? '#1e88e5');
// Toolbar kaydet butonu koşulları
$toolbarSaveIsSingle = request()->filled('birth_place_id');
$toolbarSaveIsRel = request()->filled('rel_date') && request()->filled('rel_time')
&& request()->filled('rel_lat') && request()->filled('rel_lon')
&& request()->filled('a_place_id') && request()->filled('b_place_id')
&& !request()->boolean('rel_saved');
$toolbarSaveIsDual = request()->boolean('dual_preview') && request()->filled('rel_date')
&& request()->filled('rel_lat')
&& request()->filled('dual_a_place_id') && request()->filled('dual_b_place_id')
&& !request()->boolean('dual_saved');
$showToolbarSave = $toolbarSaveIsSingle || $toolbarSaveIsRel || $toolbarSaveIsDual;
$toolbarSaveLabel = $toolbarSaveIsRel ? t('save-relationship')
: ($toolbarSaveIsDual ? t('save-dual-chart') : t('save-map'));
$layoutAyanamsa = null;
$layoutSiderealDasha = null;
$layoutHarmonic = null;
if (!empty($panelLayoutState) && is_array($panelLayoutState)) {
$layoutAyanamsa = isset($panelLayoutState['ayanamsa']) ? (int) $panelLayoutState['ayanamsa'] : null;
$layoutSiderealDasha = isset($panelLayoutState['sidereal_dasha']) ? (int) $panelLayoutState['sidereal_dasha'] : null;
$layoutHarmonic = isset($panelLayoutState['harmonic']) ? (int) $panelLayoutState['harmonic'] : null;
}
$siderealAyanamsaValue = request()->filled('ayanamsa')
? (int) request('ayanamsa')
: ($layoutAyanamsa ?? 0);
$siderealDashaValue = request()->filled('sidereal_dasha')
? (int) request('sidereal_dasha')
: ($layoutSiderealDasha ?? 1);
$harmonicFactorValue = request()->filled('harmonic')
? (int) request('harmonic')
: ($layoutHarmonic ?? 9);
@endphp
{{-- MOBİL: Soldan açılan menü – scroll yok, ızgara + kompakt profil --}}
{{-- Yan sekmede panel açık - buradan mı devam et? --}}
{{ t('panel-tab-switch-modal-content') }}
{{ t('panel-tab-switch-modal-subtitle') }}
{{-- Rapor Hakkı Bitti Modal --}}
{{ t('report-limit-modal-content') }}
{{ t('report-limit-modal-subtitle') }}
{{-- Yorum Al Modal --}}
{{-- Natal Yorum Raporu Sonuç Modalı --}}
{{-- Panel toast bildirimi (sağ üst) --}}
{{-- Rapor hazırlanma bildirim banner'ı --}}
{{-- Loading durumu --}}
{{ t('report-is-being-prepared') }}
{{ t('continue-using-the-panel') }}
0%
{{-- Hazır durumu --}}
{{ t('report-is-ready') }}
{{ t('click-to-view') }}
{{-- /.panel-page-main --}}
{{ t('get-comment') }}
{{ t('get-comment-subtitle') }}