import { r as registerInstance, h, H as Host, c as createEvent } from './index-X1TV_giC.js';
import { d as dateFnsExports } from './index-dzBXqXlK.js';

const verdocsOrganizationCardCss = "@-webkit-keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}verdocs-organization-card{font-family:\"Inter\", \"Barlow\", sans-serif;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;border:1px solid #cccccc;background:#ffffff;border-radius:8px;padding:7px 15px}verdocs-organization-card .icon{-ms-flex:0;flex:0;height:24px;width:24px;margin:0 14px 0 0}verdocs-organization-card .icon svg{fill:#aeb4bf;height:24px;width:24px}verdocs-organization-card .content{margin-top:2px}.verdocs-org-card-popup{font-family:\"Inter\", \"Barlow\", sans-serif;background:#ffffff;border-radius:10px;width:326px;padding:20px 40px 0 40px;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border:1px solid #cccccc}.verdocs-org-card-popup .popup-header-with-logo{display:-ms-flexbox;display:flex;-ms-flex:0;flex:0;gap:20px;-ms-flex-direction:column;flex-direction:column;margin:0 0 20px 0;font-size:21px;line-height:16px;color:#4c56cb}.verdocs-org-card-popup .popup-header-with-logo img{max-width:300px;max-height:50px}.verdocs-org-card-popup .popup-header{display:-ms-flexbox;display:flex;-ms-flex:0;flex:0;gap:20px;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:end;align-items:flex-end;margin:0 0 20px 0;font-size:21px;line-height:16px;color:#4c56cb}.verdocs-org-card-popup .popup-body{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:14px;text-transform:uppercase}.verdocs-org-card-popup .status{-webkit-transform:scale(1.5);transform:scale(1.5);width:24px;height:24px}.verdocs-org-card-popup .field{margin:0 0 20px 0}.verdocs-org-card-popup .field strong{color:#7b7b9a;display:block;margin:0 0 5px 0}.verdocs-org-card-popup .field a{color:#654dcb;text-transform:uppercase}";

// TODO: See what was done in Storybook. Move all SVG icons to a common file that both projects can share
//  and reduce duplication between components for re-used icons. Also bring icons into Figma for reuse there.
const BusinessIcon = '<svg xmlns="http://www.w3.org/2000/svg"  focusable="false" aria-hidden="true" height="24px" viewBox="0 0 24 24" width="24px"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"></path></svg>';
const VerdocsOrganizationCard = class {
    constructor(hostRef) {
        registerInstance(this, hostRef);
        this.hovered = false;
    }
    onMouseOver() {
        this.hovered = true;
    }
    onMouseOut() {
        this.hovered = false;
    }
    render() {
        var _a, _b, _c, _d, _e, _f;
        console.log('Rendering org card', this.organization.thumbnail_url, this.organization);
        const fallbackIcon = BusinessIcon;
        const portalId = `verdocs-org-card-${this.organization.id}`;
        return (h(Host, { key: 'f714963eac994c9af17b768ceb22c66f90319bd6', id: portalId }, this.organization.thumbnail_url ? h("img", { class: "icon", src: this.organization.thumbnail_url, alt: "Logo" }) : h("span", { class: "icon", innerHTML: fallbackIcon }), h("span", { key: '641f1eb3669bce8066eb52974b490bf2f33480d3', class: "content" }, (_a = this.organization) === null || _a === void 0 ? void 0 : _a.name), h("verdocs-portal", { key: '57d1f15ad28798b414d6c7b0b9187d489501aae9', anchor: portalId }, h("div", { key: '3324ae37c0d8b818d5dab21b11693306d1dce6b3', class: "verdocs-org-card-popup", style: { display: this.hovered ? 'block' : 'none' } }, this.organization.full_logo_url ? (h("div", { class: "popup-header-with-logo" }, h("img", { src: this.organization.full_logo_url, alt: "Logo" }), h("div", { class: "title" }, (_b = this.organization) === null || _b === void 0 ? void 0 : _b.name))) : (h("div", { class: "popup-header" }, h("span", { class: "status" }, h("span", { class: "icon", innerHTML: fallbackIcon })), h("span", { class: "title" }, (_c = this.organization) === null || _c === void 0 ? void 0 : _c.name))), h("div", { key: '9fe15a204516ddfcc7f35cb7ee33bbb80b163260', class: "popup-body" }, h("div", { key: 'a7b6c6041e09759545403613b5388ba90f789acc', class: "field" }, h("strong", { key: 'e558409769026901dfc17a67f2d7d59582cd960e' }, "Joined"), dateFnsExports.format(new Date(((_d = this.organization) === null || _d === void 0 ? void 0 : _d.created_at) || undefined), 'LLL d, Y')), this.organization.url && (h("div", { key: '94e6ce975794db4f3c5201af902a93fe886c416e', class: "field" }, h("strong", { key: '3ec6bd5272f762065ab6c0b95301b77539e514ff' }, "Website"), h("a", { key: '44be7da94d554d4c75575e23d56143c2346637b9', href: (_e = this.organization) === null || _e === void 0 ? void 0 : _e.url, target: "_blank", rel: "nofollow" }, (_f = this.organization) === null || _f === void 0 ? void 0 : _f.url))))))));
    }
};
VerdocsOrganizationCard.style = verdocsOrganizationCardCss;

