'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var React = require('react');
var ttag = require('ttag');
var BodyContext = require('@prom-ui/core/BodyContext');
var SnackBarManager = require('@prom-ui/core/SnackBarManager');

function _interopNamespaceCompat(e) {
    if (e && typeof e === 'object' && 'default' in e) return e;
    var n = Object.create(null);
    if (e) {
        Object.keys(e).forEach(function (k) {
            if (k !== 'default') {
                var d = Object.getOwnPropertyDescriptor(e, k);
                Object.defineProperty(n, k, d.get ? d : {
                    enumerable: true,
                    get: function () { return e[k]; }
                });
            }
        });
    }
    n.default = e;
    return Object.freeze(n);
}

var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);

var charset$2 = "utf-8";
var headers$2 = {
	"Content-Type": "text/plain; charset=utf-8",
	"Plural-Forms": "nplurals = 3; plural = (n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);",
	Language: "uk",
	"MIME-Version": "1.0",
	"Content-Transfer-Encoding": "8bit"
};
var translations$2 = {
	"": {
		"": {
			msgid: "",
			msgstr: [
				"Content-Type: text/plain; charset=utf-8\nPlural-Forms: nplurals = 3; plural = (n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\nLanguage: uk\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\n"
			]
		},
		"Показать предыдущий баннер": {
			msgid: "Показать предыдущий баннер",
			msgstr: [
				"Показати попередній банер"
			]
		},
		"Показать следующий баннер": {
			msgid: "Показать следующий баннер",
			msgstr: [
				"Показати наступний банер"
			]
		},
		"Показать баннер номер ${ viewIndex }": {
			msgid: "Показать баннер номер ${ viewIndex }",
			msgstr: [
				"Показати банер номер ${ viewIndex }"
			]
		},
		"Закрыть": {
			msgid: "Закрыть",
			msgstr: [
				"Закрити"
			]
		},
		"Назад": {
			msgid: "Назад",
			msgstr: [
				"Назад"
			]
		},
		"Далее": {
			msgid: "Далее",
			msgstr: [
				"Далі"
			]
		},
		"Возникла ошибка:": {
			msgid: "Возникла ошибка:",
			msgstr: [
				"Виникла помилка:"
			]
		},
		"Обновить": {
			msgid: "Обновить",
			msgstr: [
				"Оновити"
			]
		},
		"Скрыть": {
			msgid: "Скрыть",
			msgstr: [
				"Приховати"
			]
		},
		"Очистить": {
			msgid: "Очистить",
			msgstr: [
				"Очистити"
			]
		},
		"Скрыть пароль": {
			msgid: "Скрыть пароль",
			msgstr: [
				"Приховати пароль"
			]
		},
		"Показать пароль": {
			msgid: "Показать пароль",
			msgstr: [
				"Показати пароль"
			]
		},
		"Наверх": {
			msgid: "Наверх",
			msgstr: [
				"Вгору"
			]
		},
		"Ой, кажется что-то пошло не так": {
			msgid: "Ой, кажется что-то пошло не так",
			msgstr: [
				"Ой, здається щось пішло не так"
			]
		},
		"Мы уже разбираемся с этим": {
			msgid: "Мы уже разбираемся с этим",
			msgstr: [
				"Ми вже розбираємося з цим"
			]
		},
		"Нет соединения": {
			msgid: "Нет соединения",
			msgstr: [
				"Немає з'єднання"
			]
		},
		"Проверьте подключение к Интернету": {
			msgid: "Проверьте подключение к Интернету",
			msgstr: [
				"Перевірте підключення до Інтернету"
			]
		},
		"Попробовать еще раз": {
			msgid: "Попробовать еще раз",
			msgstr: [
				"Спробувати ще раз"
			]
		},
		"Фото ${ visibleSelectedIndex } из ${ itemsLength }": {
			msgid: "Фото ${ visibleSelectedIndex } из ${ itemsLength }",
			msgstr: [
				"Фото ${ visibleSelectedIndex } з ${ itemsLength }"
			]
		}
	}
};
var localeUk = {
	charset: charset$2,
	headers: headers$2,
	translations: translations$2
};

