{"id":21468,"date":"2026-04-03T15:16:15","date_gmt":"2026-04-03T12:16:15","guid":{"rendered":"https:\/\/dovanuska.lt\/?post_type=product&#038;p=21468"},"modified":"2026-04-03T18:08:56","modified_gmt":"2026-04-03T15:08:56","slug":"wobzi-personalized-clicker-keychain-with-name","status":"publish","type":"product","link":"https:\/\/dovanuska.lt\/en\/wobzi-personalizuotas-clicker-raktu-pakabukas-su-vardu\/","title":{"rendered":"WOBZI Personalized Clicker Keychain with Name"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"21468\" class=\"elementor elementor-21468\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-cac8eac e-flex e-con-boxed e-con e-parent\" data-id=\"cac8eac\" 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-8a77bcc color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"8a77bcc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"lt\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n    <style>\n        \/* ==========================================\n           1. PAGRINDINIAI PC STILIAI\n           ========================================== *\/\n        #product-customizer {\n            max-width: 1300px;\n            margin: 40px auto;\n            font-family: 'Montserrat', sans-serif;\n            padding: 20px;\n        }\n\n        .variations { display: none !important; }\n\n        .usage-instruction {\n            grid-column: 1 \/ -1;\n            background: #fdfdfd;\n            border: 1px dashed #ddd;\n            border-radius: 15px;\n            padding: 15px;\n            margin-bottom: 30px;\n            display: flex;\n            justify-content: space-around;\n            gap: 20px;\n            text-align: center;\n        }\n\n        .step { flex: 1; font-size: 16px; color: #555; line-height: 1.4; }\n        .step-icon { font-size: 20px; display: block; margin-bottom: 5px; }\n        .step strong { color: #333; display: block; margin-bottom: 3px; text-transform: uppercase; font-size: 14px; letter-spacing: 0.5px; }\n\n        .customizer-layout {\n            display: grid;\n            grid-template-columns: 320px 1fr 320px;\n            gap: 30px;\n            align-items: flex-start;\n        }\n\n        .side-column {\n            background: #ffffff;\n            padding: 30px;\n            border-radius: 20px;\n            box-shadow: 0 8px 25px rgba(0,0,0,0.05);\n            display: flex;\n            flex-direction: column;\n            gap: 35px;\n            z-index: 20;\n        }\n\n        .preview-column {\n            display: flex;\n            flex-direction: column;\n            justify-content: flex-start;\n            align-items: center;\n            position: relative;\n            min-height: 850px;\n        }\n\n        #pendant-preview {\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            transition: transform 0.4s ease;\n            transform-origin: top center;\n            width: 150px;\n            \/* FIREFOX FIX: Neleid\u017eia nar\u0161yklei \u012fterpti eilu\u010di\u0173 tarp\u0173 tarp paveiksl\u0117li\u0173 *\/\n            line-height: 0;\n            font-size: 0;\n        }\n\n        \/* FIREFOX FIX: U\u017etikriname, kad paveiksl\u0117liai b\u016bt\u0173 gryni blokai *\/\n        .pendant-segment { \n            width: 150px; \n            height: auto; \n            display: block; \n            margin: 0;\n            padding: 0;\n        }\n        \n        .seg-1 { z-index: 1; }\n        \/* Tiksl\u016bs persidengimai *\/\n        .seg-2 { z-index: 2; margin-top: -85px; } \n        .seg-3, .seg-4, .seg-5, .seg-6, .seg-7, .seg-8 { z-index: 3; margin-top: -35px; } \n\n        .white-pendant-fix { filter: drop-shadow(0px 4px 6px rgba(0,0,0,0.15)) !important; }\n\n        #beads-container {\n            position: absolute;\n            top: 0; left: 0; right: 0;\n            z-index: 10;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            pointer-events: none;\n        }\n\n        .bead-wrapper { width: 150px; height: 100px; display: flex; align-items: center; justify-content: center; }\n        .bead-wrapper:first-child { margin-top: 90px; }\n        .bead-wrapper:not(:first-child) { margin-top: 15px; }\n\n        .custom-bead {\n            width: 85px; height: 85px;\n            border-radius: 50%;\n            display: flex; align-items: center; justify-content: center;\n            box-shadow: inset -1px -1px 4px rgba(0,0,0,0.1), 1px 2px 5px rgba(0,0,0,0.1);\n            font-weight: 900; font-size: 40px;\n            cursor: pointer; pointer-events: auto;\n            transition: all 0.2s ease;\n            background-size: 75%; background-repeat: no-repeat; background-position: center;\n            background-color: #fff;\n            border: 3px solid transparent;\n        }\n\n        .custom-bead.selected { border-color: #ff8c94; transform: scale(1.1); box-shadow: 0 0 15px rgba(255, 140, 148, 0.5); }\n\n        .control-group p { margin-bottom: 15px; font-weight: 700; font-size: 14.5px; text-transform: uppercase; color: #444; }\n        .options { display: flex; gap: 10px; flex-wrap: wrap; }\n        \n        .flower-radio { \n            width: 40px; height: 40px; cursor: pointer; background-color: currentColor; \n            -webkit-mask-image: url('https:\/\/cdn-icons-png.flaticon.com\/512\/346\/346167.png'); \n            -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat; \n            transition: transform 0.2s;\n        }\n        .flower-radio.active { transform: scale(1.2); border: 2px solid #333; border-radius: 50%; }\n        .flower-radio.white-flower { background-color: #ffffff; border: 1px solid #ddd; border-radius: 50%; }\n        \n        .symbol-opt { width: 35px; height: 35px; border: 1px solid #eee; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; }\n        .symbol-opt img { width: 22px; }\n        #word-input { width: 100%; padding: 10px; border: 2px solid #eee; border-radius: 10px; font-size: 16px; font-weight: 600; text-align: center; }\n\n        \/* ==========================================\n           2. MOBILUS VERTIKALUS VAIZDAS\n           ========================================== *\/\n        @media (max-width: 1100px) and (orientation: portrait) {\n            #product-customizer { padding: 5px; margin-top: 10px; }\n            .usage-instruction { flex-direction: column; gap: 12px; padding: 10px; margin-bottom: 20px; }\n            .customizer-layout { grid-template-columns: 85px 1fr 85px !important; gap: 5px !important; display: grid !important; }\n            .side-column { padding: 0px 2px !important; padding-top: 4px !important; gap: 20px !important; background: transparent !important; box-shadow: none !important; }\n            .control-group p { font-size: 13px !important; text-align: center; }\n            .options { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 8px; justify-items: center; }\n            .flower-radio { width: 30px; height: 30px; }\n            .symbol-opt { width: 32px; height: 32px; }\n            #word-input { font-size: 14px; padding: 5px 2px !important; width: 98% !important; }\n            \n            .preview-column { min-height: 550px; padding-top: 20px; }\n            \n            #pendant-preview { width: 130px; }\n            .pendant-segment { width: 130px !important; }\n            .seg-2 { margin-top: -74px !important; }\n            .seg-3, .seg-4, .seg-5, .seg-6, .seg-7, .seg-8 { margin-top: -30px !important; }\n\n            .bead-wrapper { width: 130px !important; height: 86.4px !important; }\n            .bead-wrapper:first-child { margin-top: 77.2px !important; }\n            .bead-wrapper:not(:first-child) { margin-top: 13.6px !important; }\n            .custom-bead { width: 72px !important; height: 72px !important; font-size: 32px !important; }\n        }\n\n        \/* ==========================================\n           3. HORIZONTALUS VAIZDAS (LANDSCAPE)\n           ========================================== *\/\n        @media (max-width: 1100px) and (orientation: landscape) {\n            .usage-instruction { display: none !important; }\n            .customizer-layout { grid-template-columns: 150px 1fr 150px !important; gap: 15px !important; }\n            .side-column { padding: 5px !important; gap: 15px !important; background: transparent !important; box-shadow: none !important; }\n            .preview-column { min-height: 450px !important; }\n            #pendant-preview { margin-top: -10px; width: 130px; }\n            .pendant-segment { width: 130px !important; }\n            .seg-2 { margin-top: -74px !important; }\n            .seg-3, .seg-4, .seg-5, .seg-6, .seg-7, .seg-8 { margin-top: -30px !important; }\n            .bead-wrapper { width: 130px !important; height: 86.4px !important; }\n            .bead-wrapper:first-child { margin-top: 77.2px !important; }\n            .bead-wrapper:not(:first-child) { margin-top: 13.6px !important; }\n            .custom-bead { width: 68px !important; height: 68px !important; font-size: 28px !important; }\n            .options { display: flex !important; flex-wrap: wrap !important; justify-content: center; gap: 5px; }\n            .flower-radio { width: 30px; height: 30px; }\n            .control-group p { font-size: 11px !important; margin-bottom: 5px; text-align: center; }\n            #word-input { font-size: 14px; padding: 3px !important; }\n        }\n    <\/style>\n<\/head>\n<body>\n\n<input type=\"hidden\" name=\"custom_design_data\" id=\"custom-design-data-field\">\n\n<div id=\"product-customizer\">\n    <div class=\"usage-instruction\">\n        <div class=\"step\">\n            <span class=\"step-icon\">\u270d\ufe0f<\/span>\n            <strong>1. Tekstas ir simboliai<\/strong>\n            Laukelyje \u012fra\u0161ykite norim\u0105 \u017eod\u012f arba prid\u0117kite patinkan\u010dius simbolius.\n        <\/div>\n        <div class=\"step\">\n            <span class=\"step-icon\">\ud83c\udfa8<\/span>\n            <strong>2. R\u0117melio spalva<\/strong>\n            Kair\u0117je pus\u0117je i\u0161sirinkite viso pakabuko r\u0117melio spalv\u0105.\n        <\/div>\n        <div class=\"step\">\n            <span class=\"step-icon\">\ud83d\udd18<\/span>\n            <strong>3. Mygtuk\u0173 ir raid\u017ei\u0173 spalva<\/strong>\n            Nor\u0117dami spalvinti konkret\u0173 rutuliuk\u0105, j\u012f spustel\u0117kite ir de\u0161in\u0117je parinkite spalvas.\n        <\/div>\n    <\/div>\n\n    <div class=\"customizer-layout\">\n        <div class=\"side-column col-left\">\n            <div class=\"control-group\">\n                <p>Tekstas (iki 7 raid\u017ei\u0173):<\/p>\n                <input type=\"text\" id=\"word-input\" maxlength=\"7\" value=\"EMA\">\n                <div class=\"options\">\n                    <div class=\"symbol-opt\" onclick=\"handleSymbolAction('\u2665')\"><img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/03\/path1-97.png\" alt=\"\" title=\"\"><\/div>\n                    <div class=\"symbol-opt\" onclick=\"handleSymbolAction('\u2661')\"><img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/03\/path1-10.png\" alt=\"\" title=\"\"><\/div>\n                    <div class=\"symbol-opt\" onclick=\"handleSymbolAction('\u2763')\"><img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/03\/pink-97.png\" alt=\"\" title=\"\"><\/div>\n                    <div class=\"symbol-opt\" onclick=\"handleSymbolAction('\u2767')\"><img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/03\/purple-97.png\" alt=\"\" title=\"\"><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"control-group\">\n                <p>R\u0117melis:<\/p>\n                <div class=\"options\" id=\"pendant-color-options\">\n                    <div class=\"flower-radio active\" data-pendant-type=\"juoda\" style=\"color: #000000;\"><\/div>\n                    <div class=\"flower-radio white-flower\" data-pendant-type=\"balta\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"rozine\" style=\"color: #ffcff1;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"koralas\" style=\"color: #ff8c94;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"geltona\" style=\"color: #FFDA03;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"zalia\" style=\"color: #b2ec5d;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"violetine\" style=\"color: #C9A0FF;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"latte\" style=\"color: #D0BDA8;\"><\/div>\n                    <div class=\"flower-radio\" data-pendant-type=\"raudona\" style=\"color: #FF0000;\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"preview-column col-preview\">\n            <div id=\"pendant-preview\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/startjuoda.png\" class=\"pendant-segment seg-1\" id=\"pendant-start\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-2\" id=\"pendant-mid-1\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-3\" id=\"pendant-mid-2\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-4\" id=\"pendant-mid-3\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-5\" id=\"pendant-mid-4\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-6\" id=\"pendant-mid-5\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-7\" id=\"pendant-mid-6\" alt=\"\" title=\"\">\n                <img decoding=\"async\" src=\"https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/middlejuoda.png\" class=\"pendant-segment seg-8\" id=\"pendant-mid-7\" alt=\"\" title=\"\">\n                <div id=\"beads-container\"><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"side-column col-right\">\n            <div class=\"control-group\">\n                <p>Mygtukai:<\/p>\n                <div class=\"options\" id=\"bead-color-options\">\n                    <div class=\"flower-radio active white-flower\" data-color=\"#ffffff\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#000000\" style=\"color: #000000;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#ffcff1\" style=\"color: #ffcff1;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#ff8c94\" style=\"color: #ff8c94;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#FFDA03\" style=\"color: #FFDA03;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#b2ec5d\" style=\"color: #b2ec5d;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#C9A0FF\" style=\"color: #C9A0FF;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#D0BDA8\" style=\"color: #D0BDA8;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#FF0000\" style=\"color: #FF0000;\"><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"control-group\">\n                <p>Raid\u0117s:<\/p>\n                <div class=\"options\" id=\"text-color-options\">\n                    <div class=\"flower-radio active\" data-color=\"#000000\" style=\"color: #000000;\"><\/div>\n                    <div class=\"flower-radio white-flower\" data-color=\"#ffffff\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#ffcff1\" style=\"color: #ffcff1;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#ff8c94\" style=\"color: #ff8c94;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#FFDA03\" style=\"color: #FFDA03;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#b2ec5d\" style=\"color: #b2ec5d;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#C9A0FF\" style=\"color: #C9A0FF;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#D0BDA8\" style=\"color: #D0BDA8;\"><\/div>\n                    <div class=\"flower-radio\" data-color=\"#FF0000\" style=\"color: #FF0000;\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\nlet selectedBeadIndex = null;\nlet beadData = [\n    { char: 'E', bgColor: '#ffffff', textColor: '#000000' }, \n    { char: 'M', bgColor: '#ffffff', textColor: '#000000' },\n    { char: 'A', bgColor: '#ffffff', textColor: '#000000' }\n];\n\nconst heartNames = { '\u2665': 'Juoda sirdele', '\u2661': 'Balta sirdele', '\u2763': 'Rozine sirdele', '\u2767': 'Violetine sirdele' };\n\nconst pendantPaths = {\n    'juoda': { start: 'startjuoda', mid: 'middlejuoda' },\n    'balta': { start: 'startwhite', mid: 'middlewhite' },\n    'rozine': { start: 'startpink', mid: 'middlepink' },\n    'koralas': { start: 'startcoral', mid: 'middlecoral' },\n    'geltona': { start: 'startgeltona', mid: 'middlegeltona' },\n    'zalia': { start: 'startgreen', mid: 'middlegreen' },\n    'violetine': { start: 'startpurple', mid: 'middlepurple' },\n    'latte': { start: 'startlatte', mid: 'middlelatte' },\n    'raudona': { start: 'startred', mid: 'middlered' }\n};\n\nconst colorNames = {\n    '#d0bda8': 'Latte', '#ff0000': 'Raudona', '#ffcff1': '\u0160viesiai ro\u017ein\u0117', '#ff8c94': 'Koralin\u0117 ro\u017ein\u0117', '#ffda03': 'Geltona', '#b2ec5d': '\u0160viesiai \u017ealia', '#c9a0ff': '\u0160viesiai violetin\u0117', '#ffffff': 'Balta', '#000000': 'Juoda'\n};\n\nconst frameNames = {\n    'juoda': 'Juoda', 'balta': 'Balta', 'rozine': '\u0160viesiai ro\u017ein\u0117', 'koralas': 'Koralin\u0117 ro\u017ein\u0117', 'geltona': 'Geltona', 'zalia': '\u0160viesiai \u017ealia', 'violetine': '\u0160viesiai violetin\u0117', 'latte': 'Latte', 'raudona': 'Raudona'\n};\n\nfunction getColorName(hex) { return colorNames[hex.toLowerCase()] || hex; }\n\nfunction syncWooCommercePrice(count) {\n    const select = document.querySelector('.variations select') || document.querySelector('select[id^=\"pa_\"]');\n    if (!select) return;\n    const target = count + \" mygtuk\";\n    const option = Array.from(select.options).find(o => o.text.toLowerCase().includes(target));\n    if (option && select.value !== option.value) {\n        select.value = option.value;\n        if (window.jQuery) { jQuery(select).trigger('change'); }\n        else { select.dispatchEvent(new Event('change', { bubbles: true })); }\n    }\n}\n\nfunction handleSymbolAction(symbol) {\n    const input = document.getElementById('word-input');\n    if (selectedBeadIndex !== null && beadData[selectedBeadIndex]) {\n        beadData[selectedBeadIndex].char = symbol;\n        syncInputFromData(); updateView(); return;\n    }\n    if (beadData.length < 7) {\n        const start = input.selectionStart;\n        beadData.splice(start, 0, { char: symbol, bgColor: '#ffffff', textColor: '#000000' });\n        syncInputFromData(); updateView();\n        input.focus(); input.setSelectionRange(start + 1, start + 1);\n    }\n}\n\nfunction syncInputFromData() {\n    const symbols = ['\u2665','\u2661','\u2763','\u2767'];\n    document.getElementById('word-input').value = beadData.map(d => symbols.includes(d.char) ? '\u2665' : d.char).join('');\n}\n\nfunction updateView() {\n    let input = document.getElementById('word-input');\n    let filtered = input.value.replace(\/[^A-Za-z0-9\u0104\u0105\u010c\u010d\u0118\u0119\u0116\u0117\u012e\u012f\u0160\u0161\u0172\u0173\u016a\u016b\u017d\u017e\u2665]\/g, '');\n    if (input.value !== filtered) input.value = filtered;\n\n    const chars = Array.from(filtered).slice(0, 7);\n    \n    if (chars.length === 0) {\n        beadData = [{ char: '', bgColor: '#ffffff', textColor: '#000000' }];\n    } else {\n        chars.forEach((char, i) => {\n            const upChar = char.toUpperCase();\n            if (!beadData[i]) {\n                beadData[i] = { char: upChar, bgColor: '#ffffff', textColor: '#000000' };\n            } else if (!['\u2665','\u2661','\u2763','\u2767'].includes(beadData[i].char) || upChar !== '\u2665') {\n                beadData[i].char = upChar;\n            }\n        });\n        beadData = beadData.slice(0, chars.length);\n    }\n\n    syncWooCommercePrice(chars.length || 1);\n\n    const activeFrameKey = document.querySelector('#pendant-color-options .flower-radio.active')?.dataset.pendantType || 'juoda';\n    const frameLabel = frameNames[activeFrameKey] || activeFrameKey;\n    let summary = `Tekstas - ${beadData.map(d => heartNames[d.char] || d.char).join(' ')}|Remelis: ${frameLabel}|`;\n    beadData.forEach((d, i) => {\n        let label = heartNames[d.char] || d.char || 'tuscias';\n        let raideName = heartNames[d.char] || getColorName(d.textColor);\n        summary += `Mygtukas ${i+1}: ${label} (Mygtukas: ${getColorName(d.bgColor)} - Raide: ${raideName})`;\n        if (i < beadData.length - 1) summary += \"|\";\n    });\n    document.getElementById('custom-design-data-field').value = summary;\n\n    const preview = document.getElementById('pendant-preview');\n    const count = beadData.length;\n    let scaleFactor = 1;\n    \n    if (count > 2) {\n        scaleFactor = 1 - (count - 2) * 0.09;\n    }\n\n    if (window.innerWidth <= 1100) {\n        scaleFactor = Math.max(scaleFactor, 0.65);\n    } else {\n        scaleFactor = Math.max(scaleFactor, 0.6);\n    }\n    preview.style.transform = `scale(${scaleFactor})`;\n\n    for (let i = 1; i <= 7; i++) {\n        const seg = document.getElementById(`pendant-mid-${i}`);\n        if (seg) seg.style.display = i <= count ? 'block' : 'none';\n    }\n\n    const container = document.getElementById('beads-container');\n    container.innerHTML = '';\n    beadData.forEach((data, i) => {\n        const wrapper = document.createElement('div');\n        wrapper.className = 'bead-wrapper';\n        const b = document.createElement('div');\n        b.className = 'custom-bead' + (i === selectedBeadIndex ? ' selected' : '');\n        b.style.backgroundColor = data.bgColor;\n        b.style.color = data.textColor;\n        const symbols = { '\u2665': 'path1-97.png', '\u2661': 'path1-10.png', '\u2763': 'pink-97.png', '\u2767': 'purple-97.png' };\n        if (symbols[data.char]) {\n            b.style.backgroundImage = `url('https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/03\/${symbols[data.char]}')`;\n            b.textContent = '';\n        } else { b.textContent = data.char; }\n        b.onclick = (e) => { e.stopPropagation(); selectedBeadIndex = (selectedBeadIndex === i) ? null : i; updateView(); };\n        wrapper.appendChild(b); container.appendChild(wrapper);\n    });\n}\n\ndocument.querySelectorAll('.flower-radio').forEach(f => {\n    f.onclick = () => {\n        const parent = f.parentElement.id;\n        f.parentElement.querySelectorAll('.flower-radio').forEach(x => x.classList.remove('active'));\n        f.classList.add('active');\n        if (parent === 'pendant-color-options') {\n            const config = pendantPaths[f.dataset.pendantType];\n            const isWhite = f.dataset.pendantType === 'balta';\n            document.querySelectorAll('.pendant-segment').forEach(seg => { isWhite ? seg.classList.add('white-pendant-fix') : seg.classList.remove('white-pendant-fix'); });\n            document.getElementById('pendant-start').src = `https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/${config.start}.png`;\n            for (let i = 1; i <= 7; i++) { document.getElementById(`pendant-mid-${i}`).src = `https:\/\/dovanudoze.lt\/wp-content\/uploads\/2026\/04\/${config.mid}.png`; }\n        } else {\n            if (selectedBeadIndex !== null) {\n                if (parent === 'bead-color-options') beadData[selectedBeadIndex].bgColor = f.dataset.color;\n                else beadData[selectedBeadIndex].textColor = f.dataset.color;\n            } else {\n                beadData.forEach(d => { if (parent === 'bead-color-options') d.bgColor = f.dataset.color; else d.textColor = f.dataset.color; });\n            }\n        }\n        updateView();\n    };\n});\n\ndocument.getElementById('word-input').addEventListener('input', updateView);\ndocument.body.onclick = () => { selectedBeadIndex = null; updateView(); };\nwindow.addEventListener('resize', updateView);\nupdateView();\n\n(function($) {\n    $(document).ready(function() {\n        $(document).on('click', '.single_add_to_cart_button', function() {\n            var designData = $('#custom-design-data-field').val();\n            var $form = $(this).closest('form.cart');\n            if ($form.length) {\n                $form.find('input[name=\"custom_design_data\"]').remove();\n                $form.append('<input type=\"hidden\" name=\"custom_design_data\" value=\"' + designData + '\">');\n            }\n        });\n    });\n})(typeof jQuery !== 'undefined' ? jQuery : null);\n<\/script>\n<\/body>\n<\/html>\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=\"wd-negative-gap elementor-element elementor-element-e309dfe e-flex e-con-boxed e-con e-parent\" data-id=\"e309dfe\" 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-0d13595 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"0d13595\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div id=\"model-response-message-contentr_4bfc5116f4e1bd8d\" class=\"markdown markdown-main-panel enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<h5 data-path-to-node=\"0\"><strong>\ud83e\udde9 Personalizuotas Clicker rakt\u0173 pakabukas su tavo vardu<\/strong><\/h5>\n<p data-path-to-node=\"3\">Ie\u0161kote nedidel\u0117s, bet prasmingos dovanos? O gal patys m\u0117gstate nuolat k\u0105 nors spaudyti rankose? \u0160is personalizuotas 3D spausdintas pakabukas-klikeris yra idealus stiliaus ir funkcijos derinys.<\/p>\n<h3 data-path-to-node=\"4\">Kod\u0117l verta rinktis \u0161\u012f pakabuk\u0105?<\/h3>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Visi\u0161ka personalizacija:<\/b> U\u017era\u0161ysime j\u016bs\u0173 vard\u0105, pravard\u0119, motyvuojant\u012f \u017eod\u012f ar svarbi\u0105 dat\u0105. Tai daiktas, kurio nesumai\u0161ysite su niekuo kitu!<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">Streso ma\u017einimas (Fidget):<\/b> Integruotas klikerio mechanizmas suteikia malon\u0173 gars\u0105 ir taktilin\u012f poj\u016bt\u012f. Puikiai tinka susikaupimui gerinti ar nerimui ma\u017einti darbe, mokykloje ar kelion\u0117je.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,2,0\"><b data-path-to-node=\"5,2,0\" data-index-in-node=\"0\">Ekologi\u0161ka ir saugu:<\/b> Gamybai naudojame <b data-path-to-node=\"5,2,0\" data-index-in-node=\"39\">PLA plastik\u0105<\/b>. Tai tvari med\u017eiaga, gaminama i\u0161 atsinaujinan\u010di\u0173 i\u0161tekli\u0173 (pavyzd\u017eiui, kukur\u016bz\u0173 krakmolo). PLA yra saugus liestis, neturi toksi\u0161k\u0173 med\u017eiag\u0173 ir yra biologi\u0161kai skaidus.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,3,0\"><b data-path-to-node=\"5,3,0\" data-index-in-node=\"0\">Lietuvi\u0161ka kokyb\u0117:<\/b> Kiekvienas pakabukas yra sumodeliuotas ir pagamintas <b data-path-to-node=\"5,3,0\" data-index-in-node=\"72\">Lietuvoje<\/b>, naudojant moderni\u0105 3D spausdinimo technologij\u0105.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"6\">Detal\u0117s ir specifikacijos:<\/h3>\n<ul data-path-to-node=\"7\">\n<li>\n<p data-path-to-node=\"7,0,0\"><b data-path-to-node=\"7,0,0\" data-index-in-node=\"0\">Med\u017eiaga:<\/b> Auk\u0161tos kokyb\u0117s PLA plastikas.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,1,0\"><b data-path-to-node=\"7,1,0\" data-index-in-node=\"0\">Pritaikymas:<\/b> Galite pasirinkti norim\u0105 tekst\u0105 (rekomenduojama iki 7 simboli\u0173 geriausiam matomumui).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,2,0\"><b data-path-to-node=\"7,2,0\" data-index-in-node=\"0\">Panaudojimas:<\/b> Raktams, kuprin\u0117ms, krep\u0161iams ar kaip stilinga detal\u0117 automobilyje.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"8\">\n<blockquote data-path-to-node=\"9\">\n<p data-path-to-node=\"9,0\"><b data-path-to-node=\"9,0\" data-index-in-node=\"0\">Verta \u017einoti:<\/b><\/p>\n<p data-path-to-node=\"9,0\">Kadangi kiekvienas pakabukas gaminamas 3D spausdintuvu, jis turi unikali\u0105, sluoksniuot\u0105 tekst\u016br\u0105. Tai suteikia gaminiui moderni\u0105 i\u0161vaizd\u0105 ir patvirtina jo rank\u0173 darbo (skaitmeninio meistri\u0161kumo) autenti\u0161kum\u0105.<\/p>\n<\/blockquote>\n<p data-path-to-node=\"10\"><b data-path-to-node=\"10\" data-index-in-node=\"0\">Padovanokite sau ar artimajam dalel\u0119 lietuvi\u0161ko dizaino ir ramyb\u0117s!<\/b><\/p>\n<\/div>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>This personalized WOBZI 3D printed pendant fidget spinner with a name is the perfect blend of style and function. It's ideal for improving focus or reducing anxiety at work, school, or while traveling.<\/p>","protected":false},"featured_media":21484,"comment_status":"open","ping_status":"closed","template":"","meta":[],"product_brand":[339],"product_cat":[288,277,189],"product_tag":[],"class_list":["post-21468","product","type-product","status-publish","has-post-thumbnail","product_brand-wobzi","product_cat-raktu-pakabukai-vaikams","product_cat-ivairus-zaislai-zaidimai-ir-zaislai","product_cat-raktu-pakabukai","first","instock","taxable","shipping-taxable","purchasable","product-type-variable"],"_links":{"self":[{"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product\/21468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/comments?post=21468"}],"version-history":[{"count":17,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product\/21468\/revisions"}],"predecessor-version":[{"id":21489,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product\/21468\/revisions\/21489"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/media\/21484"}],"wp:attachment":[{"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/media?parent=21468"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product_brand?post=21468"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product_cat?post=21468"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/dovanuska.lt\/en\/wp-json\/wp\/v2\/product_tag?post=21468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}