import { r as registerInstance, h, H as Host, c as createEvent } from './index-C1erT8T2.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: '97272d216497af502a3cb2d6e0952bda802249e1', 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: 'e5f71759e662b6a1ad04ee9acf2710b9d7904a22', class: "content" }, (_a = this.organization) === null || _a === void 0 ? void 0 : _a.name), h("verdocs-portal", { key: '0496b9a82bca4289e6fb226e24c5fed23c4e8fb3', anchor: portalId }, h("div", { key: '991b528de45afb90d6c54f4ce6d6c415e9e2bc81', 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: '54c746473d12e7428b2982c0f627d2d5ac078875', class: "popup-body" }, h("div", { key: 'a291de045b2cd5f6431e795b3b0da2a2187ec019', class: "field" }, h("strong", { key: '86cfad50f43e266fcbca1934458de84c6af791bf' }, "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: '743cc0af65238631e94353b1c0a09718d556a3e5', class: "field" }, h("strong", { key: '55b51d9b2d4256ff4462ba28940331e3aff22e95' }, "Website"), h("a", { key: 'd6f11530ba3adc9c897fd2f26f47de8b9d17b807', 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();
        }
    }
    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';
        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: '6cd36148f5c2845915d9c799c53181d63ef092f4', ref: el => (this.element = el), class: "verdocs-portal" }, h("slot", { key: '1852433ec3a6203a5d732375dcf7e245c2245b81' })));
    }
};
VerdocsPortal.style = verdocsPortalCss;

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

//# sourceMappingURL=verdocs-organization-card_2.entry.js.map