UNPKG

@ovh-ux/manager-log-to-customer

Version:

Module to handle logs to customer

1,295 lines 60.3 kB
function ___$insertStyle(css) {
    if (!css || typeof window === 'undefined') {
        return;
    }
    const style = document.createElement('style');
    style.setAttribute('type', 'text/css');
    style.innerHTML = css;
    document.head.appendChild(style);
    return css;
}

import angular$1 from 'angular';
import 'angular-translate';
import '@ovh-ux/ng-log-live-tail';
import '@uirouter/angularjs';
import { ListLayoutHelper } from '@ovh-ux/manager-ng-layout-helpers';
import ngOvhSwimmingPoll from '@ovh-ux/ng-ovh-swimming-poll';
import moment from 'moment';

var template$3 = "<log-live-tail data-log-keys=\"$ctrl.logKeys\" data-log-api-url=\"$ctrl.logApiUrl\" data-log-kind=\"$ctrl.kind\" data-api-version=\"$ctrl.apiVersion\">\n    <description>\n        <main-descriptsion data-ng-transclude=\"mainDescription\"></main-descriptsion>\n        <a data-ng-href=\"{{:: $ctrl.logServiceGuideLink }}\" target=\"_blank\" rel=\"noopener\">\n            <span data-translate=\"logs_info_link\"></span>\n            <i class=\"oui-icon oui-icon-external-link\" aria-hidden=\"true\"></i>\n        </a>\n    </description>\n    <kinds data-ng-if=\"$ctrl.logKindsList.length > 1\">\n        <log-select-kinds class=\"row\" data-kinds=\"$ctrl.logKindsList\" data-ng-model=\"$ctrl.kind\">\n        </log-select-kinds>\n    </kinds>\n    <tile>\n        <log-tile data-log-subscription-url=\"$ctrl.logSubscriptionUrl\" data-kind=\"$ctrl.kind\" data-go-to-listing-page=\"$ctrl.goToListingPage\" data-go-to-stream-listing-page=\"$ctrl.goToStreamListingPage\" data-track-click=\"$ctrl.trackClick\" data-tracking-hits=\"$ctrl.trackingHits\" data-api-version=\"$ctrl.apiVersion\">\n        </log-tile>\n    </tile>\n</log-live-tail>\n";

