@gravatar-com/hovercards
Version:
Add profile hovercards to Gravatar images.
1 lines • 55.8 kB
Source Map (JSON)
{"version":3,"file":"index.react.mjs","mappings":"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","sources":["webpack://@gravatar-com/hovercards/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@gravatar-com/hovercards/./node_modules/react/jsx-runtime.js","webpack://@gravatar-com/hovercards/external module \"react\"","webpack://@gravatar-com/hovercards/webpack/bootstrap","webpack://@gravatar-com/hovercards/webpack/runtime/define property getters","webpack://@gravatar-com/hovercards/webpack/runtime/hasOwnProperty shorthand","webpack://@gravatar-com/hovercards/./src/use-latest.ts","webpack://@gravatar-com/hovercards/./src/compute-position.ts","webpack://@gravatar-com/hovercards/./src/sanitizer.ts","webpack://@gravatar-com/hovercards/./src/i18n.ts","webpack://@gravatar-com/hovercards/./src/core.ts","webpack://@gravatar-com/hovercards/./src/use-hovercards.ts","webpack://@gravatar-com/hovercards/./src/hovercards.tsx","webpack://@gravatar-com/hovercards/./src/index.react.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import { MutableRefObject, useRef } from 'react';\n\n/**\n * A custom React hook to persist a mutable value.\n *\n * @template T The type of the value.\n * @param {T} val The value to persist.\n * @return {MutableRefObject<T>} Mutable reference object initialized to `val`.\n * @internal\n */\nexport default < T >( val: T ): MutableRefObject< T > => {\n\tconst ref = useRef( val );\n\tref.current = val;\n\treturn ref;\n};\n","export type Placement =\n\t| 'top'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'left'\n\t| 'left-start'\n\t| 'left-end'\n\t| 'right'\n\t| 'right-start'\n\t| 'right-end';\n\ntype Options = Partial< {\n\tplacement: Placement;\n\toffset: number;\n\tautoFlip: boolean;\n} >;\n\ninterface ReturnValues {\n\tx: number;\n\ty: number;\n\tpadding: 'paddingBottom' | 'paddingTop' | 'paddingRight' | 'paddingLeft';\n\tpaddingValue: number;\n}\n\nconst paddingMap: Record< string, ReturnValues[ 'padding' ] > = {\n\ttop: 'paddingBottom',\n\tbottom: 'paddingTop',\n\tleft: 'paddingRight',\n\tright: 'paddingLeft',\n};\n\n/**\n * Computes the position of a card relative to a ref element.\n *\n * @param {HTMLElement} ref - The ref element.\n * @param {HTMLDivElement} card - The card element.\n * @param {Options} [options={}] - The placement, offset, and auto-flip options.\n * @return {ReturnValues} - The computed position values.\n */\nexport default function computingPosition(\n\tref: HTMLElement,\n\tcard: HTMLDivElement,\n\t{ placement = 'right', offset = 0, autoFlip = true }: Options = {}\n): ReturnValues {\n\tconst refRect = ref.getBoundingClientRect();\n\tconst cardRect = card.getBoundingClientRect();\n\tconst refScrollT = refRect.top + scrollY;\n\tconst refScrollB = refRect.bottom + scrollY;\n\tconst refScrollR = refRect.right + scrollX;\n\tconst refScrollL = refRect.left + scrollX;\n\tlet x = 0;\n\tlet y = 0;\n\tlet [ dir, align ] = placement.split( '-' );\n\toffset = Math.max( 0, offset );\n\n\t// Auto flip the card if there's not enough space\n\t// If both sides have not enough space, then the card will be placed on the side with more space\n\tif ( autoFlip ) {\n\t\tconst topSpace = refRect.top;\n\t\tconst bottomSpace = innerHeight - refRect.bottom;\n\t\tconst leftSpace = refRect.left;\n\t\tconst rightSpace = innerWidth - refRect.right;\n\t\tconst floatingSpaceV = cardRect.height + offset;\n\t\tconst floatingSpaceH = cardRect.width + offset;\n\n\t\tif ( dir === 'top' && topSpace < floatingSpaceV && bottomSpace > topSpace ) {\n\t\t\tdir = 'bottom';\n\t\t}\n\n\t\tif ( dir === 'bottom' && bottomSpace < floatingSpaceV && topSpace > bottomSpace ) {\n\t\t\tdir = 'top';\n\t\t}\n\n\t\tif ( dir === 'left' && leftSpace < floatingSpaceH && rightSpace > leftSpace ) {\n\t\t\tdir = 'right';\n\t\t}\n\n\t\tif ( dir === 'right' && rightSpace < floatingSpaceH && leftSpace > rightSpace ) {\n\t\t\tdir = 'left';\n\t\t}\n\t}\n\n\t// Calculate the position of the card\n\tif ( dir === 'top' || dir === 'bottom' ) {\n\t\tx = refScrollL + refRect.width / 2 - cardRect.width / 2;\n\t\t// The bottom offset will be filled with the card's padding\n\t\ty = dir === 'top' ? refScrollT - cardRect.height - offset : refScrollB;\n\n\t\tif ( align === 'start' ) {\n\t\t\tx = refScrollL;\n\t\t}\n\n\t\tif ( align === 'end' ) {\n\t\t\tx = refScrollR - cardRect.width;\n\t\t}\n\t} else {\n\t\t// The right offset will be filled with the card's padding\n\t\tx = dir === 'right' ? refScrollR : refScrollL - cardRect.width - offset;\n\t\ty = refScrollT + refRect.height / 2 - cardRect.height / 2;\n\n\t\tif ( align === 'start' ) {\n\t\t\ty = refScrollT;\n\t\t}\n\n\t\tif ( align === 'end' ) {\n\t\t\ty = refScrollB - cardRect.height;\n\t\t}\n\t}\n\n\treturn { x, y, padding: paddingMap[ dir ], paddingValue: offset };\n}\n","export function escHtml( str: string ) {\n\tconst htmlEntities: Record< string, string > = {\n\t\t'&': '&',\n\t\t'<': '<',\n\t\t'>': '>',\n\t\t'\"': '"',\n\t\t\"'\": ''',\n\t\t'`': '`',\n\t};\n\n\t// Don't escape if already escaped.\n\treturn str.replace( /&(amp|lt|gt|quot|#39|x60);|[\\&<>\"'`]/g, ( match ) =>\n\t\tmatch[ 0 ] === '&' ? match : htmlEntities[ match ]\n\t);\n}\n\nexport function escUrl( url: string ) {\n\treturn encodeURI( url );\n}\n","export default function __( i18n: Record< string, string >, key: string ) {\n\treturn i18n[ key ] || key;\n}\n","import type { Placement } from './compute-position';\nimport computePosition from './compute-position';\nimport { escUrl, escHtml } from './sanitizer';\nimport __ from './i18n';\n\nexport type Account = Record< 'url' | 'shortname' | 'iconUrl' | 'name', string >;\n\nexport interface ProfileData {\n\thash: string;\n\tpreferredUsername: string;\n\tthumbnailUrl: string;\n\tdisplayName: string;\n\tcurrentLocation?: string;\n\taboutMe?: string;\n\taccounts?: Account[];\n}\n\nexport type CreateHovercard = (\n\tprofileData: ProfileData,\n\toptions?: { additionalClass?: string; myHash?: string; i18n?: Record< string, string > }\n) => HTMLDivElement;\n\nexport type Attach = ( target: HTMLElement, options?: { dataAttributeName?: string; ignoreSelector?: string } ) => void;\n\nexport type Detach = () => void;\n\nexport type OnQueryHovercardRef = ( ref: HTMLElement ) => HTMLElement;\n\nexport type OnFetchProfileStart = ( hash: string ) => void;\n\nexport type OnFetchProfileSuccess = ( hash: string, profileData: ProfileData ) => void;\n\nexport type OnFetchProfileFailure = ( hash: string, error: Error ) => void;\n\nexport type OnHovercardShown = ( hash: string, hovercard: HTMLDivElement ) => void;\n\nexport type OnHovercardHidden = ( hash: string, hovercard: HTMLDivElement ) => void;\n\nexport type Options = Partial< {\n\tplacement: Placement;\n\toffset: number;\n\tautoFlip: boolean;\n\tdelayToShow: number;\n\tdelayToHide: number;\n\tadditionalClass: string;\n\tmyHash: string;\n\ti18n: Record< string, string >;\n\tonQueryHovercardRef: OnQueryHovercardRef;\n\tonFetchProfileStart: OnFetchProfileStart;\n\tonFetchProfileSuccess: OnFetchProfileSuccess;\n\tonFetchProfileFailure: OnFetchProfileFailure;\n\tonHovercardShown: OnHovercardShown;\n\tonHovercardHidden: OnHovercardHidden;\n} >;\n\ninterface HovercardRef {\n\tid: string;\n\thash: string;\n\tparams: string;\n\tref: HTMLElement;\n}\n\nconst BASE_API_URL = 'https://secure.gravatar.com';\n\nconst socialLinksOrder = [ 'wordpress', 'mastodon', 'tumblr', 'github', 'twitter' ];\nconst dc = document;\n\nexport default class Hovercards {\n\t// Options\n\t_placement: Placement;\n\t_offset: number;\n\t_autoFlip: boolean;\n\t_delayToShow: number;\n\t_delayToHide: number;\n\t_additionalClass: string;\n\t_myHash: string;\n\t_onQueryHovercardRef: OnQueryHovercardRef;\n\t_onFetchProfileStart: OnFetchProfileStart;\n\t_onFetchProfileSuccess: OnFetchProfileSuccess;\n\t_onFetchProfileFailure: OnFetchProfileFailure;\n\t_onHovercardShown: OnHovercardShown;\n\t_onHovercardHidden: OnHovercardHidden;\n\t_i18n: Record< string, string > = {};\n\n\t// Variables\n\t_hovercardRefs: HovercardRef[] = [];\n\t_showHovercardTimeoutIds = new Map< string, ReturnType< typeof setTimeout > >();\n\t_hideHovercardTimeoutIds = new Map< string, ReturnType< typeof setTimeout > >();\n\t_cachedProfiles = new Map< string, ProfileData >();\n\n\tconstructor( {\n\t\tplacement = 'right',\n\t\tautoFlip = true,\n\t\toffset = 10,\n\t\tdelayToShow = 500,\n\t\tdelayToHide = 300,\n\t\tadditionalClass = '',\n\t\tmyHash = '',\n\t\tonQueryHovercardRef = ( ref ) => ref,\n\t\tonFetchProfileStart = () => {},\n\t\tonFetchProfileSuccess = () => {},\n\t\tonFetchProfileFailure = () => {},\n\t\tonHovercardShown = () => {},\n\t\tonHovercardHidden = () => {},\n\t\ti18n = {},\n\t}: Options = {} ) {\n\t\tthis._placement = placement;\n\t\tthis._autoFlip = autoFlip;\n\t\tthis._offset = offset;\n\t\tthis._delayToShow = delayToShow;\n\t\tthis._delayToHide = delayToHide;\n\t\tthis._additionalClass = additionalClass;\n\t\tthis._myHash = myHash;\n\t\tthis._onQueryHovercardRef = onQueryHovercardRef;\n\t\tthis._onFetchProfileStart = onFetchProfileStart;\n\t\tthis._onFetchProfileSuccess = onFetchProfileSuccess;\n\t\tthis._onFetchProfileFailure = onFetchProfileFailure;\n\t\tthis._onHovercardShown = onHovercardShown;\n\t\tthis._onHovercardHidden = onHovercardHidden;\n\t\tthis._i18n = i18n;\n\t}\n\n\t/**\n\t * Queries hovercard refs on or within the target element\n\t *\n\t * @param {HTMLElement} target - The element to query.\n\t * @param {string} dataAttributeName - Data attribute name associated with Gravatar hashes.\n\t * @param {string} [ignoreSelector] - The selector to ignore certain elements.\n\t * @return {HTMLElement[]} - The queried hovercard refs.\n\t * @private\n\t */\n\t_queryHovercardRefs( target: HTMLElement, dataAttributeName: string, ignoreSelector?: string ) {\n\t\tlet refs: HTMLElement[] = [];\n\t\tconst camelAttrName = dataAttributeName.replace( /-([a-z])/g, ( g ) => g[ 1 ].toUpperCase() );\n\t\tconst ignoreRefs = ignoreSelector ? Array.from( dc.querySelectorAll( ignoreSelector ) ) : [];\n\t\tconst matchPath = 'gravatar.com/avatar/';\n\n\t\tif (\n\t\t\ttarget.dataset[ camelAttrName ] ||\n\t\t\t( target.tagName === 'IMG' && ( target as HTMLImageElement ).src.includes( matchPath ) )\n\t\t) {\n\t\t\trefs = [ target ];\n\t\t} else {\n\t\t\trefs = Array.from( target.querySelectorAll( `img[src*=\"${ matchPath }\"]` ) );\n\n\t\t\tif ( dataAttributeName ) {\n\t\t\t\trefs = [\n\t\t\t\t\t// Filter out images that already have the data attribute\n\t\t\t\t\t...refs.filter( ( img ) => ! img.hasAttribute( `data-${ dataAttributeName }` ) ),\n\t\t\t\t\t...Array.from< HTMLElement >( target.querySelectorAll( `[data-${ dataAttributeName }]` ) ),\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\n\t\tthis._hovercardRefs = refs\n\t\t\t.map( ( ref, idx ) => {\n\t\t\t\tif ( ignoreRefs.includes( ref ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tlet hash;\n\t\t\t\tlet params;\n\t\t\t\tconst dataAttrValue = ref.dataset[ camelAttrName ];\n\n\t\t\t\tif ( dataAttrValue ) {\n\t\t\t\t\thash = dataAttrValue.split( '?' )[ 0 ];\n\t\t\t\t\tparams = dataAttrValue;\n\t\t\t\t} else if ( ref.tagName === 'IMG' ) {\n\t\t\t\t\thash = ( ref as HTMLImageElement ).src.split( '/' ).pop().split( '?' )[ 0 ];\n\t\t\t\t\tparams = ( ref as HTMLImageElement ).src;\n\t\t\t\t}\n\n\t\t\t\tif ( ! hash ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst p = new URLSearchParams( params );\n\t\t\t\tconst d = p.get( 'd' ) || p.get( 'default' );\n\t\t\t\tconst f = p.get( 'f' ) || p.get( 'forcedefault' );\n\t\t\t\tconst r = p.get( 'r' ) || p.get( 'rating' );\n\t\t\t\tparams = [ d && `d=${ d }`, f && `f=${ f }`, r && `r=${ r }` ].filter( Boolean ).join( '&' );\n\n\t\t\t\treturn {\n\t\t\t\t\tid: `gravatar-hovercard-${ hash }-${ idx }`,\n\t\t\t\t\thash,\n\t\t\t\t\tparams: params ? `?${ params }` : '',\n\t\t\t\t\tref: this._onQueryHovercardRef( ref ) || ref,\n\t\t\t\t};\n\t\t\t} )\n\t\t\t.filter( Boolean );\n\n\t\treturn this._hovercardRefs;\n\t}\n\n\t/**\n\t * Creates a skeleton hovercard element.\n\t *\n\t * @return {HTMLDivElement} The created skeleton hovercard element.\n\t */\n\t_createHovercardSkeleton() {\n\t\tconst hovercard = dc.createElement( 'div' );\n\t\thovercard.className = `gravatar-hovercard gravatar-hovercard--skeleton${\n\t\t\tthis._additionalClass ? ` ${ this._additionalClass }` : ''\n\t\t}`;\n\n\t\thovercard.innerHTML = `\n\t\t\t<div class=\"gravatar-hovercard__inner\">\n\t\t\t\t<div class=\"gravatar-hovercard__header\">\n\t\t\t\t\t<div class=\"gravatar-hovercard__avatar-link\"></div>\n\t\t\t\t\t<div class=\"gravatar-hovercard__name-location-link\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"gravatar-hovercard__footer\">\n\t\t\t\t\t<div class=\"gravatar-hovercard__social-link\"></div>\n\t\t\t\t\t<div class=\"gravatar-hovercard__profile-link\"\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n `;\n\n\t\treturn hovercard;\n\t}\n\n\t/**\n\t * Creates a hovercard element with the provided profile data.\n\t *\n\t * @param {ProfileData} profileData - The profile data to populate the hovercard.\n\t * @param {Object} [options] - Optional parameters for the hovercard.\n\t * @param {string} [options.additionalClass] - Additional CSS class for the hovercard.\n\t * @param {string} [options.myHash] - The hash of the current user.\n\t * @param {Object} [options.i18n] - The i18n object.\n\t * @return {HTMLDivElement} - The created hovercard element.\n\t */\n\tstatic createHovercard: CreateHovercard = ( profileData, { additionalClass, myHash, i18n = {} } = {} ) => {\n\t\tconst {\n\t\t\thash,\n\t\t\tthumbnailUrl,\n\t\t\tpreferredUsername,\n\t\t\tdisplayName,\n\t\t\tcurrentLocation,\n\t\t\taboutMe,\n\t\t\taccounts = [],\n\t\t} = profileData;\n\n\t\tconst hovercard = dc.createElement( 'div' );\n\t\thovercard.className = `gravatar-hovercard${ additionalClass ? ` ${ additionalClass }` : '' }`;\n\n\t\tconst profileUrl = escUrl( `https://gravatar.com/${ preferredUsername }?utm_source=hovercard` );\n\t\tconst username = escHtml( displayName );\n\t\tconst isEditProfile = ! aboutMe && myHash === hash;\n\t\tconst renderSocialLinks = accounts\n\t\t\t.reduce( ( links, { url, shortname, iconUrl, name } ) => {\n\t\t\t\tconst idx = socialLinksOrder.indexOf( shortname );\n\n\t\t\t\tif ( idx !== -1 ) {\n\t\t\t\t\tlinks[ idx ] = `\n\t\t\t\t\t\t<a class=\"gravatar-hovercard__social-link\" href=\"${ escUrl( url ) }\" target=\"_blank\" data-service-name=\"${ shortname }\">\n\t\t\t\t\t\t\t<img class=\"gravatar-hovercard__social-icon\" src=\"${ escUrl( iconUrl ) }\" width=\"32\" height=\"32\" alt=\"${ escHtml(\n\t\t\t\t\t\tname\n\t\t\t\t\t) }\" />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t`;\n\t\t\t\t}\n\n\t\t\t\treturn links;\n\t\t\t}, [] )\n\t\t\t.join( '' );\n\n\t\thovercard.innerHTML = `\n\t\t\t<div class=\"gravatar-hovercard__inner\">\n\t\t\t\t<div class=\"gravatar-hovercard__header\">\n\t\t\t\t\t<a class=\"gravatar-hovercard__avatar-link\" href=\"${ profileUrl }\" target=\"_blank\">\n\t\t\t\t\t\t<img class=\"gravatar-hovercard__avatar\" src=\"${ escUrl( thumbnailUrl ) }\" width=\"56\" height=\"56\" alt=\"${ username }\" />\n\t\t\t\t\t</a>\n\t\t\t\t\t<a class=\"gravatar-hovercard__name-location-link\" href=\"${ profileUrl }\" target=\"_blank\">\n\t\t\t\t\t\t<h4 class=\"gravatar-hovercard__name\">${ username }</h4>\n\t\t\t\t\t\t${ currentLocation ? `<p class=\"gravatar-hovercard__location\">${ escHtml( currentLocation ) }</p>` : '' }\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"gravatar-hovercard__body\">\n\t\t\t\t\t${ aboutMe ? `<p class=\"gravatar-hovercard__about\">${ escHtml( aboutMe ) }</p>` : '' }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"gravatar-hovercard__footer\">\n\t\t\t\t\t<div class=\"gravatar-hovercard__social-links\">\n\t\t\t\t\t\t<a class=\"gravatar-hovercard__social-link\" href=\"${ profileUrl }\" target=\"_blank\" data-service-name=\"gravatar\">\n\t\t\t\t\t\t\t<img class=\"gravatar-hovercard__social-icon\" src=\"https://secure.gravatar.com/icons/gravatar.svg\" width=\"32\" height=\"32\" alt=\"Gravatar\" />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t${ renderSocialLinks }\n\t\t\t\t\t</div>\n\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"gravatar-hovercard__profile-link${ isEditProfile ? ' gravatar-hovercard__profile-link--edit' : '' }\"\n\t\t\t\t\t\thref=\"${ isEditProfile ? 'https://gravatar.com/profiles/edit?utm_source=hovercard' : profileUrl }\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"gravatar-hovercard__profile-link-text\">\n\t\t\t\t\t\t\t${ isEditProfile ? __( i18n, 'Edit your profile' ) : __( i18n, 'View profile' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t<path d=\"M12.6667 8.33338L9.16666 12.1667M12.6667 8.33338L2.66666 8.33338M12.6667 8.33338L9.16666 4.83338\" stroke-width=\"1.5\"/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n `;\n\n\t\treturn hovercard;\n\t};\n\n\t/**\n\t * Waits for a specified delay and fetches the user's profile data,\n\t * then shows the hovercard relative to the ref element.\n\t *\n\t * @param {HovercardRef} hovercardRef - The hovercard ref object.\n\t * @return {void}\n\t * @private\n\t */\n\t_showHovercard( { id, hash, params, ref }: HovercardRef ) {\n\t\tconst timeoutId = setTimeout( () => {\n\t\t\tif ( dc.getElementById( id ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet hovercard: HTMLDivElement;\n\n\t\t\tif ( this._cachedProfiles.has( hash ) ) {\n\t\t\t\tconst profile = this._cachedProfiles.get( hash );\n\n\t\t\t\thovercard = Hovercards.createHovercard(\n\t\t\t\t\t{ ...profile, thumbnailUrl: profile.thumbnailUrl + params },\n\t\t\t\t\t{\n\t\t\t\t\t\tadditionalClass: this._additionalClass,\n\t\t\t\t\t\tmyHash: this._myHash,\n\t\t\t\t\t\ti18n: this._i18n,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\thovercard = this._createHovercardSkeleton();\n\n\t\t\t\tthis._onFetchProfileStart( hash );\n\n\t\t\t\tfetch( `${ BASE_API_URL }/${ hash }.json` )\n\t\t\t\t\t.then( ( res ) => res.json() )\n\t\t\t\t\t.then( ( data ) => {\n\t\t\t\t\t\t// API error handling\n\t\t\t\t\t\tif ( ! data?.entry ) {\n\t\t\t\t\t\t\t// The data will be an error message\n\t\t\t\t\t\t\tthrow new Error( data );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\thash: fetchedHash,\n\t\t\t\t\t\t\tthumbnailUrl,\n\t\t\t\t\t\t\tpreferredUsername,\n\t\t\t\t\t\t\tdisplayName,\n\t\t\t\t\t\t\tcurrentLocation,\n\t\t\t\t\t\t\taboutMe,\n\t\t\t\t\t\t\taccounts,\n\t\t\t\t\t\t} = data.entry[ 0 ];\n\n\t\t\t\t\t\tthis._cachedProfiles.set( hash, {\n\t\t\t\t\t\t\thash: fetchedHash,\n\t\t\t\t\t\t\tthumbnailUrl,\n\t\t\t\t\t\t\tpreferredUsername,\n\t\t\t\t\t\t\tdisplayName,\n\t\t\t\t\t\t\tcurrentLocation,\n\t\t\t\t\t\t\taboutMe,\n\t\t\t\t\t\t\taccounts: accounts?.map( ( { url, shortname, iconUrl, name }: Account ) => ( {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\tshortname,\n\t\t\t\t\t\t\t\ticonUrl,\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tconst profile = this._cachedProfiles.get( hash );\n\t\t\t\t\t\tconst hovercardInner = Hovercards.createHovercard(\n\t\t\t\t\t\t\t{ ...profile, thumbnailUrl: profile.thumbnailUrl + params },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tadditionalClass: this._additionalClass,\n\t\t\t\t\t\t\t\tmyHash: this._myHash,\n\t\t\t\t\t\t\t\ti18n: this._i18n,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t).firstElementChild;\n\n\t\t\t\t\t\thovercard.classList.remove( 'gravatar-hovercard--skeleton' );\n\t\t\t\t\t\thovercard.replaceChildren( hovercardInner );\n\n\t\t\t\t\t\tthis._onFetchProfileSuccess( hash, this._cachedProfiles.get( hash ) );\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\thovercard.firstElementChild.classList.add( 'gravatar-hovercard__inner--error' );\n\t\t\t\t\t\thovercard.firstElementChild.innerHTML = `\n\t\t\t\t\t\t\t<img class=\"gravatar-hovercard__avatar\" src=\"https://2.gravatar.com/avatar/${ hash }${ params }\" width=\"56\" height=\"56\" alt=\"Avatar\" />\n\t\t\t\t\t\t\t<i class=\"gravatar-hovercard__error-message\">${\n\t\t\t\t\t\t\t\terror.message === 'User not found'\n\t\t\t\t\t\t\t\t\t? __( this._i18n, 'Sorry, we are unable to load this Gravatar profile.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\tthis._i18n,\n\t\t\t\t\t\t\t\t\t\t\t'Sorry, we are unable to load this Gravatar profile. Please check your internet connection.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}</i>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tthis._onFetchProfileFailure( hash, error as Error );\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the hovercard ID here to avoid the show / hide side effect\n\t\t\thovercard.id = id;\n\t\t\t// Don't hide the hovercard when the mouse is over the hovercard from the ref\n\t\t\thovercard.addEventListener( 'mouseenter', () => clearInterval( this._hideHovercardTimeoutIds.get( id ) ) );\n\t\t\thovercard.addEventListener( 'mouseleave', () => this._hideHovercard( id ) );\n\n\t\t\t// Placing the hovercard at the top-level of the dc to avoid being clipped by overflow\n\t\t\tdc.body.appendChild( hovercard );\n\n\t\t\tconst { x, y, padding, paddingValue } = computePosition( ref, hovercard, {\n\t\t\t\tplacement: this._placement,\n\t\t\t\toffset: this._offset,\n\t\t\t\tautoFlip: this._autoFlip,\n\t\t\t} );\n\n\t\t\thovercard.style.position = 'absolute';\n\t\t\thovercard.style.left = `${ x }px`;\n\t\t\thovercard.style.top = `${ y }px`;\n\t\t\t// To bridge the gap between the ref and the hovercard,\n\t\t\t// ensuring that the hovercard remains visible when the mouse hovers over the gap\n\t\t\thovercard.style[ padding ] = `${ paddingValue }px`;\n\n\t\t\tthis._onHovercardShown( hash, hovercard );\n\t\t}, this._delayToShow );\n\n\t\tthis._showHovercardTimeoutIds.set( id, timeoutId );\n\t}\n\n\t/**\n\t * Waits for a specified delay and hides the hovercard.\n\t *\n\t * @param {string} id - The ID associated with the hovercard.\n\t * @return {void}\n\t * @private\n\t */\n\t_hideHovercard( id: string ) {\n\t\tconst timeoutId = setTimeout( () => {\n\t\t\tconst hovercard = dc.getElementById( id );\n\n\t\t\tif ( hovercard ) {\n\t\t\t\thovercard.remove();\n\t\t\t\tthis._onHovercardHidden( id, hovercard as HTMLDivElement );\n\t\t\t}\n\t\t}, this._delayToHide );\n\n\t\tthis._hideHovercardTimeoutIds.set( id, timeoutId );\n\t}\n\n\t/**\n\t * Handles the mouseenter event for hovercard refs.\n\t *\n\t * @param {MouseEvent} e - The mouseenter event object.\n\t * @param hovercardRef - The hovercard ref object.\n\t * @return {void}\n\t * @private\n\t */\n\t_handleMouseEnter( e: MouseEvent, hovercardRef: HovercardRef ) {\n\t\te.stopImmediatePropagation();\n\n\t\t// Don't hide the hovercard when the mouse is over the ref from the hovercard\n\t\tclearInterval( this._hideHovercardTimeoutIds.get( hovercardRef.id ) );\n\t\tthis._showHovercard( hovercardRef );\n\t}\n\n\t/**\n\t * Handles the mouseleave event for hovercard refs.\n\t *\n\t * @param {MouseEvent} e - The mouseleave event object.\n\t * @param hovercardRef - The hovercard ref object.\n\t * @param hovercardRef.id - The ID associated with the hovercard.\n\t * @return {void}\n\t * @private\n\t */\n\t_handleMouseLeave( e: MouseEvent, { id }: HovercardRef ) {\n\t\te.stopImmediatePropagation();\n\n\t\tclearInterval( this._showHovercardTimeoutIds.get( id ) );\n\t\tthis._hideHovercard( id );\n\t}\n\n\t/**\n\t * Attaches event listeners on or within the target element.\n\t *\n\t * @param {HTMLElement} target - The target element to set.\n\t * @param {Object} [options={}] - The optional parameters.\n\t * @param options.dataAttributeName - Data attribute name associated with Gravatar hashes.\n\t * @param options.ignoreSelector - The selector to ignore certain elements.\n\t * @return {void}\n\t */\n\tattach: Attach = ( target, { dataAttributeName = 'gravatar-hash', ignoreSelector } = {} ) => {\n\t\tif ( ! target ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.detach();\n\n\t\tthis._queryHovercardRefs( target, dataAttributeName, ignoreSelector ).forEach( ( hovercardRef ) => {\n\t\t\thovercardRef.ref.addEventListener( 'mouseenter', ( e ) => this._handleMouseEnter( e, hovercardRef ) );\n\t\t\thovercardRef.ref.addEventListener( 'mouseleave', ( e ) => this._handleMouseLeave( e, hovercardRef ) );\n\t\t} );\n\t};\n\n\t/**\n\t * Removes event listeners from hovercard refs and resets the stored list of these refs.\n\t *\n\t * @return {void}\n\t */\n\tdetach: Detach = () => {\n\t\tif ( ! this._hovercardRefs.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._hovercardRefs.forEach( ( { ref } ) => {\n\t\t\tref.removeEventListener( 'mouseenter', () => this._handleMouseEnter );\n\t\t\tref.removeEventListener( 'mouseleave', () => this._handleMouseLeave );\n\t\t} );\n\n\t\tthis._hovercardRefs = [];\n\t};\n}\n","import { useEffect, useMemo } from 'react';\n\nimport type { Options, Attach, Detach, CreateHovercard } from './core';\nimport Hovercards from './core';\nimport useLatest from './use-latest';\n\nexport interface UseHovercardsReturnValues {\n\tattach: Attach;\n\tdetach: Detach;\n\tcreateHovercard: CreateHovercard;\n}\n\nexport default function useHovercards( {\n\tplacement,\n\toffset,\n\tautoFlip,\n\tdelayToShow,\n\tdelayToHide,\n\tadditionalClass,\n\tmyHash,\n\ti18n,\n\tonQueryHovercardRef,\n\tonFetchProfileStart,\n\tonFetchProfileSuccess,\n\tonFetchProfileFailure,\n\tonHovercardShown,\n\tonHovercardHidden,\n}: Options = {} ): UseHovercardsReturnValues {\n\t// These callbacks / variables won't trigger hooks update and will always be the latest\n\tconst onQueryHovercardRefRef = useLatest( onQueryHovercardRef );\n\tconst onFetchProfileStartRef = useLatest( onFetchProfileStart );\n\tconst onFetchProfileSuccessRef = useLatest( onFetchProfileSuccess );\n\tconst onFetchProfileFailureRef = useLatest( onFetchProfileFailure );\n\tconst onHovercardShownRef = useLatest( onHovercardShown );\n\tconst onHovercardHiddenRef = useLatest( onHovercardHidden );\n\tconst i18nRef = useLatest( i18n );\n\t// Instantiate the Hovercards class only when the options change\n\tconst { attach, detach } = useMemo(\n\t\t() =>\n\t\t\tnew Hovercards( {\n\t\t\t\tplacement,\n\t\t\t\toffset,\n\t\t\t\tautoFlip,\n\t\t\t\tdelayToShow,\n\t\t\t\tdelayToHide,\n\t\t\t\tadditionalClass,\n\t\t\t\tmyHash,\n\t\t\t\ti18n: i18nRef.current,\n\t\t\t\tonQueryHovercardRef: onQueryHovercardRefRef.current,\n\t\t\t\tonFetchProfileStart: onFetchProfileStartRef.current,\n\t\t\t\tonFetchProfileSuccess: onFetchProfileSuccessRef.current,\n\t\t\t\tonFetchProfileFailure: onFetchProfileFailureRef.current,\n\t\t\t\tonHovercardShown: onHovercardShownRef.current,\n\t\t\t\tonHoverca