/* Dashboard-native portfolio editing. * * Owns: the EDIT button toggle, the add-position form behaviour * (ticker validation on blur, qty/cost inputs, date-mode historical * lookup, Add click), and per-row delete via event delegation. * * Reads/writes the portfolio via window.CassandraPortfolio.loadPie / * savePie / mountAndRender — the same surface portfolio.js exposes * for the CSV-import preview. */ (function () { 'use strict'; const panel = document.getElementById('portfolio-panel'); const editBtn = document.getElementById('pf-edit-btn'); const doneBtn = document.getElementById('pf-done-btn'); const form = document.getElementById('pf-add-form'); if (!panel || !editBtn || !doneBtn || !form) return; function enterEditMode() { panel.classList.add('pf-editing'); form.hidden = false; editBtn.hidden = true; doneBtn.hidden = false; editBtn.setAttribute('aria-pressed', 'true'); document.getElementById('pf-add-ticker').focus(); } function exitEditMode() { panel.classList.remove('pf-editing'); // Form stays visible when the pie is empty (empty-state UX handled // by portfolio.js setting the pf-empty class on the panel). if (!panel.classList.contains('pf-empty')) { form.hidden = true; } editBtn.hidden = false; doneBtn.hidden = true; editBtn.setAttribute('aria-pressed', 'false'); } editBtn.addEventListener('click', enterEditMode); doneBtn.addEventListener('click', exitEditMode); })();