'use strict';
{
    // 一、左侧导航栏展开/折叠功能（含状态持久化）
    // 获取“切换导航栏”按钮（ID为toggle-nav-sidebar）
    const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
    if (toggleNavSidebar !== null) {
        // 获取导航栏容器（ID为nav-sidebar）和主内容区（ID为main）
        const navSidebar = document.getElementById('nav-sidebar');
        const main = document.getElementById('main');
        // 从localStorage读取导航栏状态（open/closed），默认“展开”
        let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
        if (navSidebarIsOpen === null) {
            navSidebarIsOpen = 'true';
        }
        // 初始化导航栏和主内容区的状态
        // 主内容区添加/移除“shifted”类（控制是否偏移，适配导航栏展开）
        main.classList.toggle('shifted', navSidebarIsOpen === 'true');
        // 设置导航栏的无障碍属性（aria-expanded），标记展开/折叠状态
        navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
        // 给“切换导航栏”按钮绑定点击事件
        toggleNavSidebar.addEventListener('click', function() {
            if (navSidebarIsOpen === 'true') {
                navSidebarIsOpen = 'false';
            } else {
                navSidebarIsOpen = 'true';
            }
            localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
            main.classList.toggle('shifted');
            navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
        });
    }
    // 二、导航栏快速搜索过滤功能
    function initSidebarQuickFilter() {
        const options = [];
        const navSidebar = document.getElementById('nav-sidebar');
        if (!navSidebar) {
            return;
        }
        navSidebar.querySelectorAll('th[scope=row] a').forEach((container) => {
            options.push({title: container.innerHTML, node: container});
        });
        /**
         * 搜索过滤处理函数
         * 根据输入框的值，筛选导航栏选项（显示匹配项，隐藏不匹配项）
         * @param {Event} event - 输入/按键事件对象
         */
        function checkValue(event) {
            let filterValue = event.target.value;
            if (filterValue) {
                filterValue = filterValue.toLowerCase();
            }
            if (event.key === 'Escape') {
                filterValue = '';
                event.target.value = ''; // clear input
            }
            let matches = false;
            for (const o of options) {
                let displayValue = '';
                // 若有输入值，转为小写（不区分大小写匹配）
                if (filterValue) {
                    if (o.title.toLowerCase().indexOf(filterValue) === -1) {
                        displayValue = 'none';
                    } else {
                        matches = true;
                    }
                }
                // show/hide parent <TR>
                o.node.parentNode.parentNode.style.display = displayValue;
            }
            // 根据是否有匹配项，给输入框添加/移除“无结果”样式
            if (!filterValue || matches) {
                event.target.classList.remove('no-results');
            } else {
                event.target.classList.add('no-results');
            }
            // 将当前过滤值保存到sessionStorage（会话内有效，关闭标签页后清空）
            sessionStorage.setItem('django.admin.navSidebarFilterValue', filterValue);
        }
        // 获取搜索输入框（ID为nav-filter）
        const nav = document.getElementById('nav-filter');
        // 给输入框绑定事件：输入变化、值变化、按键抬起时均触发过滤
        nav.addEventListener('change', checkValue, false);
        nav.addEventListener('input', checkValue, false);
        nav.addEventListener('keyup', checkValue, false);
        // 从sessionStorage读取上次的过滤值，恢复过滤状态
        const storedValue = sessionStorage.getItem('django.admin.navSidebarFilterValue');
        if (storedValue) {
            nav.value = storedValue;
            checkValue({target: nav, key: ''});
        }
    }
    // 暴露函数到全局，供外部调用（可选）
    window.initSidebarQuickFilter = initSidebarQuickFilter;
    // 初始化导航栏快速过滤功能
    initSidebarQuickFilter();
}
