{"id":10404,"date":"2026-09-16T23:14:44","date_gmt":"2026-09-16T23:14:44","guid":{"rendered":"https:\/\/simak-keramika.si\/"},"modified":"2026-09-16T23:44:06","modified_gmt":"2026-09-16T23:44:06","slug":"vizualizator","status":"publish","type":"page","link":"https:\/\/simak-keramika.si\/it\/vizualizator\/","title":{"rendered":"Vizualizator keramike"},"content":{"rendered":"\n<style>\n\/* Hello Elementor caps .site-main at 600px on this site, which squeezes the\n   visualizer into its phone layout on a desktop screen. Scoped to this page. *\/\nbody.page-id-10404 .site-main{max-width:none}\n.simak-vis-intro{max-width:1320px;margin:0 auto;padding:4px 16px 20px}\n.simak-vis-intro p{margin:0;max-width:62ch;font-size:17px;line-height:1.6;color:#4a5158}\n.simak-vis-steps{list-style:none;display:flex;flex-wrap:wrap;gap:10px 28px;margin:20px 0 0;padding:0}\n.simak-vis-steps li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:#333}\n.simak-vis-steps li span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#1f2430;color:#fff;font-size:12.5px;font-weight:700;flex:0 0 auto}\n@media (max-width:600px){.simak-vis-intro{padding:4px 12px 16px}.simak-vis-intro p{font-size:16px}.simak-vis-steps{gap:8px 18px}}\n<\/style>\n<div class=\"simak-vis-intro\">\n<p>Poglejte, kako izbrane plo\u0161\u010dice izgledajo v prostoru, \u0161e preden se odlo\u010dite.<\/p>\n<ol class=\"simak-vis-steps\">\n<li><span>1<\/span>Izberite prostor<\/li>\n<li><span>2<\/span>Izberite keramiko<\/li>\n<li><span>3<\/span>Preverite videz v prostoru<\/li>\n<\/ol>\n<\/div>\n\n\n<style>.simak-vis{margin:0 auto;max-width:1320px;padding:0 16px}.simak-vis__frame{position:relative;background:#14151a;border:1px solid #e7e9eb;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06)}.simak-vis__frame iframe{display:block;width:100%;border:0;height:clamp(620px,calc(100vh - 210px),860px)}@media (max-width:1024px){.simak-vis{padding:0 12px}.simak-vis__frame iframe{height:clamp(600px,calc(100vh - 170px),820px)}}@media (max-width:600px){.simak-vis{padding:0 8px}.simak-vis__frame{border-radius:10px}.simak-vis__frame iframe{height:min(calc(100vh - 130px),760px);min-height:520px}}<\/style><div class=\"simak-vis\"><div class=\"simak-vis__frame\"><iframe id=\"simak-vis-frame\" src=\"https:\/\/simak-tile-visualizer.pages.dev\/?embed=1&#038;lang=it\" loading=\"lazy\" title=\"Vizualizator keramike Simak\" allow=\"fullscreen\" allowfullscreen referrerpolicy=\"strict-origin-when-cross-origin\"><\/iframe><\/div><\/div><script>(function () {\r\n  var APP = \"https:\\\/\\\/simak-tile-visualizer.pages.dev\";\r\n  var frame = document.getElementById('simak-vis-frame');\r\n  if (!frame) return;\r\n\r\n  var child = null;\r\n  window.dataLayer = window.dataLayer || [];\r\n\r\n  \/\/ The full parameter vocabulary of the visualizer events, mirrored in the\r\n  \/\/ GA4 event tag in GTM. Order does not matter; completeness does.\r\n  var PARAM_KEYS = ['room', 'mode', 'sku', 'surface', 'facet', 'values', 'results', 'queryLength', 'on'];\r\n\r\n  function statistics() {\r\n    \/\/ Fail closed: no Complianz, no statistics.\r\n    return typeof window.cmplz_has_consent === 'function' && !!window.cmplz_has_consent('statistics');\r\n  }\r\n\r\n  function tell(type) {\r\n    if (!child) return;\r\n    try {\r\n      child.postMessage(\r\n        { source: 'simak-visualizer-host', v: 1, type: type, consent: { statistics: statistics() } },\r\n        APP\r\n      );\r\n    } catch (e) { \/* the frame went away *\/ }\r\n  }\r\n\r\n  function cleanId(v) {\r\n    return (typeof v === 'string' && \/^[A-Za-z0-9_-]{1,64}$\/.test(v)) ? v : null;\r\n  }\r\n\r\n  function syncUrl(d) {\r\n    try {\r\n      var u = new URL(window.location.href);\r\n      ['room', 'floor', 'wall'].forEach(function (k) {\r\n        var v = cleanId(d[k]);\r\n        if (v) u.searchParams.set(k, v); else u.searchParams.delete(k);\r\n      });\r\n      var next = u.pathname + u.search + u.hash;\r\n      if (next !== window.location.pathname + window.location.search + window.location.hash) {\r\n        history.replaceState(null, '', next);\r\n      }\r\n    } catch (e) { \/* never break the page over the address bar *\/ }\r\n  }\r\n\r\n  window.addEventListener('message', function (e) {\r\n    if (e.origin !== APP) return;\r\n    if (e.source !== frame.contentWindow) return;\r\n    var d = e.data;\r\n    if (!d || typeof d !== 'object' || d.source !== 'simak-visualizer' || d.v !== 1) return;\r\n\r\n    if (d.type === 'hello') { child = e.source; tell('ready'); return; }\r\n    if (d.type === 'state') { syncUrl(d); return; }\r\n    if (d.type === 'event') {\r\n      \/\/ No consent gate here (P0.1B). The site runs advanced Google Consent\r\n      \/\/ Mode: Complianz denies analytics_storage until Statistics is accepted,\r\n      \/\/ and Google's own tags turn that into a cookieless request. Gating a\r\n      \/\/ second time in this bridge would hide the visualizer from exactly the\r\n      \/\/ sessions the site has already chosen to measure cookielessly.\r\n      if (typeof d.name !== 'string' || !\/^[a-z_]{1,40}$\/.test(d.name)) return;\r\n      var payload = (d.payload && typeof d.payload === 'object') ? d.payload : {};\r\n      var out = { event: d.name, simak_source: 'visualizer' };\r\n\r\n      \/\/ Every parameter this integration can ever send is named on every push,\r\n      \/\/ as undefined when this event does not carry it. GTM's data layer is a\r\n      \/\/ running model, not a list of messages: a key set once stays set, so\r\n      \/\/ without this a room_select that followed a product_apply arrived in\r\n      \/\/ GA4 still carrying that product's sku, surface and the last search's\r\n      \/\/ queryLength. Measured on the live site, not theorised.\r\n      PARAM_KEYS.forEach(function (k) { out[k] = undefined; });\r\n\r\n      Object.keys(payload).forEach(function (k) {\r\n        var v = payload[k];\r\n        \/\/ Scalars and small arrays of scalars only: nothing nested, nothing long.\r\n        if (v === null || typeof v === 'boolean' || typeof v === 'number') { out[k] = v; return; }\r\n        if (typeof v === 'string') { out[k] = v.slice(0, 64); return; }\r\n        if (Array.isArray(v)) { out[k] = v.filter(function (x) { return typeof x === 'string'; }).slice(0, 10).join(','); }\r\n      });\r\n      window.dataLayer.push(out);\r\n    }\r\n  });\r\n\r\n  \/\/ Complianz announces every banner decision on the document.\r\n  document.addEventListener('cmplz_status_change', function () { tell('consent'); });\r\n  document.addEventListener('cmplz_fire_categories', function () { tell('consent'); });\r\n})();<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Poglejte, kako izbrane plo\u0161\u010dice izgledajo v prostoru, \u0161e preden se odlo\u010dite. 1Izberite prostor 2Izberite keramiko 3Preverite videz v prostoru<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-10404","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/pages\/10404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/comments?post=10404"}],"version-history":[{"count":3,"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/pages\/10404\/revisions"}],"predecessor-version":[{"id":10408,"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/pages\/10404\/revisions\/10408"}],"wp:attachment":[{"href":"https:\/\/simak-keramika.si\/it\/wp-json\/wp\/v2\/media?parent=10404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}