monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 2.18 kB
JavaScript
import{slicedToArray as o,defineProperty as s}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{camelCase as i}from"lodash-es";import{getTestId as t,ComponentDefaultTestId as e}from"../../tests/testIds.js";import r from"classnames";import"../../constants/dialog.js";import{Sizes as l}from"../../constants/sizes.js";import"../../constants/positions.js";import n from"react";import p from"../../hooks/ssr/useIsomorphicLayoutEffect.js";import a from"../Tooltip/Tooltip.js";import m from"../../hooks/useIsOverflowing/useIsOverflowing.js";import d from"../../hooks/useStyle.js";import f from"../../hooks/useRefWithCallback.js";import u from"../TextWithHighlight/TextWithHighlight.js";import{HeadingTypes as c,HeadingSizes as g}from"./LegacyHeadingConstants.js";import{withStaticProps as h}from"../../types/withStaticProps.js";import v from"./LegacyHeading.module.scss.js";import{getStyle as y}from"../../helpers/typesciptCssModulesHelper.js";var j=h((function(l){var h=l.className,j=l.value,E=void 0===j?"":j,H=l.type,T=void 0===H?c.h1:H,L=l.size,P=void 0===L?g.LARGE:L,C=l.ariaLabel,k=void 0===C?"":C,x=l.id,I=l.customColor,O=l.ellipsis,b=void 0===O||O,w=l.ellipsisMaxLines,z=void 0===w?1:w,A=l.style,N=l.tooltipPosition,W=l.highlightTerm,G=void 0===W?null:W,M=l.suggestEditOnHover,R=void 0!==M&&M,S=l.nonEllipsisTooltip,_=void 0===S?null:S,B=l["data-testid"],D=f((function(o){return o.style.setProperty("--heading-clamp-lines",""+z)})),q=o(D,2),F=q[0],J=q[1],K=d(A,{color:I}),Q=r(v.headingComponent,h,y(v,i("element-type-"+T)),y(v,i("size-"+P)),s(s(s({},v.multiLineEllipsis,b&&z>1),v.singleLineEllipsis,b&&1>=z),v.suggestEditOnHover,R)),U=n.createElement(T,{className:Q,"aria-label":k,id:x,"data-testid":B||t(e.HEADING,x),ref:J,style:K},G?n.createElement(u,{highlightTerm:G,text:E,linesToClamp:z,useEllipsis:b,nonEllipsisTooltip:_,tooltipPosition:N}):E),V=m({ref:b?F:null,ignoreHeightOverflow:!0});if((p((function(){F.current&&F.current.style.setProperty("--heading-clamp-lines",null==z?void 0:""+z)}),[F,z,V]),!G)&&(V||_))return n.createElement(a,{content:V?E:_,position:N},U);return U}),{types:c,sizes:l});export{j as default};
//# sourceMappingURL=LegacyHeading.js.map