@stencil/react-output-target
Version:
React output target for @stencil/core components.
6 lines (5 loc) • 12.2 kB
JavaScript
;var F=Object.create;var C=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var V=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of q(t))!G.call(e,i)&&i!==n&&C(e,i,{get:()=>t[i],enumerable:!(r=W(t,i))||r.enumerable});return e};var v=(e,t,n)=>(n=e!=null?F(D(e)):{},V(t||!e||!e.__esModule?C(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),E=require("./create-component-DUNPnWI2.cjs");var B={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},R="px",X=e=>typeof e=="number"||typeof e=="string";function Y(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function K(e,t,n=R){if(typeof t!="string"&&typeof t!="number")throw new Error("Invalid input: value of 'cssProperties' must be string or number.");const r=B[e]===1;if(typeof t=="string"||t===0||r)return`${t}`;const i=(typeof n=="string"?n:n[e])||R;return`${t}${i}`}function Z(e,t){if(typeof e!="object"||e===null)throw new TypeError(`[stringifyStyleDeclaration]: Expected 'styleDeclaration' to be a non-null object, but received ${e} (type:${typeof e}).`);const n=t!=null&&t.important?"!important":"";return Object.entries(e).filter(([r,i])=>X(i)).map(([r,i])=>`${Y(r)}:${K(r,i,t==null?void 0:t.unit)}${n};`).join("")}function J(e,t=!1){if(typeof e!="object"||e===null)throw new TypeError(`[stringifyCSSProperties]: Expected 'cssProperties' to be a non-null object, but received ${e} (type:${typeof e}).`);return Z(e,typeof t=="boolean"?{important:t}:t)}const z={acceptCharset:"accept-charset",accessKey:"accesskey",allowFullScreen:"allowfullscreen",autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",cellPadding:"cellpadding",cellSpacing:"cellspacing",charSet:"charset",className:"class",classID:"classid",colSpan:"colspan",contentEditable:"contenteditable",contextMenu:"contextmenu",controlsList:"controlslist",crossOrigin:"crossorigin",dangerouslySetInnerHTML:"dangerouslysetinnerhtml",dateTime:"datetime",defaultChecked:"defaultchecked",defaultValue:"defaultvalue",disablePictureInPicture:"disablepictureinpicture",disableRemotePlayback:"disableremoteplayback",encType:"enctype",enterKeyHint:"enterkeyhint",fetchPriority:"fetchpriority",htmlFor:"for",formMethod:"formmethod",formAction:"formaction",formEncType:"formenctype",formNoValidate:"formnovalidate",formTarget:"formtarget",frameBorder:"frameborder",hrefLang:"hreflang",httpEquiv:"http-equiv",imageSizes:"imagesizes",imageSrcSet:"imagesrcset",inputMode:"inputmode",itemID:"itemid",itemProp:"itemprop",itemRef:"itemref",itemScope:"itemscope",itemType:"itemtype",keyParams:"keyparams",keyType:"keytype",marginWidth:"marginwidth",marginHeight:"marginheight",maxLength:"maxlength",mediaGroup:"mediagroup",noModule:"nomodule",noValidate:"novalidate",playsInline:"playsinline",radioGroup:"radiogroup",readOnly:"readonly",referrerPolicy:"referrerpolicy",rowSpan:"rowspan",spellCheck:"spellcheck",srcDoc:"srcdoc",srcLang:"srclang",srcSet:"srcset",tabIndex:"tabindex",useMap:"usemap",accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",attributeName:"attributename",attributeType:"attributetype",autoReverse:"autoreverse",baseFrequency:"basefrequency",baselineShift:"baseline-shift",baseProfile:"baseprofile",calcMode:"calcmode",capHeight:"cap-height",clipPath:"clip-path",clipPathUnits:"clippathunits",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentscripttype",contentStyleType:"contentstyletype",diffuseConstant:"diffuseconstant",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",externalResourcesRequired:"externalresourcesrequired",fillOpacity:"fill-opacity",fillRule:"fill-rule",filterRes:"filterres",filterUnits:"filterunits",floodOpacity:"flood-opacity",floodColor:"flood-color",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",gradientTransform:"gradienttransform",gradientUnits:"gradientunits",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",imageRendering:"image-rendering",kernelMatrix:"kernelmatrix",kernelUnitLength:"kernelunitlength",keyPoints:"keypoints",keySplines:"keysplines",keyTimes:"keytimes",lengthAdjust:"lengthadjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingconeangle",markerEnd:"marker-end",markerHeight:"markerheight",markerMid:"marker-mid",markerStart:"marker-start",markerUnits:"markerunits",markerWidth:"markerwidth",maskContentUnits:"maskcontentunits",maskUnits:"maskunits",numOctaves:"numoctaves",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathlength",patternContentUnits:"patterncontentunits",patternTransform:"patterntransform",patternUnits:"patternunits",pointerEvents:"pointer-events",pointsAtX:"pointsatx",pointsAtY:"pointsaty",pointsAtZ:"pointsatz",preserveAlpha:"preservealpha",preserveAspectRatio:"preserveaspectratio",primitiveUnits:"primitiveunits",refX:"refx",refY:"refy",renderingIntent:"rendering-intent",repeatCount:"repeatcount",repeatDur:"repeatdur",requiredExtensions:"requiredextensions",requiredFeatures:"requiredfeatures",shapeRendering:"shape-rendering",slot:"slot",specularConstant:"specularconstant",specularExponent:"specularexponent",spreadMethod:"spreadmethod",startOffset:"startoffset",stdDeviation:"stddeviation",stitchTiles:"stitchtiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeWidth:"stroke-width",strokeOpacity:"stroke-opacity",suppressContentEditableWarning:"suppresscontenteditablewarning",suppressHydrationWarning:"suppresshydrationwarning",surfaceScale:"surfacescale",systemLanguage:"systemlanguage",tableValues:"tablevalues",targetX:"targetx",targetY:"targety",textAnchor:"text-anchor",textDecoration:"text-decoration",textLength:"textlength",textRendering:"text-rendering",transformOrigin:"transform-origin",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xChannelSelector:"xchannelselector",xHeight:"x-height",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlnsXlink:"xmlns:xlink",yChannelSelector:"ychannelselector",zoomAndPan:"zoomandpan"},Q="[react-output-target]",f=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean",h=e=>e==null,P=e=>Array.isArray(e),ee=e=>!!e&&/^\s*class\s+/.test(e.toString()),te=e=>!!e&&typeof e=="object"&&"_payload"in e,re=e=>!!e&&typeof e=="object"&&"$$typeof"in e&&("render"in e||"type"in e&&"compare"in e),ne=e=>async({children:t,...n}={})=>{if(!("process"in globalThis)||typeof window<"u")throw new Error("`createComponentForServerSideRendering` can only be run on the server");let r="";const i={};for(const[a,o]of Object.entries(n))if(!(typeof o=="boolean"&&o===!1)){if(a==="style"&&typeof o=="object"&&o){const c=z[a]||e.properties[a]||a;r+=` ${c}="${J(o)}"`;continue}if(f(o)){const c=z[a]||e.properties[a]||a;r+=` ${c}="${o}"`}else i[a]=o}let l="";const p=e.transformTag?e.transformTag(e.tagName):e.tagName,b=`<${p}${r} suppressHydrationWarning="true">`,O=console.error;try{process.env.STENCIL_SSR_DEBUG||(console.error=()=>{});const a=await k(t),{renderToString:o}=await import("react-dom/server");l=o(a).replace(/\n\s+/g,"")}catch(a){if(process.env.STENCIL_SSR_DEBUG){const o=a instanceof Error?a:new Error("Unknown error");console.warn(`${Q} Failed to serialize light DOM for ${b.slice(0,-1)} />: ${o.message} - this may impact the hydration of the component`)}}finally{console.error=O}const $=`${b}${l}</${p}>`,{html:g,styles:x}=await e.renderToString($,{fullDocument:!1,serializeShadowRoot:e.serializeShadowRoot??"declarative-shadow-dom",prettyHtml:!0,...Object.keys(i).length>0&&{beforeHydrate:a=>{const o=a.querySelector(p);if(o)for(const[c,m]of Object.entries(i))o[c]=m}}});if(!g)throw new Error("No HTML returned from renderToString");const d=g.split(`
`),M="<!--r.1-->",w=d[1].includes('shadowrootmode="open"'),L=d[1].includes("shadowrootdelegatesfocus");let T;w&&(T=d.slice(2,d.lastIndexOf(" </template>")).join(`
`).trim());const{default:H}=await import("html-react-parser"),j=H,I=()=>j(g,{transform(a,o){if("name"in o&&(o.name===p||o.name===e.tagName)){const c=a.props,m=`${p}`;if(!w){const{children:oe,..._}=c||{},A=d.slice(1,-1).join(`
`).trim().replace(new RegExp("(?<=>)\\s+(?=<)","g"),"").replace(/\n\s+/g,""),N=x.length>0&&x.map((u,U)=>s.createElement("style",{href:`stencil-${u.id||e.tagName}`,key:u.id||U,id:u.id,precedence:"stencil",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:u.content||""}}));return s.createElement(s.Fragment,null,N,s.createElement(m,{..._,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:A}}))}return s.createElement(m,{...c,suppressHydrationWarning:!0},s.createElement("template",{shadowrootmode:"open",...L?{shadowrootdelegatesfocus:""}:{},suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:M+T}}),t)}}});return s.createElement(I,null)};async function k(e){return f(e)||h(e)?e:(P(e)||(e=[e]),Promise.all(Array.from(e).map(async t=>{if(f(t)||h(t))return t;if(P(t))return k(t);if(!s.isValidElement(t))return t;const{type:n,props:r}=t,i=await S(n,r);return s.isValidElement(i)?i:{...t,props:{...r,children:await k(r.children)},type:i}})))}const S=async(e,t)=>{let n=null;if(typeof e=="string")return e;if(ee(e)){const r=new e(t,void 0);n=r.render?r.render():r}else if(te(e)){const r=e._payload;let i;if(typeof e._init=="function"&&r._result===void 0){const l=await e._init(r);i=(l==null?void 0:l.default)??l}else{const{default:l}=r._status===-1?await r._result():r._result;i=l}n=await S(i,t)}else{if(re(e))return e;typeof e!="object"&&(n=await e(t))}return!h(n)&&!f(n)&&s.isValidElement(n)&&(n=await S(n.type,t)),n};let y=null;const ie=e=>{if(typeof window<"u"){if(e.clientModule)return e.clientModule;if(E.createComponent)return E.createComponent({tagName:e.tagName,properties:e.properties})}return async t=>{if(!e.hydrateModule)throw new Error("`hydrateModule` is required when rendering a Stencil component on the server. This indicates a misconfiguration of the Stencil React output target.");let n=!1;y||(y=await e.hydrateModule,n=!0);const r=y;if(e.getTagTransformer&&n){const i=e.getTagTransformer();i&&r.setTagTransformer(i)}return e.transformTag=r.transformTag,ne({renderToString:r.renderToString,...e})(t)}};exports.createComponent=ie;
//# sourceMappingURL=ssr.cjs.map