{"version":3,"file":"binom-sdk-utils-html.mjs","sources":["../../../../../../binom/public/sdks/sdk-utils/html/src/bn-html-svc.ts","../../../../../../binom/public/sdks/sdk-utils/html/src/binom-sdk-utils-html.ts"],"sourcesContent":["\nimport { DOCUMENT, inject, Injectable,} from '@angular/core';\nimport { BnPlatformSvc } from '@binom/sdk-utils/platform';\n@Injectable({\n  providedIn: 'root',\n})\nexport class BnHtmlSvc {\n  private platformSvc = inject(BnPlatformSvc);\n  private document = inject(DOCUMENT) as Document;\n  isBrowser = this.platformSvc.isBrowser;\n  \n  getElement(selector: string): HTMLElement | null {\n    if (!this.isBrowser) return null;\n    return this.document.querySelector(selector) as HTMLElement | null;\n  }\n\n  getRootElement(): HTMLElement | null {\n    if (!this.isBrowser) return null;\n    return this.document.documentElement;\n  }\n\n  addBodyClass(prefix: string, className: string): void {\n    if (!this.isBrowser) return;\n    this.document.body.classList.add(prefix + className);\n  }\n\n  removeBodyClass(prefix: string, className: string): void {\n    if (!this.isBrowser) return;\n    this.document.body.classList.remove(prefix + className);\n  }\n\n  setBodyClassExclusive(prefix: string, className: string): void {\n    if (!this.isBrowser) return;\n    const body = this.document.body;\n    Array.from(body.classList)\n      .filter(c => c.startsWith(prefix))\n      .forEach(c => body.classList.remove(c));\n    body.classList.add(prefix + className);\n  }\n\n  setCssVars(vars: Record<string, string>, selector = ':root'): void {\n    if (!this.isBrowser) return;\n    const element =\n      selector === ':root'\n        ? this.getRootElement()\n        : this.getElement(selector);\n    if (!element) return;\n    Object.entries(vars).forEach(([key, value]) => {\n      element.style.setProperty(key, value);\n    });\n  }\n\n  removeCssVars(vars: Record<string, string>, selector = ':root'): void {\n    if (!this.isBrowser) return;\n    const element =\n      selector === ':root'\n        ? this.getRootElement()\n        : this.getElement(selector);\n    if (!element) return;\n    Object.keys(vars).forEach(key => {\n      element.style.removeProperty(key);\n    });\n  }\n\n  getCssVars(selector = ':root'): Record<string, string> {\n    if (!this.isBrowser) return {};\n    const element =\n      selector === ':root'\n        ? this.getRootElement()\n        : this.getElement(selector);\n    if (!element) return {};\n    const styles: Record<string, string> = {};\n    for (let i = 0; i < element.style.length; i++) {\n      const prop = element.style[i];\n      if (prop.startsWith('--')) {\n        styles[prop] = element.style.getPropertyValue(prop).trim();\n      }\n    }\n    return styles;\n  }\n\n  // Meta-Tags Management\n  setMetaTag(name: string, content: string, property = false): void {\n    if (!this.isBrowser) return;\n\n    const attribute = property ? 'property' : 'name';\n    let meta = this.document.querySelector(`meta[${attribute}=\"${name}\"]`) as HTMLMetaElement;\n\n    if (!meta) {\n      meta = this.document.createElement('meta');\n      meta.setAttribute(attribute, name);\n      this.document.head.appendChild(meta);\n    }\n\n    meta.content = content;\n  }\n\n  getMetaTag(name: string, property = false): string | null {\n    if (!this.isBrowser) return null;\n\n    const attribute = property ? 'property' : 'name';\n    const meta = this.document.querySelector(`meta[${attribute}=\"${name}\"]`) as HTMLMetaElement;\n    return meta?.content || null;\n  }\n\n  removeMetaTag(name: string, property = false): void {\n    if (!this.isBrowser) return;\n\n    const attribute = property ? 'property' : 'name';\n    const meta = this.document.querySelector(`meta[${attribute}=\"${name}\"]`);\n    if (meta) {\n      meta.remove();\n    }\n  }\n\n  // SEO Helper\n  setPageTitle(title: string): void {\n    if (!this.isBrowser) return;\n    this.document.title = title;\n  }\n\n  setPageDescription(description: string): void {\n    this.setMetaTag('description', description);\n  }\n\n  setOpenGraphTag(property: string, content: string): void {\n    this.setMetaTag(property, content, true);\n  }\n\n  setTwitterCard(type: string, content?: string): void {\n    this.setMetaTag('twitter:card', type);\n    if (content) {\n      this.setMetaTag('twitter:title', content);\n    }\n  }\n\n  // Storage Helper\n  setLocalStorage(key: string, value: unknown): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      const serializedValue = typeof value === 'string' ? value : JSON.stringify(value);\n      localStorage.setItem(key, serializedValue);\n      return true;\n    } catch (error) {\n      console.warn('Failed to set localStorage item:', error);\n      return false;\n    }\n  }\n\n  getLocalStorage<T = unknown>(key: string): T | null {\n    if (!this.isBrowser) return null;\n\n    try {\n      const item = localStorage.getItem(key);\n      if (item === null) return null;\n\n      // Try to parse as JSON, fallback to string\n      try {\n        return JSON.parse(item) as T;\n      } catch {\n        return item as unknown as T;\n      }\n    } catch (error) {\n      console.warn('Failed to get localStorage item:', error);\n      return null;\n    }\n  }\n\n  removeLocalStorage(key: string): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      localStorage.removeItem(key);\n      return true;\n    } catch (error) {\n      console.warn('Failed to remove localStorage item:', error);\n      return false;\n    }\n  }\n\n  clearLocalStorage(): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      localStorage.clear();\n      return true;\n    } catch (error) {\n      console.warn('Failed to clear localStorage:', error);\n      return false;\n    }\n  }\n\n  setSessionStorage(key: string, value: unknown): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      const serializedValue = typeof value === 'string' ? value : JSON.stringify(value);\n      sessionStorage.setItem(key, serializedValue);\n      return true;\n    } catch (error) {\n      console.warn('Failed to set sessionStorage item:', error);\n      return false;\n    }\n  }\n\n  getSessionStorage<T = unknown>(key: string): T | null {\n    if (!this.isBrowser) return null;\n\n    try {\n      const item = sessionStorage.getItem(key);\n      if (item === null) return null;\n\n      try {\n        return JSON.parse(item) as T;\n      } catch {\n        return item as unknown as T;\n      }\n    } catch (error) {\n      console.warn('Failed to get sessionStorage item:', error);\n      return null;\n    }\n  }\n\n  removeSessionStorage(key: string): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      sessionStorage.removeItem(key);\n      return true;\n    } catch (error) {\n      console.warn('Failed to remove sessionStorage item:', error);\n      return false;\n    }\n  }\n\n  clearSessionStorage(): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      sessionStorage.clear();\n      return true;\n    } catch (error) {\n      console.warn('Failed to clear sessionStorage:', error);\n      return false;\n    }\n  }\n\n  // Cookie Helper\n  setCookie(name: string, value: string, days = 7, options: {\n    path?: string;\n    domain?: string;\n    secure?: boolean;\n    sameSite?: 'strict' | 'lax' | 'none';\n  } = {}): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n      if (days) {\n        const date = new Date();\n        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n        cookieString += `; expires=${date.toUTCString()}`;\n      }\n\n      if (options.path) cookieString += `; path=${options.path}`;\n      if (options.domain) cookieString += `; domain=${options.domain}`;\n      if (options.secure) cookieString += '; secure';\n      if (options.sameSite) cookieString += `; samesite=${options.sameSite}`;\n\n      this.document.cookie = cookieString;\n      return true;\n    } catch (error) {\n      console.warn('Failed to set cookie:', error);\n      return false;\n    }\n  }\n\n  getCookie(name: string): string | null {\n    if (!this.isBrowser) return null;\n\n    try {\n      const nameEQ = encodeURIComponent(name) + '=';\n      const cookies = this.document.cookie.split(';');\n\n      for (const cookie of cookies) {\n        const trimmedCookie = cookie.trim();\n        if (trimmedCookie.startsWith(nameEQ)) {\n          return decodeURIComponent(trimmedCookie.substring(nameEQ.length));\n        }\n      }\n      return null;\n    } catch (error) {\n      console.warn('Failed to get cookie:', error);\n      return null;\n    }\n  }\n\n  removeCookie(name: string, path = '/', domain?: string): boolean {\n    if (!this.isBrowser) return false;\n\n    try {\n      this.setCookie(name, '', -1, { path, domain });\n      return true;\n    } catch (error) {\n      console.warn('Failed to remove cookie:', error);\n      return false;\n    }\n  }\n\n  // Event Listener Helper\n  addEventListener<K extends keyof WindowEventMap>(\n    event: K,\n    handler: (event: WindowEventMap[K]) => void,\n    options?: boolean | AddEventListenerOptions\n  ): void;\n  addEventListener<K extends keyof DocumentEventMap>(\n    event: K,\n    handler: (event: DocumentEventMap[K]) => void,\n    options?: boolean | AddEventListenerOptions\n  ): void;\n  addEventListener(\n    event: string,\n    handler: EventListener,\n    options?: boolean | AddEventListenerOptions\n  ): void {\n    if (!this.isBrowser) return;\n\n    if (event.startsWith('window:')) {\n      window.addEventListener(event.substring(7), handler, options);\n    } else if (event.startsWith('document:')) {\n      this.document.addEventListener(event.substring(10), handler, options);\n    } else {\n      this.document.addEventListener(event, handler, options);\n    }\n  }\n\n  removeEventListener<K extends keyof WindowEventMap>(\n    event: K,\n    handler: (event: WindowEventMap[K]) => void,\n    options?: boolean | EventListenerOptions\n  ): void;\n  removeEventListener<K extends keyof DocumentEventMap>(\n    event: K,\n    handler: (event: DocumentEventMap[K]) => void,\n    options?: boolean | EventListenerOptions\n  ): void;\n  removeEventListener(\n    event: string,\n    handler: EventListener,\n    options?: boolean | EventListenerOptions\n  ): void {\n    if (!this.isBrowser) return;\n\n    if (event.startsWith('window:')) {\n      window.removeEventListener(event.substring(7), handler, options);\n    } else if (event.startsWith('document:')) {\n      this.document.removeEventListener(event.substring(10), handler, options);\n    } else {\n      this.document.removeEventListener(event, handler, options);\n    }\n  }\n\n  // Clipboard Helper\n  async copyToClipboard(text: string): Promise<boolean> {\n    if (!this.isBrowser) return false;\n\n    try {\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        await navigator.clipboard.writeText(text);\n        return true;\n      } else {\n        // Fallback for older browsers\n        const textArea = this.document.createElement('textarea');\n        textArea.value = text;\n        textArea.style.position = 'fixed';\n        textArea.style.left = '-999999px';\n        textArea.style.top = '-999999px';\n        this.document.body.appendChild(textArea);\n        textArea.focus();\n        textArea.select();\n\n        const successful = this.document.execCommand('copy');\n        textArea.remove();\n        return successful;\n      }\n    } catch (error) {\n      console.warn('Failed to copy to clipboard:', error);\n      return false;\n    }\n  }\n\n  // URL Helper\n  getCurrentUrl(): string {\n    if (!this.isBrowser) return '';\n    return window.location.href;\n  }\n\n  getUrlParams(): Record<string, string> {\n    if (!this.isBrowser) return {};\n\n    const params: Record<string, string> = {};\n    const urlParams = new URLSearchParams(window.location.search);\n\n    // Fallback for older browsers that don't support entries()\n    try {\n      for (const [key, value] of (urlParams as any).entries()) {\n        params[key] = value;\n      }\n    } catch {\n      // Manual iteration for older browsers\n      const search = window.location.search.substring(1);\n      if (search) {\n        const pairs = search.split('&');\n        for (const pair of pairs) {\n          const [key, value] = pair.split('=');\n          if (key) {\n            params[decodeURIComponent(key)] = decodeURIComponent(value || '');\n          }\n        }\n      }\n    }\n\n    return params;\n  }\n\n  setUrlParams(params: Record<string, string>, replace = false): void {\n    if (!this.isBrowser) return;\n\n    const url = new URL(window.location.href);\n\n    if (replace) {\n      // Clear existing params - fallback for older browsers\n      try {\n        const keys: string[] = [];\n        (url.searchParams as any).forEach((_: string, key: string) => keys.push(key));\n        keys.forEach(key => url.searchParams.delete(key));\n      } catch {\n        // For very old browsers, reconstruct URL without query params\n        url.search = '';\n      }\n    }\n\n    // Set new params\n    for (const [key, value] of Object.entries(params)) {\n      url.searchParams.set(key, value);\n    }\n\n    // Update URL without page reload\n    window.history.replaceState({}, '', url.toString());\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}