{"version":3,"sources":["ng-image-gallery.min.js"],"names":["keys","enter","esc","left","right","angular","module","provider","defOpts","thumbnails","thumbSize","thumbLimit","inline","bubbles","bubbleSize","imgBubbles","bgClose","piracy","imgAnim","textValues","imageLoadErrorMsg","deleteButtonTitle","editButtonTitle","closeButtonTitle","externalLinkButtonTitle","setOpts","newOpts","extend","$get","filter","$sce","value","type","trustAs","directive","$parse","restrict","scope","link","element","attrs","bind","event","preventDefault","attributes","image","Image","src","showImageAsync","onload","$apply","asyncKind","css","backgroundImage","empty","onerror","$window","$timeout","pre","autoFitBubbles","scrollerWidth","getBoundingClientRect","width","minMargin","bubbleSpace","rawQuotient","bubblesInView","Math","floor","extraSpace","extraMargin","bubbleMargin","finalBubbleSpace","_bubblesInView","_finalBubbleSpace","_bubbleMargin","_safeApply","noop","$watch","$watchCollection","indexCalc","relativeIndexToBubbleWrapper","_activeImageIndex","outBubbles","images","length","_bubblesContainerMarginLeft","$rootScope","$q","ngImageGalleryOpts","replace","transclude","methods","conf","onOpen","onClose","onDelete","onEdit","template","elem","attr","_showLoader","imgLoading","_hideLoader","_loadImg","imgObj","reject","deferred","defer","hasOwnProperty","img","url","cached","resolve","promise","_setActiveImg","indexOf","_activeImg","_imgMoveDirection","then","imgError","fn","phase","this","$root","$$phase","_deleteImg","_deleteImgCallback","index","console","log","splice","cb","_editImg","close","undefined","imagesFirstWatch","activeImageIndexFirstWatch","newImgIndex","open","imgIndex","opened","document","body","addClass","removeClass","next","prev","backgroundClose","e","noCloseClasses","i","target","classList","which","window","Hammer","hammerElem","on","ev","removeClassFromDocumentBody","$on"],"mappings":"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","file":"ng-image-gallery.min.js","sourcesContent":[" (function(){\r\n\t'use strict';\r\n\r\n\t// Key codes\r\n\tvar keys = {\r\n\t\tenter : 13,\r\n\t\tesc : 27,\r\n\t\tleft : 37,\r\n\t\tright : 39\r\n\t};\r\n\r\n\tangular\r\n\t.module('thatisuday.ng-image-gallery', ['ngAnimate'])\r\n\t.provider('ngImageGalleryOpts', function(){\r\n\t\tvar defOpts = {\r\n\t\t\tthumbnails \t: true,\r\n\t\t\tthumbSize\t\t: \t80,\r\n\t\t\tthumbLimit\t\t: \tfalse,\r\n\t\t\tinline \t: false,\r\n\t\t\tbubbles \t: true,\r\n\t\t\tbubbleSize\t\t: \t20,\r\n\t\t\timgBubbles \t: false,\r\n\t\t\tbgClose \t: false,\r\n\t\t\tpiracy \t\t\t: \tfalse,\r\n\t\t\timgAnim \t\t: \t'fadeup',\r\n\t\t\ttextValues: {\r\n\t\t\t imageLoadErrorMsg : 'Error when loading the image!',\r\n\t\t\t deleteButtonTitle : 'Delete this image...',\r\n\t\t\t editButtonTitle : 'Edit this image...',\r\n\t\t\t closeButtonTitle : 'Close',\r\n\t\t\t externalLinkButtonTitle : 'Open image in new tab...'\t\t\t \r\n\t\t\t}\t\t\t\r\n\t\t};\r\n\r\n\t\treturn{\r\n\t\t\tsetOpts : function(newOpts){\r\n\t\t\t\tangular.extend(defOpts, newOpts);\r\n\t\t\t},\r\n\t\t\t$get : function(){\r\n\t\t\t\treturn defOpts;\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\t.filter('ngImageGalleryTrust', ['$sce', function($sce) {\r\n return function(value, type) {\r\n // Defaults to treating trusted value as `html`\r\n return $sce.trustAs(type || 'html', value);\r\n }\r\n }])\r\n .directive('ngRightClick', ['$parse', function($parse){\r\n\t return {\r\n\t \trestrict: \"A\",\r\n\t\t\tscope : false,\r\n\t\t\tlink : function(scope, element, attrs){\r\n\t\t\t\telement.bind('contextmenu', function(event){\r\n\t\t\t\t\tif(scope.piracy == false){\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\treturn scope.piracy;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t };\r\n\t}])\r\n\t.directive(\"showImageAsync\", [function(){\r\n\t\treturn {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tscope: false,\r\n\t\t\tlink: function (scope, element, attributes){\r\n\t\t\t\tvar image = new Image();\r\n\t\t\t\timage.src = attributes.showImageAsync;\r\n\t\t\t\timage.onload = function(){\r\n\t\t\t\t\tscope.$apply(function(){\r\n\t\t\t\t\t\tif(attributes.asyncKind == 'thumb'){\r\n\t\t\t\t\t\t\telement.css({ backgroundImage: 'url(\"' + attributes.showImageAsync + '\")' });\r\n\t\t\t\t\t\t\telement.empty(); // remove loading animation element\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(attributes.asyncKind == 'bubble'){\r\n\t\t\t\t\t\t\telement.css({ backgroundImage: 'url(\"' + attributes.showImageAsync + '\")' });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t\timage.onerror = function(){\r\n\t\t\t\t\telement.empty(); // remove loading animation element\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive(\"bubbleAutoFit\", ['$window', '$timeout', function($window, $timeout){\r\n\t\treturn {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tscope: false,\r\n\t\t\tlink: {\r\n\t\t\t\tpre : function (scope, element, attributes){\r\n\t\t\t\t\tvar autoFitBubbles = function(){\r\n\t\t\t\t\t\tvar scrollerWidth = element[0].getBoundingClientRect().width;\r\n\t\t\t\t\t\tif(scrollerWidth == 0) return;\r\n\r\n\t\t\t\t\t\tvar bubbleSize = scope.bubbleSize;\r\n\t\t\t\t\t\tvar minMargin = 4 + 4; // left+right\r\n\t\t\t\t\t\tvar bubbleSpace = (bubbleSize + minMargin);\r\n\t\t\t\t\t\tvar rawQuotient = scrollerWidth / bubbleSpace;\r\n\t\t\t\t\t\tvar bubblesInView = Math.floor(rawQuotient);\r\n\t\t\t\t\t\tvar extraSpace = scrollerWidth - (bubblesInView * bubbleSpace);\r\n\t\t\t\t\t\tvar extraMargin = extraSpace / bubblesInView;\r\n\t\t\t\t\t\tvar bubbleMargin = minMargin + extraMargin;\r\n\t\t\t\t\t\tvar finalBubbleSpace = bubbleMargin + bubbleSize;\r\n\r\n\t\t\t\t\t\tscope._bubblesInView = bubblesInView;\r\n\t\t\t\t\t\tscope._finalBubbleSpace = finalBubbleSpace;\r\n\t\t\t\t\t\tscope._bubbleMargin = '0 ' + (bubbleMargin/2) + 'px';\r\n\r\n\t\t\t\t\t\tscope._safeApply(angular.noop);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$timeout(autoFitBubbles);\r\n\r\n\t\t\t\t\tangular.element($window).bind('resize', function(){\r\n\t\t\t\t\t\t$timeout(autoFitBubbles);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscope.$watch('inline', function(){\r\n\t\t\t\t\t\t$timeout(autoFitBubbles);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscope.$watch('bubbleSize', function(){\r\n\t\t\t\t\t\t$timeout(autoFitBubbles);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscope.$watchCollection('images', function(){\r\n\t\t\t\t\t\t$timeout(autoFitBubbles);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive(\"bubbleAutoScroll\", ['$window', '$timeout', function($window, $timeout){\r\n\t\treturn {\r\n\t\t\trestrict: \"A\",\r\n\t\t\tscope: false,\r\n\t\t\tlink: function (scope, element, attributes){\r\n\r\n\t\t\t\tvar indexCalc = function(){\r\n\t\t\t\t\tvar relativeIndexToBubbleWrapper = scope._bubblesInView - (scope._bubblesInView - scope._activeImageIndex);\r\n\r\n\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\tif(relativeIndexToBubbleWrapper > scope._bubblesInView - 2){\r\n\t\t\t\t\t\t\tvar outBubbles = ((scope._activeImageIndex+1) - scope._bubblesInView) + 1;\r\n\r\n\t\t\t\t\t\t\tif(scope._activeImageIndex != (scope.images.length - 1)){\r\n\t\t\t\t\t\t\t\tscope._bubblesContainerMarginLeft = '-' + (scope._finalBubbleSpace * outBubbles) + 'px';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tscope._bubblesContainerMarginLeft = '-' + (scope._finalBubbleSpace * (outBubbles - 1)) + 'px';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tscope._bubblesContainerMarginLeft = '0px';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tangular.element($window).bind('resize', function(){\r\n\t\t\t\t\t$timeout(indexCalc);\r\n\t\t\t\t});\r\n\t\t\t\tscope.$watch('_bubblesInView', function(){\r\n\t\t\t\t\t$timeout(indexCalc);\r\n\t\t\t\t});\r\n\t\t\t\tscope.$watch('_activeImageIndex', function(){\r\n\t\t\t\t\t$timeout(indexCalc);\r\n\t\t\t\t});\r\n\t\t\t\tscope.$watchCollection('images', function(){\r\n\t\t\t\t\t$timeout(indexCalc);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive('ngImageGallery', ['$rootScope', '$timeout', '$q', 'ngImageGalleryOpts',\r\n\tfunction($rootScope, $timeout, $q, ngImageGalleryOpts){\r\n\t\treturn {\r\n\t\t\treplace : true,\r\n\t\t\ttransclude : false,\r\n\t\t\trestrict : 'AE',\r\n\t\t\tscope : {\r\n\t\t\t\timages \t\t\t: \t'=',\t\t// []\r\n\t\t\t\tmethods \t\t: \t'=?',\t\t// {}\r\n\t\t\t\tconf \t\t\t: \t'=?',\t\t// {}\r\n\r\n\t\t\t\tthumbnails \t\t: \t'=?',\t\t// true|false\r\n\t\t\t\tthumbSize\t\t: \t'=?', \t\t// px\r\n\t\t\t\tthumbLimit\t\t: \t'=?', \t\t// px\r\n\t\t\t\tinline \t\t\t: \t'=?',\t\t// true|false\r\n\t\t\t\tbubbles \t\t: \t'=?',\t\t// true|false\r\n\t\t\t\tbubbleSize \t\t: \t'=?',\t\t// px\r\n\t\t\t\timgBubbles \t\t: \t'=?',\t\t// true|false\r\n\t\t\t\tbgClose \t\t: \t'=?',\t\t// true|false\r\n\t\t\t\tpiracy\t\t\t: \t'=?',\t\t// true|false\r\n\t\t\t\timgAnim \t\t: \t'@?',\t\t// {name}\r\n\t\t\t\ttextValues : '=?',\t\t// {}\r\n\r\n\t\t\t\tonOpen \t\t\t: \t'&?',\t\t// function\r\n\t\t\t\tonClose \t\t: \t'&?',\t\t// function,\r\n\t\t\t\tonDelete : '&?',\r\n\t\t\t\tonEdit : '&?'\r\n\t\t\t},\r\n\t\t\ttemplate : \t'',\r\n\r\n\t\t\tlink : {\r\n\t\t\t\tpre : function(scope, elem, attr){\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tOperational functions\r\n\t\t\t\t\t**/\r\n\r\n\t\t\t\t\t// Show gallery loader\r\n\t\t\t\t\tscope._showLoader = function(){\r\n\t\t\t\t\t\tscope.imgLoading = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Hide gallery loader\r\n\t\t\t\t\tscope._hideLoader = function(){\r\n\t\t\t\t\t\tscope.imgLoading = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Image load complete promise\r\n\t\t\t\t\tscope._loadImg = function(imgObj){\r\n\r\n\t\t\t\t\t\t// Return rejected promise\r\n\t\t\t\t\t\t// if not image object received\r\n\t\t\t\t\t\tif(!imgObj) return $q.reject();\r\n\r\n\t\t\t\t\t\tvar deferred = $q.defer();\r\n\r\n\t\t\t\t\t\t// Show loader\r\n\t\t\t\t\t\tif(!imgObj.hasOwnProperty('cached')) scope._showLoader();\r\n\r\n\t\t\t\t\t\t// Process image\r\n\t\t\t\t\t\tvar img = new Image();\r\n\t\t\t\t\t\timg.src = imgObj.url;\r\n\t\t\t\t\t\timg.onload = function(){\r\n\t\t\t\t\t\t\t// Hide loader\r\n\t\t\t\t\t\t\tif(!imgObj.hasOwnProperty('cached')) scope._hideLoader();\r\n\r\n\t\t\t\t\t\t\t// Cache image\r\n\t\t\t\t\t\t\tif(!imgObj.hasOwnProperty('cached')) imgObj.cached = true;\r\n\r\n\t\t\t\t\t\t\tdeferred.resolve(imgObj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\timg.onerror = function(){\r\n\t\t\t\t\t\t\tif(!imgObj.hasOwnProperty('cached')) scope._hideLoader();\r\n\r\n\t\t\t\t\t\t\tdeferred.reject('Error when loading img');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn deferred.promise;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope._setActiveImg = function(imgObj){\r\n\t\t\t\t\t\t// Get images move direction\r\n\t\t\t\t\t\tif(\r\n\t\t\t\t\t\t\tscope.images.indexOf(scope._activeImg) - scope.images.indexOf(imgObj) == (scope.images.length - 1) ||\r\n\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\tscope.images.indexOf(scope._activeImg) - scope.images.indexOf(imgObj) <= 0 &&\r\n\t\t\t\t\t\t\t\tscope.images.indexOf(scope._activeImg) - scope.images.indexOf(imgObj) != -(scope.images.length - 1)\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t){\r\n\t\t\t\t\t\t\tscope._imgMoveDirection = 'forward';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tscope._imgMoveDirection = 'backward';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Load image\r\n\t\t\t\t\t\tscope._loadImg(imgObj).then(function(imgObj){\r\n\t\t\t\t\t\t\tscope._activeImg = imgObj;\r\n\t\t\t\t\t\t\tscope._activeImageIndex = scope.images.indexOf(imgObj);\r\n\t\t\t\t\t\t\tscope.imgError = false;\r\n\t\t\t\t\t\t}, function(){\r\n\t\t\t\t\t\t\tscope._activeImg = null;\r\n\t\t\t\t\t\t\tscope._activeImageIndex = scope.images.indexOf(imgObj);\r\n\t\t\t\t\t\t\tscope.imgError = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope._safeApply = function(fn){\r\n\t\t\t\t\t\tvar phase = this.$root.$$phase;\r\n\t\t\t\t\t\tif(phase == '$apply' || phase == '$digest'){\r\n\t\t\t\t\t\t\tif(fn && (typeof(fn) === 'function')){\r\n\t\t\t\t\t\t\t\tfn();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tthis.$apply(fn);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tscope._deleteImg = function(img){\r\n\t\t\t\t\t\tvar _deleteImgCallback = function(){\r\n\t\t\t\t\t\t\tvar index = scope.images.indexOf(img);\r\n\t\t\t\t\t\t\tconsole.log(index);\r\n\t\t\t\t\t\t\tscope.images.splice(index, 1);\r\n\t\t\t\t\t\t\tscope._activeImageIndex = 0;\r\n\r\n\t\t\t\t\t\t\t/**/\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.onDelete({img: img, cb: _deleteImgCallback});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope._editImg = function (img) {\r\n\t\t\t\t\t if (!scope.inline) scope.methods.close();\r\n\r\n\t\t\t\t\t scope.onEdit({ img: img });\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t/***************************************************/\r\n\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tGallery settings\r\n\t\t\t\t\t**/\r\n\r\n\t\t\t\t\t// Modify scope models\r\n\t\t\t\t\tscope.images \t \t = \t(scope.images \t\t!= undefined) ? scope.images \t : \t[];\r\n\t\t\t\t\tscope.methods \t \t = \t(scope.methods \t\t!= undefined) ? scope.methods \t : \t{};\r\n\t\t\t\t\tscope.conf \t \t\t = \t(scope.conf \t\t!= undefined) ? scope.conf \t\t : \t{};\r\n\r\n\t\t\t\t\t// setting options\r\n\t\t\t\t\tscope.$watchCollection('conf', function(conf){\r\n\t\t\t\t\t\tscope.thumbnails \t = \t(conf.thumbnails \t!= undefined) ? conf.thumbnails \t: \t(scope.thumbnails \t!= undefined) \t? scope.thumbnails\t\t: \tngImageGalleryOpts.thumbnails;\r\n\t\t\t\t\t\tscope.thumbSize \t = \t(conf.thumbSize \t!= undefined) ? conf.thumbSize \t\t: \t(scope.thumbSize \t!= undefined) \t? scope.thumbSize\t\t: \tngImageGalleryOpts.thumbSize;\r\n\t\t\t\t\t\tscope.thumbLimit \t = \t(conf.thumbLimit \t!= undefined) ? conf.thumbLimit \t\t: \t(scope.thumbLimit\t!= undefined) \t? scope.thumbLimit\t\t: \tngImageGalleryOpts.thumbLimit;\r\n\t\t\t\t\t\tscope.inline \t \t = \t(conf.inline \t\t!= undefined) ? conf.inline \t \t: \t(scope.inline \t\t!= undefined) \t? scope.inline\t\t\t: \tngImageGalleryOpts.inline;\r\n\t\t\t\t\t\tscope.bubbles \t \t = \t(conf.bubbles \t\t!= undefined) ? conf.bubbles \t \t: \t(scope.bubbles \t\t!= undefined) \t? scope.bubbles\t\t: \tngImageGalleryOpts.bubbles;\r\n\t\t\t\t\t\tscope.bubbleSize \t = \t(conf.bubbleSize \t!= undefined) ? conf.bubbleSize \t : \t(scope.bubbleSize \t!= undefined) \t? scope.bubbleSize\t\t: \tngImageGalleryOpts.bubbleSize;\r\n\t\t\t\t\t\tscope.imgBubbles \t = \t(conf.imgBubbles \t!= undefined) ? conf.imgBubbles \t: \t(scope.imgBubbles \t!= undefined) \t? scope.imgBubbles\t\t: \tngImageGalleryOpts.imgBubbles;\r\n\t\t\t\t\t\tscope.bgClose \t \t = \t(conf.bgClose \t\t!= undefined) ? conf.bgClose \t \t: \t(scope.bgClose \t\t!= undefined) \t? scope.bgClose\t\t: \tngImageGalleryOpts.bgClose;\r\n\t\t\t\t\t\tscope.piracy \t \t = \t(conf.piracy \t\t!= undefined) ? conf.piracy \t \t: \t(scope.piracy \t\t!= undefined) \t? scope.piracy\t\t\t: \tngImageGalleryOpts.piracy;\r\n\t\t\t\t\t\tscope.imgAnim \t \t = \t(conf.imgAnim \t\t!= undefined) ? conf.imgAnim \t \t: \t(scope.imgAnim \t\t!= undefined) \t? scope.imgAnim\t\t: \tngImageGalleryOpts.imgAnim;\r\n scope.textValues = (conf.textValues != undefined) ? conf.textValues : (scope.textValues != undefined) ? scope.textValues : ngImageGalleryOpts.textValues;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tscope.onOpen \t = \t(scope.onOpen \t!= undefined) ? scope.onOpen \t : \tangular.noop;\r\n\t\t\t\t\tscope.onClose \t = \t(scope.onClose \t!= undefined) ? scope.onClose \t : \tangular.noop;\r\n\t\t\t\t\tscope.onDelete \t = \t(scope.onDelete != undefined) ? scope.onDelete \t : \tangular.noop;\r\n\t\t\t\t\tscope.onEdit = (scope.onEdit != undefined) ? scope.onEdit : angular.noop;\r\n\r\n\t\t\t\t\t// If images populate dynamically, reset gallery\r\n\t\t\t\t\tvar imagesFirstWatch = true;\r\n\t\t\t\t\tscope.$watchCollection('images', function(){\r\n\t\t\t\t\t\tif(imagesFirstWatch){\r\n\t\t\t\t\t\t\timagesFirstWatch = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(scope.images.length){\r\n\t\t\t\t\t\t\tscope._setActiveImg(scope.images[scope._activeImageIndex || 0]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Watch index of visible/active image\r\n\t\t\t\t\t// If index changes, make sure to load/change image\r\n\t\t\t\t\tvar activeImageIndexFirstWatch = true;\r\n\t\t\t\t\tscope.$watch('_activeImageIndex', function(newImgIndex){\r\n\t\t\t\t\t\tif(activeImageIndexFirstWatch){\r\n\t\t\t\t\t\t\tactiveImageIndexFirstWatch = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(scope.images.length){\r\n\t\t\t\t\t\t\tscope._setActiveImg(\r\n\t\t\t\t\t\t\t\tscope.images[newImgIndex]\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Open modal automatically if inline\r\n\t\t\t\t\tscope.$watch('inline', function(){\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tif(scope.inline) scope.methods.open();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t/***************************************************/\r\n\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tMethods\r\n\t\t\t\t\t**/\r\n\r\n\t\t\t\t\t// Open gallery modal\r\n\t\t\t\t\tscope.methods.open = function(imgIndex){\r\n\t\t\t\t\t\t// Open modal from an index if one passed\r\n\t\t\t\t\t\tscope._activeImageIndex = (imgIndex) ? imgIndex : 0;\r\n\r\n\t\t\t\t\t\tscope.opened = true;\r\n\r\n\t\t\t\t\t\t// set overflow hidden to body\r\n\t\t\t\t\t\tif(!scope.inline) angular.element(document.body).addClass('body-overflow-hidden');\r\n\r\n\t\t\t\t\t\t// call open event after transition\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tscope.onOpen();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Close gallery modal\r\n\t\t\t\t\tscope.methods.close = function(){\r\n\t\t\t\t\t\tscope.opened = false; // Model closed\r\n\r\n\t\t\t\t\t\t// set overflow hidden to body\r\n\t\t\t\t\t\tangular.element(document.body).removeClass('body-overflow-hidden');\r\n\r\n\t\t\t\t\t\t// call close event after transition\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tscope.onClose();\r\n\t\t\t\t\t\t\tscope._activeImageIndex = 0; // Reset index\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Change image to next\r\n\t\t\t\t\tscope.methods.next = function(){\r\n\t\t\t\t\t\tif(scope._activeImageIndex == (scope.images.length - 1)){\r\n\t\t\t\t\t\t\tscope._activeImageIndex = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tscope._activeImageIndex = scope._activeImageIndex + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Change image to prev\r\n\t\t\t\t\tscope.methods.prev = function(){\r\n\t\t\t\t\t\tif(scope._activeImageIndex == 0){\r\n\t\t\t\t\t\t\tscope._activeImageIndex = scope.images.length - 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tscope._activeImageIndex--;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Close gallery on background click\r\n\t\t\t\t\tscope.backgroundClose = function(e){\r\n\t\t\t\t\t\tif(!scope.bgClose || scope.inline) return;\r\n\r\n\t\t\t\t\t\tvar noCloseClasses = [\r\n\t\t\t\t\t\t\t'galleria-image',\r\n\t\t\t\t\t\t\t'destroy-icons-container',\r\n\t\t\t\t\t\t\t'ext-url',\r\n\t\t\t\t\t\t\t'close',\r\n\t\t\t\t\t\t\t'next',\r\n\t\t\t\t\t\t\t'prev',\r\n\t\t\t\t\t\t\t'galleria-bubble'\r\n\t\t\t\t\t\t];\r\n\r\n\t\t\t\t\t\t// check if clicked element has a class that\r\n\t\t\t\t\t\t// belongs to `noCloseClasses`\r\n\t\t\t\t\t\tfor(var i = 0; i < e.target.classList.length; i++){\r\n\t\t\t\t\t\t\tif(noCloseClasses.indexOf(e.target.classList[i]) != -1){\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tscope.methods.close();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t/***************************************************/\r\n\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tUser interactions\r\n\t\t\t\t\t**/\r\n\r\n\t\t\t\t\t// Key events\r\n\t\t\t\t\tangular.element(document).bind('keyup', function(event){\r\n\t\t\t\t\t\t// If inline modal, do not interact\r\n\t\t\t\t\t\tif(scope.inline) return;\r\n\r\n\t\t\t\t\t\tif(event.which == keys.right || event.which == keys.enter){\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.next();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(event.which == keys.left){\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.prev();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(event.which == keys.esc){\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.close();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Swipe events\r\n\t\t\t\t\tif(window.Hammer){\r\n\t\t\t\t\t\tvar hammerElem = new Hammer(elem[0]);\r\n\t\t\t\t\t\thammerElem.on('swiperight', function(ev){\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.prev();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\thammerElem.on('swipeleft', function(ev){\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.next();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\thammerElem.on('doubletap', function(ev){\r\n\t\t\t\t\t\t\tif(scope.inline) return;\r\n\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.methods.close();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t/***********************************************************/\r\n\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tActions on angular events\r\n\t\t\t\t\t**/\r\n\r\n\t\t\t\t\tvar removeClassFromDocumentBody = function(){\r\n\t\t\t\t\t\tangular.element(document.body).removeClass('body-overflow-hidden');\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$rootScope.$on('$stateChangeSuccess', removeClassFromDocumentBody);\r\n\t\t\t\t\t$rootScope.$on('$routeChangeSuccess', removeClassFromDocumentBody);\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}]);\r\n })();"]}