{"_id":"@dogsquare/vue-easy-lightbox","_rev":"4-a55f940cc714e1d3e9fd9d0c960539da","name":"@dogsquare/vue-easy-lightbox","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@dogsquare/vue-easy-lightbox","version":"1.0.0","keywords":["vue","vue3","component","image"],"author":{"name":"Dogsquare","email":"opensource@dogsquare.net"},"license":"MIT","_id":"@dogsquare/vue-easy-lightbox@1.0.0","maintainers":[{"name":"dogsquare","email":"hello@dogsquare.net"}],"homepage":"https://dgsqre.github.io/vue-easy-lightbox","bugs":{"url":"https://github.com/dgsqre/vue-easy-lightbox/issues"},"dist":{"shasum":"805c1a62de3f9b85a1188b6f26fbb3fa0513361e","tarball":"https://registry.npmjs.org/@dogsquare/vue-easy-lightbox/-/vue-easy-lightbox-1.0.0.tgz","fileCount":66,"integrity":"sha512-ce9mXoDwqKIjO4SHq01ynX5AErS/njKZ5k0+58L1vkF9ASMHhwOp02A7HDzdSRkmwC074/wfHaodQsaqHOziKA==","signatures":[{"sig":"MEYCIQD3vtL4JC6x5WHG7PIr7YHTXqtQ7Kr6pr2k/YRPIUC5zgIhAOc0qVFutg+9rynFiKRVZkOXi+8+qZngbc62UWoRxpP5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287312},"main":"dist/vue-easy-lightbox.common.min.js","type":"module","types":"types/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-git"}},"module":"dist/vue-easy-lightbox.esm.min.js","browser":{"./sfc":"src/vue-easy-lightbox.vue"},"engines":{"node":">=14.18.3"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/vue-easy-lightbox.esm.min.js","browser":"./dist/vue-easy-lightbox.umd.min.js","require":"./dist/vue-easy-lightbox.common.min.js"},"./dist/*":"./dist/*","./external-css":{"types":"./types/index.d.ts","import":"./dist/external-css/vue-easy-lightbox.esm.min.js","browser":"./dist/external-css/vue-easy-lightbox.umd.min.js","require":"./dist/external-css/vue-easy-lightbox.common.min.js"},"./package.json":"./package.json","./external-css/vue-easy-lightbox.css":"./dist/external-css/vue-easy-lightbox.css"},"gitHead":"57684f30d9685ef71d38a7fc2510d6aceb2c1ca7","private":false,"scripts":{"dev":"vite --host","lint":"eslint --fix --ext .ts,.vue,.js,.tsx ./src","test":"vitest","build":"pnpm run clean && pnpm run build:bundle && pnpm run build:type","clean":"rimraf ./dist && rimraf ./types","commit":"cz","prepare":"husky install","dev:docs":"cd docs && pnpm dev","build:docs":"cd docs && pnpm build","build:type":"tsc --emitDeclarationOnly --project ./tsconfig.build.json","pre-commit":"lint-staged","deploy:docs":"bash bin/deploy-docs.sh","build:bundle":"rollup -c build-scripts/rollup.config.js","dev:bd-watch":"rollup -w -c build-scripts/rollup.watch.config.js"},"_npmUser":{"name":"dogsquare","email":"hello@dogsquare.net"},"repository":{"url":"git+https://github.com/dgsqre/vue-easy-lightbox.git","type":"git"},"_npmVersion":"10.2.4","description":"A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch","directories":{},"lint-staged":{"src/**/*.{vue,js,ts,tsx}":["eslint --fix","prettier --write"]},"_nodeVersion":"20.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@7.4.0","devDependencies":{"vue":"^3.2.47","case":"^1.6.3","sass":"^1.58.0","vite":"^3.2.5","husky":"^8.0.3","cz-git":"^1.4.1","eslint":"^8.33.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.79.1","vitest":"^0.19.1","core-js":"^3.27.2","postcss":"^8.4.21","fs-extra":"^10.1.0","prettier":"^2.8.3","happy-dom":"^6.0.4","commitizen":"^4.3.0","typescript":"^5.3.3","@babel/core":"^7.20.12","@types/node":"^18.11.18","lint-staged":"^13.1.0","autoprefixer":"^10.4.13","@babel/runtime":"^7.20.13","postcss-import":"^14.1.0","@commitlint/cli":"^17.4.2","@vue/test-utils":"2.0.0-rc.18","eslint-plugin-n":"^15.6.1","@babel/preset-env":"^7.20.2","@vue/compiler-sfc":"^3.2.47","eslint-plugin-vue":"^9.9.0","rollup-plugin-vue":"^6.0.0","@types/babel__core":"^7.20.0","@vitejs/plugin-vue":"^3.2.0","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.19.1","@rollup/plugin-babel":"^5.3.1","eslint-plugin-import":"^2.27.5","rollup-plugin-terser":"^7.0.2","@rollup/plugin-terser":"^0.4.0","@vue/babel-plugin-jsx":"^1.1.1","@vue/babel-preset-app":"^5.0.8","eslint-plugin-promise":"^6.1.1","rollup-plugin-postcss":"^4.0.2","@babel/runtime-corejs3":"^7.20.13","@rollup/plugin-replace":"^4.0.0","@vitejs/plugin-vue-jsx":"^2.1.1","@rollup/plugin-commonjs":"^28.0.3","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^13.3.0","@vue/eslint-config-typescript":"^11.0.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.4.2","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-easy-lightbox_1.0.0_1744870375103_0.00823337577997707","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dogsquare/vue-easy-lightbox","version":"1.0.1","keywords":["vue","vue3","component","image"],"author":{"name":"Dogsquare","email":"opensource@dogsquare.net"},"license":"MIT","_id":"@dogsquare/vue-easy-lightbox@1.0.1","maintainers":[{"name":"dogsquare","email":"hello@dogsquare.net"}],"homepage":"https://dgsqre.github.io/vue-easy-lightbox","bugs":{"url":"https://github.com/dgsqre/vue-easy-lightbox/issues"},"dist":{"shasum":"b8405800e0b32148b7b4fdb2d07f08076d51ec3e","tarball":"https://registry.npmjs.org/@dogsquare/vue-easy-lightbox/-/vue-easy-lightbox-1.0.1.tgz","fileCount":66,"integrity":"sha512-Ri9yLszbzdlSwlHNtJ5CRy0VfjW942w7C6xEw98PVfVciIdIyDzdkKCbcKMvkl4yuZKhfSBlzWabxQO7A5/0SQ==","signatures":[{"sig":"MEQCICZgvWK/nJi7iEIUqWVlC2RFEvRfpccuAgr9aOB1TMeEAiAnWYst1+eNpCvxs++x8KmPJm88KBizGb0omOXhIC5ZIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287297},"main":"dist/vue-easy-lightbox.common.min.js","type":"module","types":"types/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-git"}},"module":"dist/vue-easy-lightbox.esm.min.js","browser":{"./sfc":"src/vue-easy-lightbox.vue"},"engines":{"node":">=14.18.3"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/vue-easy-lightbox.esm.min.js","browser":"./dist/vue-easy-lightbox.umd.min.js","require":"./dist/vue-easy-lightbox.common.min.js"},"./dist/*":"./dist/*","./external-css":{"types":"./types/index.d.ts","import":"./dist/external-css/vue-easy-lightbox.esm.min.js","browser":"./dist/external-css/vue-easy-lightbox.umd.min.js","require":"./dist/external-css/vue-easy-lightbox.common.min.js"},"./package.json":"./package.json","./external-css/vue-easy-lightbox.css":"./dist/external-css/vue-easy-lightbox.css"},"gitHead":"b7193a7f10d168350649e0320de05a97441c2d72","private":false,"scripts":{"dev":"vite --host","lint":"eslint --fix --ext .ts,.vue,.js,.tsx ./src","test":"vitest","build":"pnpm run clean && pnpm run build:bundle && pnpm run build:type","clean":"rimraf ./dist && rimraf ./types","commit":"cz","prepare":"husky install","dev:docs":"cd docs && pnpm dev","build:docs":"cd docs && pnpm build","build:type":"tsc --emitDeclarationOnly --project ./tsconfig.build.json","pre-commit":"lint-staged","deploy:docs":"bash bin/deploy-docs.sh","build:bundle":"rollup -c build-scripts/rollup.config.js","dev:bd-watch":"rollup -w -c build-scripts/rollup.watch.config.js"},"_npmUser":{"name":"dogsquare","email":"hello@dogsquare.net"},"repository":{"url":"git+https://github.com/dgsqre/vue-easy-lightbox.git","type":"git"},"_npmVersion":"10.2.4","description":"A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch","directories":{},"lint-staged":{"src/**/*.{vue,js,ts,tsx}":["eslint --fix","prettier --write"]},"_nodeVersion":"20.11.1","dependencies":{"unbuild":"^3.5.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@7.4.0","devDependencies":{"vue":"^3.5.13","case":"^1.6.3","sass":"^1.86.3","vite":"^6.3.1","husky":"^9.1.7","cz-git":"^1.11.1","eslint":"^9.24.0","lodash":"^4.17.21","rimraf":"^6.0.1","rollup":"^4.40.0","vitest":"^3.1.1","core-js":"^3.41.0","postcss":"^8.5.3","fs-extra":"^11.3.0","prettier":"^3.5.3","happy-dom":"^17.4.4","commitizen":"^4.3.1","typescript":"^5.8.3","@babel/core":"^7.26.10","@types/node":"^22.14.1","lint-staged":"^15.5.1","autoprefixer":"^10.4.21","@babel/runtime":"^7.27.0","postcss-import":"^16.1.0","@commitlint/cli":"^19.8.0","@vue/test-utils":"2.4.6","eslint-plugin-n":"^17.17.0","@babel/preset-env":"^7.26.9","@vue/compiler-sfc":"^3.5.13","eslint-plugin-vue":"^10.0.0","rollup-plugin-vue":"^6.0.0","@types/babel__core":"^7.20.5","@vitejs/plugin-vue":"^5.2.3","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.27.0","@rollup/plugin-babel":"^6.0.4","eslint-plugin-import":"^2.31.0","rollup-plugin-terser":"^7.0.2","@rollup/plugin-terser":"^0.4.4","@vue/babel-plugin-jsx":"^1.4.0","@vue/babel-preset-app":"^5.0.8","eslint-plugin-promise":"^7.2.1","rollup-plugin-postcss":"^4.0.2","@babel/runtime-corejs3":"^7.27.0","@rollup/plugin-replace":"^6.0.2","@vitejs/plugin-vue-jsx":"^4.1.2","@rollup/plugin-commonjs":"^28.0.3","@babel/preset-typescript":"^7.27.0","@typescript-eslint/parser":"^8.30.1","@rollup/plugin-node-resolve":"^16.0.1","@vue/eslint-config-typescript":"^14.5.0","@babel/plugin-transform-runtime":"^7.26.10","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.30.1"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-easy-lightbox_1.0.1_1744955063913_0.2019806658551846","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dogsquare/vue-easy-lightbox","version":"1.0.2","keywords":["vue","vue3","component","image"],"author":{"name":"Dogsquare","email":"opensource@dogsquare.net"},"license":"MIT","_id":"@dogsquare/vue-easy-lightbox@1.0.2","maintainers":[{"name":"dogsquare","email":"hello@dogsquare.net"}],"homepage":"https://dgsqre.github.io/vue-easy-lightbox","bugs":{"url":"https://github.com/dgsqre/vue-easy-lightbox/issues"},"dist":{"shasum":"0a55bfa266b529670358ff4240b1fc0b7cdeb0e1","tarball":"https://registry.npmjs.org/@dogsquare/vue-easy-lightbox/-/vue-easy-lightbox-1.0.2.tgz","fileCount":68,"integrity":"sha512-BpSlXUKYUxitiUMCLl/3LQEKpBTldhHCGIztTMjZcDnPqhdASM55YCfLoi7dH/YdaPMjY25id75GbXDKXbzwTQ==","signatures":[{"sig":"MEUCICzkz/thTTqycGpPFl8i7I+z2Iv5a2C6wn3QGOIVZkiBAiEAlewqe+gHhydFRYWkLVWxXZ+mPqzn/rbGnKymW3dq/sw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288060},"main":"dist/vue-easy-lightbox.common.min.js","type":"module","types":"types/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-git"}},"module":"dist/vue-easy-lightbox.esm.min.js","browser":{"./sfc":"src/vue-easy-lightbox.vue"},"engines":{"node":">=14.18.3"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/vue-easy-lightbox.esm.min.js","browser":"./dist/vue-easy-lightbox.umd.min.js","require":"./dist/vue-easy-lightbox.common.min.js"},"./dist/*":"./dist/*","./external-css":{"types":"./types/index.d.ts","import":"./dist/external-css/vue-easy-lightbox.esm.min.js","browser":"./dist/external-css/vue-easy-lightbox.umd.min.js","require":"./dist/external-css/vue-easy-lightbox.common.min.js"},"./package.json":"./package.json","./external-css/vue-easy-lightbox.css":"./dist/external-css/vue-easy-lightbox.css"},"gitHead":"bd38eece44cef3be68b0625b4a83c43ab53cd0f8","private":false,"scripts":{"dev":"vite --host","lint":"eslint --fix --ext .ts,.vue,.js,.tsx ./src","test":"vitest","build":"pnpm run clean && pnpm run build:bundle && pnpm run build:type","clean":"rimraf ./dist && rimraf ./types","commit":"cz","prepare":"husky install","dev:docs":"cd docs && pnpm dev","build:docs":"cd docs && pnpm build","build:type":"tsc --emitDeclarationOnly --project ./tsconfig.build.json","pre-commit":"lint-staged","deploy:docs":"bash bin/deploy-docs.sh","build:bundle":"rollup -c build-scripts/rollup.config.js","dev:bd-watch":"rollup -w -c build-scripts/rollup.watch.config.js"},"_npmUser":{"name":"dogsquare","email":"hello@dogsquare.net"},"repository":{"url":"git+https://github.com/dgsqre/vue-easy-lightbox.git","type":"git"},"_npmVersion":"10.2.4","description":"A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch","directories":{},"lint-staged":{"src/**/*.{vue,js,ts,tsx}":["eslint --fix","prettier --write"]},"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@7.4.0","devDependencies":{"vue":"^3.5.13","case":"^1.6.3","sass":"^1.86.3","vite":"^6.3.1","husky":"^9.1.7","cz-git":"^1.11.1","eslint":"^9.24.0","lodash":"^4.17.21","rimraf":"^6.0.1","rollup":"^4.40.0","vitest":"^3.1.1","core-js":"^3.41.0","postcss":"^8.5.3","unbuild":"^3.5.0","fs-extra":"^11.3.0","prettier":"^3.5.3","@nuxt/kit":"^3.16.2","happy-dom":"^17.4.4","commitizen":"^4.3.1","typescript":"^5.8.3","@babel/core":"^7.26.10","@types/node":"^22.14.1","lint-staged":"^15.5.1","@nuxt/schema":"^3.16.2","autoprefixer":"^10.4.21","@babel/runtime":"^7.27.0","postcss-import":"^16.1.0","@commitlint/cli":"^19.8.0","@vue/test-utils":"2.4.6","eslint-plugin-n":"^17.17.0","@babel/preset-env":"^7.26.9","@vue/compiler-sfc":"^3.5.13","eslint-plugin-vue":"^10.0.0","rollup-plugin-vue":"^6.0.0","vue-eslint-parser":"^10.1.3","@types/babel__core":"^7.20.5","@vitejs/plugin-vue":"^5.2.3","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.27.0","@rollup/plugin-babel":"^6.0.4","eslint-plugin-import":"^2.31.0","@rollup/plugin-terser":"^0.4.4","@vue/babel-plugin-jsx":"^1.4.0","@vue/babel-preset-app":"^5.0.8","eslint-plugin-promise":"^7.2.1","rollup-plugin-postcss":"^4.0.2","@babel/runtime-corejs3":"^7.27.0","@rollup/plugin-replace":"^6.0.2","@vitejs/plugin-vue-jsx":"^4.1.2","@rollup/plugin-commonjs":"^28.0.3","@babel/preset-typescript":"^7.27.0","@typescript-eslint/parser":"^8.30.1","@rollup/plugin-node-resolve":"^16.0.1","@vue/eslint-config-typescript":"^14.5.0","@babel/plugin-transform-runtime":"^7.26.10","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.30.1","@babel/plugin-transform-class-properties":"^7.25.9"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-easy-lightbox_1.0.2_1744957116703_0.19150787882822828","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dogsquare/vue-easy-lightbox","version":"1.0.3","description":"A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch","keywords":["vue","vue3","component","image"],"private":false,"author":{"name":"Dogsquare","email":"opensource@dogsquare.net"},"license":"MIT","main":"dist/vue-easy-lightbox.common.js","module":"dist/vue-easy-lightbox.esm.js","types":"types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./dist/vue-easy-lightbox.esm.js","require":"./dist/vue-easy-lightbox.common.js","browser":"./dist/vue-easy-lightbox.umd.js"},"./package.json":"./package.json","./dist/*":"./dist/*"},"type":"module","browser":{"./sfc":"src/vue-easy-lightbox.vue"},"scripts":{"dev:docs":"cd docs && pnpm dev","dev":"vite --host","dev:bd-watch":"rollup -w -c build-scripts/rollup.watch.config.js","clean":"rimraf ./dist && rimraf ./types","build":"pnpm run clean && pnpm run build:bundle && pnpm run build:type","build:bundle":"vite build","build:type":"tsc --emitDeclarationOnly --project ./tsconfig.build.json","build:docs":"cd docs && pnpm build","deploy:docs":"bash bin/deploy-docs.sh","lint":"eslint --fix --ext .ts,.vue,.js,.tsx ./src","prepare":"husky install","pre-commit":"lint-staged","commit":"cz","test":"vitest"},"repository":{"type":"git","url":"git+https://github.com/dgsqre/vue-easy-lightbox.git"},"bugs":{"url":"https://github.com/dgsqre/vue-easy-lightbox/issues"},"homepage":"https://dgsqre.github.io/vue-easy-lightbox","peerDependencies":{"vue":"^3.5.13"},"devDependencies":{"@babel/core":"^7.26.10","@babel/eslint-parser":"^7.27.0","@babel/plugin-transform-class-properties":"^7.25.9","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-typescript":"^7.27.0","@babel/runtime":"^7.27.0","@babel/runtime-corejs3":"^7.27.0","@commitlint/cli":"^19.8.0","@commitlint/config-conventional":"^19.8.0","@nuxt/kit":"^3.16.2","@nuxt/schema":"^3.16.2","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-terser":"^0.4.4","@types/babel__core":"^7.20.5","@types/node":"^22.14.1","@typescript-eslint/eslint-plugin":"^8.30.1","@typescript-eslint/parser":"^8.30.1","@vitejs/plugin-vue":"^5.2.3","@vitejs/plugin-vue-jsx":"^4.1.2","@vue/babel-plugin-jsx":"^1.4.0","@vue/babel-preset-app":"^5.0.8","@vue/compiler-sfc":"^3.5.13","@vue/eslint-config-typescript":"^14.5.0","@vue/test-utils":"2.4.6","autoprefixer":"^10.4.21","case":"^1.6.3","commitizen":"^4.3.1","core-js":"^3.41.0","cz-git":"^1.11.1","eslint":"^9.24.0","eslint-plugin-import":"^2.31.0","eslint-plugin-n":"^17.17.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-vue":"^10.0.0","fs-extra":"^11.3.0","happy-dom":"^17.4.4","husky":"^9.1.7","lint-staged":"^15.5.1","lodash":"^4.17.21","postcss":"^8.5.3","postcss-import":"^16.1.0","prettier":"^3.5.3","rimraf":"^6.0.1","rollup":"^4.40.0","rollup-plugin-postcss":"^4.0.2","rollup-plugin-vue":"^6.0.0","sass":"^1.86.3","typescript":"^5.8.3","unbuild":"^3.5.0","vite":"^6.3.1","vitest":"^3.1.1","vue":"^3.5.13","vue-eslint-parser":"^10.1.3"},"engines":{"node":">=14.18.3"},"lint-staged":{"src/**/*.{vue,js,ts,tsx}":["eslint --fix","prettier --write"]},"packageManager":"pnpm@7.4.0","config":{"commitizen":{"path":"node_modules/cz-git"}},"_id":"@dogsquare/vue-easy-lightbox@1.0.3","gitHead":"27159c99a09118b31118ec2e4307c234eac53f35","_nodeVersion":"20.11.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-dOKowb++A2w4CRA2x/Rc1nMg7u/sfR6w+XyUspl7aViitGw/LGzxSG+gwyZ18AxtN/0nGhJ6MEqzCXNzlBK6/w==","shasum":"4cdb1cc348bcbe171b384a716f64db4a4fa1b9bd","tarball":"https://registry.npmjs.org/@dogsquare/vue-easy-lightbox/-/vue-easy-lightbox-1.0.3.tgz","fileCount":63,"unpackedSize":209453,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC3mR42iL3LnrW4I8POQ4cqhNQCVsrD6OrGmWu24irClAIhAOZx6s4n7YIIC7LSBBBGtW2y9t5dm8EcQi0n5vzEA0PO"}]},"_npmUser":{"name":"dogsquare","email":"hello@dogsquare.net"},"directories":{},"maintainers":[{"name":"dogsquare","email":"hello@dogsquare.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-easy-lightbox_1.0.3_1745398929622_0.5580107467517401"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-17T06:12:54.960Z","modified":"2025-04-23T09:02:10.012Z","1.0.0":"2025-04-17T06:12:55.409Z","1.0.1":"2025-04-18T05:44:24.147Z","1.0.2":"2025-04-18T06:18:36.941Z","1.0.3":"2025-04-23T09:02:09.837Z"},"bugs":{"url":"https://github.com/dgsqre/vue-easy-lightbox/issues"},"author":{"name":"Dogsquare","email":"opensource@dogsquare.net"},"license":"MIT","homepage":"https://dgsqre.github.io/vue-easy-lightbox","keywords":["vue","vue3","component","image"],"repository":{"type":"git","url":"git+https://github.com/dgsqre/vue-easy-lightbox.git"},"description":"A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch","maintainers":[{"name":"dogsquare","email":"hello@dogsquare.net"}],"readme":"# vue-easy-lightbox\n\n> A Vue.js 3.0 image lightbox component with Zoom / Drag / Rotate / Switch .\n\n[![npm](https://img.shields.io/npm/v/vue-easy-lightbox.svg)](https://www.npmjs.com/package/vue-easy-lightbox)\n[![npm](https://img.shields.io/npm/l/vue-easy-lightbox.svg)](https://www.npmjs.com/package/vue-easy-lightbox)\n[![npm](https://img.badgesize.io/https://unpkg.com/vue-easy-lightbox@next/dist/vue-easy-lightbox.esm.min.js?compression=gzip&style=flat-square&label=gzip%20size&color=#4fc08d)](https://www.npmjs.com/package/vue-easy-lightbox)\n\n\nEnglish | [中文文档](https://github.com/XiongAmao/vue-easy-lightbox/blob/master/README-CN.md) | [Homepage](https://xiongamao.github.io/vue-easy-lightbox/)\n\n\n\n\n> `Vue-easy-lightbox@1.x` only supports Vue.js 3, if you need Vue.js 2 version please check [here](https://github.com/XiongAmao/vue-easy-lightbox/tree/vue2.x).\n\n## Installation\n\n### Package managers\n\n```shell\n$ npm install --save vue-easy-lightbox@next\n# OR\n$ yarn add vue-easy-lightbox@next\n```\n\n\n### Direct Download\n\nInclude the CDN link in HTML.\n\n```html\n<script src=\"https://unpkg.com/vue@next\"></script>\n<script src=\"https://unpkg.com/vue-easy-lightbox@next/dist/vue-easy-lightbox.umd.min.js\"></script>\n<script>\n  const app = Vue.createApp({\n    // ... root component options\n  })\n  app.use(VueEasyLightbox) // global variable\n  app.mount('#app')\n</script>\n```\n\n### Different Builds\n\nSince `Vue 3.x` uses `ES2015` ([docs faq](https://vuejs.org/about/faq.html#what-browsers-does-vue-support)), there is no need to build `ES5` bundle, and `ES5` build is removed from version `1.6.0`.\n\n\n<table>\n  <thead>\n    <tr>\n      <th>Module</th>\n      <th>Filename</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>UMD(for browsers)</td>\n      <td>vue-easy-lightbox.umd.min.js</td>\n    </tr>\n    <tr>\n      <td>CommonJS</td>\n      <td>vue-easy-lightbox.common.min.js (pkg.main)</td>\n    </tr>\n    <tr>\n      <td>ES Module(for bundlers)</td>\n      <td>vue-easy-lightbox.esm.min.js (pkg.module)</td>\n    </tr>\n  </tbody>\n</table>\n\n\n### External CSS Build\n\n> Added in: `v1.2.3`\n\nBy default, CSS is included in `dist/*.min.js`. In some special cases you may want to import CSS individually to avoid some problems ([CSP Violation](https://github.com/XiongAmao/vue-easy-lightbox/issues/75)). You can import builds without CSS and individual `.css` file from `dist/external-css/`.\n\n```js\nimport VueEasyLightbox from 'vue-easy-lightbox/external-css'\n// or\nimport VueEasyLightbox from 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.esm.min.js'\n\n// you need to import css\nimport 'vue-easy-lightbox/external-css/vue-easy-lightbox.css'\n// or\nimport 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.css'\n```\n\n#### TypeScript Checking error:\n\nIf your project is TypeScript project and you get this error message:\n\n> `Could not find the declaration file for module 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.esm.min.js'`\n\nHere are two ways to solve it.\n\nWay 1: add `d.ts` in your project:\n\n```ts\ndeclare module 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.esm.min.js' {\n  import VueEasyLightbox from 'vue-easy-lightbox'\n  export * from 'vue-easy-lightbox'\n  export default VueEasyLightbox\n}\n```\n\nWay 2: alias\n\nIf you're using webpack:  [webpack alias docs](https://webpack.js.org/configuration/resolve/#resolvealias)\n\n```js\n// wepback.config.js\nmodule.exports = {\n  //...\n  resolve: {\n    alias: {\n      'vue-easy-lightbox$': 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.esm.min.js',\n    },\n  },\n};\n\n// in your component\nimport VueEasyLightbox from 'vue-easy-lightbox' // work\n```\n\nOr vitejs: [vitejs alias](https://vitejs.dev/config/shared-options.html#resolve-alias)\n\n```js\n// vite.config.js\nimport { defineConfig } from 'vite'\n\nexport default defineConfig({\n  resolve: {\n    alias: {\n      'vue-easy-lightbox$': 'vue-easy-lightbox/dist/external-css/vue-easy-lightbox.esm.min.js'\n    }\n  }\n})\n```\n\n## Usage\n\n### Using `UMD` in browser\n\n```html\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <script src=\"https://unpkg.com/vue@next\"></script>\n    <script src=\"https://unpkg.com/vue-easy-lightbox@next/dist/vue-easy-lightbox.umd.min.js\"></script>\n  </head>\n  <body>\n    <div id=\"app\">\n      <div class=\"\">\n        <div v-for=\"(src, index) in imgs\" :key=\"index\" class=\"pic\" @click=\"() => showImg(index)\">\n          <img :src=\"src\" />\n        </div>\n      </div>\n      <vue-easy-lightbox :visible=\"visibleRef\" :imgs=\"imgs\" :index=\"indexRef\" @hide=\"onHide\"></vue-easy-lightbox>\n    </div>\n    <script>\n      const { ref } = Vue\n      const app = Vue.createApp({\n        setup() {\n          const visibleRef = ref(false)\n          const indexRef = ref(0)\n          const imgs = [\n            'https://via.placeholder.com/450.png/',\n            'https://via.placeholder.com/300.png/',\n            'https://via.placeholder.com/150.png/',\n            { src: 'https://via.placeholder.com/450.png/', title: 'this is title' }\n          ]\n          const showImg = (index) => {\n            indexRef.value = index\n            visibleRef.value = true\n          }\n          const onHide = () => visibleRef.value = false\n          return {\n            visibleRef,\n            indexRef,\n            imgs,\n            showImg,\n            onHide\n          }\n        }\n      })\n      // Registering VueEasyLightbox for your VueApp.\n      app.use(VueEasyLightbox)\n      app.mount('#app')\n    </script>\n  </body>\n</html>\n```\n\n### Register VueApp component\n\n```javascript\nimport Vue from 'vue'\nimport VueEasyLightbox from 'vue-easy-lightbox'\n\nconst app = Vue.createApp({\n  // ... app options\n})\napp.use(VueEasyLightbox)\napp.mount('#app')\n```\n\n### Basic Usage in SFC\n\n```html\n<template>\n  <div>\n    <button @click=\"showSingle\">Show single picture.</button>\n    <button @click=\"showMultiple\">Show a group of pictures.</button>\n\n    <vue-easy-lightbox\n      :visible=\"visibleRef\"\n      :imgs=\"imgsRef\"\n      :index=\"indexRef\"\n      @hide=\"onHide\"\n    ></vue-easy-lightbox>\n  </div>\n</template>\n\n<script>\n// If VueApp is already registered with VueEasyLightbox, there is no need to register it here.\nimport VueEasyLightbox from 'vue-easy-lightbox'\nimport { ref, defineComponent } from 'vue'\n\nexport default defineComponent({\n  components: {\n    VueEasyLightbox\n  },\n  setup() {\n    const visibleRef = ref(false)\n    const indexRef = ref(0) // default 0\n    const imgsRef = ref([])\n    // Img Url , string or Array of string\n    // ImgObj { src: '', title: '', alt: '' }\n    // 'src' is required\n    // allow mixing\n\n    const onShow = () => {\n      visibleRef.value = true\n    }\n    const showSingle = () => {\n      imgsRef.value = 'http://via.placeholder.com/350x150'\n      // or\n      // imgsRef.value  = {\n      //   title: 'this is a placeholder',\n      //   src: 'http://via.placeholder.com/350x150'\n      // }\n      onShow()\n    }\n    const showMultiple = () => {\n      imgsRef.value = [\n        'http://via.placeholder.com/350x150',\n        'http://via.placeholder.com/350x150'\n      ]\n      // or\n      // imgsRef.value = [\n      //   { title: 'test img', src: 'http://via.placeholder.com/350x150' },\n      //   'http://via.placeholder.com/350x150'\n      // ]\n      indexRef.value = 0 // index of imgList\n      onShow()\n    }\n    const onHide = () => (visibleRef.value = false)\n\n    return {\n      visibleRef,\n      indexRef,\n      imgsRef,\n      showSingle,\n      showMultiple,\n      onHide\n    }\n  }\n})\n</script>\n```\n\n### Use vue slot custom buttons or toolbar\n\n```html\n<vue-easy-lightbox ...>\n  <template v-slot:prev-btn=\"{ prev }\">\n    <button @click=\"prev\">show the prev</button>\n  </template>\n\n  <template v-slot:next-btn=\"{ next }\">\n    <button @click=\"next\">show the next</button>\n  </template>\n\n  <template v-slot:close-btn=\"{ close }\">\n    <button @click=\"close\">close lightbox</button>\n  </template>\n\n  <template v-slot:toolbar=\"{ toolbarMethods }\">\n    <button @click=\"toolbarMethods.zoomIn\">zoom in</button>\n    <button @click=\"toolbarMethods.zoomOut\">zoom out</button>\n    <button @click=\"toolbarMethods.rotateLeft\">Anticlockwise rotation</button>\n    <button @click=\"toolbarMethods.rotateRight\">clockwise rotation</button>\n  </template>\n</vue-easy-lightbox>\n```\n\nReference: [Slots](https://vuejs.org/guide/components/slots.html)\n\n### Composables\n\n> Added in `v1.7.0`\n\n`useEasyLightbox` provides some simple methods and states to help you use `setup()`.\nIt is optional. You can customize your state.\n\nUsage:\n\n```html\n<template>\n  <div>\n    <button @click=\"show\">show</button>\n    <vue-easy-lightbox\n      :visible=\"visibleRef\"\n      :imgs=\"imgsRef\"\n      :index=\"indexRef\"\n      @hide=\"onHide\"\n    />\n  </div>\n</template>\n\n<script>\nimport { defineComponent } from 'vue'\nimport VueEasyLightbox, { useEasyLightbox } from 'vue-easy-lightbox'\n\nexport default defineComponent({\n  components: {\n    VueEasyLightbox\n  },\n  setup() {\n    const {\n      // methods\n      show, onHide, changeIndex,\n      // refs\n      visibleRef, indexRef, imgsRef\n    } = useEasyLightbox({\n      // src / src[]\n      imgs: [\n        'http://via.placeholder.com/250x150',\n        'http://via.placeholder.com/300x150',\n        'http://via.placeholder.com/350x150'\n      ],\n      // initial index\n      initIndex: 0\n    })\n\n    return {\n      visibleRef,\n      indexRef,\n      imgsRef,\n      show,\n      onHide\n    }\n  }\n})\n</script>\n```\n\n#### Type declaration\n\n```ts\nexport interface Img {\n  src?: string\n  title?: string\n  alt?: string\n}\nexport interface UseEasyLightboxOptions {\n  /**\n   * image src/Img or list of images src/Img\n   * @default ''\n   */\n  imgs: Img | string | (Img | string)[];\n  /**\n   * initial index of imgList\n   * @default 0\n   */\n  initIndex?: number;\n}\nexport declare const useEasyLightbox: (options: UseEasyLightboxOptions) => {\n  imgsRef: Ref<Img | string | (Img | string)[]>;\n  indexRef: Ref<number | undefined>;\n  visibleRef: Ref<boolean>;\n  show: (index?: Ref<number> | number | Event) => void;\n  onHide: () => void;\n  changeIndex: (index?: number) => void;\n};\n```\n\n\n## Options\n\nProps\n\n<table>\n  <thead>\n    <tr>\n      <th>Name</th>\n      <th>Type</th>\n      <th>Default</th>\n      <th>Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>visible</td>\n      <td>Boolean</td>\n      <td>required</td>\n      <td>Control lightbox display</td>\n    </tr>\n    <tr>\n      <td>imgs</td>\n      <td>String/String[]/ImgObject:{ src: string, title?: string, alt?: string }/ImgObject[]</td>\n      <td>required</td>\n      <td>Image's src / array of src / ImgObject:{ src, title?, alt? } / array of ImgObject / array of ImgObject.</td>\n    </tr>\n    <tr>\n      <td>index</td>\n      <td>Number</td>\n      <td>0</td>\n      <td>Index of imgList</td>\n    </tr>\n    <tr>\n      <td>loop</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Pass true to enable continuous loop mode.</td>\n    </tr>\n    <tr>\n      <td>scrollDisabled (scroll-disabled)</td>\n      <td>Boolean</td>\n      <td>true</td>\n      <td>Pass true to disable scrolling when modal is visible.</td>\n    </tr>\n    <tr>\n      <td>escDisabled (esc-disabled)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>By default, press the esc key to close Modal during presentation.</td>\n    </tr>\n    <tr>\n      <td>moveDisabled (move-disabled)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Pass true to disable image movement and enable swipe.</td>\n    </tr>\n    <tr>\n      <td>rotateDisabled (rotate-disabled)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Pass true to disable image rotation.</td>\n    </tr>\n    <tr>\n      <td>zoomDisabled (zoom-disabled)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Pass true to disable image zooming.</td>\n    </tr>\n    <tr>\n      <td>pinchDisabled (pinch-disabled)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Pass true to disable pinching.</td>\n    </tr>\n    <tr>\n      <td>maskClosable (mask-closable)</td>\n      <td>Boolean</td>\n      <td>true</td>\n      <td>Enable or disable click mask to close vue-easy-lightbox.</td>\n    </tr>\n    <tr>\n      <td>dblclickDisabled (dblclick-closable)</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>Enable or disable double-click on img to zoom in/out.</td>\n    </tr>\n    <tr>\n      <td>teleport</td>\n      <td>string | Element</td>\n      <td>-</td>\n      <td>Specify the mount node for vue-easy-lightbox.</td>\n    </tr>\n    <tr>\n      <td>swipeTolerance (swipe-tolerance)</td>\n      <td>Number</td>\n      <td>50</td>\n      <td>Specify the number of pixel you have to swipe.</td>\n    </tr>\n    <tr>\n      <td>zoomScale</td>\n      <td>Number</td>\n      <td>0.12</td>\n      <td>Specify the step between zoom levels.</td>\n    </tr>\n    <tr>\n      <td>maxZoom</td>\n      <td>Number</td>\n      <td>3</td>\n      <td>Specify the maximum level of zoom scale.</td>\n    </tr>\n    <tr>\n      <td>minZoom</td>\n      <td>Number</td>\n      <td>0.1</td>\n      <td>Specify the minimum level of zoom scale.</td>\n    </tr>\n    <tr>\n      <td>rtl</td>\n      <td>Boolean</td>\n      <td>false</td>\n      <td>support RTL (right to left) languages</td>\n    </tr>\n  </tbody>\n</table>\n\nEvent\n\n<table>\n  <thead>\n    <tr>\n      <th>Name</th>\n      <th>Description</th>\n      <th>Return Value</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>hide</td>\n      <td>When you click modal mask or close Btn, component will emit this event</td>\n      <td>-</td>\n    </tr>\n    <tr>\n      <td>on-error</td>\n      <td>Image loading error</td>\n      <td>event (event.target is not the image to be displayed)</td>\n    </tr>\n    <tr>\n      <td>on-prev / <br> on-prev-click</td>\n      <td>Emit when prev btn is clicked or when the user swiped right</td>\n      <td>(oldIndex, newIndex)</td>\n    </tr>\n    <tr>\n      <td>on-next / <br> on-next-click</td>\n      <td>Emit when next btn is clicked or when the user swiped left</td>\n      <td>(oldIndex, newIndex)</td>\n    </tr>\n    <tr>\n      <td>on-index-change</td>\n      <td>Emit when imgs's index is changed</td>\n      <td>(oldIndex, newIndex)</td>\n    </tr>\n    <tr>\n      <td>on-rotate</td>\n      <td>Emit when image rotate</td>\n      <td>deg: number (clockwise angle deg)</td>\n    </tr>\n  </tbody>\n</table>\n\nSlot & Scoped Slot\n\n<table>\n  <thead>\n    <tr>\n      <th>Slot Name</th>\n      <th>Slot Props</th>\n      <th>Slot Props Type</th>\n      <th>Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>prev-btn</td>\n      <td>prev</td>\n      <td>Function</td>\n      <td>Show the prev img</td>\n    </tr>\n    <tr>\n      <td>next-btn</td>\n      <td>next</td>\n      <td>Function</td>\n      <td>Show the next img</td>\n    </tr>\n    <tr>\n      <td>close-btn</td>\n      <td>close</td>\n      <td>Function</td>\n      <td>Close modal</td>\n    </tr>\n    <tr>\n      <td>toolbar</td>\n      <td>\n          toolbarMethods: {\n            zoomIn,\n            zoomOut,\n            rotate(rotateLeft),\n            rotateLeft,\n            rotateRight\n          }\n      </td>\n      <td>{ Function }</td>\n      <td>Zoom in, zoom out, rotate(rotateLeft), rotateLeft, rotateRight</td>\n    </tr>\n    <tr>\n      <td>loading</td>\n      <td>-</td>\n      <td>-</td>\n      <td>Loading icon</td>\n    </tr>\n    <tr>\n      <td>onerror</td>\n      <td>-</td>\n      <td>-</td>\n      <td>Error Placeholder</td>\n    </tr>\n  </tbody>\n</table>\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n","readmeFilename":"README.md"}