{"version":3,"sources":["jsdelivr-header.js","/npm/angular-imgcache.js@1.2.0/angular-imgcache.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACLA,QAAQ,OAAO,eAEd,SAAS,WAAY,WAClB,SAAS,MAAQ,WACb,SAAS,KAAK,WACL,SAAS,QAAQ,cAGlB,SAAS,UAAU,SAFnB,SAAS,UAAU,WAIxB,WACC,SAAS,UAAU,YAI3B,KAAK,YAAa,EAElB,KAAK,WAAa,SAAS,GACvB,QAAQ,OAAO,SAAS,QAAS,IAGrC,KAAK,UAAY,SAAS,EAAM,GAC5B,SAAS,QAAQ,GAAQ,GAG7B,KAAK,aAAe,SAAS,GACzB,SAAS,QAAQ,cAAgB,GAGrC,KAAK,MAAQ,KAAM,SAAS,GAQxB,OAPA,SAAS,UAAY,EAAG,QACxB,SAAS,SAAW,SAAS,UAAU,QAElC,KAAK,YACN,SAAS,QAGN,aAId,UAAU,YAAa,WAAY,WAChC,OACI,SAAU,IACV,KAAM,SAAS,EAAO,EAAI,GACtB,IAAI,EAAS,SAAS,EAAM,EAAI,GAC5B,SAAS,iBAAiB,EAAK,SAAS,EAAK,GAC5B,OAAT,EACA,EAAG,KAAK,mBAAoB,OAAS,EAAO,MAE5C,EAAG,KAAK,MAAO,GAEnB,EAAM,MAAM,sBAIhB,EAAc,SAAS,EAAM,EAAI,GAG7B,IACa,OAAT,EACA,EAAG,KAAK,mBAAoB,OAAS,EAAM,MAE3C,EAAG,KAAK,MAAO,GAEnB,EAAM,MAAM,qBAIhB,EAAU,SAAS,EAAM,EAAI,GAC7B,SAAS,SAAS,KAAK,WACnB,SAAS,SAAS,EAAK,SAAS,EAAM,GAC9B,EACA,EAAO,EAAM,EAAI,GAEjB,SAAS,UAAU,EAAK,WACpB,EAAO,EAAM,EAAI,IAClB,WACC,EAAY,EAAM,EAAI,QAInC,WACC,EAAY,EAAM,EAAI,MAI9B,EAAM,SAAS,QAAS,SAAS,GACzB,GACA,EAAQ,MAAO,EAAI,KAI3B,EAAM,SAAS,OAAQ,SAAS,GACxB,GACA,EAAQ,KAAM,EAAI","file":"/npm/angular-imgcache.js@1.2.0/angular-imgcache.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using UglifyJS v3.1.10.\n * Original file: /npm/angular-imgcache.js@1.2.0/angular-imgcache.js\n * \n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* globals ImgCache */\nangular.module('ImgCache', [])\n\n.provider('ImgCache', function() {\n    ImgCache.$init = function() {\n        ImgCache.init(function() {\n            if (!ImgCache.options.cacheDisabled) {\n                ImgCache.$deferred.resolve();\n            } else {\n                ImgCache.$deferred.reject();\n            }\n        }, function() {\n            ImgCache.$deferred.reject();\n        });\n    };\n\n    this.manualInit = false;\n\n    this.setOptions = function(options) {\n        angular.extend(ImgCache.options, options);\n    };\n\n    this.setOption = function(name, value) {\n        ImgCache.options[name] = value;\n    };\n\n    this.disableCache = function(value) {\n        ImgCache.options.cacheDisabled = value;\n    };\n\n    this.$get = ['$q', function($q) {\n        ImgCache.$deferred = $q.defer();\n        ImgCache.$promise = ImgCache.$deferred.promise;\n\n        if (!this.manualInit) {\n            ImgCache.$init();\n        }\n\n        return ImgCache;\n    }];\n})\n\n.directive('imgCache', ['ImgCache', function() {\n    return {\n        restrict: 'A',\n        link: function(scope, el, attrs) {\n            var setImg = function(type, el, src) {\n                ImgCache.getCachedFileURL(src, function(src, dest) {\n                    if (type === 'bg') {\n                        el.css({'background-image': 'url(' + dest + ')'});\n                    } else {\n                        el.attr('src', dest);\n                    }\n                    scope.$emit('ImgCache.loaded');\n                });\n            };\n\n            var fallbackImg = function(type, el, src) {\n                // fallback to original source if e.g. src is a relative\n                // file and therefore loaded from local file system\n                if (src) {\n                    if (type === 'bg') {\n                        el.css({'background-image': 'url(' + src + ')'});\n                    } else {\n                        el.attr('src', src);\n                    }\n                    scope.$emit('ImgCache.loaded');\n                }\n            };\n\n            var loadImg = function(type, el, src) {\n                ImgCache.$promise.then(function() {\n                    ImgCache.isCached(src, function(path, success) {\n                        if (success) {\n                            setImg(type, el, src);\n                        } else {\n                            ImgCache.cacheFile(src, function() {\n                                setImg(type, el, src);\n                            }, function() {\n                                fallbackImg(type, el, src);\n                            });\n                        }\n                    });\n                }, function() {\n                    fallbackImg(type, el, src);\n                });\n            };\n\n            attrs.$observe('icSrc', function(src) {\n                if (src) {\n                    loadImg('src', el, src);\n                }\n            });\n\n            attrs.$observe('icBg', function(src) {\n                if (src) {\n                    loadImg('bg', el, src);\n                }\n            });\n\n        }\n    };\n}]);\n"]}