var charset$1 = "utf-8";
var headers$1 = {
	"Content-Type": "text/plain; charset=utf-8",
	"Plural-Forms": "nplurals = 3; plural = (n == 1 ? 0 : (n == 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);",
	Language: "ro",
	"MIME-Version": "1.0",
	"Content-Transfer-Encoding": "8bit"
};
var translations$1 = {
	"": {
		"": {
			msgid: "",
			msgstr: [
				"Content-Type: text/plain; charset=utf-8\nPlural-Forms: nplurals = 3; plural = (n == 1 ? 0 : (n == 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);\nLanguage: ro\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\n"
			]
		},
		"Показать предыдущий баннер": {
			msgid: "Показать предыдущий баннер",
			msgstr: [
				"Afișați bannerul anterior"
			]
		},
		"Показать следующий баннер": {
			msgid: "Показать следующий баннер",
			msgstr: [
				"Afișează următorul banner"
			]
		},
		"Показать баннер номер ${ viewIndex }": {
			msgid: "Показать баннер номер ${ viewIndex }",
			msgstr: [
				"Afișați numărul bannerului ${ viewIndex }"
			]
		},
		"Закрыть": {
			msgid: "Закрыть",
			msgstr: [
				"Închide"
			]
		},
		"Назад": {
			msgid: "Назад",
			msgstr: [
				"Înapoi"
			]
		},
		"Далее": {
			msgid: "Далее",
			msgstr: [
				"Mai departe"
			]
		},
		"Возникла ошибка:": {
			msgid: "Возникла ошибка:",
			msgstr: [
				"A aparut o eroare:"
			]
		},
		"Обновить": {
			msgid: "Обновить",
			msgstr: [
				"Reîmprospăta"
			]
		},
		"Скрыть": {
			msgid: "Скрыть",
			msgstr: [
				"Ascunde"
			]
		},
		"Очистить": {
			msgid: "Очистить",
			msgstr: [
				"Clar"
			]
		},
		"Скрыть пароль": {
			msgid: "Скрыть пароль",
			msgstr: [
				"Ascunde parola"
			]
		},
		"Показать пароль": {
			msgid: "Показать пароль",
			msgstr: [
				"Arata parola"
			]
		},
		"Наверх": {
			msgid: "Наверх",
			msgstr: [
				"Top"
			]
		},
		"Ой, кажется что-то пошло не так": {
			msgid: "Ой, кажется что-то пошло не так",
			msgstr: [
				"Oops, se pare că ceva nu a mers bine"
			]
		},
		"Мы уже разбираемся с этим": {
			msgid: "Мы уже разбираемся с этим",
			msgstr: [
				"Deja ne ocupăm de acest lucru"
			]
		},
		"Нет соединения": {
			msgid: "Нет соединения",
			msgstr: [
				"Nu există conexiune"
			]
		},
		"Проверьте подключение к Интернету": {
			msgid: "Проверьте подключение к Интернету",
			msgstr: [
				"Verificați conexiunea la Internet"
			]
		},
		"Попробовать еще раз": {
			msgid: "Попробовать еще раз",
			msgstr: [
				"Încearcă din nou"
			]
		},
		"Фото ${ visibleSelectedIndex } из ${ itemsLength }": {
			msgid: "Фото ${ visibleSelectedIndex } из ${ itemsLength }",
			msgstr: [
				"Fotografie ${ visibleSelectedIndex } de ${ itemsLength }"
			]
		}
	}
};
var localeRo = {
	charset: charset$1,
	headers: headers$1,
	translations: translations$1
};

