"use strict";

require("core-js/modules/es.symbol.js");
require("core-js/modules/es.array.filter.js");
require("core-js/modules/es.array.for-each.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.array.push.js");
require("core-js/modules/es.object.define-properties.js");
require("core-js/modules/es.object.define-property.js");
require("core-js/modules/es.object.get-own-property-descriptor.js");
require("core-js/modules/es.object.get-own-property-descriptors.js");
require("core-js/modules/es.object.keys.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/es.weak-map.js");
require("core-js/modules/esnext.iterator.constructor.js");
require("core-js/modules/esnext.iterator.filter.js");
require("core-js/modules/esnext.iterator.for-each.js");
require("core-js/modules/esnext.weak-map.delete-all.js");
require("core-js/modules/esnext.weak-map.emplace.js");
require("core-js/modules/web.dom-collections.for-each.js");
require("core-js/modules/web.dom-collections.iterator.js");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ChatManager = void 0;
require("core-js/modules/es.array.map.js");
require("core-js/modules/es.object.to-string.js");
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _type = require("../icon/type");
var _dropMenu = require("../drop-menu");
var _tooltip = require("../tooltip");
var _iconButton = require("../icon-button");
var _i18n = require("../../i18n");
var _popover = require("../popover");
var _iconText = require("../icon-text");
require("./index.css");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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 _objectSpread(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) { (0, _defineProperty2["default"])(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; }
var ChatLevelOption = function ChatLevelOption(_ref) {
  var txt = _ref.txt,
    _ref$selected = _ref.selected,
    selected = _ref$selected === void 0 ? false : _ref$selected;
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconText.IconText, {
    icon: _type.FcrIconType.FCR_CHOOSEIT,
    txt: txt,
    colors: selected ? {
      iconPrimary: 'var(--fcr_ui_scene_icontext1)'
    } : {},
    classnames: selected ? {
      'fcr-icon-text--selected': true
    } : {}
  });
};
var ChatManager = exports.ChatManager = function ChatManager(_ref2) {
  var isManager = _ref2.isManager,
    setAllowChat = _ref2.setAllowChat,
    setAllowChatWithPayload = _ref2.setAllowChatWithPayload,
    allowChatLevel = _ref2.allowChatLevel,
    _ref2$showArrow = _ref2.showArrow,
    showArrow = _ref2$showArrow === void 0 ? false : _ref2$showArrow;
  var t = (0, _i18n.useI18n)();
  var _useState = (0, _react.useState)(false),
    _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
    managerVisible = _useState2[0],
    setManagerVisible = _useState2[1];
  var actions = [{
    title: /*#__PURE__*/(0, _jsxRuntime.jsx)(ChatLevelOption, {
      txt: t('fmt_chat_send_open'),
      selected: allowChatLevel === 'everyone'
    }),
    key: 'everyone',
    onButtonClick: function onButtonClick() {
      if (allowChatLevel === 'everyone') {
        return;
      }
      // 开放聊天
      setAllowChat === null || setAllowChat === void 0 || setAllowChat(true);
      setManagerVisible(false);
    }
  },
  // TODO: 环信暂不支持
  // {
  //   title: (
  //     <ChatLevelOption txt={t('chat_permission_public')} selected={allowChatLevel === 'public'} />
  //   ),
  //   key: 'public',
  //   onButtonClick: () => {
  //     if (allowChatLevel === 'public') {
  //       return;
  //     }
  //     setAllowChatWithPayload?.('public');
  //   },
  // },
  // {
  //   title: (
  //     <ChatLevelOption
  //       txt={t('fmt_additional_options_onlyprivatechat')}
  //       selected={allowChatLevel === 'private_to_manager'}
  //     />
  //   ),
  //   key: 'private_to_manager',
  //   onButtonClick: () => {
  //     if (allowChatLevel === 'private_to_manager') {
  //       return;
  //     }
  //     setAllowChatWithPayload?.('private_to_manager');
  //   },
  // },
  {
    title: /*#__PURE__*/(0, _jsxRuntime.jsx)(ChatLevelOption, {
      txt: t('fmt_chat_send_limit'),
      selected: allowChatLevel === 'no_one'
    }),
    key: 'no_one',
    onButtonClick: function onButtonClick() {
      if (allowChatLevel === 'no_one') {
        return;
      }
      // 全员禁言
      setAllowChat === null || setAllowChat === void 0 || setAllowChat(false);
      setManagerVisible(false);
    }
  }];
  var closePopover = function closePopover() {
    setManagerVisible(false);
  };
  var popoverContent = (0, _react.useMemo)(function () {
    return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
      onClick: closePopover,
      className: "fcr_chat_drop_menu",
      children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dropMenu.FcrDropMenu, {
        title: t('fmt_chat_setting_value'),
        options: actions.map(function (data) {
          return _objectSpread(_objectSpread({}, data), {}, {
            classNames: allowChatLevel === data.key ? 'fcr-drop-menu-option-primary-selected' : ''
          });
        })
      })
    });
  }, [allowChatLevel, actions]);
  if (!isManager) return null;
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
    id: "fcr_chat_manager",
    children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
      getTooltipContainer: function getTooltipContainer(e) {
        return e.parentElement || e;
      },
      showArrow: showArrow,
      visible: managerVisible,
      overlayClassName: 'fcr_chat_manager_popover_overlay',
      trigger: "click",
      placement: "bottom",
      overlayInnerStyle: {
        border: 'none',
        minWidth: '200px',
        maxWidth: '280px',
        width: 'fit-content'
      },
      verticalOffset: -90,
      content: popoverContent,
      onVisibleChange: function onVisibleChange(visible) {
        setManagerVisible(visible);
      },
      children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
        content: t('fmt_participants_member_button_more'),
        mouseEnterDelay: 0,
        trigger: "hover",
        placement: "bottom",
        children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
          children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconButton.FcrIconButton, {
            className: "frc-window-header__icon frc-window-header-setting__icon  fcr-no-drag",
            icon: _type.FcrIconType.FCR_DIALOG_MORE,
            onClick: function onClick() {
              setManagerVisible(true);
            }
          })
        })
      })
    })
  });
};