Do you like angular-modal-gallery? Please, add a 'star' to support this library
angular-modal-gallery
angular-modal-gallery is an Angular library (SSR compatible) to create image galleries of clickable thumbnails.
After a click, it will display a modal window with full screen images.
Modal view is composed by buttons, the current image and optionally, also navigation dots and previews.
It's also possible to navigate between these modal images with both keyboard arrows, swipe gestures and mouse clicks and close it pressing esc
.
This library uses Semantic versioning 2.0.0 also known as 'semver'
angular-modal-gallery requires Internet Explorer >= 11 and Angular >= 5
Features
- Angular module to import this library
- works with IE >= 11
- AOT support
- Angular >= 5
- compliant to Angular Package Format v5 specifications
- official examples with
angular-cli
, angular-cli + material
, SystemJS
and angular-universal
HERE - unit testing with high % coverage
- Server Side Rendering support with angular-universal (from version 5.2.0)
- Web Accessibility features, like ARIA support and toptal.com criteria (tested with
Sim Daltonism
for macOS) - image download with buttons or keyboard shortcuts
- advanced keyboard shortcuts with
mousetrap
(both local and global) - fully configurable default buttons to either close, download, navigate to an external url or delete images
- support custom buttons with both pre and after hooks
- click outside feature to close the modal gallery clicking on the background
- configurable plain gallery
- configurable side-previews (visible only on bigger screen)
- configurable dots navigation (visible only on bigger screen)
- configurable previews (visible only on bigger screen)
- and so on... (check the official documentation HERE)
Documentation
Image loading could be slow, because this website is hosted on Github pages
OFFICIAL DOCUMENTATION WEBSITE
Live demo
OFFICIAL LIVE DEMO
Installation
npm install --save @ks89/angular-modal-gallery
npm install --save hammerjs mousetrap
npm install --save-dev @types/mousetrap @types/hammerjs
From version 5.0.0, font-awesome isn't a mandatory dependency. You can use all default features without font-awesome. For more info, check official documentation website.
Which version should I use?
| angular-modal-gallery | font-awesome |
---|
AngularJS | NOT SUPPORTED | |
Angular 2 | <= 3.3.5 | >= 4.0.0 |
Angular 4 | <= 5.5.0 | optional |
Angular 5 | >= 5.0.0 | optional |
Angular 6 | >= 5.4.0 | optional |
News
- ??/??/2018 - 5.4.0 - angular-modal-gallery - HERE
- 03/28/2018 - 5.4.0-beta.2 - angular-modal-gallery - HERE
- 03/28/2018 - 5.4.0-beta.1 - angular-modal-gallery - HERE
- 03/24/2018 - 5.3.0 - angular-modal-gallery - HERE
- 03/18/2018 - 5.3.0-beta.1 - angular-modal-gallery - HERE
- 03/18/2018 - 5.2.2 - angular-modal-gallery - HERE
- 03/15/2018 - 5.2.1 - angular-modal-gallery - HERE
- 03/08/2018 - 5.2.0 - angular-modal-gallery - HERE
- 03/05/2018 - 5.2.0-beta.1 - angular-modal-gallery - HERE
- 03/04/2018 - 5.1.0 - angular-modal-gallery - HERE
- 03/04/2018 - 5.1.0-beta.2 - angular-modal-gallery - HERE
- 03/01/2018 - 5.1.0-beta.1 - angular-modal-gallery - HERE
- 02/27/2018 - 5.0.1 - angular-modal-gallery - HERE
- 02/27/2018 - 5.0.0 - angular-modal-gallery - HERE
- 02/24/2018 - 5.0.0-rc.3 - angular-modal-gallery - HERE
- 02/24/2018 - 5.0.0-rc.2 - angular-modal-gallery - HERE
- 02/17/2018 - 5.0.0-rc.1 - angular-modal-gallery - HERE
- 02/10/2018 - 5.0.0-beta.2 - angular-modal-gallery - HERE
- 01/24/2018 - 5.0.0-beta.1 - angular-modal-gallery - HERE
- 01/14/2018 - 5.0.0-alpha.5 - angular-modal-gallery - HERE
- 12/24/2017 - 5.0.0-alpha.4 - angular-modal-gallery - HERE
- 12/09/2017 - 5.0.0-alpha.3 - angular-modal-gallery - HERE
- 12/03/2017 - 5.0.0-alpha.2 - angular-modal-gallery - HERE
- 12/03/2017 - 5.0.0-alpha.1 - angular-modal-gallery - HERE
- 11/05/2017 - 4.0.1 - angular-modal-gallery - HERE
- 11/05/2017 - 4.0.0 - angular-modal-gallery - HERE
- 10/11/2017 - 3.3.5 - angular-modal-gallery - HERE
- ...
- 03/20/2017 - 3.0.0 - angular-modal-gallery - HERE
- ...
- 01/29/2017 - 2.0.0 - angular-modal-gallery - HERE
FAQS
- Question: I have this error:
Cannot find name 'MousetrapInstance'
. What can I do?
Answer: Simply run npm i --save-dev @types/mousetrap
- Question: I have this error:
Error: No provider for KeyboardService
. What can I do?
Answer: You forgot to add .forRoot(), so KeyboardService will be never available as a service. Please read section "Installation" HERE.
This is a common design pattern for Angular libraries. For more info check also this issue. - Question: How can I remove images using DELETE button without issues?
Answer: You cannot change the input image array. Instead, you should reassign it with a newer array without the deleted element.
In other words, you must think in a functional way, without changing the input array of images.
For more information check this official demo HERE.
Contributing
Check CONTRIBUTING.md
in this repository
Also, if you want to generate the internal library documentation
, run npm run docs
and open ./docs/typedoc/index.html
.
A big thank you to
all authors of icons used in this library:
all authors of spinners used in this library:
License
The MIT License (MIT)
Copyright (c) 2017-2018 Stefano Cappa (Ks89)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
If you like my projects you can do a free donation here
FOSSA report
Created by Stefano Cappa