const verdocsPortalCss = "@-webkit-keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}";

const Z_INDEX = '10001';
const VerdocsPortal = class {
    constructor(hostRef) {
        registerInstance(this, hostRef);
        this.clickAway = createEvent(this, "clickAway");
        this.moved = false;
        /**
         * Vertical offset from the parent.
         */
        this.voffset = 0;
    }
    handleScroll() {
        this.calculatePosition();
    }
    handleResize() {
        this.calculatePosition();
    }
    handleClick(e) {
        var _a;
        const closest = e.target.closest('.verdocs-portal');
        if (!this.element.contains(e.target) && !closest) {
            (_a = this.clickAway) === null || _a === void 0 ? void 0 : _a.emit();
        }
        // Temporary hack to dismiss portals-in-portals, which right now is pretty much just
        // multiselect.
        document.querySelectorAll('.verdocs-multiselect-dropdown').forEach(el => el.remove());
    }
    calculateLeft() {
        var _a;
        const anchorEl = document.getElementById(this.anchor);
        if (!anchorEl)
            return 0;
        const anchorRect = anchorEl.getBoundingClientRect();
        const rightOfViewportWithScroll = document.documentElement.clientWidth + document.documentElement.scrollLeft;
        const leftOfPopup = Math.max(anchorRect.left, 0);
        // Old centering logic, disabled temporarily
        //    Math.max(anchorRect.left - this.portal.offsetWidth / 2 + anchorRect.width / 2, 0);
        // Old right-align logic, disabled temporarily
        //    Math.max(anchorRect.left + anchorRect.width - this.portal.offsetWidth, 0);
        const popupWidth = ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 400;
        const offRightEdge = leftOfPopup + popupWidth > rightOfViewportWithScroll;
        return offRightEdge ? rightOfViewportWithScroll - popupWidth - 20 : leftOfPopup;
    }
    calculateTop() {
        var _a;
        const anchorEl = document.getElementById(this.anchor);
        if (!anchorEl)
            return 0;
        const anchorRect = anchorEl.getBoundingClientRect();
        const bottomOfViewportWithScroll = document.documentElement.clientHeight + document.documentElement.scrollTop;
        const topOfPopup = anchorRect.bottom + this.voffset + document.documentElement.scrollTop;
        const popupHeight = ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 300;
        const offBottomEdge = topOfPopup + popupHeight > bottomOfViewportWithScroll;
        return offBottomEdge ? topOfPopup - popupHeight - anchorRect.height : topOfPopup;
    }
    calculatePosition() {
        this.portal.style.top = `${this.calculateTop()}px`;
        this.portal.style.left = `${this.calculateLeft()}px`;
    }
    componentWillLoad() {
        var _a;
        const id = `${this.anchor}-portal`;
        (_a = document.getElementById(id)) === null || _a === void 0 ? void 0 : _a.remove();
        this.portal = document.createElement('div');
        this.portal.setAttribute('id', id);
        this.portal.style.zIndex = Z_INDEX;
        this.portal.style.position = 'absolute';
        this.portal.className = 'verdocs-portal-wrapper';
        document.body.append(this.portal);
    }
    componentDidLoad() {
        this.portal.appendChild(this.element);
        this.calculatePosition();
    }
    disconnectedCallback() {
        this.moved ? this.portal.remove() : (this.moved = true);
    }
    render() {
        return (h(Host, { key: 'eeb176eb22239e9bd1859d87e50d9dba08a36c5a', ref: el => (this.element = el), class: "verdocs-portal" }, h("slot", { key: '0cc38913adf3b2d41e9d635a7c6bafac3e71fd8f' })));
    }
};
VerdocsPortal.style = verdocsPortalCss;

export { VerdocsOrganizationCard as verdocs_organization_card, VerdocsPortal as verdocs_portal };
//# sourceMappingURL=verdocs-organization-card.verdocs-portal.entry.js.map
