{"version":3,"sources":["jsdelivr-header.js","/npm/angular-promise-extras@0.1.9/angular-promise-extras.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNE,SAAU,GACV,aAOA,IAAI,EAAY,SAAS,EAAK,GAC5B,GAAI,EAAQ,QAAQ,GAClB,OAAO,EAAI,IAAI,GAEjB,IAAI,EAAM,CAAC,EAIX,OAHA,OAAO,KAAK,GAAK,SAAQ,SAAS,EAAK,GACrC,EAAI,GAAO,EAAS,EAAI,GAAM,EAChC,IACO,CACT,EAEA,EAAQ,OAAO,kBAAmB,IAAI,OAAO,CAAE,WAAY,SAAS,GAClE,EAAS,UAAU,KAAM,CAAE,YAAa,SAAS,GAC/C,IAAI,EAAK,EAmCT,OAjCA,EAAG,WAAa,SAAS,GACvB,OAAO,EAAG,IAAI,EAAU,GAAU,SAAS,GACzC,OAAM,EAAe,KAGd,EAAe,MAAK,SAAS,GAClC,MAAO,CAAE,MAAO,YAAa,MAAO,EACtC,IAAG,SAAS,GACV,MAAO,CAAE,MAAO,WAAY,OAAQ,EACtC,IANS,CAAE,MAAO,YAAa,MAAO,EAOxC,IACF,EAEA,EAAG,IAAM,SAAS,EAAQ,GACxB,OAAO,EAAG,IAAI,EAAU,EAAQ,GAClC,EAEA,EAAG,WAAa,SAAS,EAAQ,GAC/B,OAAO,EAAG,WAAW,EAAU,EAAQ,GACzC,EAEM,EAAG,UAIP,EAAG,QAAU,SAAS,GACpB,OAAI,GAAS,EAAM,KACV,EAEA,GAAG,SAAS,GAAW,EAAQ,EAAO,GACjD,GAGK,CACT,GACF,GAED,CA5DC,CA4DC,OAAO","file":"/npm/angular-promise-extras@0.1.9/angular-promise-extras.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/angular-promise-extras@0.1.9/angular-promise-extras.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","; (function(angular) {\n  'use strict';\n\n  /**\n   * Called with an array this acts like map, otherwise it acts like _.mapValues\n   * in lodash.\n   * @return {Array|Object} The same type as the input argument.\n   */\n  var mapValues = function(obj, callback) {\n    if (angular.isArray(obj))\n      return obj.map(callback)\n\n    var ret = {}\n    Object.keys(obj).forEach(function(key, val) {\n      ret[key] = callback(obj[key], key)\n    })\n    return ret\n  }\n\n  angular.module('ngPromiseExtras', []).config([ '$provide', function($provide) {\n    $provide.decorator('$q', [ '$delegate', function($delegate) {\n      var $q = $delegate\n\n      $q.allSettled = function(promises) {\n        return $q.all(mapValues(promises, function(promiseOrValue) {\n          if (! promiseOrValue.then)\n            return { state: 'fulfilled', value: promiseOrValue }\n\n          return promiseOrValue.then(function(value) {\n            return { state: 'fulfilled', value: value }\n          }, function(reason) {\n            return { state: 'rejected', reason: reason }\n          })\n        }))\n      }\n\n      $q.map = function(values, callback) {\n        return $q.all(mapValues(values, callback))\n      }\n\n      $q.mapSettled = function(values, callback) {\n        return $q.allSettled(mapValues(values, callback))\n      }\n\n      if (! $q.resolve) {\n        /**\n         * Like Bluebird.resolve (was introduced in angular 1.4).\n         */\n        $q.resolve = function(value) {\n          if (value && value.then)\n            return value\n          else\n            return $q(function(resolve) { resolve(value) })\n        }\n      }\n\n      return $q\n    } ])\n  } ])\n\n})(window.angular);\n"]}