{"product_id":"zoney-switch-controller-for-nintendo-switch-oled-one-piece-joypad-switch-pro-controller-for-handheld-mode-ergonomic-handheld-switch-grip-controller-with-6-axis-motion-control-turbo-mapping-blue-green","title":"ZONEY Switch Controller for Nintendo Switch\/OLED, One-Piece Joypad Switch Pro Controller for Handheld Mode, Ergonomic Handheld Switch Grip Controller with 6-Axis Motion Control, Turbo \u0026 Mapping (Blue \u0026 Green)","description":"【Designed for Switch\/Switch OLED】Switch handheld controller grip is specially designed for Switch\/Switch OLED gaming consoles, adopting Type-C direct connection that achieves plug and play, providing better performance without signal delay (Please turn ON “Pro Controller Wired Communication” in the setting menu)\u003cbr\u003e\n【Ergonomic \u0026amp; Non-Slip Design】Ergonomic hand-fit design with Lightweight materials make wired joycon controller game-time more comfortable. The back of controller is designed with a special anti-skid texture design, which help increases friction and reduces the unpleasant experience caused by hand sweat.\u003cbr\u003e\n【Foldable Bracket \u0026amp; Card Slot】Dobe switch controller grip is designed with a foldable bracket design, you can adjust the angle and make it stand on the desk, free your hands. Conveniently store 4 game cards with the extra game card slots.\u003cbr\u003e\n【PD Fast Charging while Playing】Switch one piece controller for nintendo with built-in smart PD fast charging chip, which allows you to simultaneously charge the console during playing (No baterry inside switch grip conroller, which is powered by switch console. Please use the original Switch power adapter or a standard 15V PD protocol power adapter to charge.\u003cbr\u003e\n【6-Axis Gryo Motion Control \u0026amp; 4 Levels Vibration】The switch pro controller built-in dual motors with 4 levels of precise vibration (None\/Weak\/Medium\/Strong) and gyroscope which can make the steering timely and accurately, excellent dual vibration effect design makes the tactile sense more sensitive. These design makes you get instant response in the game with absolutely no delay, which make the experience is more real.\u003cbr\u003e\n【Mapping \u0026amp; Turbo Functionality】The mapping function allows you to program the four buttons on the back. Supports Mapping of A\/B\/X\/Y\/+\/-\/L\/R\/ZL\/ZR\/D-pad\/L3\/R3. Also support TURBO and screenshot functions. The Turbo mode lets you fire at three different speeds for faster combos and quicker reaction times.\n\u003cdiv class=\"a-section a-spacing-large bucket\" id=\"aplus\"\u003e\n\u003chr class=\"bucketDivider\" noshade size=\"1\"\u003e\n\u003ch2\u003eProduct Description\u003c\/h2\u003e\n\n\u003cdiv lang=\"en_AU\"\u003e\n\u003cstyle type=\"text\/css\"\u003e.aplus-v2 .container-with-background-image {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; width: 100%;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; height: 100%;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; background-repeat: no-repeat;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; background-size: cover;\n\u0026nbsp; \u0026nbsp; }\n\u003c\/style\u003e\n\u003cscript type=\"application\/javascript\"\u003e\n\u0026nbsp; \u0026nbsp; function logShoppableMetrics(moduleName, showsAddToCart) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; if (window.ue \u0026amp;\u0026amp; window.ue.count) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; }\n\u003c\/script\u003e\n\u003cdiv cel_widget_id=\"aplus\" class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/cb290cf7-db1f-419b-91fa-c0c4540df0ce.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/745a751a-92e2-4575-b64e-a057e90ed46f.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/cf9bb603-91f0-4b3f-8793-44626e801397.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-13-carousel\" class=\"celwidget aplus-module premium-module-13-carousel aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-13\"\u003e\n\u003cdiv class=\"a-section a-spacing-none aplus-carousel-container\"\u003e\n\u003cdiv aria-label=\"Featured content carousel\" aria-roledescription=\"carousel\" class=\"a-begin a-carousel-container a-carousel-static a-carousel-display-single a-carousel-transition-slideCircular\" data-a-carousel-options='{\"name\":\"premium-aplus-13-carousel-3\",\"peek_percentage\":0,\"minimum_gutter_width\":0,\"show_partial_next\":false}' data-a-display-strategy=\"single\" data-a-transition-strategy=\"slideCircular\" id=\"premium-aplus-13-carousel-3-id\" role=\"group\"\u003e\n\u003cinput autocomplete=\"on\" class=\"a-carousel-firstvisibleitem\" type=\"hidden\"\u003e\n\u003cdiv class=\"a-row a-carousel-controls a-carousel-row a-carousel-has-buttons a-carousel-overlay-buttons a-carousel-rounded-buttons\"\u003e\n\u003cdiv class=\"a-carousel-row-inner\"\u003e\n\u003cdiv class=\"a-carousel-col a-carousel-left\"\u003e \u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-center\"\u003e\n\u003cdiv aria-roledescription=\"slide\" class=\"a-carousel-viewport\" role=\"group\"\u003e\n\u003col class=\"a-carousel\" role=\"list\"\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-3-slide-0\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n\t\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/bfa33e21-5d3a-4dee-b6f8-cc7f8b4ef4f1.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-3-slide-1\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n\t\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/6601b798-3fc4-4d42-be40-cf284889ee4a.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\t\u003cli aria-roledescription=\"slide\" aria-setsize=\"3\" class=\"a-carousel-card aplus-carousel-element\"\u003e\n\t\u003cdiv id=\"premium-aplus-13-carousel-3-slide-2\"\u003e\n\t\u003cdiv class=\"a-section a-spacing-none aplus-card-image\"\u003e\n\t\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/677fde6f-8423-454f-a866-943806faddf6.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\t\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-carousel-col a-carousel-right\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"a-end aok-hidden\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-spacing-none aplus-pagination-wrapper\"\u003e\n\u003cscript\u003e\n\nP.now(\"premium-aplus-13-carousel-3\").execute(function(init) {\n\u0026nbsp; \u0026nbsp; if (init) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; return;\n\u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; P.register(\"premium-aplus-13-carousel-3\", function() {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; return function() {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; P.when(\"A\", \"jQuery\", \"a-carousel-framework\", \"ready\").execute(\"paginate-carousel\", function (A, $, framework) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const ENTER_KEY_CODE = 13;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const ESCAPE_KEY_CODE = 27;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const LEFT_ARROW_KEY = 37;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const RIGHT_ARROW_KEY = 39;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const HOME_KEY = 36;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const END_KEY = 35;\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var moduleId = \"3\";\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var carouselName = \"premium-aplus-13-carousel-3\";\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var paginationAction = \"aplus-pagination-dot-action-\" + moduleId + \"-\" + carouselName;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var paginationGroup = \"#aplus-pagination-group-\" + moduleId + \"-\" + carouselName;\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \/* If the carousel goes to a new page *\/\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; A.on(\"a:carousel:\"+carouselName+\":change:pageNumber\", function (data) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; A.$(paginationGroup+\" .carousel-slider-circle\").removeClass(\"aplus-carousel-active\").attr('aria-selected', 'false').attr('tabindex', -1)\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; .eq(data.newValue - 1).addClass(\"aplus-carousel-active\").attr('aria-selected', 'true').attr('tabindex', 0);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; });\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; function syncPaginationDotsWithCarouselPages(numPages) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const parentElement = document.querySelector(paginationGroup);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; if (parentElement \u0026amp;\u0026amp; parentElement.children) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const children = parentElement.children;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; for (let i = 0; i \u003c children.length; i++) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; if (i \u003e= numPages) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \/\/ If number of dots \u003e num of pages, we should hide other dots\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; children[i].classList.add('aplus-pagination-dot--display-none');\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \/\/ Reset display of dots if it was hidden before\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; children[i].classList.remove('aplus-pagination-dot--display-none');\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; framework.onInit(carouselName, function (carousel) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; try {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var totalPages = carousel.getAttr('totalPages');\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; syncPaginationDotsWithCarouselPages(totalPages);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \/* Resize event handler to re-calculate the pagination dots count based on orientation *\/\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; window.addEventListener('resize', function() {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; carousel.resize();\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; totalPages = carousel.getAttr('totalPages');\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; syncPaginationDotsWithCarouselPages(totalPages);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; });\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; A.declarative(paginationAction, 'click keydown', function(event){\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isClick = event.type === 'click';\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isKeydown = event.type === 'keydown';\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isEnter = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === ENTER_KEY_CODE;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isEsc = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === ESCAPE_KEY_CODE;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isLeftArrow = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === LEFT_ARROW_KEY;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isRightArrow = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === RIGHT_ARROW_KEY;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isHome = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === HOME_KEY;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var isEnd = isKeydown \u0026amp;\u0026amp; event.$event.keyCode === END_KEY;\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; if (isClick || isEnter) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; var data = event.data;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; carousel.gotoPage(data.page);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (isEsc) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; event.$target.blur();\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (isLeftArrow || isRightArrow || isHome || isEnd) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; event.$event.preventDefault();\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const dots = A.$(paginationGroup + \" .carousel-slider-circle\");\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; const currentIndex = dots.index(event.$target);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; let nextIndex;\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; if (isLeftArrow) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; nextIndex = currentIndex \u003e 0 ? currentIndex - 1 : dots.length - 1;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (isRightArrow) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; nextIndex = currentIndex \u003c dots.length - 1 ? currentIndex + 1 : 0;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (isHome) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; nextIndex = 0;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } else if (isEnd) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; nextIndex = dots.length - 1;\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; dots.eq(nextIndex).focus();\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; carousel.gotoPage(nextIndex + 1);\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; });\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; } catch (e) {\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; });\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; });\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; }\n\u0026nbsp; \u0026nbsp; });\n});\n\u003c\/script\u003e\n\u003cdiv class=\"aplus-mantle aplus-module\"\u003e\n\u003cdiv class=\"aplus-carousel-nav\"\u003e\n\u003cul aria-label=\"tablist-section\" class=\"aplus-pagination-dots\" id=\"aplus-pagination-group-3-premium-aplus-13-carousel-3\" role=\"tablist\"\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-3-slide-0\" aria-label=\"slide-1\" aria-selected=\"true\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block aplus-carousel-active\" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 1}' role=\"tab\" tabindex=\"0\"\u003e \u003c\/span\u003e\u003c\/li\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-3-slide-1\" aria-label=\"slide-2\" aria-selected=\"false\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 2}' role=\"tab\" tabindex=\"-1\"\u003e \u003c\/span\u003e\u003c\/li\u003e\n\t\u003cli class=\"aplus-pagination-dot\"\u003e\u003cspan aria-controls=\"premium-aplus-13-carousel-3-slide-2\" aria-label=\"slide-3\" aria-selected=\"false\" class=\"a-declarative carousel-slider-circle aplus-display-inline-block \" data-action=\"aplus-pagination-dot-action-3-premium-aplus-13-carousel-3\" data-aplus-pagination-dot-action-3-premium-aplus-13-carousel-3='{\"page\": 3}' role=\"tab\" tabindex=\"-1\"\u003e \u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/7c91927a-d6ce-4139-be9e-3121f0953583.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv cel_widget_id=\"aplus-premium-module-2-fullbackground-image\" class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\n\u003cdiv class=\"a-section a-spacing-none background-image\"\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg alt=\"Switch Controller for Nintendo\" referrerpolicy=\"no-referrer\" src=\"https:\/\/m.media-amazon.com\/images\/S\/aplus-media-library-service-media\/c0f08d8b-ac23-4589-840b-325b54bc866f.__CR0,0,1464,600_PT0_SX1464_V1___.jpg\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"a-section a-text-center\"\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n","brand":"UNBRANDED","offers":[{"title":"Blue \u0026 Green","offer_id":51826588090647,"sku":null,"price":80.0,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0686\/2064\/8727\/files\/71FeUff6fBL._AC_SL1500_82caa8ca-227d-415e-9f2c-fbac83340ee3.jpg?v=1768795259","url":"https:\/\/baby360.nz\/products\/zoney-switch-controller-for-nintendo-switch-oled-one-piece-joypad-switch-pro-controller-for-handheld-mode-ergonomic-handheld-switch-grip-controller-with-6-axis-motion-control-turbo-mapping-blue-green","provider":"Baby360","version":"1.0","type":"link"}