var charset = "utf-8";
var headers = {
	"Content-Type": "text/plain; charset=utf-8",
	"Plural-Forms": "nplurals = 1; plural = 0;",
	Language: "kk",
	"MIME-Version": "1.0",
	"Content-Transfer-Encoding": "8bit"
};
var translations = {
	"": {
		"": {
			msgid: "",
			msgstr: [
				"Content-Type: text/plain; charset=utf-8\nPlural-Forms: nplurals = 1; plural = 0;\nLanguage: kk\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\n"
			]
		},
		"Показать предыдущий баннер": {
			msgid: "Показать предыдущий баннер",
			msgstr: [
				"Алдыңғы баннерді көрсету"
			]
		},
		"Показать следующий баннер": {
			msgid: "Показать следующий баннер",
			msgstr: [
				"Келесі баннерді көрсету"
			]
		},
		"Показать баннер номер ${ viewIndex }": {
			msgid: "Показать баннер номер ${ viewIndex }",
			msgstr: [
				"${ viewIndex } баннер нөмірін көрсету"
			]
		},
		"Назад": {
			msgid: "Назад",
			msgstr: [
				"Артқа"
			]
		},
		"Далее": {
			msgid: "Далее",
			msgstr: [
				"Әрі қарай"
			]
		},
		"Возникла ошибка:": {
			msgid: "Возникла ошибка:",
			msgstr: [
				"Қате орын алды:"
			]
		},
		"Обновить": {
			msgid: "Обновить",
			msgstr: [
				"Жаңарту"
			]
		},
		"Скрыть": {
			msgid: "Скрыть",
			msgstr: [
				"Жасыру"
			]
		},
		"Закрыть": {
			msgid: "Закрыть",
			msgstr: [
				"Жабық"
			]
		},
		"Очистить": {
			msgid: "Очистить",
			msgstr: [
				"Таза"
			]
		},
		"Скрыть пароль": {
			msgid: "Скрыть пароль",
			msgstr: [
				"Құпия сөзді жасыру"
			]
		},
		"Показать пароль": {
			msgid: "Показать пароль",
			msgstr: [
				"Құпия сөзді көрсету"
			]
		},
		"Наверх": {
			msgid: "Наверх",
			msgstr: [
				"Жоғарғы"
			]
		},
		"Ой, кажется что-то пошло не так": {
			msgid: "Ой, кажется что-то пошло не так",
			msgstr: [
				"Ой, бірдеңе дұрыс емес сияқты"
			]
		},
		"Мы уже разбираемся с этим": {
			msgid: "Мы уже разбираемся с этим",
			msgstr: [
				"Біз қазірдің өзінде онымен айналысып жатырмыз"
			]
		},
		"Нет соединения": {
			msgid: "Нет соединения",
			msgstr: [
				"Байланыс жоқ"
			]
		},
		"Проверьте подключение к Интернету": {
			msgid: "Проверьте подключение к Интернету",
			msgstr: [
				"Интернет байланысын тексеріңіз"
			]
		},
		"Попробовать еще раз": {
			msgid: "Попробовать еще раз",
			msgstr: [
				"Қайталап көріңіз"
			]
		},
		"Фото ${ visibleSelectedIndex } из ${ itemsLength }": {
			msgid: "Фото ${ visibleSelectedIndex } из ${ itemsLength }",
			msgstr: [
				"${ itemsLength } суреттің ${ visibleSelectedIndex }-суреті"
			]
		}
	}
};
var localeKk = {
	charset: charset,
	headers: headers,
	translations: translations
};

var BodyProvider = function BodyProvider(_ref) {
  var children = _ref.children,
    _ref$locale = _ref.locale,
    locale = _ref$locale === void 0 ? 'ru' : _ref$locale,
    identifierPrefix = _ref.identifierPrefix;
  var refSnackBarManager = React__namespace.useRef(null);
  var globalGetUseId = BodyContext.useIdGetter(identifierPrefix);
  var globalTTag = React__namespace.useMemo(function () {
    var newTTag = new ttag.TTag();

    // add locales from json file
    newTTag.addLocale('uk', localeUk);
    newTTag.addLocale('ro', localeRo);
    newTTag.addLocale('kk', localeKk);
    return newTTag;
  }, []);
  globalTTag.useLocale(locale);
  var globalSnackBarManager = React__namespace.useMemo(function () {
    return {
      open: function open(child, options) {
        var _refSnackBarManager$c;
        (_refSnackBarManager$c = refSnackBarManager.current) === null || _refSnackBarManager$c === void 0 ? void 0 : _refSnackBarManager$c.open(child, options);
      },
      close: function close() {
        var _refSnackBarManager$c2;
        (_refSnackBarManager$c2 = refSnackBarManager.current) === null || _refSnackBarManager$c2 === void 0 ? void 0 : _refSnackBarManager$c2.close();
      }
    };
  }, []);
  return /*#__PURE__*/React__namespace.createElement(BodyContext.BodyContext.Provider, {
    value: {
      globalTTag: globalTTag,
      globalGetUseId: globalGetUseId,
      globalSnackBarManager: globalSnackBarManager
    }
  }, children, /*#__PURE__*/React__namespace.createElement(SnackBarManager.SnackBarManager, {
    ref: refSnackBarManager
  }));
};
BodyProvider.displayName = 'BodyProvider';

exports.BodyProvider = BodyProvider;