function _arrayLikeToArray(r, a) {
  (null == a || a > r.length) && (a = r.length);
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
  return n;
}
function _arrayWithHoles(r) {
  if (Array.isArray(r)) return r;
}
function asyncGeneratorStep(n, t, e, r, o, a, c) {
  try {
    var i = n[a](c),
      u = i.value;
  } catch (n) {
    return void e(n);
  }
  i.done ? t(u) : Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
  return function () {
    var t = this,
      e = arguments;
    return new Promise(function (r, o) {
      var a = n.apply(t, e);
      function _next(n) {
        asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
      }
      function _throw(n) {
        asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
      }
      _next(void 0);
    });
  };
}
function _classCallCheck(a, n) {
  if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
}
function _defineProperties(e, r) {
  for (var t = 0; t < r.length; t++) {
    var o = r[t];
    o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
  }
}
function _createClass(e, r, t) {
  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
    writable: !1
  }), e;
}
function _defineProperty(e, r, t) {
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
    value: t,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : e[r] = t, e;
}
function _iterableToArrayLimit(r, l) {
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
  if (null != t) {
    var e,
      n,
      i,
      u,
      a = [],
      f = !0,
      o = !1;
    try {
      if (i = (t = t.call(r)).next, 0 === l) {
        if (Object(t) !== t) return;
        f = !1;
      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
    } catch (r) {
      o = !0, n = r;
    } finally {
      try {
        if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
      } finally {
        if (o) throw n;
      }
    }
    return a;
  }
}
function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function ownKeys(e, r) {
  var t = Object.keys(e);
  if (Object.getOwnPropertySymbols) {
    var o = Object.getOwnPropertySymbols(e);
    r && (o = o.filter(function (r) {
      return Object.getOwnPropertyDescriptor(e, r).enumerable;
    })), t.push.apply(t, o);
  }
  return t;
}
function _objectSpread2(e) {
  for (var r = 1; r < arguments.length; r++) {
    var t = null != arguments[r] ? arguments[r] : {};
    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
      _defineProperty(e, r, t[r]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
    });
  }
  return e;
}
function _regeneratorRuntime() {
  _regeneratorRuntime = function () {
    return e;
  };
  var t,
    e = {},
    r = Object.prototype,
    n = r.hasOwnProperty,
    o = Object.defineProperty || function (t, e, r) {
      t[e] = r.value;
    },
    i = "function" == typeof Symbol ? Symbol : {},
    a = i.iterator || "@@iterator",
    c = i.asyncIterator || "@@asyncIterator",
    u = i.toStringTag || "@@toStringTag";
  function define(t, e, r) {
    return Object.defineProperty(t, e, {
      value: r,
      enumerable: !0,
      configurable: !0,
      writable: !0
    }), t[e];
  }
  try {
    define({}, "");
  } catch (t) {
    define = function (t, e, r) {
      return t[e] = r;
    };
  }
  function wrap(t, e, r, n) {
    var i = e && e.prototype instanceof Generator ? e : Generator,
      a = Object.create(i.prototype),
      c = new Context(n || []);
    return o(a, "_invoke", {
      value: makeInvokeMethod(t, r, c)
    }), a;
  }
  function tryCatch(t, e, r) {
    try {
      return {
        type: "normal",
        arg: t.call(e, r)
      };
    } catch (t) {
      return {
        type: "throw",
        arg: t
      };
    }
  }
  e.wrap = wrap;
  var h = "suspendedStart",
    l = "suspendedYield",
    f = "executing",
    s = "completed",
    y = {};
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}
  var p = {};
  define(p, a, function () {
    return this;
  });
  var d = Object.getPrototypeOf,
    v = d && d(d(values([])));
  v && v !== r && n.call(v, a) && (p = v);
  var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
  function defineIteratorMethods(t) {
    ["next", "throw", "return"].forEach(function (e) {
      define(t, e, function (t) {
        return this._invoke(e, t);
      });
    });
  }
  function AsyncIterator(t, e) {
    function invoke(r, o, i, a) {
      var c = tryCatch(t[r], t, o);
      if ("throw" !== c.type) {
        var u = c.arg,
          h = u.value;
        return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
          invoke("next", t, i, a);
        }, function (t) {
          invoke("throw", t, i, a);
        }) : e.resolve(h).then(function (t) {
          u.value = t, i(u);
        }, function (t) {
          return invoke("throw", t, i, a);
        });
      }
      a(c.arg);
    }
    var r;
    o(this, "_invoke", {
      value: function (t, n) {
        function callInvokeWithMethodAndArg() {
          return new e(function (e, r) {
            invoke(t, n, e, r);
          });
        }
        return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
      }
    });
  }
  function makeInvokeMethod(e, r, n) {
    var o = h;
    return function (i, a) {
      if (o === f) throw Error("Generator is already running");
      if (o === s) {
        if ("throw" === i) throw a;
        return {
          value: t,
          done: !0
        };
      }
      for (n.method = i, n.arg = a;;) {
        var c = n.delegate;
        if (c) {
          var u = maybeInvokeDelegate(c, n);
          if (u) {
            if (u === y) continue;
            return u;
          }
        }
        if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
          if (o === h) throw o = s, n.arg;
          n.dispatchException(n.arg);
        } else "return" === n.method && n.abrupt("return", n.arg);
        o = f;
        var p = tryCatch(e, r, n);
        if ("normal" === p.type) {
          if (o = n.done ? s : l, p.arg === y) continue;
          return {
            value: p.arg,
            done: n.done
          };
        }
        "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
      }
    };
  }
  function maybeInvokeDelegate(e, r) {
    var n = r.method,
      o = e.iterator[n];
    if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
    var i = tryCatch(o, e.iterator, r.arg);
    if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
    var a = i.arg;
    return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
  }
  function pushTryEntry(t) {
    var e = {
      tryLoc: t[0]
    };
    1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
  }
  function resetTryEntry(t) {
    var e = t.completion || {};
    e.type = "normal", delete e.arg, t.completion = e;
  }
  function Context(t) {
    this.tryEntries = [{
      tryLoc: "root"
    }], t.forEach(pushTryEntry, this), this.reset(!0);
  }
  function values(e) {
    if (e || "" === e) {
      var r = e[a];
      if (r) return r.call(e);
      if ("function" == typeof e.next) return e;
      if (!isNaN(e.length)) {
        var o = -1,
          i = function next() {
            for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
            return next.value = t, next.done = !0, next;
          };
        return i.next = i;
      }
    }
    throw new TypeError(typeof e + " is not iterable");
  }
  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
    value: GeneratorFunctionPrototype,
    configurable: !0
  }), o(GeneratorFunctionPrototype, "constructor", {
    value: GeneratorFunction,
    configurable: !0
  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
    var e = "function" == typeof t && t.constructor;
    return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
  }, e.mark = function (t) {
    return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
  }, e.awrap = function (t) {
    return {
      __await: t
    };
  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
    return this;
  }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
    void 0 === i && (i = Promise);
    var a = new AsyncIterator(wrap(t, r, n, o), i);
    return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
      return t.done ? t.value : a.next();
    });
  }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
    return this;
  }), define(g, "toString", function () {
    return "[object Generator]";
  }), e.keys = function (t) {
    var e = Object(t),
      r = [];
    for (var n in e) r.push(n);
    return r.reverse(), function next() {
      for (; r.length;) {
        var t = r.pop();
        if (t in e) return next.value = t, next.done = !1, next;
      }
      return next.done = !0, next;
    };
  }, e.values = values, Context.prototype = {
    constructor: Context,
    reset: function (e) {
      if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
    },
    stop: function () {
      this.done = !0;
      var t = this.tryEntries[0].completion;
      if ("throw" === t.type) throw t.arg;
      return this.rval;
    },
    dispatchException: function (e) {
      if (this.done) throw e;
      var r = this;
      function handle(n, o) {
        return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
      }
      for (var o = this.tryEntries.length - 1; o >= 0; --o) {
        var i = this.tryEntries[o],
          a = i.completion;
        if ("root" === i.tryLoc) return handle("end");
        if (i.tryLoc <= this.prev) {
          var c = n.call(i, "catchLoc"),
            u = n.call(i, "finallyLoc");
          if (c && u) {
            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
          } else if (c) {
            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
          } else {
            if (!u) throw Error("try statement without catch or finally");
            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
          }
        }
      }
    },
    abrupt: function (t, e) {
      for (var r = this.tryEntries.length - 1; r >= 0; --r) {
        var o = this.tryEntries[r];
        if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
          var i = o;
          break;
        }
      }
      i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
      var a = i ? i.completion : {};
      return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
    },
    complete: function (t, e) {
      if ("throw" === t.type) throw t.arg;
      return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
    },
    finish: function (t) {
      for (var e = this.tryEntries.length - 1; e >= 0; --e) {
        var r = this.tryEntries[e];
        if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
      }
    },
    catch: function (t) {
      for (var e = this.tryEntries.length - 1; e >= 0; --e) {
        var r = this.tryEntries[e];
        if (r.tryLoc === t) {
          var n = r.completion;
          if ("throw" === n.type) {
            var o = n.arg;
            resetTryEntry(r);
          }
          return o;
        }
      }
      throw Error("illegal catch attempt");
    },
    delegateYield: function (e, r, n) {
      return this.delegate = {
        iterator: values(e),
        resultName: r,
        nextLoc: n
      }, "next" === this.method && (this.arg = t), y;
    }
  }, e;
}
function _slicedToArray(r, e) {
  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
}
function _toPrimitive(t, r) {
  if ("object" != typeof t || !t) return t;
  var e = t[Symbol.toPrimitive];
  if (void 0 !== e) {
    var i = e.call(t, r || "default");
    if ("object" != typeof i) return i;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return ("string" === r ? String : Number)(t);
}
function _toPropertyKey(t) {
  var i = _toPrimitive(t, "string");
  return "symbol" == typeof i ? i : i + "";
}
function _unsupportedIterableToArray(r, a) {
  if (r) {
    if ("string" == typeof r) return _arrayLikeToArray(r, a);
    var t = {}.toString.call(r).slice(8, -1);
    return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
  }
}

var LogToCustomerCtrl = /*#__PURE__*/function () {
  function LogToCustomerCtrl() {
    _classCallCheck(this, LogToCustomerCtrl);
  }
  return _createClass(LogToCustomerCtrl, [{
    key: "$onInit",
    value: function $onInit() {
      this.kind = this.kindInitValue;
      this.logKeys = this.logKindsKeys[this.kind];
    }
  }]);
}();

var component$2 = {
  controller: LogToCustomerCtrl,
  template: template$3,
  transclude: {
    mainDescription: '?mainDescription'
  },
  bindings: {
    logApiUrl: '<',
    logServiceGuideLink: '<',
    logSubscriptionUrl: '<',
    apiVersion: '<?',
    goToListingPage: '<',
    logKindsList: '<',
    logKindsKeys: '<',
    kindInitValue: '<',
    trackClick: '<',
    trackingHits: '<'
  }
};

var LogToCustomerService = /*#__PURE__*/function () {
  LogToCustomerService.$inject = ["$http", "$q", "iceberg", "Poller", "Apiv2Service", "API_VERSION"];
  function LogToCustomerService($http, $q, iceberg, Poller, Apiv2Service, API_VERSION) {
    _classCallCheck(this, LogToCustomerService);
    this.$http = $http;
    this.$q = $q;
    this.iceberg = iceberg;
    this.Poller = Poller;
    this.Apiv2Service = Apiv2Service;
    this.API_VERSION = API_VERSION;
  }
  return _createClass(LogToCustomerService, [{
    key: "getHttpConfig",
    value: function getHttpConfig(apiVersion) {
      return {
        serviceType: apiVersion !== null && apiVersion !== void 0 ? apiVersion : this.API_VERSION.v1
      };
    }
  }, {
    key: "getRetention",
    value: function getRetention(serviceName, clusterId, retentionId) {
      return this.$http.get("/dbaas/logs/".concat(serviceName, "/cluster/").concat(clusterId, "/retention/").concat(retentionId)).then(function (_ref) {
        var data = _ref.data;
        return data;
      });
    }
  }, {
    key: "icebergQuery",
    value: function icebergQuery(url) {
      var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var apiVersion = arguments.length > 2 ? arguments[2] : undefined;
      var promise = apiVersion === this.API_VERSION.v2 ? this.Apiv2Service.httpApiv2List({
        url: url,
        params: params,
        headers: {
          'X-Pagination-Mode': 'CachedObjectList-Cursor',
          Pragma: 'no-cache'
        }
      }, {
        cursor: null
      }) : this.iceberg(url, params).query().expand('CachedObjectList-Pages').execute(null, true).$promise;
      return promise.then(function (_ref2) {
        var data = _ref2.data;
        return data;
      });
    }
  }, {
    key: "get",
    value: function get(url, apiVersion) {
      return this.$http.get(url, this.getHttpConfig(apiVersion));
    }
  }, {
    key: "post",
    value: function post(url, payload, apiVersion) {
      return this.$http.post(url, payload, this.getHttpConfig(apiVersion));
    }
  }, {
    key: "delete",
    value: function _delete(url, apiVersion) {
      return this.$http["delete"](url, this.getHttpConfig(apiVersion));
    }
  }, {
    key: "pollOperation",
    value: function pollOperation(serviceName, operation) {
      var url = "/dbaas/logs/".concat(serviceName, "/operation/").concat(operation.operationId);
      return this.Poller.poll(url, null, {
        successRule: function successRule(task) {
          return task.state === 'SUCCESS';
        },
        errorRule: function errorRule(task) {
          return task.state === 'FAILURE' || task.state === 'REVOKE';
        },
        namespace: 'logToCustomer'
      });
    }
  }, {
    key: "stopOperationPolling",
    value: function stopOperationPolling() {
      return this.Poller.kill({
        namespace: 'logToCustomer'
      });
    }
  }, {
    key: "getIcebergStreamData",
    value: function getIcebergStreamData(id) {
      return this.icebergQuery("/dbaas/logs/".concat(id, "/output/graylog/stream"));
    }
  }, {
    key: "getLogAccount",
    value: function getLogAccount(id) {
      return this.$http.get("/dbaas/logs/".concat(id)).then(function (_ref3) {
        var data = _ref3.data;
        return data;
      });
    }
  }, {
    key: "getSream",
    value: function getSream(serviceName, id) {
      return this.$http.get("/dbaas/logs/".concat(serviceName, "/output/graylog/stream/").concat(id)).then(function (_ref4) {
        var data = _ref4.data;
        return data;
      });
    }
  }, {
    key: "getStreamUrl",
    value: function getStreamUrl(serviceName, id) {
      return this.$http.get("/dbaas/logs/".concat(serviceName, "/output/graylog/stream/").concat(id, "/url")).then(function (_ref5) {
        var _data$find;
        var data = _ref5.data;
        return (_data$find = data.find(function (_ref6) {
          var type = _ref6.type;
          return type === 'GRAYLOG_WEBUI';
        })) === null || _data$find === void 0 ? void 0 : _data$find.address;
      });
    }
  }, {
    key: "getDataStreams",
    value: function getDataStreams() {
      var _this = this;
      return this.$http.get('/dbaas/logs').then(function (_ref7) {
        var data = _ref7.data;
        var streamPromises = data.map(function (id) {
          return _this.$http.get("/dbaas/logs/".concat(id, "/output/graylog/stream")).then(function (response) {
            return {
              service: id,
              streams: response.data
            };
          })["catch"](function () {
            return {
              service: id,
              streams: []
            };
          });
        });
        return _this.$q.all(streamPromises).then(function (results) {
          return results.reduce(function (acc, current) {
            return _objectSpread2(_objectSpread2({}, acc), {}, {
              streams: acc.streams.concat(current),
              streamCount: acc.streamCount + current.streams.length
            });
          }, {
            streams: [],
            streamCount: 0
          });
        });
      });
    }
  }]);
}();

function __variableDynamicImportRuntime1__$2(path) {
  switch (path) {
    case './../translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './../translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './../translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './../translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './../translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './../translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './../translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './../translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
function __variableDynamicImportRuntime0__$2(path) {
  switch (path) {
    case './../translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './../translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './../translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './../translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './../translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './../translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './../translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './../translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
var moduleName$3 = 'ovhLogToCustomerLiveTail';
angular$1.module(moduleName$3, ['pascalprecht.translate', 'ui.router', 'ngLogLiveTail']).service('LogToCustomerService', LogToCustomerService).component('logToCustomerLiveTail', component$2).run(["$translate", "$q", "asyncLoader", function ($translate, $q, asyncLoader) {
  var promises = [];
  promises.push($q.all({
    use: __variableDynamicImportRuntime0__$2('./../translations/Messages_' + $translate.use() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    }),
    fallback: __variableDynamicImportRuntime1__$2('./../translations/Messages_' + $translate.fallbackLanguage() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    })
  }).then(function (result) {
    return Object.assign(result.fallback, result.use);
  }));
  promises.forEach(function (p) {
    return asyncLoader.addTranslations(p);
  });
  return $q.all(promises).then(function () {
    return $translate.refresh();
  });
}]);

var template$2 = "<oui-header data-heading=\"{{ :: 'logs_list_title' | translate }}\" data-description=\"{{ :: $ctrl.description }}\">\n    <oui-back-button data-on-click=\"$ctrl.goBack($ctrl.logSubscriptionApiData.params.kind)\">\n    </oui-back-button>\n</oui-header>\n\n<log-select-kinds data-ng-if=\"$ctrl.logKindsList.length > 1\" class=\"row\" data-kinds=\"$ctrl.logKindsList\" data-on-change=\"$ctrl.reloadSubscribedStreams()\" data-ng-model=\"$ctrl.logSubscriptionApiData.params.kind\">\n</log-select-kinds>\n\n<oui-button class=\"my-3\" data-icon-left=\"oui-icon-plus\" data-variant=\"secondary\" data-ng-click=\"$ctrl.goToAddDataStream()\">\n    <span data-translate=\"logs_list_add_data_stream_button\"></span>\n</oui-button>\n\n<oui-datagrid id=\"datagridLogAccounts\" data-empty-placeholder=\"{{:: 'list_empty' | translate }}\" data-rows=\"$ctrl.streams\" data-row-loader=\"$ctrl.getRetentionDetails($row)\">\n    <oui-datagrid-topbar>\n        <oui-select class=\"w-50\" data-id=\"ldp_select\" data-name=\"ldp_account\" data-items=\"$ctrl.accountList\" data-match=\"formattedName\" data-model=\"$ctrl.selectedAccount\" data-on-change=\"$ctrl.onSelectedLogAccountChange()\">\n        </oui-select>\n    </oui-datagrid-topbar>\n    <oui-datagrid-column data-title=\":: 'list_column_account' | translate\" data-type=\"string\">\n        <div data-ng-if=\"$ctrl.selectedAccount.displayName\">\n            <a data-ng-href=\"{{ $ctrl.LDPHomePageLink }}\" data-ng-bind=\"$ctrl.selectedAccount.displayName\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.LDP_DETAIL}}\" target=\"_blank\" rel=\"noopener\">\n            </a>\n            <p class=\"small mb-0\" data-ng-bind=\"$ctrl.selectedAccount.serviceName\"></p>\n        </div>\n\n        <a data-ng-if=\"!$ctrl.selectedAccount.displayName\" data-ng-href=\"{{ $ctrl.LDPHomePageLink}}\" data-ng-bind=\"$ctrl.selectedAccount.serviceName\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.LDP_DETAIL}}\" target=\"_blank\" rel=\"noopener\">\n        </a>\n    </oui-datagrid-column>\n\n    <oui-datagrid-column class=\"stream-name-column\" data-title=\":: 'list_column_stream_name' | translate\" data-property=\"title\" data-type=\"string\" data-filterable>\n        <span class=\"d-inline-block word-break\" data-ng-bind=\"$value\"></span>\n    </oui-datagrid-column>\n    <oui-datagrid-column data-title=\":: 'list_column_stream_description' | translate\" data-property=\"description\" data-type=\"string\">\n        <span class=\"d-inline-block word-break\" data-ng-bind=\"$value\"></span>\n    </oui-datagrid-column>\n    <oui-datagrid-column data-title=\":: 'list_column_stream_indexation' | translate\" data-property=\"indexingEnabled\">\n        <span class=\"oui-badge\" data-ng-class=\"$value ? 'oui-badge_success': 'oui-badge_warning'\" data-translate=\"{{'list_indexation_status_' + $value}}\"></span>\n    </oui-datagrid-column>\n\n    <oui-datagrid-column data-title=\":: 'list_column_stream_retention' | translate\" data-property=\"duration\">\n        <span data-ng-bind=\"$ctrl.retentionInfo($value)\"></span>\n    </oui-datagrid-column>\n\n    <oui-datagrid-column data-title=\":: 'list_column_stream_subscription' | translate\" data-property=\"nbSubscription\">\n        <div class=\"d-flex justify-content-between align-items-center\">\n            <div>\n                <span data-ng-if=\"$value === 0\">-</span>\n                <span data-ng-if=\"$value > 0\">\n                    <span data-ng-bind=\"$value\"></span>\n                    <a data-ng-href=\"{{ $ctrl.getSubscriptionLink($row.streamId)}}\" target=\"_blank\" rel=\"noopener\">\n                        <span class=\"oui-icon oui-icon-external-link\" aria-hidden=\"true\"></span>\n                    </a>\n                </span>\n            </div>\n            <div>\n                <oui-button data-variant=\"secondary\" data-ng-if=\"!$ctrl.streamSubscriptions.hasOwnProperty($row.streamId)\" data-ng-click=\"$ctrl.createLogSubscription($row.streamId)\" data-disabled=\"$ctrl.streamLoading[$row.streamId] || $ctrl.streamLoading.all\">\n                    <span data-translate=\"list_button_subscribe\"></span>\n                    <oui-spinner size=\"s\" data-ng-if=\"$ctrl.streamLoading[$row.streamId] || $ctrl.streamLoading.all\"></oui-spinner>\n                </oui-button>\n                <oui-button data-variant=\"secondary\" data-ng-if=\"$ctrl.streamSubscriptions.hasOwnProperty($row.streamId)\" data-ng-click=\"$ctrl.deleteLogSubscription($row.streamId)\" data-disabled=\"$ctrl.streamLoading[$row.streamId] || $ctrl.streamLoading.all\">\n                    <span data-translate=\"list_button_unsubscribe\"></span>\n                    <oui-spinner size=\"s\" data-ng-if=\"$ctrl.streamLoading[$row.streamId] || $ctrl.streamLoading.all\"></oui-spinner>\n                </oui-button>\n            </div>\n        </div>\n    </oui-datagrid-column>\n</oui-datagrid>\n";

var DATA_PLATFORM_GUIDE = {
  DEFAULT: 'https://www.ovhcloud.com/en-ie/identity-security-operations/logs-data-platform/',
  DE: 'https://www.ovhcloud.com/de/identity-security-operations/logs-data-platform/',
  ES: 'https://www.ovhcloud.com/es-es/identity-security-operations/logs-data-platform/',
  FR: 'https://www.ovhcloud.com/fr/identity-security-operations/logs-data-platform/',
  IE: 'https://www.ovhcloud.com/en-ie/identity-security-operations/logs-data-platform/',
  IT: 'https://www.ovhcloud.com/it/identity-security-operations/logs-data-platform/',
  NL: 'https://www.ovhcloud.com/nl/identity-security-operations/logs-data-platform/',
  PL: 'https://www.ovhcloud.com/pl/identity-security-operations/logs-data-platform/',
  PT: 'https://www.ovhcloud.com/pt/identity-security-operations/logs-data-platform/',
  GB: 'https://www.ovhcloud.com/en-gb/identity-security-operations/logs-data-platform/',
  CA: 'https://www.ovhcloud.com/en-ca/identity-security-operations/logs-data-platform/',
  QC: 'https://www.ovhcloud.com/fr-ca/identity-security-operations/logs-data-platform/',
  WS: 'https://www.ovhcloud.com/es/identity-security-operations/logs-data-platform/',
  MA: 'https://www.ovhcloud.com/fr-ma/identity-security-operations/logs-data-platform/',
  SN: 'https://www.ovhcloud.com/fr-sn/identity-security-operations/logs-data-platform/',
  TN: 'https://www.ovhcloud.com/fr-tn/identity-security-operations/logs-data-platform/',
  AU: 'https://www.ovhcloud.com/en-au/identity-security-operations/logs-data-platform/',
  SG: 'https://www.ovhcloud.com/en-sg/identity-security-operations/logs-data-platform/',
  ASIA: 'https://www.ovhcloud.com/asia/identity-security-operations/logs-data-platform/',
  IN: 'https://www.ovhcloud.com/en-in/identity-security-operations/logs-data-platform/',
  WE: 'https://www.ovhcloud.com/en-ie/identity-security-operations/logs-data-platform/',
  US: 'https://us.ovhcloud.com/identity-security-operations/logs-data-platform/',
  WW: 'https://www.ovhcloud.com/en/identity-security-operations/logs-data-platform/'
};
var RETENTION = {
  FORTY_FIVE_DAYS: 'P45D'
};

var LogToCustomerListCtrl = /*#__PURE__*/function () {
  LogToCustomerListCtrl.$inject = ["$state", "coreURLBuilder", "LogToCustomerService", "$translate", "$q", "Alerter"];
  function LogToCustomerListCtrl($state, coreURLBuilder, LogToCustomerService, $translate, $q, Alerter) {
    _classCallCheck(this, LogToCustomerListCtrl);
    this.$state = $state;
    this.coreURLBuilder = coreURLBuilder;
    this.LogToCustomerService = LogToCustomerService;
    this.$translate = $translate;
    this.$q = $q;
    this.Alerter = Alerter;
  }
  return _createClass(LogToCustomerListCtrl, [{
    key: "$onInit",
    value: function $onInit() {
      var _this = this;
      this.streamLoading = {
        all: false
      };
      this.accountList = [];
      this.streams = [];
      this.streamSubscriptions = {};
      this.LDPHomePageLink = null;
      this.selectedAccount = null;
      this.LogToCustomerService.icebergQuery('/dbaas/logs').then(function (data) {
        _this.accountList = data.map(function (item) {
          return _objectSpread2(_objectSpread2({}, item), {}, {
            formattedName: item.displayName || item.serviceName
          });
        });
        _this.selectedAccount = _this.accountList.length > 0 ? _this.accountList[0] : null;
        _this.buildLDPHomePageLink();
        _this.getStreamData();
      })["catch"](function (error) {
        var _error$data;
        _this.alertError(error === null || error === void 0 || (_error$data = error.data) === null || _error$data === void 0 ? void 0 : _error$data.message);
      });
    }
  }, {
    key: "reloadSubscribedStreams",
    value: function reloadSubscribedStreams() {
      var _this2 = this;
      this.streamLoading.all = true;
      this.getSubscribedStreams()["finally"](function () {
        _this2.streamLoading.all = false;
      });
    }
  }, {
    key: "alertError",
    value: function alertError() {
      var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
      this.Alerter.error(this.$translate.instant('error_message', {
        message: message
      }));
    }
  }, {
    key: "buildLDPHomePageLink",
    value: function buildLDPHomePageLink() {
      this.LDPHomePageLink = this.coreURLBuilder.buildURL('dedicated', "#/dbaas/logs/".concat(this.selectedAccount.serviceName, "/home"));
    }
  }, {
    key: "getStreamData",
    value: function getStreamData() {
      var _this3 = this;
      return this.$q.all([this.getSubscribedStreams(), this.getLogAccountStreams()])["catch"](function (error) {
        var _error$data2;
        _this3.alertError(error === null || error === void 0 || (_error$data2 = error.data) === null || _error$data2 === void 0 ? void 0 : _error$data2.message);
      });
    }
  }, {
    key: "getSubscribedStreams",
    value: function getSubscribedStreams() {
      var _this4 = this;
      this.streamSubscriptions = {};
      return this.LogToCustomerService.icebergQuery(this.logSubscriptionApiData.url, this.logSubscriptionApiData.params, this.apiVersion).then(function (data) {
        data.forEach(function (item) {
          _this4.streamSubscriptions[item.streamId] = _objectSpread2({}, item);
        });
      });
    }
  }, {
    key: "createLogSubscription",
    value: function createLogSubscription(id) {
      var _this5 = this;
      this.trackClick(this.trackingHits.SUBSCRIBE);
      this.streamLoading[id] = true;
      this.LogToCustomerService.post(this.logSubscriptionApiData.url, _objectSpread2(_objectSpread2({}, this.logSubscriptionApiData.params), {}, {
        streamId: id
      }), this.apiVersion).then(function (_ref) {
        var data = _ref.data;
        return _this5.LogToCustomerService.pollOperation(_this5.selectedAccount.serviceName, data).then(function () {
          _this5.Alerter.success(_this5.$translate.instant('logs_list_subscription_success'));
          return _this5.getStreamData();
        });
      })["catch"](function (_ref2) {
        var data = _ref2.data;
        _this5.alertError(data.message);
      })["finally"](function () {
        _this5.streamLoading[id] = false;
      });
    }
  }, {
    key: "deleteLogSubscription",
    value: function deleteLogSubscription(streamId) {
      var _this6 = this;
      this.trackClick(this.trackingHits.UNSUBSCRIBE);
      this.streamLoading[streamId] = true;
      var subscriptionId = this.streamSubscriptions[streamId].subscriptionId;
      this.LogToCustomerService["delete"]("".concat(this.logSubscriptionApiData.url, "/").concat(subscriptionId), this.apiVersion).then(function (_ref3) {
        var data = _ref3.data;
        return _this6.LogToCustomerService.pollOperation(_this6.selectedAccount.serviceName, data).then(function () {
          _this6.Alerter.success(_this6.$translate.instant('logs_list_unsubscription_success'));
          return _this6.getStreamData();
        });
      })["catch"](function (_ref4) {
        var data = _ref4.data;
        _this6.alertError(data.message);
      })["finally"](function () {
        _this6.streamLoading[streamId] = false;
      });
    }
  }, {
    key: "getSubscriptionLink",
    value: function getSubscriptionLink(streamId) {
      return this.coreURLBuilder.buildURL('dedicated', "#/dbaas/logs/".concat(this.selectedAccount.serviceName, "/streams/").concat(streamId, "/subscriptions"));
    }
  }, {
    key: "$onDestroy",
    value: function $onDestroy() {
      this.LogToCustomerService.stopOperationPolling();
    }
  }, {
    key: "onSelectedLogAccountChange",
    value: function onSelectedLogAccountChange() {
      this.LogToCustomerService.stopOperationPolling();
      this.buildLDPHomePageLink();
      this.getLogAccountStreams();
    }
  }, {
    key: "retentionInfo",
    value: function retentionInfo(duration) {
      if (duration) {
        if (duration === RETENTION.FORTY_FIVE_DAYS) {
          // moment convert 45 days to a month and we need to be accurate here
          return this.$translate.instant('streams_45_days');
        }
        return moment.duration(duration).humanize();
      }
      return this.$translate.instant('streams_disk_full');
    }
  }, {
    key: "getLogAccountStreams",
    value: function getLogAccountStreams() {
      var _this7 = this;
      return this.LogToCustomerService.getIcebergStreamData(this.selectedAccount.serviceName).then(function (data) {
        _this7.streams = data;
      });
    }
  }, {
    key: "getRetentionDetails",
    value: function getRetentionDetails(stream) {
      return this.LogToCustomerService.getRetention(this.selectedAccount.serviceName, stream.clusterId, stream.retentionId);
    }
  }, {
    key: "goToAddDataStream",
    value: function goToAddDataStream() {
      this.trackClick(this.trackingHits.ADD_DATA_STREAM);
      window.open(this.coreURLBuilder.buildURL('dedicated', "#/dbaas/logs/".concat(this.selectedAccount.serviceName, "/streams/add")), '_blank');
    }
  }]);
}();

var component$1 = {
  controller: LogToCustomerListCtrl,
  template: template$2,
  bindings: {
    logSubscriptionApiData: '<',
    goBack: '<',
    description: '@',
    trackingHits: '<',
    trackClick: '<',
    apiVersion: '<?',
    logKindsList: '<?'
  }
};

function __variableDynamicImportRuntime1__$1(path) {
  switch (path) {
    case './../translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './../translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './../translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './../translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './../translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './../translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './../translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './../translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
function __variableDynamicImportRuntime0__$1(path) {
  switch (path) {
    case './../translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './../translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './../translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './../translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './../translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './../translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './../translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './../translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
var moduleName$2 = 'ovhLogToCustomerList';
angular$1.module(moduleName$2, [ListLayoutHelper.moduleName, ngOvhSwimmingPoll]).component('logToCustomerList', component$1).service('LogToCustomerService', LogToCustomerService).run(["$translate", "$q", "asyncLoader", function ($translate, $q, asyncLoader) {
  var promises = [];
  promises.push($q.all({
    use: __variableDynamicImportRuntime0__$1('./../translations/Messages_' + $translate.use() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    }),
    fallback: __variableDynamicImportRuntime1__$1('./../translations/Messages_' + $translate.fallbackLanguage() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    })
  }).then(function (result) {
    return Object.assign(result.fallback, result.use);
  }));
  promises.forEach(function (p) {
    return asyncLoader.addTranslations(p);
  });
  return $q.all(promises).then(function () {
    return $translate.refresh();
  });
}]);

var template$1 = "<div class=\"form-group col-md-2 col-xs-6\">\n    <label for=\"select-logs-kind\" class=\"control-label\" data-translate=\"logs_select_kind\">\n    </label>\n    <oui-select name=\"select-logs-kind\" data-model=\"$ctrl.ngModel\" data-items=\":: $ctrl.kinds\" data-on-change=\"$ctrl.onChange()\" data-placeholder=\"{{:: 'logs_select_kind' | translate }}\"></oui-select>\n</div>\n";

var component = {
  template: template$1,
  bindings: {
    kinds: '<',
    ngModel: '=',
    onChange: '&'
  },
  require: '^ngModel',
  name: 'logSelectKinds'
};

var moduleName$1 = 'ovhLogToCustomerSelectKinds';
angular.module(moduleName$1, []).component(component.name, component);

var template = "<div class=\"text-center\">\n    <oui-spinner data-ng-if=\"$ctrl.loading\"></oui-spinner>\n</div>\n\n<div data-ng-if=\"!$ctrl.loading\">\n    <div data-ng-if=\"$ctrl.streamSubscriptions.length > 0\" class=\"mx-1\">\n        <h5 class=\"oui-color-p-800 mb-1\" data-translate=\"log_tile_subscriptions_title\"></h5>\n        <button data-ng-click=\"$ctrl.goToStreamListingPage(true)\" type=\"button\" class=\"oui-button oui-button_secondary w-100\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.SUBSCRIBE_OTHER_ACCOUNT}}\">\n            <i class=\"oui-icon oui-icon-plus\" aria-hidden=\"true\"></i>\n            <span data-translate=\"log_tile_subscriptions_subscribe\"></span>\n        </button>\n        <oui-tile data-ng-repeat=\"subscription in $ctrl.streamSubscriptions track by $index\" class=\"my-3\" data-heading=\"{{ 'log_title_subscriptions_title' | translate}}\">\n            <div class=\"d-flex justify-content-between mb-1\">\n                <span class=\"font-weight-bold\" data-ng-bind=\"subscription.displayName\"></span>\n                <span class=\"w-50 text-right text-break\" data-ng-bind=\"subscription.serviceName\"></span>\n            </div>\n\n            <div class=\"d-flex justify-content-between mb-1\">\n                <span class=\"font-weight-bold\" data-translate=\"log_title_subscriptions_user\"></span>\n                <span class=\"w-50 text-right text-break\" data-ng-bind=\"subscription.userName\"></span>\n            </div>\n            <div class=\"d-flex justify-content-between\">\n                <span class=\"font-weight-bold\" data-translate=\"log_title_subscriptions_stream\"></span>\n                <span class=\"w-50 text-right text-break\" data-ng-bind=\"subscription.streamName\"></span>\n            </div>\n\n            <hr>\n\n            <div class=\"text-center\">\n                <a data-ng-href=\"{{::subscription.streamUrl}}\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.GRAYLOG_WATCH}}\" target=\"_blank\" rel=\"noopener\" class=\"oui-button oui-button_secondary\">\n                    <i class=\"oui-icon oui-icon-external-link\" aria-hidden=\"true\"></i>\n                    <span data-translate=\"log_title_subscriptions_button_watch\"></span>\n                </a>\n\n                <oui-button variant=\"link\" class=\"d-block mt-1\" data-ng-click=\"$ctrl.deleteLogSubscription(subscription)\" data-disabled=\"subscription.isLoading\">\n                    <span data-translate=\"log_title_subscriptions_unsubscribe\"></span>\n                    <oui-spinner size=\"s\" data-ng-if=\"subscription.isLoading\"></oui-spinner>\n                </oui-button>\n            </div>\n        </oui-tile>\n    </div>\n    <div data-ng-if=\"$ctrl.streamSubscriptions.length === 0\">\n        <h5 class=\"text-primary\" data-translate=\"log_tile_section_title\"></h5>\n        <oui-tile data-heading=\"{{:: 'log_tile_title' | translate }}\">\n            <div data-translate=\"log_tile_empty_state_description\"></div>\n\n            <span data-ng-if=\"$ctrl.logAccountStreams.length === 0\" data-translate=\"log_tile_desc_create_account\"></span>\n            <span data-ng-if=\"$ctrl.logAccountStreams.length > 0 && !$ctrl.hasAtLeastOneDataStream\" data-translate=\"log_tile_desc_create_stream\"></span>\n            <a data-ng-href=\"{{ :: $ctrl.links.logPlatformGuide}}\" target=\"_blank\" rel=\"noopener\">\n                <span data-translate=\"log_data_platform_guide_link\"></span>\n                <i class=\"oui-icon oui-icon-external-link\" aria-hidden=\"true\"></i>\n            </a>\n\n            <div class=\"my-2\">\n                <a data-ng-if=\"$ctrl.logAccountStreams.length === 0\" class=\"oui-button oui-button_secondary\" data-ng-href=\"{{:: $ctrl.links.createAccount }}\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.CREATE_ACCOUNT}}\" target=\"_blank\" rel=\"noopener\">\n                    <span data-translate=\"log_button_create_account\"></span>\n                </a>\n\n                <oui-spinner size=\"s\" data-ng-if=\"$ctrl.loadingLogAccountStreams\"></oui-spinner>\n\n                <a data-ng-if=\"$ctrl.logAccountStreams.length > 0 && !$ctrl.hasAtLeastOneDataStream\" class=\"oui-button oui-button_secondary\" data-ng-href=\"{{:: $ctrl.links.createStream }}\" data-track-on=\"click\" data-track-type=\"action\" data-track-name=\"{{:: $ctrl.trackingHits.CREATE_DATA_STREAM}}\" target=\"_blank\" rel=\"noopener\">\n                    <span data-translate=\"log_button_create_stream\"></span>\n                </a>\n\n                <oui-button data-ng-if=\"$ctrl.logAccountStreams.length > 0 && $ctrl.hasAtLeastOneDataStream\" data-variant=\"secondary\" data-ng-click=\"$ctrl.goToStreamListingPage()\">\n                    <span data-translate=\"log_button_transfer_stream\"></span>\n                </oui-button>\n            </div>\n        </oui-tile>\n    </div>\n</div>\n";

var LogToCustomerTileCtrl = /*#__PURE__*/function () {
  LogToCustomerTileCtrl.$inject = ["LogToCustomerService", "coreConfig", "coreURLBuilder", "$q", "$translate", "Alerter"];
  function LogToCustomerTileCtrl(LogToCustomerService, coreConfig, coreURLBuilder, $q, $translate, Alerter) {
    _classCallCheck(this, LogToCustomerTileCtrl);
    this.LogToCustomerService = LogToCustomerService;
    this.user = coreConfig.getUser();
    this.coreURLBuilder = coreURLBuilder;
    this.$q = $q;
    this.$translate = $translate;
    this.Alerter = Alerter;
  }
  return _createClass(LogToCustomerTileCtrl, [{
    key: "$onInit",
    value: function $onInit() {
      this.dbaasLogsURL = this.coreURLBuilder.buildURL('dedicated', '#/dbaas/logs');
      this.links = {
        logPlatformGuide: DATA_PLATFORM_GUIDE[this.user.ovhSubsidiary] || DATA_PLATFORM_GUIDE.DEFAULT,
        createStream: this.dbaasLogsURL,
        createAccount: "".concat(this.dbaasLogsURL, "/order")
      };
      this.hasAtLeastOneDataStream = false;
      this.loadStreams();
    }
  }, {
    key: "$onChanges",
    value: function () {
      var _$onChanges = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
        var kind;
        return _regeneratorRuntime().wrap(function _callee$(_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              kind = _ref.kind;
              if (!kind) {
                _context.next = 6;
                break;
              }
              this.loading = true;
              _context.next = 5;
              return this.getSubscribedStreams();
            case 5:
              this.loading = false;
            case 6:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function $onChanges(_x) {
        return _$onChanges.apply(this, arguments);
      }
      return $onChanges;
    }()
  }, {
    key: "loadStreams",
    value: function loadStreams() {
      var _this = this;
      this.loading = true;
      this.streamSubscriptions = [];
      return this.$q.all([this.getDataStreams(), this.getSubscribedStreams()])["catch"](function (_ref2) {
        var data = _ref2.data;
        _this.alertError(data.message);
      })["finally"](function () {
        _this.loading = false;
      });
    }
  }, {
    key: "alertError",
    value: function alertError() {
      var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
      this.Alerter.error(this.$translate.instant('error_message', {
        message: message
      }));
    }
  }, {
    key: "getSubscribedStreams",
    value: function () {
      var _getSubscribedStreams = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
        var _this2 = this;
        var data, streamPromises;
        return _regeneratorRuntime().wrap(function _callee3$(_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              _context3.prev = 0;
              _context3.next = 3;
              return this.LogToCustomerService.icebergQuery(this.logSubscriptionUrl, {
                kind: this.kind
              }, this.apiVersion);
            case 3:
              data = _context3.sent;
              streamPromises = data.map( /*#__PURE__*/function () {
                var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(subscription) {
                  var _yield$_this2$$q$all, _yield$_this2$$q$all2, account, stream, url;
                  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
                    while (1) switch (_context2.prev = _context2.next) {
                      case 0:
                        _context2.next = 2;
                        return _this2.$q.all([_this2.LogToCustomerService.getLogAccount(subscription.serviceName), _this2.LogToCustomerService.getSream(subscription.serviceName, subscription.streamId), _this2.LogToCustomerService.getStreamUrl(subscription.serviceName, subscription.streamId)]);
                      case 2:
                        _yield$_this2$$q$all = _context2.sent;
                        _yield$_this2$$q$all2 = _slicedToArray(_yield$_this2$$q$all, 3);
                        account = _yield$_this2$$q$all2[0];
                        stream = _yield$_this2$$q$all2[1];
                        url = _yield$_this2$$q$all2[2];
                        return _context2.abrupt("return", _objectSpread2(_objectSpread2({}, subscription), {}, {
                          isLoading: false,
                          userName: account.username,
                          displayName: account.displayName || account.serviceName,
                          streamName: stream.title,
                          streamUrl: url
                        }));
                      case 8:
                      case "end":
                        return _context2.stop();
                    }
                  }, _callee2);
                }));
                return function (_x2) {
                  return _ref3.apply(this, arguments);
                };
              }());
              _context3.next = 7;
              return this.$q.all(streamPromises);
            case 7:
              this.streamSubscriptions = _context3.sent;
              _context3.next = 13;
              break;
            case 10:
              _context3.prev = 10;
              _context3.t0 = _context3["catch"](0);
              this.alertError(_context3.t0.message);
            case 13:
            case "end":
              return _context3.stop();
          }
        }, _callee3, this, [[0, 10]]);
      }));
      function getSubscribedStreams() {
        return _getSubscribedStreams.apply(this, arguments);
      }
      return getSubscribedStreams;
    }()
  }, {
    key: "getDataStreams",
    value: function getDataStreams() {
      var _this3 = this;
      this.loadingLogAccountStreams = true;
      return this.LogToCustomerService.getDataStreams().then(function (_ref4) {
        var streams = _ref4.streams,
          streamCount = _ref4.streamCount;
        _this3.logAccountStreams = streams;
        _this3.hasAtLeastOneDataStream = streamCount > 0;
      })["finally"](function () {
        _this3.loadingLogAccountStreams = false;
      });
    }
  }, {
    key: "deleteLogSubscription",
    value: function deleteLogSubscription(subscription) {
      var _this4 = this;
      this.trackClick(this.trackingHits.STOP_TRANSFER);

      // eslint-disable-next-line no-param-reassign
      subscription.isLoading = true;
      this.LogToCustomerService["delete"]("".concat(this.logSubscriptionUrl, "/").concat(subscription.subscriptionId), this.apiVersion).then(function (_ref5) {
        var data = _ref5.data;
        return _this4.LogToCustomerService.pollOperation(subscription.serviceName, data).then(function () {
          _this4.Alerter.success(_this4.$translate.instant('logs_list_unsubscription_success'));
          return _this4.loadStreams();
        });
      })["catch"](function (_ref6) {
        var data = _ref6.data;
        _this4.alertError(data.message);
      })["finally"](function () {
        // eslint-disable-next-line no-param-reassign
        subscription.isLoading = false;
      });
    }
  }, {
    key: "goToStreamListingPage",
    value: function goToStreamListingPage() {
      var preventTracking = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      if (!preventTracking) {
        this.trackClick(this.trackingHits.TRANSFER);
      }
      this.goToListingPage({
        kind: this.kind
      });
    }
  }]);
}();

