import { r as registerInstance, c as createEvent, h, H as Host } from './index-ecdfb761.js';
import { S as SozlukApi } from './index-3bf9b308.js';
import './apiBase-648a161d.js';
import './data-transfer-field-2f305919.js';
import './filter-cbaa3d7d.js';
import { c as createMentornityApiInstance, I as Invitation, M as ModelReference, C as Collection, a as InvitationStatus } from './instance-db63ecb7.js';
import { s as sozlukEntries, M as MentornityMembershipAppListWrapperI18nKey, m as mentornityMembershipAppListWrapperI18nDefault, g as getSessionDetails, a as mentornityApiEndpoint } from './session-a602596d.js';
import './BaseField-0b01dc2c.js';
import './FieldModelGenerator-03c7516c.js';
import './reference-field-a5b414d1.js';
import './index-61dcd269.js';
import './FieldGenerator-3ae403b2.js';
import './date-1bc489bd.js';
import './index-4e451db4.js';
import './index-32d8b974.js';
import './index-23baeeef.js';
import './index-09efdc01.js';
import './index-150b6a59.js';
import './membership-24db029a.js';
import './data-model-f7ccf826.js';
import './table-config-3820fb34.js';
import './string-3065a411.js';
import './User-9f1f4513.js';
import './UserSettings-27df01e6.js';
import './cookie-9f22e0fb.js';
import './kimlik-api-66e341bd.js';
import './_commonjsHelpers-27f122dd.js';
import './index-d3bd30bd.js';
import './mentorinty-bridge-api-f70621dd.js';
import './index-5f14b4fc.js';
import './attachment-d13ad547.js';
import './CalendarConfig-f8d4a70d.js';
import './i18n-4dcb85fe.js';
import './i18n-73c2e20d.js';
import './calendar-470c802a.js';
import './index-a3ca021c.js';
import './moment-65eca6b3.js';

var __rest = (undefined && undefined.__rest) || function (s, e) {
  var t = {};
  for (var p in s)
    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
      t[p] = s[p];
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
      if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
        t[p[i]] = s[p[i]];
    }
  return t;
};
const MentornityAcceptApplicationButton = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
    this.acceptApplication = createEvent(this, "acceptApplication", 7);
    this.isProgressing = false;
    this.isInvitationSent = false;
    this.setDictionaryLanguage = async () => {
      const apiSozluk = new SozlukApi().setLanguage(this.item.language).setContents(sozlukEntries);
      this.strings = await apiSozluk.getContent(MentornityMembershipAppListWrapperI18nKey, mentornityMembershipAppListWrapperI18nDefault);
    };
    this.onInviteClick = async () => {
      const { context: { organisationId }, headers } = getSessionDetails();
      const _a = this.item, { role, firstName, lastName, email, language, // profile fields
      _id, applicationStatus, createdAt } = _a, // fields to be ignored
      metadataData = __rest(_a, ["role", "firstName", "lastName", "email", "language", "_id", "applicationStatus", "createdAt"]) // metadata fields
      ;
      this.isProgressing = true;
      const api = createMentornityApiInstance(mentornityApiEndpoint, headers);
      const importUserResponse = await api.importUser(organisationId, role, { email, firstName, lastName, metadata: { data: metadataData } }).catch(error => {
        this.error = error;
        this.isProgressing = false;
      });
      if (!importUserResponse)
        return;
      const createInvitationResponse = await api.createInvitation(new Invitation({
        accountType: role,
        firstName,
        invitee: new ModelReference(importUserResponse._id, Collection.Users),
        issuedFor: email,
        language,
        lastName,
        organisation: new ModelReference(organisationId, Collection.Organisations),
        skills: [],
        status: InvitationStatus.Pending,
      })).catch(error => {
        this.error = error;
        this.isProgressing = false;
      });
      if (!createInvitationResponse)
        return;
      this.isInvitationSent = true;
      this.isProgressing = false;
      this.acceptApplication.emit();
    };
  }
  componentWillLoad() {
    this.setDictionaryLanguage();
  }
  render() {
    const isInvited = this.item.applicationStatus === 'invited' || this.isInvitationSent;
    if (!this.strings)
      return;
    return (h(Host, { class: "d-flex align-items-center", style: { height: '30px' } }, h("dvn-button", { leaned: true, scale: "small", tagMode: isInvited, tint: isInvited ? 'secondary' : 'primary', view: isInvited ? 'ghost' : 'solid', onClick: this.onInviteClick, progressing: this.isProgressing, disabled: this.isProgressing }, isInvited ? this.strings.invited : this.strings.acceptAndInvite)));
  }
};

export { MentornityAcceptApplicationButton as mentornity_accept_application_button };
