@kando-env/kando-ui 1.2.466-alpha.4 → 1.2.466-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,6 +19,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
19
19
  docs: https://react-responsive-modal.leopradel.com/
20
20
  */
21
21
  var KandoModal = function KandoModal(_ref) {
22
+ var _document$documentEle;
22
23
  var _ref$isOpen = _ref.isOpen,
23
24
  isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
24
25
  buttonLabel = _ref.buttonLabel,
@@ -27,18 +28,26 @@ var KandoModal = function KandoModal(_ref) {
27
28
  children = _ref.children,
28
29
  type = _ref.type,
29
30
  openerClass = _ref.openerClass,
30
- handleButtonClick = _ref.handleButtonClick;
31
+ handleButtonClick = _ref.handleButtonClick,
32
+ onClose = _ref.onClose,
33
+ _ref$hideOpener = _ref.hideOpener,
34
+ hideOpener = _ref$hideOpener === void 0 ? false : _ref$hideOpener,
35
+ dir = _ref.dir;
31
36
  var containerRef = _react.default.useRef(null);
32
37
  var _useState = (0, _react.useState)(isOpen),
33
38
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
39
  open = _useState2[0],
35
40
  setOpen = _useState2[1];
41
+ (0, _react.useEffect)(function () {
42
+ setOpen(isOpen);
43
+ }, [isOpen]);
36
44
  var onOpenModal = function onOpenModal() {
37
45
  return setOpen(true);
38
46
  };
39
47
  var onCloseModal = function onCloseModal() {
40
48
  setOpen(false);
41
49
  clearHistory();
50
+ if (onClose) onClose();
42
51
  };
43
52
  var queryURL = (0, _useQueryURL.default)();
44
53
  var handleClick = function handleClick() {
@@ -77,7 +86,15 @@ var KandoModal = function KandoModal(_ref) {
77
86
  updateHistory();
78
87
  }
79
88
  }, [open]);
80
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
89
+ var resolvedDir = dir || (typeof document !== 'undefined' && ((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.dir) === 'rtl' ? 'rtl' : 'ltr');
90
+ var isRtl = resolvedDir === 'rtl';
91
+ var modalStyles = isRtl ? {
92
+ closeButton: {
93
+ left: '14px',
94
+ right: 'auto'
95
+ }
96
+ } : undefined;
97
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hideOpener && /*#__PURE__*/_react.default.createElement("div", {
81
98
  className: "kmodal__opener kmodal__opener--".concat(openerClass),
82
99
  onClick: function onClick() {
83
100
  return handleClick();
@@ -87,12 +104,15 @@ var KandoModal = function KandoModal(_ref) {
87
104
  center: true,
88
105
  open: open,
89
106
  onClose: onCloseModal,
107
+ styles: modalStyles,
90
108
  classNames: {
91
109
  overlay: 'kmodal__overlay',
92
110
  modal: "kmodal kmodal--type-".concat(type)
93
111
  }
94
- }, children));
112
+ }, /*#__PURE__*/_react.default.createElement("div", {
113
+ dir: resolvedDir
114
+ }, children)));
95
115
  };
96
116
  var _default = KandoModal;
