summaryrefslogtreecommitdiff
path: root/dist/libra.min.js.map
blob: b263b98c6d2a3b77134a98af6a7af9310aba51fb (plain)
1
{"mappings":"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","sources":["<anon>","src/lightbox.js","src/overlay.js","src/shadow.js","src/animation.js"],"sourcesContent":["class $e49d13fc7942bae1$export$2e2bcd8739ae039 {\n    zIndex = 900;\n    zIndexHidden = -100;\n    constructor(){\n        const overlay = document.createElement('div');\n        overlay.id = 'libra-overlay';\n        overlay.classList.add('libra-overlay');\n        // initialized state\n        overlay.style.zIndex = this.zIndexHidden;\n        overlay.style.opacity = '0';\n        this.element = overlay;\n        document.body.appendChild(overlay);\n        return this;\n    }\n    show() {\n        this.element.style.opacity = '1';\n        this.element.style.zIndex = this.zIndex;\n    }\n    hide() {\n        this.element.style.opacity = '0';\n        this.element.style.zIndex = '-100';\n    }\n}\n\n\nclass $6e8e6c64a3263339$export$2e2bcd8739ae039 {\n    static calculateFinalState(element) {\n        let finals = {};\n        const margin = 50;\n        const ratio = element.naturalWidth / element.naturalHeight;\n        const ww = window.innerWidth - 2 * margin;\n        const wh = window.innerHeight - 2 * margin;\n        if (element.naturalWidth > ww) {\n            finals.width = ww;\n            finals.height = ww / ratio;\n            if (finals.height > wh) {\n                finals.height = wh;\n                finals.width = wh * ratio;\n            }\n        } else {\n            finals.width = element.offsetWidth;\n            finals.height = element.offsetHeight;\n        }\n        finals.top = (wh - finals.height) / 2 + window.scrollY + margin;\n        finals.left = (ww - finals.width) / 2 + window.scrollX + margin;\n        return finals;\n    }\n    static transformMatrix(element, starts, finals) {\n        // Calculate scaling factors based on width and height interpolation\n        const scaleX = finals.width / starts.width;\n        const scaleY = finals.height / starts.height;\n        // Calculate the center of the starting and final positions\n        const startCenterX = starts.left + starts.width / 2;\n        const startCenterY = starts.top + starts.height / 2;\n        const finalCenterX = finals.left + finals.width / 2;\n        const finalCenterY = finals.top + finals.height / 2;\n        const translateX = finalCenterX - startCenterX;\n        const translateY = finalCenterY - startCenterY;\n        // Apply the transform with matrix (scale + translate)\n        element.style.transform = `matrix(${scaleX}, 0, 0, ${scaleY}, ${translateX}, ${translateY})`;\n    }\n    static resetTransformMatrix(element) {\n        element.style.transform = `matrix(1, 0, 0, 1, 0, 0)`;\n    }\n}\n\n\nclass $2f427fc7e1c3703f$export$2e2bcd8739ae039 {\n    zIndex = '1000';\n    isOpen = false;\n    /**\n   * ============\n   * Constructors\n   * ============\n   */ constructor(image){\n        this.original = image;\n        const rect = this.original.getBoundingClientRect();\n        this.originalPosition = {\n            top: rect.top + window.scrollY,\n            left: rect.left + window.scrollX,\n            width: rect.width,\n            height: rect.height\n        };\n        this.create(image);\n        return this;\n    }\n    create(image) {\n        // create shadow image\n        const shadow = document.createElement('img');\n        shadow.src = image.src;\n        shadow.id = `libra-shadow-${image.id}`;\n        shadow.classList.add('libra-shadow');\n        // style and position shadow image\n        shadow.style.top = `${this.originalPosition.top}px`;\n        shadow.style.left = `${this.originalPosition.left}px`;\n        shadow.style.width = `${this.originalPosition.width}px`;\n        shadow.style.height = `${this.originalPosition.height}px`;\n        shadow.style.zIndex = this.zIndex;\n        document.body.appendChild(shadow);\n        this.element = shadow;\n    }\n    /**\n   * ============\n   * Actions\n   * ============\n   */ open() {\n        this.isOpen = true;\n        this.original.style.visibility = 'hidden';\n        if (!document.body.contains(this.element)) this.placeItself();\n        (0, $6e8e6c64a3263339$export$2e2bcd8739ae039).transformMatrix(this.element, this.originalPosition, (0, $6e8e6c64a3263339$export$2e2bcd8739ae039).calculateFinalState(this.element));\n    }\n    close() {\n        this.isOpen = false;\n        this.original.style.visibility = 'visible';\n        (0, $6e8e6c64a3263339$export$2e2bcd8739ae039).resetTransformMatrix(this.element);\n        setTimeout(()=>this.destroyItself(), 300);\n    }\n    placeItself() {\n        document.body.appendChild(this.element);\n    }\n    destroyItself() {\n        if (!document.body.contains(this.element)) return;\n        document.body.removeChild(this.element);\n    }\n}\n\n\nclass $e220af4964903f87$export$2e2bcd8739ae039 {\n    currentImage = null;\n    shadows = {};\n    /**\n   * ============\n   * Initializers\n   * ============\n   */ constructor({ selector: selector }){\n        this.selector = selector;\n        this.initOverlay();\n        this.initImages();\n        this.initControls();\n    }\n    initOverlay() {\n        this.overlay = new (0, $e49d13fc7942bae1$export$2e2bcd8739ae039)();\n        this.overlay.element.addEventListener('click', ()=>{\n            this.closeCurrent();\n        });\n    }\n    initImages() {\n        this.images = document.querySelectorAll(this.selector);\n        this.images.forEach((image)=>{\n            if (image.tagName !== 'IMG') return;\n            image.id = crypto.randomUUID(); // generate unique id for each image\n            image.style.cursor = 'zoom-in';\n            image.addEventListener('click', ()=>this.open(image)); // click image to open lightbox\n        });\n    }\n    initControls() {\n        // keyboard shortcuts\n        document.addEventListener('keydown', (e)=>{\n            if (e.key === 'Escape' || e.key === ' ') this.closeCurrent();\n        });\n        // scroll to dismiss\n        document.body.addEventListener('wheel', (e)=>{\n            this.closeCurrent();\n        });\n    }\n    /**\n   * ============\n   * Actions\n   * ============\n   */ // open lightbox = open shadow + show overlay\n    open(image) {\n        this.currentImage = image;\n        const shadow = this.shadows[image.id] || new (0, $2f427fc7e1c3703f$export$2e2bcd8739ae039)(image);\n        if (!this.shadows[image.id]) this.shadows[image.id] = shadow;\n        shadow.open();\n        this.overlay.show();\n    }\n    // close lightbox = remove shadow + hide overlay\n    close(image) {\n        this.currentImage = null;\n        if (!this.shadows[image.id]) return;\n        this.shadows[image.id].close();\n        this.overlay.hide();\n    }\n    closeCurrent() {\n        if (!this.currentImage) return;\n        this.close(this.currentImage);\n    }\n}\n\n\nexport {$e220af4964903f87$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=libra.min.js.map\n","import Overlay from './overlay.js';\nimport Shadow from './shadow.js';\n\nexport default class LightBox {\n  currentImage = null;\n  shadows = {};\n\n  /**\n   * ============\n   * Initializers\n   * ============\n   */\n\n  constructor({ selector }) {\n    this.selector = selector;\n    this.initOverlay();\n    this.initImages();\n    this.initControls();\n  }\n\n  initOverlay() {\n    this.overlay = new Overlay();\n    this.overlay.element.addEventListener('click', () => {\n      this.closeCurrent();\n    });\n  }\n\n  initImages() {\n    this.images = document.querySelectorAll(this.selector);\n    this.images.forEach(image => {\n      if (image.tagName !== 'IMG') return;\n      image.id = crypto.randomUUID(); // generate unique id for each image\n      image.style.cursor = 'zoom-in';\n      image.addEventListener('click', () => this.open(image));  // click image to open lightbox\n    });\n  }\n\n  initControls() {\n    // keyboard shortcuts\n    document.addEventListener('keydown', e => {\n      if (e.key === 'Escape' || e.key === ' ') {\n        this.closeCurrent();\n      }\n    });\n    // scroll to dismiss\n    document.body.addEventListener('wheel', e => {\n      this.closeCurrent();\n    });\n  }\n\n  /**\n   * ============\n   * Actions\n   * ============\n   */\n\n  // open lightbox = open shadow + show overlay\n  open(image) {\n    this.currentImage = image;\n\n    const shadow = this.shadows[image.id] || new Shadow(image);\n    if (!this.shadows[image.id]) {\n      this.shadows[image.id] = shadow;\n    }\n\n    shadow.open();\n    this.overlay.show();\n  }\n\n  // close lightbox = remove shadow + hide overlay\n  close(image) {\n    this.currentImage = null;\n\n    if (!this.shadows[image.id]) return;\n    this.shadows[image.id].close();\n\n    this.overlay.hide();\n  }\n\n  closeCurrent() {\n    if (!this.currentImage) return;\n    this.close(this.currentImage);\n  }\n}\n","export default class Overlay {\n  zIndex = 900;\n  zIndexHidden = -100;\n\n  constructor() {\n    const overlay = document.createElement('div');\n    overlay.id = 'libra-overlay';\n    overlay.classList.add('libra-overlay');\n\n    // initialized state\n    overlay.style.zIndex = this.zIndexHidden;\n    overlay.style.opacity = '0';\n\n    this.element = overlay;\n    document.body.appendChild(overlay);\n\n    return this;\n  }\n\n  show() {\n    this.element.style.opacity = '1';\n    this.element.style.zIndex = this.zIndex;\n  }\n\n  hide() {\n    this.element.style.opacity = '0';\n    this.element.style.zIndex = '-100';\n  }\n}\n","import Animation from './animation.js'\n\nexport default class Shadow {\n  zIndex = '1000'\n  isOpen = false\n\n  /**\n   * ============\n   * Constructors\n   * ============\n   */\n\n  constructor(image) {\n    this.original = image;\n\n    const rect = this.original.getBoundingClientRect();\n    this.originalPosition = {\n      top: rect.top + window.scrollY,\n      left: rect.left + window.scrollX,\n      width: rect.width,\n      height: rect.height\n    }\n\n    this.create(image);\n\n    return this;\n  }\n\n  create(image) {\n    // create shadow image\n    const shadow = document.createElement('img');\n    shadow.src = image.src;\n    shadow.id = `libra-shadow-${image.id}`;\n    shadow.classList.add('libra-shadow');\n\n    // style and position shadow image\n    shadow.style.top = `${this.originalPosition.top}px`;\n    shadow.style.left = `${this.originalPosition.left}px`;\n    shadow.style.width = `${this.originalPosition.width}px`;\n    shadow.style.height = `${this.originalPosition.height}px`;\n    shadow.style.zIndex = this.zIndex;\n\n    document.body.appendChild(shadow);\n    this.element = shadow;\n  }\n\n  /**\n   * ============\n   * Actions\n   * ============\n   */\n\n  open() {\n    this.isOpen = true;\n\n    this.original.style.visibility = 'hidden';\n    if (!document.body.contains(this.element)) this.placeItself();\n\n    Animation.transformMatrix(\n      this.element,\n      this.originalPosition,\n      Animation.calculateFinalState(this.element)\n    );\n  }\n\n  close() {\n    this.isOpen = false;\n\n    this.original.style.visibility = 'visible';\n\n    Animation.resetTransformMatrix(this.element);\n    setTimeout(() => this.destroyItself(), 300);\n  }\n\n  placeItself() {\n    document.body.appendChild(this.element);\n  }\n\n  destroyItself() {\n    if (!document.body.contains(this.element)) return;\n    document.body.removeChild(this.element);\n  }\n}\n","export default class Animation {\n  static calculateFinalState(element) {\n    let finals = {}\n\n    const margin = 50\n    const ratio = element.naturalWidth / element.naturalHeight;\n    const ww = window.innerWidth - 2*margin;\n    const wh = window.innerHeight - 2*margin;\n\n    if (element.naturalWidth > ww) {\n      finals.width = ww;\n      finals.height = ww / ratio;\n      if (finals.height > wh) {\n        finals.height = wh;\n        finals.width = wh * ratio;\n      }\n    } else {\n      finals.width = element.offsetWidth;\n      finals.height = element.offsetHeight;\n    }\n\n    finals.top = (wh - finals.height) / 2 + window.scrollY + margin;\n    finals.left = (ww - finals.width) / 2 + window.scrollX + margin;\n\n    return finals;\n  }\n\n  static transformMatrix(element, starts, finals) {\n    // Calculate scaling factors based on width and height interpolation\n    const scaleX = finals.width / starts.width;\n    const scaleY = finals.height / starts.height;\n\n    // Calculate the center of the starting and final positions\n    const startCenterX = starts.left + starts.width / 2;\n    const startCenterY = starts.top + starts.height / 2;\n    const finalCenterX = finals.left + finals.width / 2;\n    const finalCenterY = finals.top + finals.height / 2;\n\n    const translateX = finalCenterX - startCenterX;\n    const translateY = finalCenterY - startCenterY;\n\n    // Apply the transform with matrix (scale + translate)\n    element.style.transform = `matrix(${scaleX}, 0, 0, ${scaleY}, ${translateX}, ${translateY})`;\n  }\n\n  static resetTransformMatrix(element) {\n    element.style.transform = `matrix(1, 0, 0, 1, 0, 0)`;\n  }\n}\n"],"names":["$e49d13fc7942bae1$export$2e2bcd8739ae039","zIndex","zIndexHidden","overlay","document","createElement","id","classList","add","style","opacity","element","body","appendChild","show","hide","$6e8e6c64a3263339$export$2e2bcd8739ae039","calculateFinalState","finals","ratio","naturalWidth","naturalHeight","ww","window","innerWidth","wh","innerHeight","width","height","offsetWidth","offsetHeight","top","scrollY","left","scrollX","transformMatrix","starts","scaleX","scaleY","startCenterX","startCenterY","finalCenterX","finalCenterY","transform","resetTransformMatrix","$2f427fc7e1c3703f$export$2e2bcd8739ae039","isOpen","image","original","rect","getBoundingClientRect","originalPosition","create","shadow","src","open","visibility","contains","placeItself","close","setTimeout","destroyItself","removeChild","$e220af4964903f87$export$2e2bcd8739ae039","currentImage","shadows","selector","initOverlay","initImages","initControls","addEventListener","closeCurrent","images","querySelectorAll","forEach","tagName","crypto","randomUUID","cursor","e","key","default"],"version":3,"file":"libra.min.js.map"}