{"id":4933,"date":"2025-07-03T09:45:46","date_gmt":"2025-07-03T09:45:46","guid":{"rendered":"https:\/\/avselectronics.sviluppo.spherica.it\/software-manuals\/"},"modified":"2026-03-09T14:21:21","modified_gmt":"2026-03-09T14:21:21","slug":"software-manuals","status":"publish","type":"page","link":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/","title":{"rendered":"Software\/Manuals"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4933\" class=\"elementor elementor-4933 elementor-64\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77eee3f e-con-full e-flex e-con e-parent\" data-id=\"77eee3f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-77c5085 e-con-full e-flex e-con e-child\" data-id=\"77c5085\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-458f0cb elementor-widget elementor-widget-video\" data-id=\"458f0cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4\" autoplay=\"\" loop=\"\" playsinline=\"\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-00605c6 e-con-full e-flex e-con e-child\" data-id=\"00605c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26eda81 elementor-widget elementor-widget-heading\" data-id=\"26eda81\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span style=\"color:var( --e-global-color-primary )\">Software <\/span>&amp;<br><span style=\"color:var( --e-global-color-primary )\">technical manuals<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-feaee93 elementor-widget elementor-widget-text-editor\" data-id=\"feaee93\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Find software, firmware, and technical documentation for your AVS products.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac6be3f elementor-widget elementor-widget-button\" data-id=\"ac6be3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#software\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dabeffe e-flex e-con-boxed e-con e-parent\" data-id=\"dabeffe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f6d72ea e-con-full e-flex e-con e-child\" data-id=\"f6d72ea\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4709dda elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"4709dda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"41\" height=\"41\" viewBox=\"0 0 41 41\" fill=\"none\"><path d=\"M40.5536 38.4326L29.2256 27.1046C31.9478 23.8366 33.3053 19.6449 33.0156 15.4015C32.726 11.1581 30.8115 7.18973 27.6705 4.32191C24.5295 1.4541 20.4038 -0.0923482 16.1516 0.00426926C11.8994 0.100887 7.84817 1.83313 4.84065 4.84065C1.83313 7.84817 0.100887 11.8994 0.00426926 16.1516C-0.0923482 20.4038 1.4541 24.5295 4.32191 27.6705C7.18973 30.8115 11.1581 32.726 15.4015 33.0156C19.6449 33.3053 23.8366 31.9478 27.1046 29.2256L38.4326 40.5536L40.5536 38.4326ZM3.05364 16.5536C3.05364 13.8836 3.8454 11.2735 5.3288 9.05344C6.8122 6.83338 8.92061 5.10305 11.3874 4.08127C13.8542 3.05948 16.5686 2.79214 19.1874 3.31304C21.8061 3.83394 24.2116 5.11969 26.0996 7.0077C27.9876 8.89571 29.2733 11.3012 29.7942 13.9199C30.3151 16.5387 30.0478 19.2531 29.026 21.7199C28.0042 24.1867 26.2739 26.2951 24.0538 27.7785C21.8338 29.2619 19.2237 30.0536 16.5536 30.0536C12.9744 30.0497 9.54296 28.6261 7.01208 26.0952C4.4812 23.5643 3.05761 20.1328 3.05364 16.5536Z\" fill=\"url(#paint0_linear_529_2171)\"><\/path><defs><linearGradient id=\"paint0_linear_529_2171\" x1=\"-0.337947\" y1=\"37.5411\" x2=\"47.1648\" y2=\"32.3106\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#004884\"><\/stop><stop offset=\"1\" stop-color=\"#E20613\"><\/stop><\/linearGradient><\/defs><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06f8f29 elementor-widget elementor-widget-heading\" data-id=\"06f8f29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Step 1 | Search or filter<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ab59c3 elementor-widget elementor-widget-text-editor\" data-id=\"9ab59c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Enter the product name or code in the search bar or use the search filters.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-603aae9 e-con-full e-flex e-con e-child\" data-id=\"603aae9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ec3fb6 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"9ec3fb6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"48\" height=\"39\" viewBox=\"0 0 48 39\" fill=\"none\"><path d=\"M1.61947 8.61L1.49947 6C1.49947 4.4087 2.13161 2.88258 3.25683 1.75736C4.38205 0.632141 5.90817 0 7.49947 0H18.5155C20.1066 0.000339824 21.6325 0.632704 22.7575 1.758L25.2415 4.242C26.3664 5.3673 27.8923 5.99966 29.4835 6H41.4295C42.2632 5.99991 43.0879 6.1736 43.8508 6.50997C44.6137 6.84635 45.2981 7.33803 45.8603 7.95366C46.4226 8.56929 46.8504 9.29535 47.1165 10.0855C47.3825 10.8757 47.4809 11.7127 47.4055 12.543L45.4945 33.543C45.359 35.0337 44.6712 36.42 43.5661 37.4297C42.461 38.4393 41.0184 38.9994 39.5215 39H8.47747C6.98058 38.9994 5.53798 38.4393 4.43286 37.4297C3.32775 36.42 2.63994 35.0337 2.50447 33.543L0.593472 12.543C0.46563 11.1533 0.828654 9.76282 1.61947 8.613V8.61ZM6.56947 9C6.15273 8.99998 5.74055 9.08678 5.35922 9.25488C4.97788 9.42297 4.63575 9.66868 4.35463 9.97633C4.07352 10.284 3.85958 10.6468 3.72646 11.0417C3.59334 11.4366 3.54397 11.8549 3.58147 12.27L5.49247 33.27C5.55983 34.0154 5.90337 34.7087 6.45564 35.2138C7.00792 35.7189 7.72905 35.9993 8.47747 36H39.5215C40.2699 35.9993 40.991 35.7189 41.5433 35.2138C42.0956 34.7087 42.4391 34.0154 42.5065 33.27L44.4175 12.27C44.455 11.8549 44.4056 11.4366 44.2725 11.0417C44.1394 10.6468 43.9254 10.284 43.6443 9.97633C43.3632 9.66868 43.0211 9.42297 42.6397 9.25488C42.2584 9.08678 41.8462 8.99998 41.4295 9H6.56947ZM20.6395 3.879C20.3606 3.60005 20.0295 3.37883 19.665 3.228C19.3005 3.07717 18.9099 2.99969 18.5155 3H7.49947C6.7136 2.99986 5.95905 3.30809 5.39805 3.85843C4.83705 4.40877 4.5144 5.15727 4.49947 5.943L4.51747 6.36C5.15947 6.126 5.84947 6 6.56947 6H22.7575L20.6395 3.879Z\" fill=\"url(#paint0_linear_530_2427)\"><\/path><defs><linearGradient id=\"paint0_linear_530_2427\" x1=\"0.177845\" y1=\"36.1029\" x2=\"54.7793\" y2=\"28.8788\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#004884\"><\/stop><stop offset=\"1\" stop-color=\"#E20613\"><\/stop><\/linearGradient><\/defs><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4d1de9 elementor-widget elementor-widget-heading\" data-id=\"b4d1de9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Step2 | Select product <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16db747 elementor-widget elementor-widget-text-editor\" data-id=\"16db747\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Choose the article from the list to open the page with software and manuals.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88da278 e-con-full e-flex e-con e-child\" data-id=\"88da278\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa55952 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"fa55952\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"48\" height=\"42\" viewBox=\"0 0 48 42\" fill=\"none\"><path d=\"M1.5 26.7C1.89782 26.7 2.27936 26.858 2.56066 27.1393C2.84196 27.4206 3 27.8022 3 28.2V35.7C3 36.4956 3.31607 37.2587 3.87868 37.8213C4.44129 38.3839 5.20435 38.7 6 38.7H42C42.7957 38.7 43.5587 38.3839 44.1213 37.8213C44.6839 37.2587 45 36.4956 45 35.7V28.2C45 27.8022 45.158 27.4206 45.4393 27.1393C45.7206 26.858 46.1022 26.7 46.5 26.7C46.8978 26.7 47.2794 26.858 47.5607 27.1393C47.842 27.4206 48 27.8022 48 28.2V35.7C48 37.2913 47.3679 38.8174 46.2426 39.9426C45.1174 41.0679 43.5913 41.7 42 41.7H6C4.4087 41.7 2.88258 41.0679 1.75736 39.9426C0.632141 38.8174 0 37.2913 0 35.7V28.2C0 27.8022 0.158035 27.4206 0.43934 27.1393C0.720644 26.858 1.10218 26.7 1.5 26.7Z\" fill=\"url(#paint0_linear_610_1537)\"><\/path><path d=\"M22.938 32.562C23.0773 32.7017 23.2429 32.8125 23.4251 32.8881C23.6073 32.9638 23.8027 33.0027 24 33.0027C24.1973 33.0027 24.3927 32.9638 24.5749 32.8881C24.7571 32.8125 24.9227 32.7017 25.062 32.562L34.062 23.562C34.3437 23.2803 34.5019 22.8983 34.5019 22.5C34.5019 22.1017 34.3437 21.7197 34.062 21.438C33.7803 21.1563 33.3983 20.9981 33 20.9981C32.6017 20.9981 32.2197 21.1563 31.938 21.438L25.5 27.879V1.5C25.5 1.10218 25.342 0.720644 25.0607 0.43934C24.7794 0.158035 24.3978 0 24 0C23.6022 0 23.2206 0.158035 22.9393 0.43934C22.658 0.720644 22.5 1.10218 22.5 1.5V27.879L16.062 21.438C15.7803 21.1563 15.3983 20.9981 15 20.9981C14.6017 20.9981 14.2197 21.1563 13.938 21.438C13.6563 21.7197 13.4981 22.1017 13.4981 22.5C13.4981 22.8983 13.6563 23.2803 13.938 23.562L22.938 32.562Z\" fill=\"url(#paint1_linear_610_1537)\"><\/path><defs><linearGradient id=\"paint0_linear_610_1537\" x1=\"-0.4\" y1=\"38.6023\" x2=\"55.607\" y2=\"31.5037\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#004884\"><\/stop><stop offset=\"1\" stop-color=\"#E20613\"><\/stop><\/linearGradient><linearGradient id=\"paint1_linear_610_1537\" x1=\"-0.4\" y1=\"38.6023\" x2=\"55.607\" y2=\"31.5037\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#004884\"><\/stop><stop offset=\"1\" stop-color=\"#E20613\"><\/stop><\/linearGradient><\/defs><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7a3e1a elementor-widget elementor-widget-heading\" data-id=\"a7a3e1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Step 3 | Download the file <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-419f3e3 elementor-widget elementor-widget-text-editor\" data-id=\"419f3e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Click \u201cDownload\u201d to get the latest manual or software.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ebf1a61 e-con-full e-flex e-con e-parent\" data-id=\"ebf1a61\" data-element_type=\"container\" data-e-type=\"container\" id=\"software\">\n\t\t<div class=\"elementor-element elementor-element-0204950 e-flex e-con-boxed e-con e-child\" data-id=\"0204950\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b359e76 elementor-widget__width-inherit elementor-widget elementor-widget-shortcode\" data-id=\"b359e76\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"vue-product-catalog\" class=\"elementor-kit-6\">\r\n    <div class=\"vpc-product-catalog\">\r\n        <!-- Header Section -->\r\n        <div class=\"vpc-header\">\r\n            <div class=\"vpc-search-controls\">\r\n                <p class=\"vpc-description\">\r\n                    Use the search bar or filters to quickly find software, firmware and technical manuals. Click on the product name to access the download.                <\/p>\r\n                <div class=\"vpc-search-bar\">\r\n                    <i class=\"fas fa-search vpc-icon-search-left\"><\/i>\r\n                    <input \r\n                        type=\"text\" \r\n                        placeholder=\"Search by product code or name\"\r\n                        v-model=\"searchQuery\"\r\n                        class=\"vpc-search-input\"\r\n                    >\r\n                <\/div>\r\n                <div class=\"vpc-filter-dropdown\">\r\n                    <button class=\"vpc-filter-btn\" @click=\"toggleCategoryDropdown\" :class=\"{'vpc-filter-active': showCategoryDropdown}\">\r\n                        <i class=\"fas fa-sliders-h\"><\/i>\r\n                        {{ selectedCategory === 'all' ? 'All files' : selectedCategory }}\r\n                        <i class=\"fas fa-chevron-down vpc-dropdown-arrow\" :class=\"{'vpc-arrow-up': showCategoryDropdown}\"><\/i>\r\n                    <\/button>\r\n                    <div v-if=\"showCategoryDropdown\" class=\"vpc-category-dropdown\">\r\n                        <div class=\"vpc-category-item\" @click=\"selectCategory('all')\" :class=\"{'vpc-active': selectedCategory === 'all'}\">\r\n                            All files                        <\/div>\r\n                        <div \r\n                            v-for=\"category in availableCategories\" \r\n                            :key=\"category\"\r\n                            class=\"vpc-category-item\" \r\n                            @click=\"selectCategory(category)\"\r\n                            :class=\"{'vpc-active': selectedCategory === category}\"\r\n                        >\r\n                            {{ category }}\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                <button class=\"vpc-sort-btn\" @click=\"toggleSort\" :class=\"{'vpc-sort-active': sortOrder !== 'none'}\">\r\n                    <i :class=\"sortOrder === 'desc' ? 'fas fa-sort-alpha-desc' : 'fas fa-sort-alpha-asc'\"><\/i>\r\n                    Sort                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Product Grid -->\r\n        <div v-if=\"loading\" class=\"vpc-loading-overlay\">\r\n            <div class=\"vpc-loading-spinner\">\r\n                <i class=\"fas fa-sync-alt fa-spin\"><\/i>\r\n            <\/div>\r\n        <\/div>\r\n        <div v-if=\"loading\" class=\"vpc-loading\">\r\n            <p>Loading products...<\/p>\r\n        <\/div>        \r\n        <div v-else-if=\"error\" class=\"vpc-error\">\r\n            <p>Error loading products: {{ error }}<\/p>\r\n        <\/div> \r\n\r\n        <div v-else class=\"vpc-product-grid\">\r\n            <div \r\n                v-for=\"product in filteredProducts\" \r\n                :key=\"product.id\"\r\n                class=\"vpc-product-card\"\r\n                @click=\"selectProduct(product)\"\r\n            >\r\n                <div class=\"vpc-product-image\">\r\n                    <img v-if=\"product.image\" :src=\"product.image\" :alt=\"product.name\" class=\"vpc-product-img\" \/>\r\n                    <div v-else class=\"vpc-product-image-placeholder\">\r\n                        {{ product.name }}\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"vpc-product-info\">\r\n                    <p class=\"vpc-product-name\">{{ product.name }}<\/p>\r\n                    <p class=\"vpc-product-description\" v-html=\"product.description\"><\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n     \r\n        <!-- Product Modal -->\r\n        <div style=\"display:none\" v-show=\"showModal && selectedProduct\" class=\"vpc-modal-overlay\" @click=\"closeModal\">\r\n            <div class=\"vpc-modal\" @click.stop v-if=\"showModal && selectedProduct\">\r\n                <div class=\"vpc-modal-header\">\r\n                    <button class=\"vpc-modal-close\" @click=\"closeModal\">\r\n                        <i class=\"fas fa-times\"><\/i>\r\n                    <\/button>\r\n                <\/div>\r\n                <div class=\"vpc-modal-content\">\r\n                    <div class=\"vpc-modal-product-info\">\r\n                        <div class=\"vpc-modal-image\">\r\n                            <img v-if=\"selectedProduct.image\" :src=\"selectedProduct.image\" :alt=\"selectedProduct.name\" \/>\r\n                            <div v-else class=\"vpc-modal-image-placeholder\">\r\n                                {{ selectedProduct.name }}\r\n                            <\/div>\r\n                        <\/div>\r\n                        \r\n                        <div class=\"vpc-modal-details\">\r\n                            <h2 class=\"vpc-modal-title\">{{ selectedProduct.name }}<\/h2>\r\n                            <p class=\"vpc-modal-description\" v-html=\"selectedProduct.description\"><\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"vpc-modal-files\">\r\n                        <div v-for=\"(files, categoryName) in groupFilesByCategory(selectedProduct.files)\" :key=\"categoryName\" class=\"vpc-file-category\">\r\n                            <p><b>{{ translateCategory(categoryName) }}<\/b><\/p>\r\n                            <div class=\"vpc-category-files\">\r\n                                <div v-for=\"file in files\"\r\n                                :key=\"file.id\"\r\n                                :class=\"['vpc-file-item', { 'vpc-is-active': activeFileInfo && activeFileInfo.id === file.id }]\"\r\n                                xxclass=\"vpc-file-item\">\r\n                                    <div class=\"vpc-file-info\">\r\n                                        <div class=\"vpc-file-header\">\r\n                                            <i v-if=\"file.locked\" class=\"fa fa-lock\" style=\"margin-left: 5px; font-size: 12px; color: #666;\"><\/i>&nbsp;\r\n                                            <button class=\"vpc-file-name-btn\" @click=\"openFile(file)\">\r\n                                                {{ file['title_' + langSuffix] || file.filename || 'Unnamed File' }}\r\n                                            <\/button>\r\n                                            <button \r\n                                                v-if=\"(file['description_' + langSuffix] && file['description_' + langSuffix].trim() !== '') || (file['intro_' + langSuffix] && file['intro_' + langSuffix].trim() !== '')\"\r\n                                                class=\"vpc-info-extra-btn\" \r\n                                                @click=\"toggleFileInfo(file)\" \r\n                                                :class=\"{'vpc-active': activeFileInfo && activeFileInfo.id === file.id}\">\r\n                                                &nbsp;Extra info                                            <\/button>\r\n                                        <\/div>\r\n                                        <div\r\n                                            class=\"vpc-file-languages\"\r\n                                            v-if=\"file.active_it || file.active_en || file.active_de || file.active_fr\" \r\n                                            >\r\n                                            <span class=\"vpc-languages-text\">Languages included in downloaded file:<\/span>\r\n                                            <div class=\"vpc-language-flags\">\r\n                                                <span v-if=\"file.active_it\" class=\"vpc-flag vpc-flag-it\" title=\"Italiano\"><\/span>\r\n                                                <span v-if=\"file.active_en\" class=\"vpc-flag vpc-flag-en\" title=\"English\"><\/span>\r\n                                                <span v-if=\"file.active_de\" class=\"vpc-flag vpc-flag-de\" title=\"Deutsch\"><\/span>\r\n                                                <span v-if=\"file.active_fr\" class=\"vpc-flag vpc-flag-fr\" title=\"Fran\u00e7ais\"><\/span>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    <a v-if=\"file.filename_disk\" :href=\"'\/wp-content\/uploads\/' + file.filename_disk\" class=\"vpc-download-btn\" target=\"_blank\" download>\r\n                                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                            <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                                            <polyline points=\"7,10 12,15 17,10\"><\/polyline>\r\n                                            <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\r\n                                        <\/svg>\r\n                                        Download                                    <\/a>\r\n                                <\/div>\r\n                            <\/div>\r\n                            \r\n                            <!-- Info Extra Panel positioned under each category -->\r\n                            <div v-if=\"activeFileInfo && fileInCategory(files, activeFileInfo)\" class=\"vpc-file-extra-panel-fullwidth\">\r\n                                <div class=\"vpc-extra-panel-buttons\">\r\n                                    <div class=\"vpc-panel-button-group\">\r\n                                        <div class=\"vpc-panel-content-buttons\">\r\n                                            <button\r\n                                            xxxv-if=\"activeFileInfo['description_' + langSuffix] && activeFileInfo['description_' + langSuffix].trim() !== ''\"\r\n                                            class=\"vpc-panel-btn\"\r\n                                            @click=\"showFileContent('intro', activeFileInfo)\"\r\n                                            :class=\"{'vpc-panel-active': activePanel === 'intro_' + activeFileInfo.id}\"\r\n                                            >\r\n                                                Firmware Description                                            <\/button>\r\n                                            <button\r\n                                            xxxv-if=\"activeFileInfo['intro_' + langSuffix] && activeFileInfo['intro_' + langSuffix].trim() !== ''\"\r\n                                            class=\"vpc-panel-btn\"\r\n                                            @click=\"showFileContent('changelog', activeFileInfo)\"\r\n                                            :class=\"{'vpc-panel-active': activePanel === 'changelog_' + activeFileInfo.id}\">\r\n                                                Changelog                                            <\/button>\r\n                                        <\/div>\r\n                                        <button class=\"vpc-panel-close-icon\" @click=\"closeFileInfo()\">\r\n                                            <i class=\"fas fa-times\"><\/i>\r\n                                        <\/button>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div v-if=\"activePanel === 'intro_' + activeFileInfo.id && activeFileInfo['intro_' + langSuffix]\" class=\"vpc-panel-content\">\r\n                                    <div class=\"vpc-panel-text\" v-html=\"activeFileInfo['intro_' + langSuffix]\"><\/div>\r\n                                <\/div>\r\n                                <div v-if=\"activePanel === 'changelog_' + activeFileInfo.id && activeFileInfo['description_' + langSuffix]\" class=\"vpc-panel-content\">\r\n                                    <div class=\"vpc-panel-text\" v-html=\"activeFileInfo['description_' + langSuffix]\"><\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div v-if=\"showAccessRestrictedAlert\" class=\"vpc-access-alert\" role=\"alert\">\r\n                        <div class=\"animate__animated animate__fadeInUp\">\r\n                        {{ t('access_restricted') }}\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0\/css\/all.min.css\" -->\r\n<style>\r\n    .vpc-product-catalog {\r\n        max-width: 1500px;\r\n        position: relative; \/* MODIFICATO: necessario per isolamento overlay *\/\r\n        margin: 0 auto;\r\n        padding: 20px;\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    .vpc-product-catalog *,\r\n    .vpc-product-catalog *::before,\r\n    .vpc-product-catalog *::after {\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    .vpc-header {\r\n        margin-bottom: 30px;\r\n    }\r\n\r\n    .vpc-description {\r\n        color: #666;\r\n        font-size: 14px;\r\n        line-height: 1.5;\r\n        margin: 0;\r\n        flex-shrink: 0;\r\n        width: 450px;\r\n        padding-right: 15px;\r\n    }\r\n\r\n    .vpc-search-controls {\r\n        display: flex;\r\n        gap: 15px;\r\n        align-items: center;\r\n        flex-wrap: nowrap;\r\n        justify-content: space-between;\r\n    }\r\n\r\n    .vpc-search-bar {\r\n        border: 1px solid red;\r\n        border-radius: 20px !important;\r\n        padding-right: 1em;\r\n        padding-left: 0.5em;\r\n        display: flex;\r\n        flex-direction: right;\r\n        min-width: 300px;\r\n    }\r\n\r\n    .vpc-search-input {\r\n        width: 100%;\r\n        border: 0px !important;\r\n        font-size: 14px;\r\n        outline: none;\r\n        font-family: inherit;\r\n        background-color: #fff;\r\n    }\r\n\r\n    .vpc-search-input:focus {\r\n        border-color: #007bff;\r\n        box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.1);\r\n    }\r\n\r\n    .vpc-icon-search-left {\r\n        display: flex;\r\n        align-items: center;\r\n    }\r\n\r\n    .vpc-filter-dropdown {\r\n        position: relative;\r\n    }\r\n\r\n    .vpc-filter-btn,\r\n    .vpc-sort-btn {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        padding: 10px 15px;\r\n        border: 1px solid #ddd;\r\n        border-radius: 20px;\r\n        background: white;\r\n        cursor: pointer;\r\n        font-size: 14px;\r\n        color: #666;\r\n        transition: all 0.3s ease;\r\n        font-family: inherit;\r\n        text-decoration: none;\r\n    }\r\n    .vpc-filter-btn:hover,\r\n    .vpc-sort-btn:hover {\r\n        color: #666!important;\r\n    }\r\n\r\n    .vpc-filter-active {\r\n        background-color: var(--e-global-color-secondary) !important;\r\n        color: white !important;\r\n        border-color: var(--e-global-color-secondary) !important;\r\n    }\r\n    .vpc-filter-btn:hover,\r\n    .vpc-sort-btn:hover {\r\n        color: #666;\r\n    }\r\n    .vpc-filter-btn:focus,\r\n    .vpc-sort-btn:focus {\r\n        color: #666;\r\n    }\r\n    .vpc-filter-active:hover{\r\n        color: white !important;\r\n    }\r\n    .vpc-filter-active:focus{\r\n        color: white !important;\r\n    }\r\n\r\n    .vpc-dropdown-arrow {\r\n        font-size: 10px;\r\n        margin-left: 4px;\r\n        transition: transform 0.3s ease;\r\n    }\r\n\r\n    .vpc-arrow-up {\r\n        transform: rotate(180deg);\r\n    }\r\n\r\n    .vpc-category-dropdown {\r\n        position: absolute;\r\n        top: 100%;\r\n        left: 0;\r\n        right: 0;\r\n        background: white;\r\n        border: 1px solid #ddd;\r\n        border-radius: 8px;\r\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\r\n        z-index: 1000;\r\n        margin-top: 4px;\r\n        max-height: 200px;\r\n        overflow-y: auto;\r\n    }\r\n\r\n    .vpc-category-item {\r\n        padding: 10px 15px;\r\n        cursor: pointer;\r\n        font-size: 14px;\r\n        color: #666;\r\n        transition: all 0.2s ease;\r\n        border-bottom: 1px solid #f5f5f5;\r\n    }\r\n\r\n    .vpc-category-item:last-child {\r\n        border-bottom: none;\r\n    }\r\n\r\n    .vpc-category-item:hover {\r\n        background-color: #f8f9fa;\r\n        color: #333;\r\n    }\r\n\r\n    .vpc-category-item.vpc-active {\r\n        background-color: var(--e-global-color-secondary);\r\n        color: white;\r\n    }\r\n\r\n    [type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover {\r\n        background-color: var(--e-global-color-secondary);\r\n    }\r\n\r\n    .vpc-sort-active {\r\n        background-color: var(--e-global-color-secondary) !important;\r\n        color: white !important;\r\n        border-color: var(--e-global-color-secondary) !important;\r\n    }\r\n\r\n    .vpc-filter-icon,\r\n    .vpc-sort-icon {\r\n        width: 16px;\r\n        height: 16px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    .vpc-product-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(4, 1fr);\r\n        gap: 20px;\r\n        margin-top: 30px;\r\n    }\r\n\r\n    .vpc-product-card {\r\n        background: #f8f8f8;\r\n        border-radius: 12px;\r\n        padding: 20px;\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n    }\r\n\r\n    .vpc-product-card:hover {\r\n        background: #e9ecef;\r\n    }\r\n\r\n    .vpc-product-image {\r\n        position: relative;\r\n        text-align: center;\r\n        margin-bottom: 15px;\r\n        height: 100px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n\r\n    .vpc-product-image-placeholder {\r\n        width: 80px;\r\n        height: 60px;\r\n        background: linear-gradient(45deg, #e9ecef 25%, transparent 25%), \r\n                    linear-gradient(-45deg, #e9ecef 25%, transparent 25%);\r\n        background-size: 10px 10px;\r\n        background-position: 0 0, 5px 5px;\r\n        border-radius: 4px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        color: #6c757d;\r\n        font-size: 10px;\r\n        text-align: center;\r\n        font-weight: 500;\r\n    }\r\n\r\n    .vpc-product-img {\r\n        max-width: 100%;\r\n        max-height: 80px;\r\n        object-fit: contain;\r\n        border-radius: 4px;\r\n    }\r\n\r\n    .vpc-loading-overlay {\r\n        position: absolute; \/* MODIFICATO: non pi\u00f9 fixed su tutta la pagina *\/\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: rgba(0, 0, 0, 0.7);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 999999;\r\n        backdrop-filter: blur(4px);\r\n    }\r\n\r\n    .vpc-loading-spinner {\r\n        background: white;\r\n        border-radius: 50%;\r\n        width: 80px;\r\n        height: 80px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);\r\n    }\r\n\r\n    .vpc-loading-spinner i {\r\n        font-size: 32px;\r\n        color: var(--e-global-color-secondary);\r\n    }\r\n\r\n    .vpc-loading,\r\n    .vpc-error {\r\n        text-align: center;\r\n        padding: 40px 20px;\r\n        margin-top: 30px;\r\n    }\r\n\r\n    .vpc-loading p {\r\n        color: #666;\r\n        font-size: 16px;\r\n        margin: 0;\r\n    }\r\n\r\n    .vpc-access-alert {\r\n        position: absolute;\r\n        left: 50%;\r\n        bottom: 16px;\r\n        transform: translateX(-50%);\r\n        z-index: 12;\r\n        max-width: min(calc(100% - 32px), 920px);\r\n        width: auto;\r\n    }\r\n\r\n    .vpc-access-alert>div {\r\n        margin: 0;\r\n        padding: 12px 16px;\r\n        border-radius: 8px;\r\n        box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);\r\n    }\r\n\r\n    .vpc-error p {\r\n        color: var(--e-global-color-secondary);\r\n        font-size: 16px;\r\n        margin: 0;\r\n    }\r\n\r\n    .vpc-product-info {\r\n        text-align: center;\r\n    }\r\n\r\n    .vpc-product-name {\r\n        font-size: 18px;\r\n        font-weight: bold;\r\n        color: #333;\r\n        margin-bottom: 8px;\r\n        margin-top: 0;\r\n    }\r\n\r\n    .vpc-product-description {\r\n        font-size: 13px;\r\n        color: #666;\r\n        line-height: 1.4;\r\n        margin: 0;\r\n    }\r\n\r\n    \/* Modal Styles *\/\r\n    .vpc-modal-overlay {\r\n        position: fixed;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: rgba(0, 0, 0, 0.6);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 999999;\r\n        backdrop-filter: blur(4px);\r\n        overflow-y: auto;\r\n        padding: 100px 20px 40px;\r\n    }\r\n\r\n    .vpc-modal {\r\n        background: white;\r\n        border-radius: 16px;\r\n        max-width: 95vw;\r\n        width: 1200px;\r\n        min-height: 200px;\r\n        max-height: calc(100vh - 180px);\r\n        overflow: hidden;\r\n        box-shadow: 0 24px 48px rgba(0, 0, 0, 0.2);\r\n        position: relative;\r\n        margin: 0 auto;\r\n        z-index: 1000000;\r\n    }\r\n\r\n    .vpc-modal-header {\r\n        position: absolute;\r\n        top: 16px;\r\n        right: 16px;\r\n        z-index: 10;\r\n    }\r\n\r\n    .vpc-modal-close, .vpc-panel-close-icon {\r\n        border: none;\r\n        border-radius: 50%;\r\n        width: 40px;\r\n        height: 40px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        cursor: pointer;\r\n        transition: all 0.2s ease;\r\n        backdrop-filter: blur(8px);\r\n    }\r\n\r\n    .vpc-modal-close {\r\n        background: rgba(255, 255, 255, 0.9);\r\n    }\r\n\r\n    .vpc-panel-close-icon {\r\n        background: none !important;\r\n    }\r\n\r\n    .vpc-modal-close:hover, .vpc-panel-close-icon:hover {\r\n        background: rgba(255, 255, 255, 1);\r\n        transform: scale(1.1);\r\n    }\r\n\r\n    .vpc-modal-close i, .vpc-panel-close-icon i {\r\n        font-size: 18px;\r\n        color: #333;\r\n    }\r\n\r\n    .vpc-panel-close-icon i {\r\n        font-size: 18px;\r\n        color: var(--e-global-color-primary);\r\n    }\r\n\r\n    .vpc-modal-content {\r\n        position: relative;\r\n        padding: 32px;\r\n        padding-bottom: 88px;\r\n        overflow-y: auto;\r\n        height: 100%;\r\n        max-height: calc(100vh - 240px);\r\n    }\r\n\r\n    .vpc-modal-product-info {\r\n        display: flex;\r\n        gap: 24px;\r\n        margin-bottom: 32px;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n\r\n    .vpc-modal-image {\r\n        flex-shrink: 0;\r\n        width: 200px;\r\n        height: 150px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n\r\n    .vpc-modal-image img {\r\n        max-width: 100%;\r\n        max-height: 100%;\r\n        object-fit: contain;\r\n        border-radius: 8px;\r\n    }\r\n\r\n    .vpc-modal-image-placeholder {\r\n        color: #6c757d;\r\n        font-size: 14px;\r\n        text-align: center;\r\n        font-weight: 500;\r\n        padding: 20px;\r\n    }\r\n\r\n    .vpc-modal-details {\r\n        flex: 1;\r\n    }\r\n\r\n    .vpc-modal-title {\r\n        font-size: 32px;\r\n        font-weight: 700;\r\n        color: #333;\r\n        margin: 0 0 16px 0;\r\n        line-height: 1.2;\r\n    }\r\n\r\n    .vpc-modal-description {\r\n        font-size: 16px;\r\n        color: #666;\r\n        line-height: 1.6;\r\n        margin: 0;\r\n    }\r\n\r\n    .vpc-modal-files {\r\n        border-top: 1px solid #e9ecef;\r\n        padding-top: 24px;\r\n        padding-bottom: 24px;\r\n    }\r\n\r\n    .vpc-file-category {\r\n        margin-bottom: 32px;\r\n    }\r\n\r\n    .vpc-file-category:last-child {\r\n        margin-bottom: 0;\r\n    }\r\n\r\n    .vpc-category-files {\r\n        display: grid;\r\n        grid-template-columns: repeat(3, 1fr);\r\n        gap: 12px;\r\n    }\r\n\r\n    .vpc-file-item {\r\n        display: flex;\r\n        align-items: flex-start;\r\n        justify-content: space-between;\r\n        padding: 16px;\r\n        transition: all 0.2s ease;\r\n        gap: 16px;\r\n    }\r\n\r\n    .vpc-file-item.vpc-is-active, .vpc-file-item:hover {\r\n        background: #f8f8f8;\r\n        border-color: #f8f8f8;\r\n        border-radius: 1em;\r\n    }\r\n\r\n    .vpc-file-info {\r\n        flex: 1;\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 8px;\r\n    }\r\n\r\n    .vpc-file-name {\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #333;\r\n    }\r\n\r\n    .vpc-file-name-btn {\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #007bff!important;\r\n        background: none;\r\n        border: none;\r\n        padding: 0;\r\n        cursor: pointer;\r\n        text-align: left;\r\n        text-decoration: underline;\r\n        font-family: inherit;\r\n        transition: color 0.2s ease;\r\n        display: inline-block;\r\n        max-width: 250px !important;\r\n        overflow: hidden;\r\n        text-overflow: ellipsis;\r\n        white-space: nowrap;\r\n        vertical-align: bottom;\r\n    }\r\n\r\n    .vpc-file-name-btn:hover {\r\n        color: #007bff!important;\r\n        background: transparent;\r\n    }\r\n\r\n    .vpc-file-languages {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        flex-wrap: nowrap;\r\n    }\r\n\r\n    .vpc-languages-text {\r\n        font-size: 12px;\r\n        color: #666;\r\n        white-space: nowrap;\r\n    }\r\n\r\n    .vpc-language-flags {\r\n        display: flex;\r\n        gap: 4px;\r\n        align-items: center;\r\n    }\r\n\r\n    .vpc-flag {\r\n        display: inline-block;\r\n        width: 15px;\r\n        height: 15px;\r\n        border-radius: 50%;\r\n        cursor: default;\r\n    }\r\n\r\n    .vpc-flag-it {\r\n        background-image: url('\/wp-content\/uploads\/2025\/08\/italy_flag.png');\r\n        background-size: cover;\r\n        background-position: center;\r\n        background-repeat: no-repeat;\r\n    }\r\n\r\n    .vpc-flag-en {\r\n        background-image: url('\/wp-content\/uploads\/2025\/08\/uk_flag.png');\r\n        background-size: cover;\r\n        background-position: center;\r\n        background-repeat: no-repeat;\r\n    }\r\n\r\n    .vpc-flag-de {\r\n        background-image: url('\/wp-content\/uploads\/2025\/08\/germany_flag.png');\r\n        background-size: cover;\r\n        background-position: center;\r\n        background-repeat: no-repeat;\r\n    }\r\n\r\n    .vpc-flag-fr {\r\n        background-image: url('\/wp-content\/uploads\/2025\/08\/france_flag.png');\r\n        background-size: cover;\r\n        background-position: center;\r\n        background-repeat: no-repeat;\r\n    }\r\n\r\n    .vpc-download-btn {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        padding: 8px 16px;\r\n        background: #007bff;\r\n        color: white;\r\n        text-decoration: none;\r\n        border-radius: 6px;\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        transition: all 0.2s ease;\r\n        border: none;\r\n        cursor: pointer;\r\n    }\r\n\r\n    .vpc-download-btn:hover {\r\n        background: #0056b3;\r\n        color: white;\r\n        text-decoration: none;\r\n        transform: translateY(-1px);\r\n    }\r\n\r\n    .vpc-download-btn svg {\r\n        width: 16px;\r\n        height: 16px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    \/* Info Extra Button and Panel Styles *\/\r\n    .vpc-file-header {\r\n        display: flex;\r\n        align-items: center;\r\n        margin-bottom: 8px;\r\n    }\r\n\r\n    .vpc-info-extra-btn {\r\n        background: var(--e-global-color-primary);\r\n        border: none;\r\n        border-radius: 15px;\r\n        padding: 4px 8px;\r\n        font-size: 12px;\r\n        color: #ffffff;\r\n        cursor: pointer;\r\n        margin-left: 10px;\r\n        transition: all 0.2s ease;\r\n        font-family: inherit;\r\n    }\r\n\r\n    .vpc-info-extra-btn:hover,\r\n    .vpc-info-extra-btn:focus, \r\n    .vpc-info-extra-btn.vpc-active {\r\n        background: var(--e-global-color-primary) !important;\r\n        color: white;\r\n        border-color: var(--e-global-color-primary) !important;\r\n    }\r\n\r\n    \/* Full-width Info Extra Panel *\/\r\n    .vpc-file-extra-panel-fullwidth {\r\n        margin-top: 24px;\r\n        xxxborder: 1px solid #e9ecef;\r\n        border-radius: 8px;\r\n        background: #f8f9fa;\r\n        xxxxbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\r\n        animation: slideDown 0.3s ease-out;\r\n        position: relative;\r\n    }\r\n\r\n    .vpc-panel-close-icon {\r\n        background: white;\r\n    }\r\n\r\n    @keyframes slideDown {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(-10px);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    .vpc-extra-panel-buttons {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        padding: 16px 24px;\r\n        xxxbackground: #f8f9fa;\r\n        xxxborder-bottom: 1px solid #e9ecef;\r\n        xxxborder-radius: 8px;\r\n    }\r\n\r\n    .vpc-panel-title {\r\n        margin: 0;\r\n        font-size: 16px;\r\n        font-weight: 600;\r\n        color: #333;\r\n    }\r\n\r\n    .vpc-panel-button-group {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: space-between;\r\n        gap: 12px;\r\n        width: 100%;\r\n    }\r\n\r\n    .vpc-panel-content-buttons {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 12px;\r\n        justify-content: center;\r\n        flex: 1;\r\n    }\r\n\r\n    .vpc-panel-btn {\r\n        background: white;\r\n        border: 1px solid #dee2e6;\r\n        border-radius: 4px;\r\n        padding: 6px 12px;\r\n        font-size: 12px;\r\n        color: #495057;\r\n        cursor: pointer;\r\n        font-family: inherit;\r\n    }\r\n\r\n    .vpc-panel-btn.vpc-panel-active, .vpc-panel-btn:hover {\r\n        background: var(--e-global-color-primary);\r\n        border-color: var(--e-global-color-primary);\r\n        color: white;\r\n    }\r\n\r\n    .vpc-panel-content {\r\n        padding: 24px;\r\n    }\r\n\r\n    .vpc-panel-text {\r\n        font-size: 14px;\r\n        line-height: 1.6;\r\n        color: #333;\r\n        max-height: 300px;\r\n        overflow-y: auto;\r\n        white-space: pre-wrap;\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .vpc-description {\r\n            white-space: normal;\r\n            padding-right: 0;\r\n            margin-bottom: 15px;\r\n        }\r\n        \r\n        .vpc-search-controls {\r\n            flex-direction: column;\r\n            align-items: stretch;\r\n        }\r\n        \r\n        .vpc-search-bar {\r\n            min-width: unset;\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .vpc-filter-btn,\r\n        .vpc-sort-btn {\r\n            align-self: center;\r\n        }\r\n        \r\n        .vpc-product-grid {\r\n            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n            gap: 15px;\r\n        }\r\n\r\n        .vpc-product-catalog {\r\n            padding: 15px;\r\n        }\r\n\r\n        .vpc-modal-overlay {\r\n            padding: 80px 10px 20px;\r\n        }\r\n\r\n        .vpc-modal {\r\n            margin: 0;\r\n            width: auto;\r\n            max-width: calc(100vw - 20px);\r\n            max-height: calc(100vh - 120px);\r\n            xxxdisplay: none; \/* Hide modal by default on small screens *\/\r\n        }\r\n\r\n        .vpc-modal-content {\r\n            padding: 24px 20px;\r\n            max-height: calc(100vh - 160px);\r\n        }\r\n\r\n        .vpc-modal-product-info {\r\n            flex-direction: column;\r\n            text-align: center;\r\n        }\r\n\r\n        .vpc-modal-image {\r\n            width: 100%;\r\n            max-width: 200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .vpc-modal-title {\r\n            font-size: 24px;\r\n        }\r\n\r\n        .vpc-file-item {\r\n            flex-direction: column;\r\n            align-items: stretch;\r\n            gap: 12px;\r\n            padding: 12px;\r\n        }\r\n\r\n        .vpc-file-languages {\r\n            flex-wrap: wrap;\r\n            gap: 6px;\r\n        }\r\n\r\n        .vpc-languages-text {\r\n            white-space: normal;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .vpc-category-files {\r\n            grid-template-columns: repeat(2, 1fr);\r\n        }\r\n\r\n        .vpc-download-btn {\r\n            align-self: center;\r\n            width: fit-content;\r\n        }\r\n\r\n        .vpc-file-header {\r\n            flex-direction: column;\r\n            align-items: flex-start;\r\n            gap: 8px;\r\n        }\r\n\r\n        .vpc-info-extra-btn {\r\n            align-self: flex-end;\r\n        }\r\n\r\n        .vpc-extra-panel-buttons {\r\n            flex-direction: column;\r\n            align-items: stretch;\r\n            gap: 12px;\r\n            padding: 12px 16px;\r\n        }\r\n\r\n        .vpc-panel-title {\r\n            font-size: 14px;\r\n            text-align: center;\r\n        }\r\n\r\n        .vpc-panel-button-group {\r\n            justify-content: center;\r\n        }\r\n\r\n        .vpc-panel-btn {\r\n            font-size: 12px;\r\n            padding: 8px 16px;\r\n        }\r\n\r\n        .vpc-panel-close {\r\n            align-self: center;\r\n        }\r\n\r\n        .vpc-panel-content {\r\n            padding: 16px;\r\n        }\r\n\r\n        .vpc-panel-text {\r\n            font-size: 13px;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 480px) {\r\n        .vpc-category-files {\r\n            grid-template-columns: 1fr;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<script>\r\n    \/\/ Language and translations data\r\n    window.cldTranslations = {\"description\":\"Use the search bar or filters to quickly find software, firmware and technical manuals. Click on the product name to access the download.\",\"search_placeholder\":\"Search by product code or name\",\"all_files\":\"All files\",\"sort\":\"Sort\",\"loading\":\"Loading products...\",\"error_loading\":\"Error loading products:\",\"extra_info\":\"Extra info\",\"languages_included\":\"Languages included in downloaded file:\",\"download\":\"Download\",\"firmware_description\":\"Firmware Description\",\"changelog\":\"Changelog\",\"italy\":\"Italy\",\"other\":\"Other\",\"select_nation\":\"Select a country\",\"select_province\":\"Select a province\",\"storelocator_loading\":\"Loading...\",\"search_execute\":\"Search\",\"where_to_find\":\"Where to find us:\",\"find_nearest_installer\":\"Find the nearest certified installer, agent, or distributor\",\"sorry_no_coverage\":\"Sorry, the selected province is not covered.\",\"contact_us\":\"Contact us\",\"find_solution\":\"to find the best solution for you together.\",\"agents\":\"Agents\",\"certified_installers\":\"Certified Installers\",\"partner_distributors\":\"Partner Distributors\",\"email_label\":\"Email:\",\"tel_label\":\"TEL.\",\"name_label\":\"Name:\",\"no_files_found\":\"No files found.\",\"attachment_depliant_pdf\":\"Attachment - Brochure PDF\",\"download_user_manual\":\"Download User Manual\",\"installer_area\":\"Installer Area\",\"discover_more\":\"Learn more\",\"filter\":\"Filter\",\"family\":\"Family\",\"filter_button\":\"Filter\",\"unnamed_product\":\"Unnamed Product\",\"no_description\":\"No description available\",\"category_depliant_pdf\":\"Brochure PDF\",\"category_manuale_installazione\":\"Installation Manual\",\"category_manuale_utente\":\"User Manual\",\"category_firmware\":\"Firmware\",\"category_certificazioni\":\"Certifications\",\"access_restricted\":\"WARNING! This section is reserved for Avs Electronics installers and commercial partners. For any other information, please use the dedicated Contact area.\"};\r\n    window.cldLang = 'en';\r\n    \r\n    \/*\r\n    setTimeout(() => {\r\n\r\n        document.elementFromPoint(window.innerWidth \/ 2, window.innerHeight \/ 2)\r\n\r\n        console.log(`cld_search_files.shortcode> rimuovo Div di Iubenda dopo 5 secondi`);\r\n        document.querySelector('#iubenda-cs-banner')?.remove()\r\n\r\n        const el = document.querySelector('#iubenda-cs-banner');\r\n        if (el) {\r\n        el.style.pointerEvents = 'none';\r\n        el.style.opacity = '0';\r\n        }\r\n    }, 5000);\r\n    *\/\r\n\r\n    \/\/ Wait for Vue to load and DOM to be ready\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        if (typeof Vue !== 'undefined') {\r\n            const { createApp, ref, computed } = Vue;\r\n\r\n            createApp({\r\n                setup() {\r\n                    \/\/ Helper function for translations\r\n                    const t = (key) => {\r\n                        return window.cldTranslations && window.cldTranslations[key] ? window.cldTranslations[key] : key;\r\n                    };\r\n\r\n                    const translateCategory = (categoryName) => {\r\n                        const key = 'category_' + categoryName.toLowerCase().replace(\/\\s+\/g, '_');\r\n                        return t(key);\r\n                    };\r\n                    \r\n                    \/\/ Get language-specific field suffix\r\n                    const langSuffix = window.cldLang || 'it';\r\n                    \r\n                    const searchQuery = ref('');\r\n                    const products = ref([]);\r\n                    const loading = ref(true);\r\n                    const error = ref(null);\r\n                    const showModal = ref(false);\r\n                    const selectedProduct = ref(null);\r\n                    const sortOrder = ref('asc');\r\n                    const selectedCategory = ref('all');\r\n                    const showCategoryDropdown = ref(false);\r\n                    const activeFileInfo = ref(null);\r\n                    const activePanel = ref(null);\r\n                    const showAccessRestrictedAlert = ref(false);\r\n                    let accessRestrictedAlertTimeout = null;\r\n\r\n                    \/\/ Fetch products from WordPress API\r\n                    const fetchProducts = async () => {\r\n                        try {\r\n                            loading.value = true;\r\n                            \/\/ Include credentials to send cookies for authentication\r\n                            const nonce = wpApiSettings?.nonce;\r\n                            const response = await fetch('\/wp-json\/cloud_custom_utilities\/v1\/get_files?lang=' + window.cldLang, {\r\n                                credentials: 'same-origin',\r\n                                headers: nonce ? { 'X-WP-Nonce': nonce } : {}\r\n                            });\r\n                            \r\n                            if (!response.ok) {\r\n                                throw new Error(`HTTP error! status: ${response.status}`);\r\n                            }\r\n                            \r\n                            const data = await response.json();\r\n                            \r\n                            if (data.products && Array.isArray(data.products)) {\r\n                                products.value = data.products.map((product, index) => ({\r\n                                    id: product.wordpress_id || index + 1,\r\n                                    name: product.post_title || t('unnamed_product'),\r\n                                    description: product?.abstract,\r\n                                    image: product.image || null,\r\n                                    files: product.files || [],\r\n                                    wordpress_ids: product.wordpress_ids\r\n                                }));\r\n                            } else {\r\n                                throw new Error('Invalid data format: products array not found');\r\n                            }\r\n                        } catch (err) {\r\n                            console.error('Error fetching products:', err);\r\n                            error.value = err.message;\r\n                        } finally {\r\n                            loading.value = false;\r\n                        }\r\n                    };\r\n\r\n                    const availableCategories = computed(() => {\r\n                        const categories = new Set();\r\n                        products.value.forEach(product => {\r\n                            if (product.files && Array.isArray(product.files)) {\r\n                                product.files.forEach(fileWrapper => {\r\n                                    const file = fileWrapper.Files_id;\r\n                                    if (file && file.category && file.category.Title) {\r\n                                        categories.add(file.category.Title);\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                        return Array.from(categories).sort();\r\n                    });\r\n\r\n                    const filteredProducts = computed(() => {\r\n                        let filtered = products.value;\r\n                        \r\n                        \/\/ Apply search filter\r\n                        if (searchQuery.value) {\r\n                            filtered = filtered.filter(product => \r\n                                product.name.toLowerCase().includes(searchQuery.value.toLowerCase()) ||\r\n                                product.description.toLowerCase().includes(searchQuery.value.toLowerCase())\r\n                            );\r\n                        }\r\n\r\n                        \/\/ Apply category filter\r\n                        if (selectedCategory.value !== 'all') {\r\n                            filtered = filtered.filter(product => {\r\n                                if (!product.files || !Array.isArray(product.files)) return false;\r\n                                return product.files.some(fileWrapper => {\r\n                                    const file = fileWrapper.Files_id;\r\n                                    return file && file.category && file.category.Title === selectedCategory.value;\r\n                                });\r\n                            });\r\n                        }\r\n                        \r\n                        \/\/ Apply sorting\r\n                        if (sortOrder.value === 'asc') {\r\n                            filtered = [...filtered].sort((a, b) => a.name.localeCompare(b.name));\r\n                        } else if (sortOrder.value === 'desc') {\r\n                            filtered = [...filtered].sort((a, b) => b.name.localeCompare(a.name));\r\n                        }\r\n                        \r\n                        return filtered;\r\n                    });\r\n\r\n                    const selectProduct = (product) => {\r\n                        selectedProduct.value = product;\r\n                        showModal.value = true;\r\n                    };\r\n\r\n                    const closeModal = () => {\r\n                        showModal.value = false;\r\n                        selectedProduct.value = null;\r\n                    };\r\n\r\n                    const toggleSort = () => {\r\n                        if (sortOrder.value === 'none') {\r\n                            sortOrder.value = 'asc';\r\n                        } else if (sortOrder.value === 'asc') {\r\n                            sortOrder.value = 'desc';\r\n                        } else {\r\n                            sortOrder.value = 'asc';\r\n                        }\r\n                    };\r\n\r\n                    const toggleCategoryDropdown = () => {\r\n                        showCategoryDropdown.value = !showCategoryDropdown.value;\r\n                    };\r\n\r\n                    const selectCategory = (category) => {\r\n                        selectedCategory.value = category;\r\n                        showCategoryDropdown.value = false;\r\n                    };\r\n\r\n                    const openFile = (file) => {\r\n                        const fileLink = typeof file === 'string' ? file : (file.file || '\/');\r\n\r\n                        if (fileLink === 'show_alert') {\r\n                            showAccessRestrictedAlert.value = true;\r\n\r\n                            if (accessRestrictedAlertTimeout) {\r\n                                clearTimeout(accessRestrictedAlertTimeout);\r\n                            }\r\n\r\n                            accessRestrictedAlertTimeout = setTimeout(() => {\r\n                                showAccessRestrictedAlert.value = false;\r\n                            }, 6000);\r\n\r\n                            return;\r\n                        }\r\n\r\n                        window.open(fileLink, '_blank');\r\n                    };\r\n\r\n                    const toggleFileInfo = (file) => {\r\n                        if (activeFileInfo.value && activeFileInfo.value.id === file.id) {\r\n                            activeFileInfo.value = null;\r\n                            activePanel.value = null;\r\n                        } else {\r\n                            activeFileInfo.value = file;\r\n                            activePanel.value = null;\r\n                            \/\/ Scroll to .vpc-extra-panel-buttons after DOM update\r\n                            setTimeout(() => {\r\n                                const panel = document.querySelector('.vpc-extra-panel-buttons');\r\n                                if (panel) {\r\n                                    panel.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n                                }\r\n                            }, 100);\r\n                        }\r\n                        console.log(`toggleFileInfo> `, activeFileInfo);\r\n                        showFileContent(\"intro\", file); \/\/ open intro by default\r\n                    };\r\n\r\n                    const showFileContent = (type, file) => {\r\n                        activePanel.value = type + '_' + file.id;\r\n                    };\r\n\r\n                    const closeFileInfo = () => {\r\n                        activeFileInfo.value = null;\r\n                        activePanel.value = null;\r\n                    };\r\n\r\n                    const groupFilesByCategory = (files) => {\r\n                        if (!files || !Array.isArray(files)) return {};\r\n \r\n                        \/\/ Define the desired category order\r\n                        const categoryOrder = [\r\n                            'DEPLIANT PDF',\r\n                            'MANUALE INSTALLAZIONE',\r\n                            'MANUALE UTENTE',\r\n                            'FIRMWARE',\r\n                            'CERTIFICAZIONI',\r\n                        ];\r\n\r\n                        const grouped = {};\r\n                        files.forEach(fileWrapper => {\r\n                            const file = fileWrapper.Files_id;\r\n                            if (!file) return;\r\n                            \r\n                            const categoryName = file.category?.Title;\r\n                            if (!categoryName) return;\r\n                            \r\n                            if (!grouped[categoryName]) {\r\n                                grouped[categoryName] = [];\r\n                            }\r\n                            grouped[categoryName].push(file);\r\n                        });\r\n                        \r\n                        \/\/ Return ordered object\r\n                        const orderedGrouped = {};\r\n                        \r\n                        \/\/ First add categories in the defined order\r\n                        categoryOrder.forEach(category => {\r\n                            if (grouped[category]) {\r\n                                orderedGrouped[category] = grouped[category];\r\n                            }\r\n                        });\r\n                        \r\n                        \/\/ Then add any remaining categories not in the order list\r\n                        Object.keys(grouped).forEach(category => {\r\n                            if (!categoryOrder.includes(category)) {\r\n                                orderedGrouped[category] = grouped[category];\r\n                            }\r\n                        });\r\n                        \r\n                        return orderedGrouped;\r\n                    };\r\n\r\n\r\n                    const fileInCategory = (files, targetFile) => {\r\n                        if (!files || !Array.isArray(files) || !targetFile) return false;\r\n                        return files.some(file => file.id === targetFile.id);\r\n                    };\r\n\r\n                    \/\/ Close dropdown when clicking outside\r\n                    const handleClickOutside = (event) => {\r\n                        const dropdown = event.target.closest('.vpc-filter-dropdown');\r\n                        if (!dropdown && showCategoryDropdown.value) {\r\n                            showCategoryDropdown.value = false;\r\n                        }\r\n                    };\r\n\r\n                    \/\/ Fetch products when component is mounted\r\n                    fetchProducts();\r\n\r\n                    \/\/ Check for product_id URL parameter to auto-open modal\r\n                    const urlParams = new URLSearchParams(window.location.search);\r\n                    const productId = urlParams.get('product_id');\r\n                    if (productId) {\r\n                        \/\/ Wait for products to load, then open the modal for the specified product\r\n                        const checkForProduct = () => {\r\n                            if (products.value.length > 0) {\r\n                                \/\/ TODO check this condition\r\n                                const product = products.value.find(p => p.wordpress_ids.includes(productId));\r\n                                if (product) {\r\n                                    selectProduct(product);\r\n                                    \/\/ Remove the parameter from URL without refreshing\r\n                                    const newUrl = window.location.pathname;\r\n                                    window.history.replaceState({}, document.title, newUrl);\r\n                                }\r\n                            } else {\r\n                                \/\/ Retry after a short delay if products not loaded yet\r\n                                setTimeout(checkForProduct, 100);\r\n                            }\r\n                        };\r\n                        checkForProduct();\r\n                    }\r\n\r\n                    \/\/ Add click outside listener\r\n                    document.addEventListener('click', handleClickOutside);\r\n\r\n                    return {\r\n                        searchQuery,\r\n                        products,\r\n                        filteredProducts,\r\n                        selectProduct,\r\n                        loading,\r\n                        error,\r\n                        showModal,\r\n                        selectedProduct,\r\n                        closeModal,\r\n                        groupFilesByCategory,\r\n                        fileInCategory,\r\n                        sortOrder,\r\n                        toggleSort,\r\n                        selectedCategory,\r\n                        showCategoryDropdown,\r\n                        availableCategories,\r\n                        toggleCategoryDropdown,\r\n                        selectCategory,\r\n                        openFile,\r\n                        activeFileInfo,\r\n                        activePanel,\r\n                        toggleFileInfo,\r\n                        showFileContent,\r\n                        closeFileInfo,\r\n                        showAccessRestrictedAlert,\r\n                        t,\r\n                        translateCategory,\r\n                        langSuffix\r\n                    };\r\n                }\r\n            }).mount('#vue-product-catalog');\r\n        }\r\n    });\r\n<\/script>\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Software &amp;technical manuals Find software, firmware, and technical documentation for your AVS products. Download now Step 1 | Search or filter Enter the product name or code in the search bar or use the search filters. Step2 | Select product Choose the article from the list to open the page with software and manuals. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1302,"parent":4953,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4933","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Software\/Manuals - AVS Electronics<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software\/Manuals - AVS Electronics\" \/>\n<meta property=\"og:description\" content=\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Software &amp;technical manuals Find software, firmware, and technical documentation for your AVS products. Download now Step 1 | Search or filter Enter the product name or code in the search bar or use the search filters. Step2 | Select product Choose the article from the list to open the page with software and manuals. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/\" \/>\n<meta property=\"og:site_name\" content=\"AVS Electronics\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T14:21:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"760\" \/>\n\t<meta property=\"og:image:height\" content=\"460\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/\",\"url\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/\",\"name\":\"Software\/Manuals - AVS Electronics\",\"isPartOf\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"datePublished\":\"2025-07-03T09:45:46+00:00\",\"dateModified\":\"2026-03-09T14:21:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage\",\"url\":\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"contentUrl\":\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"width\":760,\"height\":460},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\",\"item\":\"https:\/\/www.avselectronics.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installer Area\",\"item\":\"https:\/\/www.avselectronics.com\/en\/area-installatore\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Software\/Manuals\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/#website\",\"url\":\"https:\/\/www.avselectronics.com\/en\/\",\"name\":\"AVS Electronics\",\"description\":\"Sicuri e protetti. Sempre.\",\"publisher\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.avselectronics.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/#organization\",\"name\":\"AVS Electronics\",\"url\":\"https:\/\/www.avselectronics.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.avselectronics.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/08\/AVS_logo.png\",\"contentUrl\":\"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/08\/AVS_logo.png\",\"width\":381,\"height\":179,\"caption\":\"AVS Electronics\"},\"image\":{\"@id\":\"https:\/\/www.avselectronics.com\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software\/Manuals - AVS Electronics","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/","og_locale":"en_US","og_type":"article","og_title":"Software\/Manuals - AVS Electronics","og_description":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Software &amp;technical manuals Find software, firmware, and technical documentation for your AVS products. Download now Step 1 | Search or filter Enter the product name or code in the search bar or use the search filters. Step2 | Select product Choose the article from the list to open the page with software and manuals. [&hellip;]","og_url":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/","og_site_name":"AVS Electronics","article_modified_time":"2026-03-09T14:21:21+00:00","og_image":[{"width":760,"height":460,"url":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/","url":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/","name":"Software\/Manuals - AVS Electronics","isPartOf":{"@id":"https:\/\/www.avselectronics.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage"},"image":{"@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage"},"thumbnailUrl":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","datePublished":"2025-07-03T09:45:46+00:00","dateModified":"2026-03-09T14:21:21+00:00","breadcrumb":{"@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#primaryimage","url":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","contentUrl":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","width":760,"height":460},{"@type":"BreadcrumbList","@id":"https:\/\/www.avselectronics.com\/en\/installer-area\/software-manuals\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"","item":"https:\/\/www.avselectronics.com\/en\/"},{"@type":"ListItem","position":2,"name":"Installer Area","item":"https:\/\/www.avselectronics.com\/en\/area-installatore\/"},{"@type":"ListItem","position":3,"name":"Software\/Manuals"}]},{"@type":"WebSite","@id":"https:\/\/www.avselectronics.com\/en\/#website","url":"https:\/\/www.avselectronics.com\/en\/","name":"AVS Electronics","description":"Sicuri e protetti. Sempre.","publisher":{"@id":"https:\/\/www.avselectronics.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.avselectronics.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.avselectronics.com\/en\/#organization","name":"AVS Electronics","url":"https:\/\/www.avselectronics.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.avselectronics.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/08\/AVS_logo.png","contentUrl":"https:\/\/www.avselectronics.com\/wp-content\/uploads\/2025\/08\/AVS_logo.png","width":381,"height":179,"caption":"AVS Electronics"},"image":{"@id":"https:\/\/www.avselectronics.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/pages\/4933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/comments?post=4933"}],"version-history":[{"count":12,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/pages\/4933\/revisions"}],"predecessor-version":[{"id":12536,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/pages\/4933\/revisions\/12536"}],"up":[{"embeddable":true,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/pages\/4953"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/media\/1302"}],"wp:attachment":[{"href":"https:\/\/www.avselectronics.com\/en\/wp-json\/wp\/v2\/media?parent=4933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}