{"version":3,"file":"binom-sdk-utils-renderer.mjs","sources":["../../../../../../binom/public/sdks/sdk-utils/renderer/src/bn-renderer-util.ts","../../../../../../binom/public/sdks/sdk-utils/renderer/src/bn-render-helper.ts","../../../../../../binom/public/sdks/sdk-utils/renderer/src/binom-sdk-utils-renderer.ts"],"sourcesContent":["import { Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nexport class BnRendererUtil {\n  // Styles Helper\n  static setStyle(renderer: Renderer2, el: HTMLElement, sKey: string, sValue: string, important = false): void {\n    if(important){\n      renderer.setStyle(el, sKey, sValue, RendererStyleFlags2.Important);\n    } else {\n      renderer.setStyle(el, sKey, sValue);\n    }\n  }\n\n  static setStyles(renderer: Renderer2, el: HTMLElement, styles: {[key: string]: string}, important = false): void {\n    for (const [key, value] of Object.entries(styles)) {\n      this.setStyle(renderer, el, key, value, important);\n    }\n  }\n\n  static setAttribute(renderer: Renderer2, el: HTMLElement, attributeName: string, attributeValue: string): void {\n    renderer.setAttribute(el, attributeName, attributeValue);\n  }\n\n  static removeAttribute(renderer: Renderer2, el: HTMLElement, attributeName: string): void {\n    renderer.removeAttribute(el, attributeName);\n  }\n\n  static removeStyle(renderer: Renderer2, el: HTMLElement, styleName: string): void {\n    renderer.removeStyle(el, styleName);\n  }\n\n  static removeClassesWith(renderer: Renderer2, el: HTMLElement, value: string): void {\n    const classesToRemove = Array.from(el.classList).filter(className => className.startsWith(value));\n    classesToRemove.forEach(className => renderer.removeClass(el, className));\n  }\n\n  static setProperty(renderer: Renderer2, el: HTMLElement, property: string, value: string): void {\n    el.style.setProperty(property, value);\n  }\n\n  static removeProperty(renderer: Renderer2, el: HTMLElement, property: string): void {\n    el.style.removeProperty(property);\n  }\n\n  static setProperties(renderer: Renderer2, el: HTMLElement, properties: {[key: string]: string}): void {\n    for (const [key, value] of Object.entries(properties)) {\n      this.setProperty(renderer, el, key, value);\n    }\n  }\n\n  static removeProperties(renderer: Renderer2, el: HTMLElement, properties: string[]): void {\n    for (const property of properties) {\n      this.removeProperty(renderer, el, property);\n    }\n  }\n\n  static removeStyles(renderer: Renderer2, el: HTMLElement, styleNames: string[]): void {\n    for (const styleName of styleNames) {\n      this.removeStyle(renderer, el, styleName);\n    }\n  }\n\n \n\n  static addClass(renderer: Renderer2, el: HTMLElement, className: string): void {\n    renderer.addClass(el, className);\n  }\n\n  static removeClass(renderer: Renderer2, el: HTMLElement, className: string): void {\n    renderer.removeClass(el, className);\n  }\n\n  static addClasses(renderer: Renderer2, el: HTMLElement, classNames: string[]): void {\n    classNames.forEach(className => this.addClass(renderer, el, className));\n  }\n\n  static removeClasses(renderer: Renderer2, el: HTMLElement, classNames: string[]): void {\n    classNames.forEach(className => this.removeClass(renderer, el, className));\n  }\n\n  static toggleClass(renderer: Renderer2, el: HTMLElement, toggle: boolean, className: string): void {\n    if(toggle){\n      this.addClass(renderer, el, className);\n    } else {\n      this.removeClass(renderer, el, className);\n    }\n  }\n\n  static toggleOnOff(renderer: Renderer2, el: HTMLElement, toggle: boolean, onClass:string, offClass:string){\n    if(toggle){\n      this.addClass(renderer, el, onClass);\n      this.removeClass(renderer, el, offClass);\n    } else {\n      this.removeClass(renderer, el, onClass);\n      this. addClass(renderer, el, offClass);\n    }    \n  }\n\n  static addAttributes(renderer: Renderer2, el: HTMLElement, attributes: {[key: string]: string}): void {\n    for (const [key, value] of Object.entries(attributes)) {\n      renderer.setAttribute(el, key, value);\n    }\n  }\n\n  static removeAttributes(renderer: Renderer2, el: HTMLElement, attributeNames: string[]): void {\n    for (const attributeName of attributeNames) {\n      renderer.removeAttribute(el, attributeName);\n    }\n  }\n\n  static addElementIdClasses(renderer: Renderer2, el: HTMLElement, elTag: string, id: string, tag = 'bnl'): void {\n     this.addClasses(renderer, el, [`${tag}-el-${elTag}`, `${tag}-${elTag}-${id}`]);\n  }\n\n  static insertBefore(renderer: Renderer2, el: HTMLElement, insertEl:HTMLElement): void{\n    renderer.insertBefore(el.parentNode, insertEl, el);\n  }\n\n  static appendChild(renderer: Renderer2, el: HTMLElement, insertEl:HTMLElement): void{\n    renderer.appendChild(el, insertEl);\n  }\n\n  static setInnerHTML(renderer: Renderer2, el: HTMLElement, html: string): void {\n    el.innerHTML = html;\n  }\n\n  static createAndAddEl(renderer: Renderer2, el: HTMLElement, type:string, beforeAfter = 'after'):HTMLElement{\n    const newEl = renderer.createElement(type);\n    this[beforeAfter === 'after' ? 'appendChild' : 'insertBefore'](renderer, el, newEl);\n    return newEl;\n  }\n\n  static wrappInnerHtml(renderer: Renderer2, el: HTMLElement, wrappInto: 'span' | 'div'): HTMLElement {\n    const newHostEl = renderer.createElement(wrappInto);\n    newHostEl.innerHTML = el.innerHTML;\n    el.innerHTML = '';\n    renderer.appendChild(el, newHostEl);\n    return newHostEl;\n  }\n\n  static addHelperToEl(renderer: Renderer2, addToEl: HTMLElement, className:string, helperType: 'span' | 'div' = 'span'): HTMLElement{\n    const helper = renderer.createElement(helperType);\n    helper.setAttribute('aria-hidden', 'true');\n    renderer.addClass(helper, className);\n    renderer.appendChild(addToEl, helper);\n    return helper;\n  }\n\n  static addContentToEl(renderer: Renderer2, el: HTMLElement, content: string): void {\n    el.innerHTML = content;\n  }\n\n  static removeContentFromEl(renderer: Renderer2, el: HTMLElement): void {\n    el.innerHTML = '';\n  }\n\n  // Animation Helper\n  static addTransition(renderer: Renderer2, el: HTMLElement, properties: string[], duration = '0.3s', easing = 'ease'): void {\n    const transitionValue = properties.map(prop => `${prop} ${duration} ${easing}`).join(', ');\n    this.setStyle(renderer, el, 'transition', transitionValue);\n  }\n\n  static removeTransition(renderer: Renderer2, el: HTMLElement): void {\n    this.removeStyle(renderer, el, 'transition');\n  }\n\n  static animateElement(\n    renderer: Renderer2,\n    el: HTMLElement,\n    keyframes: { [key: string]: string }[],\n    options: { duration?: number; easing?: string; fill?: 'none' | 'forwards' | 'backwards' | 'both' } = {}\n  ): Animation | null {\n    if (typeof el.animate === 'undefined') return null;\n\n    const defaultOptions = {\n      duration: 300,\n      easing: 'ease',\n      fill: 'forwards' as const,\n      ...options\n    };\n\n    return el.animate(keyframes, defaultOptions);\n  }\n\n  static fadeIn(renderer: Renderer2, el: HTMLElement, duration = 300): Animation | null {\n    this.setStyle(renderer, el, 'opacity', '0');\n    this.setStyle(renderer, el, 'display', '');\n\n    return this.animateElement(renderer, el,\n      [\n        { opacity: '0' },\n        { opacity: '1' }\n      ],\n      { duration, fill: 'forwards' }\n    );\n  }\n\n  static fadeOut(renderer: Renderer2, el: HTMLElement, duration = 300): Animation | null {\n    const animation = this.animateElement(renderer, el,\n      [\n        { opacity: '1' },\n        { opacity: '0' }\n      ],\n      { duration, fill: 'forwards' }\n    );\n\n    if (animation) {\n      animation.addEventListener('finish', () => {\n        this.setStyle(renderer, el, 'display', 'none');\n      });\n    }\n\n    return animation;\n  }\n\n  static slideDown(renderer: Renderer2, el: HTMLElement, duration = 300): Animation | null {\n    const height = el.scrollHeight;\n    this.setStyle(renderer, el, 'max-height', '0');\n    this.setStyle(renderer, el, 'overflow', 'hidden');\n\n    return this.animateElement(renderer, el,\n      [\n        { maxHeight: '0px' },\n        { maxHeight: `${height}px` }\n      ],\n      { duration, fill: 'forwards' }\n    );\n  }\n\n  static slideUp(renderer: Renderer2, el: HTMLElement, duration = 300): Animation | null {\n    const animation = this.animateElement(renderer, el,\n      [\n        { maxHeight: `${el.scrollHeight}px` },\n        { maxHeight: '0px' }\n      ],\n      { duration, fill: 'forwards' }\n    );\n\n    if (animation) {\n      animation.addEventListener('finish', () => {\n        this.setStyle(renderer, el, 'display', 'none');\n      });\n    }\n\n    return animation;\n  }\n\n  // Accessibility Helper\n  static setAriaLabel(renderer: Renderer2, el: HTMLElement, label: string): void {\n    this.setAttribute(renderer, el, 'aria-label', label);\n  }\n\n  static setAriaDescribedBy(renderer: Renderer2, el: HTMLElement, id: string): void {\n    this.setAttribute(renderer, el, 'aria-describedby', id);\n  }\n\n  static setAriaExpanded(renderer: Renderer2, el: HTMLElement, expanded: boolean): void {\n    this.setAttribute(renderer, el, 'aria-expanded', expanded.toString());\n  }\n\n  static setAriaHidden(renderer: Renderer2, el: HTMLElement, hidden: boolean): void {\n    this.setAttribute(renderer, el, 'aria-hidden', hidden.toString());\n  }\n\n  static setRole(renderer: Renderer2, el: HTMLElement, role: string): void {\n    this.setAttribute(renderer, el, 'role', role);\n  }\n\n  static setTabIndex(renderer: Renderer2, el: HTMLElement, index: number): void {\n    this.setAttribute(renderer, el, 'tabindex', index.toString());\n  }\n\n  static makeFocusable(renderer: Renderer2, el: HTMLElement): void {\n    if (!el.hasAttribute('tabindex')) {\n      this.setTabIndex(renderer, el, 0);\n    }\n  }\n\n  static makeUnfocusable(renderer: Renderer2, el: HTMLElement): void {\n    this.setTabIndex(renderer, el, -1);\n  }\n\n  // Performance Helper\n  static enableHardwareAcceleration(renderer: Renderer2, el: HTMLElement): void {\n    this.setStyles(renderer, el, {\n      'transform': 'translateZ(0)',\n      'backface-visibility': 'hidden',\n      'perspective': '1000px'\n    });\n  }\n\n  static disableHardwareAcceleration(renderer: Renderer2, el: HTMLElement): void {\n    this.removeStyles(renderer, el, ['transform', 'backface-visibility', 'perspective']);\n  }\n\n  static createVirtualScrollContainer(renderer: Renderer2, container: HTMLElement): HTMLElement {\n    const scrollContainer = renderer.createElement('div');\n    this.addClasses(renderer, scrollContainer, ['virtual-scroll-container']);\n    this.setStyles(renderer, scrollContainer, {\n      'height': '100%',\n      'overflow': 'auto',\n      'position': 'relative'\n    });\n\n    const contentContainer = renderer.createElement('div');\n    this.addClasses(renderer, contentContainer, ['virtual-scroll-content']);\n    this.setStyles(renderer, contentContainer, {\n      'position': 'relative',\n      'width': '100%'\n    });\n\n    renderer.appendChild(scrollContainer, contentContainer);\n    renderer.appendChild(container, scrollContainer);\n\n    return contentContainer;\n  }\n\n  // Focus Management\n  static focusElement(renderer: Renderer2, el: HTMLElement): void {\n    // Use setTimeout to ensure element is rendered\n    setTimeout(() => el.focus(), 0);\n  }\n\n  static trapFocus(renderer: Renderer2, container: HTMLElement): () => void {\n    const focusableElements = container.querySelectorAll(\n      'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n    );\n\n    const firstElement = focusableElements[0] as HTMLElement;\n    const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n    const handleTabKey = (e: KeyboardEvent) => {\n      if (e.key !== 'Tab') return;\n\n      if (e.shiftKey) {\n        if (document.activeElement === firstElement) {\n          lastElement.focus();\n          e.preventDefault();\n        }\n      } else {\n        if (document.activeElement === lastElement) {\n          firstElement.focus();\n          e.preventDefault();\n        }\n      }\n    };\n\n    container.addEventListener('keydown', handleTabKey);\n\n    // Return cleanup function\n    return () => {\n      container.removeEventListener('keydown', handleTabKey);\n    };\n  }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Renderer2, ElementRef } from '@angular/core';\nimport { BnRendererUtil } from './bn-renderer-util'; \nimport { RendererUtilMethods } from './bn-render-util-methods';\nexport class BnRendererHelper {\n    private readonly el: HTMLElement;\n    constructor(private readonly renderer: Renderer2, el: HTMLElement | ElementRef) {\n        this.el = el instanceof ElementRef ? el.nativeElement : el;\n    }\n    render(action: RendererUtilMethods, ...params: any[]): void | HTMLElement | string | undefined {\n        switch (action) {\n            case 'setStyle': BnRendererUtil.setStyle(this.renderer, this.el, params[0], params[1], params[2]); break;\n            case 'setStyles':BnRendererUtil.setStyles(this.renderer, this.el, params[0], params[1]); break;\n            case 'addClass': BnRendererUtil.addClass(this.renderer, this.el, params[0]); break;\n            case 'removeClass':BnRendererUtil.removeClass(this.renderer, this.el, params[0]);break;\n            case 'addClasses':BnRendererUtil.addClasses(this.renderer, this.el, params[0]); break;\n            case 'removeClasses':BnRendererUtil.removeClasses(this.renderer, this.el, params[0]);break;\n            case 'toggleClass': BnRendererUtil.toggleClass(this.renderer, this.el, params[0], params[1]); break;\n            case 'addAttributes':BnRendererUtil.addAttributes(this.renderer, this.el, params[0]);break;\n            case 'removeAttributes':BnRendererUtil.removeAttributes(this.renderer, this.el, params[0]);break;\n            case 'insertBefore':BnRendererUtil.insertBefore(this.renderer, this.el, params[0]);break;\n            case 'appendChild':BnRendererUtil.appendChild(this.renderer, this.el, params[0]);break;\n            case 'createAndAddEl': return BnRendererUtil.createAndAddEl(this.renderer, this.el, params[0]);\n            case 'wrappInnerHtml': return BnRendererUtil.wrappInnerHtml(this.renderer, this.el, params[0]);\n            case 'setAttribute':BnRendererUtil.setAttribute(this.renderer, this.el, params[0], params[1]);break;\n            case 'removeAttribute':BnRendererUtil.removeAttribute(this.renderer, this.el, params[0]);break;\n            case 'setProperty':BnRendererUtil.setProperty(this.renderer, this.el, params[0], params[1]);break;\n            case 'removeProperty':BnRendererUtil.removeProperty(this.renderer, this.el, params[0]);break;\n            case 'setProperties':BnRendererUtil.setProperties(this.renderer, this.el, params[0]);break;\n            case 'removeProperties':BnRendererUtil.removeProperties(this.renderer, this.el, params[0]);break;\n            case 'addContentToEl':BnRendererUtil.addContentToEl(this.renderer, this.el, params[0]);break;\n            case 'removeContentFromEl':BnRendererUtil.removeContentFromEl(this.renderer, this.el);break;\n            default:throw new Error(`Unsupported action: ${action}`);\n        }\n    }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}