{"id":6441,"date":"2025-07-03T09:45:46","date_gmt":"2025-07-03T09:45:46","guid":{"rendered":"https:\/\/avselectronics.sviluppo.spherica.it\/logiciels-et-documentation-technique\/"},"modified":"2026-03-09T14:25:11","modified_gmt":"2026-03-09T14:25:11","slug":"logiciels-et-documentation-technique","status":"publish","type":"page","link":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/","title":{"rendered":"Logiciels et documentation technique"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6441\" class=\"elementor elementor-6441 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:\/\/avselectronics.sviluppo.spherica.it\/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 )\">Logiciel<\/span>&amp;<br><span style=\"color:var( --e-global-color-primary )\">manuels techniques<\/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>Consultez les logiciels, firmware et la documentation technique pour vos produits AVS.<\/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=\"#documentation\">\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\">T\u00e9l\u00e9charger<\/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\">\u00c9tape 1 | Recherche ou filtre<\/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>Entrez le nom ou le code du produit dans la barre de recherche ou utilisez les filtres de recherche.<\/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\">\u00c9tape 2 | S\u00e9lectionner le produit <\/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>S\u00e9lectionnez un article dans la liste pour ouvrir la page des logiciels et manuels.<\/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\">\u00c9tape 3 | T\u00e9l\u00e9charger le fichier <\/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>Cliquez sur \u00ab\u202fT\u00e9l\u00e9charger\u202f\u00bb pour obtenir le manuel ou logiciel le plus r\u00e9cent.<\/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=\"documentation\">\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                    Utilisez la barre de recherche ou les filtres pour trouver rapidement les logiciels, firmware et manuels techniques. Cliquez sur le nom du produit pour acc\u00e9der au t\u00e9l\u00e9chargement.                <\/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=\"Rechercher par code ou nom de produit\"\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' ? 'Tous les fichiers' : 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                            Tous les fichiers                        <\/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                    Trier                <\/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>Chargement des produits...<\/p>\r\n        <\/div>        \r\n        <div v-else-if=\"error\" class=\"vpc-error\">\r\n            <p>Erreur lors du chargement des produits : {{ 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;Informations suppl\u00e9mentaires                                            <\/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\">Langues incluses dans le fichier t\u00e9l\u00e9charg\u00e9 :<\/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                                        T\u00e9l\u00e9charger                                    <\/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                                                Description du firmware                                            <\/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                                                Journal des modifications                                            <\/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\":\"Utilisez la barre de recherche ou les filtres pour trouver rapidement les logiciels, firmware et manuels techniques. Cliquez sur le nom du produit pour acc\\u00e9der au t\\u00e9l\\u00e9chargement.\",\"search_placeholder\":\"Rechercher par code ou nom de produit\",\"all_files\":\"Tous les fichiers\",\"sort\":\"Trier\",\"loading\":\"Chargement des produits...\",\"error_loading\":\"Erreur lors du chargement des produits :\",\"extra_info\":\"Informations suppl\\u00e9mentaires\",\"languages_included\":\"Langues incluses dans le fichier t\\u00e9l\\u00e9charg\\u00e9 :\",\"download\":\"T\\u00e9l\\u00e9charger\",\"firmware_description\":\"Description du firmware\",\"changelog\":\"Journal des modifications\",\"italy\":\"Italie\",\"other\":\"Autre\",\"select_nation\":\"S\\u00e9lectionnez un pays\",\"select_province\":\"S\\u00e9lectionnez une province\",\"storelocator_loading\":\"Chargement...\",\"search_execute\":\"Rechercher\",\"where_to_find\":\"O\\u00f9 nous trouver :\",\"find_nearest_installer\":\"Trouvez l'installateur certifi\\u00e9, l'agent ou le distributeur le plus proche\",\"sorry_no_coverage\":\"D\\u00e9sol\\u00e9, la province s\\u00e9lectionn\\u00e9e n'est pas couverte.\",\"contact_us\":\"Contactez-nous\",\"find_solution\":\"pour trouver ensemble la meilleure solution pour vous.\",\"agents\":\"Agents\",\"certified_installers\":\"Installateurs Certifi\\u00e9s\",\"partner_distributors\":\"Distributeurs Partenaires\",\"email_label\":\"E-mail :\",\"tel_label\":\"T\\u00c9L.\",\"name_label\":\"Nom :\",\"no_files_found\":\"Aucun fichier trouv\\u00e9.\",\"attachment_depliant_pdf\":\"Pi\\u00e8ce jointe - Brochure PDF\",\"download_user_manual\":\"T\\u00e9l\\u00e9charger le manuel d'utilisation\",\"installer_area\":\"Espace Installateur\",\"discover_more\":\"En savoir plus\",\"filter\":\"Filtrer\",\"family\":\"Famille\",\"filter_button\":\"Filtrer\",\"unnamed_product\":\"Produit sans nom\",\"no_description\":\"Aucune description disponible\",\"category_depliant_pdf\":\"Brochure PDF\",\"category_manuale_installazione\":\"Manuel d'installation\",\"category_manuale_utente\":\"Manuel d'utilisation\",\"category_firmware\":\"Firmware\",\"category_certificazioni\":\"Certifications\",\"access_restricted\":\"ATTENTION ! Cette section est reservee aux installateurs et partenaires commerciaux d'Avs Electronics. Pour toute autre information, veuillez utiliser l'espace Contacts dedie.\"};\r\n    window.cldLang = 'fr';\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 response = await fetch('\/wp-json\/cloud_custom_utilities\/v1\/get_files?lang=' + window.cldLang, {\r\n                                credentials: 'same-origin',\r\n                                headers: {\r\n                                    'X-WP-Nonce': wpApiSettings?.nonce || ''\r\n                                }\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:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Logiciel&amp;manuels techniques Consultez les logiciels, firmware et la documentation technique pour vos produits AVS. T\u00e9l\u00e9charger \u00c9tape 1 | Recherche ou filtre Entrez le nom ou le code du produit dans la barre de recherche ou utilisez les filtres de recherche. \u00c9tape 2 | S\u00e9lectionner le produit S\u00e9lectionnez un article dans la liste pour ouvrir [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1302,"parent":6474,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6441","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>Logiciels et documentation technique - AVS Electronics<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Logiciels et documentation technique - AVS Electronics\" \/>\n<meta property=\"og:description\" content=\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Logiciel&amp;manuels techniques Consultez les logiciels, firmware et la documentation technique pour vos produits AVS. T\u00e9l\u00e9charger \u00c9tape 1 | Recherche ou filtre Entrez le nom ou le code du produit dans la barre de recherche ou utilisez les filtres de recherche. \u00c9tape 2 | S\u00e9lectionner le produit S\u00e9lectionnez un article dans la liste pour ouvrir [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/\" \/>\n<meta property=\"og:site_name\" content=\"AVS Electronics\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T14:25:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/avselectronics.sviluppo.spherica.it\/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=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\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:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/\",\"url\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/\",\"name\":\"Logiciels et documentation technique - AVS Electronics\",\"isPartOf\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"datePublished\":\"2025-07-03T09:45:46+00:00\",\"dateModified\":\"2026-03-09T14:25:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage\",\"url\":\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"contentUrl\":\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png\",\"width\":760,\"height\":460},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\",\"item\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Espace Installateurs\",\"item\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/area-installatore\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Logiciels et documentation technique\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#website\",\"url\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/\",\"name\":\"AVS Electronics\",\"description\":\"Sicuri e protetti. Sempre.\",\"publisher\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#organization\",\"name\":\"AVS Electronics\",\"url\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/08\/AVS_logo.png\",\"contentUrl\":\"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/08\/AVS_logo.png\",\"width\":381,\"height\":179,\"caption\":\"AVS Electronics\"},\"image\":{\"@id\":\"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Logiciels et documentation technique - AVS Electronics","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"fr_FR","og_type":"article","og_title":"Logiciels et documentation technique - AVS Electronics","og_description":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/09\/shutterstock_1105313967-1.mp4 Logiciel&amp;manuels techniques Consultez les logiciels, firmware et la documentation technique pour vos produits AVS. T\u00e9l\u00e9charger \u00c9tape 1 | Recherche ou filtre Entrez le nom ou le code du produit dans la barre de recherche ou utilisez les filtres de recherche. \u00c9tape 2 | S\u00e9lectionner le produit S\u00e9lectionnez un article dans la liste pour ouvrir [&hellip;]","og_url":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/","og_site_name":"AVS Electronics","article_modified_time":"2026-03-09T14:25:11+00:00","og_image":[{"width":760,"height":460,"url":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/","url":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/","name":"Logiciels et documentation technique - AVS Electronics","isPartOf":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage"},"image":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage"},"thumbnailUrl":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","datePublished":"2025-07-03T09:45:46+00:00","dateModified":"2026-03-09T14:25:11+00:00","breadcrumb":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#primaryimage","url":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","contentUrl":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/07\/noimage-760x460-1.png","width":760,"height":460},{"@type":"BreadcrumbList","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/espace-installateurs\/logiciels-et-documentation-technique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"","item":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/"},{"@type":"ListItem","position":2,"name":"Espace Installateurs","item":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/area-installatore\/"},{"@type":"ListItem","position":3,"name":"Logiciels et documentation technique"}]},{"@type":"WebSite","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#website","url":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/","name":"AVS Electronics","description":"Sicuri e protetti. Sempre.","publisher":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#organization","name":"AVS Electronics","url":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/08\/AVS_logo.png","contentUrl":"https:\/\/avselectronics.sviluppo.spherica.it\/wp-content\/uploads\/2025\/08\/AVS_logo.png","width":381,"height":179,"caption":"AVS Electronics"},"image":{"@id":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/pages\/6441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/comments?post=6441"}],"version-history":[{"count":4,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/pages\/6441\/revisions"}],"predecessor-version":[{"id":12548,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/pages\/6441\/revisions\/12548"}],"up":[{"embeddable":true,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/pages\/6474"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/media\/1302"}],"wp:attachment":[{"href":"https:\/\/avselectronics.sviluppo.spherica.it\/fr\/wp-json\/wp\/v2\/media?parent=6441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}