define(["exports", "core/pubsubhub"], function (exports, _pubsubhub) {
  "use strict";

  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.name = undefined;

  var _slicedToArray = function () {
    function sliceIterator(arr, i) {
      var _arr = [];
      var _n = true;
      var _d = false;
      var _e = undefined;

      try {
        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
          _arr.push(_s.value);

          if (i && _arr.length === i) break;
        }
      } catch (err) {
        _d = true;
        _e = err;
      } finally {
        try {
          if (!_n && _i["return"]) _i["return"]();
        } finally {
          if (_d) throw _e;
        }
      }

      return _arr;
    }

    return function (arr, i) {
      if (Array.isArray(arr)) {
        return arr;
      } else if (Symbol.iterator in Object(arr)) {
        return sliceIterator(arr, i);
      } else {
        throw new TypeError("Invalid attempt to destructure non-iterable instance");
      }
    };
  }();

  var name = exports.name = "core/override-configuration";

  function overrideConfig(config) {
    var searchQuery = document.location.search.replace(/;/g, "&");
    var param = new URLSearchParams(searchQuery);
    var overrideProps = Array.from(param.entries()).filter(function (_ref) {
      var _ref2 = _slicedToArray(_ref, 2),
          key = _ref2[0],
          value = _ref2[1];

      return !!key && !!value;
    }).map(function (_ref3) {
      var _ref4 = _slicedToArray(_ref3, 2),
          codedKey = _ref4[0],
          codedValue = _ref4[1];

      var key = decodeURIComponent(codedKey);
      var decodedValue = decodeURIComponent(codedValue.replace(/%3D/g, "="));
      var value = void 0;
      try {
        value = JSON.parse(decodedValue);
      } catch (err) {
        value = decodedValue;
      }
      return { key: key, value: value };
    }).reduce(function (collector, _ref5) {
      var key = _ref5.key,
          value = _ref5.value;

      collector[key] = value;
      return collector;
    }, {});
    Object.assign(config, overrideProps);
    (0, _pubsubhub.pub)("amend-user-config", overrideProps);
  }
  (0, _pubsubhub.sub)("start-all", overrideConfig, { once: true });
});
//# sourceMappingURL=override-configuration.js.map