var tiles = {
  controller: LogToCustomerTileCtrl,
  template: template,
  bindings: {
    kind: '<',
    logSubscriptionUrl: '<',
    goToListingPage: '<',
    trackClick: '<',
    trackingHits: '<',
    apiVersion: '<?'
  }
};

function __variableDynamicImportRuntime1__(path) {
  switch (path) {
    case './translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
function __variableDynamicImportRuntime0__(path) {
  switch (path) {
    case './translations/Messages_de_DE.json':
      return import('./Messages_de_DE-B9b9zAvK.js');
    case './translations/Messages_en_GB.json':
      return import('./Messages_en_GB-CXTUbFNh.js');
    case './translations/Messages_es_ES.json':
      return import('./Messages_es_ES-Bzkh0WIa.js');
    case './translations/Messages_fr_CA.json':
      return import('./Messages_fr_CA-BFmyuyFw.js');
    case './translations/Messages_fr_FR.json':
      return import('./Messages_fr_FR-B4zfGM6e.js');
    case './translations/Messages_it_IT.json':
      return import('./Messages_it_IT-4j44BYMA.js');
    case './translations/Messages_pl_PL.json':
      return import('./Messages_pl_PL-BLZ_mqol.js');
    case './translations/Messages_pt_PT.json':
      return import('./Messages_pt_PT-rqgoDWSJ.js');
    default:
      return new Promise(function (resolve, reject) {
        (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
      });
  }
}
var moduleName = 'ovhManagerLogToCustomer';
angular$1.module(moduleName, ['pascalprecht.translate', 'ui.router', moduleName$3, moduleName$2, moduleName$1]).component('logTile', tiles).constant('DATA_PLATFORM_GUIDE', DATA_PLATFORM_GUIDE).run(["$translate", "$q", "asyncLoader", function ($translate, $q, asyncLoader) {
  var promises = [];
  promises.push($q.all({
    use: __variableDynamicImportRuntime0__('./translations/Messages_' + $translate.use() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    }),
    fallback: __variableDynamicImportRuntime1__('./translations/Messages_' + $translate.fallbackLanguage() + '.json').then(function (module) {
      return module["default"] || module;
    })["catch"](function () {
      return {};
    })
  }).then(function (result) {
    return Object.assign(result.fallback, result.use);
  }));
  promises.forEach(function (p) {
    return asyncLoader.addTranslations(p);
  });
  return $q.all(promises).then(function () {
    return $translate.refresh();
  });
}]);

export { moduleName as default };