{
  "version": 3,
  "sources": ["/cdn/shop/t/16/assets/b2b-inquiry.js?lq=20260617-contact-native-v1"],
  "sourcesContent": ["(function () {\n  const contactPath = '/pages/contact';\n  const params = new URLSearchParams(window.location.search);\n  const hasInquiryContext =\n    params.has('product') || params.has('product_url') || params.has('sku') || params.has('variant') || params.has('page');\n  const contactNativeViewUrl = '/pages/contact?view=contact-native';\n  const directContactCountries = (\n    'Afghanistan|Albania|Algeria|Andorra|Angola|Argentina|Armenia|Australia|Austria|Azerbaijan|' +\n    'Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bhutan|Bolivia|Bosnia and Herzegovina|' +\n    'Botswana|Brazil|Brunei|Bulgaria|Burkina Faso|Cambodia|Cameroon|Canada|Chile|China|Colombia|Costa Rica|' +\n    \"Cote d'Ivoire|Croatia|Cyprus|Czech Republic|Denmark|Dominican Republic|Ecuador|Egypt|El Salvador|\" +\n    'Estonia|Ethiopia|Finland|France|Georgia|Germany|Ghana|Greece|Guatemala|Honduras|Hong Kong SAR|Hungary|' +\n    'Iceland|India|Indonesia|Iraq|Ireland|Israel|Italy|Japan|Jordan|Kazakhstan|Kenya|Kuwait|Kyrgyzstan|Laos|' +\n    'Latvia|Lebanon|Lithuania|Luxembourg|Macau SAR|Malaysia|Maldives|Malta|Mauritius|Mexico|Moldova|Mongolia|' +\n    'Morocco|Myanmar|Nepal|Netherlands|New Zealand|Nicaragua|Nigeria|North Macedonia|Norway|Oman|Pakistan|' +\n    'Panama|Paraguay|Peru|Philippines|Poland|Portugal|Qatar|Romania|Saudi Arabia|Serbia|Singapore|Slovakia|' +\n    'Slovenia|South Africa|South Korea|Spain|Sri Lanka|Sweden|Switzerland|Taiwan|Tajikistan|Tanzania|' +\n    'Thailand|Trinidad and Tobago|Tunisia|Turkey|Turkmenistan|Ukraine|United Arab Emirates|United Kingdom|' +\n    'United States|Uruguay|Uzbekistan|Venezuela|Vietnam|Other / Not listed'\n  ).split('|');\n  const directContactProductTypes = [\n    'Rental LED Display',\n    'Indoor LED Display',\n    'Outdoor LED Display',\n    'Transparent LED Display',\n    'LED Poster Display',\n    'Flexible LED Display',\n    'LCD Advertising Display',\n    'Light Box',\n    'Custom LED Solution',\n    'Other',\n  ];\n\n  function isContactPage() {\n    return window.location.pathname.replace(/\\/$/, '') === contactPath;\n  }\n\n  function absoluteUrl(url) {\n    try {\n      return new URL(url, window.location.origin).href;\n    } catch (error) {\n      return window.location.href;\n    }\n  }\n\n  function normalizeCatalogUrl(href) {\n    const catalogPaths = new Set([\n      '/collections/all',\n      '/collections/led-screen',\n      '/collections/lcd-screen',\n      '/collections/light-box',\n    ]);\n\n    try {\n      const url = new URL(href, window.location.origin);\n      const path = url.pathname.replace(/\\/$/, '');\n\n      if (url.origin === window.location.origin && catalogPaths.has(path)) {\n        url.searchParams.set('page', '1');\n        return `${url.pathname}${url.search}${url.hash}`;\n      }\n    } catch (error) {\n      return href;\n    }\n\n    return href;\n  }\n\n  function normalizeCatalogLinks(root = document) {\n    root.querySelectorAll('a[href]').forEach((link) => {\n      const nextUrl = normalizeCatalogUrl(link.getAttribute('href'));\n      if (nextUrl !== link.getAttribute('href')) link.setAttribute('href', nextUrl);\n    });\n  }\n\n  function buildContactUrl(data) {\n    const url = new URL(contactNativeViewUrl, window.location.origin);\n\n    if (data.productTitle) url.searchParams.set('product', data.productTitle);\n    if (data.productUrl) url.searchParams.set('product_url', absoluteUrl(data.productUrl));\n    if (data.productSku) url.searchParams.set('sku', data.productSku);\n    if (data.variantTitle) url.searchParams.set('variant', data.variantTitle);\n    url.searchParams.set('page', window.location.href);\n    url.hash = 'inquiry-form';\n\n    return url.href;\n  }\n\n  function getFallbackUrl(trigger) {\n    const data = trigger.dataset || {};\n    const hasProductContext =\n      data.productTitle || data.productUrl || data.productSku || data.variantTitle;\n\n    if (hasProductContext) return buildContactUrl(data);\n\n    const href = trigger.getAttribute('href');\n    if (href) {\n      try {\n        const url = new URL(href, window.location.origin);\n\n        if (url.pathname.replace(/\\/$/, '') === contactPath) {\n          if (!url.searchParams.has('page')) url.searchParams.set('page', window.location.href);\n          if (!url.hash) url.hash = 'inquiry-form';\n        }\n\n        return url.href;\n      } catch (error) {\n        return buildContactUrl(data);\n      }\n    }\n\n    return buildContactUrl(data);\n  }\n\n  function getFormRoot() {\n    const host = document.querySelector('shopify-forms-embed');\n    return host?.shadowRoot || null;\n  }\n\n  function activateInsertedScripts(container) {\n    container.querySelectorAll('script').forEach((oldScript) => {\n      const script = document.createElement('script');\n      [...oldScript.attributes].forEach((attribute) => {\n        script.setAttribute(attribute.name, attribute.value);\n      });\n      script.textContent = oldScript.textContent;\n      oldScript.replaceWith(script);\n    });\n  }\n\n  function isVisible(element) {\n    if (!element) return false;\n    const rect = element.getBoundingClientRect();\n    const style = window.getComputedStyle(element);\n\n    return rect.width > 0 && rect.height > 0 && style.visibility !== 'hidden' && style.display !== 'none';\n  }\n\n  function findFormuTeaser(root) {\n    if (!root) return null;\n\n    return (\n      root.querySelector('[data-current-step=\"tease\"] button[aria-haspopup=\"dialog\"]') ||\n      [...root.querySelectorAll('button[aria-haspopup=\"dialog\"], button')].find((button) =>\n        isVisible(button) &&\n        /customized solution|inquiry|quote|contact|request information/i.test(\n          button.textContent || button.getAttribute('aria-label') || ''\n        )\n      )\n    );\n  }\n\n  function findOpenFormuDialog(root) {\n    if (!root) return null;\n\n    return [...root.querySelectorAll('[role=\"dialog\"], dialog')].find((dialog) => {\n      const ariaHidden = dialog.getAttribute('aria-hidden');\n      return isVisible(dialog) && ariaHidden !== 'true' && dialog.hidden !== true;\n    });\n  }\n\n  function findFormuMessage(root) {\n    if (!root) return null;\n\n    return (\n      root.querySelector('textarea[name=\"custom#message\"]') ||\n      root.querySelector('textarea[name*=\"message\" i]') ||\n      [...root.querySelectorAll('textarea')].find((field) => /message/i.test(field.name || field.id || ''))\n    );\n  }\n\n\n  function getFieldLabelText(field) {\n    const id = field.getAttribute('id');\n    const labels = [];\n    if (id) {\n      document.querySelectorAll('label[for=\"' + CSS.escape(id) + '\"]').forEach((label) => labels.push(label.textContent || ''));\n      const root = getFormRoot();\n      root?.querySelectorAll('label[for=\"' + CSS.escape(id) + '\"]').forEach((label) => labels.push(label.textContent || ''));\n    }\n    field.closest('label') && labels.push(field.closest('label').textContent || '');\n    return labels.join(' ');\n  }\n\n  function getFieldSignature(field) {\n    return [\n      field.name,\n      field.id,\n      field.placeholder,\n      field.getAttribute('aria-label'),\n      getFieldLabelText(field),\n    ].filter(Boolean).join(' ').toLowerCase();\n  }\n\n  function setFieldValue(field, value) {\n    if (!field || !value) return false;\n    field.value = value;\n    field.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n    field.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n    return true;\n  }\n\n  function findFormuField(root, matchers) {\n    if (!root) return null;\n    const fields = [...root.querySelectorAll('input, textarea, select')].filter((field) => {\n      const type = (field.getAttribute('type') || field.type || '').toLowerCase();\n      return !['hidden', 'submit', 'button', 'checkbox', 'radio', 'file'].includes(type);\n    });\n\n    return fields.find((field) => matchers.some((matcher) => matcher(field, getFieldSignature(field)))) || null;\n  }\n\n  function getContactFormData(form) {\n    const getValue = (selector) => form.querySelector(selector)?.value?.trim() || '';\n    return {\n      name: getValue('[name=\"contact[name]\"]'),\n      email: getValue('[name=\"contact[email]\"]'),\n      company: getValue('[name=\"contact[company]\"]'),\n      whatsapp: getValue('[name=\"contact[whatsapp]\"]'),\n      country: getValue('[name=\"contact[country]\"]'),\n      productType: getValue('[name=\"contact[product_type]\"]'),\n      message: getValue('[name=\"contact[body]\"]'),\n    };\n  }\n\n  function isDirectContactForm(form) {\n    return Boolean(form?.id === 'ContactPageInquiry' || form?.matches?.('[data-lq-direct-contact]'));\n  }\n\n  function ensureHiddenInput(form, name, value) {\n    let field = [...form.querySelectorAll('input[type=\"hidden\"]')].find((input) => input.name === name);\n    if (!field) {\n      field = document.createElement('input');\n      field.type = 'hidden';\n      field.name = name;\n      form.prepend(field);\n    }\n    field.value = value;\n  }\n\n  function replaceSelectOptions(select, values, placeholder) {\n    if (!select || select.dataset.lqExpandedOptions === 'true') return;\n    const currentValue = select.value;\n    const currentPlaceholder = select.querySelector('option[value=\"\"]')?.textContent?.trim() || placeholder;\n    select.innerHTML = '';\n\n    const emptyOption = document.createElement('option');\n    emptyOption.value = '';\n    emptyOption.textContent = currentPlaceholder;\n    select.appendChild(emptyOption);\n\n    values.forEach((value) => {\n      const option = document.createElement('option');\n      option.value = value;\n      option.textContent = value;\n      select.appendChild(option);\n    });\n\n    if (currentValue && values.includes(currentValue)) select.value = currentValue;\n    select.dataset.lqExpandedOptions = 'true';\n  }\n\n  function expandDirectContactOptions(form) {\n    replaceSelectOptions(\n      form.querySelector('select[name=\"contact[country]\"], select[name=\"contact[Country]\"]'),\n      directContactCountries,\n      'Select your country'\n    );\n    replaceSelectOptions(\n      form.querySelector('select[name=\"contact[product_type]\"], select[name=\"contact[Product Type]\"]'),\n      directContactProductTypes,\n      'Select product type'\n    );\n  }\n\n  function prepareDirectContactForm(form) {\n    if (!form || !isContactPage()) return false;\n\n    if (!form.id) form.id = 'ContactPageInquiry';\n    form.dataset.lqDirectContact = 'true';\n    form.setAttribute('method', 'post');\n    form.setAttribute('action', '/contact#' + form.id);\n    form.setAttribute('accept-charset', 'UTF-8');\n    form.removeAttribute('novalidate');\n\n    ensureHiddenInput(form, 'form_type', 'contact');\n    ensureHiddenInput(form, 'utf8', '\\u2713');\n    ensureHiddenInput(form, 'contact[Form Type]', 'Contact Page Inquiry');\n    ensureHiddenInput(form, 'contact[Page URL]', window.location.href);\n    expandDirectContactOptions(form);\n\n    form.querySelectorAll('[data-b2b-contact-form-open], [data-b2b-inquiry-open]').forEach((button) => {\n      if (button.tagName === 'BUTTON') button.type = 'submit';\n      button.removeAttribute('data-b2b-contact-form-open');\n      button.removeAttribute('data-b2b-inquiry-open');\n    });\n\n    return true;\n  }\n\n  function prepareDirectContactForms(root = document) {\n    if (!isContactPage()) return;\n    root\n      .querySelectorAll('form.lq-contact-form, .lq-contact-form[data-b2b-contact-form], form#contact_form')\n      .forEach((form) => prepareDirectContactForm(form));\n  }\n\n  function submitDirectContactForm(form, submitter) {\n    if (!form || (typeof form.reportValidity === 'function' && !form.reportValidity())) return;\n    if (typeof form.requestSubmit === 'function') {\n      form.requestSubmit(submitter?.form === form ? submitter : undefined);\n    } else {\n      form.submit();\n    }\n  }\n\n  function getUrlInquiryData() {\n    const search = new URLSearchParams(window.location.search);\n    return {\n      productTitle: search.get('product') || '',\n      productUrl: search.get('product_url') || '',\n      productSku: search.get('sku') || '',\n      variantTitle: search.get('variant') || '',\n      sourcePage: search.get('page') || window.location.href,\n    };\n  }\n\n  function buildContextLines(data) {\n    const lines = [];\n    if (data.productTitle) lines.push('Product: ' + data.productTitle);\n    if (data.variantTitle) lines.push('Variant: ' + data.variantTitle);\n    if (data.productSku) lines.push('SKU: ' + data.productSku);\n    if (data.productUrl) lines.push('Product URL: ' + data.productUrl);\n    if (data.sourcePage) lines.push('Source page: ' + data.sourcePage);\n    if (data.company) lines.push('Company: ' + data.company);\n    if (data.whatsapp) lines.push('WhatsApp: ' + data.whatsapp);\n    if (data.country) lines.push('Country: ' + data.country);\n    if (data.productType) lines.push('Product type: ' + data.productType);\n    return lines;\n  }\n\n  function copyDataToFormu(root, data = {}) {\n    if (!root) return;\n    setFieldValue(findFormuField(root, [(field) => field.type === 'email', (field, signature) => /email|e-mail/.test(signature)]), data.email);\n    setFieldValue(findFormuField(root, [(field, signature) => /name|nombre|\u59D3\u540D|\u540D\u5B57/.test(signature)]), data.name);\n    setFieldValue(findFormuField(root, [(field, signature) => /company|organization|empresa|\u516C\u53F8/.test(signature)]), data.company);\n    setFieldValue(findFormuField(root, [(field, signature) => /phone|whatsapp|mobile|tel|\u7535\u8BDD|\u624B\u673A/.test(signature)]), data.whatsapp);\n    setFieldValue(findFormuField(root, [(field, signature) => /country|pa\u00EDs|\u56FD\u5BB6/.test(signature)]), data.country);\n\n    const messageField = findFormuMessage(root) || findFormuField(root, [(field, signature) => field.tagName === 'TEXTAREA' || /message|project|requirement|\u9700\u6C42|\u7559\u8A00|inquiry/.test(signature)]);\n    if (messageField) {\n      const contextLines = buildContextLines(data);\n      const pieces = [];\n      if (contextLines.length) pieces.push(contextLines.join('\\\\n'));\n      if (data.message) pieces.push(data.message);\n      const nextValue = pieces.join('\\\\n\\\\n').trim();\n      if (nextValue && !messageField.value.includes(nextValue.slice(0, 40))) {\n        setFieldValue(messageField, nextValue);\n      }\n    }\n  }\n\n  function setContactFormuStatus(form, message, tone = 'error') {\n    if (!form) return;\n    let status = form.querySelector('[data-b2b-contact-status]');\n    if (!status) {\n      status = document.createElement('p');\n      status.setAttribute('data-b2b-contact-status', '');\n      status.style.margin = '14px 0 0';\n      status.style.fontSize = '14px';\n      status.style.lineHeight = '1.5';\n      form.appendChild(status);\n    }\n\n    if (!message) {\n      status.hidden = true;\n      status.textContent = '';\n      return;\n    }\n\n    status.hidden = false;\n    status.textContent = message;\n    status.style.color = tone === 'success' ? '#137333' : '#b42318';\n  }\n\n  function openContactFormuFromForm(form) {\n    if (!form || !isContactPage()) return;\n    if (typeof form.reportValidity === 'function' && !form.reportValidity()) return;\n\n    const formData = { ...getUrlInquiryData(), ...getContactFormData(form), sourcePage: window.location.href };\n    setContactFormuStatus(form, '');\n\n    tryOpenFormu({ waitForHost: true, timeout: 12000 }).then((opened) => {\n      if (opened) {\n        copyDataToFormu(getFormRoot(), formData);\n        setContactFormuStatus(form, 'Please complete the inquiry popup to send your request.', 'success');\n        return;\n      }\n\n      setContactFormuStatus(form, 'The inquiry popup is still loading. Please refresh the page and try again.', 'error');\n    });\n  }\n\n  function bindNativeContactFormToFormu() {\n    if (!isContactPage()) return;\n    const form = document.querySelector('form.lq-contact-form, .lq-contact-form[data-b2b-contact-form], form#contact_form');\n    if (prepareDirectContactForm(form)) return;\n    if (isDirectContactForm(form)) return;\n    if (!form || form.dataset.lqFormuBound === 'true') return;\n    form.dataset.lqFormuBound = 'true';\n\n    form.addEventListener('submit', (event) => {\n      event.preventDefault();\n      openContactFormuFromForm(form);\n    });\n  }\n\n  function scheduleNativeContactFormBinding() {\n    if (!isContactPage()) return;\n    bindNativeContactFormToFormu();\n    window.setTimeout(bindNativeContactFormToFormu, 800);\n    window.setTimeout(bindNativeContactFormToFormu, 2500);\n    window.setTimeout(bindNativeContactFormToFormu, 5000);\n\n    if (typeof MutationObserver !== 'undefined') {\n      const observer = new MutationObserver(() => bindNativeContactFormToFormu());\n      observer.observe(document.documentElement, { childList: true, subtree: true });\n      window.setTimeout(() => observer.disconnect(), 12000);\n    }\n  }\n\n  function clickFormuButton(button) {\n    if (!button) return;\n\n    if (window.PointerEvent) {\n      button.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true, composed: true }));\n    }\n    button.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, composed: true }));\n    if (window.PointerEvent) {\n      button.dispatchEvent(new PointerEvent('pointerup', { bubbles: true, composed: true }));\n    }\n    button.dispatchEvent(new MouseEvent('mouseup', { bubbles: true, composed: true }));\n    button.click();\n  }\n\n  function tryOpenFormu(options = {}) {\n    const waitForHost = options.waitForHost ?? true;\n    const deadline = Date.now() + (options.timeout || 12000);\n\n    return new Promise((resolve) => {\n      let opened = false;\n      let clickedTeaser = false;\n\n      const timer = window.setInterval(() => {\n        const root = getFormRoot();\n\n        if (!root) {\n          if (!waitForHost || Date.now() > deadline) {\n            window.clearInterval(timer);\n            resolve(false);\n          }\n          return;\n        }\n\n        const messageField = findFormuMessage(root);\n        if (messageField && isVisible(messageField)) {\n          messageField.focus({ preventScroll: true });\n          window.clearInterval(timer);\n          resolve(true);\n          return;\n        }\n\n        const openDialog = findOpenFormuDialog(root);\n        if (openDialog) opened = true;\n\n        const teaser = findFormuTeaser(root);\n        if (teaser && !clickedTeaser) {\n          clickFormuButton(teaser);\n          opened = true;\n          clickedTeaser = true;\n        }\n\n        if (Date.now() > deadline) {\n          window.clearInterval(timer);\n          resolve(opened);\n        }\n      }, 300);\n    });\n  }\n\n  function hydrateProductDetailSection() {\n    if (document.querySelector('.lq-product-detail')) return;\n\n    const mainSection = document.querySelector('[id^=\"shopify-section-template--\"][id$=\"__main\"]');\n    const supportSection = document.querySelector('[id*=\"__lq_product_support_20260519\"]');\n    if (!mainSection || !supportSection) return;\n\n    const templateId = mainSection.id.replace('shopify-section-', '').replace(/__main$/, '');\n    if (!templateId) return;\n\n    const detailSectionId = `${templateId}__lq_product_details_20260527`;\n    const url = new URL(window.location.href);\n    url.searchParams.set('sections', detailSectionId);\n\n    fetch(url.toString(), { credentials: 'same-origin' })\n      .then((response) => (response.ok ? response.json() : null))\n      .then((sections) => {\n        const html = sections?.[detailSectionId];\n        if (!html || document.querySelector('.lq-product-detail')) return;\n\n        const wrapper = document.createElement('div');\n        wrapper.innerHTML = html;\n        const section = wrapper.firstElementChild;\n        if (section) {\n          supportSection.before(section);\n          normalizeCatalogLinks(section);\n        }\n      })\n      .catch(() => {});\n  }\n\n  function hydrateSolutionConfigurator() {\n    if (window.location.pathname.replace(/\\/$/, '') !== '/pages/solution') return;\n    const existingConfigurator = document.querySelector('[data-lq-led-configurator]');\n    const staleConfigurator =\n      existingConfigurator &&\n      !existingConfigurator.querySelector('[data-lq-product-select]') &&\n      !existingConfigurator.querySelector('#LqConfigModuleShort');\n\n    if (existingConfigurator && !staleConfigurator) return;\n\n    const mainSection = document.querySelector('[id^=\"shopify-section-template--\"][id$=\"__main\"]');\n    if (!mainSection) return;\n\n    const templateId = mainSection.id.replace('shopify-section-', '').replace(/__main$/, '');\n    if (!templateId) return;\n\n    const sectionId = `${templateId}__lq_led_configurator`;\n    const url = new URL(window.location.href);\n    url.searchParams.set('sections', sectionId);\n\n    fetch(url.toString(), { credentials: 'same-origin' })\n      .then((response) => (response.ok ? response.json() : null))\n      .then((sections) => {\n        const html = sections?.[sectionId];\n        if (!html || document.querySelector('[data-lq-led-configurator]')) return;\n\n        const wrapper = document.createElement('div');\n        wrapper.innerHTML = html;\n        const section = wrapper.firstElementChild;\n        const existingSection = existingConfigurator?.closest('.shopify-section');\n\n        if (section && staleConfigurator && existingSection) {\n          existingSection.replaceWith(section);\n        } else if (section) {\n          mainSection.after(section);\n        }\n\n        if (section) {\n          normalizeCatalogLinks(section);\n          activateInsertedScripts(section);\n        }\n      })\n      .catch(() => {});\n  }\n\n  function hydrateCatalogGrid() {\n    if (!window.location.pathname.startsWith('/collections/')) return;\n\n    const productGrid = document.querySelector('#product-grid');\n    const productGridSection =\n      productGrid?.closest('.shopify-section') ||\n      document.querySelector('[id^=\"shopify-section-template--\"][id$=\"__product-grid\"]');\n    if (!productGridSection || !productGrid) return;\n\n    const path = window.location.pathname.replace(/\\/$/, '');\n    const hasCatalogHead = Boolean(productGridSection.querySelector('.lq-b2b-catalog-grid__head'));\n    const hasProductCards = Boolean(productGrid.querySelector('.card__heading, .product-card-wrapper, .card-wrapper'));\n    const hasSeriesDividers = Boolean(productGridSection.querySelector('.lq-catalog-series-divider'));\n    const isAllCatalog = path === '/collections/all';\n    const isLedCatalog = path === '/collections/led-screen';\n    const shouldUseFreshCatalogPage = isAllCatalog || isLedCatalog;\n    const shouldRefresh =\n      !hasCatalogHead ||\n      (isLedCatalog && !hasProductCards) ||\n      (isAllCatalog && !hasSeriesDividers);\n\n    if (!shouldRefresh) return;\n\n    const replaceFromHtml = (html) => {\n      if (!html || !html.includes('lq-b2b-catalog-grid__head')) return false;\n      if (isLedCatalog && !html.includes('LQ500TOR1')) return false;\n      if (isAllCatalog && !html.includes('lq-catalog-series-divider')) return false;\n\n      const wrapper = document.createElement('div');\n      wrapper.innerHTML = html;\n      const section =\n        wrapper.querySelector('#product-grid')?.closest('.shopify-section') ||\n        wrapper.firstElementChild;\n\n      if (section && document.body.contains(productGridSection)) {\n        productGridSection.replaceWith(section);\n        normalizeCatalogLinks(section);\n        activateInsertedScripts(section);\n        return true;\n      }\n\n      return false;\n    };\n\n    const fetchFreshCatalogPage = () => {\n      if (!shouldUseFreshCatalogPage) return;\n\n      const pageUrl = new URL(window.location.href);\n      pageUrl.searchParams.set('page', '1');\n\n      fetch(pageUrl.toString(), { credentials: 'same-origin' })\n        .then((response) => (response.ok ? response.text() : ''))\n        .then((html) => {\n          replaceFromHtml(html);\n        })\n        .catch(() => {});\n    };\n\n    const sectionId = productGridSection.id.replace('shopify-section-', '');\n    const url = new URL(window.location.href);\n    if (shouldUseFreshCatalogPage) url.searchParams.set('page', '1');\n    url.searchParams.set('sections', sectionId);\n\n    fetch(url.toString(), { credentials: 'same-origin' })\n      .then((response) => (response.ok ? response.json() : null))\n      .then((sections) => {\n        const html = sections?.[sectionId];\n        if (!replaceFromHtml(html)) fetchFreshCatalogPage();\n      })\n      .catch(() => {\n        fetchFreshCatalogPage();\n      });\n  }\n\n  function hydrateHomeHero() {\n    if (window.location.pathname.replace(/\\/$/, '') !== '') return;\n\n    const homeSection = document.querySelector('.lq-home-b2b')?.closest('.shopify-section');\n    if (!homeSection) return;\n\n    const heroSlides = homeSection.querySelector('.lq-home-hero__slides');\n    const heroMarkup = heroSlides?.innerHTML || '';\n    const isStaleHero =\n      homeSection.id.includes('lq_home_slider_20260520b') || /\\/files\\/p\\d+-ea/i.test(heroMarkup);\n\n    if (!isStaleHero) return;\n\n    const templateId = homeSection.id.replace('shopify-section-', '').split('__')[0];\n    if (!templateId) return;\n\n    const sectionId = `${templateId}__lq_home_slider_20260601_restore`;\n    const url = new URL(window.location.href);\n    url.searchParams.set('sections', sectionId);\n\n    fetch(url.toString(), { credentials: 'same-origin' })\n      .then((response) => (response.ok ? response.json() : null))\n      .then((sections) => {\n        const html = sections?.[sectionId];\n        if (!html || !html.includes('Home-banner')) return;\n\n        const wrapper = document.createElement('div');\n        wrapper.innerHTML = html;\n        const section = wrapper.firstElementChild;\n\n        if (section && document.body.contains(homeSection)) {\n          homeSection.replaceWith(section);\n          normalizeCatalogLinks(section);\n          activateInsertedScripts(section);\n        }\n      })\n      .catch(() => {});\n  }\n\n\n  document.addEventListener('submit', (event) => {\n    const form = event.target?.closest?.('form.lq-contact-form, .lq-contact-form[data-b2b-contact-form], form#contact_form');\n    if (!form || !isContactPage()) return;\n    if (prepareDirectContactForm(form) || isDirectContactForm(form)) return;\n\n    event.preventDefault();\n    openContactFormuFromForm(form);\n  }, true);\n\n  document.addEventListener('click', (event) => {\n    const contactTrigger = event.target.closest('[data-b2b-contact-form-open]');\n    if (contactTrigger && isContactPage()) {\n      const form = contactTrigger.closest('form.lq-contact-form, .lq-contact-form[data-b2b-contact-form]') || document.querySelector('form.lq-contact-form, .lq-contact-form[data-b2b-contact-form], form#contact_form');\n      if (prepareDirectContactForm(form) || isDirectContactForm(form)) {\n        event.preventDefault();\n        submitDirectContactForm(form, contactTrigger);\n        return;\n      }\n      event.preventDefault();\n      openContactFormuFromForm(form);\n      return;\n    }\n\n    const trigger = event.target.closest('[data-b2b-inquiry-open]');\n    if (!trigger) return;\n\n    event.preventDefault();\n    const fallbackUrl = getFallbackUrl(trigger);\n    const hasFormHost = Boolean(getFormRoot());\n\n    if (!hasFormHost && !isContactPage()) {\n      window.location.href = fallbackUrl;\n      return;\n    }\n\n    tryOpenFormu({ waitForHost: isContactPage(), timeout: hasFormHost ? 4000 : 12000 }).then((opened) => {\n      if (opened) copyDataToFormu(getFormRoot(), { ...trigger.dataset, sourcePage: window.location.href });\n      if (!opened && !isContactPage()) window.location.href = fallbackUrl;\n    });\n  });\n\n  document.addEventListener('variant-change', (event) => {\n    const variant = event.detail?.data?.variant || event.detail?.variant;\n    const productInfo = event.target?.closest?.('product-info') || document.querySelector('product-info');\n    if (!variant || !productInfo) return;\n\n    const productTitle = productInfo.querySelector('.product__title h1')?.textContent?.trim();\n    const productUrl = `${window.location.origin}${window.location.pathname}${variant.id ? `?variant=${variant.id}` : ''}`;\n\n    productInfo.querySelectorAll('[data-b2b-inquiry-open]').forEach((trigger) => {\n      if (productTitle) trigger.dataset.productTitle = productTitle;\n      trigger.dataset.productUrl = productUrl;\n      trigger.dataset.variantTitle = variant.title || '';\n      trigger.dataset.productSku = variant.sku || '';\n      trigger.setAttribute('href', buildContactUrl(trigger.dataset));\n    });\n  });\n\n  if (isContactPage() && (hasInquiryContext || window.location.hash === '#inquiry-form')) {\n    tryOpenFormu({ waitForHost: true }).then((opened) => {\n      if (opened) copyDataToFormu(getFormRoot(), getUrlInquiryData());\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () => {\n      normalizeCatalogLinks();\n      prepareDirectContactForms();\n      scheduleNativeContactFormBinding();\n      hydrateHomeHero();\n      hydrateProductDetailSection();\n      hydrateSolutionConfigurator();\n      hydrateCatalogGrid();\n    });\n  } else {\n    normalizeCatalogLinks();\n    prepareDirectContactForms();\n    scheduleNativeContactFormBinding();\n    hydrateHomeHero();\n    hydrateProductDetailSection();\n    hydrateSolutionConfigurator();\n    hydrateCatalogGrid();\n  }\n})();\n\n(() => {\n  const targetBase = '//lqscreen.com/cdn/shop/files/Home-Banner-1.webp?v=1778828540';\n  const mobileSrcset = `${targetBase}&width=640 640w, ${targetBase}&width=900 900w`;\n  const desktopSrcset = `${targetBase}&width=900 900w, ${targetBase}&width=1200 1200w, ${targetBase}&width=1600 1600w`;\n\n  function applyHomeSlideThreeBanner() {\n    const slide = document.querySelectorAll('[data-lq-home-slide]')[2];\n    if (!slide) return;\n\n    const source = slide.querySelector('source');\n    if (source) {\n      source.dataset.srcset = mobileSrcset;\n      source.setAttribute('srcset', mobileSrcset);\n    }\n\n    const image = slide.querySelector('img');\n    if (!image) return;\n    image.dataset.src = `${targetBase}&width=1200`;\n    image.dataset.srcset = desktopSrcset;\n    image.setAttribute('src', `${targetBase}&width=1200`);\n    image.setAttribute('srcset', desktopSrcset);\n  }\n\n  function scheduleHomeSlideThreeBanner() {\n    applyHomeSlideThreeBanner();\n    window.setTimeout(applyHomeSlideThreeBanner, 0);\n    window.setTimeout(applyHomeSlideThreeBanner, 250);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', scheduleHomeSlideThreeBanner);\n  } else {\n    scheduleHomeSlideThreeBanner();\n  }\n\n  document.addEventListener('click', (event) => {\n    const dots = Array.from(document.querySelectorAll('[data-lq-home-dot]'));\n    const dotIndex = dots.indexOf(event.target.closest('[data-lq-home-dot]'));\n    if (dotIndex === 2) scheduleHomeSlideThreeBanner();\n  });\n\n  document.addEventListener('shopify:section:load', scheduleHomeSlideThreeBanner);\n})();\n\n(() => {\n  const styleId = 'lq-home-banner-redesign-20260613';\n  const css = `\n    html body .lq-home-hero::before {\n      width: min(58vw, 860px) !important;\n      clip-path: none !important;\n      backdrop-filter: none !important;\n      -webkit-backdrop-filter: none !important;\n      background: linear-gradient(90deg, rgba(4, 6, 12, .9) 0%, rgba(4, 6, 12, .76) 48%, rgba(4, 6, 12, .34) 76%, rgba(4, 6, 12, 0) 100%) !important;\n    }\n\n    html body .lq-home-hero__shade {\n      background: linear-gradient(90deg, rgba(0, 0, 0, .34) 0%, rgba(0, 0, 0, .16) 38%, rgba(0, 0, 0, .02) 70%, rgba(0, 0, 0, 0) 100%), linear-gradient(180deg, rgba(0, 0, 0, .04), rgba(0, 0, 0, .24)) !important;\n    }\n\n    html body .lq-home-hero__content {\n      box-sizing: border-box !important;\n      width: min(100%, 520px) !important;\n      max-width: 520px !important;\n      border-left: 4px solid var(--lq-home-red) !important;\n      padding-left: 24px !important;\n      overflow-wrap: break-word !important;\n    }\n\n    html body .lq-home-hero__heading {\n      max-width: 520px !important;\n      font-size: 43px !important;\n      overflow-wrap: break-word !important;\n    }\n\n    html body .lq-home-hero__text {\n      max-width: 500px !important;\n    }\n\n    html body .lq-home-hero__stats {\n      max-width: 520px !important;\n      gap: 16px !important;\n      border-top: 1px solid rgba(255, 255, 255, .22) !important;\n      padding-top: 18px !important;\n    }\n\n    html body .lq-home-hero__stat {\n      min-width: 0 !important;\n      border-left: 0 !important;\n      padding-left: 0 !important;\n    }\n\n    html body .lq-home-hero__stat span {\n      font-size: 11.5px !important;\n      overflow-wrap: anywhere !important;\n    }\n\n    @media screen and (max-width: 989px) {\n      html body .lq-home-hero::before {\n        width: 76vw !important;\n        clip-path: none !important;\n      }\n\n      html body .lq-home-hero__shade {\n        background: linear-gradient(90deg, rgba(0, 0, 0, .42) 0%, rgba(0, 0, 0, .22) 52%, rgba(0, 0, 0, .06) 100%), linear-gradient(180deg, rgba(0, 0, 0, .03), rgba(0, 0, 0, .22)) !important;\n      }\n    }\n\n    @media screen and (max-width: 749px) {\n      html body .lq-home-hero::before {\n        width: 100% !important;\n        height: 100% !important;\n        background: linear-gradient(180deg, rgba(4, 6, 12, .78) 0%, rgba(4, 6, 12, .54) 58%, rgba(4, 6, 12, .28) 100%) !important;\n      }\n\n      html body .lq-home-hero__content {\n        padding-left: 16px !important;\n      }\n\n      html body .lq-home-hero__heading {\n        font-size: 31px !important;\n      }\n\n      html body .lq-home-hero__stats {\n        gap: 8px !important;\n        padding-top: 14px !important;\n      }\n    }\n  `;\n\n  function applyHomeBannerLayout() {\n    if (!document.querySelector('.lq-home-hero')) return;\n\n    const oldCacheFix = document.getElementById('lq-home-banner-cache-fix');\n    if (oldCacheFix) {\n      oldCacheFix.textContent = css;\n      oldCacheFix.dataset.lqBannerRedesign = '20260613';\n    }\n\n    let style = document.getElementById(styleId);\n    if (!style) {\n      style = document.createElement('style');\n      style.id = styleId;\n      document.head.appendChild(style);\n    } else if (style.parentNode) {\n      style.parentNode.appendChild(style);\n    }\n    style.textContent = css;\n  }\n\n  function scheduleHomeBannerLayout() {\n    applyHomeBannerLayout();\n    window.setTimeout(applyHomeBannerLayout, 0);\n    window.setTimeout(applyHomeBannerLayout, 250);\n    window.setTimeout(applyHomeBannerLayout, 1200);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', scheduleHomeBannerLayout);\n  } else {\n    scheduleHomeBannerLayout();\n  }\n\n  document.addEventListener('click', (event) => {\n    if (event.target?.closest?.('[data-lq-home-dot]')) scheduleHomeBannerLayout();\n  });\n\n  document.addEventListener('shopify:section:load', scheduleHomeBannerLayout);\n})();\n\n(function () {\n  const styleId = 'lq-home-proof-runtime-cards-style';\n  const cards = [\n    {\n      title: 'LED Display',\n      image: 'https://cdn.shopify.com/s/files/1/0673/5082/2971/files/01_led_display_stage_clear.webp?v=1781362909',\n      alt: 'LED display stage application',\n      icon: '<svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"1.5\"/><path d=\"M4 10h16M4 16h16M10 4v16M16 4v16\"/></svg>',\n      items: ['Rental & Staging', 'Indoor / Outdoor LED']\n    },\n    {\n      title: 'Light Box',\n      image: 'https://cdn.shopify.com/s/files/1/0673/5082/2971/files/02_light_box_storefront_clear.webp?v=1781362911',\n      alt: 'Light box storefront application',\n      icon: '<svg viewBox=\"0 0 24 24\"><path d=\"M12 3 20 7.5v9L12 21 4 16.5v-9L12 3z\"/><path d=\"M12 12 20 7.5M12 12v9M12 12 4 7.5\"/></svg>',\n      items: ['Slim / Rotating Box', 'Custom Light Box']\n    },\n    {\n      title: 'Custom Signage',\n      image: 'https://cdn.shopify.com/s/files/1/0673/5082/2971/files/03_custom_signage_mall_clear.webp?v=1781362906',\n      alt: 'Custom signage mall application',\n      icon: '<svg viewBox=\"0 0 24 24\"><path d=\"M5 19 19 5\"/><path d=\"M8 5h11v11\"/><path d=\"M5 12v7h7\"/></svg>',\n      items: ['Totem & Pylon Sign', 'Wayfinding / Logo']\n    }\n  ];\n\n  const css = `\n    html body .lq-home-proof__visual--catalog {\n      min-height: 470px !important;\n      display: grid !important;\n      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\n      gap: 12px !important;\n      align-items: stretch !important;\n      padding: 0 18px 18px 0 !important;\n    }\n\n    html body .lq-home-proof__visual--catalog .lq-home-proof__product-card {\n      position: relative !important;\n      z-index: 1 !important;\n      display: block !important;\n      width: 100% !important;\n      min-width: 0 !important;\n      min-height: 430px !important;\n      height: 100% !important;\n      overflow: hidden !important;\n      border: 1px solid rgba(17, 17, 17, 0.08) !important;\n      border-radius: 8px !important;\n      background: #050505 !important;\n      color: #ffffff !important;\n      text-decoration: none !important;\n      box-shadow: 0 18px 44px rgba(17, 17, 17, 0.12) !important;\n    }\n\n    html body .lq-home-proof__visual--catalog .lq-home-proof__product-card img {\n      position: absolute !important;\n      inset: 0 !important;\n      z-index: 0 !important;\n      display: block !important;\n      width: 100% !important;\n      height: 100% !important;\n      max-width: none !important;\n      margin: 0 !important;\n      padding: 0 !important;\n      border-radius: 0 !important;\n      object-fit: cover !important;\n      object-position: center center !important;\n    }\n\n    html body .lq-home-proof__visual--catalog .lq-home-proof__product-card::after {\n      content: \"\" !important;\n      position: absolute !important;\n      inset: 0 !important;\n      z-index: 1 !important;\n      background:\n        linear-gradient(180deg, rgba(0, 0, 0, 0) 18%, rgba(0, 0, 0, 0.2) 46%, rgba(0, 0, 0, 0.94) 100%),\n        linear-gradient(90deg, rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.04)) !important;\n    }\n\n    html body .lq-home-proof__product-body {\n      position: absolute !important;\n      z-index: 2 !important;\n      left: 16px !important;\n      right: 16px !important;\n      bottom: 20px !important;\n      color: #ffffff !important;\n    }\n\n    html body .lq-home-proof__product-icon {\n      display: inline-flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      width: 42px !important;\n      height: 42px !important;\n      margin-bottom: 10px !important;\n      border-radius: 999px !important;\n      background: #ffffff !important;\n      color: #e60012 !important;\n    }\n\n    html body .lq-home-proof__product-icon svg {\n      width: 21px !important;\n      height: 21px !important;\n      fill: none !important;\n      stroke: currentColor !important;\n      stroke-width: 1.9 !important;\n      stroke-linecap: round !important;\n      stroke-linejoin: round !important;\n    }\n\n    html body .lq-home-proof__product-body strong {\n      display: block !important;\n      color: #ffffff !important;\n      font-size: 18px !important;\n      line-height: 1.18 !important;\n      font-weight: 850 !important;\n    }\n\n    html body .lq-home-proof__product-body ul {\n      display: grid !important;\n      gap: 5px !important;\n      margin: 9px 0 0 !important;\n      padding: 0 !important;\n      list-style: none !important;\n    }\n\n    html body .lq-home-proof__product-body li {\n      color: rgba(255, 255, 255, 0.9) !important;\n      font-size: 12px !important;\n      line-height: 1.32 !important;\n    }\n\n    html body .lq-home-proof__product-body li::before {\n      content: \"- \" !important;\n      color: #ffffff !important;\n    }\n\n    @media screen and (max-width: 749px) {\n      html body .lq-home-proof__visual--catalog {\n        min-height: auto !important;\n        grid-template-columns: 1fr !important;\n        gap: 12px !important;\n        padding-right: 0 !important;\n      }\n\n      html body .lq-home-proof__visual--catalog .lq-home-proof__product-card {\n        min-height: 360px !important;\n        height: auto !important;\n        aspect-ratio: 0.84 !important;\n        box-shadow: none !important;\n      }\n    }\n  `;\n\n  function ensureStyle() {\n    let style = document.getElementById(styleId);\n    if (!style) {\n      style = document.createElement('style');\n      style.id = styleId;\n      document.head.appendChild(style);\n    }\n    style.textContent = css;\n  }\n\n  function renderProofCards() {\n    const visual = document.querySelector('.lq-home-proof__visual');\n    if (!visual || visual.querySelector('.lq-home-proof__product-card')) return;\n    const fallback = visual.querySelector('.lq-home-proof__fallback');\n    if (!fallback) return;\n\n    const link = document.querySelector('.lq-home-proof__link')?.href || '/collections/led-screen';\n    visual.classList.add('lq-home-proof__visual--catalog');\n    visual.setAttribute('aria-label', 'LED display, light box and custom signage product examples');\n    visual.innerHTML = cards.map((card) => `\n      <a class=\"lq-home-proof__tile lq-home-proof__product-card\" href=\"${link}\">\n        <img src=\"${card.image}\" alt=\"${card.alt}\" loading=\"lazy\" width=\"420\" height=\"640\">\n        <div class=\"lq-home-proof__product-body\">\n          <span class=\"lq-home-proof__product-icon\" aria-hidden=\"true\">${card.icon}</span>\n          <strong>${card.title}</strong>\n          <ul>${card.items.map((item) => `<li>${item}</li>`).join('')}</ul>\n        </div>\n      </a>\n    `).join('');\n    ensureStyle();\n  }\n\n  function scheduleProofCards() {\n    renderProofCards();\n    window.setTimeout(renderProofCards, 0);\n    window.setTimeout(renderProofCards, 250);\n    window.setTimeout(renderProofCards, 1200);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', scheduleProofCards);\n  } else {\n    scheduleProofCards();\n  }\n\n  document.addEventListener('shopify:section:load', scheduleProofCards);\n})();\n"],
  "mappings": "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",
  "names": []
}
