{"product_id":"aula-f108-pro-full-size-vision-knob-keyboard-aulagaming-aula-f108-pro","title":"AULA F108 Pro Full Size vision Knob Keyboard","description":"Product Description\n\n function logShoppableMetrics(moduleName, showsAddToCart) {\n if (window.ue \u0026amp;amp;\u0026amp;amp; window.ue.count) {\n window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0);\n }\n }\n\n \/**\n * Common event handler for click and keydown events.\n * @param {Event} event - The event object.\n * @param {Function} handleClickOrEnter - Function to handle click or Enter key events.\n * @param {Function} handleEsc - Function to handle Esc key events.\n *\/\n \/\/ [TODO][AplusMantle-8064] Create common event handler util(key events, click events) in AplusModuleResources\n function handleClickAndKeyEvents(event, handleClickOrEnterOrSpace) {\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const SPACE_KEY_CODE = 32;\n const isClick = event.type === 'click';\n const isKeydown = event.type === 'keydown';\n const isEnter = isKeydown \u0026amp;amp;\u0026amp;amp; event.keyCode === ENTER_KEY_CODE;\n const isSpace = isKeydown \u0026amp;amp;\u0026amp;amp; event.keyCode === SPACE_KEY_CODE;\n const isEsc = isKeydown \u0026amp;amp;\u0026amp;amp; event.keyCode === ESCAPE_KEY_CODE;\n\n if (isClick || isEnter || isSpace) {\n handleClickOrEnterOrSpace();\n } else if (isEsc) {\n handleEsc(event);\n }\n }\n\n \/**\n * Function to handle esc key event.\n * @param {Event} event - The event object.\n *\/\n function handleEsc(event) {\n event.target.blur() \/\/ force remove focus\n }\n\n\u003cbr\u003e\u003col\u003e\u003c\/ol\u003e\u003cbr\u003e\u003cbr\u003e\u003col\u003e\u003c\/ol\u003e\u003col\u003e\u003c\/ol\u003e\u003cbr\u003e\n\nP.now(\"premium-aplus-13-carousel-4\").execute(function(init) {\n if (init) {\n return;\n }\n P.register(\"premium-aplus-13-carousel-4\", function(){\n return function() {\n P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(function (A, $, framework) {\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n var moduleId = \"4\";\n var carouselName = \"premium-aplus-13-carousel-4\";\n var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n \/* If the carousel goes to a new page *\/\n A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n });\n\n function syncPaginationDotsWithCarouselPages(numPages) {\n const children = document.querySelector(paginationGroup).children;\n \n for(let i = 0; i \u0026amp;lt; children.length; i++) {\n if (i \u0026amp;gt;= numPages) {\n \/\/ If number of dots \u0026amp;gt; num of pages, we should hide other dots\n children[i].classList.add('aplus-pagination-dot--display-none');\n } else if(children[i].classList.contains('aplus-pagination-dot--display-none')){\n \/\/ Reset display of dots if it was hidden before\n children[i].classList.remove('aplus-pagination-dot--display-none');\n }\n }\n }\n\n \n framework.onInit(carouselName, function (carousel) {\n var totalPages = carousel.getAttr('totalPages');\n syncPaginationDotsWithCarouselPages(totalPages);\n \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n window.addEventListener('resize', function() {\n carousel.resize();\n totalPages = carousel.getAttr('totalPages');\n syncPaginationDotsWithCarouselPages(totalPages);\n });\n\n A.declarative(paginationAction, 'click keydown', function(event){\n var isClick = event.type === 'click';\n var isKeydown = event.type === 'keydown';\n var isEnter = isKeydown \u0026amp;amp;\u0026amp;amp; event.$event.keyCode === ENTER_KEY_CODE;\n var isEsc = isKeydown \u0026amp;amp;\u0026amp;amp; event.$event.keyCode === ESCAPE_KEY_CODE;\n if (isClick || isEnter) {\n var data = event.data;\n carousel.gotoPage(data.page);\n } else if (isEsc) {\n \/\/ force remove focus\n event.$target.blur()\n }\n });\n });\n });\n }\n });\n});\n\u003cbr\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eHow to download the software? Is it compatible with Mac?\u003c\/p\u003e\n\u003cp\u003e1.Download the software via bit.ly\/m\/AULA\u003c\/p\u003e\n\u003cp\u003e2.This F108Pro mechanical keyboard is compatible with Windows, Mac, IOS and Android systems, but the software only supports Windows system and wired mode.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eHow to calibrate the date\/time and custom GIF images on the screen?\u003c\/p\u003e\n\u003cp\u003e1.Download and install the F108pro driver in wired mode with windows system.\u003c\/p\u003e\n\u003cp\u003e2.Find the \"TFT screen\" and click to \"Time Syns\" button.\u003c\/p\u003e\n\u003cp\u003e3.Upload an image or gif\u003c\/p\u003e\n\u003cp\u003eNote: The LCD screen has a transparent protective film that can be peeled off before use.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eAULA F108 Pro backlight\/side light shortcut key?\u003c\/p\u003e\n\u003cp\u003eBacklight Adjustment：\u003c\/p\u003e\n\u003cp\u003eFN+\\|=switch 19 lighting effects；FN+Tab=switch lighting colors；FN+↑\/↓=lighting brightness+\/-；FN+→\/←=lighting speed+\/-\u003c\/p\u003e\n\u003cp\u003eSide Light Adjustment:\u003c\/p\u003e\n\u003cp\u003eFN+Right Shift=Switch effect；FN+\/?=Switch color；FN+Right Alt=Switch brightness\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eHow to quickly solve keyboard unresponsive or other unknown issues？\u003c\/p\u003e\n\u003cp\u003eReset the keyboard by holding down FN+ESC for a few seconds until the keyboard light flashes\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eHow to view the instruction manual? And receiving incorrect product colors\u003c\/p\u003e\n\u003cp\u003eScan the QR on the card inside the packaging to view the instruction manual\u003c\/p\u003e\n\u003cp\u003eThe keyboard packaging is uniformly gray yellow, please refer to the actual color inside the packaging for accuracy\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cbr\u003e","brand":"aulagaming","offers":[{"title":"Gradient Black Side Printed — Caramel Latte Switches","offer_id":67960701157419,"sku":"43519366398045","price":26.37,"currency_code":"USD","in_stock":true},{"title":"Mocha Mousse — Caramel Latte Switches","offer_id":67960701190187,"sku":"43519366496349","price":26.37,"currency_code":"USD","in_stock":true},{"title":"Gray\u0026Yellow — Rainy Switches","offer_id":67960701222955,"sku":"43699458244701","price":26.37,"currency_code":"USD","in_stock":true},{"title":"White\u0026Red — Wind Spirit Switches","offer_id":67960701255723,"sku":"43699458343005","price":26.37,"currency_code":"USD","in_stock":true},{"title":"Gradient Blue Side Printed — Wind Spirit Switches","offer_id":67960701288491,"sku":"43699458474077","price":26.37,"currency_code":"USD","in_stock":true},{"title":"Pink Side Printed — Caramel Latte Switches","offer_id":67960701321259,"sku":"43793037590621","price":26.37,"currency_code":"USD","in_stock":true},{"title":"Gradient Black(No Screen No Knob) — Wind Spirit Switches","offer_id":67960701354027,"sku":"44722457051229","price":23.37,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0807\/6296\/1963\/files\/df89308a8cf46b6182894c05e7e182f0.webp?v=1792584737","url":"https:\/\/aulagamingbest.it.com\/products\/aula-f108-pro-full-size-vision-knob-keyboard-aulagaming-aula-f108-pro","provider":"aulagamingbest.it.com","version":"1.0","type":"link"}