{"id":18163,"date":"2021-10-04T15:39:35","date_gmt":"2021-10-04T13:39:35","guid":{"rendered":"https:\/\/www.tptbrany.sk\/konfigurator\/"},"modified":"2026-04-13T07:52:30","modified_gmt":"2026-04-13T05:52:30","slug":"konfigurator","status":"publish","type":"page","link":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/","title":{"rendered":"Konfigur\u00e1tor"},"content":{"rendered":"<section data-bb-version=\"4.6.1\" id=\"anchor_konfigurator\" class=\"bt_bb_section bt_bb_layout_wide bt_bb_vertical_align_top\"  data-bt-override-class=\"null\"><div class=\"bt_bb_port\"><div class=\"bt_bb_cell\"><div class=\"bt_bb_cell_inner\"><div class=\"bt_bb_row \"  data-bt-override-class=\"{}\"><div class=\"bt_bb_row_holder\" style=\"; 0\"><div data-bb-version=\"4.6.1\" id=\"anchor_konfigurator\" class=\"bt_bb_column col-xxl-12 col-xl-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 bt_bb_vertical_align_top bt_bb_align_left bt_bb_padding_normal\"  data-width=\"12\" data-bt-override-class=\"{&quot;bt_bb_align_&quot;:{&quot;current_class&quot;:&quot;bt_bb_align_left&quot;,&quot;def&quot;:&quot;left&quot;}}\"><div class=\"bt_bb_column_content\"><div class=\"bt_bb_raw_content\"><script>\n   \n(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '\/\/' + (self.location.host || 'localhost').split(':')[0] + ':35729\/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);\n(function () {\n\t'use strict';\n\n\t\/** @returns {void} *\/\n\tfunction noop() {}\n\n\t\/**\n\t * @template T\n\t * @template S\n\t * @param {T} tar\n\t * @param {S} src\n\t * @returns {T & S}\n\t *\/\n\tfunction assign(tar, src) {\n\t\t\/\/ @ts-ignore\n\t\tfor (const k in src) tar[k] = src[k];\n\t\treturn \/** @type {T & S} *\/ (tar);\n\t}\n\n\tfunction run(fn) {\n\t\treturn fn();\n\t}\n\n\tfunction blank_object() {\n\t\treturn Object.create(null);\n\t}\n\n\t\/**\n\t * @param {Function[]} fns\n\t * @returns {void}\n\t *\/\n\tfunction run_all(fns) {\n\t\tfns.forEach(run);\n\t}\n\n\t\/**\n\t * @param {any} thing\n\t * @returns {thing is Function}\n\t *\/\n\tfunction is_function(thing) {\n\t\treturn typeof thing === 'function';\n\t}\n\n\t\/** @returns {boolean} *\/\n\tfunction safe_not_equal(a, b) {\n\t\treturn a != a ? b == b : a !== b || (a && typeof a === 'object') || typeof a === 'function';\n\t}\n\n\tlet src_url_equal_anchor;\n\n\t\/**\n\t * @param {string} element_src\n\t * @param {string} url\n\t * @returns {boolean}\n\t *\/\n\tfunction src_url_equal(element_src, url) {\n\t\tif (element_src === url) return true;\n\t\tif (!src_url_equal_anchor) {\n\t\t\tsrc_url_equal_anchor = document.createElement('a');\n\t\t}\n\t\t\/\/ This is actually faster than doing URL(..).href\n\t\tsrc_url_equal_anchor.href = url;\n\t\treturn element_src === src_url_equal_anchor.href;\n\t}\n\n\t\/** @returns {boolean} *\/\n\tfunction is_empty(obj) {\n\t\treturn Object.keys(obj).length === 0;\n\t}\n\n\tfunction subscribe(store, ...callbacks) {\n\t\tif (store == null) {\n\t\t\tfor (const callback of callbacks) {\n\t\t\t\tcallback(undefined);\n\t\t\t}\n\t\t\treturn noop;\n\t\t}\n\t\tconst unsub = store.subscribe(...callbacks);\n\t\treturn unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction component_subscribe(component, store, callback) {\n\t\tcomponent.$$.on_destroy.push(subscribe(store, callback));\n\t}\n\n\tfunction create_slot(definition, ctx, $$scope, fn) {\n\t\tif (definition) {\n\t\t\tconst slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n\t\t\treturn definition[0](slot_ctx);\n\t\t}\n\t}\n\n\tfunction get_slot_context(definition, ctx, $$scope, fn) {\n\t\treturn definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx;\n\t}\n\n\tfunction get_slot_changes(definition, $$scope, dirty, fn) {\n\t\tif (definition[2] && fn) {\n\t\t\tconst lets = definition[2](fn(dirty));\n\t\t\tif ($$scope.dirty === undefined) {\n\t\t\t\treturn lets;\n\t\t\t}\n\t\t\tif (typeof lets === 'object') {\n\t\t\t\tconst merged = [];\n\t\t\t\tconst len = Math.max($$scope.dirty.length, lets.length);\n\t\t\t\tfor (let i = 0; i < len; i += 1) {\n\t\t\t\t\tmerged[i] = $$scope.dirty[i] | lets[i];\n\t\t\t\t}\n\t\t\t\treturn merged;\n\t\t\t}\n\t\t\treturn $$scope.dirty | lets;\n\t\t}\n\t\treturn $$scope.dirty;\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction update_slot_base(\n\t\tslot,\n\t\tslot_definition,\n\t\tctx,\n\t\t$$scope,\n\t\tslot_changes,\n\t\tget_slot_context_fn\n\t) {\n\t\tif (slot_changes) {\n\t\t\tconst slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n\t\t\tslot.p(slot_context, slot_changes);\n\t\t}\n\t}\n\n\t\/** @returns {any[] | -1} *\/\n\tfunction get_all_dirty_from_scope($$scope) {\n\t\tif ($$scope.ctx.length > 32) {\n\t\t\tconst dirty = [];\n\t\t\tconst length = $$scope.ctx.length \/ 32;\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tdirty[i] = -1;\n\t\t\t}\n\t\t\treturn dirty;\n\t\t}\n\t\treturn -1;\n\t}\n\n\tfunction set_store_value(store, ret, value) {\n\t\tstore.set(value);\n\t\treturn ret;\n\t}\n\n\t\/**\n\t * @param {Node} target\n\t * @param {Node} node\n\t * @returns {void}\n\t *\/\n\tfunction append(target, node) {\n\t\ttarget.appendChild(node);\n\t}\n\n\t\/**\n\t * @param {Node} target\n\t * @param {string} style_sheet_id\n\t * @param {string} styles\n\t * @returns {void}\n\t *\/\n\tfunction append_styles(target, style_sheet_id, styles) {\n\t\tconst append_styles_to = get_root_for_style(target);\n\t\tif (!append_styles_to.getElementById(style_sheet_id)) {\n\t\t\tconst style = element('style');\n\t\t\tstyle.id = style_sheet_id;\n\t\t\tstyle.textContent = styles;\n\t\t\tappend_stylesheet(append_styles_to, style);\n\t\t}\n\t}\n\n\t\/**\n\t * @param {Node} node\n\t * @returns {ShadowRoot | Document}\n\t *\/\n\tfunction get_root_for_style(node) {\n\t\tif (!node) return document;\n\t\tconst root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n\t\tif (root && \/** @type {ShadowRoot} *\/ (root).host) {\n\t\t\treturn \/** @type {ShadowRoot} *\/ (root);\n\t\t}\n\t\treturn node.ownerDocument;\n\t}\n\n\t\/**\n\t * @param {ShadowRoot | Document} node\n\t * @param {HTMLStyleElement} style\n\t * @returns {CSSStyleSheet}\n\t *\/\n\tfunction append_stylesheet(node, style) {\n\t\tappend(\/** @type {Document} *\/ (node).head || node, style);\n\t\treturn style.sheet;\n\t}\n\n\t\/**\n\t * @param {Node} target\n\t * @param {Node} node\n\t * @param {Node} [anchor]\n\t * @returns {void}\n\t *\/\n\tfunction insert(target, node, anchor) {\n\t\ttarget.insertBefore(node, anchor || null);\n\t}\n\n\t\/**\n\t * @param {Node} node\n\t * @returns {void}\n\t *\/\n\tfunction detach(node) {\n\t\tif (node.parentNode) {\n\t\t\tnode.parentNode.removeChild(node);\n\t\t}\n\t}\n\n\t\/**\n\t * @returns {void} *\/\n\tfunction destroy_each(iterations, detaching) {\n\t\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\t\tif (iterations[i]) iterations[i].d(detaching);\n\t\t}\n\t}\n\n\t\/**\n\t * @template {keyof HTMLElementTagNameMap} K\n\t * @param {K} name\n\t * @returns {HTMLElementTagNameMap[K]}\n\t *\/\n\tfunction element(name) {\n\t\treturn document.createElement(name);\n\t}\n\n\t\/**\n\t * @param {string} data\n\t * @returns {Text}\n\t *\/\n\tfunction text(data) {\n\t\treturn document.createTextNode(data);\n\t}\n\n\t\/**\n\t * @returns {Text} *\/\n\tfunction space() {\n\t\treturn text(' ');\n\t}\n\n\t\/**\n\t * @returns {Text} *\/\n\tfunction empty() {\n\t\treturn text('');\n\t}\n\n\t\/**\n\t * @param {EventTarget} node\n\t * @param {string} event\n\t * @param {EventListenerOrEventListenerObject} handler\n\t * @param {boolean | AddEventListenerOptions | EventListenerOptions} [options]\n\t * @returns {() => void}\n\t *\/\n\tfunction listen(node, event, handler, options) {\n\t\tnode.addEventListener(event, handler, options);\n\t\treturn () => node.removeEventListener(event, handler, options);\n\t}\n\n\t\/**\n\t * @param {Element} node\n\t * @param {string} attribute\n\t * @param {string} [value]\n\t * @returns {void}\n\t *\/\n\tfunction attr(node, attribute, value) {\n\t\tif (value == null) node.removeAttribute(attribute);\n\t\telse if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value);\n\t}\n\n\t\/**\n\t * @param {Element} element\n\t * @returns {ChildNode[]}\n\t *\/\n\tfunction children(element) {\n\t\treturn Array.from(element.childNodes);\n\t}\n\n\t\/**\n\t * @param {Text} text\n\t * @param {unknown} data\n\t * @returns {void}\n\t *\/\n\tfunction set_data(text, data) {\n\t\tdata = '' + data;\n\t\tif (text.data === data) return;\n\t\ttext.data = \/** @type {string} *\/ (data);\n\t}\n\n\t\/**\n\t * @returns {void} *\/\n\tfunction set_style(node, key, value, important) {\n\t\tif (value == null) {\n\t\t\tnode.style.removeProperty(key);\n\t\t} else {\n\t\t\tnode.style.setProperty(key, value, important ? 'important' : '');\n\t\t}\n\t}\n\n\t\/**\n\t * @param {HTMLElement} element\n\t * @returns {{}}\n\t *\/\n\tfunction get_custom_elements_slots(element) {\n\t\tconst result = {};\n\t\telement.childNodes.forEach(\n\t\t\t\/** @param {Element} node *\/ (node) => {\n\t\t\t\tresult[node.slot || 'default'] = true;\n\t\t\t}\n\t\t);\n\t\treturn result;\n\t}\n\n\t\/**\n\t * @typedef {Node & {\n\t * \tclaim_order?: number;\n\t * \thydrate_init?: true;\n\t * \tactual_end_child?: NodeEx;\n\t * \tchildNodes: NodeListOf<NodeEx>;\n\t * }} NodeEx\n\t *\/\n\n\t\/** @typedef {ChildNode & NodeEx} ChildNodeEx *\/\n\n\t\/** @typedef {NodeEx & { claim_order: number }} NodeEx2 *\/\n\n\t\/**\n\t * @typedef {ChildNodeEx[] & {\n\t * \tclaim_info?: {\n\t * \t\tlast_index: number;\n\t * \t\ttotal_claimed: number;\n\t * \t};\n\t * }} ChildNodeArray\n\t *\/\n\n\tlet current_component;\n\n\t\/** @returns {void} *\/\n\tfunction set_current_component(component) {\n\t\tcurrent_component = component;\n\t}\n\n\tfunction get_current_component() {\n\t\tif (!current_component) throw new Error('Function called outside component initialization');\n\t\treturn current_component;\n\t}\n\n\t\/**\n\t * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n\t * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n\t * it can be called from an external module).\n\t *\n\t * If a function is returned _synchronously_ from `onMount`, it will be called when the component is unmounted.\n\t *\n\t * `onMount` does not run inside a [server-side component](\/docs#run-time-server-side-component-api).\n\t *\n\t * https:\/\/svelte.dev\/docs\/svelte#onmount\n\t * @template T\n\t * @param {() => import('.\/private.js').NotFunction<T> | Promise<import('.\/private.js').NotFunction<T>> | (() => any)} fn\n\t * @returns {void}\n\t *\/\n\tfunction onMount(fn) {\n\t\tget_current_component().$$.on_mount.push(fn);\n\t}\n\n\t\/**\n\t * Schedules a callback to run immediately before the component is unmounted.\n\t *\n\t * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n\t * only one that runs inside a server-side component.\n\t *\n\t * https:\/\/svelte.dev\/docs\/svelte#ondestroy\n\t * @param {() => any} fn\n\t * @returns {void}\n\t *\/\n\tfunction onDestroy(fn) {\n\t\tget_current_component().$$.on_destroy.push(fn);\n\t}\n\n\tconst dirty_components = [];\n\tconst binding_callbacks = [];\n\n\tlet render_callbacks = [];\n\n\tconst flush_callbacks = [];\n\n\tconst resolved_promise = \/* @__PURE__ *\/ Promise.resolve();\n\n\tlet update_scheduled = false;\n\n\t\/** @returns {void} *\/\n\tfunction schedule_update() {\n\t\tif (!update_scheduled) {\n\t\t\tupdate_scheduled = true;\n\t\t\tresolved_promise.then(flush);\n\t\t}\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction add_render_callback(fn) {\n\t\trender_callbacks.push(fn);\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction add_flush_callback(fn) {\n\t\tflush_callbacks.push(fn);\n\t}\n\n\t\/\/ flush() calls callbacks in this order:\n\t\/\/ 1. All beforeUpdate callbacks, in order: parents before children\n\t\/\/ 2. All bind:this callbacks, in reverse order: children before parents.\n\t\/\/ 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n\t\/\/    for afterUpdates called during the initial onMount, which are called in\n\t\/\/    reverse order: children before parents.\n\t\/\/ Since callbacks might update component values, which could trigger another\n\t\/\/ call to flush(), the following steps guard against this:\n\t\/\/ 1. During beforeUpdate, any updated components will be added to the\n\t\/\/    dirty_components array and will cause a reentrant call to flush(). Because\n\t\/\/    the flush index is kept outside the function, the reentrant call will pick\n\t\/\/    up where the earlier call left off and go through all dirty components. The\n\t\/\/    current_component value is saved and restored so that the reentrant call will\n\t\/\/    not interfere with the \"parent\" flush() call.\n\t\/\/ 2. bind:this callbacks cannot trigger new flush() calls.\n\t\/\/ 3. During afterUpdate, any updated components will NOT have their afterUpdate\n\t\/\/    callback called a second time; the seen_callbacks set, outside the flush()\n\t\/\/    function, guarantees this behavior.\n\tconst seen_callbacks = new Set();\n\n\tlet flushidx = 0; \/\/ Do *not* move this inside the flush() function\n\n\t\/** @returns {void} *\/\n\tfunction flush() {\n\t\t\/\/ Do not reenter flush while dirty components are updated, as this can\n\t\t\/\/ result in an infinite loop. Instead, let the inner flush handle it.\n\t\t\/\/ Reentrancy is ok afterwards for bindings etc.\n\t\tif (flushidx !== 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst saved_component = current_component;\n\t\tdo {\n\t\t\t\/\/ first, call beforeUpdate functions\n\t\t\t\/\/ and update components\n\t\t\ttry {\n\t\t\t\twhile (flushidx < dirty_components.length) {\n\t\t\t\t\tconst component = dirty_components[flushidx];\n\t\t\t\t\tflushidx++;\n\t\t\t\t\tset_current_component(component);\n\t\t\t\t\tupdate(component.$$);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t\/\/ reset dirty state to not end up in a deadlocked state and then rethrow\n\t\t\t\tdirty_components.length = 0;\n\t\t\t\tflushidx = 0;\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\tset_current_component(null);\n\t\t\tdirty_components.length = 0;\n\t\t\tflushidx = 0;\n\t\t\twhile (binding_callbacks.length) binding_callbacks.pop()();\n\t\t\t\/\/ then, once components are updated, call\n\t\t\t\/\/ afterUpdate functions. This may cause\n\t\t\t\/\/ subsequent updates...\n\t\t\tfor (let i = 0; i < render_callbacks.length; i += 1) {\n\t\t\t\tconst callback = render_callbacks[i];\n\t\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\t\t\/\/ ...so guard against infinite loops\n\t\t\t\t\tseen_callbacks.add(callback);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t\trender_callbacks.length = 0;\n\t\t} while (dirty_components.length);\n\t\twhile (flush_callbacks.length) {\n\t\t\tflush_callbacks.pop()();\n\t\t}\n\t\tupdate_scheduled = false;\n\t\tseen_callbacks.clear();\n\t\tset_current_component(saved_component);\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction update($$) {\n\t\tif ($$.fragment !== null) {\n\t\t\t$$.update();\n\t\t\trun_all($$.before_update);\n\t\t\tconst dirty = $$.dirty;\n\t\t\t$$.dirty = [-1];\n\t\t\t$$.fragment && $$.fragment.p($$.ctx, dirty);\n\t\t\t$$.after_update.forEach(add_render_callback);\n\t\t}\n\t}\n\n\t\/**\n\t * Useful for example to execute remaining `afterUpdate` callbacks before executing `destroy`.\n\t * @param {Function[]} fns\n\t * @returns {void}\n\t *\/\n\tfunction flush_render_callbacks(fns) {\n\t\tconst filtered = [];\n\t\tconst targets = [];\n\t\trender_callbacks.forEach((c) => (fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c)));\n\t\ttargets.forEach((c) => c());\n\t\trender_callbacks = filtered;\n\t}\n\n\tconst outroing = new Set();\n\n\t\/**\n\t * @type {Outro}\n\t *\/\n\tlet outros;\n\n\t\/**\n\t * @returns {void} *\/\n\tfunction group_outros() {\n\t\toutros = {\n\t\t\tr: 0,\n\t\t\tc: [],\n\t\t\tp: outros \/\/ parent group\n\t\t};\n\t}\n\n\t\/**\n\t * @returns {void} *\/\n\tfunction check_outros() {\n\t\tif (!outros.r) {\n\t\t\trun_all(outros.c);\n\t\t}\n\t\toutros = outros.p;\n\t}\n\n\t\/**\n\t * @param {import('.\/private.js').Fragment} block\n\t * @param {0 | 1} [local]\n\t * @returns {void}\n\t *\/\n\tfunction transition_in(block, local) {\n\t\tif (block && block.i) {\n\t\t\toutroing.delete(block);\n\t\t\tblock.i(local);\n\t\t}\n\t}\n\n\t\/**\n\t * @param {import('.\/private.js').Fragment} block\n\t * @param {0 | 1} local\n\t * @param {0 | 1} [detach]\n\t * @param {() => void} [callback]\n\t * @returns {void}\n\t *\/\n\tfunction transition_out(block, local, detach, callback) {\n\t\tif (block && block.o) {\n\t\t\tif (outroing.has(block)) return;\n\t\t\toutroing.add(block);\n\t\t\toutros.c.push(() => {\n\t\t\t\toutroing.delete(block);\n\t\t\t\tif (callback) {\n\t\t\t\t\tif (detach) block.d(1);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t});\n\t\t\tblock.o(local);\n\t\t} else if (callback) {\n\t\t\tcallback();\n\t\t}\n\t}\n\n\t\/** @typedef {1} INTRO *\/\n\t\/** @typedef {0} OUTRO *\/\n\t\/** @typedef {{ direction: 'in' | 'out' | 'both' }} TransitionOptions *\/\n\t\/** @typedef {(node: Element, params: any, options: TransitionOptions) => import('..\/transition\/public.js').TransitionConfig} TransitionFn *\/\n\n\t\/**\n\t * @typedef {Object} Outro\n\t * @property {number} r\n\t * @property {Function[]} c\n\t * @property {Object} p\n\t *\/\n\n\t\/**\n\t * @typedef {Object} PendingProgram\n\t * @property {number} start\n\t * @property {INTRO|OUTRO} b\n\t * @property {Outro} [group]\n\t *\/\n\n\t\/**\n\t * @typedef {Object} Program\n\t * @property {number} a\n\t * @property {INTRO|OUTRO} b\n\t * @property {1|-1} d\n\t * @property {number} duration\n\t * @property {number} start\n\t * @property {number} end\n\t * @property {Outro} [group]\n\t *\/\n\n\t\/\/ general each functions:\n\n\tfunction ensure_array_like(array_like_or_iterator) {\n\t\treturn array_like_or_iterator?.length !== undefined\n\t\t\t? array_like_or_iterator\n\t\t\t: Array.from(array_like_or_iterator);\n\t}\n\n\t\/\/ keyed each functions:\n\n\t\/** @returns {void} *\/\n\tfunction destroy_block(block, lookup) {\n\t\tblock.d(1);\n\t\tlookup.delete(block.key);\n\t}\n\n\t\/** @returns {any[]} *\/\n\tfunction update_keyed_each(\n\t\told_blocks,\n\t\tdirty,\n\t\tget_key,\n\t\tdynamic,\n\t\tctx,\n\t\tlist,\n\t\tlookup,\n\t\tnode,\n\t\tdestroy,\n\t\tcreate_each_block,\n\t\tnext,\n\t\tget_context\n\t) {\n\t\tlet o = old_blocks.length;\n\t\tlet n = list.length;\n\t\tlet i = o;\n\t\tconst old_indexes = {};\n\t\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\t\tconst new_blocks = [];\n\t\tconst new_lookup = new Map();\n\t\tconst deltas = new Map();\n\t\tconst updates = [];\n\t\ti = n;\n\t\twhile (i--) {\n\t\t\tconst child_ctx = get_context(ctx, list, i);\n\t\t\tconst key = get_key(child_ctx);\n\t\t\tlet block = lookup.get(key);\n\t\t\tif (!block) {\n\t\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\t\tblock.c();\n\t\t\t} else if (dynamic) {\n\t\t\t\t\/\/ defer updates until all the DOM shuffling is done\n\t\t\t\tupdates.push(() => block.p(child_ctx, dirty));\n\t\t\t}\n\t\t\tnew_lookup.set(key, (new_blocks[i] = block));\n\t\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t\t}\n\t\tconst will_move = new Set();\n\t\tconst did_move = new Set();\n\t\t\/** @returns {void} *\/\n\t\tfunction insert(block) {\n\t\t\ttransition_in(block, 1);\n\t\t\tblock.m(node, next);\n\t\t\tlookup.set(block.key, block);\n\t\t\tnext = block.first;\n\t\t\tn--;\n\t\t}\n\t\twhile (o && n) {\n\t\t\tconst new_block = new_blocks[n - 1];\n\t\t\tconst old_block = old_blocks[o - 1];\n\t\t\tconst new_key = new_block.key;\n\t\t\tconst old_key = old_block.key;\n\t\t\tif (new_block === old_block) {\n\t\t\t\t\/\/ do nothing\n\t\t\t\tnext = new_block.first;\n\t\t\t\to--;\n\t\t\t\tn--;\n\t\t\t} else if (!new_lookup.has(old_key)) {\n\t\t\t\t\/\/ remove old block\n\t\t\t\tdestroy(old_block, lookup);\n\t\t\t\to--;\n\t\t\t} else if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\t\tinsert(new_block);\n\t\t\t} else if (did_move.has(old_key)) {\n\t\t\t\to--;\n\t\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\t\tdid_move.add(new_key);\n\t\t\t\tinsert(new_block);\n\t\t\t} else {\n\t\t\t\twill_move.add(old_key);\n\t\t\t\to--;\n\t\t\t}\n\t\t}\n\t\twhile (o--) {\n\t\t\tconst old_block = old_blocks[o];\n\t\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t\t}\n\t\twhile (n) insert(new_blocks[n - 1]);\n\t\trun_all(updates);\n\t\treturn new_blocks;\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction bind(component, name, callback) {\n\t\tconst index = component.$$.props[name];\n\t\tif (index !== undefined) {\n\t\t\tcomponent.$$.bound[index] = callback;\n\t\t\tcallback(component.$$.ctx[index]);\n\t\t}\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction create_component(block) {\n\t\tblock && block.c();\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction mount_component(component, target, anchor) {\n\t\tconst { fragment, after_update } = component.$$;\n\t\tfragment && fragment.m(target, anchor);\n\t\t\/\/ onMount happens before the initial afterUpdate\n\t\tadd_render_callback(() => {\n\t\t\tconst new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n\t\t\t\/\/ if the component was destroyed immediately\n\t\t\t\/\/ it will update the `$$.on_destroy` reference to `null`.\n\t\t\t\/\/ the destructured on_destroy may still reference to the old array\n\t\t\tif (component.$$.on_destroy) {\n\t\t\t\tcomponent.$$.on_destroy.push(...new_on_destroy);\n\t\t\t} else {\n\t\t\t\t\/\/ Edge case - component was destroyed immediately,\n\t\t\t\t\/\/ most likely as a result of a binding initialising\n\t\t\t\trun_all(new_on_destroy);\n\t\t\t}\n\t\t\tcomponent.$$.on_mount = [];\n\t\t});\n\t\tafter_update.forEach(add_render_callback);\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction destroy_component(component, detaching) {\n\t\tconst $$ = component.$$;\n\t\tif ($$.fragment !== null) {\n\t\t\tflush_render_callbacks($$.after_update);\n\t\t\trun_all($$.on_destroy);\n\t\t\t$$.fragment && $$.fragment.d(detaching);\n\t\t\t\/\/ TODO null out other refs, including component.$$ (but need to\n\t\t\t\/\/ preserve final state?)\n\t\t\t$$.on_destroy = $$.fragment = null;\n\t\t\t$$.ctx = [];\n\t\t}\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction make_dirty(component, i) {\n\t\tif (component.$$.dirty[0] === -1) {\n\t\t\tdirty_components.push(component);\n\t\t\tschedule_update();\n\t\t\tcomponent.$$.dirty.fill(0);\n\t\t}\n\t\tcomponent.$$.dirty[(i \/ 31) | 0] |= 1 << i % 31;\n\t}\n\n\t\/** @returns {void} *\/\n\tfunction init(\n\t\tcomponent,\n\t\toptions,\n\t\tinstance,\n\t\tcreate_fragment,\n\t\tnot_equal,\n\t\tprops,\n\t\tappend_styles,\n\t\tdirty = [-1]\n\t) {\n\t\tconst parent_component = current_component;\n\t\tset_current_component(component);\n\t\t\/** @type {import('.\/private.js').T$$} *\/\n\t\tconst $$ = (component.$$ = {\n\t\t\tfragment: null,\n\t\t\tctx: [],\n\t\t\t\/\/ state\n\t\t\tprops,\n\t\t\tupdate: noop,\n\t\t\tnot_equal,\n\t\t\tbound: blank_object(),\n\t\t\t\/\/ lifecycle\n\t\t\ton_mount: [],\n\t\t\ton_destroy: [],\n\t\t\ton_disconnect: [],\n\t\t\tbefore_update: [],\n\t\t\tafter_update: [],\n\t\t\tcontext: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n\t\t\t\/\/ everything else\n\t\t\tcallbacks: blank_object(),\n\t\t\tdirty,\n\t\t\tskip_bound: false,\n\t\t\troot: options.target || parent_component.$$.root\n\t\t});\n\t\tappend_styles && append_styles($$.root);\n\t\tlet ready = false;\n\t\t$$.ctx = instance\n\t\t\t? instance(component, options.props || {}, (i, ret, ...rest) => {\n\t\t\t\t\tconst value = rest.length ? rest[0] : ret;\n\t\t\t\t\tif ($$.ctx && not_equal($$.ctx[i], ($$.ctx[i] = value))) {\n\t\t\t\t\t\tif (!$$.skip_bound && $$.bound[i]) $$.bound[i](value);\n\t\t\t\t\t\tif (ready) make_dirty(component, i);\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t  })\n\t\t\t: [];\n\t\t$$.update();\n\t\tready = true;\n\t\trun_all($$.before_update);\n\t\t\/\/ `false` as a special case of no DOM component\n\t\t$$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n\t\tif (options.target) {\n\t\t\tif (options.hydrate) {\n\t\t\t\tconst nodes = children(options.target);\n\t\t\t\t\/\/ eslint-disable-next-line @typescript-eslint\/no-non-null-assertion\n\t\t\t\t$$.fragment && $$.fragment.l(nodes);\n\t\t\t\tnodes.forEach(detach);\n\t\t\t} else {\n\t\t\t\t\/\/ eslint-disable-next-line @typescript-eslint\/no-non-null-assertion\n\t\t\t\t$$.fragment && $$.fragment.c();\n\t\t\t}\n\t\t\tif (options.intro) transition_in(component.$$.fragment);\n\t\t\tmount_component(component, options.target, options.anchor);\n\t\t\tflush();\n\t\t}\n\t\tset_current_component(parent_component);\n\t}\n\n\tlet SvelteElement;\n\n\tif (typeof HTMLElement === 'function') {\n\t\tSvelteElement = class extends HTMLElement {\n\t\t\t\/** The Svelte component constructor *\/\n\t\t\t$$ctor;\n\t\t\t\/** Slots *\/\n\t\t\t$$s;\n\t\t\t\/** The Svelte component instance *\/\n\t\t\t$$c;\n\t\t\t\/** Whether or not the custom element is connected *\/\n\t\t\t$$cn = false;\n\t\t\t\/** Component props data *\/\n\t\t\t$$d = {};\n\t\t\t\/** `true` if currently in the process of reflecting component props back to attributes *\/\n\t\t\t$$r = false;\n\t\t\t\/** @type {Record<string, CustomElementPropDefinition>} Props definition (name, reflected, type etc) *\/\n\t\t\t$$p_d = {};\n\t\t\t\/** @type {Record<string, Function[]>} Event listeners *\/\n\t\t\t$$l = {};\n\t\t\t\/** @type {Map<Function, Function>} Event listener unsubscribe functions *\/\n\t\t\t$$l_u = new Map();\n\n\t\t\tconstructor($$componentCtor, $$slots, use_shadow_dom) {\n\t\t\t\tsuper();\n\t\t\t\tthis.$$ctor = $$componentCtor;\n\t\t\t\tthis.$$s = $$slots;\n\t\t\t\tif (use_shadow_dom) {\n\t\t\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taddEventListener(type, listener, options) {\n\t\t\t\t\/\/ We can't determine upfront if the event is a custom event or not, so we have to\n\t\t\t\t\/\/ listen to both. If someone uses a custom event with the same name as a regular\n\t\t\t\t\/\/ browser event, this fires twice - we can't avoid that.\n\t\t\t\tthis.$$l[type] = this.$$l[type] || [];\n\t\t\t\tthis.$$l[type].push(listener);\n\t\t\t\tif (this.$$c) {\n\t\t\t\t\tconst unsub = this.$$c.$on(type, listener);\n\t\t\t\t\tthis.$$l_u.set(listener, unsub);\n\t\t\t\t}\n\t\t\t\tsuper.addEventListener(type, listener, options);\n\t\t\t}\n\n\t\t\tremoveEventListener(type, listener, options) {\n\t\t\t\tsuper.removeEventListener(type, listener, options);\n\t\t\t\tif (this.$$c) {\n\t\t\t\t\tconst unsub = this.$$l_u.get(listener);\n\t\t\t\t\tif (unsub) {\n\t\t\t\t\t\tunsub();\n\t\t\t\t\t\tthis.$$l_u.delete(listener);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tasync connectedCallback() {\n\t\t\t\tthis.$$cn = true;\n\t\t\t\tif (!this.$$c) {\n\t\t\t\t\t\/\/ We wait one tick to let possible child slot elements be created\/mounted\n\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t\tif (!this.$$cn) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tfunction create_slot(name) {\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\tlet node;\n\t\t\t\t\t\t\tconst obj = {\n\t\t\t\t\t\t\t\tc: function create() {\n\t\t\t\t\t\t\t\t\tnode = element('slot');\n\t\t\t\t\t\t\t\t\tif (name !== 'default') {\n\t\t\t\t\t\t\t\t\t\tattr(node, 'name', name);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\/**\n\t\t\t\t\t\t\t\t * @param {HTMLElement} target\n\t\t\t\t\t\t\t\t * @param {HTMLElement} [anchor]\n\t\t\t\t\t\t\t\t *\/\n\t\t\t\t\t\t\t\tm: function mount(target, anchor) {\n\t\t\t\t\t\t\t\t\tinsert(target, node, anchor);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\td: function destroy(detaching) {\n\t\t\t\t\t\t\t\t\tif (detaching) {\n\t\t\t\t\t\t\t\t\t\tdetach(node);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tconst $$slots = {};\n\t\t\t\t\tconst existing_slots = get_custom_elements_slots(this);\n\t\t\t\t\tfor (const name of this.$$s) {\n\t\t\t\t\t\tif (name in existing_slots) {\n\t\t\t\t\t\t\t$$slots[name] = [create_slot(name)];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (const attribute of this.attributes) {\n\t\t\t\t\t\t\/\/ this.$$data takes precedence over this.attributes\n\t\t\t\t\t\tconst name = this.$$g_p(attribute.name);\n\t\t\t\t\t\tif (!(name in this.$$d)) {\n\t\t\t\t\t\t\tthis.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, 'toProp');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.$$c = new this.$$ctor({\n\t\t\t\t\t\ttarget: this.shadowRoot || this,\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t...this.$$d,\n\t\t\t\t\t\t\t$$slots,\n\t\t\t\t\t\t\t$$scope: {\n\t\t\t\t\t\t\t\tctx: []\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t\/\/ Reflect component props as attributes\n\t\t\t\t\tconst reflect_attributes = () => {\n\t\t\t\t\t\tthis.$$r = true;\n\t\t\t\t\t\tfor (const key in this.$$p_d) {\n\t\t\t\t\t\t\tthis.$$d[key] = this.$$c.$$.ctx[this.$$c.$$.props[key]];\n\t\t\t\t\t\t\tif (this.$$p_d[key].reflect) {\n\t\t\t\t\t\t\t\tconst attribute_value = get_custom_element_value(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\tthis.$$d[key],\n\t\t\t\t\t\t\t\t\tthis.$$p_d,\n\t\t\t\t\t\t\t\t\t'toAttribute'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (attribute_value == null) {\n\t\t\t\t\t\t\t\t\tthis.removeAttribute(key);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.setAttribute(this.$$p_d[key].attribute || key, attribute_value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.$$r = false;\n\t\t\t\t\t};\n\t\t\t\t\tthis.$$c.$$.after_update.push(reflect_attributes);\n\t\t\t\t\treflect_attributes(); \/\/ once initially because after_update is added too late for first render\n\n\t\t\t\t\tfor (const type in this.$$l) {\n\t\t\t\t\t\tfor (const listener of this.$$l[type]) {\n\t\t\t\t\t\t\tconst unsub = this.$$c.$on(type, listener);\n\t\t\t\t\t\t\tthis.$$l_u.set(listener, unsub);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.$$l = {};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n\t\t\t\/\/ and setting attributes through setAttribute etc, this is helpful\n\t\t\tattributeChangedCallback(attr, _oldValue, newValue) {\n\t\t\t\tif (this.$$r) return;\n\t\t\t\tattr = this.$$g_p(attr);\n\t\t\t\tthis.$$d[attr] = get_custom_element_value(attr, newValue, this.$$p_d, 'toProp');\n\t\t\t\tthis.$$c?.$set({ [attr]: this.$$d[attr] });\n\t\t\t}\n\n\t\t\tdisconnectedCallback() {\n\t\t\t\tthis.$$cn = false;\n\t\t\t\t\/\/ In a microtask, because this could be a move within the DOM\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (!this.$$cn) {\n\t\t\t\t\t\tthis.$$c.$destroy();\n\t\t\t\t\t\tthis.$$c = undefined;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$$g_p(attribute_name) {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(this.$$p_d).find(\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tthis.$$p_d[key].attribute === attribute_name ||\n\t\t\t\t\t\t\t(!this.$$p_d[key].attribute && key.toLowerCase() === attribute_name)\n\t\t\t\t\t) || attribute_name\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/**\n\t * @param {string} prop\n\t * @param {any} value\n\t * @param {Record<string, CustomElementPropDefinition>} props_definition\n\t * @param {'toAttribute' | 'toProp'} [transform]\n\t *\/\n\tfunction get_custom_element_value(prop, value, props_definition, transform) {\n\t\tconst type = props_definition[prop]?.type;\n\t\tvalue = type === 'Boolean' && typeof value !== 'boolean' ? value != null : value;\n\t\tif (!transform || !props_definition[prop]) {\n\t\t\treturn value;\n\t\t} else if (transform === 'toAttribute') {\n\t\t\tswitch (type) {\n\t\t\t\tcase 'Object':\n\t\t\t\tcase 'Array':\n\t\t\t\t\treturn value == null ? null : JSON.stringify(value);\n\t\t\t\tcase 'Boolean':\n\t\t\t\t\treturn value ? '' : null;\n\t\t\t\tcase 'Number':\n\t\t\t\t\treturn value == null ? null : value;\n\t\t\t\tdefault:\n\t\t\t\t\treturn value;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (type) {\n\t\t\t\tcase 'Object':\n\t\t\t\tcase 'Array':\n\t\t\t\t\treturn value && JSON.parse(value);\n\t\t\t\tcase 'Boolean':\n\t\t\t\t\treturn value; \/\/ conversion already handled above\n\t\t\t\tcase 'Number':\n\t\t\t\t\treturn value != null ? +value : value;\n\t\t\t\tdefault:\n\t\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n\n\t\/**\n\t * @internal\n\t *\n\t * Turn a Svelte component into a custom element.\n\t * @param {import('.\/public.js').ComponentType} Component  A Svelte component constructor\n\t * @param {Record<string, CustomElementPropDefinition>} props_definition  The props to observe\n\t * @param {string[]} slots  The slots to create\n\t * @param {string[]} accessors  Other accessors besides the ones for props the component has\n\t * @param {boolean} use_shadow_dom  Whether to use shadow DOM\n\t * @param {(ce: new () => HTMLElement) => new () => HTMLElement} [extend]\n\t *\/\n\tfunction create_custom_element(\n\t\tComponent,\n\t\tprops_definition,\n\t\tslots,\n\t\taccessors,\n\t\tuse_shadow_dom,\n\t\textend\n\t) {\n\t\tlet Class = class extends SvelteElement {\n\t\t\tconstructor() {\n\t\t\t\tsuper(Component, slots, use_shadow_dom);\n\t\t\t\tthis.$$p_d = props_definition;\n\t\t\t}\n\t\t\tstatic get observedAttributes() {\n\t\t\t\treturn Object.keys(props_definition).map((key) =>\n\t\t\t\t\t(props_definition[key].attribute || key).toLowerCase()\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tObject.keys(props_definition).forEach((prop) => {\n\t\t\tObject.defineProperty(Class.prototype, prop, {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.$$c && prop in this.$$c ? this.$$c[prop] : this.$$d[prop];\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tvalue = get_custom_element_value(prop, value, props_definition);\n\t\t\t\t\tthis.$$d[prop] = value;\n\t\t\t\t\tthis.$$c?.$set({ [prop]: value });\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\taccessors.forEach((accessor) => {\n\t\t\tObject.defineProperty(Class.prototype, accessor, {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.$$c?.[accessor];\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tif (extend) {\n\t\t\t\/\/ @ts-expect-error - assigning here is fine\n\t\t\tClass = extend(Class);\n\t\t}\n\t\tComponent.element = \/** @type {any} *\/ (Class);\n\t\treturn Class;\n\t}\n\n\t\/**\n\t * Base class for Svelte components. Used when dev=false.\n\t *\n\t * @template {Record<string, any>} [Props=any]\n\t * @template {Record<string, any>} [Events=any]\n\t *\/\n\tclass SvelteComponent {\n\t\t\/**\n\t\t * ### PRIVATE API\n\t\t *\n\t\t * Do not use, may change at any time\n\t\t *\n\t\t * @type {any}\n\t\t *\/\n\t\t$$ = undefined;\n\t\t\/**\n\t\t * ### PRIVATE API\n\t\t *\n\t\t * Do not use, may change at any time\n\t\t *\n\t\t * @type {any}\n\t\t *\/\n\t\t$$set = undefined;\n\n\t\t\/** @returns {void} *\/\n\t\t$destroy() {\n\t\t\tdestroy_component(this, 1);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t\/**\n\t\t * @template {Extract<keyof Events, string>} K\n\t\t * @param {K} type\n\t\t * @param {((e: Events[K]) => void) | null | undefined} callback\n\t\t * @returns {() => void}\n\t\t *\/\n\t\t$on(type, callback) {\n\t\t\tif (!is_function(callback)) {\n\t\t\t\treturn noop;\n\t\t\t}\n\t\t\tconst callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n\t\t\tcallbacks.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t\/**\n\t\t * @param {Partial<Props>} props\n\t\t * @returns {void}\n\t\t *\/\n\t\t$set(props) {\n\t\t\tif (this.$$set && !is_empty(props)) {\n\t\t\t\tthis.$$.skip_bound = true;\n\t\t\t\tthis.$$set(props);\n\t\t\t\tthis.$$.skip_bound = false;\n\t\t\t}\n\t\t}\n\t}\n\n\t\/**\n\t * @typedef {Object} CustomElementPropDefinition\n\t * @property {string} [attribute]\n\t * @property {boolean} [reflect]\n\t * @property {'String'|'Boolean'|'Number'|'Array'|'Object'} [type]\n\t *\/\n\n\t\/\/ generated during release, do not modify\n\n\tconst PUBLIC_VERSION = '4';\n\n\tif (typeof window !== 'undefined')\n\t\t\/\/ @ts-ignore\n\t\t(window.__svelte || (window.__svelte = { v: new Set() })).v.add(PUBLIC_VERSION);\n\n\tvar LayoutDirection;\n\t(function (LayoutDirection) {\n\t    LayoutDirection[\"HORIZONTAL\"] = \"horizontal\";\n\t    LayoutDirection[\"VERTICAL\"] = \"vertical\";\n\t})(LayoutDirection || (LayoutDirection = {}));\n\tvar LayoutAlign;\n\t(function (LayoutAlign) {\n\t    LayoutAlign[\"START\"] = \"start\";\n\t    LayoutAlign[\"END\"] = \"end\";\n\t    LayoutAlign[\"CENTER\"] = \"center\";\n\t    LayoutAlign[\"JUSTIFY\"] = \"space-between\";\n\t})(LayoutAlign || (LayoutAlign = {}));\n\tvar Size;\n\t(function (Size) {\n\t    Size[\"NULL\"] = \"\";\n\t    Size[\"S\"] = \"s\";\n\t    Size[\"M\"] = \"m\";\n\t    Size[\"L\"] = \"l\";\n\t})(Size || (Size = {}));\n\tvar ConfiguratorKey;\n\t(function (ConfiguratorKey) {\n\t    ConfiguratorKey[\"WIDTH\"] = \"WIDTH\";\n\t    ConfiguratorKey[\"HEIGHT\"] = \"HEIGHT\";\n\t    ConfiguratorKey[\"MOTIVE\"] = \"MOTIVE\";\n\t    ConfiguratorKey[\"TEXTURE\"] = \"TEXTURE\";\n\t    ConfiguratorKey[\"COLOR\"] = \"COLOR\";\n\t    ConfiguratorKey[\"FIRST_NAME\"] = \"FIRST_NAME\";\n\t    ConfiguratorKey[\"LAST_NAME\"] = \"LAST_NAME\";\n\t    ConfiguratorKey[\"EMAIL\"] = \"EMAIL\";\n\t    ConfiguratorKey[\"PHONE\"] = \"PHONE\";\n\t    ConfiguratorKey[\"ADDRESS_1\"] = \"ADDRESS_1\";\n\t    ConfiguratorKey[\"CITY\"] = \"CITY\";\n\t    ConfiguratorKey[\"ZIP\"] = \"ZIP\";\n\t    ConfiguratorKey[\"COUNTRY\"] = \"COUNTRY\";\n\t    ConfiguratorKey[\"NOTE\"] = \"NOTE\";\n\t})(ConfiguratorKey || (ConfiguratorKey = {}));\n\tvar UIKey;\n\t(function (UIKey) {\n\t    UIKey[\"MainTitleOne\"] = \"MainTitleOne\";\n\t    UIKey[\"MainTitleTwo\"] = \"MainTitleTwo\";\n\t    UIKey[\"MainTitleSecondary\"] = \"MainTitleSecondary\";\n\t    UIKey[\"ContactInfo\"] = \"ContactInfo\";\n\t    UIKey[\"Reset\"] = \"Reset\";\n\t    UIKey[\"Next\"] = \"Next\";\n\t    UIKey[\"Back\"] = \"Back\";\n\t    UIKey[\"Submit\"] = \"Submit\";\n\t    UIKey[\"SuccessTitle\"] = \"SuccessTitle\";\n\t    UIKey[\"ErrorTitle\"] = \"ErrorTitle\";\n\t    UIKey[\"SuccessText\"] = \"SuccessText\";\n\t    UIKey[\"CreateNewConfig\"] = \"CreateNewConfig\";\n\t    UIKey[\"GDPR1\"] = \"GDPR1\";\n\t    UIKey[\"GDPR2\"] = \"GDPR2\";\n\t    UIKey[\"GDPR3\"] = \"GDPR3\";\n\t})(UIKey || (UIKey = {}));\n\tvar LayoutPriority;\n\t(function (LayoutPriority) {\n\t    LayoutPriority[\"PRIMARY\"] = \"primary\";\n\t    LayoutPriority[\"SECONDARY\"] = \"secondary\";\n\t    LayoutPriority[\"TERTIARY\"] = \"tertiary\";\n\t})(LayoutPriority || (LayoutPriority = {}));\n\tvar Languages;\n\t(function (Languages) {\n\t    Languages[\"HU\"] = \"hu\";\n\t    Languages[\"SK\"] = \"sk\";\n\t})(Languages || (Languages = {}));\n\tvar LayoutWrapType;\n\t(function (LayoutWrapType) {\n\t    LayoutWrapType[\"NONE\"] = \"none\";\n\t    LayoutWrapType[\"FILL\"] = \"fill\";\n\t    LayoutWrapType[\"HUG\"] = \"hug\";\n\t})(LayoutWrapType || (LayoutWrapType = {}));\n\tvar Breakpoints;\n\t(function (Breakpoints) {\n\t    Breakpoints[\"Desktop\"] = \"(min-width: 1621px)\";\n\t    Breakpoints[\"Tablet\"] = \"(min-width: 881px) and (max-width: 1620px)\";\n\t    Breakpoints[\"Mobile\"] = \"(max-width: 880px)\";\n\t})(Breakpoints || (Breakpoints = {}));\n\n\tconst clamp = (num, min, max) => Math.min(Math.max(num, min), max);\n\t\/\/ TODO: remove when keys will match\n\tfunction getConfigGroupNameById(id) {\n\t    switch (id) {\n\t        case 4: return ConfiguratorKey.WIDTH;\n\t        case 6: return ConfiguratorKey.HEIGHT;\n\t        case 7: return ConfiguratorKey.MOTIVE;\n\t        case 8: return ConfiguratorKey.TEXTURE;\n\t        case 9: return ConfiguratorKey.COLOR;\n\t        default: return ConfiguratorKey.WIDTH;\n\t    }\n\t}\n\n\tconst subscriber_queue = [];\n\n\t\/**\n\t * Creates a `Readable` store that allows reading by subscription.\n\t *\n\t * https:\/\/svelte.dev\/docs\/svelte-store#readable\n\t * @template T\n\t * @param {T} [value] initial value\n\t * @param {import('.\/public.js').StartStopNotifier<T>} [start]\n\t * @returns {import('.\/public.js').Readable<T>}\n\t *\/\n\tfunction readable(value, start) {\n\t\treturn {\n\t\t\tsubscribe: writable(value, start).subscribe\n\t\t};\n\t}\n\n\t\/**\n\t * Create a `Writable` store that allows both updating and reading by subscription.\n\t *\n\t * https:\/\/svelte.dev\/docs\/svelte-store#writable\n\t * @template T\n\t * @param {T} [value] initial value\n\t * @param {import('.\/public.js').StartStopNotifier<T>} [start]\n\t * @returns {import('.\/public.js').Writable<T>}\n\t *\/\n\tfunction writable(value, start = noop) {\n\t\t\/** @type {import('.\/public.js').Unsubscriber} *\/\n\t\tlet stop;\n\t\t\/** @type {Set<import('.\/private.js').SubscribeInvalidateTuple<T>>} *\/\n\t\tconst subscribers = new Set();\n\t\t\/** @param {T} new_value\n\t\t * @returns {void}\n\t\t *\/\n\t\tfunction set(new_value) {\n\t\t\tif (safe_not_equal(value, new_value)) {\n\t\t\t\tvalue = new_value;\n\t\t\t\tif (stop) {\n\t\t\t\t\t\/\/ store is ready\n\t\t\t\t\tconst run_queue = !subscriber_queue.length;\n\t\t\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\t\t\tsubscriber[1]();\n\t\t\t\t\t\tsubscriber_queue.push(subscriber, value);\n\t\t\t\t\t}\n\t\t\t\t\tif (run_queue) {\n\t\t\t\t\t\tfor (let i = 0; i < subscriber_queue.length; i += 2) {\n\t\t\t\t\t\t\tsubscriber_queue[i][0](subscriber_queue[i + 1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsubscriber_queue.length = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\/**\n\t\t * @param {import('.\/public.js').Updater<T>} fn\n\t\t * @returns {void}\n\t\t *\/\n\t\tfunction update(fn) {\n\t\t\tset(fn(value));\n\t\t}\n\n\t\t\/**\n\t\t * @param {import('.\/public.js').Subscriber<T>} run\n\t\t * @param {import('.\/private.js').Invalidator<T>} [invalidate]\n\t\t * @returns {import('.\/public.js').Unsubscriber}\n\t\t *\/\n\t\tfunction subscribe(run, invalidate = noop) {\n\t\t\t\/** @type {import('.\/private.js').SubscribeInvalidateTuple<T>} *\/\n\t\t\tconst subscriber = [run, invalidate];\n\t\t\tsubscribers.add(subscriber);\n\t\t\tif (subscribers.size === 1) {\n\t\t\t\tstop = start(set, update) || noop;\n\t\t\t}\n\t\t\trun(value);\n\t\t\treturn () => {\n\t\t\t\tsubscribers.delete(subscriber);\n\t\t\t\tif (subscribers.size === 0 && stop) {\n\t\t\t\t\tstop();\n\t\t\t\t\tstop = null;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn { set, update, subscribe };\n\t}\n\n\tconst TranslationSK = {\n\t    [ConfiguratorKey.WIDTH]: \"\u0160\u00edrka\",\n\t    [ConfiguratorKey.HEIGHT]: \"V\u00fd\u0161ka\",\n\t    [ConfiguratorKey.MOTIVE]: \"Mot\u00edv br\u00e1ny\",\n\t    [ConfiguratorKey.TEXTURE]: \"Povrch\",\n\t    [ConfiguratorKey.COLOR]: \"Farba\",\n\t    [ConfiguratorKey.FIRST_NAME]: \"Meno\",\n\t    [ConfiguratorKey.LAST_NAME]: \"Priezvisko\",\n\t    [ConfiguratorKey.EMAIL]: \"E-mail\",\n\t    [ConfiguratorKey.PHONE]: \"Telef\u00f3n\",\n\t    [ConfiguratorKey.ADDRESS_1]: \"Adresa\",\n\t    [ConfiguratorKey.CITY]: \"Mesto\",\n\t    [ConfiguratorKey.ZIP]: \"PS\u010c\",\n\t    [ConfiguratorKey.COUNTRY]: \"Krajina\",\n\t    [ConfiguratorKey.NOTE]: \"Pozn\u00e1mka\",\n\t    [UIKey.MainTitleOne]: \"DAJTE SI VYPRACOVA\u0164\",\n\t    [UIKey.MainTitleTwo]: \"CENOV\u00da PONUKU!\",\n\t    [UIKey.MainTitleSecondary]: \"JEDNODUCHO A R\u00ddCHLO\",\n\t    [UIKey.ContactInfo]: \"Kontaktn\u00e9 inform\u00e1cie\",\n\t    [UIKey.Reset]: \"Resetova\u0165\",\n\t    [UIKey.Next]: \"\u010ealej\",\n\t    [UIKey.Back]: \"Sp\u00e4\u0165\",\n\t    [UIKey.Submit]: \"Odosla\u0165\",\n\t    [UIKey.SuccessTitle]: \"Va\u0161a konfigura\u010dn\u00e1 po\u017eiadavka bola odoslan\u00e1!\",\n\t    [UIKey.ErrorTitle]: \"Vyskytla sa technick\u00e1 chyba.\",\n\t    [UIKey.SuccessText]: \"Jeden z na\u0161ich kolegov sa s vami spoj\u00ed v nasleduj\u00facich d\u0148och\",\n\t    [UIKey.CreateNewConfig]: \"Vytvori\u0165 \u010fal\u0161ie\",\n\t    [UIKey.GDPR1]: \"Pre\u010d\u00edtal som si\",\n\t    [UIKey.GDPR2]: \"Z\u00e1sady ochrany osobn\u00fdch \u00fadajov\",\n\t    [UIKey.GDPR3]: \"a s\u00fahlas\u00edm so spracovan\u00edm \u00fadajov uveden\u00fdch v tomto formul\u00e1ri.\"\n\t};\n\tconst TranslationHU = {\n\t    [ConfiguratorKey.WIDTH]: \"Sz\u00e9less\u00e9g\",\n\t    [ConfiguratorKey.HEIGHT]: \"Magass\u00e1g\",\n\t    [ConfiguratorKey.MOTIVE]: \"Kapu mot\u00edvum\",\n\t    [ConfiguratorKey.TEXTURE]: \"Fel\u00fclet\",\n\t    [ConfiguratorKey.COLOR]: \"Sz\u00edn\",\n\t    [ConfiguratorKey.FIRST_NAME]: \"Keresztn\u00e9v\",\n\t    [ConfiguratorKey.LAST_NAME]: \"Vezet\u00e9kn\u00e9v\",\n\t    [ConfiguratorKey.EMAIL]: \"E-mail\",\n\t    [ConfiguratorKey.PHONE]: \"Telefonsz\u00e1m\",\n\t    [ConfiguratorKey.ADDRESS_1]: \"C\u00edm\",\n\t    [ConfiguratorKey.CITY]: \"V\u00e1ros\",\n\t    [ConfiguratorKey.ZIP]: \"Ir\u00e1ny\u00edt\u00f3sz\u00e1m\",\n\t    [ConfiguratorKey.COUNTRY]: \"Orsz\u00e1g\",\n\t    [ConfiguratorKey.NOTE]: \"Megjegyz\u00e9s\",\n\t    [UIKey.MainTitleOne]: \"K\u00c9RJEN\",\n\t    [UIKey.MainTitleTwo]: \"\u00c1RAJ\u00c1NLATOT!\",\n\t    [UIKey.MainTitleSecondary]: \"EGYSZER\u0170EN \u00c9S GYORSAN\",\n\t    [UIKey.ContactInfo]: \"El\u00e9rhet\u0151s\u00e9gi adatok\",\n\t    [UIKey.Reset]: \"Vissza\u00e1ll\u00edt\",\n\t    [UIKey.Next]: \"Tov\u00e1bb\",\n\t    [UIKey.Back]: \"Vissza\",\n\t    [UIKey.Submit]: \"Bek\u00fcld\",\n\t    [UIKey.SuccessTitle]: \"A konfigur\u00e1ci\u00f3s k\u00e9r\u00e9s\u00e9t elk\u00fcldt\u00fck!\",\n\t    [UIKey.ErrorTitle]: \"Technikai hiba t\u00f6rt\u00e9nt\",\n\t    [UIKey.SuccessText]: \"Egy munkat\u00e1rsunk a k\u00f6vetkez\u0151 napokban felveszi \u00d6nnel a kapcsolatot\",\n\t    [UIKey.CreateNewConfig]: \"K\u00e9sz\u00edtsen m\u00e9g egyet\",\n\t    [UIKey.GDPR1]: \"Elolvastam az\",\n\t    [UIKey.GDPR2]: \"Adatv\u00e9delmi szab\u00e1lyzatot\",\n\t    [UIKey.GDPR3]: \"\u00e9s hozz\u00e1j\u00e1rulok az \u0171rlapon megadott adatok feldolgoz\u00e1s\u00e1hoz.\"\n\t};\n\n\tclass LanguageService {\n\t    constructor() {\n\t        this._language = Languages.SK;\n\t        this._dictionary = TranslationSK;\n\t        this._initialized = false;\n\t        this.initStore = readable(this._initialized, (set) => {\n\t            this.notify = () => {\n\t                set(this._initialized);\n\t            };\n\t            return () => { }; \/\/ cleanup function, if needed\n\t        });\n\t    }\n\t    notify() { }\n\t    ;\n\t    isInitialized() {\n\t        return this._initialized;\n\t    }\n\t    init() {\n\t        const pathname = window.location.pathname;\n\t        this._language = pathname.includes(\"hu\") ? Languages.HU : Languages.SK;\n\t        this.setDictionary();\n\t        this._initialized = true;\n\t    }\n\t    get(key) {\n\t        if (!this._initialized)\n\t            this.init();\n\t        return this._dictionary[key];\n\t    }\n\t    setDictionary() {\n\t        switch (this._language) {\n\t            case Languages.SK: this._dictionary = TranslationSK;\n\t            case Languages.HU: this._dictionary = TranslationHU;\n\t            default: this._dictionary = TranslationSK;\n\t        }\n\t        return;\n\t    }\n\t}\n\n\t\/******************************************************************************\n\tCopyright (c) Microsoft Corporation.\n\n\tPermission to use, copy, modify, and\/or distribute this software for any\n\tpurpose with or without fee is hereby granted.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n\tREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n\tAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n\tINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n\tLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n\tOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n\tPERFORMANCE OF THIS SOFTWARE.\n\t***************************************************************************** *\/\n\t\/* global Reflect, Promise, SuppressedError, Symbol *\/\n\n\n\tfunction __awaiter(thisArg, _arguments, P, generator) {\n\t    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n\t    return new (P || (P = Promise))(function (resolve, reject) {\n\t        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n\t        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n\t        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n\t        step((generator = generator.apply(thisArg, _arguments || [])).next());\n\t    });\n\t}\n\n\ttypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n\t    var e = new Error(message);\n\t    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n\t};\n\n\tconst URL = \"https:\/\/staging.tptbrany.sk\"; \/\/ https:\/\/office.tptbrany.sk\n\tclass ConfiguratorService {\n\t    constructor() {\n\t        this._initialized = false;\n\t        this._loading = false;\n\t        \/\/  private _products: Map<number, ConfiguratorResponse> = new Map(); TODO: add ability to support multiple configs later, so far we only have one\n\t        this.product = null;\n\t        this.initStore = readable(this._initialized, (set) => {\n\t            this.notify = () => {\n\t                set(this._initialized);\n\t            };\n\t        });\n\t    }\n\t    notify() { }\n\t    ;\n\t    isInitialized() {\n\t        return this._initialized;\n\t    }\n\t    init() {\n\t        return __awaiter(this, void 0, void 0, function* () {\n\t            if (this._initialized || this._loading)\n\t                return;\n\t            this._loading = true;\n\t            yield fetch(`${URL}\/api\/configurator\/2`, {\n\t                method: \"GET\"\n\t            })\n\t                .then(res => res.json())\n\t                .then((d) => __awaiter(this, void 0, void 0, function* () {\n\t                const data = d[0];\n\t                const groups = data.configurator_groups;\n\t                const itemGroups = groups\n\t                    .filter(g => !data.configurator_items.some(i => i.configurator_group_id === g.id))\n\t                    .map(u => {\n\t                    const item = {\n\t                        id: u.id + 10000,\n\t                        configurator_id: u.configurator_id,\n\t                        configurator_group_id: u.id,\n\t                        name: u.name,\n\t                        layer: 0,\n\t                        description: u.description,\n\t                        price: null,\n\t                    };\n\t                    return item;\n\t                });\n\t                const items = [...data.configurator_items, ...itemGroups]\n\t                    .map(item => {\n\t                    return new Promise((res) => {\n\t                        const processedItem = Object.assign({ configurator_group_name: getConfigGroupNameById(item.configurator_group_id), selected: !!data.selected_configurator_items.find(i => i.name === item.name) }, item);\n\t                        if (item.image) {\n\t                            processedItem.preloadedImage = new Image();\n\t                            processedItem.preloadedImage.src = `${URL}${item.image}`; \/\/ TODO: VITE_API_URL_PROD should not exist\n\t                            processedItem.preloadedImage.onload = () => {\n\t                                res(processedItem);\n\t                            };\n\t                        }\n\t                        res(processedItem);\n\t                    });\n\t                });\n\t                const processedItems = yield Promise.all(items);\n\t                this.product = Object.assign(Object.assign({}, data.configurator), { items: processedItems });\n\t            })).then(() => {\n\t                this._initialized = true;\n\t                this._loading = false;\n\t            });\n\t        });\n\t    }\n\t    getTitle() {\n\t        var _a;\n\t        return ((_a = this.product) === null || _a === void 0 ? void 0 : _a.name) || \"\";\n\t    }\n\t    get(key, parentId = null) {\n\t        var _a, _b;\n\t        if (parentId === null)\n\t            return ((_a = this.product) === null || _a === void 0 ? void 0 : _a.items.filter(i => i.configurator_group_name === key)) || [];\n\t        return ((_b = this.product) === null || _b === void 0 ? void 0 : _b.items.filter(i => { var _a; return i.configurator_group_name === key && ((_a = i.parents) === null || _a === void 0 ? void 0 : _a.some(p => p.id === parentId)); })) || [];\n\t    }\n\t    post(response) {\n\t        return __awaiter(this, void 0, void 0, function* () {\n\t            try {\n\t                const res = yield fetch(`${URL}\/api\/configurator\/submit\/2`, {\n\t                    method: \"POST\",\n\t                    headers: {\n\t                        'Content-Type': 'application\/json'\n\t                    },\n\t                    body: JSON.stringify(response)\n\t                });\n\t                if (!res.ok) {\n\t                    const errorText = yield res.text();\n\t                    return { code: res.status, message: `Server error: ${errorText}` };\n\t                }\n\t                const data = yield res.json();\n\t                return { code: res.status, message: data };\n\t            }\n\t            catch (error) {\n\t                return { code: 500, message: `Error posting data:, ${error}` };\n\t            }\n\t        });\n\t    }\n\t}\n\n\tconst defaultConfig = {\n\t    width: 4000,\n\t    height: 2400,\n\t    motive: -1,\n\t    texture: -1,\n\t    color: -1\n\t};\n\tconst defaultContactInfo = {\n\t    firstName: \"\",\n\t    lastName: \"\",\n\t    email: \"\",\n\t    phone: \"\",\n\t    address: \"\",\n\t    city: \"\",\n\t    zip: null,\n\t    country: \"\",\n\t    note: \"\"\n\t};\n\tlet languageServiceInstance = new LanguageService();\n\tlet configServiceInstance = new ConfiguratorService();\n\tconst languageService = readable(languageServiceInstance, (set) => {\n\t    languageServiceInstance.notify = () => set(languageServiceInstance);\n\t    return () => { }; \/\/ cleanup function, if needed\n\t});\n\tconst configService = readable(configServiceInstance, (set) => {\n\t    languageServiceInstance.notify = () => set(configServiceInstance);\n\t    return () => { }; \/\/ cleanup function, if needed\n\t});\n\tconst loaded = writable(false);\n\tconst isDesktop = writable(false);\n\tconst isTablet = writable(false);\n\tconst isMobile = writable(false);\n\tconst configInit = writable(false);\n\tconst defaultConfigStore = writable(Object.assign({}, defaultConfig)); \/\/ For easier reseting, the defaults are fetched from the server\n\tconst configStore = writable(Object.assign({}, defaultConfig));\n\tconst clientStore = writable(Object.assign({}, defaultContactInfo));\n\n\t\/* eslint-disable @typescript-eslint\/ban-ts-comment *\/\n\tvar Types;\n\t(function (Types) {\n\t    Types[\"string\"] = \"string\";\n\t    Types[\"array\"] = \"array\";\n\t    Types[\"object\"] = \"object\";\n\t    Types[\"mediaQueryList\"] = \"mediaQueryList\";\n\t})(Types || (Types = {}));\n\n\tconst getType = (value) => {\n\t    if (value instanceof Object && typeof value.addListener === 'function' && typeof value.removeListener === 'function') {\n\t        return Types.mediaQueryList;\n\t    }\n\t    else if (Array.isArray(value)) {\n\t        return Types.array;\n\t    }\n\t    else if (value instanceof Object) {\n\t        return Types.object;\n\t    }\n\t    return Types.string;\n\t};\n\n\t\/* eslint-disable @typescript-eslint\/ban-ts-comment *\/\n\tclass Calc {\n\t    static get(mql) { return mql.media ? mql.matches : false; }\n\t    static inline(mql) { return Calc.get(mql); }\n\t    \/\/@ts-ignore\n\t    static array(mql) { return mql.map(mql => autoCalc(mql)); } \/\/recursion :(\n\t    static object(mql) {\n\t        const res = {};\n\t        for (const key in mql) {\n\t            \/\/@ts-ignore\n\t            res[key] = autoCalc(mql[key]);\n\t        }\n\t        return res;\n\t    }\n\t}\n\tfunction autoCalc(mql) {\n\t    const type = getType(mql);\n\t    if (type === Types.mediaQueryList)\n\t        return Calc.inline(mql);\n\t    \/\/@ts-ignore\n\t    if (type === Types.array)\n\t        return Calc.array(mql);\n\t    \/\/@ts-ignore\n\t    if (type === Types.object)\n\t        return Calc.object(mql);\n\t}\n\n\t\/* eslint-disable @typescript-eslint\/ban-ts-comment *\/\n\tclass MQL {\n\t    static get(query) { return window.matchMedia(query); }\n\t    static inline(query) { return MQL.get(query); }\n\t    \/\/@ts-ignore\n\t    static array(queries) { return queries.map(query => autoMQL(query)); } \/\/recursion :(\n\t    static object(query) {\n\t        const res = {};\n\t        for (const key in query) {\n\t            \/\/@ts-ignore\n\t            res[key] = autoMQL(query[key]);\n\t        }\n\t        return res;\n\t    }\n\t}\n\tfunction autoMQL(query) {\n\t    const type = getType(query);\n\t    \/\/@ts-ignore\n\t    if (type === Types.string)\n\t        return MQL.inline(query);\n\t    \/\/@ts-ignore\n\t    if (type === Types.array)\n\t        return MQL.array(query);\n\t    \/\/@ts-ignore\n\t    if (type === Types.object)\n\t        return MQL.object(query);\n\t}\n\n\t\/* eslint-disable @typescript-eslint\/no-empty-function *\/\n\t\/* eslint-disable @typescript-eslint\/ban-ts-comment *\/\n\tvar MQLEventMethods;\n\t(function (MQLEventMethods) {\n\t    MQLEventMethods[\"add\"] = \"addEventListener\";\n\t    MQLEventMethods[\"remove\"] = \"removeEventListener\";\n\t})(MQLEventMethods || (MQLEventMethods = {}));\n\tclass MQLEvent {\n\t    static inline(item, handler = () => { }, method = MQLEventMethods.add) {\n\t        (item && item[method]) && item[method]('change', handler);\n\t    }\n\t    static array(arr, handler = () => { }, method = MQLEventMethods.add) {\n\t        \/\/@ts-ignore\n\t        arr.flat(Infinity).forEach(item => autoMQLEvent(item, handler, method));\n\t    }\n\t    static object(obj, handler = () => { }, method = MQLEventMethods.add) {\n\t        for (const key in obj) {\n\t            autoMQLEvent(obj[key], handler, method);\n\t        }\n\t    }\n\t}\n\tfunction autoMQLEvent(mql, handler = () => { }, method = MQLEventMethods.add) {\n\t    const type = getType(mql);\n\t    if (type === Types.mediaQueryList)\n\t        return MQLEvent.inline(mql, handler, method);\n\t    \/\/@ts-ignore\n\t    if (type === Types.array)\n\t        return MQLEvent.array(mql, handler, method);\n\t    \/\/@ts-ignore\n\t    if (type === Types.object)\n\t        return MQLEvent.object(mql, handler, method);\n\t}\n\n\t\/* eslint-disable @typescript-eslint\/no-empty-function *\/\n\tfunction mediaStore(query) {\n\t    if (typeof window === \"undefined\")\n\t        return { ...writable(undefined), destroy: () => { } };\n\t    const { subscribe, set } = writable(undefined);\n\t    \/\/ eslint-disable-next-line @typescript-eslint\/ban-ts-comment\n\t    \/\/@ts-ignore\n\t    const mql = autoMQL(query);\n\t    const handleChange = () => set(autoCalc(mql));\n\t    handleChange();\n\t    autoMQLEvent(mql, handleChange);\n\t    return {\n\t        subscribe,\n\t        destroy() {\n\t            autoMQLEvent(mql, handleChange, MQLEventMethods.remove);\n\t        }\n\t    };\n\t}\n\n\t\/* node_modules\\svelte-media-queries\\components\\MediaQuery.svelte generated by Svelte v4.2.0 *\/\n\n\tconst get_default_slot_changes = dirty => ({\n\t\tmatches: dirty & \/*matches*\/ 1,\n\t\tmatchesArray: dirty & \/*matchesArray*\/ 2\n\t});\n\n\tconst get_default_slot_context = ctx => ({\n\t\tmatches: \/*matches*\/ ctx[0],\n\t\tmatchesArray: \/*matchesArray*\/ ctx[1]\n\t});\n\n\tfunction create_fragment$f(ctx) {\n\t\tlet current;\n\t\tconst default_slot_template = \/*#slots*\/ ctx[7].default;\n\t\tconst default_slot = create_slot(default_slot_template, ctx, \/*$$scope*\/ ctx[6], get_default_slot_context);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tif (default_slot) default_slot.c();\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tdefault_slot.m(target, anchor);\n\t\t\t\t}\n\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tif (default_slot.p && (!current || dirty & \/*$$scope, matches, matchesArray*\/ 67)) {\n\t\t\t\t\t\tupdate_slot_base(\n\t\t\t\t\t\t\tdefault_slot,\n\t\t\t\t\t\t\tdefault_slot_template,\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\/*$$scope*\/ ctx[6],\n\t\t\t\t\t\t\t!current\n\t\t\t\t\t\t\t? get_all_dirty_from_scope(\/*$$scope*\/ ctx[6])\n\t\t\t\t\t\t\t: get_slot_changes(default_slot_template, \/*$$scope*\/ ctx[6], dirty, get_default_slot_changes),\n\t\t\t\t\t\t\tget_default_slot_context\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(default_slot, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(default_slot, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (default_slot) default_slot.d(detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tconst createMediaStore = mediaStore;\n\n\tfunction instance$e($$self, $$props, $$invalidate) {\n\t\tlet $store,\n\t\t\t$$unsubscribe_store = noop,\n\t\t\t$$subscribe_store = () => ($$unsubscribe_store(), $$unsubscribe_store = subscribe(store, $$value => $$invalidate(5, $store = $$value)), store);\n\n\t\t$$self.$$.on_destroy.push(() => $$unsubscribe_store());\n\t\tlet { $$slots: slots = {}, $$scope } = $$props;\n\t\tlet { query = '' } = $$props;\n\t\tlet { matches = false } = $$props;\n\t\tlet { matchesArray = [] } = $$props;\n\t\tlet { matchesObject = {} } = $$props;\n\t\tlet store;\n\n\t\tconst updateMatches = (...watches) => {\n\t\t\tif (query) {\n\t\t\t\t$$invalidate(1, matchesArray = Array.isArray($store) ? $store : []);\n\t\t\t\t$$invalidate(3, matchesObject = getType($store) === Types.object ? $store : {});\n\n\t\t\t\t$$invalidate(0, matches = $store ?? (getType(query) === Types.array\n\t\t\t\t? []\n\t\t\t\t: getType(query) === Types.object ? {} : false));\n\t\t\t} else {\n\t\t\t\t$$invalidate(0, matches = false);\n\t\t\t\t$$invalidate(1, matchesArray = []);\n\t\t\t}\n\t\t};\n\n\t\tconst start = () => {\n\t\t\t$$subscribe_store($$invalidate(2, store = createMediaStore(query)));\n\t\t\tupdateMatches();\n\t\t};\n\n\t\tconst destroy = () => {\n\t\t\tupdateMatches();\n\t\t\tstore?.destroy;\n\t\t};\n\n\t\tconst update = (...watchers) => {\n\t\t\tdestroy();\n\t\t\tquery && start();\n\t\t};\n\n\t\tonMount(() => {\n\t\t\tstart();\n\t\t});\n\n\t\tonDestroy(() => {\n\t\t\tdestroy();\n\t\t});\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('query' in $$props) $$invalidate(4, query = $$props.query);\n\t\t\tif ('matches' in $$props) $$invalidate(0, matches = $$props.matches);\n\t\t\tif ('matchesArray' in $$props) $$invalidate(1, matchesArray = $$props.matchesArray);\n\t\t\tif ('matchesObject' in $$props) $$invalidate(3, matchesObject = $$props.matchesObject);\n\t\t\tif ('$$scope' in $$props) $$invalidate(6, $$scope = $$props.$$scope);\n\t\t};\n\n\t\t$$self.$$.update = () => {\n\t\t\tif ($$self.$$.dirty & \/*query*\/ 16) {\n\t\t\t\tupdate(query);\n\t\t\t}\n\n\t\t\tif ($$self.$$.dirty & \/*$store*\/ 32) {\n\t\t\t\tupdateMatches($store);\n\t\t\t}\n\t\t};\n\n\t\treturn [matches, matchesArray, store, matchesObject, query, $store, $$scope, slots];\n\t}\n\n\tclass MediaQuery extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(this, options, instance$e, create_fragment$f, safe_not_equal, {\n\t\t\t\tquery: 4,\n\t\t\t\tmatches: 0,\n\t\t\t\tmatchesArray: 1,\n\t\t\t\tmatchesObject: 3\n\t\t\t});\n\t\t}\n\n\t\tget query() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset query(query) {\n\t\t\tthis.$$set({ query });\n\t\t\tflush();\n\t\t}\n\n\t\tget matches() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset matches(matches) {\n\t\t\tthis.$$set({ matches });\n\t\t\tflush();\n\t\t}\n\n\t\tget matchesArray() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset matchesArray(matchesArray) {\n\t\t\tthis.$$set({ matchesArray });\n\t\t\tflush();\n\t\t}\n\n\t\tget matchesObject() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset matchesObject(matchesObject) {\n\t\t\tthis.$$set({ matchesObject });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(MediaQuery, {\"query\":{},\"matches\":{\"type\":\"Boolean\"},\"matchesArray\":{},\"matchesObject\":{}}, [\"default\"], [], true);\n\n\t\/* src\\components\\ui\\container.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$d(target) {\n\t\tappend_styles(target, \"svelte-1x8ev4b\", \".container.svelte-1x8ev4b{display:flex;width:100%;position:relative}.container.wrap.svelte-1x8ev4b{flex-wrap:wrap}.container.fill.svelte-1x8ev4b{height:100%}.container.hug.svelte-1x8ev4b{height:min-content}.container.s.svelte-1x8ev4b{padding:4px 8px}.container.m.svelte-1x8ev4b{padding:8px 16px}.container.l.svelte-1x8ev4b{padding:16px 32px}.container.horizontal.svelte-1x8ev4b{flex-direction:row}.container.vertical.svelte-1x8ev4b{flex-direction:column}.container.start-H.svelte-1x8ev4b{justify-content:flex-start}.container.end-H.svelte-1x8ev4b{justify-content:flex-end}.container.center-H.svelte-1x8ev4b{justify-content:center}.container.space-between-H.svelte-1x8ev4b{justify-content:space-between}.container.start-V.svelte-1x8ev4b{align-items:flex-start}.container.end-V.svelte-1x8ev4b{align-items:flex-end}.container.center-V.svelte-1x8ev4b{align-items:center}\");\n\t}\n\n\tfunction create_fragment$e(ctx) {\n\t\tlet div;\n\t\tlet div_class_value;\n\t\tlet div_style_value;\n\t\tlet current;\n\t\tconst default_slot_template = \/*#slots*\/ ctx[11].default;\n\t\tconst default_slot = create_slot(default_slot_template, ctx, \/*$$scope*\/ ctx[10], null);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tif (default_slot) default_slot.c();\n\t\t\t\tattr(div, \"class\", div_class_value = \"container \" + (\/*wrap*\/ ctx[4] ? 'wrap' : '') + \" \" + \/*className*\/ ctx[9] + \" \" + \/*direction*\/ ctx[1] + \" \" + \/*padding*\/ ctx[2] + \" \" + `${\/*alignV*\/ ctx[5]}-V` + \" \" + `${\/*alignH*\/ ctx[6]}-H` + \" \" + \/*heightType*\/ ctx[7] + \" svelte-1x8ev4b\");\n\t\t\t\tattr(div, \"style\", div_style_value = (\/*gap*\/ ctx[3] ? `gap: ${\/*gap*\/ ctx[3]}px;` : \"\") + \/*style*\/ ctx[8]);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tdefault_slot.m(div, null);\n\t\t\t\t}\n\n\t\t\t\t\/*div_binding*\/ ctx[12](div);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tif (default_slot.p && (!current || dirty & \/*$$scope*\/ 1024)) {\n\t\t\t\t\t\tupdate_slot_base(\n\t\t\t\t\t\t\tdefault_slot,\n\t\t\t\t\t\t\tdefault_slot_template,\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\/*$$scope*\/ ctx[10],\n\t\t\t\t\t\t\t!current\n\t\t\t\t\t\t\t? get_all_dirty_from_scope(\/*$$scope*\/ ctx[10])\n\t\t\t\t\t\t\t: get_slot_changes(default_slot_template, \/*$$scope*\/ ctx[10], dirty, null),\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!current || dirty & \/*wrap, className, direction, padding, alignV, alignH, heightType*\/ 758 && div_class_value !== (div_class_value = \"container \" + (\/*wrap*\/ ctx[4] ? 'wrap' : '') + \" \" + \/*className*\/ ctx[9] + \" \" + \/*direction*\/ ctx[1] + \" \" + \/*padding*\/ ctx[2] + \" \" + `${\/*alignV*\/ ctx[5]}-V` + \" \" + `${\/*alignH*\/ ctx[6]}-H` + \" \" + \/*heightType*\/ ctx[7] + \" svelte-1x8ev4b\")) {\n\t\t\t\t\tattr(div, \"class\", div_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (!current || dirty & \/*gap, style*\/ 264 && div_style_value !== (div_style_value = (\/*gap*\/ ctx[3] ? `gap: ${\/*gap*\/ ctx[3]}px;` : \"\") + \/*style*\/ ctx[8])) {\n\t\t\t\t\tattr(div, \"style\", div_style_value);\n\t\t\t\t}\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(default_slot, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(default_slot, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tif (default_slot) default_slot.d(detaching);\n\t\t\t\t\/*div_binding*\/ ctx[12](null);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$d($$self, $$props, $$invalidate) {\n\t\tlet { $$slots: slots = {}, $$scope } = $$props;\n\t\tlet { direction = LayoutDirection.VERTICAL } = $$props;\n\t\tlet { padding = Size.NULL } = $$props;\n\t\tlet { gap = 0 } = $$props;\n\t\tlet { wrap = false } = $$props;\n\t\tlet { alignV = LayoutAlign.START } = $$props;\n\t\tlet { alignH = LayoutAlign.START } = $$props;\n\t\tlet { heightType = LayoutWrapType.NONE } = $$props;\n\t\tlet { style = \"\" } = $$props;\n\t\tlet { elementWrapper = { elem: null } } = $$props;\n\t\tlet { class: className = \"\" } = $$props;\n\n\t\tfunction div_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\telementWrapper.elem = $$value;\n\t\t\t\t$$invalidate(0, elementWrapper);\n\t\t\t});\n\t\t}\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('direction' in $$props) $$invalidate(1, direction = $$props.direction);\n\t\t\tif ('padding' in $$props) $$invalidate(2, padding = $$props.padding);\n\t\t\tif ('gap' in $$props) $$invalidate(3, gap = $$props.gap);\n\t\t\tif ('wrap' in $$props) $$invalidate(4, wrap = $$props.wrap);\n\t\t\tif ('alignV' in $$props) $$invalidate(5, alignV = $$props.alignV);\n\t\t\tif ('alignH' in $$props) $$invalidate(6, alignH = $$props.alignH);\n\t\t\tif ('heightType' in $$props) $$invalidate(7, heightType = $$props.heightType);\n\t\t\tif ('style' in $$props) $$invalidate(8, style = $$props.style);\n\t\t\tif ('elementWrapper' in $$props) $$invalidate(0, elementWrapper = $$props.elementWrapper);\n\t\t\tif ('class' in $$props) $$invalidate(9, className = $$props.class);\n\t\t\tif ('$$scope' in $$props) $$invalidate(10, $$scope = $$props.$$scope);\n\t\t};\n\n\t\treturn [\n\t\t\telementWrapper,\n\t\t\tdirection,\n\t\t\tpadding,\n\t\t\tgap,\n\t\t\twrap,\n\t\t\talignV,\n\t\t\talignH,\n\t\t\theightType,\n\t\t\tstyle,\n\t\t\tclassName,\n\t\t\t$$scope,\n\t\t\tslots,\n\t\t\tdiv_binding\n\t\t];\n\t}\n\n\tclass Container extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(\n\t\t\t\tthis,\n\t\t\t\toptions,\n\t\t\t\tinstance$d,\n\t\t\t\tcreate_fragment$e,\n\t\t\t\tsafe_not_equal,\n\t\t\t\t{\n\t\t\t\t\tdirection: 1,\n\t\t\t\t\tpadding: 2,\n\t\t\t\t\tgap: 3,\n\t\t\t\t\twrap: 4,\n\t\t\t\t\talignV: 5,\n\t\t\t\t\talignH: 6,\n\t\t\t\t\theightType: 7,\n\t\t\t\t\tstyle: 8,\n\t\t\t\t\telementWrapper: 0,\n\t\t\t\t\tclass: 9\n\t\t\t\t},\n\t\t\t\tadd_css$d\n\t\t\t);\n\t\t}\n\n\t\tget direction() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset direction(direction) {\n\t\t\tthis.$$set({ direction });\n\t\t\tflush();\n\t\t}\n\n\t\tget padding() {\n\t\t\treturn this.$$.ctx[2];\n\t\t}\n\n\t\tset padding(padding) {\n\t\t\tthis.$$set({ padding });\n\t\t\tflush();\n\t\t}\n\n\t\tget gap() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset gap(gap) {\n\t\t\tthis.$$set({ gap });\n\t\t\tflush();\n\t\t}\n\n\t\tget wrap() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset wrap(wrap) {\n\t\t\tthis.$$set({ wrap });\n\t\t\tflush();\n\t\t}\n\n\t\tget alignV() {\n\t\t\treturn this.$$.ctx[5];\n\t\t}\n\n\t\tset alignV(alignV) {\n\t\t\tthis.$$set({ alignV });\n\t\t\tflush();\n\t\t}\n\n\t\tget alignH() {\n\t\t\treturn this.$$.ctx[6];\n\t\t}\n\n\t\tset alignH(alignH) {\n\t\t\tthis.$$set({ alignH });\n\t\t\tflush();\n\t\t}\n\n\t\tget heightType() {\n\t\t\treturn this.$$.ctx[7];\n\t\t}\n\n\t\tset heightType(heightType) {\n\t\t\tthis.$$set({ heightType });\n\t\t\tflush();\n\t\t}\n\n\t\tget style() {\n\t\t\treturn this.$$.ctx[8];\n\t\t}\n\n\t\tset style(style) {\n\t\t\tthis.$$set({ style });\n\t\t\tflush();\n\t\t}\n\n\t\tget elementWrapper() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset elementWrapper(elementWrapper) {\n\t\t\tthis.$$set({ elementWrapper });\n\t\t\tflush();\n\t\t}\n\n\t\tget class() {\n\t\t\treturn this.$$.ctx[9];\n\t\t}\n\n\t\tset class(className) {\n\t\t\tthis.$$set({ class: className });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(Container, {\"direction\":{},\"padding\":{},\"gap\":{},\"wrap\":{\"type\":\"Boolean\"},\"alignV\":{},\"alignH\":{},\"heightType\":{},\"style\":{},\"elementWrapper\":{},\"class\":{}}, [\"default\"], [], true);\n\n\t\/* src\\components\\views\\loadingScreen.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$c(target) {\n\t\tappend_styles(target, \"svelte-1cwhzqa\", \".loading-screen.svelte-1cwhzqa.svelte-1cwhzqa{width:100%;height:100%;position:absolute;top:0px;left:0px;background:var(--background-color);z-index:10;display:flex;justify-content:center;align-items:center}.loading-screen.svelte-1cwhzqa>svg.svelte-1cwhzqa{width:100px;height:100px}\");\n\t}\n\n\tfunction create_fragment$d(ctx) {\n\t\tlet div;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tdiv.innerHTML = `<svg version=\"1.1\" id=\"L9\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 0 0\" xml:space=\"preserve\" class=\"svelte-1cwhzqa\"><path fill=\"#aa3839\" d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"><animateTransform attributeName=\"transform\" attributeType=\"XML\" type=\"rotate\" dur=\"1s\" from=\"0 50 50\" to=\"360 50 50\" repeatCount=\"indefinite\"><\/animateTransform><\/path><\/svg>`;\n\t\t\t\tattr(div, \"class\", \"loading-screen svelte-1cwhzqa\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t},\n\t\t\tp: noop,\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tclass LoadingScreen extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, null, create_fragment$d, safe_not_equal, {}, add_css$c);\n\t\t}\n\t}\n\n\tcreate_custom_element(LoadingScreen, {}, [], [], true);\n\n\t\/* src\\components\\layouts\\leftPanel.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$b(target) {\n\t\tappend_styles(target, \"svelte-1y9lu5f\", \".container.leftPanel{scrollbar-width:thin;position:unset}@media screen and (max-width: 880px){.container.leftPanel{width:100%;flex-grow:0;top:0px;position:absolute;z-index:10;background:var(--background-color);box-shadow:0 -3px 0 0 rgba(24, 24, 24, 0.2) inset, 0 2px 10px rgba(0, 0, 0, 0.2)}}.preview.svelte-1y9lu5f.svelte-1y9lu5f{width:80%;max-width:580px;height:480px;display:flex;justify-content:center;align-items:center}@media screen and (max-width: 880px){.preview.svelte-1y9lu5f.svelte-1y9lu5f{width:270px;height:240px}}.preview-inner.svelte-1y9lu5f.svelte-1y9lu5f{position:relative;width:100%;height:100%}.preview-inner.svelte-1y9lu5f>img.svelte-1y9lu5f{position:absolute;width:100%;top:50%;left:50%;transform:translate(-50%, -50%)}.drop-shadow_wrapper.svelte-1y9lu5f.svelte-1y9lu5f{width:50px;height:100%;position:absolute;right:0px;top:0px}.drop-shadow_wrapper.svelte-1y9lu5f.svelte-1y9lu5f::after{content:\\\" \\\";display:block;position:relative;z-index:2;width:100%;height:100%;background:linear-gradient(to bottom, var(--background-color) 0%, transparent 20%, transparent 80%, var(--background-color) 100%)}@media screen and (max-width: 880px){.drop-shadow_wrapper.svelte-1y9lu5f.svelte-1y9lu5f{display:none}}\");\n\t}\n\n\t\/\/ (45:0) <Container      class=\"leftPanel\"      alignV={LayoutAlign.CENTER}      alignH={LayoutAlign.CENTER}      heightType={$isMobile ? LayoutWrapType.NONE : LayoutWrapType.FILL}      elementWrapper={leftPanel}  >\n\tfunction create_default_slot$5(ctx) {\n\t\tlet div1;\n\t\tlet div0;\n\t\tlet img0;\n\t\tlet img0_src_value;\n\t\tlet t0;\n\t\tlet img1;\n\t\tlet img1_src_value;\n\t\tlet t1;\n\t\tlet img2;\n\t\tlet img2_src_value;\n\t\tlet t2;\n\t\tlet div2;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv1 = element(\"div\");\n\t\t\t\tdiv0 = element(\"div\");\n\t\t\t\timg0 = element(\"img\");\n\t\t\t\tt0 = space();\n\t\t\t\timg1 = element(\"img\");\n\t\t\t\tt1 = space();\n\t\t\t\timg2 = element(\"img\");\n\t\t\t\tt2 = space();\n\t\t\t\tdiv2 = element(\"div\");\n\t\t\t\tif (!src_url_equal(img0.src, img0_src_value = \/*texture*\/ ctx[1]?.src || \"\")) attr(img0, \"src\", img0_src_value);\n\t\t\t\tattr(img0, \"alt\", \"texture\");\n\t\t\t\tattr(img0, \"class\", \"svelte-1y9lu5f\");\n\t\t\t\tif (!src_url_equal(img1.src, img1_src_value = \/*color*\/ ctx[2]?.src || \"\")) attr(img1, \"src\", img1_src_value);\n\t\t\t\tattr(img1, \"alt\", \"color\");\n\t\t\t\tset_style(img1, \"mix-blend-mode\", \"multiply\");\n\t\t\t\tset_style(img1, \"transform\", \"translate(-50%, -50%) scale(0.99)\");\n\t\t\t\tattr(img1, \"class\", \"svelte-1y9lu5f\");\n\t\t\t\tif (!src_url_equal(img2.src, img2_src_value = \/*motive*\/ ctx[0]?.src || \"\")) attr(img2, \"src\", img2_src_value);\n\t\t\t\tattr(img2, \"alt\", \"h\u00f6rmann gate\");\n\t\t\t\tattr(img2, \"class\", \"svelte-1y9lu5f\");\n\t\t\t\tattr(div0, \"class\", \"preview-inner svelte-1y9lu5f\");\n\t\t\t\tattr(div1, \"class\", \"preview svelte-1y9lu5f\");\n\t\t\t\tattr(div2, \"class\", \"drop-shadow_wrapper svelte-1y9lu5f\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div1, anchor);\n\t\t\t\tappend(div1, div0);\n\t\t\t\tappend(div0, img0);\n\t\t\t\tappend(div0, t0);\n\t\t\t\tappend(div0, img1);\n\t\t\t\tappend(div0, t1);\n\t\t\t\tappend(div0, img2);\n\t\t\t\tinsert(target, t2, anchor);\n\t\t\t\tinsert(target, div2, anchor);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*texture*\/ 2 && !src_url_equal(img0.src, img0_src_value = \/*texture*\/ ctx[1]?.src || \"\")) {\n\t\t\t\t\tattr(img0, \"src\", img0_src_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*color*\/ 4 && !src_url_equal(img1.src, img1_src_value = \/*color*\/ ctx[2]?.src || \"\")) {\n\t\t\t\t\tattr(img1, \"src\", img1_src_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*motive*\/ 1 && !src_url_equal(img2.src, img2_src_value = \/*motive*\/ ctx[0]?.src || \"\")) {\n\t\t\t\t\tattr(img2, \"src\", img2_src_value);\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div1);\n\t\t\t\t\tdetach(t2);\n\t\t\t\t\tdetach(div2);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$c(ctx) {\n\t\tlet container;\n\t\tlet current;\n\n\t\tcontainer = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tclass: \"leftPanel\",\n\t\t\t\t\talignV: LayoutAlign.CENTER,\n\t\t\t\t\talignH: LayoutAlign.CENTER,\n\t\t\t\t\theightType: \/*$isMobile*\/ ctx[4]\n\t\t\t\t\t? LayoutWrapType.NONE\n\t\t\t\t\t: LayoutWrapType.FILL,\n\t\t\t\t\telementWrapper: \/*leftPanel*\/ ctx[3],\n\t\t\t\t\t$$slots: { default: [create_default_slot$5] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(container.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(container, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst container_changes = {};\n\n\t\t\t\tif (dirty & \/*$isMobile*\/ 16) container_changes.heightType = \/*$isMobile*\/ ctx[4]\n\t\t\t\t? LayoutWrapType.NONE\n\t\t\t\t: LayoutWrapType.FILL;\n\n\t\t\t\tif (dirty & \/*leftPanel*\/ 8) container_changes.elementWrapper = \/*leftPanel*\/ ctx[3];\n\n\t\t\t\tif (dirty & \/*$$scope, motive, color, texture*\/ 519) {\n\t\t\t\t\tcontainer_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer.$set(container_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(container.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(container.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(container, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$c($$self, $$props, $$invalidate) {\n\t\tlet $configService;\n\t\tlet $configStore;\n\t\tlet $isMobile;\n\t\tcomponent_subscribe($$self, configService, $$value => $$invalidate(5, $configService = $$value));\n\t\tcomponent_subscribe($$self, configStore, $$value => $$invalidate(6, $configStore = $$value));\n\t\tcomponent_subscribe($$self, isMobile, $$value => $$invalidate(4, $isMobile = $$value));\n\t\tlet motive;\n\t\tlet texture;\n\t\tlet color;\n\t\tlet leftPanel = { elem: null };\n\n\t\tconst updateMobilePos = () => {\n\t\t\tif (!$isMobile) {\n\t\t\t\t$$invalidate(3, leftPanel.elem.style.top = \"0px\", leftPanel);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst configuratorOffset = document.querySelector(\".tpt_configurator\").getBoundingClientRect();\n\t\t\tif (configuratorOffset.y > 0) $$invalidate(3, leftPanel.elem.style.top = \"0px\", leftPanel); else $$invalidate(3, leftPanel.elem.style.top = `${configuratorOffset.y * -1}px`, leftPanel);\n\t\t};\n\n\t\tonMount(() => {\n\t\t\twindow.addEventListener(\"scroll\", updateMobilePos);\n\t\t\twindow.addEventListener(\"resize\", updateMobilePos);\n\t\t});\n\n\t\tconst getMotive = () => {\n\t\t\tvar _a, _b, _c;\n\n\t\t\t$$invalidate(0, motive = (_a = $configService.get(ConfiguratorKey.MOTIVE).find(i => i.id === $configStore.motive)) === null || _a === void 0\n\t\t\t? void 0\n\t\t\t: _a.preloadedImage);\n\n\t\t\t$$invalidate(1, texture = (_b = $configService.get(ConfiguratorKey.TEXTURE).find(i => i.id === $configStore.texture)) === null || _b === void 0\n\t\t\t? void 0\n\t\t\t: _b.preloadedImage);\n\n\t\t\t$$invalidate(2, color = (_c = $configService.get(ConfiguratorKey.COLOR).find(i => i.id === $configStore.color)) === null || _c === void 0\n\t\t\t? void 0\n\t\t\t: _c.preloadedImage);\n\t\t};\n\n\t\t$$self.$$.update = () => {\n\t\t\tif ($$self.$$.dirty & \/*$configStore, $configService*\/ 96) {\n\t\t\t\t{\n\t\t\t\t\tgetMotive();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn [motive, texture, color, leftPanel, $isMobile, $configService, $configStore];\n\t}\n\n\tclass LeftPanel extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$c, create_fragment$c, safe_not_equal, {}, add_css$b);\n\t\t}\n\t}\n\n\tcreate_custom_element(LeftPanel, {}, [], [], true);\n\n\t\/* src\\components\\ui\\button.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$a(target) {\n\t\tappend_styles(target, \"svelte-114ute5\", \".btn.svelte-114ute5{width:100%;height:100%;border:none;border-radius:4px}.btn.primary.svelte-114ute5{color:var(--background-color);background:var(--primary);border:1px solid var(--primary)}.btn.secondary.svelte-114ute5{color:var(--background-color);background:var(--secondary);border:1px solid var(--secondary)}.btn_wrapper.svelte-114ute5{width:100%;height:52px;display:flex;transition:0.3s}.btn_wrapper.svelte-114ute5:hover{transform:translate(0px, -2px);box-shadow:0 -3px 0 0 rgba(24, 24, 24, 0.2) inset, 0 2px 10px rgba(0, 0, 0, 0.2)}\");\n\t}\n\n\tfunction create_fragment$b(ctx) {\n\t\tlet div;\n\t\tlet button;\n\t\tlet t;\n\t\tlet button_type_value;\n\t\tlet button_class_value;\n\t\tlet mounted;\n\t\tlet dispose;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tbutton = element(\"button\");\n\t\t\t\tt = text(\/*label*\/ ctx[2]);\n\t\t\t\tattr(button, \"form\", \/*form*\/ ctx[5]);\n\t\t\t\tattr(button, \"type\", button_type_value = \/*submit*\/ ctx[4] ? \"submit\" : \"button\");\n\n\t\t\t\tattr(button, \"class\", button_class_value = \"btn \" + (\/*type*\/ ctx[3] === LayoutPriority.PRIMARY\n\t\t\t\t? 'primary'\n\t\t\t\t: 'secondary') + \" svelte-114ute5\");\n\n\t\t\t\tattr(div, \"class\", \"btn_wrapper svelte-114ute5\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, button);\n\t\t\t\tappend(button, t);\n\n\t\t\t\tif (!mounted) {\n\t\t\t\t\tdispose = [\n\t\t\t\t\t\tlisten(button, \"click\", function () {\n\t\t\t\t\t\t\tif (is_function(\/*onClick*\/ ctx[0])) \/*onClick*\/ ctx[0].apply(this, arguments);\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tlisten(button, \"submit\", function () {\n\t\t\t\t\t\t\tif (is_function(\/*onSubmit*\/ ctx[1])) \/*onSubmit*\/ ctx[1].apply(this, arguments);\n\t\t\t\t\t\t})\n\t\t\t\t\t];\n\n\t\t\t\t\tmounted = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(new_ctx, [dirty]) {\n\t\t\t\tctx = new_ctx;\n\t\t\t\tif (dirty & \/*label*\/ 4) set_data(t, \/*label*\/ ctx[2]);\n\n\t\t\t\tif (dirty & \/*form*\/ 32) {\n\t\t\t\t\tattr(button, \"form\", \/*form*\/ ctx[5]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*submit*\/ 16 && button_type_value !== (button_type_value = \/*submit*\/ ctx[4] ? \"submit\" : \"button\")) {\n\t\t\t\t\tattr(button, \"type\", button_type_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*type*\/ 8 && button_class_value !== (button_class_value = \"btn \" + (\/*type*\/ ctx[3] === LayoutPriority.PRIMARY\n\t\t\t\t? 'primary'\n\t\t\t\t: 'secondary') + \" svelte-114ute5\")) {\n\t\t\t\t\tattr(button, \"class\", button_class_value);\n\t\t\t\t}\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tmounted = false;\n\t\t\t\trun_all(dispose);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$b($$self, $$props, $$invalidate) {\n\t\tlet { onClick = () => {\n\t\t\t\n\t\t} } = $$props;\n\n\t\tlet { onSubmit = () => {\n\t\t\t\n\t\t} } = $$props;\n\n\t\tlet { label = \"Invalid label\" } = $$props;\n\t\tlet { type = LayoutPriority.SECONDARY } = $$props;\n\t\tlet { submit = false } = $$props;\n\t\tlet { form = \"\" } = $$props;\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('onClick' in $$props) $$invalidate(0, onClick = $$props.onClick);\n\t\t\tif ('onSubmit' in $$props) $$invalidate(1, onSubmit = $$props.onSubmit);\n\t\t\tif ('label' in $$props) $$invalidate(2, label = $$props.label);\n\t\t\tif ('type' in $$props) $$invalidate(3, type = $$props.type);\n\t\t\tif ('submit' in $$props) $$invalidate(4, submit = $$props.submit);\n\t\t\tif ('form' in $$props) $$invalidate(5, form = $$props.form);\n\t\t};\n\n\t\treturn [onClick, onSubmit, label, type, submit, form];\n\t}\n\n\tclass Button extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(\n\t\t\t\tthis,\n\t\t\t\toptions,\n\t\t\t\tinstance$b,\n\t\t\t\tcreate_fragment$b,\n\t\t\t\tsafe_not_equal,\n\t\t\t\t{\n\t\t\t\t\tonClick: 0,\n\t\t\t\t\tonSubmit: 1,\n\t\t\t\t\tlabel: 2,\n\t\t\t\t\ttype: 3,\n\t\t\t\t\tsubmit: 4,\n\t\t\t\t\tform: 5\n\t\t\t\t},\n\t\t\t\tadd_css$a\n\t\t\t);\n\t\t}\n\n\t\tget onClick() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset onClick(onClick) {\n\t\t\tthis.$$set({ onClick });\n\t\t\tflush();\n\t\t}\n\n\t\tget onSubmit() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset onSubmit(onSubmit) {\n\t\t\tthis.$$set({ onSubmit });\n\t\t\tflush();\n\t\t}\n\n\t\tget label() {\n\t\t\treturn this.$$.ctx[2];\n\t\t}\n\n\t\tset label(label) {\n\t\t\tthis.$$set({ label });\n\t\t\tflush();\n\t\t}\n\n\t\tget type() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset type(type) {\n\t\t\tthis.$$set({ type });\n\t\t\tflush();\n\t\t}\n\n\t\tget submit() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset submit(submit) {\n\t\t\tthis.$$set({ submit });\n\t\t\tflush();\n\t\t}\n\n\t\tget form() {\n\t\t\treturn this.$$.ctx[5];\n\t\t}\n\n\t\tset form(form) {\n\t\t\tthis.$$set({ form });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(Button, {\"onClick\":{},\"onSubmit\":{},\"label\":{},\"type\":{},\"submit\":{\"type\":\"Boolean\"},\"form\":{}}, [], [], true);\n\n\t\/* src\\components\\ui\\progressIndicator.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$9(target) {\n\t\tappend_styles(target, \"svelte-5kdqn5\", \".progress_indicator.svelte-5kdqn5{padding:0px;margin:0px;width:100%;height:40px;display:flex;justify-content:center;list-style-type:none;gap:16px}.progress_indicator-item.svelte-5kdqn5{width:6px;height:6px;background:var(--faded-text-color);border-radius:50%}.progress_indicator-item.-active.svelte-5kdqn5{width:8px;height:8px;background:var(--primary)}\");\n\t}\n\n\tfunction get_each_context$1(ctx, list, i) {\n\t\tconst child_ctx = ctx.slice();\n\t\tchild_ctx[2] = list[i];\n\t\tchild_ctx[4] = i;\n\t\treturn child_ctx;\n\t}\n\n\t\/\/ (7:4) {#each Array(numOfOptions) as _, index (index)}\n\tfunction create_each_block$1(key_1, ctx) {\n\t\tlet li;\n\t\tlet li_class_value;\n\n\t\treturn {\n\t\t\tkey: key_1,\n\t\t\tfirst: null,\n\t\t\tc() {\n\t\t\t\tli = element(\"li\");\n\n\t\t\t\tattr(li, \"class\", li_class_value = \"progress_indicator-item \" + (\/*index*\/ ctx[4] === \/*activeIdx*\/ ctx[0]\n\t\t\t\t? '-active'\n\t\t\t\t: '') + \" svelte-5kdqn5\");\n\n\t\t\t\tthis.first = li;\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, li, anchor);\n\t\t\t},\n\t\t\tp(new_ctx, dirty) {\n\t\t\t\tctx = new_ctx;\n\n\t\t\t\tif (dirty & \/*numOfOptions, activeIdx*\/ 3 && li_class_value !== (li_class_value = \"progress_indicator-item \" + (\/*index*\/ ctx[4] === \/*activeIdx*\/ ctx[0]\n\t\t\t\t? '-active'\n\t\t\t\t: '') + \" svelte-5kdqn5\")) {\n\t\t\t\t\tattr(li, \"class\", li_class_value);\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(li);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$a(ctx) {\n\t\tlet ul;\n\t\tlet each_blocks = [];\n\t\tlet each_1_lookup = new Map();\n\t\tlet each_value = ensure_array_like(Array(\/*numOfOptions*\/ ctx[1]));\n\t\tconst get_key = ctx => \/*index*\/ ctx[4];\n\n\t\tfor (let i = 0; i < each_value.length; i += 1) {\n\t\t\tlet child_ctx = get_each_context$1(ctx, each_value, i);\n\t\t\tlet key = get_key(child_ctx);\n\t\t\teach_1_lookup.set(key, each_blocks[i] = create_each_block$1(key, child_ctx));\n\t\t}\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tul = element(\"ul\");\n\n\t\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\t\teach_blocks[i].c();\n\t\t\t\t}\n\n\t\t\t\tattr(ul, \"class\", \"progress_indicator svelte-5kdqn5\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, ul, anchor);\n\n\t\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\t\tif (each_blocks[i]) {\n\t\t\t\t\t\teach_blocks[i].m(ul, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (dirty & \/*Array, numOfOptions, activeIdx*\/ 3) {\n\t\t\t\t\teach_value = ensure_array_like(Array(\/*numOfOptions*\/ ctx[1]));\n\t\t\t\t\teach_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, ul, destroy_block, create_each_block$1, null, get_each_context$1);\n\t\t\t\t}\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(ul);\n\t\t\t\t}\n\n\t\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\t\teach_blocks[i].d();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$a($$self, $$props, $$invalidate) {\n\t\tlet { activeIdx = 0 } = $$props;\n\t\tlet { numOfOptions = 0 } = $$props;\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('activeIdx' in $$props) $$invalidate(0, activeIdx = $$props.activeIdx);\n\t\t\tif ('numOfOptions' in $$props) $$invalidate(1, numOfOptions = $$props.numOfOptions);\n\t\t};\n\n\t\treturn [activeIdx, numOfOptions];\n\t}\n\n\tclass ProgressIndicator extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$a, create_fragment$a, safe_not_equal, { activeIdx: 0, numOfOptions: 1 }, add_css$9);\n\t\t}\n\n\t\tget activeIdx() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset activeIdx(activeIdx) {\n\t\t\tthis.$$set({ activeIdx });\n\t\t\tflush();\n\t\t}\n\n\t\tget numOfOptions() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset numOfOptions(numOfOptions) {\n\t\t\tthis.$$set({ numOfOptions });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(ProgressIndicator, {\"activeIdx\":{},\"numOfOptions\":{}}, [], [], true);\n\n\t\/* src\\components\\ui\\textInput.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$8(target) {\n\t\tappend_styles(target, \"svelte-23fnvq\", \".text_input-wrapper.svelte-23fnvq{display:flex;flex-direction:column;width:100%}.text_input-label.svelte-23fnvq{font-weight:600;margin-bottom:8px;color:var(--text-color)}.text_input-label.-required.svelte-23fnvq::after{content:\\\"*\\\";color:var(--primary);font-size:17px;line-height:10px}.text_input-input.svelte-23fnvq{width:100%;height:52px;border:1px solid #dfdfdf;outline:none;border-radius:5px;text-align:right;padding-right:20px;font-weight:600;color:var(--faded-text-color);box-sizing:border-box;transition:0.3s all ease}.text_input-input.svelte-23fnvq:focus{box-shadow:5px 0 0 #aa3839 inset, 0 2px 10px rgba(0, 0, 0, 0.2) !important}input.svelte-23fnvq::-webkit-outer-spin-button,input.svelte-23fnvq::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].svelte-23fnvq{-moz-appearance:textfield}\");\n\t}\n\n\t\/\/ (31:4) {:else}\n\tfunction create_else_block$2(ctx) {\n\t\tlet input_1;\n\t\tlet mounted;\n\t\tlet dispose;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tinput_1 = element(\"input\");\n\t\t\t\tattr(input_1, \"class\", \"text_input-input svelte-23fnvq\");\n\t\t\t\tattr(input_1, \"autocomplete\", \/*autocomplete*\/ ctx[6]);\n\t\t\t\tinput_1.value = \/*value*\/ ctx[0];\n\t\t\t\tattr(input_1, \"type\", \/*type*\/ ctx[3]);\n\t\t\t\tattr(input_1, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\tattr(input_1, \"pattern\", \/*pattern*\/ ctx[4]);\n\t\t\t\tinput_1.required = \/*required*\/ ctx[5];\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, input_1, anchor);\n\t\t\t\t\/*input_1_binding*\/ ctx[12](input_1);\n\n\t\t\t\tif (!mounted) {\n\t\t\t\t\tdispose = listen(input_1, \"change\", \/*change_handler_1*\/ ctx[13]);\n\t\t\t\t\tmounted = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*autocomplete*\/ 64) {\n\t\t\t\t\tattr(input_1, \"autocomplete\", \/*autocomplete*\/ ctx[6]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*value*\/ 1 && input_1.value !== \/*value*\/ ctx[0]) {\n\t\t\t\t\tinput_1.value = \/*value*\/ ctx[0];\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*type*\/ 8) {\n\t\t\t\t\tattr(input_1, \"type\", \/*type*\/ ctx[3]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*id*\/ 4) {\n\t\t\t\t\tattr(input_1, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*pattern*\/ 16) {\n\t\t\t\t\tattr(input_1, \"pattern\", \/*pattern*\/ ctx[4]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*required*\/ 32) {\n\t\t\t\t\tinput_1.required = \/*required*\/ ctx[5];\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(input_1);\n\t\t\t\t}\n\n\t\t\t\t\/*input_1_binding*\/ ctx[12](null);\n\t\t\t\tmounted = false;\n\t\t\t\tdispose();\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (17:4) {#if type === \"textarea\"}\n\tfunction create_if_block$4(ctx) {\n\t\tlet textarea;\n\t\tlet mounted;\n\t\tlet dispose;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\ttextarea = element(\"textarea\");\n\t\t\t\tattr(textarea, \"class\", \"text_input-input svelte-23fnvq\");\n\t\t\t\tattr(textarea, \"autocomplete\", \/*autocomplete*\/ ctx[6]);\n\t\t\t\ttextarea.value = \/*value*\/ ctx[0];\n\t\t\t\tattr(textarea, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\ttextarea.required = \/*required*\/ ctx[5];\n\t\t\t\tattr(textarea, \"minlength\", \/*min*\/ ctx[7]);\n\t\t\t\tattr(textarea, \"maxlength\", \/*max*\/ ctx[8]);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, textarea, anchor);\n\t\t\t\t\/*textarea_binding*\/ ctx[10](textarea);\n\n\t\t\t\tif (!mounted) {\n\t\t\t\t\tdispose = listen(textarea, \"change\", \/*change_handler*\/ ctx[11]);\n\t\t\t\t\tmounted = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*autocomplete*\/ 64) {\n\t\t\t\t\tattr(textarea, \"autocomplete\", \/*autocomplete*\/ ctx[6]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*value*\/ 1) {\n\t\t\t\t\ttextarea.value = \/*value*\/ ctx[0];\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*id*\/ 4) {\n\t\t\t\t\tattr(textarea, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*required*\/ 32) {\n\t\t\t\t\ttextarea.required = \/*required*\/ ctx[5];\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*min*\/ 128) {\n\t\t\t\t\tattr(textarea, \"minlength\", \/*min*\/ ctx[7]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*max*\/ 256) {\n\t\t\t\t\tattr(textarea, \"maxlength\", \/*max*\/ ctx[8]);\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(textarea);\n\t\t\t\t}\n\n\t\t\t\t\/*textarea_binding*\/ ctx[10](null);\n\t\t\t\tmounted = false;\n\t\t\t\tdispose();\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$9(ctx) {\n\t\tlet div;\n\t\tlet label_1;\n\t\tlet t0;\n\t\tlet label_1_class_value;\n\t\tlet t1;\n\n\t\tfunction select_block_type(ctx, dirty) {\n\t\t\tif (\/*type*\/ ctx[3] === \"textarea\") return create_if_block$4;\n\t\t\treturn create_else_block$2;\n\t\t}\n\n\t\tlet current_block_type = select_block_type(ctx);\n\t\tlet if_block = current_block_type(ctx);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tlabel_1 = element(\"label\");\n\t\t\t\tt0 = text(\/*label*\/ ctx[1]);\n\t\t\t\tt1 = space();\n\t\t\t\tif_block.c();\n\t\t\t\tattr(label_1, \"class\", label_1_class_value = \"text_input-label \" + (\/*required*\/ ctx[5] ? '-required' : '') + \" svelte-23fnvq\");\n\t\t\t\tattr(label_1, \"for\", \/*id*\/ ctx[2]);\n\t\t\t\tattr(div, \"class\", \"text_input-wrapper svelte-23fnvq\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, label_1);\n\t\t\t\tappend(label_1, t0);\n\t\t\t\tappend(div, t1);\n\t\t\t\tif_block.m(div, null);\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (dirty & \/*label*\/ 2) set_data(t0, \/*label*\/ ctx[1]);\n\n\t\t\t\tif (dirty & \/*required*\/ 32 && label_1_class_value !== (label_1_class_value = \"text_input-label \" + (\/*required*\/ ctx[5] ? '-required' : '') + \" svelte-23fnvq\")) {\n\t\t\t\t\tattr(label_1, \"class\", label_1_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*id*\/ 4) {\n\t\t\t\t\tattr(label_1, \"for\", \/*id*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n\t\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t\t} else {\n\t\t\t\t\tif_block.d(1);\n\t\t\t\t\tif_block = current_block_type(ctx);\n\n\t\t\t\t\tif (if_block) {\n\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t\tif_block.m(div, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tif_block.d();\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$9($$self, $$props, $$invalidate) {\n\t\tlet { label = \"Invalid label\" } = $$props;\n\t\tlet { id = `input-text-${Math.random().toString(36).substring(2, 10)}` } = $$props;\n\t\tlet { value = \"\" } = $$props;\n\t\tlet { type = \"text\" } = $$props;\n\t\tlet { pattern = null } = $$props;\n\t\tlet { required = false } = $$props;\n\t\tlet { autocomplete = null } = $$props;\n\t\tlet { min = 0 } = $$props;\n\t\tlet { max = undefined } = $$props;\n\t\tlet input;\n\n\t\tfunction textarea_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tinput = $$value;\n\t\t\t\t$$invalidate(9, input);\n\t\t\t});\n\t\t}\n\n\t\tconst change_handler = event => {\n\t\t\t$$invalidate(0, value = input.value);\n\t\t};\n\n\t\tfunction input_1_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tinput = $$value;\n\t\t\t\t$$invalidate(9, input);\n\t\t\t});\n\t\t}\n\n\t\tconst change_handler_1 = event => {\n\t\t\t$$invalidate(0, value = input.value);\n\t\t};\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('label' in $$props) $$invalidate(1, label = $$props.label);\n\t\t\tif ('id' in $$props) $$invalidate(2, id = $$props.id);\n\t\t\tif ('value' in $$props) $$invalidate(0, value = $$props.value);\n\t\t\tif ('type' in $$props) $$invalidate(3, type = $$props.type);\n\t\t\tif ('pattern' in $$props) $$invalidate(4, pattern = $$props.pattern);\n\t\t\tif ('required' in $$props) $$invalidate(5, required = $$props.required);\n\t\t\tif ('autocomplete' in $$props) $$invalidate(6, autocomplete = $$props.autocomplete);\n\t\t\tif ('min' in $$props) $$invalidate(7, min = $$props.min);\n\t\t\tif ('max' in $$props) $$invalidate(8, max = $$props.max);\n\t\t};\n\n\t\treturn [\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t\tid,\n\t\t\ttype,\n\t\t\tpattern,\n\t\t\trequired,\n\t\t\tautocomplete,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tinput,\n\t\t\ttextarea_binding,\n\t\t\tchange_handler,\n\t\t\tinput_1_binding,\n\t\t\tchange_handler_1\n\t\t];\n\t}\n\n\tclass TextInput extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(\n\t\t\t\tthis,\n\t\t\t\toptions,\n\t\t\t\tinstance$9,\n\t\t\t\tcreate_fragment$9,\n\t\t\t\tsafe_not_equal,\n\t\t\t\t{\n\t\t\t\t\tlabel: 1,\n\t\t\t\t\tid: 2,\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\ttype: 3,\n\t\t\t\t\tpattern: 4,\n\t\t\t\t\trequired: 5,\n\t\t\t\t\tautocomplete: 6,\n\t\t\t\t\tmin: 7,\n\t\t\t\t\tmax: 8\n\t\t\t\t},\n\t\t\t\tadd_css$8\n\t\t\t);\n\t\t}\n\n\t\tget label() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset label(label) {\n\t\t\tthis.$$set({ label });\n\t\t\tflush();\n\t\t}\n\n\t\tget id() {\n\t\t\treturn this.$$.ctx[2];\n\t\t}\n\n\t\tset id(id) {\n\t\t\tthis.$$set({ id });\n\t\t\tflush();\n\t\t}\n\n\t\tget value() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset value(value) {\n\t\t\tthis.$$set({ value });\n\t\t\tflush();\n\t\t}\n\n\t\tget type() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset type(type) {\n\t\t\tthis.$$set({ type });\n\t\t\tflush();\n\t\t}\n\n\t\tget pattern() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset pattern(pattern) {\n\t\t\tthis.$$set({ pattern });\n\t\t\tflush();\n\t\t}\n\n\t\tget required() {\n\t\t\treturn this.$$.ctx[5];\n\t\t}\n\n\t\tset required(required) {\n\t\t\tthis.$$set({ required });\n\t\t\tflush();\n\t\t}\n\n\t\tget autocomplete() {\n\t\t\treturn this.$$.ctx[6];\n\t\t}\n\n\t\tset autocomplete(autocomplete) {\n\t\t\tthis.$$set({ autocomplete });\n\t\t\tflush();\n\t\t}\n\n\t\tget min() {\n\t\t\treturn this.$$.ctx[7];\n\t\t}\n\n\t\tset min(min) {\n\t\t\tthis.$$set({ min });\n\t\t\tflush();\n\t\t}\n\n\t\tget max() {\n\t\t\treturn this.$$.ctx[8];\n\t\t}\n\n\t\tset max(max) {\n\t\t\tthis.$$set({ max });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(TextInput, {\"label\":{},\"id\":{},\"value\":{},\"type\":{},\"pattern\":{},\"required\":{\"type\":\"Boolean\"},\"autocomplete\":{},\"min\":{},\"max\":{}}, [], [], true);\n\n\t\/* src\\components\\views\\titleBar.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$7(target) {\n\t\tappend_styles(target, \"svelte-552kwq\", \".mainTitle_secondary.svelte-552kwq{display:flex;align-items:center;margin-bottom:16px;font-weight:600}.mainTitle_secondary.svelte-552kwq::before{content:\\\" \\\";width:50px;height:2px;display:block;margin-right:8px;background:var(--primary)}h1.svelte-552kwq{font-size:3rem;line-height:3rem;text-transform:uppercase;padding:0px;margin:0px;font-family:\\\"Saira Condensed\\\", Arial, Helvetica, sans-serif}h1.primary.svelte-552kwq{color:var(--primary)}\");\n\t}\n\n\tfunction create_fragment$8(ctx) {\n\t\tlet div;\n\t\tlet span;\n\t\tlet t0_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleSecondary) + \"\";\n\t\tlet t0;\n\t\tlet t1;\n\t\tlet h10;\n\t\tlet t2_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleOne) + \"\";\n\t\tlet t2;\n\t\tlet t3;\n\t\tlet h11;\n\t\tlet t4_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleTwo) + \"\";\n\t\tlet t4;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tspan = element(\"span\");\n\t\t\t\tt0 = text(t0_value);\n\t\t\t\tt1 = space();\n\t\t\t\th10 = element(\"h1\");\n\t\t\t\tt2 = text(t2_value);\n\t\t\t\tt3 = space();\n\t\t\t\th11 = element(\"h1\");\n\t\t\t\tt4 = text(t4_value);\n\t\t\t\tattr(span, \"class\", \"mainTitle_secondary svelte-552kwq\");\n\t\t\t\tattr(h10, \"class\", \"svelte-552kwq\");\n\t\t\t\tattr(h11, \"class\", \"primary svelte-552kwq\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, span);\n\t\t\t\tappend(span, t0);\n\t\t\t\tappend(div, t1);\n\t\t\t\tappend(div, h10);\n\t\t\t\tappend(h10, t2);\n\t\t\t\tappend(div, t3);\n\t\t\t\tappend(div, h11);\n\t\t\t\tappend(h11, t4);\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (dirty & \/*$languageService*\/ 1 && t0_value !== (t0_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleSecondary) + \"\")) set_data(t0, t0_value);\n\t\t\t\tif (dirty & \/*$languageService*\/ 1 && t2_value !== (t2_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleOne) + \"\")) set_data(t2, t2_value);\n\t\t\t\tif (dirty & \/*$languageService*\/ 1 && t4_value !== (t4_value = \/*$languageService*\/ ctx[0].get(UIKey.MainTitleTwo) + \"\")) set_data(t4, t4_value);\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$8($$self, $$props, $$invalidate) {\n\t\tlet $languageService;\n\t\tcomponent_subscribe($$self, languageService, $$value => $$invalidate(0, $languageService = $$value));\n\t\treturn [$languageService];\n\t}\n\n\tclass TitleBar extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$8, create_fragment$8, safe_not_equal, {}, add_css$7);\n\t\t}\n\t}\n\n\tcreate_custom_element(TitleBar, {}, [], [], true);\n\n\t\/* src\\components\\ui\\numberInput.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$6(target) {\n\t\tappend_styles(target, \"svelte-1uafnxz\", \".number_input-wrapper.svelte-1uafnxz{display:flex;flex-direction:column;width:100%;position:relative}.number_input-label.svelte-1uafnxz{font-weight:700;margin-bottom:8px;color:var(--text-color)}.number_input-label.-required.svelte-1uafnxz::after{content:\\\"*\\\";color:var(--primary);font-size:17px;line-height:10px}.number_input-input.svelte-1uafnxz{width:100%;height:52px;border:1px solid #dfdfdf;outline:none;border-radius:5px;text-align:right;padding-right:20px;font-weight:600;color:var(--faded-text-color);box-sizing:border-box;transition:0.3s all ease}.number_input-input.-metric.svelte-1uafnxz{padding-right:34px}.number_input-input.svelte-1uafnxz:focus{box-shadow:5px 0 0 #aa3839 inset, 0 2px 10px rgba(0, 0, 0, 0.2) !important}.metric-wrapper.svelte-1uafnxz{position:absolute;right:10px;top:42px;color:var(--faded-text-color);opacity:0.5;pointer-events:none}input.svelte-1uafnxz::-webkit-outer-spin-button,input.svelte-1uafnxz::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].svelte-1uafnxz{-moz-appearance:textfield}\");\n\t}\n\n\t\/\/ (32:4) {#if metric}\n\tfunction create_if_block$3(ctx) {\n\t\tlet div;\n\t\tlet t;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tt = text(\/*metric*\/ ctx[6]);\n\t\t\t\tattr(div, \"class\", \"metric-wrapper svelte-1uafnxz\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, t);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*metric*\/ 64) set_data(t, \/*metric*\/ ctx[6]);\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$7(ctx) {\n\t\tlet div;\n\t\tlet label_1;\n\t\tlet t0;\n\t\tlet label_1_class_value;\n\t\tlet t1;\n\t\tlet input_1;\n\t\tlet input_1_class_value;\n\t\tlet t2;\n\t\tlet mounted;\n\t\tlet dispose;\n\t\tlet if_block = \/*metric*\/ ctx[6] && create_if_block$3(ctx);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tlabel_1 = element(\"label\");\n\t\t\t\tt0 = text(\/*label*\/ ctx[1]);\n\t\t\t\tt1 = space();\n\t\t\t\tinput_1 = element(\"input\");\n\t\t\t\tt2 = space();\n\t\t\t\tif (if_block) if_block.c();\n\t\t\t\tattr(label_1, \"class\", label_1_class_value = \"number_input-label \" + (\/*required*\/ ctx[5] ? '-required' : '') + \"\" + \" svelte-1uafnxz\");\n\t\t\t\tattr(label_1, \"for\", \/*id*\/ ctx[2]);\n\t\t\t\tattr(input_1, \"class\", input_1_class_value = \"number_input-input \" + (\/*metric*\/ ctx[6] ? '-metric' : '') + \" svelte-1uafnxz\");\n\t\t\t\tinput_1.value = \/*value*\/ ctx[0];\n\t\t\t\tattr(input_1, \"autocomplete\", \/*autocomplete*\/ ctx[7]);\n\t\t\t\tattr(input_1, \"type\", \"number\");\n\t\t\t\tattr(input_1, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\tattr(input_1, \"min\", \/*min*\/ ctx[3]);\n\t\t\t\tattr(input_1, \"max\", \/*max*\/ ctx[4]);\n\t\t\t\tinput_1.required = \/*required*\/ ctx[5];\n\t\t\t\tattr(div, \"class\", \"number_input-wrapper svelte-1uafnxz\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, label_1);\n\t\t\t\tappend(label_1, t0);\n\t\t\t\tappend(div, t1);\n\t\t\t\tappend(div, input_1);\n\t\t\t\t\/*input_1_binding*\/ ctx[9](input_1);\n\t\t\t\tappend(div, t2);\n\t\t\t\tif (if_block) if_block.m(div, null);\n\n\t\t\t\tif (!mounted) {\n\t\t\t\t\tdispose = listen(input_1, \"change\", \/*change_handler*\/ ctx[10]);\n\t\t\t\t\tmounted = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (dirty & \/*label*\/ 2) set_data(t0, \/*label*\/ ctx[1]);\n\n\t\t\t\tif (dirty & \/*required*\/ 32 && label_1_class_value !== (label_1_class_value = \"number_input-label \" + (\/*required*\/ ctx[5] ? '-required' : '') + \"\" + \" svelte-1uafnxz\")) {\n\t\t\t\t\tattr(label_1, \"class\", label_1_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*id*\/ 4) {\n\t\t\t\t\tattr(label_1, \"for\", \/*id*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*metric*\/ 64 && input_1_class_value !== (input_1_class_value = \"number_input-input \" + (\/*metric*\/ ctx[6] ? '-metric' : '') + \" svelte-1uafnxz\")) {\n\t\t\t\t\tattr(input_1, \"class\", input_1_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*value*\/ 1 && input_1.value !== \/*value*\/ ctx[0]) {\n\t\t\t\t\tinput_1.value = \/*value*\/ ctx[0];\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*autocomplete*\/ 128) {\n\t\t\t\t\tattr(input_1, \"autocomplete\", \/*autocomplete*\/ ctx[7]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*id*\/ 4) {\n\t\t\t\t\tattr(input_1, \"id\", \/*id*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*min*\/ 8) {\n\t\t\t\t\tattr(input_1, \"min\", \/*min*\/ ctx[3]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*max*\/ 16) {\n\t\t\t\t\tattr(input_1, \"max\", \/*max*\/ ctx[4]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*required*\/ 32) {\n\t\t\t\t\tinput_1.required = \/*required*\/ ctx[5];\n\t\t\t\t}\n\n\t\t\t\tif (\/*metric*\/ ctx[6]) {\n\t\t\t\t\tif (if_block) {\n\t\t\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif_block = create_if_block$3(ctx);\n\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t\tif_block.m(div, null);\n\t\t\t\t\t}\n\t\t\t\t} else if (if_block) {\n\t\t\t\t\tif_block.d(1);\n\t\t\t\t\tif_block = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\t\/*input_1_binding*\/ ctx[9](null);\n\t\t\t\tif (if_block) if_block.d();\n\t\t\t\tmounted = false;\n\t\t\t\tdispose();\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$7($$self, $$props, $$invalidate) {\n\t\tlet { label = \"Invalid label\" } = $$props;\n\t\tlet { id = `input-number-${Math.random().toString(36).substring(2, 10)}` } = $$props;\n\t\tlet { value = 100 } = $$props;\n\t\tlet { min = 0 } = $$props;\n\t\tlet { max = 100000 } = $$props;\n\t\tlet { required = false } = $$props;\n\t\tlet { metric = \"\" } = $$props;\n\t\tlet { autocomplete = null } = $$props;\n\t\tlet input;\n\n\t\tfunction input_1_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tinput = $$value;\n\t\t\t\t$$invalidate(8, input);\n\t\t\t});\n\t\t}\n\n\t\tconst change_handler = event => {\n\t\t\t$$invalidate(0, value = input.valueAsNumber);\n\t\t};\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('label' in $$props) $$invalidate(1, label = $$props.label);\n\t\t\tif ('id' in $$props) $$invalidate(2, id = $$props.id);\n\t\t\tif ('value' in $$props) $$invalidate(0, value = $$props.value);\n\t\t\tif ('min' in $$props) $$invalidate(3, min = $$props.min);\n\t\t\tif ('max' in $$props) $$invalidate(4, max = $$props.max);\n\t\t\tif ('required' in $$props) $$invalidate(5, required = $$props.required);\n\t\t\tif ('metric' in $$props) $$invalidate(6, metric = $$props.metric);\n\t\t\tif ('autocomplete' in $$props) $$invalidate(7, autocomplete = $$props.autocomplete);\n\t\t};\n\n\t\treturn [\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t\tid,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\trequired,\n\t\t\tmetric,\n\t\t\tautocomplete,\n\t\t\tinput,\n\t\t\tinput_1_binding,\n\t\t\tchange_handler\n\t\t];\n\t}\n\n\tclass NumberInput extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(\n\t\t\t\tthis,\n\t\t\t\toptions,\n\t\t\t\tinstance$7,\n\t\t\t\tcreate_fragment$7,\n\t\t\t\tsafe_not_equal,\n\t\t\t\t{\n\t\t\t\t\tlabel: 1,\n\t\t\t\t\tid: 2,\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tmin: 3,\n\t\t\t\t\tmax: 4,\n\t\t\t\t\trequired: 5,\n\t\t\t\t\tmetric: 6,\n\t\t\t\t\tautocomplete: 7\n\t\t\t\t},\n\t\t\t\tadd_css$6\n\t\t\t);\n\t\t}\n\n\t\tget label() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset label(label) {\n\t\t\tthis.$$set({ label });\n\t\t\tflush();\n\t\t}\n\n\t\tget id() {\n\t\t\treturn this.$$.ctx[2];\n\t\t}\n\n\t\tset id(id) {\n\t\t\tthis.$$set({ id });\n\t\t\tflush();\n\t\t}\n\n\t\tget value() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset value(value) {\n\t\t\tthis.$$set({ value });\n\t\t\tflush();\n\t\t}\n\n\t\tget min() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset min(min) {\n\t\t\tthis.$$set({ min });\n\t\t\tflush();\n\t\t}\n\n\t\tget max() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset max(max) {\n\t\t\tthis.$$set({ max });\n\t\t\tflush();\n\t\t}\n\n\t\tget required() {\n\t\t\treturn this.$$.ctx[5];\n\t\t}\n\n\t\tset required(required) {\n\t\t\tthis.$$set({ required });\n\t\t\tflush();\n\t\t}\n\n\t\tget metric() {\n\t\t\treturn this.$$.ctx[6];\n\t\t}\n\n\t\tset metric(metric) {\n\t\t\tthis.$$set({ metric });\n\t\t\tflush();\n\t\t}\n\n\t\tget autocomplete() {\n\t\t\treturn this.$$.ctx[7];\n\t\t}\n\n\t\tset autocomplete(autocomplete) {\n\t\t\tthis.$$set({ autocomplete });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(NumberInput, {\"label\":{},\"id\":{},\"value\":{},\"min\":{},\"max\":{},\"required\":{\"type\":\"Boolean\"},\"metric\":{},\"autocomplete\":{}}, [], [], true);\n\n\t\/* src\\components\\ui\\checbox.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$5(target) {\n\t\tappend_styles(target, \"svelte-16dr4ql\", \".checkbox.svelte-16dr4ql{margin-left:16px;accent-color:var(--primary)}.checkbox-wrapper.svelte-16dr4ql{display:flex;align-items:flex-start}\");\n\t}\n\n\tfunction create_fragment$6(ctx) {\n\t\tlet div;\n\t\tlet input;\n\t\tlet t;\n\t\tlet current;\n\t\tconst default_slot_template = \/*#slots*\/ ctx[2].default;\n\t\tconst default_slot = create_slot(default_slot_template, ctx, \/*$$scope*\/ ctx[1], null);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tinput = element(\"input\");\n\t\t\t\tt = space();\n\t\t\t\tif (default_slot) default_slot.c();\n\t\t\t\tattr(input, \"class\", \"checkbox svelte-16dr4ql\");\n\t\t\t\tattr(input, \"type\", \"checkbox\");\n\t\t\t\tinput.required = \/*required*\/ ctx[0];\n\t\t\t\tattr(div, \"class\", \"checkbox-wrapper svelte-16dr4ql\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, input);\n\t\t\t\tappend(div, t);\n\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tdefault_slot.m(div, null);\n\t\t\t\t}\n\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (!current || dirty & \/*required*\/ 1) {\n\t\t\t\t\tinput.required = \/*required*\/ ctx[0];\n\t\t\t\t}\n\n\t\t\t\tif (default_slot) {\n\t\t\t\t\tif (default_slot.p && (!current || dirty & \/*$$scope*\/ 2)) {\n\t\t\t\t\t\tupdate_slot_base(\n\t\t\t\t\t\t\tdefault_slot,\n\t\t\t\t\t\t\tdefault_slot_template,\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\/*$$scope*\/ ctx[1],\n\t\t\t\t\t\t\t!current\n\t\t\t\t\t\t\t? get_all_dirty_from_scope(\/*$$scope*\/ ctx[1])\n\t\t\t\t\t\t\t: get_slot_changes(default_slot_template, \/*$$scope*\/ ctx[1], dirty, null),\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(default_slot, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(default_slot, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tif (default_slot) default_slot.d(detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$6($$self, $$props, $$invalidate) {\n\t\tlet { $$slots: slots = {}, $$scope } = $$props;\n\t\tlet { required = false } = $$props;\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('required' in $$props) $$invalidate(0, required = $$props.required);\n\t\t\tif ('$$scope' in $$props) $$invalidate(1, $$scope = $$props.$$scope);\n\t\t};\n\n\t\treturn [required, $$scope, slots];\n\t}\n\n\tclass Checbox extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$6, create_fragment$6, safe_not_equal, { required: 0 }, add_css$5);\n\t\t}\n\n\t\tget required() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset required(required) {\n\t\t\tthis.$$set({ required });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(Checbox, {\"required\":{\"type\":\"Boolean\"}}, [\"default\"], [], true);\n\n\t\/* src\\components\\views\\clientInfoSubPanel.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$4(target) {\n\t\tappend_styles(target, \"svelte-iajo82\", \".checkbox-text.svelte-iajo82.svelte-iajo82{margin:2px}.checkbox-text.svelte-iajo82>a.svelte-iajo82{text-decoration:none}.checkbox-text.svelte-iajo82>a.svelte-iajo82:link{color:var(--primary)}.checkbox-text.svelte-iajo82>a.svelte-iajo82:visited{color:var(--primary)}\");\n\t}\n\n\t\/\/ (21:4) <Container          direction={LayoutDirection.HORIZONTAL}          gap={16}          heightType={LayoutWrapType.HUG}      >\n\tfunction create_default_slot_4(ctx) {\n\t\tlet textinput0;\n\t\tlet updating_value;\n\t\tlet t;\n\t\tlet textinput1;\n\t\tlet updating_value_1;\n\t\tlet current;\n\n\t\tfunction textinput0_value_binding(value) {\n\t\t\t\/*textinput0_value_binding*\/ ctx[4](value);\n\t\t}\n\n\t\tlet textinput0_props = {\n\t\t\trequired: true,\n\t\t\tautocomplete: \"given-name\",\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.FIRST_NAME)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].firstName !== void 0) {\n\t\t\ttextinput0_props.value = \/*$clientStore*\/ ctx[2].firstName;\n\t\t}\n\n\t\ttextinput0 = new TextInput({ props: textinput0_props });\n\t\tbinding_callbacks.push(() => bind(textinput0, 'value', textinput0_value_binding));\n\n\t\tfunction textinput1_value_binding(value) {\n\t\t\t\/*textinput1_value_binding*\/ ctx[5](value);\n\t\t}\n\n\t\tlet textinput1_props = {\n\t\t\trequired: true,\n\t\t\tautocomplete: \"family-name\",\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.LAST_NAME)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].lastName !== void 0) {\n\t\t\ttextinput1_props.value = \/*$clientStore*\/ ctx[2].lastName;\n\t\t}\n\n\t\ttextinput1 = new TextInput({ props: textinput1_props });\n\t\tbinding_callbacks.push(() => bind(textinput1, 'value', textinput1_value_binding));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(textinput0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(textinput1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(textinput0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(textinput1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst textinput0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput0_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.FIRST_NAME);\n\n\t\t\t\tif (!updating_value && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\ttextinput0_changes.value = \/*$clientStore*\/ ctx[2].firstName;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput0.$set(textinput0_changes);\n\t\t\t\tconst textinput1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput1_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.LAST_NAME);\n\n\t\t\t\tif (!updating_value_1 && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value_1 = true;\n\t\t\t\t\ttextinput1_changes.value = \/*$clientStore*\/ ctx[2].lastName;\n\t\t\t\t\tadd_flush_callback(() => updating_value_1 = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput1.$set(textinput1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(textinput0.$$.fragment, local);\n\t\t\t\ttransition_in(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(textinput0.$$.fragment, local);\n\t\t\t\ttransition_out(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(textinput0, detaching);\n\t\t\t\tdestroy_component(textinput1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (39:4) <Container          direction={LayoutDirection.HORIZONTAL}          gap={16}          heightType={LayoutWrapType.HUG}      >\n\tfunction create_default_slot_3$1(ctx) {\n\t\tlet textinput0;\n\t\tlet updating_value;\n\t\tlet t;\n\t\tlet textinput1;\n\t\tlet updating_value_1;\n\t\tlet current;\n\n\t\tfunction textinput0_value_binding_1(value) {\n\t\t\t\/*textinput0_value_binding_1*\/ ctx[6](value);\n\t\t}\n\n\t\tlet textinput0_props = {\n\t\t\ttype: \"email\",\n\t\t\tautocomplete: \"email\",\n\t\t\tpattern: \"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$\",\n\t\t\trequired: true,\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.EMAIL)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].email !== void 0) {\n\t\t\ttextinput0_props.value = \/*$clientStore*\/ ctx[2].email;\n\t\t}\n\n\t\ttextinput0 = new TextInput({ props: textinput0_props });\n\t\tbinding_callbacks.push(() => bind(textinput0, 'value', textinput0_value_binding_1));\n\n\t\tfunction textinput1_value_binding_1(value) {\n\t\t\t\/*textinput1_value_binding_1*\/ ctx[7](value);\n\t\t}\n\n\t\tlet textinput1_props = {\n\t\t\trequired: true,\n\t\t\ttype: \"tel\",\n\t\t\tpattern: \"^(+d{1,2}s?)?(?d{3})?[s.-]?d{3}[s.-]?d{4}$\",\n\t\t\tautocomplete: \"tel\",\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.PHONE)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].phone !== void 0) {\n\t\t\ttextinput1_props.value = \/*$clientStore*\/ ctx[2].phone;\n\t\t}\n\n\t\ttextinput1 = new TextInput({ props: textinput1_props });\n\t\tbinding_callbacks.push(() => bind(textinput1, 'value', textinput1_value_binding_1));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(textinput0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(textinput1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(textinput0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(textinput1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst textinput0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput0_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.EMAIL);\n\n\t\t\t\tif (!updating_value && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\ttextinput0_changes.value = \/*$clientStore*\/ ctx[2].email;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput0.$set(textinput0_changes);\n\t\t\t\tconst textinput1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput1_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.PHONE);\n\n\t\t\t\tif (!updating_value_1 && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value_1 = true;\n\t\t\t\t\ttextinput1_changes.value = \/*$clientStore*\/ ctx[2].phone;\n\t\t\t\t\tadd_flush_callback(() => updating_value_1 = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput1.$set(textinput1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(textinput0.$$.fragment, local);\n\t\t\t\ttransition_in(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(textinput0.$$.fragment, local);\n\t\t\t\ttransition_out(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(textinput0, detaching);\n\t\t\t\tdestroy_component(textinput1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (61:4) <Container          direction={LayoutDirection.HORIZONTAL}          gap={16}          heightType={LayoutWrapType.HUG}      >\n\tfunction create_default_slot_2$1(ctx) {\n\t\tlet textinput;\n\t\tlet updating_value;\n\t\tlet t;\n\t\tlet numberinput;\n\t\tlet updating_value_1;\n\t\tlet current;\n\n\t\tfunction textinput_value_binding(value) {\n\t\t\t\/*textinput_value_binding*\/ ctx[8](value);\n\t\t}\n\n\t\tlet textinput_props = {\n\t\t\trequired: true,\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.CITY),\n\t\t\tautocomplete: \"address-level2\"\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].city !== void 0) {\n\t\t\ttextinput_props.value = \/*$clientStore*\/ ctx[2].city;\n\t\t}\n\n\t\ttextinput = new TextInput({ props: textinput_props });\n\t\tbinding_callbacks.push(() => bind(textinput, 'value', textinput_value_binding));\n\n\t\tfunction numberinput_value_binding(value) {\n\t\t\t\/*numberinput_value_binding*\/ ctx[9](value);\n\t\t}\n\n\t\tlet numberinput_props = {\n\t\t\trequired: true,\n\t\t\tmax: 99999,\n\t\t\tautocomplete: \"postal-code\",\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.ZIP)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].zip !== void 0) {\n\t\t\tnumberinput_props.value = \/*$clientStore*\/ ctx[2].zip;\n\t\t}\n\n\t\tnumberinput = new NumberInput({ props: numberinput_props });\n\t\tbinding_callbacks.push(() => bind(numberinput, 'value', numberinput_value_binding));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(textinput.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(numberinput.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(textinput, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(numberinput, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst textinput_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.CITY);\n\n\t\t\t\tif (!updating_value && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\ttextinput_changes.value = \/*$clientStore*\/ ctx[2].city;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput.$set(textinput_changes);\n\t\t\t\tconst numberinput_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) numberinput_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.ZIP);\n\n\t\t\t\tif (!updating_value_1 && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value_1 = true;\n\t\t\t\t\tnumberinput_changes.value = \/*$clientStore*\/ ctx[2].zip;\n\t\t\t\t\tadd_flush_callback(() => updating_value_1 = false);\n\t\t\t\t}\n\n\t\t\t\tnumberinput.$set(numberinput_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(textinput.$$.fragment, local);\n\t\t\t\ttransition_in(numberinput.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(textinput.$$.fragment, local);\n\t\t\t\ttransition_out(numberinput.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(textinput, detaching);\n\t\t\t\tdestroy_component(numberinput, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (81:4) <Container          direction={LayoutDirection.HORIZONTAL}          gap={16}          heightType={LayoutWrapType.HUG}      >\n\tfunction create_default_slot_1$2(ctx) {\n\t\tlet textinput0;\n\t\tlet updating_value;\n\t\tlet t;\n\t\tlet textinput1;\n\t\tlet updating_value_1;\n\t\tlet current;\n\n\t\tfunction textinput0_value_binding_2(value) {\n\t\t\t\/*textinput0_value_binding_2*\/ ctx[10](value);\n\t\t}\n\n\t\tlet textinput0_props = {\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.ADDRESS_1),\n\t\t\tautocomplete: \"address-line1\"\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].address !== void 0) {\n\t\t\ttextinput0_props.value = \/*$clientStore*\/ ctx[2].address;\n\t\t}\n\n\t\ttextinput0 = new TextInput({ props: textinput0_props });\n\t\tbinding_callbacks.push(() => bind(textinput0, 'value', textinput0_value_binding_2));\n\n\t\tfunction textinput1_value_binding_2(value) {\n\t\t\t\/*textinput1_value_binding_2*\/ ctx[11](value);\n\t\t}\n\n\t\tlet textinput1_props = {\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.COUNTRY),\n\t\t\tautocomplete: \"country\"\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].country !== void 0) {\n\t\t\ttextinput1_props.value = \/*$clientStore*\/ ctx[2].country;\n\t\t}\n\n\t\ttextinput1 = new TextInput({ props: textinput1_props });\n\t\tbinding_callbacks.push(() => bind(textinput1, 'value', textinput1_value_binding_2));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(textinput0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(textinput1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(textinput0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(textinput1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst textinput0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput0_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.ADDRESS_1);\n\n\t\t\t\tif (!updating_value && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\ttextinput0_changes.value = \/*$clientStore*\/ ctx[2].address;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput0.$set(textinput0_changes);\n\t\t\t\tconst textinput1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput1_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.COUNTRY);\n\n\t\t\t\tif (!updating_value_1 && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value_1 = true;\n\t\t\t\t\ttextinput1_changes.value = \/*$clientStore*\/ ctx[2].country;\n\t\t\t\t\tadd_flush_callback(() => updating_value_1 = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput1.$set(textinput1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(textinput0.$$.fragment, local);\n\t\t\t\ttransition_in(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(textinput0.$$.fragment, local);\n\t\t\t\ttransition_out(textinput1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(textinput0, detaching);\n\t\t\t\tdestroy_component(textinput1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (103:4) <Checbox required>\n\tfunction create_default_slot$4(ctx) {\n\t\tlet p;\n\t\tlet t0_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR1) + \"\";\n\t\tlet t0;\n\t\tlet t1;\n\t\tlet a;\n\t\tlet t2_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR2) + \"\";\n\t\tlet t2;\n\t\tlet t3;\n\t\tlet t4_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR3) + \"\";\n\t\tlet t4;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tp = element(\"p\");\n\t\t\t\tt0 = text(t0_value);\n\t\t\t\tt1 = space();\n\t\t\t\ta = element(\"a\");\n\t\t\t\tt2 = text(t2_value);\n\t\t\t\tt3 = space();\n\t\t\t\tt4 = text(t4_value);\n\t\t\t\tattr(a, \"href\", \"https:\/\/www.tptbrany.sk\/gdpr\/\");\n\t\t\t\tattr(a, \"target\", \"_blank\");\n\t\t\t\tattr(a, \"class\", \"svelte-iajo82\");\n\t\t\t\tattr(p, \"class\", \"checkbox-text svelte-iajo82\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, p, anchor);\n\t\t\t\tappend(p, t0);\n\t\t\t\tappend(p, t1);\n\t\t\t\tappend(p, a);\n\t\t\t\tappend(a, t2);\n\t\t\t\tappend(p, t3);\n\t\t\t\tappend(p, t4);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t0_value !== (t0_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR1) + \"\")) set_data(t0, t0_value);\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t2_value !== (t2_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR2) + \"\")) set_data(t2, t2_value);\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t4_value !== (t4_value = \/*$languageService*\/ ctx[1].get(UIKey.GDPR3) + \"\")) set_data(t4, t4_value);\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(p);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$5(ctx) {\n\t\tlet form;\n\t\tlet titlebar;\n\t\tlet t0;\n\t\tlet container0;\n\t\tlet t1;\n\t\tlet container1;\n\t\tlet t2;\n\t\tlet container2;\n\t\tlet t3;\n\t\tlet container3;\n\t\tlet t4;\n\t\tlet textinput;\n\t\tlet updating_value;\n\t\tlet t5;\n\t\tlet checbox;\n\t\tlet current;\n\t\ttitlebar = new TitleBar({});\n\n\t\tcontainer0 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_4] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tcontainer1 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_3$1] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tcontainer2 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_2$1] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tcontainer3 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_1$2] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tfunction textinput_value_binding_1(value) {\n\t\t\t\/*textinput_value_binding_1*\/ ctx[12](value);\n\t\t}\n\n\t\tlet textinput_props = {\n\t\t\ttype: \"textarea\",\n\t\t\tlabel: \/*$languageService*\/ ctx[1].get(ConfiguratorKey.NOTE)\n\t\t};\n\n\t\tif (\/*$clientStore*\/ ctx[2].note !== void 0) {\n\t\t\ttextinput_props.value = \/*$clientStore*\/ ctx[2].note;\n\t\t}\n\n\t\ttextinput = new TextInput({ props: textinput_props });\n\t\tbinding_callbacks.push(() => bind(textinput, 'value', textinput_value_binding_1));\n\n\t\tchecbox = new Checbox({\n\t\t\t\tprops: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\t$$slots: { default: [create_default_slot$4] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tform = element(\"form\");\n\t\t\t\tcreate_component(titlebar.$$.fragment);\n\t\t\t\tt0 = space();\n\t\t\t\tcreate_component(container0.$$.fragment);\n\t\t\t\tt1 = space();\n\t\t\t\tcreate_component(container1.$$.fragment);\n\t\t\t\tt2 = space();\n\t\t\t\tcreate_component(container2.$$.fragment);\n\t\t\t\tt3 = space();\n\t\t\t\tcreate_component(container3.$$.fragment);\n\t\t\t\tt4 = space();\n\t\t\t\tcreate_component(textinput.$$.fragment);\n\t\t\t\tt5 = space();\n\t\t\t\tcreate_component(checbox.$$.fragment);\n\t\t\t\tset_style(form, \"display\", \"contents\");\n\t\t\t\tattr(form, \"id\", \"contactInfo\");\n\t\t\t\tattr(form, \"name\", \"contactInfo\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, form, anchor);\n\t\t\t\tmount_component(titlebar, form, null);\n\t\t\t\tappend(form, t0);\n\t\t\t\tmount_component(container0, form, null);\n\t\t\t\tappend(form, t1);\n\t\t\t\tmount_component(container1, form, null);\n\t\t\t\tappend(form, t2);\n\t\t\t\tmount_component(container2, form, null);\n\t\t\t\tappend(form, t3);\n\t\t\t\tmount_component(container3, form, null);\n\t\t\t\tappend(form, t4);\n\t\t\t\tmount_component(textinput, form, null);\n\t\t\t\tappend(form, t5);\n\t\t\t\tmount_component(checbox, form, null);\n\t\t\t\t\/*form_binding*\/ ctx[13](form);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst container0_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService, $clientStore*\/ 16390) {\n\t\t\t\t\tcontainer0_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer0.$set(container0_changes);\n\t\t\t\tconst container1_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService, $clientStore*\/ 16390) {\n\t\t\t\t\tcontainer1_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer1.$set(container1_changes);\n\t\t\t\tconst container2_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService, $clientStore*\/ 16390) {\n\t\t\t\t\tcontainer2_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer2.$set(container2_changes);\n\t\t\t\tconst container3_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService, $clientStore*\/ 16390) {\n\t\t\t\t\tcontainer3_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer3.$set(container3_changes);\n\t\t\t\tconst textinput_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 2) textinput_changes.label = \/*$languageService*\/ ctx[1].get(ConfiguratorKey.NOTE);\n\n\t\t\t\tif (!updating_value && dirty & \/*$clientStore*\/ 4) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\ttextinput_changes.value = \/*$clientStore*\/ ctx[2].note;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\ttextinput.$set(textinput_changes);\n\t\t\t\tconst checbox_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService*\/ 16386) {\n\t\t\t\t\tchecbox_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tchecbox.$set(checbox_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(titlebar.$$.fragment, local);\n\t\t\t\ttransition_in(container0.$$.fragment, local);\n\t\t\t\ttransition_in(container1.$$.fragment, local);\n\t\t\t\ttransition_in(container2.$$.fragment, local);\n\t\t\t\ttransition_in(container3.$$.fragment, local);\n\t\t\t\ttransition_in(textinput.$$.fragment, local);\n\t\t\t\ttransition_in(checbox.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(titlebar.$$.fragment, local);\n\t\t\t\ttransition_out(container0.$$.fragment, local);\n\t\t\t\ttransition_out(container1.$$.fragment, local);\n\t\t\t\ttransition_out(container2.$$.fragment, local);\n\t\t\t\ttransition_out(container3.$$.fragment, local);\n\t\t\t\ttransition_out(textinput.$$.fragment, local);\n\t\t\t\ttransition_out(checbox.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(form);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(titlebar);\n\t\t\t\tdestroy_component(container0);\n\t\t\t\tdestroy_component(container1);\n\t\t\t\tdestroy_component(container2);\n\t\t\t\tdestroy_component(container3);\n\t\t\t\tdestroy_component(textinput);\n\t\t\t\tdestroy_component(checbox);\n\t\t\t\t\/*form_binding*\/ ctx[13](null);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$5($$self, $$props, $$invalidate) {\n\t\tlet $languageService;\n\t\tlet $clientStore;\n\t\tcomponent_subscribe($$self, languageService, $$value => $$invalidate(1, $languageService = $$value));\n\t\tcomponent_subscribe($$self, clientStore, $$value => $$invalidate(2, $clientStore = $$value));\n\t\tlet { formWrapper } = $$props;\n\t\tlet formElement;\n\n\t\tfunction textinput0_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.firstName, value)) {\n\t\t\t\t$clientStore.firstName = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput1_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.lastName, value)) {\n\t\t\t\t$clientStore.lastName = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput0_value_binding_1(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.email, value)) {\n\t\t\t\t$clientStore.email = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput1_value_binding_1(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.phone, value)) {\n\t\t\t\t$clientStore.phone = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.city, value)) {\n\t\t\t\t$clientStore.city = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction numberinput_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.zip, value)) {\n\t\t\t\t$clientStore.zip = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput0_value_binding_2(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.address, value)) {\n\t\t\t\t$clientStore.address = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput1_value_binding_2(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.country, value)) {\n\t\t\t\t$clientStore.country = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction textinput_value_binding_1(value) {\n\t\t\tif ($$self.$$.not_equal($clientStore.note, value)) {\n\t\t\t\t$clientStore.note = value;\n\t\t\t\tclientStore.set($clientStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction form_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tformElement = $$value;\n\t\t\t\t$$invalidate(0, formElement);\n\t\t\t});\n\t\t}\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('formWrapper' in $$props) $$invalidate(3, formWrapper = $$props.formWrapper);\n\t\t};\n\n\t\t$$self.$$.update = () => {\n\t\t\tif ($$self.$$.dirty & \/*formElement*\/ 1) {\n\t\t\t\t{\n\t\t\t\t\t$$invalidate(3, formWrapper.form = formElement, formWrapper);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn [\n\t\t\tformElement,\n\t\t\t$languageService,\n\t\t\t$clientStore,\n\t\t\tformWrapper,\n\t\t\ttextinput0_value_binding,\n\t\t\ttextinput1_value_binding,\n\t\t\ttextinput0_value_binding_1,\n\t\t\ttextinput1_value_binding_1,\n\t\t\ttextinput_value_binding,\n\t\t\tnumberinput_value_binding,\n\t\t\ttextinput0_value_binding_2,\n\t\t\ttextinput1_value_binding_2,\n\t\t\ttextinput_value_binding_1,\n\t\t\tform_binding\n\t\t];\n\t}\n\n\tclass ClientInfoSubPanel extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$5, create_fragment$5, safe_not_equal, { formWrapper: 3 }, add_css$4);\n\t\t}\n\n\t\tget formWrapper() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset formWrapper(formWrapper) {\n\t\t\tthis.$$set({ formWrapper });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(ClientInfoSubPanel, {\"formWrapper\":{}}, [], [], true);\n\n\t\/* src\\components\\ui\\radioInput.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$3(target) {\n\t\tappend_styles(target, \"svelte-1g312x2\", \".radio_input.svelte-1g312x2{position:relative;border-radius:4px;overflow:hidden;width:100px;height:75px;transition:0.3s all ease}.radio_input.svelte-1g312x2:hover{box-shadow:0 -3px 0 0 rgba(24, 24, 24, 0.2) inset, 0 2px 10px rgba(0, 0, 0, 0.2)}.radio_input-wrapper.svelte-1g312x2{display:flex;flex-direction:column;width:100%}.radio_input-label.svelte-1g312x2{font-weight:600;margin-bottom:8px;color:var(--text-color)}.radio_input-label_selected.svelte-1g312x2{margin-left:8px;color:var(--faded-text-color);font-weight:400}.radio_input-label_selected.-required.svelte-1g312x2::after{content:\\\"*\\\";color:var(--primary);font-size:17px;line-height:10px}.radio_input-image.svelte-1g312x2{width:100%;height:100%;object-fit:cover;-moz-user-select:none;-webkit-user-select:none;user-select:none}.radio_input-input.svelte-1g312x2{position:absolute;right:10px;top:4px;width:1px;z-index:-1}.radio_input.checked::after{content:\\\" \\\";background:url('data:image\/svg+xml,<svg width=\\\"14\\\" height=\\\"14\\\" viewBox=\\\"0 0 14 14\\\" fill=\\\"none\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\"><circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"7\\\" fill=\\\"%239C4545\\\"\/><path d=\\\"M3 7.5L6 10.5L10.5 5\\\" stroke=\\\"white\\\" stroke-width=\\\"2\\\"\/><\/svg>');width:14px;height:14px;position:absolute;right:10px;top:4px}input.svelte-1g312x2::-webkit-outer-spin-button,input.svelte-1g312x2::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\");\n\t}\n\n\tfunction get_each_context(ctx, list, i) {\n\t\tconst child_ctx = ctx.slice();\n\t\tchild_ctx[16] = list[i].name;\n\t\tchild_ctx[17] = list[i].image;\n\t\tchild_ctx[18] = list[i].id;\n\t\tchild_ctx[19] = list;\n\t\tchild_ctx[20] = i;\n\t\treturn child_ctx;\n\t}\n\n\t\/\/ (42:4) <Container direction={LayoutDirection.HORIZONTAL}>\n\tfunction create_default_slot_1$1(ctx) {\n\t\tlet label0;\n\t\tlet t0;\n\t\tlet t1;\n\t\tlet label1;\n\t\tlet t2_value = (\/*items*\/ ctx[3].find(\/*func*\/ ctx[11])?.name || \"Select an item\") + \"\";\n\t\tlet t2;\n\t\tlet label1_class_value;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tlabel0 = element(\"label\");\n\t\t\t\tt0 = text(\/*label*\/ ctx[1]);\n\t\t\t\tt1 = space();\n\t\t\t\tlabel1 = element(\"label\");\n\t\t\t\tt2 = text(t2_value);\n\t\t\t\tattr(label0, \"class\", \"radio_input-label svelte-1g312x2\");\n\t\t\t\tattr(label0, \"for\", \/*HTMLId*\/ ctx[2]);\n\t\t\t\tattr(label1, \"class\", label1_class_value = \"radio_input-label_selected \" + (\/*required*\/ ctx[6] ? '-required' : '') + \" svelte-1g312x2\");\n\t\t\t\tattr(label1, \"for\", \/*HTMLId*\/ ctx[2]);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, label0, anchor);\n\t\t\t\tappend(label0, t0);\n\t\t\t\tinsert(target, t1, anchor);\n\t\t\t\tinsert(target, label1, anchor);\n\t\t\t\tappend(label1, t2);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*label*\/ 2) set_data(t0, \/*label*\/ ctx[1]);\n\n\t\t\t\tif (dirty & \/*HTMLId*\/ 4) {\n\t\t\t\t\tattr(label0, \"for\", \/*HTMLId*\/ ctx[2]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items, selected*\/ 9 && t2_value !== (t2_value = (\/*items*\/ ctx[3].find(\/*func*\/ ctx[11])?.name || \"Select an item\") + \"\")) set_data(t2, t2_value);\n\n\t\t\t\tif (dirty & \/*required*\/ 64 && label1_class_value !== (label1_class_value = \"radio_input-label_selected \" + (\/*required*\/ ctx[6] ? '-required' : '') + \" svelte-1g312x2\")) {\n\t\t\t\t\tattr(label1, \"class\", label1_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*HTMLId*\/ 4) {\n\t\t\t\t\tattr(label1, \"for\", \/*HTMLId*\/ ctx[2]);\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(label0);\n\t\t\t\t\tdetach(t1);\n\t\t\t\t\tdetach(label1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (53:8) {#each items as { name, image, id }\n\tfunction create_each_block(ctx) {\n\t\tlet div;\n\t\tlet input;\n\t\tlet input_class_value;\n\t\tlet input_id_value;\n\t\tlet input_checked_value;\n\t\tlet index = \/*index*\/ ctx[20];\n\t\tlet t0;\n\t\tlet img;\n\t\tlet img_src_value;\n\t\tlet img_alt_value;\n\t\tlet t1;\n\t\tlet div_class_value;\n\t\tlet mounted;\n\t\tlet dispose;\n\t\tconst assign_input = () => \/*input_binding*\/ ctx[12](input, index);\n\t\tconst unassign_input = () => \/*input_binding*\/ ctx[12](null, index);\n\n\t\tfunction click_handler() {\n\t\t\treturn \/*click_handler*\/ ctx[13](\/*index*\/ ctx[20], \/*id*\/ ctx[18]);\n\t\t}\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tinput = element(\"input\");\n\t\t\t\tt0 = space();\n\t\t\t\timg = element(\"img\");\n\t\t\t\tt1 = space();\n\t\t\t\tattr(input, \"class\", input_class_value = \"radio_input-input \" + \/*HTMLId*\/ ctx[2] + \" svelte-1g312x2\");\n\t\t\t\tattr(input, \"name\", \/*label*\/ ctx[1]);\n\t\t\t\tattr(input, \"type\", \"radio\");\n\t\t\t\tinput.required = \/*required*\/ ctx[6];\n\n\t\t\t\tattr(input, \"id\", input_id_value = \/*processName*\/ ctx[8]({\n\t\t\t\t\tname: \/*name*\/ ctx[16],\n\t\t\t\t\timage: \/*image*\/ ctx[17],\n\t\t\t\t\tid: \/*id*\/ ctx[18]\n\t\t\t\t}));\n\n\t\t\t\tinput.checked = input_checked_value = \/*id*\/ ctx[18] === \/*selected*\/ ctx[0];\n\t\t\t\tattr(img, \"draggable\", \"false\");\n\t\t\t\tattr(img, \"class\", \"radio_input-image svelte-1g312x2\");\n\t\t\t\tif (!src_url_equal(img.src, img_src_value = \/*image*\/ ctx[17].src)) attr(img, \"src\", img_src_value);\n\t\t\t\tattr(img, \"alt\", img_alt_value = \/*image*\/ ctx[17].alt);\n\t\t\t\tattr(div, \"class\", div_class_value = \"radio_input \" + (\/*id*\/ ctx[18] === \/*selected*\/ ctx[0] ? 'checked' : '') + \"\" + \" svelte-1g312x2\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tappend(div, input);\n\t\t\t\tassign_input();\n\t\t\t\tappend(div, t0);\n\t\t\t\tappend(div, img);\n\t\t\t\tappend(div, t1);\n\n\t\t\t\tif (!mounted) {\n\t\t\t\t\tdispose = listen(img, \"click\", click_handler);\n\t\t\t\t\tmounted = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tp(new_ctx, dirty) {\n\t\t\t\tctx = new_ctx;\n\n\t\t\t\tif (dirty & \/*HTMLId*\/ 4 && input_class_value !== (input_class_value = \"radio_input-input \" + \/*HTMLId*\/ ctx[2] + \" svelte-1g312x2\")) {\n\t\t\t\t\tattr(input, \"class\", input_class_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*label*\/ 2) {\n\t\t\t\t\tattr(input, \"name\", \/*label*\/ ctx[1]);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*required*\/ 64) {\n\t\t\t\t\tinput.required = \/*required*\/ ctx[6];\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items*\/ 8 && input_id_value !== (input_id_value = \/*processName*\/ ctx[8]({\n\t\t\t\t\tname: \/*name*\/ ctx[16],\n\t\t\t\t\timage: \/*image*\/ ctx[17],\n\t\t\t\t\tid: \/*id*\/ ctx[18]\n\t\t\t\t}))) {\n\t\t\t\t\tattr(input, \"id\", input_id_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items, selected*\/ 9 && input_checked_value !== (input_checked_value = \/*id*\/ ctx[18] === \/*selected*\/ ctx[0])) {\n\t\t\t\t\tinput.checked = input_checked_value;\n\t\t\t\t}\n\n\t\t\t\tif (index !== \/*index*\/ ctx[20]) {\n\t\t\t\t\tunassign_input();\n\t\t\t\t\tindex = \/*index*\/ ctx[20];\n\t\t\t\t\tassign_input();\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items*\/ 8 && !src_url_equal(img.src, img_src_value = \/*image*\/ ctx[17].src)) {\n\t\t\t\t\tattr(img, \"src\", img_src_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items*\/ 8 && img_alt_value !== (img_alt_value = \/*image*\/ ctx[17].alt)) {\n\t\t\t\t\tattr(img, \"alt\", img_alt_value);\n\t\t\t\t}\n\n\t\t\t\tif (dirty & \/*items, selected*\/ 9 && div_class_value !== (div_class_value = \"radio_input \" + (\/*id*\/ ctx[18] === \/*selected*\/ ctx[0] ? 'checked' : '') + \"\" + \" svelte-1g312x2\")) {\n\t\t\t\t\tattr(div, \"class\", div_class_value);\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tunassign_input();\n\t\t\t\tmounted = false;\n\t\t\t\tdispose();\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (52:4) <Container direction={LayoutDirection.HORIZONTAL} {gap} {wrap}>\n\tfunction create_default_slot$3(ctx) {\n\t\tlet each_1_anchor;\n\t\tlet each_value = ensure_array_like(\/*items*\/ ctx[3]);\n\t\tlet each_blocks = [];\n\n\t\tfor (let i = 0; i < each_value.length; i += 1) {\n\t\t\teach_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));\n\t\t}\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\t\teach_blocks[i].c();\n\t\t\t\t}\n\n\t\t\t\teach_1_anchor = empty();\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tfor (let i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\t\tif (each_blocks[i]) {\n\t\t\t\t\t\teach_blocks[i].m(target, anchor);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tinsert(target, each_1_anchor, anchor);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*items, selected, onImageClick, radioElements, HTMLId, label, required, processName*\/ 975) {\n\t\t\t\t\teach_value = ensure_array_like(\/*items*\/ ctx[3]);\n\t\t\t\t\tlet i;\n\n\t\t\t\t\tfor (i = 0; i < each_value.length; i += 1) {\n\t\t\t\t\t\tconst child_ctx = get_each_context(ctx, each_value, i);\n\n\t\t\t\t\t\tif (each_blocks[i]) {\n\t\t\t\t\t\t\teach_blocks[i].p(child_ctx, dirty);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teach_blocks[i] = create_each_block(child_ctx);\n\t\t\t\t\t\t\teach_blocks[i].c();\n\t\t\t\t\t\t\teach_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (; i < each_blocks.length; i += 1) {\n\t\t\t\t\t\teach_blocks[i].d(1);\n\t\t\t\t\t}\n\n\t\t\t\t\teach_blocks.length = each_value.length;\n\t\t\t\t}\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(each_1_anchor);\n\t\t\t\t}\n\n\t\t\t\tdestroy_each(each_blocks, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$4(ctx) {\n\t\tlet div;\n\t\tlet container0;\n\t\tlet t;\n\t\tlet container1;\n\t\tlet current;\n\n\t\tcontainer0 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\t$$slots: { default: [create_default_slot_1$1] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tcontainer1 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: \/*gap*\/ ctx[4],\n\t\t\t\t\twrap: \/*wrap*\/ ctx[5],\n\t\t\t\t\t$$slots: { default: [create_default_slot$3] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tcreate_component(container0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(container1.$$.fragment);\n\t\t\t\tattr(div, \"class\", \"radio_input-wrapper svelte-1g312x2\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tmount_component(container0, div, null);\n\t\t\t\tappend(div, t);\n\t\t\t\tmount_component(container1, div, null);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst container0_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, required, HTMLId, items, selected, label*\/ 2097231) {\n\t\t\t\t\tcontainer0_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer0.$set(container0_changes);\n\t\t\t\tconst container1_changes = {};\n\t\t\t\tif (dirty & \/*gap*\/ 16) container1_changes.gap = \/*gap*\/ ctx[4];\n\t\t\t\tif (dirty & \/*wrap*\/ 32) container1_changes.wrap = \/*wrap*\/ ctx[5];\n\n\t\t\t\tif (dirty & \/*$$scope, items, selected, radioElements, HTMLId, label, required*\/ 2097359) {\n\t\t\t\t\tcontainer1_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer1.$set(container1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(container0.$$.fragment, local);\n\t\t\t\ttransition_in(container1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(container0.$$.fragment, local);\n\t\t\t\ttransition_out(container1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(container0);\n\t\t\t\tdestroy_component(container1);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$4($$self, $$props, $$invalidate) {\n\t\tlet { label = \"Invalid label\" } = $$props;\n\t\tlet { HTMLId = `input-radio-${Math.random().toString(36).substring(2, 10)}` } = $$props;\n\t\tlet { items = [] } = $$props;\n\t\tlet { selected = -1 } = $$props;\n\n\t\tlet { onBeforeSelect = () => {\n\t\t\t\n\t\t} } = $$props;\n\n\t\tlet { gap = 0 } = $$props;\n\t\tlet { wrap = false } = $$props;\n\t\tlet { required = false } = $$props;\n\t\tlet radioElements = [];\n\n\t\tconst processName = selectedItem => {\n\t\t\tconst name = `${selectedItem === null || selectedItem === void 0\n\t\t? void 0\n\t\t: selectedItem.name}-${selectedItem === null || selectedItem === void 0\n\t\t? void 0\n\t\t: selectedItem.id}`;\n\n\t\t\treturn name.replace(\/[^a-zA-Z0-9]\/g, \"-\");\n\t\t};\n\n\t\tconst markSelected = radio => {\n\t\t\tvar _a;\n\t\t\tif (!radio) return;\n\n\t\t\tArray.from(document.querySelectorAll(`.${HTMLId}`)).filter(i => !!i).map(i => {\n\t\t\t\tvar _a;\n\t\t\t\ti.checked = false;\n\n\t\t\t\t(_a = i.parentElement) === null || _a === void 0\n\t\t\t\t? void 0\n\t\t\t\t: _a.classList.remove(\"checked\");\n\t\t\t});\n\n\t\t\tradio.checked = true;\n\n\t\t\t(_a = radio.parentElement) === null || _a === void 0\n\t\t\t? void 0\n\t\t\t: _a.classList.add(\"checked\");\n\t\t};\n\n\t\tconst onImageClick = (radio, index) => {\n\t\t\tmarkSelected(radio);\n\t\t\tonBeforeSelect(index);\n\t\t\t$$invalidate(0, selected = index);\n\t\t};\n\n\t\tconst func = i => i.id === selected;\n\n\t\tfunction input_binding($$value, index) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tradioElements[index] = $$value;\n\t\t\t\t$$invalidate(7, radioElements);\n\t\t\t});\n\t\t}\n\n\t\tconst click_handler = (index, id) => {\n\t\t\tonImageClick(radioElements[index], id);\n\t\t};\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('label' in $$props) $$invalidate(1, label = $$props.label);\n\t\t\tif ('HTMLId' in $$props) $$invalidate(2, HTMLId = $$props.HTMLId);\n\t\t\tif ('items' in $$props) $$invalidate(3, items = $$props.items);\n\t\t\tif ('selected' in $$props) $$invalidate(0, selected = $$props.selected);\n\t\t\tif ('onBeforeSelect' in $$props) $$invalidate(10, onBeforeSelect = $$props.onBeforeSelect);\n\t\t\tif ('gap' in $$props) $$invalidate(4, gap = $$props.gap);\n\t\t\tif ('wrap' in $$props) $$invalidate(5, wrap = $$props.wrap);\n\t\t\tif ('required' in $$props) $$invalidate(6, required = $$props.required);\n\t\t};\n\n\t\treturn [\n\t\t\tselected,\n\t\t\tlabel,\n\t\t\tHTMLId,\n\t\t\titems,\n\t\t\tgap,\n\t\t\twrap,\n\t\t\trequired,\n\t\t\tradioElements,\n\t\t\tprocessName,\n\t\t\tonImageClick,\n\t\t\tonBeforeSelect,\n\t\t\tfunc,\n\t\t\tinput_binding,\n\t\t\tclick_handler\n\t\t];\n\t}\n\n\tclass RadioInput extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\n\t\t\tinit(\n\t\t\t\tthis,\n\t\t\t\toptions,\n\t\t\t\tinstance$4,\n\t\t\t\tcreate_fragment$4,\n\t\t\t\tsafe_not_equal,\n\t\t\t\t{\n\t\t\t\t\tlabel: 1,\n\t\t\t\t\tHTMLId: 2,\n\t\t\t\t\titems: 3,\n\t\t\t\t\tselected: 0,\n\t\t\t\t\tonBeforeSelect: 10,\n\t\t\t\t\tgap: 4,\n\t\t\t\t\twrap: 5,\n\t\t\t\t\trequired: 6\n\t\t\t\t},\n\t\t\t\tadd_css$3\n\t\t\t);\n\t\t}\n\n\t\tget label() {\n\t\t\treturn this.$$.ctx[1];\n\t\t}\n\n\t\tset label(label) {\n\t\t\tthis.$$set({ label });\n\t\t\tflush();\n\t\t}\n\n\t\tget HTMLId() {\n\t\t\treturn this.$$.ctx[2];\n\t\t}\n\n\t\tset HTMLId(HTMLId) {\n\t\t\tthis.$$set({ HTMLId });\n\t\t\tflush();\n\t\t}\n\n\t\tget items() {\n\t\t\treturn this.$$.ctx[3];\n\t\t}\n\n\t\tset items(items) {\n\t\t\tthis.$$set({ items });\n\t\t\tflush();\n\t\t}\n\n\t\tget selected() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset selected(selected) {\n\t\t\tthis.$$set({ selected });\n\t\t\tflush();\n\t\t}\n\n\t\tget onBeforeSelect() {\n\t\t\treturn this.$$.ctx[10];\n\t\t}\n\n\t\tset onBeforeSelect(onBeforeSelect) {\n\t\t\tthis.$$set({ onBeforeSelect });\n\t\t\tflush();\n\t\t}\n\n\t\tget gap() {\n\t\t\treturn this.$$.ctx[4];\n\t\t}\n\n\t\tset gap(gap) {\n\t\t\tthis.$$set({ gap });\n\t\t\tflush();\n\t\t}\n\n\t\tget wrap() {\n\t\t\treturn this.$$.ctx[5];\n\t\t}\n\n\t\tset wrap(wrap) {\n\t\t\tthis.$$set({ wrap });\n\t\t\tflush();\n\t\t}\n\n\t\tget required() {\n\t\t\treturn this.$$.ctx[6];\n\t\t}\n\n\t\tset required(required) {\n\t\t\tthis.$$set({ required });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(RadioInput, {\"label\":{},\"HTMLId\":{},\"items\":{},\"selected\":{},\"onBeforeSelect\":{},\"gap\":{},\"wrap\":{\"type\":\"Boolean\"},\"required\":{\"type\":\"Boolean\"}}, [], [], true);\n\n\t\/* src\\components\\views\\configSubPanel.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction create_default_slot$2(ctx) {\n\t\tlet numberinput0;\n\t\tlet updating_value;\n\t\tlet t;\n\t\tlet numberinput1;\n\t\tlet updating_value_1;\n\t\tlet current;\n\n\t\tfunction numberinput0_value_binding(value) {\n\t\t\t\/*numberinput0_value_binding*\/ ctx[12](value);\n\t\t}\n\n\t\tlet numberinput0_props = {\n\t\t\trequired: true,\n\t\t\tmin: 1750,\n\t\t\tmax: 7000,\n\t\t\tmetric: \"mm\",\n\t\t\tlabel: \/*$languageService*\/ ctx[7].get(ConfiguratorKey.WIDTH)\n\t\t};\n\n\t\tif (\/*$configStore*\/ ctx[1].width !== void 0) {\n\t\t\tnumberinput0_props.value = \/*$configStore*\/ ctx[1].width;\n\t\t}\n\n\t\tnumberinput0 = new NumberInput({ props: numberinput0_props });\n\t\tbinding_callbacks.push(() => bind(numberinput0, 'value', numberinput0_value_binding));\n\n\t\tfunction numberinput1_value_binding(value) {\n\t\t\t\/*numberinput1_value_binding*\/ ctx[13](value);\n\t\t}\n\n\t\tlet numberinput1_props = {\n\t\t\trequired: true,\n\t\t\tmin: 1750,\n\t\t\tmax: 5000,\n\t\t\tmetric: \"mm\",\n\t\t\tlabel: \/*$languageService*\/ ctx[7].get(ConfiguratorKey.HEIGHT)\n\t\t};\n\n\t\tif (\/*$configStore*\/ ctx[1].height !== void 0) {\n\t\t\tnumberinput1_props.value = \/*$configStore*\/ ctx[1].height;\n\t\t}\n\n\t\tnumberinput1 = new NumberInput({ props: numberinput1_props });\n\t\tbinding_callbacks.push(() => bind(numberinput1, 'value', numberinput1_value_binding));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(numberinput0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(numberinput1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(numberinput0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(numberinput1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst numberinput0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 128) numberinput0_changes.label = \/*$languageService*\/ ctx[7].get(ConfiguratorKey.WIDTH);\n\n\t\t\t\tif (!updating_value && dirty & \/*$configStore*\/ 2) {\n\t\t\t\t\tupdating_value = true;\n\t\t\t\t\tnumberinput0_changes.value = \/*$configStore*\/ ctx[1].width;\n\t\t\t\t\tadd_flush_callback(() => updating_value = false);\n\t\t\t\t}\n\n\t\t\t\tnumberinput0.$set(numberinput0_changes);\n\t\t\t\tconst numberinput1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 128) numberinput1_changes.label = \/*$languageService*\/ ctx[7].get(ConfiguratorKey.HEIGHT);\n\n\t\t\t\tif (!updating_value_1 && dirty & \/*$configStore*\/ 2) {\n\t\t\t\t\tupdating_value_1 = true;\n\t\t\t\t\tnumberinput1_changes.value = \/*$configStore*\/ ctx[1].height;\n\t\t\t\t\tadd_flush_callback(() => updating_value_1 = false);\n\t\t\t\t}\n\n\t\t\t\tnumberinput1.$set(numberinput1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(numberinput0.$$.fragment, local);\n\t\t\t\ttransition_in(numberinput1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(numberinput0.$$.fragment, local);\n\t\t\t\ttransition_out(numberinput1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(numberinput0, detaching);\n\t\t\t\tdestroy_component(numberinput1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$3(ctx) {\n\t\tlet form;\n\t\tlet titlebar;\n\t\tlet t0;\n\t\tlet container;\n\t\tlet t1;\n\t\tlet radioinput0;\n\t\tlet updating_selected;\n\t\tlet t2;\n\t\tlet radioinput1;\n\t\tlet updating_selected_1;\n\t\tlet t3;\n\t\tlet radioinput2;\n\t\tlet updating_selected_2;\n\t\tlet current;\n\t\ttitlebar = new TitleBar({});\n\n\t\tcontainer = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: \/*inputDir*\/ ctx[2],\n\t\t\t\t\talignH: LayoutAlign.JUSTIFY,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\t$$slots: { default: [create_default_slot$2] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tfunction radioinput0_selected_binding(value) {\n\t\t\t\/*radioinput0_selected_binding*\/ ctx[15](value);\n\t\t}\n\n\t\tlet radioinput0_props = {\n\t\t\trequired: true,\n\t\t\twrap: true,\n\t\t\tgap: 16,\n\t\t\tlabel: \/*$languageService*\/ ctx[7].get(ConfiguratorKey.MOTIVE),\n\t\t\titems: \/*motives*\/ ctx[3],\n\t\t\tonBeforeSelect: \/*func*\/ ctx[14]\n\t\t};\n\n\t\tif (\/*$configStore*\/ ctx[1].motive !== void 0) {\n\t\t\tradioinput0_props.selected = \/*$configStore*\/ ctx[1].motive;\n\t\t}\n\n\t\tradioinput0 = new RadioInput({ props: radioinput0_props });\n\t\tbinding_callbacks.push(() => bind(radioinput0, 'selected', radioinput0_selected_binding));\n\n\t\tfunction radioinput1_selected_binding(value) {\n\t\t\t\/*radioinput1_selected_binding*\/ ctx[17](value);\n\t\t}\n\n\t\tlet radioinput1_props = {\n\t\t\trequired: true,\n\t\t\twrap: true,\n\t\t\tgap: 16,\n\t\t\tlabel: \/*$languageService*\/ ctx[7].get(ConfiguratorKey.TEXTURE),\n\t\t\titems: \/*textures*\/ ctx[4],\n\t\t\tonBeforeSelect: \/*func_1*\/ ctx[16]\n\t\t};\n\n\t\tif (\/*$configStore*\/ ctx[1].texture !== void 0) {\n\t\t\tradioinput1_props.selected = \/*$configStore*\/ ctx[1].texture;\n\t\t}\n\n\t\tradioinput1 = new RadioInput({ props: radioinput1_props });\n\t\tbinding_callbacks.push(() => bind(radioinput1, 'selected', radioinput1_selected_binding));\n\n\t\tfunction radioinput2_selected_binding(value) {\n\t\t\t\/*radioinput2_selected_binding*\/ ctx[18](value);\n\t\t}\n\n\t\tlet radioinput2_props = {\n\t\t\trequired: true,\n\t\t\tgap: 16,\n\t\t\twrap: true,\n\t\t\tlabel: \/*$languageService*\/ ctx[7].get(ConfiguratorKey.COLOR),\n\t\t\titems: \/*colors*\/ ctx[5]\n\t\t};\n\n\t\tif (\/*$configStore*\/ ctx[1].color !== void 0) {\n\t\t\tradioinput2_props.selected = \/*$configStore*\/ ctx[1].color;\n\t\t}\n\n\t\tradioinput2 = new RadioInput({ props: radioinput2_props });\n\t\tbinding_callbacks.push(() => bind(radioinput2, 'selected', radioinput2_selected_binding));\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tform = element(\"form\");\n\t\t\t\tcreate_component(titlebar.$$.fragment);\n\t\t\t\tt0 = space();\n\t\t\t\tcreate_component(container.$$.fragment);\n\t\t\t\tt1 = space();\n\t\t\t\tcreate_component(radioinput0.$$.fragment);\n\t\t\t\tt2 = space();\n\t\t\t\tcreate_component(radioinput1.$$.fragment);\n\t\t\t\tt3 = space();\n\t\t\t\tcreate_component(radioinput2.$$.fragment);\n\t\t\t\tset_style(form, \"display\", \"contents\");\n\t\t\t\tattr(form, \"id\", \"configInfo\");\n\t\t\t\tattr(form, \"name\", \"configInfo\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, form, anchor);\n\t\t\t\tmount_component(titlebar, form, null);\n\t\t\t\tappend(form, t0);\n\t\t\t\tmount_component(container, form, null);\n\t\t\t\tappend(form, t1);\n\t\t\t\tmount_component(radioinput0, form, null);\n\t\t\t\tappend(form, t2);\n\t\t\t\tmount_component(radioinput1, form, null);\n\t\t\t\tappend(form, t3);\n\t\t\t\tmount_component(radioinput2, form, null);\n\t\t\t\t\/*form_binding*\/ ctx[19](form);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst container_changes = {};\n\t\t\t\tif (dirty & \/*inputDir*\/ 4) container_changes.direction = \/*inputDir*\/ ctx[2];\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService, $configStore*\/ 134217858) {\n\t\t\t\t\tcontainer_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer.$set(container_changes);\n\t\t\t\tconst radioinput0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 128) radioinput0_changes.label = \/*$languageService*\/ ctx[7].get(ConfiguratorKey.MOTIVE);\n\t\t\t\tif (dirty & \/*motives*\/ 8) radioinput0_changes.items = \/*motives*\/ ctx[3];\n\t\t\t\tif (dirty & \/*prevColor, $configStore*\/ 66) radioinput0_changes.onBeforeSelect = \/*func*\/ ctx[14];\n\n\t\t\t\tif (!updating_selected && dirty & \/*$configStore*\/ 2) {\n\t\t\t\t\tupdating_selected = true;\n\t\t\t\t\tradioinput0_changes.selected = \/*$configStore*\/ ctx[1].motive;\n\t\t\t\t\tadd_flush_callback(() => updating_selected = false);\n\t\t\t\t}\n\n\t\t\t\tradioinput0.$set(radioinput0_changes);\n\t\t\t\tconst radioinput1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 128) radioinput1_changes.label = \/*$languageService*\/ ctx[7].get(ConfiguratorKey.TEXTURE);\n\t\t\t\tif (dirty & \/*textures*\/ 16) radioinput1_changes.items = \/*textures*\/ ctx[4];\n\t\t\t\tif (dirty & \/*prevColor, $configStore*\/ 66) radioinput1_changes.onBeforeSelect = \/*func_1*\/ ctx[16];\n\n\t\t\t\tif (!updating_selected_1 && dirty & \/*$configStore*\/ 2) {\n\t\t\t\t\tupdating_selected_1 = true;\n\t\t\t\t\tradioinput1_changes.selected = \/*$configStore*\/ ctx[1].texture;\n\t\t\t\t\tadd_flush_callback(() => updating_selected_1 = false);\n\t\t\t\t}\n\n\t\t\t\tradioinput1.$set(radioinput1_changes);\n\t\t\t\tconst radioinput2_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 128) radioinput2_changes.label = \/*$languageService*\/ ctx[7].get(ConfiguratorKey.COLOR);\n\t\t\t\tif (dirty & \/*colors*\/ 32) radioinput2_changes.items = \/*colors*\/ ctx[5];\n\n\t\t\t\tif (!updating_selected_2 && dirty & \/*$configStore*\/ 2) {\n\t\t\t\t\tupdating_selected_2 = true;\n\t\t\t\t\tradioinput2_changes.selected = \/*$configStore*\/ ctx[1].color;\n\t\t\t\t\tadd_flush_callback(() => updating_selected_2 = false);\n\t\t\t\t}\n\n\t\t\t\tradioinput2.$set(radioinput2_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(titlebar.$$.fragment, local);\n\t\t\t\ttransition_in(container.$$.fragment, local);\n\t\t\t\ttransition_in(radioinput0.$$.fragment, local);\n\t\t\t\ttransition_in(radioinput1.$$.fragment, local);\n\t\t\t\ttransition_in(radioinput2.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(titlebar.$$.fragment, local);\n\t\t\t\ttransition_out(container.$$.fragment, local);\n\t\t\t\ttransition_out(radioinput0.$$.fragment, local);\n\t\t\t\ttransition_out(radioinput1.$$.fragment, local);\n\t\t\t\ttransition_out(radioinput2.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(form);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(titlebar);\n\t\t\t\tdestroy_component(container);\n\t\t\t\tdestroy_component(radioinput0);\n\t\t\t\tdestroy_component(radioinput1);\n\t\t\t\tdestroy_component(radioinput2);\n\t\t\t\t\/*form_binding*\/ ctx[19](null);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$3($$self, $$props, $$invalidate) {\n\t\tlet $configStore;\n\t\tlet $isMobile;\n\t\tlet $isTablet;\n\t\tlet $isDesktop;\n\t\tlet $configInit;\n\t\tlet $defaultConfigStore;\n\t\tlet $configService;\n\t\tlet $languageService;\n\t\tcomponent_subscribe($$self, configStore, $$value => $$invalidate(1, $configStore = $$value));\n\t\tcomponent_subscribe($$self, isMobile, $$value => $$invalidate(9, $isMobile = $$value));\n\t\tcomponent_subscribe($$self, isTablet, $$value => $$invalidate(10, $isTablet = $$value));\n\t\tcomponent_subscribe($$self, isDesktop, $$value => $$invalidate(11, $isDesktop = $$value));\n\t\tcomponent_subscribe($$self, configInit, $$value => $$invalidate(20, $configInit = $$value));\n\t\tcomponent_subscribe($$self, defaultConfigStore, $$value => $$invalidate(21, $defaultConfigStore = $$value));\n\t\tcomponent_subscribe($$self, configService, $$value => $$invalidate(22, $configService = $$value));\n\t\tcomponent_subscribe($$self, languageService, $$value => $$invalidate(7, $languageService = $$value));\n\t\tlet { formWrapper } = $$props;\n\t\tlet formElement;\n\t\tlet inputDir = LayoutDirection.HORIZONTAL;\n\t\tlet motives = [];\n\t\tlet textures = [];\n\t\tlet colors = [];\n\t\tlet prevColor = null;\n\n\t\tconst convertConfItemToRadioItem = items => {\n\t\t\tlet selected = null;\n\t\t\tif (!items.length) return { selected, processedArray: [] };\n\n\t\t\tconst processedArray = items.filter(i => {\n\t\t\t\treturn i.preloadedImage && i.name;\n\t\t\t}).map(i => {\n\t\t\t\tconst result = {\n\t\t\t\t\tid: i.id,\n\t\t\t\t\tname: i.name,\n\t\t\t\t\timage: i.preloadedImage\n\t\t\t\t};\n\n\t\t\t\tif (i.selected) selected = i;\n\t\t\t\treturn result;\n\t\t\t});\n\n\t\t\tif (selected === null) selected = items.filter(i => i.preloadedImage && i.name)[0];\n\t\t\treturn { selected, processedArray };\n\t\t};\n\n\t\tconst getConfItem = (key, parentId = null) => {\n\t\t\treturn convertConfItemToRadioItem($configService.get(key, parentId));\n\t\t};\n\n\t\tconst updateConfigArrays = () => {\n\t\t\tconst motiveData = getConfItem(ConfiguratorKey.MOTIVE);\n\t\t\tconst textureData = getConfItem(ConfiguratorKey.TEXTURE, $configStore.motive);\n\t\t\tconst colorData = getConfItem(ConfiguratorKey.COLOR, $configStore.texture);\n\t\t\tconst prevColorData = $configService.get(ConfiguratorKey.COLOR).find(c => c.id === prevColor);\n\n\t\t\tconst sibling = colorData.processedArray.find(color => {\n\t\t\t\tvar _a;\n\n\t\t\t\treturn (_a = prevColorData === null || prevColorData === void 0\n\t\t\t\t? void 0\n\t\t\t\t: prevColorData.siblings) === null || _a === void 0\n\t\t\t\t? void 0\n\t\t\t\t: _a.some(s => s.id === color.id);\n\t\t\t});\n\n\t\t\t$$invalidate(3, motives = motiveData.processedArray);\n\t\t\t$$invalidate(4, textures = textureData.processedArray);\n\t\t\t$$invalidate(5, colors = colorData.processedArray);\n\t\t\tconst isTextureValid = !!textures.find(t => t.id === $configStore.texture);\n\t\t\tconst isColorValid = !!colors.find(t => t.id === $configStore.color);\n\n\t\t\tif (!isTextureValid && textures.length) {\n\t\t\t\tset_store_value(configStore, $configStore.texture = textures[0].id, $configStore);\n\t\t\t\tupdateConfigArrays();\n\t\t\t}\n\n\t\t\tif (!isColorValid && colors.length) {\n\t\t\t\tif (sibling) set_store_value(configStore, $configStore.color = sibling.id, $configStore); else set_store_value(configStore, $configStore.color = colors[0].id, $configStore);\n\t\t\t\tupdateConfigArrays();\n\t\t\t}\n\t\t};\n\n\t\tonMount(() => {\n\t\t\tvar _a, _b, _c, _d, _e;\n\t\t\tif ($configInit) return;\n\t\t\tconst motiveData = getConfItem(ConfiguratorKey.MOTIVE);\n\n\t\t\tconst textureData = getConfItem(ConfiguratorKey.TEXTURE, (_a = motiveData.selected) === null || _a === void 0\n\t\t\t? void 0\n\t\t\t: _a.id);\n\n\t\t\tconst colorData = getConfItem(ConfiguratorKey.COLOR, (_b = textureData.selected) === null || _b === void 0\n\t\t\t? void 0\n\t\t\t: _b.id);\n\n\t\t\t$$invalidate(3, motives = motiveData.processedArray);\n\t\t\t$$invalidate(4, textures = textureData.processedArray);\n\t\t\t$$invalidate(5, colors = colorData.processedArray);\n\n\t\t\tset_store_value(\n\t\t\t\tconfigStore,\n\t\t\t\t$configStore.motive = ((_c = motiveData.selected) === null || _c === void 0\n\t\t\t\t? void 0\n\t\t\t\t: _c.id) || -1,\n\t\t\t\t$configStore\n\t\t\t);\n\n\t\t\tset_store_value(\n\t\t\t\tconfigStore,\n\t\t\t\t$configStore.texture = ((_d = textureData.selected) === null || _d === void 0\n\t\t\t\t? void 0\n\t\t\t\t: _d.id) || textures[0].id,\n\t\t\t\t$configStore\n\t\t\t);\n\n\t\t\tset_store_value(\n\t\t\t\tconfigStore,\n\t\t\t\t$configStore.color = ((_e = colorData.selected) === null || _e === void 0\n\t\t\t\t? void 0\n\t\t\t\t: _e.id) || colors[0].id,\n\t\t\t\t$configStore\n\t\t\t);\n\n\t\t\tset_store_value(defaultConfigStore, $defaultConfigStore.motive = $configStore.motive, $defaultConfigStore);\n\t\t\tset_store_value(defaultConfigStore, $defaultConfigStore.texture = $configStore.texture, $defaultConfigStore);\n\t\t\tset_store_value(defaultConfigStore, $defaultConfigStore.color = $configStore.color, $defaultConfigStore);\n\t\t\tset_store_value(configInit, $configInit = true, $configInit);\n\t\t});\n\n\t\tconst onBreakpointChange = () => {\n\t\t\t$$invalidate(2, inputDir = $isMobile\n\t\t\t? LayoutDirection.VERTICAL\n\t\t\t: LayoutDirection.HORIZONTAL);\n\t\t};\n\n\t\tfunction numberinput0_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($configStore.width, value)) {\n\t\t\t\t$configStore.width = value;\n\t\t\t\tconfigStore.set($configStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction numberinput1_value_binding(value) {\n\t\t\tif ($$self.$$.not_equal($configStore.height, value)) {\n\t\t\t\t$configStore.height = value;\n\t\t\t\tconfigStore.set($configStore);\n\t\t\t}\n\t\t}\n\n\t\tconst func = () => $$invalidate(6, prevColor = $configStore.color);\n\n\t\tfunction radioinput0_selected_binding(value) {\n\t\t\tif ($$self.$$.not_equal($configStore.motive, value)) {\n\t\t\t\t$configStore.motive = value;\n\t\t\t\tconfigStore.set($configStore);\n\t\t\t}\n\t\t}\n\n\t\tconst func_1 = () => $$invalidate(6, prevColor = $configStore.color);\n\n\t\tfunction radioinput1_selected_binding(value) {\n\t\t\tif ($$self.$$.not_equal($configStore.texture, value)) {\n\t\t\t\t$configStore.texture = value;\n\t\t\t\tconfigStore.set($configStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction radioinput2_selected_binding(value) {\n\t\t\tif ($$self.$$.not_equal($configStore.color, value)) {\n\t\t\t\t$configStore.color = value;\n\t\t\t\tconfigStore.set($configStore);\n\t\t\t}\n\t\t}\n\n\t\tfunction form_binding($$value) {\n\t\t\tbinding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\tformElement = $$value;\n\t\t\t\t$$invalidate(0, formElement);\n\t\t\t});\n\t\t}\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('formWrapper' in $$props) $$invalidate(8, formWrapper = $$props.formWrapper);\n\t\t};\n\n\t\t$$self.$$.update = () => {\n\t\t\tif ($$self.$$.dirty & \/*$isDesktop, $isTablet, $isMobile, $configStore, formElement*\/ 3587) {\n\t\t\t\t{\n\t\t\t\t\tonBreakpointChange();\n\t\t\t\t\t$$invalidate(8, formWrapper.form = formElement, formWrapper);\n\n\t\t\t\t\tif ($configStore.motive || $configStore.texture || $configStore.color) {\n\t\t\t\t\t\tupdateConfigArrays();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn [\n\t\t\tformElement,\n\t\t\t$configStore,\n\t\t\tinputDir,\n\t\t\tmotives,\n\t\t\ttextures,\n\t\t\tcolors,\n\t\t\tprevColor,\n\t\t\t$languageService,\n\t\t\tformWrapper,\n\t\t\t$isMobile,\n\t\t\t$isTablet,\n\t\t\t$isDesktop,\n\t\t\tnumberinput0_value_binding,\n\t\t\tnumberinput1_value_binding,\n\t\t\tfunc,\n\t\t\tradioinput0_selected_binding,\n\t\t\tfunc_1,\n\t\t\tradioinput1_selected_binding,\n\t\t\tradioinput2_selected_binding,\n\t\t\tform_binding\n\t\t];\n\t}\n\n\tclass ConfigSubPanel extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$3, create_fragment$3, safe_not_equal, { formWrapper: 8 });\n\t\t}\n\n\t\tget formWrapper() {\n\t\t\treturn this.$$.ctx[8];\n\t\t}\n\n\t\tset formWrapper(formWrapper) {\n\t\t\tthis.$$set({ formWrapper });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(ConfigSubPanel, {\"formWrapper\":{}}, [], [], true);\n\n\t\/* src\\components\\views\\successSubPanel.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$2(target) {\n\t\tappend_styles(target, \"svelte-1ucwib1\", \".successPanel.svelte-1ucwib1{display:flex;flex-direction:column;align-items:center}.checkmark.svelte-1ucwib1{font-size:60px}\");\n\t}\n\n\t\/\/ (10:4) {:else}\n\tfunction create_else_block$1(ctx) {\n\t\tlet h1;\n\t\tlet t0_value = \/*$languageService*\/ ctx[1].get(UIKey.SuccessTitle) + \"\";\n\t\tlet t0;\n\t\tlet t1;\n\t\tlet i;\n\t\tlet t3;\n\t\tlet p;\n\t\tlet t4_value = \/*$languageService*\/ ctx[1].get(UIKey.SuccessText) + \"\";\n\t\tlet t4;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\th1 = element(\"h1\");\n\t\t\t\tt0 = text(t0_value);\n\t\t\t\tt1 = space();\n\t\t\t\ti = element(\"i\");\n\t\t\t\ti.textContent = \"\u2714\ufe0f\";\n\t\t\t\tt3 = space();\n\t\t\t\tp = element(\"p\");\n\t\t\t\tt4 = text(t4_value);\n\t\t\t\tattr(i, \"class\", \"checkmark svelte-1ucwib1\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, h1, anchor);\n\t\t\t\tappend(h1, t0);\n\t\t\t\tinsert(target, t1, anchor);\n\t\t\t\tinsert(target, i, anchor);\n\t\t\t\tinsert(target, t3, anchor);\n\t\t\t\tinsert(target, p, anchor);\n\t\t\t\tappend(p, t4);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t0_value !== (t0_value = \/*$languageService*\/ ctx[1].get(UIKey.SuccessTitle) + \"\")) set_data(t0, t0_value);\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t4_value !== (t4_value = \/*$languageService*\/ ctx[1].get(UIKey.SuccessText) + \"\")) set_data(t4, t4_value);\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(h1);\n\t\t\t\t\tdetach(t1);\n\t\t\t\t\tdetach(i);\n\t\t\t\t\tdetach(t3);\n\t\t\t\t\tdetach(p);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (6:4) {#if errorMessage}\n\tfunction create_if_block$2(ctx) {\n\t\tlet h1;\n\t\tlet t0_value = \/*$languageService*\/ ctx[1].get(UIKey.ErrorTitle) + \"\";\n\t\tlet t0;\n\t\tlet t1;\n\t\tlet i;\n\t\tlet t3;\n\t\tlet p;\n\t\tlet t4;\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\th1 = element(\"h1\");\n\t\t\t\tt0 = text(t0_value);\n\t\t\t\tt1 = space();\n\t\t\t\ti = element(\"i\");\n\t\t\t\ti.textContent = \"\u274c\";\n\t\t\t\tt3 = space();\n\t\t\t\tp = element(\"p\");\n\t\t\t\tt4 = text(\/*errorMessage*\/ ctx[0]);\n\t\t\t\tattr(i, \"class\", \"checkmark svelte-1ucwib1\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, h1, anchor);\n\t\t\t\tappend(h1, t0);\n\t\t\t\tinsert(target, t1, anchor);\n\t\t\t\tinsert(target, i, anchor);\n\t\t\t\tinsert(target, t3, anchor);\n\t\t\t\tinsert(target, p, anchor);\n\t\t\t\tappend(p, t4);\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tif (dirty & \/*$languageService*\/ 2 && t0_value !== (t0_value = \/*$languageService*\/ ctx[1].get(UIKey.ErrorTitle) + \"\")) set_data(t0, t0_value);\n\t\t\t\tif (dirty & \/*errorMessage*\/ 1) set_data(t4, \/*errorMessage*\/ ctx[0]);\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(h1);\n\t\t\t\t\tdetach(t1);\n\t\t\t\t\tdetach(i);\n\t\t\t\t\tdetach(t3);\n\t\t\t\t\tdetach(p);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$2(ctx) {\n\t\tlet div;\n\n\t\tfunction select_block_type(ctx, dirty) {\n\t\t\tif (\/*errorMessage*\/ ctx[0]) return create_if_block$2;\n\t\t\treturn create_else_block$1;\n\t\t}\n\n\t\tlet current_block_type = select_block_type(ctx);\n\t\tlet if_block = current_block_type(ctx);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tdiv = element(\"div\");\n\t\t\t\tif_block.c();\n\t\t\t\tattr(div, \"class\", \"successPanel svelte-1ucwib1\");\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tinsert(target, div, anchor);\n\t\t\t\tif_block.m(div, null);\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tif (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n\t\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t\t} else {\n\t\t\t\t\tif_block.d(1);\n\t\t\t\t\tif_block = current_block_type(ctx);\n\n\t\t\t\t\tif (if_block) {\n\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t\tif_block.m(div, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ti: noop,\n\t\t\to: noop,\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(div);\n\t\t\t\t}\n\n\t\t\t\tif_block.d();\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$2($$self, $$props, $$invalidate) {\n\t\tlet $languageService;\n\t\tcomponent_subscribe($$self, languageService, $$value => $$invalidate(1, $languageService = $$value));\n\t\tlet { errorMessage = null } = $$props;\n\n\t\t$$self.$$set = $$props => {\n\t\t\tif ('errorMessage' in $$props) $$invalidate(0, errorMessage = $$props.errorMessage);\n\t\t};\n\n\t\treturn [errorMessage, $languageService];\n\t}\n\n\tclass SuccessSubPanel extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$2, create_fragment$2, safe_not_equal, { errorMessage: 0 }, add_css$2);\n\t\t}\n\n\t\tget errorMessage() {\n\t\t\treturn this.$$.ctx[0];\n\t\t}\n\n\t\tset errorMessage(errorMessage) {\n\t\t\tthis.$$set({ errorMessage });\n\t\t\tflush();\n\t\t}\n\t}\n\n\tcreate_custom_element(SuccessSubPanel, {\"errorMessage\":{}}, [], [], true);\n\n\t\/* src\\components\\layouts\\rightPanel.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css$1(target) {\n\t\tappend_styles(target, \"svelte-1jy28lk\", \".container.right-panel_wrapper{width:727px;background:var(--background-color);filter:drop-shadow(14px 5px 20px #000)}@media screen and (min-width: 881px) and (max-width: 1620px){.container.right-panel_wrapper{width:437px}}@media screen and (max-width: 880px){.container.right-panel_wrapper{width:100vw;padding-top:240px}}.container.right-panel{width:80%;padding:25px;flex-grow:1;overflow-y:auto;scrollbar-width:thin}.container.right-panel-bottom{width:80%;padding:8px}\");\n\t}\n\n\t\/\/ (78:61) \n\tfunction create_if_block_5(ctx) {\n\t\tlet successsubpanel;\n\t\tlet current;\n\n\t\tsuccesssubpanel = new SuccessSubPanel({\n\t\t\t\tprops: { errorMessage: \/*errorMessage*\/ ctx[1] }\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(successsubpanel.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(successsubpanel, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst successsubpanel_changes = {};\n\t\t\t\tif (dirty & \/*errorMessage*\/ 2) successsubpanel_changes.errorMessage = \/*errorMessage*\/ ctx[1];\n\t\t\t\tsuccesssubpanel.$set(successsubpanel_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(successsubpanel.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(successsubpanel.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(successsubpanel, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (76:64) \n\tfunction create_if_block_4(ctx) {\n\t\tlet clientinfosubpanel;\n\t\tlet current;\n\n\t\tclientinfosubpanel = new ClientInfoSubPanel({\n\t\t\t\tprops: {\n\t\t\t\t\tformWrapper: \/*clientFormWrapper*\/ ctx[4]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(clientinfosubpanel.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(clientinfosubpanel, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp: noop,\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(clientinfosubpanel.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(clientinfosubpanel.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(clientinfosubpanel, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (74:8) {#if subPanels[activeIdx] === \"ConfigSubPanel\"}\n\tfunction create_if_block_3(ctx) {\n\t\tlet configsubpanel;\n\t\tlet current;\n\n\t\tconfigsubpanel = new ConfigSubPanel({\n\t\t\t\tprops: {\n\t\t\t\t\tformWrapper: \/*configFormWrapper*\/ ctx[3]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(configsubpanel.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(configsubpanel, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp: noop,\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(configsubpanel.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(configsubpanel.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(configsubpanel, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (73:5) <Container class={\"right-panel\"} gap={32}>\n\tfunction create_default_slot_3(ctx) {\n\t\tlet current_block_type_index;\n\t\tlet if_block;\n\t\tlet if_block_anchor;\n\t\tlet current;\n\t\tconst if_block_creators = [create_if_block_3, create_if_block_4, create_if_block_5];\n\t\tconst if_blocks = [];\n\n\t\tfunction select_block_type(ctx, dirty) {\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"ConfigSubPanel\") return 0;\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"ClientInfoSubPanel\") return 1;\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"SuccessSubPanel\") return 2;\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (~(current_block_type_index = select_block_type(ctx))) {\n\t\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\t\t}\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tif (if_block) if_block.c();\n\t\t\t\tif_block_anchor = empty();\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\tif_blocks[current_block_type_index].m(target, anchor);\n\t\t\t\t}\n\n\t\t\t\tinsert(target, if_block_anchor, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tlet previous_block_index = current_block_type_index;\n\t\t\t\tcurrent_block_type_index = select_block_type(ctx);\n\n\t\t\t\tif (current_block_type_index === previous_block_index) {\n\t\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\t\tif_blocks[current_block_type_index].p(ctx, dirty);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (if_block) {\n\t\t\t\t\t\tgroup_outros();\n\n\t\t\t\t\t\ttransition_out(if_blocks[previous_block_index], 1, 1, () => {\n\t\t\t\t\t\t\tif_blocks[previous_block_index] = null;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\t\tif_block = if_blocks[current_block_type_index];\n\n\t\t\t\t\t\tif (!if_block) {\n\t\t\t\t\t\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\t\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttransition_in(if_block, 1);\n\t\t\t\t\t\tif_block.m(if_block_anchor.parentNode, if_block_anchor);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif_block = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(if_block);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(if_block);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(if_block_anchor);\n\t\t\t\t}\n\n\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\tif_blocks[current_block_type_index].d(detaching);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (114:61) \n\tfunction create_if_block_2(ctx) {\n\t\tlet button;\n\t\tlet current;\n\n\t\tbutton = new Button({\n\t\t\t\tprops: {\n\t\t\t\t\tlabel: \/*$languageService*\/ ctx[2].get(UIKey.CreateNewConfig),\n\t\t\t\t\ttype: LayoutPriority.PRIMARY,\n\t\t\t\t\tonClick: \/*onReset*\/ ctx[7]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(button.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(button, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst button_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 4) button_changes.label = \/*$languageService*\/ ctx[2].get(UIKey.CreateNewConfig);\n\t\t\t\tbutton.$set(button_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(button.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(button.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(button, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (96:64) \n\tfunction create_if_block_1(ctx) {\n\t\tlet container;\n\t\tlet current;\n\n\t\tcontainer = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tdirection: LayoutDirection.HORIZONTAL,\n\t\t\t\t\tgap: 16,\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_2] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(container.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(container, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst container_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, $languageService*\/ 131076) {\n\t\t\t\t\tcontainer_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer.$set(container_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(container.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(container.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(container, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (88:8) {#if subPanels[activeIdx] === \"ConfigSubPanel\"}\n\tfunction create_if_block$1(ctx) {\n\t\tlet button;\n\t\tlet current;\n\n\t\tbutton = new Button({\n\t\t\t\tprops: {\n\t\t\t\t\tsubmit: true,\n\t\t\t\t\tform: \"configInfo\",\n\t\t\t\t\tlabel: \/*$languageService*\/ ctx[2].get(UIKey.Next),\n\t\t\t\t\ttype: LayoutPriority.PRIMARY,\n\t\t\t\t\tonClick: \/*onLeavingConfigPage*\/ ctx[8]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(button.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(button, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst button_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 4) button_changes.label = \/*$languageService*\/ ctx[2].get(UIKey.Next);\n\t\t\t\tbutton.$set(button_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(button.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(button.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(button, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (97:12) <Container                  direction={LayoutDirection.HORIZONTAL}                  gap={16}                  heightType={LayoutWrapType.HUG}              >\n\tfunction create_default_slot_2(ctx) {\n\t\tlet button0;\n\t\tlet t;\n\t\tlet button1;\n\t\tlet current;\n\n\t\tbutton0 = new Button({\n\t\t\t\tprops: {\n\t\t\t\t\tlabel: \/*$languageService*\/ ctx[2].get(UIKey.Back),\n\t\t\t\t\tonClick: \/*onPrev*\/ ctx[6]\n\t\t\t\t}\n\t\t\t});\n\n\t\tbutton1 = new Button({\n\t\t\t\tprops: {\n\t\t\t\t\tsubmit: true,\n\t\t\t\t\tform: \"contactInfo\",\n\t\t\t\t\tlabel: \/*$languageService*\/ ctx[2].get(UIKey.Submit),\n\t\t\t\t\ttype: LayoutPriority.PRIMARY,\n\t\t\t\t\tonClick: \/*onSubmit*\/ ctx[9]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(button0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(button1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(button0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(button1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst button0_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 4) button0_changes.label = \/*$languageService*\/ ctx[2].get(UIKey.Back);\n\t\t\t\tbutton0.$set(button0_changes);\n\t\t\t\tconst button1_changes = {};\n\t\t\t\tif (dirty & \/*$languageService*\/ 4) button1_changes.label = \/*$languageService*\/ ctx[2].get(UIKey.Submit);\n\t\t\t\tbutton1.$set(button1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(button0.$$.fragment, local);\n\t\t\t\ttransition_in(button1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(button0.$$.fragment, local);\n\t\t\t\ttransition_out(button1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(button0, detaching);\n\t\t\t\tdestroy_component(button1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (83:4) <Container          gap={16}          class={\"right-panel-bottom\"}          heightType={LayoutWrapType.HUG}      >\n\tfunction create_default_slot_1(ctx) {\n\t\tlet current_block_type_index;\n\t\tlet if_block;\n\t\tlet t;\n\t\tlet progressindicator;\n\t\tlet current;\n\t\tconst if_block_creators = [create_if_block$1, create_if_block_1, create_if_block_2];\n\t\tconst if_blocks = [];\n\n\t\tfunction select_block_type_1(ctx, dirty) {\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"ConfigSubPanel\") return 0;\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"ClientInfoSubPanel\") return 1;\n\t\t\tif (\/*subPanels*\/ ctx[5][\/*activeIdx*\/ ctx[0]] === \"SuccessSubPanel\") return 2;\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (~(current_block_type_index = select_block_type_1(ctx))) {\n\t\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\t\t}\n\n\t\tprogressindicator = new ProgressIndicator({\n\t\t\t\tprops: {\n\t\t\t\t\tnumOfOptions: \/*subPanels*\/ ctx[5].length,\n\t\t\t\t\tactiveIdx: \/*activeIdx*\/ ctx[0]\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tif (if_block) if_block.c();\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(progressindicator.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\tif_blocks[current_block_type_index].m(target, anchor);\n\t\t\t\t}\n\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(progressindicator, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tlet previous_block_index = current_block_type_index;\n\t\t\t\tcurrent_block_type_index = select_block_type_1(ctx);\n\n\t\t\t\tif (current_block_type_index === previous_block_index) {\n\t\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\t\tif_blocks[current_block_type_index].p(ctx, dirty);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (if_block) {\n\t\t\t\t\t\tgroup_outros();\n\n\t\t\t\t\t\ttransition_out(if_blocks[previous_block_index], 1, 1, () => {\n\t\t\t\t\t\t\tif_blocks[previous_block_index] = null;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\t\tif_block = if_blocks[current_block_type_index];\n\n\t\t\t\t\t\tif (!if_block) {\n\t\t\t\t\t\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\t\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif_block.p(ctx, dirty);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttransition_in(if_block, 1);\n\t\t\t\t\t\tif_block.m(t.parentNode, t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif_block = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst progressindicator_changes = {};\n\t\t\t\tif (dirty & \/*activeIdx*\/ 1) progressindicator_changes.activeIdx = \/*activeIdx*\/ ctx[0];\n\t\t\t\tprogressindicator.$set(progressindicator_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(if_block);\n\t\t\t\ttransition_in(progressindicator.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(if_block);\n\t\t\t\ttransition_out(progressindicator.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tif (~current_block_type_index) {\n\t\t\t\t\tif_blocks[current_block_type_index].d(detaching);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(progressindicator, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (68:0) <Container      class={\"right-panel_wrapper\"}      alignV={LayoutAlign.CENTER}      alignH={LayoutAlign.CENTER}      heightType={LayoutWrapType.FILL}      >\n\tfunction create_default_slot$1(ctx) {\n\t\tlet container0;\n\t\tlet t;\n\t\tlet container1;\n\t\tlet current;\n\n\t\tcontainer0 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tclass: \"right-panel\",\n\t\t\t\t\tgap: 32,\n\t\t\t\t\t$$slots: { default: [create_default_slot_3] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\tcontainer1 = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tgap: 16,\n\t\t\t\t\tclass: \"right-panel-bottom\",\n\t\t\t\t\theightType: LayoutWrapType.HUG,\n\t\t\t\t\t$$slots: { default: [create_default_slot_1] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(container0.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(container1.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(container0, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(container1, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tconst container0_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, activeIdx, errorMessage*\/ 131075) {\n\t\t\t\t\tcontainer0_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer0.$set(container0_changes);\n\t\t\t\tconst container1_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, activeIdx, $languageService*\/ 131077) {\n\t\t\t\t\tcontainer1_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer1.$set(container1_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(container0.$$.fragment, local);\n\t\t\t\ttransition_in(container1.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(container0.$$.fragment, local);\n\t\t\t\ttransition_out(container1.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(container0, detaching);\n\t\t\t\tdestroy_component(container1, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment$1(ctx) {\n\t\tlet container;\n\t\tlet current;\n\n\t\tcontainer = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tclass: \"right-panel_wrapper\",\n\t\t\t\t\talignV: LayoutAlign.CENTER,\n\t\t\t\t\talignH: LayoutAlign.CENTER,\n\t\t\t\t\theightType: LayoutWrapType.FILL,\n\t\t\t\t\t$$slots: { default: [create_default_slot$1] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(container.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(container, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst container_changes = {};\n\n\t\t\t\tif (dirty & \/*$$scope, activeIdx, $languageService, errorMessage*\/ 131079) {\n\t\t\t\t\tcontainer_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer.$set(container_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(container.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(container.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(container, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction instance$1($$self, $$props, $$invalidate) {\n\t\tlet $configInit;\n\t\tlet $configService;\n\t\tlet $clientStore;\n\t\tlet $configStore;\n\t\tlet $defaultConfigStore;\n\t\tlet $languageService;\n\t\tcomponent_subscribe($$self, configInit, $$value => $$invalidate(10, $configInit = $$value));\n\t\tcomponent_subscribe($$self, configService, $$value => $$invalidate(11, $configService = $$value));\n\t\tcomponent_subscribe($$self, clientStore, $$value => $$invalidate(12, $clientStore = $$value));\n\t\tcomponent_subscribe($$self, configStore, $$value => $$invalidate(13, $configStore = $$value));\n\t\tcomponent_subscribe($$self, defaultConfigStore, $$value => $$invalidate(14, $defaultConfigStore = $$value));\n\t\tcomponent_subscribe($$self, languageService, $$value => $$invalidate(2, $languageService = $$value));\n\n\t\tvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n\t\t\tfunction adopt(value) {\n\t\t\t\treturn value instanceof P\n\t\t\t\t? value\n\t\t\t\t: new P(function (resolve) {\n\t\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new (P || (P = Promise))(function (resolve, reject) {\n\t\t\t\t\tfunction fulfilled(value) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstep(generator.next(value));\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction rejected(value) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstep(generator[\"throw\"](value));\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction step(result) {\n\t\t\t\t\t\tresult.done\n\t\t\t\t\t\t? resolve(result.value)\n\t\t\t\t\t\t: adopt(result.value).then(fulfilled, rejected);\n\t\t\t\t\t}\n\n\t\t\t\t\tstep((generator = generator.apply(thisArg, _arguments || [])).next());\n\t\t\t\t});\n\t\t};\n\n\t\tlet configFormWrapper = { form: null };\n\t\tlet clientFormWrapper = { form: null };\n\t\tlet subPanels = [\"ConfigSubPanel\", \"ClientInfoSubPanel\", \"SuccessSubPanel\"];\n\t\tlet activeIdx = 0;\n\t\tlet errorMessage = \"\";\n\n\t\tconst onNext = () => {\n\t\t\t$$invalidate(0, activeIdx = clamp(activeIdx + 1, 0, subPanels.length - 1));\n\t\t\tconst rightPanel = document.querySelector(\".right-panel\");\n\t\t\trightPanel.scrollTop = 0;\n\t\t\twindow.scrollBy(0, document.querySelector(\".tpt_configurator\").getBoundingClientRect().y);\n\t\t};\n\n\t\tconst onPrev = () => {\n\t\t\t$$invalidate(0, activeIdx = clamp(activeIdx - 1, 0, subPanels.length - 1));\n\t\t};\n\n\t\tconst onReset = () => {\n\t\t\tset_store_value(configStore, $configStore = Object.assign({}, $defaultConfigStore), $configStore);\n\t\t\tset_store_value(clientStore, $clientStore = Object.assign({}, defaultContactInfo), $clientStore);\n\t\t\t$$invalidate(0, activeIdx = 0);\n\t\t};\n\n\t\tconst onLeavingConfigPage = event => {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tconst isValid = configFormWrapper.form.checkValidity();\n\n\t\t\tif (!isValid) {\n\t\t\t\tconfigFormWrapper.form.reportValidity();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonNext();\n\t\t};\n\n\t\tconst onSubmit = event => __awaiter(void 0, void 0, void 0, function* () {\n\t\t\tevent.preventDefault();\n\t\t\tconst form = clientFormWrapper.form;\n\n\t\t\tif (form.checkValidity()) {\n\t\t\t\tconst response = Object.assign(\n\t\t\t\t\t{\n\t\t\t\t\t\tselected_configurator_item_ids: [$configStore.motive, $configStore.texture, $configStore.color],\n\t\t\t\t\t\twidth: $configStore.width,\n\t\t\t\t\t\theight: $configStore.height\n\t\t\t\t\t},\n\t\t\t\t\t$clientStore\n\t\t\t\t);\n\n\t\t\t\tyield $configService.post(response).then(res => {\n\t\t\t\t\t$$invalidate(1, errorMessage = res.code >= 300 ? res.message : null);\n\t\t\t\t\tonNext();\n\t\t\t\t});\n\n\t\t\t\tset_store_value(configInit, $configInit = false, $configInit);\n\t\t\t} else {\n\t\t\t\tform.reportValidity();\n\t\t\t}\n\t\t});\n\n\t\treturn [\n\t\t\tactiveIdx,\n\t\t\terrorMessage,\n\t\t\t$languageService,\n\t\t\tconfigFormWrapper,\n\t\t\tclientFormWrapper,\n\t\t\tsubPanels,\n\t\t\tonPrev,\n\t\t\tonReset,\n\t\t\tonLeavingConfigPage,\n\t\t\tonSubmit\n\t\t];\n\t}\n\n\tclass RightPanel extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance$1, create_fragment$1, safe_not_equal, {}, add_css$1);\n\t\t}\n\t}\n\n\tcreate_custom_element(RightPanel, {}, [], [], true);\n\n\t\/* src\\components\\embedComponent.svelte generated by Svelte v4.2.0 *\/\n\n\tfunction add_css(target) {\n\t\tappend_styles(target, \"svelte-ivoulk\", \"@import url(\\\"https:\/\/fonts.googleapis.com\/css2?family=Inter&family=Saira+Condensed:wght@800&display=swap\\\");.tpt_configurator{font-family:\\\"Roboto\\\", Arial, Helvetica, sans-serif;font-size:13px;--background-color:#fff;--text-color:#4d4d4d;--faded-text-color:#808080;--primary:#9c4545;--secondary:#c7c7c7;background:var(--background-color);-ms-overflow-style:none;scrollbar-width:none;overflow:hidden;height:100vh !important}@media screen and (max-width: 880px){.tpt_configurator{overflow:unset;height:unset !important}}.tpt_configurator::-webkit-scrollbar{display:none}\");\n\t}\n\n\t\/\/ (75:4) {:else}\n\tfunction create_else_block(ctx) {\n\t\tlet leftpanel;\n\t\tlet t;\n\t\tlet rightpanel;\n\t\tlet current;\n\t\tleftpanel = new LeftPanel({});\n\t\trightpanel = new RightPanel({});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(leftpanel.$$.fragment);\n\t\t\t\tt = space();\n\t\t\t\tcreate_component(rightpanel.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(leftpanel, target, anchor);\n\t\t\t\tinsert(target, t, anchor);\n\t\t\t\tmount_component(rightpanel, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(leftpanel.$$.fragment, local);\n\t\t\t\ttransition_in(rightpanel.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(leftpanel.$$.fragment, local);\n\t\t\t\ttransition_out(rightpanel.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(leftpanel, detaching);\n\t\t\t\tdestroy_component(rightpanel, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (73:4) {#if !$loaded}\n\tfunction create_if_block(ctx) {\n\t\tlet loadingscreen;\n\t\tlet current;\n\t\tloadingscreen = new LoadingScreen({});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(loadingscreen.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(loadingscreen, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(loadingscreen.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(loadingscreen.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tdestroy_component(loadingscreen, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\t\/\/ (68:0) <Container      class={\"tpt_configurator\"}      direction={mainLayoutDir}      heightType={LayoutWrapType.FILL}  >\n\tfunction create_default_slot(ctx) {\n\t\tlet current_block_type_index;\n\t\tlet if_block;\n\t\tlet if_block_anchor;\n\t\tlet current;\n\t\tconst if_block_creators = [create_if_block, create_else_block];\n\t\tconst if_blocks = [];\n\n\t\tfunction select_block_type(ctx, dirty) {\n\t\t\tif (!\/*$loaded*\/ ctx[4]) return 0;\n\t\t\treturn 1;\n\t\t}\n\n\t\tcurrent_block_type_index = select_block_type(ctx);\n\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tif_block.c();\n\t\t\t\tif_block_anchor = empty();\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tif_blocks[current_block_type_index].m(target, anchor);\n\t\t\t\tinsert(target, if_block_anchor, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, dirty) {\n\t\t\t\tlet previous_block_index = current_block_type_index;\n\t\t\t\tcurrent_block_type_index = select_block_type(ctx);\n\n\t\t\t\tif (current_block_type_index !== previous_block_index) {\n\t\t\t\t\tgroup_outros();\n\n\t\t\t\t\ttransition_out(if_blocks[previous_block_index], 1, 1, () => {\n\t\t\t\t\t\tif_blocks[previous_block_index] = null;\n\t\t\t\t\t});\n\n\t\t\t\t\tcheck_outros();\n\t\t\t\t\tif_block = if_blocks[current_block_type_index];\n\n\t\t\t\t\tif (!if_block) {\n\t\t\t\t\t\tif_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n\t\t\t\t\t\tif_block.c();\n\t\t\t\t\t}\n\n\t\t\t\t\ttransition_in(if_block, 1);\n\t\t\t\t\tif_block.m(if_block_anchor.parentNode, if_block_anchor);\n\t\t\t\t}\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(if_block);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(if_block);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(if_block_anchor);\n\t\t\t\t}\n\n\t\t\t\tif_blocks[current_block_type_index].d(detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction create_fragment(ctx) {\n\t\tlet mediaquery0;\n\t\tlet updating_matches;\n\t\tlet t0;\n\t\tlet mediaquery1;\n\t\tlet updating_matches_1;\n\t\tlet t1;\n\t\tlet mediaquery2;\n\t\tlet updating_matches_2;\n\t\tlet t2;\n\t\tlet container;\n\t\tlet current;\n\n\t\tfunction mediaquery0_matches_binding(value) {\n\t\t\t\/*mediaquery0_matches_binding*\/ ctx[5](value);\n\t\t}\n\n\t\tlet mediaquery0_props = { query: Breakpoints.Desktop };\n\n\t\tif (\/*$isDesktop*\/ ctx[2] !== void 0) {\n\t\t\tmediaquery0_props.matches = \/*$isDesktop*\/ ctx[2];\n\t\t}\n\n\t\tmediaquery0 = new MediaQuery({ props: mediaquery0_props });\n\t\tbinding_callbacks.push(() => bind(mediaquery0, 'matches', mediaquery0_matches_binding));\n\n\t\tfunction mediaquery1_matches_binding(value) {\n\t\t\t\/*mediaquery1_matches_binding*\/ ctx[6](value);\n\t\t}\n\n\t\tlet mediaquery1_props = { query: Breakpoints.Tablet };\n\n\t\tif (\/*$isTablet*\/ ctx[1] !== void 0) {\n\t\t\tmediaquery1_props.matches = \/*$isTablet*\/ ctx[1];\n\t\t}\n\n\t\tmediaquery1 = new MediaQuery({ props: mediaquery1_props });\n\t\tbinding_callbacks.push(() => bind(mediaquery1, 'matches', mediaquery1_matches_binding));\n\n\t\tfunction mediaquery2_matches_binding(value) {\n\t\t\t\/*mediaquery2_matches_binding*\/ ctx[7](value);\n\t\t}\n\n\t\tlet mediaquery2_props = { query: Breakpoints.Mobile };\n\n\t\tif (\/*$isMobile*\/ ctx[0] !== void 0) {\n\t\t\tmediaquery2_props.matches = \/*$isMobile*\/ ctx[0];\n\t\t}\n\n\t\tmediaquery2 = new MediaQuery({ props: mediaquery2_props });\n\t\tbinding_callbacks.push(() => bind(mediaquery2, 'matches', mediaquery2_matches_binding));\n\n\t\tcontainer = new Container({\n\t\t\t\tprops: {\n\t\t\t\t\tclass: \"tpt_configurator\",\n\t\t\t\t\tdirection: \/*mainLayoutDir*\/ ctx[3],\n\t\t\t\t\theightType: LayoutWrapType.FILL,\n\t\t\t\t\t$$slots: { default: [create_default_slot] },\n\t\t\t\t\t$$scope: { ctx }\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn {\n\t\t\tc() {\n\t\t\t\tcreate_component(mediaquery0.$$.fragment);\n\t\t\t\tt0 = space();\n\t\t\t\tcreate_component(mediaquery1.$$.fragment);\n\t\t\t\tt1 = space();\n\t\t\t\tcreate_component(mediaquery2.$$.fragment);\n\t\t\t\tt2 = space();\n\t\t\t\tcreate_component(container.$$.fragment);\n\t\t\t},\n\t\t\tm(target, anchor) {\n\t\t\t\tmount_component(mediaquery0, target, anchor);\n\t\t\t\tinsert(target, t0, anchor);\n\t\t\t\tmount_component(mediaquery1, target, anchor);\n\t\t\t\tinsert(target, t1, anchor);\n\t\t\t\tmount_component(mediaquery2, target, anchor);\n\t\t\t\tinsert(target, t2, anchor);\n\t\t\t\tmount_component(container, target, anchor);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\tp(ctx, [dirty]) {\n\t\t\t\tconst mediaquery0_changes = {};\n\n\t\t\t\tif (!updating_matches && dirty & \/*$isDesktop*\/ 4) {\n\t\t\t\t\tupdating_matches = true;\n\t\t\t\t\tmediaquery0_changes.matches = \/*$isDesktop*\/ ctx[2];\n\t\t\t\t\tadd_flush_callback(() => updating_matches = false);\n\t\t\t\t}\n\n\t\t\t\tmediaquery0.$set(mediaquery0_changes);\n\t\t\t\tconst mediaquery1_changes = {};\n\n\t\t\t\tif (!updating_matches_1 && dirty & \/*$isTablet*\/ 2) {\n\t\t\t\t\tupdating_matches_1 = true;\n\t\t\t\t\tmediaquery1_changes.matches = \/*$isTablet*\/ ctx[1];\n\t\t\t\t\tadd_flush_callback(() => updating_matches_1 = false);\n\t\t\t\t}\n\n\t\t\t\tmediaquery1.$set(mediaquery1_changes);\n\t\t\t\tconst mediaquery2_changes = {};\n\n\t\t\t\tif (!updating_matches_2 && dirty & \/*$isMobile*\/ 1) {\n\t\t\t\t\tupdating_matches_2 = true;\n\t\t\t\t\tmediaquery2_changes.matches = \/*$isMobile*\/ ctx[0];\n\t\t\t\t\tadd_flush_callback(() => updating_matches_2 = false);\n\t\t\t\t}\n\n\t\t\t\tmediaquery2.$set(mediaquery2_changes);\n\t\t\t\tconst container_changes = {};\n\t\t\t\tif (dirty & \/*mainLayoutDir*\/ 8) container_changes.direction = \/*mainLayoutDir*\/ ctx[3];\n\n\t\t\t\tif (dirty & \/*$$scope, $loaded*\/ 1040) {\n\t\t\t\t\tcontainer_changes.$$scope = { dirty, ctx };\n\t\t\t\t}\n\n\t\t\t\tcontainer.$set(container_changes);\n\t\t\t},\n\t\t\ti(local) {\n\t\t\t\tif (current) return;\n\t\t\t\ttransition_in(mediaquery0.$$.fragment, local);\n\t\t\t\ttransition_in(mediaquery1.$$.fragment, local);\n\t\t\t\ttransition_in(mediaquery2.$$.fragment, local);\n\t\t\t\ttransition_in(container.$$.fragment, local);\n\t\t\t\tcurrent = true;\n\t\t\t},\n\t\t\to(local) {\n\t\t\t\ttransition_out(mediaquery0.$$.fragment, local);\n\t\t\t\ttransition_out(mediaquery1.$$.fragment, local);\n\t\t\t\ttransition_out(mediaquery2.$$.fragment, local);\n\t\t\t\ttransition_out(container.$$.fragment, local);\n\t\t\t\tcurrent = false;\n\t\t\t},\n\t\t\td(detaching) {\n\t\t\t\tif (detaching) {\n\t\t\t\t\tdetach(t0);\n\t\t\t\t\tdetach(t1);\n\t\t\t\t\tdetach(t2);\n\t\t\t\t}\n\n\t\t\t\tdestroy_component(mediaquery0, detaching);\n\t\t\t\tdestroy_component(mediaquery1, detaching);\n\t\t\t\tdestroy_component(mediaquery2, detaching);\n\t\t\t\tdestroy_component(container, detaching);\n\t\t\t}\n\t\t};\n\t}\n\n\tlet confLoaded = false;\n\tlet langLoaded = false;\n\tlet firstFrame = true;\n\n\tconst load = () => {\n\t\tif (!firstFrame) return;\n\t\tfirstFrame = false;\n\n\t\tconst unsubConf = configService.subscribe(async service => {\n\t\t\tawait service.init();\n\t\t\tconfLoaded = true;\n\t\t\tloaded.set(confLoaded && langLoaded);\n\t\t});\n\n\t\tconst unsubLang = languageService.subscribe(service => {\n\t\t\tservice.init();\n\t\t\tlangLoaded = true;\n\t\t\tloaded.set(confLoaded && langLoaded);\n\t\t});\n\n\t\t\/\/ Unsubscribe to prevent memory leaks\n\t\tunsubConf();\n\n\t\tunsubLang();\n\t};\n\n\tload();\n\n\tfunction instance($$self, $$props, $$invalidate) {\n\t\tlet $isMobile;\n\t\tlet $isTablet;\n\t\tlet $isDesktop;\n\t\tlet $loaded;\n\t\tcomponent_subscribe($$self, isMobile, $$value => $$invalidate(0, $isMobile = $$value));\n\t\tcomponent_subscribe($$self, isTablet, $$value => $$invalidate(1, $isTablet = $$value));\n\t\tcomponent_subscribe($$self, isDesktop, $$value => $$invalidate(2, $isDesktop = $$value));\n\t\tcomponent_subscribe($$self, loaded, $$value => $$invalidate(4, $loaded = $$value));\n\n\t\tthis && this.__awaiter || function (thisArg, _arguments, P, generator) {\n\t\t\tfunction adopt(value) {\n\t\t\t\treturn value instanceof P\n\t\t\t\t? value\n\t\t\t\t: new P(function (resolve) {\n\t\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new (P || (P = Promise))(function (resolve, reject) {\n\t\t\t\t\tfunction fulfilled(value) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstep(generator.next(value));\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction rejected(value) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstep(generator[\"throw\"](value));\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction step(result) {\n\t\t\t\t\t\tresult.done\n\t\t\t\t\t\t? resolve(result.value)\n\t\t\t\t\t\t: adopt(result.value).then(fulfilled, rejected);\n\t\t\t\t\t}\n\n\t\t\t\t\tstep((generator = generator.apply(thisArg, _arguments || [])).next());\n\t\t\t\t});\n\t\t};\n\n\t\tlet mainLayoutDir = LayoutDirection.HORIZONTAL;\n\n\t\tconst onBreakpointChange = () => {\n\t\t\t$$invalidate(3, mainLayoutDir = $isMobile\n\t\t\t? LayoutDirection.VERTICAL\n\t\t\t: LayoutDirection.HORIZONTAL);\n\t\t};\n\n\t\tfunction mediaquery0_matches_binding(value) {\n\t\t\t$isDesktop = value;\n\t\t\tisDesktop.set($isDesktop);\n\t\t}\n\n\t\tfunction mediaquery1_matches_binding(value) {\n\t\t\t$isTablet = value;\n\t\t\tisTablet.set($isTablet);\n\t\t}\n\n\t\tfunction mediaquery2_matches_binding(value) {\n\t\t\t$isMobile = value;\n\t\t\tisMobile.set($isMobile);\n\t\t}\n\n\t\t$$self.$$.update = () => {\n\t\t\tif ($$self.$$.dirty & \/*$isDesktop, $isTablet, $isMobile*\/ 7) {\n\t\t\t\t{\n\t\t\t\t\tonBreakpointChange();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn [\n\t\t\t$isMobile,\n\t\t\t$isTablet,\n\t\t\t$isDesktop,\n\t\t\tmainLayoutDir,\n\t\t\t$loaded,\n\t\t\tmediaquery0_matches_binding,\n\t\t\tmediaquery1_matches_binding,\n\t\t\tmediaquery2_matches_binding\n\t\t];\n\t}\n\n\tclass EmbedComponent extends SvelteComponent {\n\t\tconstructor(options) {\n\t\t\tsuper();\n\t\t\tinit(this, options, instance, create_fragment, safe_not_equal, {}, add_css);\n\t\t}\n\t}\n\n\tcreate_custom_element(EmbedComponent, {}, [], [], true);\n\n\t\/\/ Find an existing element or create a new one where you want to embed your Svelte component\n\tvar div = document.createElement('div');\n\tvar script = document.currentScript;\n\tscript.parentNode.insertBefore(div, script);\n\n\t\/\/ Embed the Svelte component into the created div\n\tnew EmbedComponent({\n\t  target: div\n\t});\n\n})();\n\/\/# sourceMappingURL=dist.js.map\n\n\n\n    <\/script><\/div><\/div><\/div><\/div><\/div><\/div><!-- cell_inner --><\/div><!-- cell --><\/div><!-- port --><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-18163","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.4 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Ingyenes gar\u00e1zskapu \u00e1rkalkul\u00e1ci\u00f3 - H\u00f6rmann \/ Danter<\/title>\n<meta name=\"description\" content=\"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/\" \/>\n<meta property=\"og:locale\" content=\"hu_HU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konfigur\u00e1tor\" \/>\n<meta property=\"og:description\" content=\"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/\" \/>\n<meta property=\"og:site_name\" content=\"TPT Br\u00e1ny\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TPTBrany\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T05:52:30+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Becs\u00fclt olvas\u00e1si id\u0151\" \/>\n\t<meta name=\"twitter:data1\" content=\"129 perc\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/konfigurator\\\/\",\"url\":\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/konfigurator\\\/\",\"name\":\"Ingyenes gar\u00e1zskapu \u00e1rkalkul\u00e1ci\u00f3 - H\u00f6rmann \\\/ Danter\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#website\"},\"datePublished\":\"2021-10-04T13:39:35+00:00\",\"dateModified\":\"2026-04-13T05:52:30+00:00\",\"description\":\"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/konfigurator\\\/#breadcrumb\"},\"inLanguage\":\"hu\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/konfigurator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/konfigurator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Domovsk\u00e1 str\u00e1nka\",\"item\":\"https:\\\/\\\/www.tptbrany.sk\\\/hu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konfigur\u00e1tor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#website\",\"url\":\"https:\\\/\\\/www.tptbrany.sk\\\/\",\"name\":\"TPT Br\u00e1ny\",\"description\":\"\u0160pecialisti na br\u00e1ny\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tptbrany.sk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hu\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#organization\",\"name\":\"TPT Br\u00e1ny\",\"url\":\"https:\\\/\\\/www.tptbrany.sk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.tptbrany.sk\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/TPT-logo-2022-idoklad.png\",\"contentUrl\":\"https:\\\/\\\/www.tptbrany.sk\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/TPT-logo-2022-idoklad.png\",\"width\":900,\"height\":300,\"caption\":\"TPT Br\u00e1ny\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tptbrany.sk\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/TPTBrany\\\/\",\"https:\\\/\\\/www.instagram.com\\\/tpt_brany\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ingyenes gar\u00e1zskapu \u00e1rkalkul\u00e1ci\u00f3 - H\u00f6rmann \/ Danter","description":"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/","og_locale":"hu_HU","og_type":"article","og_title":"Konfigur\u00e1tor","og_description":"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran","og_url":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/","og_site_name":"TPT Br\u00e1ny","article_publisher":"https:\/\/www.facebook.com\/TPTBrany\/","article_modified_time":"2026-04-13T05:52:30+00:00","twitter_card":"summary_large_image","twitter_misc":{"Becs\u00fclt olvas\u00e1si id\u0151":"129 perc"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/","url":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/","name":"Ingyenes gar\u00e1zskapu \u00e1rkalkul\u00e1ci\u00f3 - H\u00f6rmann \/ Danter","isPartOf":{"@id":"https:\/\/www.tptbrany.sk\/#website"},"datePublished":"2021-10-04T13:39:35+00:00","dateModified":"2026-04-13T05:52:30+00:00","description":"Sz\u00e1molja ki \u00e1lmai gar\u00e1zskapuj\u00e1nak \u00e1r\u00e1t, melyet az \u00d6n \u00e1lmai alapj\u00e1n k\u00e9sz\u00edttetn\u00e9nk el a n\u00e9met H\u00f6rmann-t\u00f3l. Keressen minket b\u00e1tran","breadcrumb":{"@id":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/#breadcrumb"},"inLanguage":"hu","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tptbrany.sk\/hu\/konfigurator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.tptbrany.sk\/hu\/konfigurator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Domovsk\u00e1 str\u00e1nka","item":"https:\/\/www.tptbrany.sk\/hu\/"},{"@type":"ListItem","position":2,"name":"Konfigur\u00e1tor"}]},{"@type":"WebSite","@id":"https:\/\/www.tptbrany.sk\/#website","url":"https:\/\/www.tptbrany.sk\/","name":"TPT Br\u00e1ny","description":"\u0160pecialisti na br\u00e1ny","publisher":{"@id":"https:\/\/www.tptbrany.sk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tptbrany.sk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hu"},{"@type":"Organization","@id":"https:\/\/www.tptbrany.sk\/#organization","name":"TPT Br\u00e1ny","url":"https:\/\/www.tptbrany.sk\/","logo":{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/www.tptbrany.sk\/#\/schema\/logo\/image\/","url":"https:\/\/www.tptbrany.sk\/wp-content\/uploads\/2022\/03\/TPT-logo-2022-idoklad.png","contentUrl":"https:\/\/www.tptbrany.sk\/wp-content\/uploads\/2022\/03\/TPT-logo-2022-idoklad.png","width":900,"height":300,"caption":"TPT Br\u00e1ny"},"image":{"@id":"https:\/\/www.tptbrany.sk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TPTBrany\/","https:\/\/www.instagram.com\/tpt_brany\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/pages\/18163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/comments?post=18163"}],"version-history":[{"count":6,"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/pages\/18163\/revisions"}],"predecessor-version":[{"id":25427,"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/pages\/18163\/revisions\/25427"}],"wp:attachment":[{"href":"https:\/\/www.tptbrany.sk\/hu\/wp-json\/wp\/v2\/media?parent=18163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}