'use strict';

var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
require('@babel/runtime/helpers/defineProperty');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
var _createClass = require('@babel/runtime/helpers/createClass');
var neetoCist = require('@bigbinary/neeto-cist');
var qs = require('qs');
var ramda = require('ramda');
var en = require('./en-B1i-pQJm.js');
var index = require('./index-BgzkP01c.js');
var i18next = require('i18next');

function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
var _classCallCheck__default = /*#__PURE__*/_interopDefault(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefault(_createClass);
var i18next__default = /*#__PURE__*/_interopDefault(i18next);

var getEnTranslationValue = function getEnTranslationValue(translationKey) {
  return translationKey.split(".").reduce(function (acc, key) {
    return acc[key];
  }, en.enTranslations);
};
var getScrollbarWidth = function getScrollbarWidth() {
  var _parentDiv$parentNode;
  var parentDiv = document.createElement("div");
  parentDiv.style.visibility = "hidden";
  parentDiv.style.overflow = "scroll";
  document.body.appendChild(parentDiv);
  var childDiv = document.createElement("div");
  parentDiv.appendChild(childDiv);
  var scrollbarWidth = parentDiv.offsetWidth - childDiv.offsetWidth;
  parentDiv === null || parentDiv === void 0 ? void 0 : (_parentDiv$parentNode = parentDiv.parentNode) === null || _parentDiv$parentNode === void 0 ? void 0 : _parentDiv$parentNode.removeChild(parentDiv);
  return scrollbarWidth;
};
var getTimezoneAppliedDateTime = function getTimezoneAppliedDateTime(inputDateTime) {
  var timezoneAppliedDateTime = function timezoneAppliedDateTime(date) {
    return date && typeof date.format === "function" ? index.dayjs(date.format("YYYY-MM-DD HH:mm:ss")) : null;
  };
  return Array.isArray(inputDateTime) ? inputDateTime.map(timezoneAppliedDateTime) : timezoneAppliedDateTime(inputDateTime);
};
var noop = function noop() {};
var hyphenize = function hyphenize(input) {
  var fallbackString = "nui";
  if (typeof input === "number") return String(input);
  if (input && typeof input === "string" && input.replace) {
    return input.replace(/[\s_]/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/-+/g, "-").toLowerCase();
  }
  return fallbackString;
};
var getValidDayjsValue = function getValidDayjsValue(value) {
  if (Array.isArray(value)) {
    return value.map(function (date) {
      if (!date) return null;
      var parsed = index.dayjs(date);
      return parsed.isValid() ? parsed : null;
    });
  }
  if (!value) return value;
  var parsed = index.dayjs(value);
  return parsed.isValid() ? parsed : null;
};
var UniqueArray = /*#__PURE__*/function () {
  function UniqueArray() {
    _classCallCheck__default.default(this, UniqueArray);
    this.array = [];
  }
  return _createClass__default.default(UniqueArray, [{
    key: "add",
    value: function add(item) {
      if (this.array.some(ramda.equals(item))) return false;
      this.array.push(item);
      return true;
    }
  }, {
    key: "remove",
    value: function remove(item) {
      this.array = this.array.filter(ramda.complement(ramda.equals(item)));
    }
  }]);
}();
var trapFocusOnFocusableElements = function trapFocusOnFocusableElements(ref) {
  var _ref$current, _ref$current2;
  var focusableElements = 'button,[href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
  var firstFocusableElement = ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelectorAll(focusableElements)[0];
  var focusableContent = ref === null || ref === void 0 ? void 0 : (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.querySelectorAll(focusableElements);
  var lastFocusableElement = focusableContent[(focusableContent === null || focusableContent === void 0 ? void 0 : focusableContent.length) - 1];
  var onKeyDown = function onKeyDown(e) {
    var isTabPressed = e.key === "Tab" || e.keyCode === 9;
    if (!isTabPressed) {
      return;
    }
    if (e.shiftKey) {
      if (document.activeElement === firstFocusableElement) {
        lastFocusableElement.focus();
        e.preventDefault();
      }
    } else {
      if (document.activeElement === lastFocusableElement) {
        firstFocusableElement.focus();
        e.preventDefault();
      }
    }
  };
  document.addEventListener("keydown", onKeyDown);
  return function () {
    return document.removeEventListener("keydown", onKeyDown);
  };
};
var focusFirstFocusableElement = function focusFirstFocusableElement(ref) {
  var _ref$current3;
  var focusableElements = 'button,[href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
  var firstFocusableElement = ref === null || ref === void 0 ? void 0 : (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.querySelectorAll(focusableElements)[0];
  firstFocusableElement === null || firstFocusableElement === void 0 ? void 0 : firstFocusableElement.focus();
};
var hideScrollAndAddMargin = function hideScrollAndAddMargin() {
  if (!document.body) return;
  var scrollbarWidth = getScrollbarWidth();
  document.body.style.overflow = "hidden";
  document.body.style.marginRight = "".concat(scrollbarWidth, "px");
};
var showScrollAndRemoveMargin = function showScrollAndRemoveMargin() {
  if (!document.body) return;
  document.body.style.overflow = "auto";
  document.body.style.marginRight = "0px";
};
var ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES = {
  colorBgContainer: "rgb(var(--neeto-ui-white))",
  colorBorder: "rgb(var(--neeto-ui-gray-300))",
  colorBorderSecondary: "rgb(var(--neeto-ui-gray-200))",
  colorFillAlter: "rgb(var(--neeto-ui-gray-100))",
  colorFillContent: "rgb(var(--neeto-ui-gray-100))",
  colorFillSecondary: "rgb(var(--neeto-ui-gray-100))",
  colorIcon: "rgb(var(--neeto-ui-gray-700))",
  colorIconHover: "rgb(var(--neeto-ui-gray-800))",
  colorLink: "rgb(var(--neeto-ui-primary-500))",
  colorLinkActive: "rgb(var(--neeto-ui-primary-800))",
  colorLinkHover: "rgb(var(--neeto-ui-primary-600))",
  colorPrimary: "rgb(var(--neeto-ui-primary-500))",
  colorSplit: "rgb(var(--neeto-ui-gray-100))",
  colorText: "rgb(var(--neeto-ui-gray-800))",
  colorTextDescription: "rgb(var(--neeto-ui-gray-700))",
  colorTextDisabled: "rgb(var(--neeto-ui-gray-600))",
  colorTextHeading: "rgb(var(--neeto-ui-black))",
  colorTextPlaceholder: "rgb(var(--neeto-ui-gray-500))",
  controlItemBgActive: "rgb(var(--neeto-ui-primary-100))",
  controlItemBgActiveHover: "rgb(var(--neeto-ui-pastel-purple))",
  controlItemBgHover: "rgb(var(--neeto-ui-gray-100))"
};
var buildUrl = function buildUrl(route, params) {
  var placeHolders = [];
  ramda.toPairs(params).forEach(function (_ref) {
    var _ref2 = _slicedToArray__default.default(_ref, 2),
      key = _ref2[0],
      value = _ref2[1];
    if (!route.includes(":".concat(key))) return;
    placeHolders.push(key);
    route = route.replace(":".concat(key), encodeURIComponent(value));
  });
  var queryParams = ramda.pipe(ramda.omit(placeHolders), neetoCist.preprocessForSerialization, qs.stringify)(params);
  return ramda.isEmpty(queryParams) ? route : "".concat(route, "?").concat(queryParams);
};
var getLocale = function getLocale(i18n, t, translationKey) {
  if (ramda.isEmpty(i18n)) return getEnTranslationValue(translationKey);
  return i18n.exists(translationKey) ? t(translationKey) : getEnTranslationValue(translationKey);
};
var setToLocalStorage = function setToLocalStorage(key, value) {
  try {
    // eslint-disable-next-line @bigbinary/neeto/no-local-storage
    localStorage.setItem(key, JSON.stringify(value));
  } catch (_unused) {
    // localStorage access can fail due to private browsing mode or storage restrictions
  }
};
var removeFromLocalStorage = function removeFromLocalStorage(key) {
  try {
    // eslint-disable-next-line @bigbinary/neeto/no-local-storage
    localStorage.removeItem(key);
  } catch (_unused2) {
    // localStorage access can fail due to private browsing mode or storage restrictions
  }
};
var getFromLocalStorage = function getFromLocalStorage(key, defaultValue) {
  try {
    // eslint-disable-next-line @bigbinary/neeto/no-local-storage
    var storedValue = localStorage.getItem(key);
    return storedValue ? JSON.parse(storedValue) : defaultValue;
  } catch (_unused3) {
    // localStorage access can fail due to private browsing mode or storage restrictions
    return defaultValue;
  }
};
var getContentDir = function getContentDir() {
  return i18next__default.default.language ? i18next__default.default.dir() : "ltr";
};

exports.ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES = ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES;
exports.UniqueArray = UniqueArray;
exports.buildUrl = buildUrl;
exports.focusFirstFocusableElement = focusFirstFocusableElement;
exports.getContentDir = getContentDir;
exports.getFromLocalStorage = getFromLocalStorage;
exports.getLocale = getLocale;
exports.getTimezoneAppliedDateTime = getTimezoneAppliedDateTime;
exports.getValidDayjsValue = getValidDayjsValue;
exports.hideScrollAndAddMargin = hideScrollAndAddMargin;
exports.hyphenize = hyphenize;
exports.noop = noop;
exports.removeFromLocalStorage = removeFromLocalStorage;
exports.setToLocalStorage = setToLocalStorage;
exports.showScrollAndRemoveMargin = showScrollAndRemoveMargin;
exports.trapFocusOnFocusableElements = trapFocusOnFocusableElements;
//# sourceMappingURL=index-CNZKW5X0.js.map