97
117
  exports.default = _default;
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX3JlYWN0UmVzcG9uc2l2ZU1vZGFsIiwiX3VzZVF1ZXJ5VVJMIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiS2FuZG9Nb2RhbCIsIl9yZWYiLCJfcmVmJGlzT3BlbiIsImlzT3BlbiIsImJ1dHRvbkxhYmVsIiwiX3JlZiRjaGFuZ2VIaXN0b3J5IiwiY2hhbmdlSGlzdG9yeSIsImNoaWxkcmVuIiwidHlwZSIsIm9wZW5lckNsYXNzIiwiaGFuZGxlQnV0dG9uQ2xpY2siLCJjb250YWluZXJSZWYiLCJSZWFjdCIsInVzZVJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm9wZW4iLCJzZXRPcGVuIiwib25PcGVuTW9kYWwiLCJvbkNsb3NlTW9kYWwiLCJjbGVhckhpc3RvcnkiLCJxdWVyeVVSTCIsInVzZVF1ZXJ5VVJMIiwiaGFuZGxlQ2xpY2siLCJ1bmRlZmluZWQiLCJ1cGRhdGVIaXN0b3J5IiwiaXNFbXB0eSIsIl9pIiwiX09iamVjdCRlbnRyaWVzIiwiZW50cmllcyIsImxlbmd0aCIsIl9PYmplY3QkZW50cmllcyRfaSIsInBhcmFtIiwidmFsdWUiLCJ3aW5kb3ciLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiY29uY2F0IiwibG9jYXRpb24iLCJwYXRobmFtZSIsIl9pMiIsIl9PYmplY3QkZW50cmllczIiLCJfT2JqZWN0JGVudHJpZXMyJF9pIiwiZGVsZXRlIiwidXNlRWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIk1vZGFsIiwiY29udGFpbmVyIiwiY3VycmVudCIsImNlbnRlciIsIm9uQ2xvc2UiLCJjbGFzc05hbWVzIiwib3ZlcmxheSIsIm1vZGFsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvS2FuZG9Nb2RhbC9LYW5kb01vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3RFbGVtZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gJ3JlYWN0LXJlc3BvbnNpdmUtbW9kYWwnO1xuaW1wb3J0ICdyZWFjdC1yZXNwb25zaXZlLW1vZGFsL3N0eWxlcy5jc3MnO1xuXG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnc3JjL2hvb2tzL3VzZVF1ZXJ5VVJMJztcblxuaW1wb3J0ICcuL3N0eWxlcy5zY3NzJztcblxudHlwZSBJS2FuZG9Nb2RhbCA9IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHtcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgb3BlbmVyQ2xhc3M/OiBzdHJpbmc7XG4gIGJ1dHRvbkxhYmVsPzogc3RyaW5nIHwgUmVhY3RFbGVtZW50O1xuICBjaGFuZ2VIaXN0b3J5PzogT2JqZWN0O1xuICB0eXBlPzogc3RyaW5nO1xuICBoYW5kbGVCdXR0b25DbGljaz86IEZ1bmN0aW9uO1xufT47XG5cbi8qIFdyYXBwZXIgYXJvdW5kIE1vZGFsLFxuICAgZG9jczogaHR0cHM6Ly9yZWFjdC1yZXNwb25zaXZlLW1vZGFsLmxlb3ByYWRlbC5jb20vXG4qL1xuY29uc3QgS2FuZG9Nb2RhbDogUmVhY3QuRkM8SUthbmRvTW9kYWw+ID0gKHtcbiAgaXNPcGVuID0gZmFsc2UsXG4gIGJ1dHRvbkxhYmVsLFxuICBjaGFuZ2VIaXN0b3J5ID0ge30sXG4gIGNoaWxkcmVuLFxuICB0eXBlLFxuICBvcGVuZXJDbGFzcyxcbiAgaGFuZGxlQnV0dG9uQ2xpY2ssXG59KSA9PiB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoaXNPcGVuKTtcbiAgY29uc3Qgb25PcGVuTW9kYWwgPSAoKSA9PiBzZXRPcGVuKHRydWUpO1xuICBjb25zdCBvbkNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgY2xlYXJIaXN0b3J5KCk7XG4gIH07XG4gIGNvbnN0IHF1ZXJ5VVJMID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZUJ1dHRvbkNsaWNrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGhhbmRsZUJ1dHRvbkNsaWNrISgpO1xuICAgIH1cbiAgICBvbk9wZW5Nb2RhbCgpO1xuICB9O1xuXG4gIC8vIGFkZCBjaGFuZ2VIaXN0b3J5J3MgcGFyYW09dmFsdWUgdG8gdGhlIFVSTFxuICBmdW5jdGlvbiB1cGRhdGVIaXN0b3J5KCkge1xuICAgIGlmICghaXNFbXB0eShjaGFuZ2VIaXN0b3J5KSkge1xuICAgICAgZm9yIChjb25zdCBbcGFyYW0sIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjaGFuZ2VIaXN0b3J5KSkge1xuICAgICAgICBxdWVyeVVSTC5zZXQocGFyYW0sIHZhbHVlKTtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxuICAgICAgICAgIHt9LFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtxdWVyeVVSTH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZVxuICBmdW5jdGlvbiBjbGVhckhpc3RvcnkoKSB7XG4gICAgaWYgKCFpc0VtcHR5KGNoYW5nZUhpc3RvcnkpKSB7XG4gICAgICBmb3IgKGNvbnN0IFtwYXJhbV0gb2YgT2JqZWN0LmVudHJpZXMoY2hhbmdlSGlzdG9yeSkpIHtcbiAgICAgICAgcXVlcnlVUkwuZGVsZXRlKHBhcmFtKTtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxuICAgICAgICAgIHt9LFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtxdWVyeVVSTH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHVwZGF0ZUhpc3RvcnkoKTtcbiAgICB9XG4gIH0sIFtvcGVuXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2BrbW9kYWxfX29wZW5lciBrbW9kYWxfX29wZW5lci0tJHtvcGVuZXJDbGFzc31gfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDbGljaygpfVxuICAgICAgPlxuICAgICAgICB7YnV0dG9uTGFiZWx9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxNb2RhbFxuICAgICAgICBjb250YWluZXI9e2NvbnRhaW5lclJlZi5jdXJyZW50fVxuICAgICAgICBjZW50ZXJcbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgb25DbG9zZT17b25DbG9zZU1vZGFsfVxuICAgICAgICBjbGFzc05hbWVzPXt7XG4gICAgICAgICAgb3ZlcmxheTogJ2ttb2RhbF9fb3ZlcmxheScsXG4gICAgICAgICAgbW9kYWw6IGBrbW9kYWwga21vZGFsLS10eXBlLSR7dHlwZX1gLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L01vZGFsPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgS2FuZG9Nb2RhbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQUNBQSxPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBRUFBLE9BQUE7QUFBdUIsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixx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
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX3JlYWN0UmVzcG9uc2l2ZU1vZGFsIiwiX3VzZVF1ZXJ5VVJMIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiS2FuZG9Nb2RhbCIsIl9yZWYiLCJfZG9jdW1lbnQkZG9jdW1lbnRFbGUiLCJfcmVmJGlzT3BlbiIsImlzT3BlbiIsImJ1dHRvbkxhYmVsIiwiX3JlZiRjaGFuZ2VIaXN0b3J5IiwiY2hhbmdlSGlzdG9yeSIsImNoaWxkcmVuIiwidHlwZSIsIm9wZW5lckNsYXNzIiwiaGFuZGxlQnV0dG9uQ2xpY2siLCJvbkNsb3NlIiwiX3JlZiRoaWRlT3BlbmVyIiwiaGlkZU9wZW5lciIsImRpciIsImNvbnRhaW5lclJlZiIsIlJlYWN0IiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwib3BlbiIsInNldE9wZW4iLCJ1c2VFZmZlY3QiLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImNsZWFySGlzdG9yeSIsInF1ZXJ5VVJMIiwidXNlUXVlcnlVUkwiLCJoYW5kbGVDbGljayIsInVuZGVmaW5lZCIsInVwZGF0ZUhpc3RvcnkiLCJpc0VtcHR5IiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwibGVuZ3RoIiwiX09iamVjdCRlbnRyaWVzJF9pIiwicGFyYW0iLCJ2YWx1ZSIsIndpbmRvdyIsImhpc3RvcnkiLCJyZXBsYWNlU3RhdGUiLCJjb25jYXQiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwiX2kyIiwiX09iamVjdCRlbnRyaWVzMiIsIl9PYmplY3QkZW50cmllczIkX2kiLCJkZWxldGUiLCJyZXNvbHZlZERpciIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiaXNSdGwiLCJtb2RhbFN0eWxlcyIsImNsb3NlQnV0dG9uIiwibGVmdCIsInJpZ2h0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIk1vZGFsIiwiY29udGFpbmVyIiwiY3VycmVudCIsImNlbnRlciIsInN0eWxlcyIsImNsYXNzTmFtZXMiLCJvdmVybGF5IiwibW9kYWwiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9LYW5kb01vZGFsL0thbmRvTW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAncmVhY3QtcmVzcG9uc2l2ZS1tb2RhbCc7XG5pbXBvcnQgJ3JlYWN0LXJlc3BvbnNpdmUtbW9kYWwvc3R5bGVzLmNzcyc7XG5cbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuXG5pbXBvcnQgJy4vc3R5bGVzLnNjc3MnO1xuXG50eXBlIElLYW5kb01vZGFsID0gUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48e1xuICBpc09wZW4/OiBib29sZWFuO1xuICBvcGVuZXJDbGFzcz86IHN0cmluZztcbiAgYnV0dG9uTGFiZWw/OiBzdHJpbmcgfCBSZWFjdEVsZW1lbnQ7XG4gIGNoYW5nZUhpc3Rvcnk/OiBPYmplY3Q7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGhhbmRsZUJ1dHRvbkNsaWNrPzogRnVuY3Rpb247XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIChlLmcuLCBYIGNsaWNrLCBvdmVybGF5IGNsaWNrLCBFU0MpLiAqL1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbiAgLyoqIFdoZW4gdHJ1ZSwgZG8gbm90IHJlbmRlciB0aGUgb3BlbmVyIGJ1dHRvbi9kaXYuIFVzZWZ1bCBmb3IgY29udHJvbGxlZCB1c2FnZS4gKi9cbiAgaGlkZU9wZW5lcj86IGJvb2xlYW47XG4gIC8qKiBGb3JjZSBjb250ZW50IGRpcmVjdGlvbiBmb3IgdGhlIG1vZGFsIChhbHNvIHVzZWQgdG8gcG9zaXRpb24gdGhlIGNsb3NlIGJ1dHRvbikuICovXG4gIGRpcj86ICdydGwnIHwgJ2x0cic7XG59PjtcblxuLyogV3JhcHBlciBhcm91bmQgTW9kYWwsXG4gICBkb2NzOiBodHRwczovL3JlYWN0LXJlc3BvbnNpdmUtbW9kYWwubGVvcHJhZGVsLmNvbS9cbiovXG5jb25zdCBLYW5kb01vZGFsOiBSZWFjdC5GQzxJS2FuZG9Nb2RhbD4gPSAoe1xuICBpc09wZW4gPSBmYWxzZSxcbiAgYnV0dG9uTGFiZWwsXG4gIGNoYW5nZUhpc3RvcnkgPSB7fSxcbiAgY2hpbGRyZW4sXG4gIHR5cGUsXG4gIG9wZW5lckNsYXNzLFxuICBoYW5kbGVCdXR0b25DbGljayxcbiAgb25DbG9zZSxcbiAgaGlkZU9wZW5lciA9IGZhbHNlLFxuICBkaXIsXG59KSA9PiB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoaXNPcGVuKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRPcGVuKGlzT3Blbik7XG4gIH0sIFtpc09wZW5dKTtcbiAgY29uc3Qgb25PcGVuTW9kYWwgPSAoKSA9PiBzZXRPcGVuKHRydWUpO1xuICBjb25zdCBvbkNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgY2xlYXJIaXN0b3J5KCk7XG4gICAgaWYgKG9uQ2xvc2UpIG9uQ2xvc2UoKTtcbiAgfTtcbiAgY29uc3QgcXVlcnlVUkwgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBpZiAoaGFuZGxlQnV0dG9uQ2xpY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGFuZGxlQnV0dG9uQ2xpY2shKCk7XG4gICAgfVxuICAgIG9uT3Blbk1vZGFsKCk7XG4gIH07XG5cbiAgLy8gYWRkIGNoYW5nZUhpc3RvcnkncyBwYXJhbT12YWx1ZSB0byB0aGUgVVJMXG4gIGZ1bmN0aW9uIHVwZGF0ZUhpc3RvcnkoKSB7XG4gICAgaWYgKCFpc0VtcHR5KGNoYW5nZUhpc3RvcnkpKSB7XG4gICAgICBmb3IgKGNvbnN0IFtwYXJhbSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNoYW5nZUhpc3RvcnkpKSB7XG4gICAgICAgIHF1ZXJ5VVJMLnNldChwYXJhbSwgdmFsdWUpO1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXG4gICAgICAgICAge30sXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfT8ke3F1ZXJ5VVJMfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlXG4gIGZ1bmN0aW9uIGNsZWFySGlzdG9yeSgpIHtcbiAgICBpZiAoIWlzRW1wdHkoY2hhbmdlSGlzdG9yeSkpIHtcbiAgICAgIGZvciAoY29uc3QgW3BhcmFtXSBvZiBPYmplY3QuZW50cmllcyhjaGFuZ2VIaXN0b3J5KSkge1xuICAgICAgICBxdWVyeVVSTC5kZWxldGUocGFyYW0pO1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXG4gICAgICAgICAge30sXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfT8ke3F1ZXJ5VVJMfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3Blbikge1xuICAgICAgdXBkYXRlSGlzdG9yeSgpO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcblxuICBjb25zdCByZXNvbHZlZERpcjogJ3J0bCcgfCAnbHRyJyA9XG4gICAgZGlyIHx8XG4gICAgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Py5kaXIgPT09ICdydGwnXG4gICAgICA/ICdydGwnXG4gICAgICA6ICdsdHInKTtcblxuICBjb25zdCBpc1J0bCA9IHJlc29sdmVkRGlyID09PSAncnRsJztcblxuICBjb25zdCBtb2RhbFN0eWxlcyA9IGlzUnRsXG4gICAgPyB7XG4gICAgICAgIGNsb3NlQnV0dG9uOiB7XG4gICAgICAgICAgbGVmdDogJzE0cHgnLFxuICAgICAgICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgeyFoaWRlT3BlbmVyICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17YGttb2RhbF9fb3BlbmVyIGttb2RhbF9fb3BlbmVyLS0ke29wZW5lckNsYXNzfWB9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQ2xpY2soKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtidXR0b25MYWJlbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPE1vZGFsXG4gICAgICAgIGNvbnRhaW5lcj17Y29udGFpbmVyUmVmLmN1cnJlbnR9XG4gICAgICAgIGNlbnRlclxuICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICBvbkNsb3NlPXtvbkNsb3NlTW9kYWx9XG4gICAgICAgIHN0eWxlcz17bW9kYWxTdHlsZXN9XG4gICAgICAgIGNsYXNzTmFtZXM9e3tcbiAgICAgICAgICBvdmVybGF5OiAna21vZGFsX19vdmVybGF5JyxcbiAgICAgICAgICBtb2RhbDogYGttb2RhbCBrbW9kYWwtLXR5cGUtJHt0eXBlfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgZGlyPXtyZXNvbHZlZERpcn0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9Nb2RhbD5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEthbmRvTW9kYWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFDQUEsT0FBQTtBQUVBLElBQUFHLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUVBQSxPQUFBO0FBQXVCLFNBQUFLLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBUCx3QkFBQVcsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFB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
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
+ var _i18next = _interopRequireDefault(require("i18next"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var SeasonalInsights = function SeasonalInsights(_ref) {
17
+ var _data$insight_info2, _data$insight_info3;
18
+ var apiEndpoint = _ref.apiEndpoint,
19
+ dataProp = _ref.data,
20
+ className = _ref.className,
21
+ onLoaded = _ref.onLoaded;
22
+ var _useState = (0, _react.useState)(dataProp !== null && dataProp !== void 0 ? dataProp : null),
23
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
24
+ data = _useState2[0],
25
+ setData = _useState2[1];
26
+
27
+ // If parent provides data, render it and skip fetching.
28
+ (0, _react.useEffect)(function () {
29
+ if (typeof dataProp === 'undefined') return;
30
+ setData(dataProp !== null && dataProp !== void 0 ? dataProp : null);
31
+ }, [dataProp]);
32
+ var risk = (0, _react.useMemo)(function () {
33
+ var _data$insight_info;
34
+ var risks = data === null || data === void 0 ? void 0 : (_data$insight_info = data.insight_info) === null || _data$insight_info === void 0 ? void 0 : _data$insight_info.risks;
35
+ if (!risks) return null;
36
+ var lang = (data === null || data === void 0 ? void 0 : data.locale) || 'en';
37
+ return risks[lang] || null;
38
+ }, [data]);
39
+ var summary = (risk === null || risk === void 0 ? void 0 : risk.risk_summary) || '';
40
+ var detailed = (risk === null || risk === void 0 ? void 0 : risk.detailed_risks) || [];
41
+ var start = (data === null || data === void 0 ? void 0 : (_data$insight_info2 = data.insight_info) === null || _data$insight_info2 === void 0 ? void 0 : _data$insight_info2.start_time) || (data === null || data === void 0 ? void 0 : data.start_time);
42
+ var end = (data === null || data === void 0 ? void 0 : (_data$insight_info3 = data.insight_info) === null || _data$insight_info3 === void 0 ? void 0 : _data$insight_info3.end_time) || (data === null || data === void 0 ? void 0 : data.end_time);
43
+ var isHebrew = (0, _react.useMemo)(function () {
44
+ var lang = ((data === null || data === void 0 ? void 0 : data.locale) || _i18next.default.language || 'en').toLowerCase();
45
+ return lang.startsWith('he');
46
+ }, [data === null || data === void 0 ? void 0 : data.locale]);
47
+ (0, _react.useEffect)(function () {
48
+ // If parent provides data, do not fetch.
49
+ if (typeof dataProp !== 'undefined') return;
50
+ if (!apiEndpoint) return;
51
+ var controller = new AbortController();
52
+ fetch(apiEndpoint, {
53
+ signal: controller.signal
54
+ }).then( /*#__PURE__*/function () {
55
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
56
+ return _regenerator.default.wrap(function _callee$(_context) {
57
+ while (1) {
58
+ switch (_context.prev = _context.next) {
59
+ case 0:
60
+ if (res.ok) {
61
+ _context.next = 2;
62
+ break;
63
+ }
64
+ throw new Error("Request failed (".concat(res.status, ")"));
65
+ case 2:
66
+ _context.next = 4;
67
+ return res.json();
68
+ case 4:
69
+ return _context.abrupt("return", _context.sent);
70
+ case 5:
71
+ case "end":
72
+ return _context.stop();
73
+ }
74
+ }
75
+ }, _callee);
76
+ }));
77
+ return function (_x) {
78
+ return _ref2.apply(this, arguments);
79
+ };
80
+ }()).then(function (payload) {
81
+ setData(payload);
82
+ if (onLoaded) onLoaded(payload);
83
+ }).catch(function (err) {
84
+ if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError') return;
85
+ setData(null);
86
+ });
87
+ return function () {
88
+ return controller.abort();
89
+ };
90
+ }, [apiEndpoint, dataProp, onLoaded]);
91
+ return /*#__PURE__*/_react.default.createElement("div", {
92
+ className: className,
93
+ dir: isHebrew ? 'rtl' : 'ltr',
94
+ style: {
95
+ padding: 12,
96
+ display: 'flex',
97
+ flexDirection: 'column',
98
+ gap: 12,
99
+ textAlign: isHebrew ? 'right' : 'left'
100
+ }
101
+ }, /*#__PURE__*/_react.default.createElement("div", {
102
+ style: {
103
+ display: 'flex',
104
+ flexDirection: 'column',
105
+ gap: 4
106
+ }
107
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
+ style: {
109
+ fontWeight: 600
110
+ }
111
+ }, summary), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", null, start), " - ", /*#__PURE__*/_react.default.createElement("span", null, end))), /*#__PURE__*/_react.default.createElement("div", {
112
+ style: {
113
+ display: 'flex',
114
+ flexDirection: 'column',
115
+ gap: 10
116
+ }
117
+ }, detailed.map(function (r, idx) {
118
+ var _r$expected_pollution;
119
+ return /*#__PURE__*/_react.default.createElement("div", {
120
+ key: idx,
121
+ style: {
122
+ padding: 12,
123
+ border: '1px solid rgba(0,0,0,0.1)',
124
+ borderRadius: 8,
125
+ background: 'rgba(0,0,0,0.02)'
126
+ }
127
+ }, /*#__PURE__*/_react.default.createElement("div", {
128
+ style: {
129
+ fontWeight: 700
130
+ }
131
+ }, r.siu_name), r.sector_code ? /*#__PURE__*/_react.default.createElement("div", {
132
+ style: {
133
+ marginTop: 2,
134
+ opacity: 0.8,
135
+ fontSize: 12
136
+ }
137
+ }, r.sector) : null, ((_r$expected_pollution = r.expected_pollution_types) === null || _r$expected_pollution === void 0 ? void 0 : _r$expected_pollution.length) ? /*#__PURE__*/_react.default.createElement("div", {
138
+ style: {
139
+ marginTop: 8
140
+ }
141
+ }, r.expected_pollution_types.join(', ')) : null, r.seasonal_or_location_factors ? /*#__PURE__*/_react.default.createElement("div", {
142
+ style: {
143
+ marginTop: 8
144
+ }
145
+ }, r.seasonal_or_location_factors) : null);
146
+ })));
147
+ };
148
+ var _default = SeasonalInsights;
149
+ exports.default = _default;
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4bmV4dCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlNlYXNvbmFsSW5zaWdodHMiLCJfcmVmIiwiX2RhdGEkaW5zaWdodF9pbmZvMiIsIl9kYXRhJGluc2lnaHRfaW5mbzMiLCJhcGlFbmRwb2ludCIsImRhdGFQcm9wIiwiZGF0YSIsImNsYXNzTmFtZSIsIm9uTG9hZGVkIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0RGF0YSIsInVzZUVmZmVjdCIsInJpc2siLCJ1c2VNZW1vIiwiX2RhdGEkaW5zaWdodF9pbmZvIiwicmlza3MiLCJpbnNpZ2h0X2luZm8iLCJsYW5nIiwibG9jYWxlIiwic3VtbWFyeSIsInJpc2tfc3VtbWFyeSIsImRldGFpbGVkIiwiZGV0YWlsZWRfcmlza3MiLCJzdGFydCIsInN0YXJ0X3RpbWUiLCJlbmQiLCJlbmRfdGltZSIsImlzSGVicmV3IiwiaTE4bmV4dCIsImxhbmd1YWdlIiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsImZldGNoIiwic2lnbmFsIiwidGhlbiIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXMiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwib2siLCJFcnJvciIsImNvbmNhdCIsInN0YXR1cyIsImpzb24iLCJhYnJ1cHQiLCJzZW50Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJwYXlsb2FkIiwiY2F0Y2giLCJlcnIiLCJuYW1lIiwiYWJvcnQiLCJjcmVhdGVFbGVtZW50IiwiZGlyIiwic3R5bGUiLCJwYWRkaW5nIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJnYXAiLCJ0ZXh0QWxpZ24iLCJmb250V2VpZ2h0IiwibWFwIiwiciIsImlkeCIsIl9yJGV4cGVjdGVkX3BvbGx1dGlvbiIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImJhY2tncm91bmQiLCJzaXVfbmFtZSIsInNlY3Rvcl9jb2RlIiwibWFyZ2luVG9wIiwib3BhY2l0eSIsImZvbnRTaXplIiwic2VjdG9yIiwiZXhwZWN0ZWRfcG9sbHV0aW9uX3R5cGVzIiwibGVuZ3RoIiwiam9pbiIsInNlYXNvbmFsX29yX2xvY2F0aW9uX2ZhY3RvcnMiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TZWFzb25hbEluc2lnaHRzL1NlYXNvbmFsSW5zaWdodHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpMThuZXh0IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbnR5cGUgRGV0YWlsZWRSaXNrID0ge1xuICBzZWN0b3I/OiBzdHJpbmc7XG4gIHNpdV9uYW1lPzogc3RyaW5nO1xuICBzZWN0b3JfY29kZT86IHN0cmluZztcbiAgZXhwZWN0ZWRfcG9sbHV0aW9uX3R5cGVzPzogc3RyaW5nW107XG4gIHNlYXNvbmFsX29yX2xvY2F0aW9uX2ZhY3RvcnM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTZWFzb25hbEluc2lnaHRSZXNwb25zZSA9IHtcbiAgbG9jYWxlOiBzdHJpbmc7XG4gIGlkPzogbnVtYmVyO1xuICBzdGFydF90aW1lPzogc3RyaW5nO1xuICBlbmRfdGltZT86IHN0cmluZztcbiAgaW5zaWdodF9pbmZvPzoge1xuICAgIHJpc2tzPzoge1xuICAgICAgW2xhbmc6IHN0cmluZ106IHtcbiAgICAgICAgcmlza19zdW1tYXJ5Pzogc3RyaW5nO1xuICAgICAgICBkZXRhaWxlZF9yaXNrcz86IERldGFpbGVkUmlza1tdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHN0YXJ0X3RpbWU/OiBzdHJpbmc7XG4gICAgZW5kX3RpbWU/OiBzdHJpbmc7XG4gICAgb3ZlcmFsbF9jb25maWRlbmNlPzogc3RyaW5nO1xuICAgIHdhdGVyX2F1dGhvcml0eV9pZD86IHN0cmluZyB8IG51bWJlcjtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vhc29uYWxJbnNpZ2h0c1Byb3BzIHtcbiAgLyoqIElmIHByb3ZpZGVkLCB0aGUgY29tcG9uZW50IHdpbGwgZmV0Y2ggdGhlIGluc2lnaHQgcGF5bG9hZCBmcm9tIHRoaXMgZW5kcG9pbnQuICovXG4gIGFwaUVuZHBvaW50Pzogc3RyaW5nO1xuICAvKiogSWYgcHJvdmlkZWQsIHRoZSBjb21wb25lbnQgd2lsbCByZW5kZXIgdXNpbmcgdGhpcyBkYXRhIGFuZCB3aWxsIE5PVCBmZXRjaC4gKi9cbiAgZGF0YT86IFNlYXNvbmFsSW5zaWdodFJlc3BvbnNlIHwgbnVsbDtcbiAgLyoqIE9wdGlvbmFsIG92ZXJyaWRlOiAnaGUnLCAnZW4nLCBldGMuIERlZmF1bHRzIHRvIGF1dG8tZGV0ZWN0IGJhc2VkIG9uIGRvY3VtZW50IGRpcmVjdGlvbiAvIGJyb3dzZXIgbGFuZ3VhZ2UuICovXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgY2xhc3NOYW1lIGZvciBvdXRlciB3cmFwcGVyICovXG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGNhbGxiYWNrIHRvIHJlY2VpdmUgcmF3IHBheWxvYWQgKG9ubHkgd2hlbiBmZXRjaGluZykuICovXG4gIG9uTG9hZGVkPzogKGRhdGE6IFNlYXNvbmFsSW5zaWdodFJlc3BvbnNlKSA9PiB2b2lkO1xufVxuXG5jb25zdCBTZWFzb25hbEluc2lnaHRzOiBSZWFjdC5GQzxTZWFzb25hbEluc2lnaHRzUHJvcHM+ID0gKHtcbiAgYXBpRW5kcG9pbnQsXG4gIGRhdGE6IGRhdGFQcm9wLFxuICBjbGFzc05hbWUsXG4gIG9uTG9hZGVkLFxufSkgPT4ge1xuICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSB1c2VTdGF0ZTxTZWFzb25hbEluc2lnaHRSZXNwb25zZSB8IG51bGw+KFxuICAgIGRhdGFQcm9wID8/IG51bGwsXG4gICk7XG5cbiAgLy8gSWYgcGFyZW50IHByb3ZpZGVzIGRhdGEsIHJlbmRlciBpdCBhbmQgc2tpcCBmZXRjaGluZy5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRhdGFQcm9wID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgIHNldERhdGEoZGF0YVByb3AgPz8gbnVsbCk7XG4gIH0sIFtkYXRhUHJvcF0pO1xuXG4gIGNvbnN0IHJpc2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCByaXNrcyA9IGRhdGE/Lmluc2lnaHRfaW5mbz8ucmlza3M7XG4gICAgaWYgKCFyaXNrcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbGFuZyA9IGRhdGE/LmxvY2FsZSB8fCAnZW4nO1xuICAgIHJldHVybiByaXNrc1tsYW5nXSB8fCBudWxsO1xuICB9LCBbZGF0YV0pO1xuXG4gIGNvbnN0IHN1bW1hcnkgPSByaXNrPy5yaXNrX3N1bW1hcnkgfHwgJyc7XG4gIGNvbnN0IGRldGFpbGVkID0gcmlzaz8uZGV0YWlsZWRfcmlza3MgfHwgW107XG5cbiAgY29uc3Qgc3RhcnQgPSBkYXRhPy5pbnNpZ2h0X2luZm8/LnN0YXJ0X3RpbWUgfHwgZGF0YT8uc3RhcnRfdGltZTtcbiAgY29uc3QgZW5kID0gZGF0YT8uaW5zaWdodF9pbmZvPy5lbmRfdGltZSB8fCBkYXRhPy5lbmRfdGltZTtcblxuICBjb25zdCBpc0hlYnJldyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGxhbmcgPSAoZGF0YT8ubG9jYWxlIHx8IGkxOG5leHQubGFuZ3VhZ2UgfHwgJ2VuJykudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbGFuZy5zdGFydHNXaXRoKCdoZScpO1xuICB9LCBbZGF0YT8ubG9jYWxlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBJZiBwYXJlbnQgcHJvdmlkZXMgZGF0YSwgZG8gbm90IGZldGNoLlxuICAgIGlmICh0eXBlb2YgZGF0YVByb3AgIT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgaWYgKCFhcGlFbmRwb2ludCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIGZldGNoKGFwaUVuZHBvaW50LCB7IHNpZ25hbDogY29udHJvbGxlci5zaWduYWwgfSlcbiAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkICgke3Jlcy5zdGF0dXN9KWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgU2Vhc29uYWxJbnNpZ2h0UmVzcG9uc2U7XG4gICAgICB9KVxuICAgICAgLnRoZW4oKHBheWxvYWQpID0+IHtcbiAgICAgICAgc2V0RGF0YShwYXlsb2FkKTtcbiAgICAgICAgaWYgKG9uTG9hZGVkKSBvbkxvYWRlZChwYXlsb2FkKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyPy5uYW1lID09PSAnQWJvcnRFcnJvcicpIHJldHVybjtcbiAgICAgICAgc2V0RGF0YShudWxsKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfSwgW2FwaUVuZHBvaW50LCBkYXRhUHJvcCwgb25Mb2FkZWRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgZGlyPXtpc0hlYnJldyA/ICdydGwnIDogJ2x0cid9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBwYWRkaW5nOiAxMixcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgZ2FwOiAxMixcbiAgICAgICAgdGV4dEFsaWduOiBpc0hlYnJldyA/ICdyaWdodCcgOiAnbGVmdCcsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA0IH19PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDYwMCB9fT57c3VtbWFyeX08L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3Bhbj57c3RhcnR9PC9zcGFuPiAtIDxzcGFuPntlbmR9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogMTAgfX0+XG4gICAgICAgIHtkZXRhaWxlZC5tYXAoKHIsIGlkeCkgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGtleT17aWR4fVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcGFkZGluZzogMTIsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSknLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDgsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDAsMCwwLDAuMDIpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250V2VpZ2h0OiA3MDAgfX0+e3Iuc2l1X25hbWV9PC9kaXY+XG5cbiAgICAgICAgICAgIHtyLnNlY3Rvcl9jb2RlID8gKFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpblRvcDogMiwgb3BhY2l0eTogMC44LCBmb250U2l6ZTogMTIgfX0+XG4gICAgICAgICAgICAgICAge3Iuc2VjdG9yfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgICB7ci5leHBlY3RlZF9wb2xsdXRpb25fdHlwZXM/Lmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5Ub3A6IDggfX0+XG4gICAgICAgICAgICAgICAge3IuZXhwZWN0ZWRfcG9sbHV0aW9uX3R5cGVzLmpvaW4oJywgJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICAgIHtyLnNlYXNvbmFsX29yX2xvY2F0aW9uX2ZhY3RvcnMgPyAoXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luVG9wOiA4IH19PlxuICAgICAgICAgICAgICAgIHtyLnNlYXNvbmFsX29yX2xvY2F0aW9uX2ZhY3RvcnN9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWFzb25hbEluc2lnaHRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtB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
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _KandoModal = _interopRequireDefault(require("../KandoModal"));
15
+ var _SeasonalInsights = _interopRequireDefault(require("../SeasonalInsights/SeasonalInsights"));
16
+ var _i18next = _interopRequireDefault(require("i18next"));
17
+ var _insightsDismissalStorage = require("./insightsDismissalStorage");
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ var INSIGHT_TYPE = 'seasonal_insight';
21
+ var TopBanner = function TopBanner(_ref) {
22
+ var _ref$backgroundColor = _ref.backgroundColor,
23
+ backgroundColor = _ref$backgroundColor === void 0 ? 'rgb(217, 234, 255)' : _ref$backgroundColor,
24
+ _ref$text = _ref.text,
25
+ text = _ref$text === void 0 ? '' : _ref$text,
26
+ onVisibilityChange = _ref.onVisibilityChange,
27
+ apiEndpoint = _ref.apiEndpoint;
28
+ var _useState = (0, _react.useState)(true),
29
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
+ visible = _useState2[0],
31
+ setVisible = _useState2[1];
32
+ var _useState3 = (0, _react.useState)(null),
33
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
34
+ headerText = _useState4[0],
35
+ setHeaderText = _useState4[1];
36
+ var _useState5 = (0, _react.useState)(''),
37
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
38
+ titleText = _useState6[0],
39
+ setTitleText = _useState6[1];
40
+ var _useState7 = (0, _react.useState)(''),
41
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
42
+ learnMoreText = _useState8[0],
43
+ setLearnMoreText = _useState8[1];
44
+ var _useState9 = (0, _react.useState)(false),
45
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
46
+ showModal = _useState10[0],
47
+ setShowModal = _useState10[1];
48
+ var _useState11 = (0, _react.useState)(null),
49
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
50
+ insightData = _useState12[0],
51
+ setInsightData = _useState12[1];
52
+ var bannerHeight = 30; // px
53
+ var dir = _i18next.default.dir();
54
+
55
+ // On mount or when insight id changes, check localStorage for dismissal
56
+ (0, _react.useEffect)(function () {
57
+ // If we have insight data with an id, check if it was dismissed
58
+ if ((insightData === null || insightData === void 0 ? void 0 : insightData.id) !== undefined) {
59
+ try {
60
+ var record = (0, _insightsDismissalStorage.getDismissal)(INSIGHT_TYPE);
61
+ var dismissed = (record === null || record === void 0 ? void 0 : record.lastDismissedId) === String(insightData.id);
62
+ setVisible(!dismissed);
63
+ if (onVisibilityChange) onVisibilityChange(!dismissed);
64
+ } catch (_unused) {
65
+ setVisible(true);
66
+ if (onVisibilityChange) onVisibilityChange(true);
67
+ }
68
+ } else if (insightData === null) {
69
+ // No insight data - hide banner if using API, show if using static text prop
70
+ if (apiEndpoint) {
71
+ // API endpoint exists but no data returned - hide banner
72
+ setVisible(false);
73
+ if (onVisibilityChange) onVisibilityChange(false);
74
+ } else {
75
+ // No API endpoint - show banner if text is provided
76
+ setVisible(!!text);
77
+ if (onVisibilityChange) onVisibilityChange(!!text);
78
+ }
79
+ }
80
+ }, [insightData === null || insightData === void 0 ? void 0 : insightData.id, insightData, apiEndpoint, text, onVisibilityChange]);
81
+
82
+ // Fetch data from API if endpoint is provided, robustly
83
+ (0, _react.useEffect)(function () {
84
+ if (!apiEndpoint) return;
85
+ var controller = new AbortController();
86
+ fetch(apiEndpoint, {
87
+ signal: controller.signal
88
+ }).then( /*#__PURE__*/function () {
89
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
90
+ return _regenerator.default.wrap(function _callee$(_context) {
91
+ while (1) {
92
+ switch (_context.prev = _context.next) {
93
+ case 0:
94
+ if (!(res.status === 404)) {
95
+ _context.next = 2;
96
+ break;
97
+ }
98
+ return _context.abrupt("return", {
99
+ error: 'not_found'
100
+ });
101
+ case 2:
102
+ if (res.ok) {
103
+ _context.next = 4;
104
+ break;
105
+ }
106
+ throw new Error("Request failed (".concat(res.status, ")"));
107
+ case 4:
108
+ _context.next = 6;
109
+ return res.json();
110
+ case 6:
111
+ return _context.abrupt("return", _context.sent);
112
+ case 7:
113
+ case "end":
114
+ return _context.stop();
115
+ }
116
+ }
117
+ }, _callee);
118
+ }));
119
+ return function (_x) {
120
+ return _ref2.apply(this, arguments);
121
+ };
122
+ }()).then(function (data) {
123
+ // When the API says not_found, do not show the banner.
124
+ if ((data === null || data === void 0 ? void 0 : data.error) === 'not_found') {
125
+ setInsightData(null);
126
+ setHeaderText(null);
127
+ setTitleText('');
128
+ setLearnMoreText('');
129
+ setVisible(false);
130
+ return;
131
+ }
132
+ setInsightData(data);
133
+ setTitleText(String(_i18next.default.t('seasonal_insights.title')));
134
+ setLearnMoreText(String(_i18next.default.t('seasonal_insights.learn_more')));
135
+ }).catch(function (err) {
136
+ // On fetch error, hide the banner (no data to show)
137
+ if ((err === null || err === void 0 ? void 0 : err.name) !== 'AbortError') {
138
+ setInsightData(null);
139
+ setHeaderText(null);
140
+ setTitleText('');
141
+ setLearnMoreText('');
142
+ setVisible(false);
143
+ }
144
+ });
145
+ return function () {
146
+ return controller.abort();
147
+ };
148
+ }, [apiEndpoint, text]);
149
+
150
+ // Notify parent on visibility change
151
+ (0, _react.useEffect)(function () {
152
+ if (onVisibilityChange) onVisibilityChange(visible);
153
+ }, [visible]);
154
+
155
+ // When dismissed, persist in localStorage
156
+ var handleDismiss = function handleDismiss() {
157
+ setVisible(false);
158
+ if ((insightData === null || insightData === void 0 ? void 0 : insightData.id) === undefined) return;
159
+ try {
160
+ (0, _insightsDismissalStorage.setDismissal)(INSIGHT_TYPE, String(insightData.id));
161
+ } catch (_unused2) {
162
+ // ignore storage errors
163
+ }
164
+ };
165
+ var openModal = function openModal() {
166
+ setShowModal(true);
167
+ };
168
+ var closeModal = function closeModal() {
169
+ setShowModal(false);
170
+ };
171
+ var modal = (0, _react.useMemo)(function () {
172
+ if (!showModal) return null;
173
+ var dir = _i18next.default.dir();
174
+ return /*#__PURE__*/_react.default.createElement(_KandoModal.default, {
175
+ isOpen: showModal,
176
+ onClose: closeModal,
177
+ dir: dir
178
+ }, /*#__PURE__*/_react.default.createElement(_SeasonalInsights.default, {
179
+ data: insightData
180
+ }));
181
+ }, [showModal]);
182
+ var hasContent = apiEndpoint ? titleText && learnMoreText : text || headerText;
183
+ if (!visible || !hasContent) {
184
+ return null;
185
+ }
186
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
187
+ style: {
188
+ width: '100%',
189
+ background: backgroundColor,
190
+ padding: '8px',
191
+ textAlign: 'center',
192
+ position: 'relative',
193
+ boxSizing: 'border-box',
194
+ minHeight: "".concat(bannerHeight, "px"),
195
+ height: "".concat(bannerHeight, "px"),
196
+ display: 'flex',
197
+ alignItems: 'center',
198
+ justifyContent: 'center',
199
+ fontSize: '14px',
200
+ cursor: 'default'
201
+ }
202
+ }, /*#__PURE__*/_react.default.createElement("span", null, apiEndpoint ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
203
+ style: {
204
+ filter: 'drop-shadow(0 0 2px rgba(0, 0, 0, 0.3))',
205
+ fontSize: '16px',
206
+ display: 'inline-block',
207
+ marginRight: '4px'
208
+ }
209
+ }, "\u2728"), titleText, ' ', /*#__PURE__*/_react.default.createElement("span", {
210
+ onClick: openModal,
211
+ style: {
212
+ textDecoration: 'underline',
213
+ cursor: 'pointer'
214
+ }
215
+ }, learnMoreText)) : headerText || text), /*#__PURE__*/_react.default.createElement("button", {
216
+ onClick: handleDismiss,
217
+ style: (0, _objectSpread2.default)((0, _objectSpread2.default)({
218
+ position: 'absolute'
219
+ }, dir === 'rtl' ? {
220
+ left: 10,
221
+ right: 'auto'
222
+ } : {
223
+ right: 10
224
+ }), {}, {
225
+ background: 'transparent',
226
+ border: 'none',
227
+ fontSize: '24px',
228
+ cursor: 'pointer'
229
+ }),
230
+ "aria-label": "Dismiss banner"
231
+ }, "\xD7")), modal);
232
+ };
233
+ var _default = TopBanner;
234
+ exports.default = _default;
235
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfS2FuZG9Nb2RhbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfU2Vhc29uYWxJbnNpZ2h0cyIsIl9pMThuZXh0IiwiX2luc2lnaHRzRGlzbWlzc2FsU3RvcmFnZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiSU5TSUdIVF9UWVBFIiwiVG9wQmFubmVyIiwiX3JlZiIsIl9yZWYkYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwiX3JlZiR0ZXh0IiwidGV4dCIsIm9uVmlzaWJpbGl0eUNoYW5nZSIsImFwaUVuZHBvaW50IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhlYWRlclRleHQiLCJzZXRIZWFkZXJUZXh0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0aXRsZVRleHQiLCJzZXRUaXRsZVRleHQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxlYXJuTW9yZVRleHQiLCJzZXRMZWFybk1vcmVUZXh0IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2hvd01vZGFsIiwic2V0U2hvd01vZGFsIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImluc2lnaHREYXRhIiwic2V0SW5zaWdodERhdGEiLCJiYW5uZXJIZWlnaHQiLCJkaXIiLCJpMThuZXh0IiwidXNlRWZmZWN0IiwiaWQiLCJ1bmRlZmluZWQiLCJyZWNvcmQiLCJnZXREaXNtaXNzYWwiLCJkaXNtaXNzZWQiLCJsYXN0RGlzbWlzc2VkSWQiLCJTdHJpbmciLCJfdW51c2VkIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsImZldGNoIiwic2lnbmFsIiwidGhlbiIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXMiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RhdHVzIiwiYWJydXB0IiwiZXJyb3IiLCJvayIsIkVycm9yIiwiY29uY2F0IiwianNvbiIsInNlbnQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImRhdGEiLCJ0IiwiY2F0Y2giLCJlcnIiLCJuYW1lIiwiYWJvcnQiLCJoYW5kbGVEaXNtaXNzIiwic2V0RGlzbWlzc2FsIiwiX3VudXNlZDIiLCJvcGVuTW9kYWwiLCJjbG9zZU1vZGFsIiwibW9kYWwiLCJ1c2VNZW1vIiwiY3JlYXRlRWxlbWVudCIsImlzT3BlbiIsIm9uQ2xvc2UiLCJoYXNDb250ZW50IiwiRnJhZ21lbnQiLCJzdHlsZSIsIndpZHRoIiwiYmFja2dyb3VuZCIsInBhZGRpbmciLCJ0ZXh0QWxpZ24iLCJwb3NpdGlvbiIsImJveFNpemluZyIsIm1pbkhlaWdodCIsImhlaWdodCIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJmb250U2l6ZSIsImN1cnNvciIsImZpbHRlciIsIm1hcmdpblJpZ2h0Iiwib25DbGljayIsInRleHREZWNvcmF0aW9uIiwiX29iamVjdFNwcmVhZDIiLCJsZWZ0IiwicmlnaHQiLCJib3JkZXIiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Ub3BCYW5uZXIvVG9wQmFubmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBLYW5kb01vZGFsIGZyb20gJy4uL0thbmRvTW9kYWwnO1xuaW1wb3J0IFNlYXNvbmFsSW5zaWdodHMsIHtcbiAgU2Vhc29uYWxJbnNpZ2h0UmVzcG9uc2UsXG59IGZyb20gJy4uL1NlYXNvbmFsSW5zaWdodHMvU2Vhc29uYWxJbnNpZ2h0cyc7XG5pbXBvcnQgaTE4bmV4dCBmcm9tICdpMThuZXh0JztcbmltcG9ydCB7XG4gIGdldERpc21pc3NhbCxcbiAgc2V0RGlzbWlzc2FsLFxuICBJbnNpZ2h0VHlwZSxcbn0gZnJvbSAnLi9pbnNpZ2h0c0Rpc21pc3NhbFN0b3JhZ2UnO1xuXG5pbnRlcmZhY2UgVG9wQmFubmVyUHJvcHMge1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIHRleHQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9uVmlzaWJpbGl0eUNoYW5nZT86ICh2aXNpYmxlOiBib29sZWFuKSA9PiB2b2lkO1xuICBhcGlFbmRwb2ludD86IHN0cmluZzsgLy8gQWRkIHRoaXMgcHJvcCBmb3IgQVBJIGVuZHBvaW50XG59XG5cbmNvbnN0IElOU0lHSFRfVFlQRTogSW5zaWdodFR5cGUgPSAnc2Vhc29uYWxfaW5zaWdodCc7XG5cbmNvbnN0IFRvcEJhbm5lcjogUmVhY3QuRkM8VG9wQmFubmVyUHJvcHM+ID0gKHtcbiAgYmFja2dyb3VuZENvbG9yID0gJ3JnYigyMTcsIDIzNCwgMjU1KScsIC8vICNmNWI3YzUnLFxuICB0ZXh0ID0gJycsXG4gIG9uVmlzaWJpbGl0eUNoYW5nZSxcbiAgYXBpRW5kcG9pbnQsXG59KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbaGVhZGVyVGV4dCwgc2V0SGVhZGVyVGV4dF0gPSB1c2VTdGF0ZTxSZWFjdC5SZWFjdE5vZGU+KG51bGwpO1xuICBjb25zdCBbdGl0bGVUZXh0LCBzZXRUaXRsZVRleHRdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtsZWFybk1vcmVUZXh0LCBzZXRMZWFybk1vcmVUZXh0XSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbc2hvd01vZGFsLCBzZXRTaG93TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaW5zaWdodERhdGEsIHNldEluc2lnaHREYXRhXSA9XG4gICAgdXNlU3RhdGU8U2Vhc29uYWxJbnNpZ2h0UmVzcG9uc2UgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBiYW5uZXJIZWlnaHQgPSAzMDsgLy8gcHhcbiAgY29uc3QgZGlyID0gaTE4bmV4dC5kaXIoKTtcblxuICAvLyBPbiBtb3VudCBvciB3aGVuIGluc2lnaHQgaWQgY2hhbmdlcywgY2hlY2sgbG9jYWxTdG9yYWdlIGZvciBkaXNtaXNzYWxcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBJZiB3ZSBoYXZlIGluc2lnaHQgZGF0YSB3aXRoIGFuIGlkLCBjaGVjayBpZiBpdCB3YXMgZGlzbWlzc2VkXG4gICAgaWYgKGluc2lnaHREYXRhPy5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWNvcmQgPSBnZXREaXNtaXNzYWwoSU5TSUdIVF9UWVBFKTtcbiAgICAgICAgY29uc3QgZGlzbWlzc2VkID0gcmVjb3JkPy5sYXN0RGlzbWlzc2VkSWQgPT09IFN0cmluZyhpbnNpZ2h0RGF0YS5pZCk7XG4gICAgICAgIHNldFZpc2libGUoIWRpc21pc3NlZCk7XG4gICAgICAgIGlmIChvblZpc2liaWxpdHlDaGFuZ2UpIG9uVmlzaWJpbGl0eUNoYW5nZSghZGlzbWlzc2VkKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBzZXRWaXNpYmxlKHRydWUpO1xuICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlKSBvblZpc2liaWxpdHlDaGFuZ2UodHJ1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbnNpZ2h0RGF0YSA9PT0gbnVsbCkge1xuICAgICAgLy8gTm8gaW5zaWdodCBkYXRhIC0gaGlkZSBiYW5uZXIgaWYgdXNpbmcgQVBJLCBzaG93IGlmIHVzaW5nIHN0YXRpYyB0ZXh0IHByb3BcbiAgICAgIGlmIChhcGlFbmRwb2ludCkge1xuICAgICAgICAvLyBBUEkgZW5kcG9pbnQgZXhpc3RzIGJ1dCBubyBkYXRhIHJldHVybmVkIC0gaGlkZSBiYW5uZXJcbiAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIGlmIChvblZpc2liaWxpdHlDaGFuZ2UpIG9uVmlzaWJpbGl0eUNoYW5nZShmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyBBUEkgZW5kcG9pbnQgLSBzaG93IGJhbm5lciBpZiB0ZXh0IGlzIHByb3ZpZGVkXG4gICAgICAgIHNldFZpc2libGUoISF0ZXh0KTtcbiAgICAgICAgaWYgKG9uVmlzaWJpbGl0eUNoYW5nZSkgb25WaXNpYmlsaXR5Q2hhbmdlKCEhdGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbaW5zaWdodERhdGE/LmlkLCBpbnNpZ2h0RGF0YSwgYXBpRW5kcG9pbnQsIHRleHQsIG9uVmlzaWJpbGl0eUNoYW5nZV0pO1xuXG4gIC8vIEZldGNoIGRhdGEgZnJvbSBBUEkgaWYgZW5kcG9pbnQgaXMgcHJvdmlkZWQsIHJvYnVzdGx5XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhcGlFbmRwb2ludCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIGZldGNoKGFwaUVuZHBvaW50LCB7IHNpZ25hbDogY29udHJvbGxlci5zaWduYWwgfSlcbiAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIC8vIEFQSSBleHBsaWNpdGx5IHNheXMgdGhlcmUgaXMgbm8gc2Vhc29uYWwgaW5zaWdodC5cbiAgICAgICAgICByZXR1cm4geyBlcnJvcjogJ25vdF9mb3VuZCcgfSBhcyB1bmtub3duIGFzIFNlYXNvbmFsSW5zaWdodFJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCAoJHtyZXMuc3RhdHVzfSlgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIFNlYXNvbmFsSW5zaWdodFJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdGhlIEFQSSBzYXlzIG5vdF9mb3VuZCwgZG8gbm90IHNob3cgdGhlIGJhbm5lci5cbiAgICAgICAgaWYgKChkYXRhIGFzIGFueSk/LmVycm9yID09PSAnbm90X2ZvdW5kJykge1xuICAgICAgICAgIHNldEluc2lnaHREYXRhKG51bGwpO1xuICAgICAgICAgIHNldEhlYWRlclRleHQobnVsbCk7XG4gICAgICAgICAgc2V0VGl0bGVUZXh0KCcnKTtcbiAgICAgICAgICBzZXRMZWFybk1vcmVUZXh0KCcnKTtcbiAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0SW5zaWdodERhdGEoZGF0YSk7XG5cbiAgICAgICAgc2V0VGl0bGVUZXh0KFN0cmluZyhpMThuZXh0LnQoJ3NlYXNvbmFsX2luc2lnaHRzLnRpdGxlJykpKTtcbiAgICAgICAgc2V0TGVhcm5Nb3JlVGV4dChTdHJpbmcoaTE4bmV4dC50KCdzZWFzb25hbF9pbnNpZ2h0cy5sZWFybl9tb3JlJykpKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAvLyBPbiBmZXRjaCBlcnJvciwgaGlkZSB0aGUgYmFubmVyIChubyBkYXRhIHRvIHNob3cpXG4gICAgICAgIGlmIChlcnI/Lm5hbWUgIT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICAgIHNldEluc2lnaHREYXRhKG51bGwpO1xuICAgICAgICAgIHNldEhlYWRlclRleHQobnVsbCk7XG4gICAgICAgICAgc2V0VGl0bGVUZXh0KCcnKTtcbiAgICAgICAgICBzZXRMZWFybk1vcmVUZXh0KCcnKTtcbiAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4gY29udHJvbGxlci5hYm9ydCgpO1xuICB9LCBbYXBpRW5kcG9pbnQsIHRleHRdKTtcblxuICAvLyBOb3RpZnkgcGFyZW50IG9uIHZpc2liaWxpdHkgY2hhbmdlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uVmlzaWJpbGl0eUNoYW5nZSkgb25WaXNpYmlsaXR5Q2hhbmdlKHZpc2libGUpO1xuICB9LCBbdmlzaWJsZV0pO1xuXG4gIC8vIFdoZW4gZGlzbWlzc2VkLCBwZXJzaXN0IGluIGxvY2FsU3RvcmFnZVxuICBjb25zdCBoYW5kbGVEaXNtaXNzID0gKCkgPT4ge1xuICAgIHNldFZpc2libGUoZmFsc2UpO1xuICAgIGlmIChpbnNpZ2h0RGF0YT8uaWQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldERpc21pc3NhbChJTlNJR0hUX1RZUEUsIFN0cmluZyhpbnNpZ2h0RGF0YS5pZCkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWdub3JlIHN0b3JhZ2UgZXJyb3JzXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9wZW5Nb2RhbCA9ICgpID0+IHtcbiAgICBzZXRTaG93TW9kYWwodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRTaG93TW9kYWwoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IG1vZGFsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzaG93TW9kYWwpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGRpciA9IGkxOG5leHQuZGlyKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxLYW5kb01vZGFsIGlzT3Blbj17c2hvd01vZGFsfSBvbkNsb3NlPXtjbG9zZU1vZGFsfSBkaXI9e2Rpcn0+XG4gICAgICAgIDxTZWFzb25hbEluc2lnaHRzIGRhdGE9e2luc2lnaHREYXRhfSAvPlxuICAgICAgPC9LYW5kb01vZGFsPlxuICAgICk7XG4gIH0sIFtzaG93TW9kYWxdKTtcblxuICBjb25zdCBoYXNDb250ZW50ID0gYXBpRW5kcG9pbnRcbiAgICA/IHRpdGxlVGV4dCAmJiBsZWFybk1vcmVUZXh0XG4gICAgOiB0ZXh0IHx8IGhlYWRlclRleHQ7XG4gIGlmICghdmlzaWJsZSB8fCAhaGFzQ29udGVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgYmFja2dyb3VuZDogYmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgIHBhZGRpbmc6ICc4cHgnLFxuICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgbWluSGVpZ2h0OiBgJHtiYW5uZXJIZWlnaHR9cHhgLFxuICAgICAgICAgIGhlaWdodDogYCR7YmFubmVySGVpZ2h0fXB4YCxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHthcGlFbmRwb2ludCA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlcjogJ2Ryb3Atc2hhZG93KDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjMpKScsXG4gICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCcsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIOKcqFxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIHt0aXRsZVRleHR9eycgJ31cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvcGVuTW9kYWx9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiAndW5kZXJsaW5lJyxcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGVhcm5Nb3JlVGV4dH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIGhlYWRlclRleHQgfHwgdGV4dFxuICAgICAgICAgICl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZURpc21pc3N9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgLi4uKGRpciA9PT0gJ3J0bCdcbiAgICAgICAgICAgICAgPyB7IGxlZnQ6IDEwLCByaWdodDogJ2F1dG8nIGFzIGNvbnN0IH1cbiAgICAgICAgICAgICAgOiB7IHJpZ2h0OiAxMCB9KSxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMjRweCcsXG4gICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJEaXNtaXNzIGJhbm5lclwiXG4gICAgICAgID5cbiAgICAgICAgICDDl1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAge21vZGFsfVxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVG9wQmFubmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUksUUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUsseUJBQUEsR0FBQUwsT0FBQTtBQUlvQyxTQUFBTSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVIsd0JBQUFZLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxh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
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDismissal = getDismissal;
7
+ exports.setDismissal = setDismissal;
8
+ var STORAGE_PREFIX = 'TopBannerDismissed';
9
+ var buildKey = function buildKey(type) {
10
+ return "".concat(STORAGE_PREFIX, ":").concat(type);
11
+ };
12
+ function getDismissal(type) {
13
+ try {
14
+ var raw = localStorage.getItem(buildKey(type));
15
+ if (!raw) return null;
16
+ var parsed = JSON.parse(raw);
17
+ if (!parsed || typeof parsed.lastDismissedId !== 'string') {
18
+ return null;
19
+ }
20
+ return parsed;
21
+ } catch (_unused) {
22
+ return null;
23
+ }
24
+ }
25
+ function setDismissal(type, id) {
26
+ var record = {
27
+ lastDismissedId: id,
28
+ dismissedAt: new Date().toISOString()
29
+ };
30
+ try {
31
+ localStorage.setItem(buildKey(type), JSON.stringify(record));
32
+ } catch (_unused2) {
33
+ // ignore storage errors
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVE9SQUdFX1BSRUZJWCIsImJ1aWxkS2V5IiwidHlwZSIsImNvbmNhdCIsImdldERpc21pc3NhbCIsInJhdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJsYXN0RGlzbWlzc2VkSWQiLCJfdW51c2VkIiwic2V0RGlzbWlzc2FsIiwiaWQiLCJyZWNvcmQiLCJkaXNtaXNzZWRBdCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInNldEl0ZW0iLCJzdHJpbmdpZnkiLCJfdW51c2VkMiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RvcEJhbm5lci9pbnNpZ2h0c0Rpc21pc3NhbFN0b3JhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSW5zaWdodFR5cGUgPSAnc2Vhc29uYWxfaW5zaWdodCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zaWdodERpc21pc3NhbFJlY29yZCB7XG4gIGxhc3REaXNtaXNzZWRJZDogc3RyaW5nO1xuICBkaXNtaXNzZWRBdD86IHN0cmluZztcbn1cblxuY29uc3QgU1RPUkFHRV9QUkVGSVggPSAnVG9wQmFubmVyRGlzbWlzc2VkJztcblxuY29uc3QgYnVpbGRLZXkgPSAodHlwZTogSW5zaWdodFR5cGUpID0+IGAke1NUT1JBR0VfUFJFRklYfToke3R5cGV9YDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc21pc3NhbCh0eXBlOiBJbnNpZ2h0VHlwZSk6IEluc2lnaHREaXNtaXNzYWxSZWNvcmQgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShidWlsZEtleSh0eXBlKSk7XG4gICAgaWYgKCFyYXcpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpIGFzIFBhcnRpYWw8SW5zaWdodERpc21pc3NhbFJlY29yZD47XG4gICAgaWYgKCFwYXJzZWQgfHwgdHlwZW9mIHBhcnNlZC5sYXN0RGlzbWlzc2VkSWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkIGFzIEluc2lnaHREaXNtaXNzYWxSZWNvcmQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXREaXNtaXNzYWwodHlwZTogSW5zaWdodFR5cGUsIGlkOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVjb3JkOiBJbnNpZ2h0RGlzbWlzc2FsUmVjb3JkID0ge1xuICAgIGxhc3REaXNtaXNzZWRJZDogaWQsXG4gICAgZGlzbWlzc2VkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgfTtcblxuICB0cnkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGJ1aWxkS2V5KHR5cGUpLCBKU09OLnN0cmluZ2lmeShyZWNvcmQpKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gaWdub3JlIHN0b3JhZ2UgZXJyb3JzXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLElBQU1BLGNBQWMsR0FBRyxvQkFBb0I7QUFFM0MsSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLElBQWlCO0VBQUEsVUFBQUMsTUFBQSxDQUFRSCxjQUFjLE9BQUFHLE1BQUEsQ0FBSUQsSUFBSTtBQUFBLENBQUU7QUFFNUQsU0FBU0UsWUFBWUEsQ0FBQ0YsSUFBaUIsRUFBaUM7RUFDN0UsSUFBSTtJQUNGLElBQU1HLEdBQUcsR0FBR0MsWUFBWSxDQUFDQyxPQUFPLENBQUNOLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7SUFDaEQsSUFBSSxDQUFDRyxHQUFHLEVBQUUsT0FBTyxJQUFJO0lBRXJCLElBQU1HLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNMLEdBQUcsQ0FBb0M7SUFDakUsSUFBSSxDQUFDRyxNQUFNLElBQUksT0FBT0EsTUFBTSxDQUFDRyxlQUFlLEtBQUssUUFBUSxFQUFFO01BQ3pELE9BQU8sSUFBSTtJQUNiO0lBRUEsT0FBT0gsTUFBTTtFQUNmLENBQUMsQ0FBQyxPQUFBSSxPQUFBLEVBQU07SUFDTixPQUFPLElBQUk7RUFDYjtBQUNGO0FBRU8sU0FBU0MsWUFBWUEsQ0FBQ1gsSUFBaUIsRUFBRVksRUFBVSxFQUFFO0VBQzFELElBQU1DLE1BQThCLEdBQUc7SUFDckNKLGVBQWUsRUFBRUcsRUFBRTtJQUNuQkUsV0FBVyxFQUFFLElBQUlDLElBQUksQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQztFQUN0QyxDQUFDO0VBRUQsSUFBSTtJQUNGWixZQUFZLENBQUNhLE9BQU8sQ0FBQ2xCLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLEVBQUVPLElBQUksQ0FBQ1csU0FBUyxDQUFDTCxNQUFNLENBQUMsQ0FBQztFQUM5RCxDQUFDLENBQUMsT0FBQU0sUUFBQSxFQUFNO0lBQ047RUFBQTtBQUVKIn0=