preact-render-to-string 6.5.6 → 6.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/jsx/commonjs.js +1 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +1 -1
- package/dist/jsx/index.module.js +1 -1
- package/dist/jsx/index.module.js.map +1 -1
- package/dist/jsx/index.umd.js +1 -1
- package/dist/jsx/index.umd.js.map +1 -1
- package/dist/stream/index.js +1 -1
- package/dist/stream/index.js.map +1 -1
- package/dist/stream/index.mjs +1 -1
- package/dist/stream/index.module.js +1 -1
- package/dist/stream/index.module.js.map +1 -1
- package/dist/stream/index.umd.js +1 -1
- package/dist/stream/index.umd.js.map +1 -1
- package/dist/stream/node/index.js +85 -74
- package/dist/stream/node/index.js.map +1 -1
- package/dist/stream/node/index.mjs +85 -74
- package/dist/stream/node/index.module.js +85 -74
- package/dist/stream/node/index.module.js.map +1 -1
- package/dist/stream/node/index.umd.js +85 -74
- package/dist/stream/node/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +94 -83
- package/src/lib/util.js +4 -4
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
} // Append skipped/buffered characters and the encoded entity:
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
if (i !== last) out
|
|
42
|
-
out
|
|
41
|
+
if (i !== last) out = out + str.slice(last, i);
|
|
42
|
+
out = out + ch; // Start the next seek/buffer after the entity's offset:
|
|
43
43
|
|
|
44
44
|
last = i + 1;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
if (i !== last) out
|
|
47
|
+
if (i !== last) out = out + str.slice(last, i);
|
|
48
48
|
return out;
|
|
49
49
|
}
|
|
50
50
|
const JS_TO_CSS = {};
|
|
@@ -72,6 +72,24 @@
|
|
|
72
72
|
|
|
73
73
|
return str || undefined;
|
|
74
74
|
}
|
|
75
|
+
|
|
76
|
+
function markAsDirty() {
|
|
77
|
+
this.__d = true;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function createComponent(vnode, context) {
|
|
81
|
+
return {
|
|
82
|
+
__v: vnode,
|
|
83
|
+
context,
|
|
84
|
+
props: vnode.props,
|
|
85
|
+
// silently drop state updates
|
|
86
|
+
setState: markAsDirty,
|
|
87
|
+
forceUpdate: markAsDirty,
|
|
88
|
+
__d: true,
|
|
89
|
+
// hooks
|
|
90
|
+
__h: new Array(0)
|
|
91
|
+
};
|
|
92
|
+
} // Necessary for createContext api. Setting this property will pass
|
|
75
93
|
/**
|
|
76
94
|
* @template T
|
|
77
95
|
*/
|
|
@@ -106,9 +124,11 @@
|
|
|
106
124
|
const NEXT_STATE = '__s';
|
|
107
125
|
const CHILD_DID_SUSPEND = '__c';
|
|
108
126
|
|
|
127
|
+
const EMPTY_OBJ = {};
|
|
109
128
|
const EMPTY_ARR = [];
|
|
110
129
|
const isArray = Array.isArray;
|
|
111
|
-
const assign = Object.assign;
|
|
130
|
+
const assign = Object.assign;
|
|
131
|
+
const EMPTY_STR = ''; // Global state for the current render pass
|
|
112
132
|
|
|
113
133
|
let beforeDiff, afterDiff, renderHook, ummountHook;
|
|
114
134
|
/**
|
|
@@ -138,8 +158,8 @@
|
|
|
138
158
|
try {
|
|
139
159
|
const rendered = _renderToString(vnode, context || EMPTY_OBJ, false, undefined, parent, false, _rendererState);
|
|
140
160
|
|
|
141
|
-
if (
|
|
142
|
-
return rendered.join(
|
|
161
|
+
if (isArray(rendered)) {
|
|
162
|
+
return rendered.join(EMPTY_STR);
|
|
143
163
|
}
|
|
144
164
|
|
|
145
165
|
return rendered;
|
|
@@ -157,12 +177,6 @@
|
|
|
157
177
|
EMPTY_ARR.length = 0;
|
|
158
178
|
}
|
|
159
179
|
}
|
|
160
|
-
|
|
161
|
-
function markAsDirty() {
|
|
162
|
-
this.__d = true;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
const EMPTY_OBJ = {};
|
|
166
180
|
/**
|
|
167
181
|
* @param {VNode} vnode
|
|
168
182
|
* @param {Record<string, unknown>} context
|
|
@@ -224,36 +238,40 @@
|
|
|
224
238
|
|
|
225
239
|
function _renderToString(vnode, context, isSvgMode, selectValue, parent, asyncMode, renderer) {
|
|
226
240
|
// Ignore non-rendered VNodes/values
|
|
227
|
-
if (vnode == null || vnode === true || vnode === false || vnode ===
|
|
228
|
-
return
|
|
229
|
-
}
|
|
241
|
+
if (vnode == null || vnode === true || vnode === false || vnode === EMPTY_STR) {
|
|
242
|
+
return EMPTY_STR;
|
|
243
|
+
}
|
|
230
244
|
|
|
245
|
+
let vnodeType = typeof vnode; // Text VNodes: escape as HTML
|
|
231
246
|
|
|
232
|
-
if (
|
|
233
|
-
if (
|
|
234
|
-
return encodeEntities(vnode +
|
|
247
|
+
if (vnodeType != 'object') {
|
|
248
|
+
if (vnodeType == 'function') return EMPTY_STR;
|
|
249
|
+
return vnodeType == 'string' ? encodeEntities(vnode) : vnode + EMPTY_STR;
|
|
235
250
|
} // Recurse into children / Arrays
|
|
236
251
|
|
|
237
252
|
|
|
238
253
|
if (isArray(vnode)) {
|
|
239
|
-
let rendered =
|
|
254
|
+
let rendered = EMPTY_STR,
|
|
240
255
|
renderArray;
|
|
241
256
|
parent[CHILDREN] = vnode;
|
|
242
257
|
|
|
243
258
|
for (let i = 0; i < vnode.length; i++) {
|
|
244
259
|
let child = vnode[i];
|
|
245
|
-
if (child == null || typeof child
|
|
260
|
+
if (child == null || typeof child == 'boolean') continue;
|
|
246
261
|
|
|
247
262
|
const childRender = _renderToString(child, context, isSvgMode, selectValue, parent, asyncMode, renderer);
|
|
248
263
|
|
|
249
|
-
if (typeof childRender
|
|
250
|
-
rendered
|
|
264
|
+
if (typeof childRender == 'string') {
|
|
265
|
+
rendered = rendered + childRender;
|
|
251
266
|
} else {
|
|
252
|
-
|
|
267
|
+
if (!renderArray) {
|
|
268
|
+
renderArray = [];
|
|
269
|
+
}
|
|
270
|
+
|
|
253
271
|
if (rendered) renderArray.push(rendered);
|
|
254
|
-
rendered =
|
|
272
|
+
rendered = EMPTY_STR;
|
|
255
273
|
|
|
256
|
-
if (
|
|
274
|
+
if (isArray(childRender)) {
|
|
257
275
|
renderArray.push(...childRender);
|
|
258
276
|
} else {
|
|
259
277
|
renderArray.push(childRender);
|
|
@@ -270,43 +288,44 @@
|
|
|
270
288
|
} // VNodes have {constructor:undefined} to prevent JSON injection:
|
|
271
289
|
|
|
272
290
|
|
|
273
|
-
if (vnode.constructor !== undefined) return
|
|
291
|
+
if (vnode.constructor !== undefined) return EMPTY_STR;
|
|
274
292
|
vnode[PARENT] = parent;
|
|
275
293
|
if (beforeDiff) beforeDiff(vnode);
|
|
276
294
|
let type = vnode.type,
|
|
277
|
-
props = vnode.props
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
295
|
+
props = vnode.props; // Invoke rendering on Components
|
|
296
|
+
|
|
297
|
+
if (typeof type == 'function') {
|
|
298
|
+
let cctx = context,
|
|
299
|
+
contextType,
|
|
300
|
+
rendered,
|
|
301
|
+
component;
|
|
282
302
|
|
|
283
|
-
if (typeof type === 'function') {
|
|
284
303
|
if (type === preact.Fragment) {
|
|
285
304
|
// Serialized precompiled JSX.
|
|
286
|
-
if (props
|
|
287
|
-
let out =
|
|
305
|
+
if ('tpl' in props) {
|
|
306
|
+
let out = EMPTY_STR;
|
|
288
307
|
|
|
289
308
|
for (let i = 0; i < props.tpl.length; i++) {
|
|
290
|
-
out
|
|
309
|
+
out = out + props.tpl[i];
|
|
291
310
|
|
|
292
311
|
if (props.exprs && i < props.exprs.length) {
|
|
293
312
|
const value = props.exprs[i];
|
|
294
313
|
if (value == null) continue; // Check if we're dealing with a vnode or an array of nodes
|
|
295
314
|
|
|
296
|
-
if (typeof value
|
|
297
|
-
out
|
|
315
|
+
if (typeof value == 'object' && (value.constructor === undefined || isArray(value))) {
|
|
316
|
+
out = out + _renderToString(value, context, isSvgMode, selectValue, vnode, asyncMode, renderer);
|
|
298
317
|
} else {
|
|
299
318
|
// Values are pre-escaped by the JSX transform
|
|
300
|
-
out
|
|
319
|
+
out = out + value;
|
|
301
320
|
}
|
|
302
321
|
}
|
|
303
322
|
}
|
|
304
323
|
|
|
305
324
|
return out;
|
|
306
|
-
} else if (props
|
|
325
|
+
} else if ('UNSTABLE_comment' in props) {
|
|
307
326
|
// Fragments are the least used components of core that's why
|
|
308
327
|
// branching here for comments has the least effect on perf.
|
|
309
|
-
return '<!--' + encodeEntities(props.UNSTABLE_comment
|
|
328
|
+
return '<!--' + encodeEntities(props.UNSTABLE_comment) + '-->';
|
|
310
329
|
}
|
|
311
330
|
|
|
312
331
|
rendered = props.children;
|
|
@@ -318,24 +337,17 @@
|
|
|
318
337
|
cctx = provider ? provider.props.value : contextType.__;
|
|
319
338
|
}
|
|
320
339
|
|
|
321
|
-
|
|
340
|
+
let isClassComponent = type.prototype && typeof type.prototype.render == 'function';
|
|
341
|
+
|
|
342
|
+
if (isClassComponent) {
|
|
322
343
|
rendered =
|
|
323
344
|
/**#__NOINLINE__**/
|
|
324
345
|
renderClassComponent(vnode, cctx);
|
|
325
346
|
component = vnode[COMPONENT];
|
|
326
347
|
} else {
|
|
327
|
-
component =
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
context: cctx,
|
|
331
|
-
// silently drop state updates
|
|
332
|
-
setState: markAsDirty,
|
|
333
|
-
forceUpdate: markAsDirty,
|
|
334
|
-
__d: true,
|
|
335
|
-
// hooks
|
|
336
|
-
__h: []
|
|
337
|
-
};
|
|
338
|
-
vnode[COMPONENT] = component; // If a hook invokes setState() to invalidate the component during rendering,
|
|
348
|
+
vnode[COMPONENT] = component =
|
|
349
|
+
/**#__NOINLINE__**/
|
|
350
|
+
createComponent(vnode, cctx); // If a hook invokes setState() to invalidate the component during rendering,
|
|
339
351
|
// re-render it up to 25 times to allow "settling" of memoized states.
|
|
340
352
|
// Note:
|
|
341
353
|
// This will need to be updated for Preact 11 to use internal.flags rather than component._dirty:
|
|
@@ -356,23 +368,21 @@
|
|
|
356
368
|
context = assign({}, context, component.getChildContext());
|
|
357
369
|
}
|
|
358
370
|
|
|
359
|
-
if ((type.getDerivedStateFromError || component.componentDidCatch)
|
|
360
|
-
|
|
371
|
+
if (isClassComponent && preact.options.errorBoundaries && (type.getDerivedStateFromError || component.componentDidCatch)) {
|
|
372
|
+
// When a component returns a Fragment node we flatten it in core, so we
|
|
361
373
|
// need to mirror that logic here too
|
|
362
|
-
|
|
363
|
-
let isTopLevelFragment = rendered != null && rendered.type === preact.Fragment && rendered.key == null;
|
|
374
|
+
let isTopLevelFragment = rendered != null && rendered.type === preact.Fragment && rendered.key == null && rendered.props.tpl == null;
|
|
364
375
|
rendered = isTopLevelFragment ? rendered.props.children : rendered;
|
|
365
376
|
|
|
366
377
|
try {
|
|
367
|
-
|
|
368
|
-
return str;
|
|
378
|
+
return _renderToString(rendered, context, isSvgMode, selectValue, vnode, asyncMode, renderer);
|
|
369
379
|
} catch (err) {
|
|
370
380
|
if (type.getDerivedStateFromError) {
|
|
371
381
|
component[NEXT_STATE] = type.getDerivedStateFromError(err);
|
|
372
382
|
}
|
|
373
383
|
|
|
374
384
|
if (component.componentDidCatch) {
|
|
375
|
-
component.componentDidCatch(err,
|
|
385
|
+
component.componentDidCatch(err, EMPTY_OBJ);
|
|
376
386
|
}
|
|
377
387
|
|
|
378
388
|
if (component[DIRTY]) {
|
|
@@ -383,12 +393,12 @@
|
|
|
383
393
|
context = assign({}, context, component.getChildContext());
|
|
384
394
|
}
|
|
385
395
|
|
|
386
|
-
let isTopLevelFragment = rendered != null && rendered.type === preact.Fragment && rendered.key == null;
|
|
396
|
+
let isTopLevelFragment = rendered != null && rendered.type === preact.Fragment && rendered.key == null && rendered.props.tpl == null;
|
|
387
397
|
rendered = isTopLevelFragment ? rendered.props.children : rendered;
|
|
388
|
-
|
|
398
|
+
return _renderToString(rendered, context, isSvgMode, selectValue, vnode, asyncMode, renderer);
|
|
389
399
|
}
|
|
390
400
|
|
|
391
|
-
return
|
|
401
|
+
return EMPTY_STR;
|
|
392
402
|
} finally {
|
|
393
403
|
if (afterDiff) afterDiff(vnode);
|
|
394
404
|
vnode[PARENT] = null;
|
|
@@ -417,32 +427,33 @@
|
|
|
417
427
|
if (res !== undefined) return res;
|
|
418
428
|
let errorHook = preact.options[CATCH_ERROR];
|
|
419
429
|
if (errorHook) errorHook(error, vnode);
|
|
420
|
-
return
|
|
430
|
+
return EMPTY_STR;
|
|
421
431
|
}
|
|
422
432
|
|
|
423
433
|
if (!asyncMode) throw error;
|
|
424
|
-
if (!error || typeof error.then
|
|
434
|
+
if (!error || typeof error.then != 'function') throw error;
|
|
425
435
|
|
|
426
436
|
const renderNestedChildren = () => {
|
|
427
437
|
try {
|
|
428
438
|
return _renderToString(rendered, context, isSvgMode, selectValue, vnode, asyncMode, renderer);
|
|
429
439
|
} catch (e) {
|
|
430
|
-
if (!e || typeof e.then
|
|
431
|
-
return e.then(() => _renderToString(rendered, context, isSvgMode, selectValue, vnode, asyncMode, renderer),
|
|
440
|
+
if (!e || typeof e.then != 'function') throw e;
|
|
441
|
+
return e.then(() => _renderToString(rendered, context, isSvgMode, selectValue, vnode, asyncMode, renderer), renderNestedChildren);
|
|
432
442
|
}
|
|
433
443
|
};
|
|
434
444
|
|
|
435
|
-
return error.then(
|
|
445
|
+
return error.then(renderNestedChildren);
|
|
436
446
|
}
|
|
437
447
|
} // Serialize Element VNodes to HTML
|
|
438
448
|
|
|
439
449
|
|
|
440
450
|
let s = '<' + type,
|
|
441
|
-
html =
|
|
451
|
+
html = EMPTY_STR,
|
|
442
452
|
children;
|
|
443
453
|
|
|
444
454
|
for (let name in props) {
|
|
445
455
|
let v = props[name];
|
|
456
|
+
if (typeof v == 'function') continue;
|
|
446
457
|
|
|
447
458
|
switch (name) {
|
|
448
459
|
case 'children':
|
|
@@ -533,7 +544,7 @@
|
|
|
533
544
|
// serialize boolean aria-xyz or draggable attribute values as strings
|
|
534
545
|
// `draggable` is an enumerated attribute and not Boolean. A value of `true` or `false` is mandatory
|
|
535
546
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable
|
|
536
|
-
v
|
|
547
|
+
v = v + EMPTY_STR;
|
|
537
548
|
} else if (isSvgMode) {
|
|
538
549
|
if (SVG_CAMEL_CASE.test(name)) {
|
|
539
550
|
name = name === 'panose1' ? 'panose-1' : name.replace(/([A-Z])/g, '-$1').toLowerCase();
|
|
@@ -545,11 +556,11 @@
|
|
|
545
556
|
} // write this attribute to the buffer
|
|
546
557
|
|
|
547
558
|
|
|
548
|
-
if (v != null && v !== false
|
|
549
|
-
if (v === true || v ===
|
|
559
|
+
if (v != null && v !== false) {
|
|
560
|
+
if (v === true || v === EMPTY_STR) {
|
|
550
561
|
s = s + ' ' + name;
|
|
551
562
|
} else {
|
|
552
|
-
s = s + ' ' + name + '="' +
|
|
563
|
+
s = s + ' ' + name + '="' + (typeof v == 'string' ? encodeEntities(v) : v + EMPTY_STR) + '"';
|
|
553
564
|
}
|
|
554
565
|
}
|
|
555
566
|
}
|
|
@@ -580,7 +591,7 @@
|
|
|
580
591
|
|
|
581
592
|
const endTag = '</' + type + '>';
|
|
582
593
|
const startTag = s + '>';
|
|
583
|
-
if (
|
|
594
|
+
if (isArray(html)) return [startTag, ...html, endTag];else if (typeof html != 'string') return [startTag, html, endTag];
|
|
584
595
|
return startTag + html + endTag;
|
|
585
596
|
}
|
|
586
597
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../../../src/lib/util.js","../../../src/lib/constants.js","../../../src/index.js","../../../src/lib/client.js","../../../src/lib/chunked.js","../../../src/stream-node.js"],"sourcesContent":["export const VOID_ELEMENTS = /^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\nexport const UNSAFE_NAME = /[\\s\\n\\\\/='\"\\0<>]/;\nexport const NAMESPACE_REPLACE_REGEX = /^(xlink|xmlns|xml)([A-Z])/;\nexport const HTML_LOWER_CASE = /^accessK|^auto[A-Z]|^cell|^ch|^col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|spellC|src[A-Z]|tabI|useM|item[A-Z]/;\nexport const SVG_CAMEL_CASE = /^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/;\n\n// DOM properties that should NOT have \"px\" added when numeric\nconst ENCODED_ENTITIES = /[\"&<]/;\n\n/** @param {string} str */\nexport function encodeEntities(str) {\n\t// Skip all work for strings with no entities needing encoding:\n\tif (str.length === 0 || ENCODED_ENTITIES.test(str) === false) return str;\n\n\tlet last = 0,\n\t\ti = 0,\n\t\tout = '',\n\t\tch = '';\n\n\t// Seek forward in str until the next entity char:\n\tfor (; i < str.length; i++) {\n\t\tswitch (str.charCodeAt(i)) {\n\t\t\tcase 34:\n\t\t\t\tch = '"';\n\t\t\t\tbreak;\n\t\t\tcase 38:\n\t\t\t\tch = '&';\n\t\t\t\tbreak;\n\t\t\tcase 60:\n\t\t\t\tch = '<';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontinue;\n\t\t}\n\t\t// Append skipped/buffered characters and the encoded entity:\n\t\tif (i !== last) out += str.slice(last, i);\n\t\tout += ch;\n\t\t// Start the next seek/buffer after the entity's offset:\n\t\tlast = i + 1;\n\t}\n\tif (i !== last) out += str.slice(last, i);\n\treturn out;\n}\n\nexport let indent = (s, char) =>\n\tString(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n\nexport let isLargeString = (s, length, ignoreLines) =>\n\tString(s).length > (length || 40) ||\n\t(!ignoreLines && String(s).indexOf('\\n') !== -1) ||\n\tString(s).indexOf('<') !== -1;\n\nconst JS_TO_CSS = {};\n\nconst IS_NON_DIMENSIONAL = new Set([\n\t'animation-iteration-count',\n\t'border-image-outset',\n\t'border-image-slice',\n\t'border-image-width',\n\t'box-flex',\n\t'box-flex-group',\n\t'box-ordinal-group',\n\t'column-count',\n\t'fill-opacity',\n\t'flex',\n\t'flex-grow',\n\t'flex-negative',\n\t'flex-order',\n\t'flex-positive',\n\t'flex-shrink',\n\t'flood-opacity',\n\t'font-weight',\n\t'grid-column',\n\t'grid-row',\n\t'line-clamp',\n\t'line-height',\n\t'opacity',\n\t'order',\n\t'orphans',\n\t'stop-opacity',\n\t'stroke-dasharray',\n\t'stroke-dashoffset',\n\t'stroke-miterlimit',\n\t'stroke-opacity',\n\t'stroke-width',\n\t'tab-size',\n\t'widows',\n\t'z-index',\n\t'zoom'\n]);\n\nconst CSS_REGEX = /[A-Z]/g;\n// Convert an Object style to a CSSText string\nexport function styleObjToCss(s) {\n\tlet str = '';\n\tfor (let prop in s) {\n\t\tlet val = s[prop];\n\t\tif (val != null && val !== '') {\n\t\t\tconst name =\n\t\t\t\tprop[0] == '-'\n\t\t\t\t\t? prop\n\t\t\t\t\t: JS_TO_CSS[prop] ||\n\t\t\t\t\t (JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase());\n\n\t\t\tlet suffix = ';';\n\t\t\tif (\n\t\t\t\ttypeof val === 'number' &&\n\t\t\t\t// Exclude custom-attributes\n\t\t\t\t!name.startsWith('--') &&\n\t\t\t\t!IS_NON_DIMENSIONAL.has(name)\n\t\t\t) {\n\t\t\t\tsuffix = 'px;';\n\t\t\t}\n\t\t\tstr = str + name + ':' + val + suffix;\n\t\t}\n\t}\n\treturn str || undefined;\n}\n\n/**\n * Get flattened children from the children prop\n * @param {Array} accumulator\n * @param {any} children A `props.children` opaque object.\n * @returns {Array} accumulator\n * @private\n */\nexport function getChildren(accumulator, children) {\n\tif (Array.isArray(children)) {\n\t\tchildren.reduce(getChildren, accumulator);\n\t} else if (children != null && children !== false) {\n\t\taccumulator.push(children);\n\t}\n\treturn accumulator;\n}\n\nfunction markAsDirty() {\n\tthis.__d = true;\n}\n\nexport function createComponent(vnode, context) {\n\treturn {\n\t\t__v: vnode,\n\t\tcontext,\n\t\tprops: vnode.props,\n\t\t// silently drop state updates\n\t\tsetState: markAsDirty,\n\t\tforceUpdate: markAsDirty,\n\t\t__d: true,\n\t\t// hooks\n\t\t__h: []\n\t};\n}\n\n// Necessary for createContext api. Setting this property will pass\n// the context value as `this.context` just for this component.\nexport function getContext(nodeName, context) {\n\tlet cxType = nodeName.contextType;\n\tlet provider = cxType && context[cxType.__c];\n\treturn cxType != null\n\t\t? provider\n\t\t\t? provider.props.value\n\t\t\t: cxType.__\n\t\t: context;\n}\n\n/**\n * @template T\n */\nexport class Deferred {\n\tconstructor() {\n\t\t// eslint-disable-next-line lines-around-comment\n\t\t/** @type {Promise<T>} */\n\t\tthis.promise = new Promise((resolve, reject) => {\n\t\t\tthis.resolve = resolve;\n\t\t\tthis.reject = reject;\n\t\t});\n\t}\n}\n","// Options hooks\nexport const DIFF = '__b';\nexport const RENDER = '__r';\nexport const DIFFED = 'diffed';\nexport const COMMIT = '__c';\nexport const SKIP_EFFECTS = '__s';\nexport const CATCH_ERROR = '__e';\n\n// VNode properties\nexport const COMPONENT = '__c';\nexport const CHILDREN = '__k';\nexport const PARENT = '__';\nexport const MASK = '__m';\n\n// Component properties\nexport const VNODE = '__v';\nexport const DIRTY = '__d';\nexport const NEXT_STATE = '__s';\nexport const CHILD_DID_SUSPEND = '__c';\n","import {\n\tencodeEntities,\n\tstyleObjToCss,\n\tUNSAFE_NAME,\n\tNAMESPACE_REPLACE_REGEX,\n\tHTML_LOWER_CASE,\n\tSVG_CAMEL_CASE\n} from './lib/util.js';\nimport { options, h, Fragment } from 'preact';\nimport {\n\tCHILDREN,\n\tCOMMIT,\n\tCOMPONENT,\n\tDIFF,\n\tDIFFED,\n\tDIRTY,\n\tNEXT_STATE,\n\tPARENT,\n\tRENDER,\n\tSKIP_EFFECTS,\n\tVNODE,\n\tCATCH_ERROR\n} from './lib/constants.js';\n\nconst EMPTY_ARR = [];\nconst isArray = Array.isArray;\nconst assign = Object.assign;\n\n// Global state for the current render pass\nlet beforeDiff, afterDiff, renderHook, ummountHook;\n\n/**\n * Render Preact JSX + Components to an HTML string.\n * @param {VNode} vnode\tJSX Element / VNode to render\n * @param {Object} [context={}] Initial root context object\n * @param {RendererState} [_rendererState] for internal use\n * @returns {string} serialized HTML\n */\nexport function renderToString(vnode, context, _rendererState) {\n\t// Performance optimization: `renderToString` is synchronous and we\n\t// therefore don't execute any effects. To do that we pass an empty\n\t// array to `options._commit` (`__c`). But we can go one step further\n\t// and avoid a lot of dirty checks and allocations by setting\n\t// `options._skipEffects` (`__s`) too.\n\tconst previousSkipEffects = options[SKIP_EFFECTS];\n\toptions[SKIP_EFFECTS] = true;\n\n\t// store options hooks once before each synchronous render call\n\tbeforeDiff = options[DIFF];\n\tafterDiff = options[DIFFED];\n\trenderHook = options[RENDER];\n\tummountHook = options.unmount;\n\n\tconst parent = h(Fragment, null);\n\tparent[CHILDREN] = [vnode];\n\n\ttry {\n\t\tconst rendered = _renderToString(\n\t\t\tvnode,\n\t\t\tcontext || EMPTY_OBJ,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tparent,\n\t\t\tfalse,\n\t\t\t_rendererState\n\t\t);\n\n\t\tif (Array.isArray(rendered)) {\n\t\t\treturn rendered.join('');\n\t\t}\n\t\treturn rendered;\n\t} catch (e) {\n\t\tif (e.then) {\n\t\t\tthrow new Error('Use \"renderToStringAsync\" for suspenseful rendering.');\n\t\t}\n\n\t\tthrow e;\n\t} finally {\n\t\t// options._commit, we don't schedule any effects in this library right now,\n\t\t// so we can pass an empty queue to this hook.\n\t\tif (options[COMMIT]) options[COMMIT](vnode, EMPTY_ARR);\n\t\toptions[SKIP_EFFECTS] = previousSkipEffects;\n\t\tEMPTY_ARR.length = 0;\n\t}\n}\n\n/**\n * Render Preact JSX + Components to an HTML string.\n * @param {VNode} vnode\tJSX Element / VNode to render\n * @param {Object} [context={}] Initial root context object\n * @returns {string} serialized HTML\n */\nexport async function renderToStringAsync(vnode, context) {\n\t// Performance optimization: `renderToString` is synchronous and we\n\t// therefore don't execute any effects. To do that we pass an empty\n\t// array to `options._commit` (`__c`). But we can go one step further\n\t// and avoid a lot of dirty checks and allocations by setting\n\t// `options._skipEffects` (`__s`) too.\n\tconst previousSkipEffects = options[SKIP_EFFECTS];\n\toptions[SKIP_EFFECTS] = true;\n\n\t// store options hooks once before each synchronous render call\n\tbeforeDiff = options[DIFF];\n\tafterDiff = options[DIFFED];\n\trenderHook = options[RENDER];\n\tummountHook = options.unmount;\n\n\tconst parent = h(Fragment, null);\n\tparent[CHILDREN] = [vnode];\n\n\ttry {\n\t\tconst rendered = await _renderToString(\n\t\t\tvnode,\n\t\t\tcontext || EMPTY_OBJ,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tparent,\n\t\t\ttrue,\n\t\t\tundefined\n\t\t);\n\n\t\tif (Array.isArray(rendered)) {\n\t\t\tlet count = 0;\n\t\t\tlet resolved = rendered;\n\n\t\t\t// Resolving nested Promises with a maximum depth of 25\n\t\t\twhile (\n\t\t\t\tresolved.some((element) => typeof element.then === 'function') &&\n\t\t\t\tcount++ < 25\n\t\t\t) {\n\t\t\t\tresolved = (await Promise.all(resolved)).flat();\n\t\t\t}\n\n\t\t\treturn resolved.join('');\n\t\t}\n\n\t\treturn rendered;\n\t} finally {\n\t\t// options._commit, we don't schedule any effects in this library right now,\n\t\t// so we can pass an empty queue to this hook.\n\t\tif (options[COMMIT]) options[COMMIT](vnode, EMPTY_ARR);\n\t\toptions[SKIP_EFFECTS] = previousSkipEffects;\n\t\tEMPTY_ARR.length = 0;\n\t}\n}\n\n// Installed as setState/forceUpdate for function components\nfunction markAsDirty() {\n\tthis.__d = true;\n}\n\nconst EMPTY_OBJ = {};\n\n/**\n * @param {VNode} vnode\n * @param {Record<string, unknown>} context\n */\nfunction renderClassComponent(vnode, context) {\n\tlet type = /** @type {import(\"preact\").ComponentClass<typeof vnode.props>} */ (vnode.type);\n\n\tlet isMounting = true;\n\tlet c;\n\tif (vnode[COMPONENT]) {\n\t\tisMounting = false;\n\t\tc = vnode[COMPONENT];\n\t\tc.state = c[NEXT_STATE];\n\t} else {\n\t\tc = new type(vnode.props, context);\n\t}\n\n\tvnode[COMPONENT] = c;\n\tc[VNODE] = vnode;\n\n\tc.props = vnode.props;\n\tc.context = context;\n\t// turn off stateful re-rendering:\n\tc[DIRTY] = true;\n\n\tif (c.state == null) c.state = EMPTY_OBJ;\n\n\tif (c[NEXT_STATE] == null) {\n\t\tc[NEXT_STATE] = c.state;\n\t}\n\n\tif (type.getDerivedStateFromProps) {\n\t\tc.state = assign(\n\t\t\t{},\n\t\t\tc.state,\n\t\t\ttype.getDerivedStateFromProps(c.props, c.state)\n\t\t);\n\t} else if (isMounting && c.componentWillMount) {\n\t\tc.componentWillMount();\n\n\t\t// If the user called setState in cWM we need to flush pending,\n\t\t// state updates. This is the same behaviour in React.\n\t\tc.state = c[NEXT_STATE] !== c.state ? c[NEXT_STATE] : c.state;\n\t} else if (!isMounting && c.componentWillUpdate) {\n\t\tc.componentWillUpdate();\n\t}\n\n\tif (renderHook) renderHook(vnode);\n\n\treturn c.render(c.props, c.state, context);\n}\n\n/**\n * Recursively render VNodes to HTML.\n * @param {VNode|any} vnode\n * @param {any} context\n * @param {boolean} isSvgMode\n * @param {any} selectValue\n * @param {VNode} parent\n * @param {boolean} asyncMode\n * @param {RendererState | undefined} [renderer]\n * @returns {string | Promise<string> | (string | Promise<string>)[]}\n */\nfunction _renderToString(\n\tvnode,\n\tcontext,\n\tisSvgMode,\n\tselectValue,\n\tparent,\n\tasyncMode,\n\trenderer\n) {\n\t// Ignore non-rendered VNodes/values\n\tif (vnode == null || vnode === true || vnode === false || vnode === '') {\n\t\treturn '';\n\t}\n\n\t// Text VNodes: escape as HTML\n\tif (typeof vnode !== 'object') {\n\t\tif (typeof vnode === 'function') return '';\n\t\treturn encodeEntities(vnode + '');\n\t}\n\n\t// Recurse into children / Arrays\n\tif (isArray(vnode)) {\n\t\tlet rendered = '',\n\t\t\trenderArray;\n\t\tparent[CHILDREN] = vnode;\n\t\tfor (let i = 0; i < vnode.length; i++) {\n\t\t\tlet child = vnode[i];\n\t\t\tif (child == null || typeof child === 'boolean') continue;\n\n\t\t\tconst childRender = _renderToString(\n\t\t\t\tchild,\n\t\t\t\tcontext,\n\t\t\t\tisSvgMode,\n\t\t\t\tselectValue,\n\t\t\t\tparent,\n\t\t\t\tasyncMode,\n\t\t\t\trenderer\n\t\t\t);\n\n\t\t\tif (typeof childRender === 'string') {\n\t\t\t\trendered += childRender;\n\t\t\t} else {\n\t\t\t\trenderArray = renderArray || [];\n\n\t\t\t\tif (rendered) renderArray.push(rendered);\n\n\t\t\t\trendered = '';\n\n\t\t\t\tif (Array.isArray(childRender)) {\n\t\t\t\t\trenderArray.push(...childRender);\n\t\t\t\t} else {\n\t\t\t\t\trenderArray.push(childRender);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (renderArray) {\n\t\t\tif (rendered) renderArray.push(rendered);\n\t\t\treturn renderArray;\n\t\t}\n\n\t\treturn rendered;\n\t}\n\n\t// VNodes have {constructor:undefined} to prevent JSON injection:\n\tif (vnode.constructor !== undefined) return '';\n\n\tvnode[PARENT] = parent;\n\tif (beforeDiff) beforeDiff(vnode);\n\n\tlet type = vnode.type,\n\t\tprops = vnode.props,\n\t\tcctx = context,\n\t\tcontextType,\n\t\trendered,\n\t\tcomponent;\n\n\t// Invoke rendering on Components\n\tif (typeof type === 'function') {\n\t\tif (type === Fragment) {\n\t\t\t// Serialized precompiled JSX.\n\t\t\tif (props.tpl) {\n\t\t\t\tlet out = '';\n\t\t\t\tfor (let i = 0; i < props.tpl.length; i++) {\n\t\t\t\t\tout += props.tpl[i];\n\n\t\t\t\t\tif (props.exprs && i < props.exprs.length) {\n\t\t\t\t\t\tconst value = props.exprs[i];\n\t\t\t\t\t\tif (value == null) continue;\n\n\t\t\t\t\t\t// Check if we're dealing with a vnode or an array of nodes\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof value === 'object' &&\n\t\t\t\t\t\t\t(value.constructor === undefined || isArray(value))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tout += _renderToString(\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Values are pre-escaped by the JSX transform\n\t\t\t\t\t\t\tout += value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out;\n\t\t\t} else if (props.UNSTABLE_comment) {\n\t\t\t\t// Fragments are the least used components of core that's why\n\t\t\t\t// branching here for comments has the least effect on perf.\n\t\t\t\treturn '<!--' + encodeEntities(props.UNSTABLE_comment || '') + '-->';\n\t\t\t}\n\n\t\t\trendered = props.children;\n\t\t} else {\n\t\t\tcontextType = type.contextType;\n\t\t\tif (contextType != null) {\n\t\t\t\tlet provider = context[contextType.__c];\n\t\t\t\tcctx = provider ? provider.props.value : contextType.__;\n\t\t\t}\n\n\t\t\tif (type.prototype && typeof type.prototype.render === 'function') {\n\t\t\t\trendered = /**#__NOINLINE__**/ renderClassComponent(vnode, cctx);\n\t\t\t\tcomponent = vnode[COMPONENT];\n\t\t\t} else {\n\t\t\t\tcomponent = {\n\t\t\t\t\t__v: vnode,\n\t\t\t\t\tprops,\n\t\t\t\t\tcontext: cctx,\n\t\t\t\t\t// silently drop state updates\n\t\t\t\t\tsetState: markAsDirty,\n\t\t\t\t\tforceUpdate: markAsDirty,\n\t\t\t\t\t__d: true,\n\t\t\t\t\t// hooks\n\t\t\t\t\t__h: []\n\t\t\t\t};\n\t\t\t\tvnode[COMPONENT] = component;\n\n\t\t\t\t// If a hook invokes setState() to invalidate the component during rendering,\n\t\t\t\t// re-render it up to 25 times to allow \"settling\" of memoized states.\n\t\t\t\t// Note:\n\t\t\t\t// This will need to be updated for Preact 11 to use internal.flags rather than component._dirty:\n\t\t\t\t// https://github.com/preactjs/preact/blob/d4ca6fdb19bc715e49fd144e69f7296b2f4daa40/src/diff/component.js#L35-L44\n\t\t\t\tlet count = 0;\n\t\t\t\twhile (component[DIRTY] && count++ < 25) {\n\t\t\t\t\tcomponent[DIRTY] = false;\n\n\t\t\t\t\tif (renderHook) renderHook(vnode);\n\n\t\t\t\t\trendered = type.call(component, props, cctx);\n\t\t\t\t}\n\t\t\t\tcomponent[DIRTY] = true;\n\t\t\t}\n\n\t\t\tif (component.getChildContext != null) {\n\t\t\t\tcontext = assign({}, context, component.getChildContext());\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(type.getDerivedStateFromError || component.componentDidCatch) &&\n\t\t\t\toptions.errorBoundaries\n\t\t\t) {\n\t\t\t\tlet str = '';\n\t\t\t\t// When a component returns a Fragment node we flatten it in core, so we\n\t\t\t\t// need to mirror that logic here too\n\t\t\t\tlet isTopLevelFragment =\n\t\t\t\t\trendered != null &&\n\t\t\t\t\trendered.type === Fragment &&\n\t\t\t\t\trendered.key == null;\n\t\t\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\t\t\ttry {\n\t\t\t\t\tstr = _renderToString(\n\t\t\t\t\t\trendered,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t);\n\t\t\t\t\treturn str;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (type.getDerivedStateFromError) {\n\t\t\t\t\t\tcomponent[NEXT_STATE] = type.getDerivedStateFromError(err);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.componentDidCatch) {\n\t\t\t\t\t\tcomponent.componentDidCatch(err, {});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component[DIRTY]) {\n\t\t\t\t\t\trendered = renderClassComponent(vnode, context);\n\t\t\t\t\t\tcomponent = vnode[COMPONENT];\n\n\t\t\t\t\t\tif (component.getChildContext != null) {\n\t\t\t\t\t\t\tcontext = assign({}, context, component.getChildContext());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet isTopLevelFragment =\n\t\t\t\t\t\t\trendered != null &&\n\t\t\t\t\t\t\trendered.type === Fragment &&\n\t\t\t\t\t\t\trendered.key == null;\n\t\t\t\t\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\t\t\t\t\tstr = _renderToString(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn str;\n\t\t\t\t} finally {\n\t\t\t\t\tif (afterDiff) afterDiff(vnode);\n\t\t\t\t\tvnode[PARENT] = null;\n\n\t\t\t\t\tif (ummountHook) ummountHook(vnode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// When a component returns a Fragment node we flatten it in core, so we\n\t\t// need to mirror that logic here too\n\t\tlet isTopLevelFragment =\n\t\t\trendered != null &&\n\t\t\trendered.type === Fragment &&\n\t\t\trendered.key == null &&\n\t\t\trendered.props.tpl == null;\n\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\ttry {\n\t\t\t// Recurse into children before invoking the after-diff hook\n\t\t\tconst str = _renderToString(\n\t\t\t\trendered,\n\t\t\t\tcontext,\n\t\t\t\tisSvgMode,\n\t\t\t\tselectValue,\n\t\t\t\tvnode,\n\t\t\t\tasyncMode,\n\t\t\t\trenderer\n\t\t\t);\n\n\t\t\tif (afterDiff) afterDiff(vnode);\n\t\t\t// when we are dealing with suspense we can't do this...\n\t\t\tvnode[PARENT] = null;\n\n\t\t\tif (options.unmount) options.unmount(vnode);\n\n\t\t\treturn str;\n\t\t} catch (error) {\n\t\t\tif (!asyncMode && renderer && renderer.onError) {\n\t\t\t\tlet res = renderer.onError(error, vnode, (child) =>\n\t\t\t\t\t_renderToString(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tif (res !== undefined) return res;\n\n\t\t\t\tlet errorHook = options[CATCH_ERROR];\n\t\t\t\tif (errorHook) errorHook(error, vnode);\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!asyncMode) throw error;\n\n\t\t\tif (!error || typeof error.then !== 'function') throw error;\n\n\t\t\tconst renderNestedChildren = () => {\n\t\t\t\ttry {\n\t\t\t\t\treturn _renderToString(\n\t\t\t\t\t\trendered,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (!e || typeof e.then !== 'function') throw e;\n\n\t\t\t\t\treturn e.then(\n\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t_renderToString(\n\t\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t() => renderNestedChildren()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn error.then(() => renderNestedChildren());\n\t\t}\n\t}\n\n\t// Serialize Element VNodes to HTML\n\tlet s = '<' + type,\n\t\thtml = '',\n\t\tchildren;\n\n\tfor (let name in props) {\n\t\tlet v = props[name];\n\n\t\tswitch (name) {\n\t\t\tcase 'children':\n\t\t\t\tchildren = v;\n\t\t\t\tcontinue;\n\n\t\t\t// VDOM-specific props\n\t\t\tcase 'key':\n\t\t\tcase 'ref':\n\t\t\tcase '__self':\n\t\t\tcase '__source':\n\t\t\t\tcontinue;\n\n\t\t\t// prefer for/class over htmlFor/className\n\t\t\tcase 'htmlFor':\n\t\t\t\tif ('for' in props) continue;\n\t\t\t\tname = 'for';\n\t\t\t\tbreak;\n\t\t\tcase 'className':\n\t\t\t\tif ('class' in props) continue;\n\t\t\t\tname = 'class';\n\t\t\t\tbreak;\n\n\t\t\t// Form element reflected properties\n\t\t\tcase 'defaultChecked':\n\t\t\t\tname = 'checked';\n\t\t\t\tbreak;\n\t\t\tcase 'defaultSelected':\n\t\t\t\tname = 'selected';\n\t\t\t\tbreak;\n\n\t\t\t// Special value attribute handling\n\t\t\tcase 'defaultValue':\n\t\t\tcase 'value':\n\t\t\t\tname = 'value';\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// <textarea value=\"a&b\"> --> <textarea>a&b</textarea>\n\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tchildren = v;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t// <select value> is serialized as a selected attribute on the matching option child\n\t\t\t\t\tcase 'select':\n\t\t\t\t\t\tselectValue = v;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t// Add a selected attribute to <option> if its value matches the parent <select> value\n\t\t\t\t\tcase 'option':\n\t\t\t\t\t\tif (selectValue == v && !('selected' in props)) {\n\t\t\t\t\t\t\ts = s + ' selected';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'dangerouslySetInnerHTML':\n\t\t\t\thtml = v && v.__html;\n\t\t\t\tcontinue;\n\n\t\t\t// serialize object styles to a CSS string\n\t\t\tcase 'style':\n\t\t\t\tif (typeof v === 'object') {\n\t\t\t\t\tv = styleObjToCss(v);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'acceptCharset':\n\t\t\t\tname = 'accept-charset';\n\t\t\t\tbreak;\n\t\t\tcase 'httpEquiv':\n\t\t\t\tname = 'http-equiv';\n\t\t\t\tbreak;\n\n\t\t\tdefault: {\n\t\t\t\tif (NAMESPACE_REPLACE_REGEX.test(name)) {\n\t\t\t\t\tname = name.replace(NAMESPACE_REPLACE_REGEX, '$1:$2').toLowerCase();\n\t\t\t\t} else if (UNSAFE_NAME.test(name)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ((name[4] === '-' || name === 'draggable') && v != null) {\n\t\t\t\t\t// serialize boolean aria-xyz or draggable attribute values as strings\n\t\t\t\t\t// `draggable` is an enumerated attribute and not Boolean. A value of `true` or `false` is mandatory\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable\n\t\t\t\t\tv += '';\n\t\t\t\t} else if (isSvgMode) {\n\t\t\t\t\tif (SVG_CAMEL_CASE.test(name)) {\n\t\t\t\t\t\tname =\n\t\t\t\t\t\t\tname === 'panose1'\n\t\t\t\t\t\t\t\t? 'panose-1'\n\t\t\t\t\t\t\t\t: name.replace(/([A-Z])/g, '-$1').toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t} else if (HTML_LOWER_CASE.test(name)) {\n\t\t\t\t\tname = name.toLowerCase();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// write this attribute to the buffer\n\t\tif (v != null && v !== false && typeof v !== 'function') {\n\t\t\tif (v === true || v === '') {\n\t\t\t\ts = s + ' ' + name;\n\t\t\t} else {\n\t\t\t\ts = s + ' ' + name + '=\"' + encodeEntities(v + '') + '\"';\n\t\t\t}\n\t\t}\n\t}\n\n\tif (UNSAFE_NAME.test(type)) {\n\t\t// this seems to performs a lot better than throwing\n\t\t// return '<!-- -->';\n\t\tthrow new Error(`${type} is not a valid HTML tag name in ${s}>`);\n\t}\n\n\tif (html) {\n\t\t// dangerouslySetInnerHTML defined this node's contents\n\t} else if (typeof children === 'string') {\n\t\t// single text child\n\t\thtml = encodeEntities(children);\n\t} else if (children != null && children !== false && children !== true) {\n\t\t// recurse into this element VNode's children\n\t\tlet childSvgMode =\n\t\t\ttype === 'svg' || (type !== 'foreignObject' && isSvgMode);\n\t\thtml = _renderToString(\n\t\t\tchildren,\n\t\t\tcontext,\n\t\t\tchildSvgMode,\n\t\t\tselectValue,\n\t\t\tvnode,\n\t\t\tasyncMode,\n\t\t\trenderer\n\t\t);\n\t}\n\n\tif (afterDiff) afterDiff(vnode);\n\n\t// TODO: this was commented before\n\tvnode[PARENT] = null;\n\n\tif (ummountHook) ummountHook(vnode);\n\n\t// Emit self-closing tag for empty void elements:\n\tif (!html && SELF_CLOSING.has(type)) {\n\t\treturn s + '/>';\n\t}\n\n\tconst endTag = '</' + type + '>';\n\tconst startTag = s + '>';\n\n\tif (Array.isArray(html)) return [startTag, ...html, endTag];\n\telse if (typeof html !== 'string') return [startTag, html, endTag];\n\treturn startTag + html + endTag;\n}\n\nconst SELF_CLOSING = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'command',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'keygen',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr'\n]);\n\nexport default renderToString;\nexport const render = renderToString;\nexport const renderToStaticMarkup = renderToString;\n","/* eslint-disable no-var, key-spacing, object-curly-spacing, prefer-arrow-callback, semi, keyword-spacing */\n\n// function initPreactIslandElement() {\n// \tclass PreactIslandElement extends HTMLElement {\n// \t\tconnectedCallback() {\n// \t\t\tvar d = this;\n// \t\t\tif (!d.isConnected) return;\n\n// \t\t\tlet i = this.getAttribute('data-target');\n// \t\t\tif (!i) return;\n\n// \t\t\tvar s,\n// \t\t\t\te,\n// \t\t\t\tc = document.createNodeIterator(document, 128);\n// \t\t\twhile (c.nextNode()) {\n// \t\t\t\tlet n = c.referenceNode;\n\n// \t\t\t\tif (n.data == 'preact-island:' + i) s = n;\n// \t\t\t\telse if (n.data == '/preact-island:' + i) e = n;\n// \t\t\t\tif (s && e) break;\n// \t\t\t}\n// \t\t\tif (s && e) {\n// \t\t\t\trequestAnimationFrame(() => {\n// \t\t\t\t\tvar p = e.previousSibling;\n// \t\t\t\t\twhile (p != s) {\n// \t\t\t\t\t\tif (!p || p == s) break;\n// \t\t\t\t\t\te.parentNode.removeChild(p);\n// \t\t\t\t\t\tp = e.previousSibling;\n// \t\t\t\t\t}\n\n// \t\t\t\t\tc = s;\n// \t\t\t\t\twhile (d.firstChild) {\n// \t\t\t\t\t\ts = d.firstChild;\n// \t\t\t\t\t\td.removeChild(s);\n// \t\t\t\t\t\tc.after(s);\n// \t\t\t\t\t\tc = s;\n// \t\t\t\t\t}\n\n// \t\t\t\t\td.parentNode.removeChild(d);\n// \t\t\t\t});\n// \t\t\t}\n// \t\t}\n// \t}\n\n// \tcustomElements.define('preact-island', PreactIslandElement);\n// }\n\n// To modify the INIT_SCRIPT, uncomment the above code, modify it, and paste it into https://try.terser.org/.\nconst INIT_SCRIPT = `class e extends HTMLElement{connectedCallback(){var e=this;if(!e.isConnected)return;let t=this.getAttribute(\"data-target\");if(t){for(var r,a,i=document.createNodeIterator(document,128);i.nextNode();){let e=i.referenceNode;if(e.data==\"preact-island:\"+t?r=e:e.data==\"/preact-island:\"+t&&(a=e),r&&a)break}r&&a&&requestAnimationFrame((()=>{for(var t=a.previousSibling;t!=r&&t&&t!=r;)a.parentNode.removeChild(t),t=a.previousSibling;for(i=r;e.firstChild;)r=e.firstChild,e.removeChild(r),i.after(r),i=r;e.parentNode.removeChild(e)}))}}}customElements.define(\"preact-island\",e);`;\n\nexport function createInitScript() {\n\treturn `<script>(function(){${INIT_SCRIPT}}())</script>`;\n}\n\n/**\n * @param {string} id\n * @param {string} content\n * @returns {string}\n */\nexport function createSubtree(id, content) {\n\treturn `<preact-island hidden data-target=\"${id}\">${content}</preact-island>`;\n}\n","import { renderToString } from '../index.js';\nimport { CHILD_DID_SUSPEND, COMPONENT, PARENT } from './constants.js';\nimport { Deferred } from './util.js';\nimport { createInitScript, createSubtree } from './client.js';\n\n/**\n * @param {VNode} vnode\n * @param {RenderToChunksOptions} options\n * @returns {Promise<void>}\n */\nexport async function renderToChunks(vnode, { context, onWrite, abortSignal }) {\n\tcontext = context || {};\n\n\t/** @type {RendererState} */\n\tconst renderer = {\n\t\tstart: Date.now(),\n\t\tabortSignal,\n\t\tonWrite,\n\t\tonError: handleError,\n\t\tsuspended: []\n\t};\n\n\t// Synchronously render the shell\n\t// @ts-ignore - using third internal RendererState argument\n\tconst shell = renderToString(vnode, context, renderer);\n\tonWrite(shell);\n\n\t// Wait for any suspended sub-trees if there are any\n\tconst len = renderer.suspended.length;\n\tif (len > 0) {\n\t\tonWrite('<div hidden>');\n\t\tonWrite(createInitScript(len));\n\t\t// We should keep checking all promises\n\t\tawait forkPromises(renderer);\n\t\tonWrite('</div>');\n\t}\n}\n\nasync function forkPromises(renderer) {\n\tif (renderer.suspended.length > 0) {\n\t\tconst suspensions = [...renderer.suspended];\n\t\tawait Promise.all(renderer.suspended.map((s) => s.promise));\n\t\trenderer.suspended = renderer.suspended.filter(\n\t\t\t(s) => !suspensions.includes(s)\n\t\t);\n\t\tawait forkPromises(renderer);\n\t}\n}\n\n/** @type {RendererErrorHandler} */\nfunction handleError(error, vnode, renderChild) {\n\tif (!error || !error.then) return;\n\n\t// walk up to the Suspense boundary\n\twhile ((vnode = vnode[PARENT])) {\n\t\tlet component = vnode[COMPONENT];\n\t\tif (component && component[CHILD_DID_SUSPEND]) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!vnode) return;\n\n\tconst id = vnode.__v;\n\tconst found = this.suspended.find((x) => x.id === id);\n\tconst race = new Deferred();\n\n\tconst abortSignal = this.abortSignal;\n\tif (abortSignal) {\n\t\t// @ts-ignore 2554 - implicit undefined arg\n\t\tif (abortSignal.aborted) race.resolve();\n\t\telse abortSignal.addEventListener('abort', race.resolve);\n\t}\n\n\tconst promise = error.then(\n\t\t() => {\n\t\t\tif (abortSignal && abortSignal.aborted) return;\n\t\t\tconst child = renderChild(vnode.props.children);\n\t\t\tif (child) this.onWrite(createSubtree(id, child));\n\t\t},\n\t\t// TODO: Abort and send hydration code snippet to client\n\t\t// to attempt to recover during hydration\n\t\tthis.onError\n\t);\n\n\tthis.suspended.push({\n\t\tid,\n\t\tvnode,\n\t\tpromise: Promise.race([promise, race.promise])\n\t});\n\n\tconst fallback = renderChild(vnode.props.fallback);\n\n\treturn found\n\t\t? ''\n\t\t: `<!--preact-island:${id}-->${fallback}<!--/preact-island:${id}-->`;\n}\n","import { PassThrough } from 'node:stream';\nimport { renderToChunks } from './lib/chunked.js';\n\n/**\n * @typedef {object} RenderToPipeableStreamOptions\n * @property {() => void} [onShellReady]\n * @property {() => void} [onAllReady]\n * @property {(error) => void} [onError]\n */\n\n/**\n * @typedef {object} PipeableStream\n * @property {() => void} abort\n * @property {(writable: import('stream').Writable) => void} pipe\n */\n\n/**\n * @param {import('preact').VNode} vnode\n * @param {RenderToPipeableStreamOptions} options\n * @param {any} [context]\n * @returns {PipeableStream}\n */\nexport function renderToPipeableStream(vnode, options, context) {\n\tconst encoder = new TextEncoder('utf-8');\n\n\tconst controller = new AbortController();\n\tconst stream = new PassThrough();\n\n\trenderToChunks(vnode, {\n\t\tcontext,\n\t\tabortSignal: controller.signal,\n\t\tonError: (error) => {\n\t\t\tif (options.onError) {\n\t\t\t\toptions.onError(error);\n\t\t\t}\n\t\t\tcontroller.abort(error);\n\t\t},\n\t\tonWrite(s) {\n\t\t\tstream.write(encoder.encode(s));\n\t\t}\n\t})\n\t\t.then(() => {\n\t\t\toptions.onAllReady && options.onAllReady();\n\t\t\tstream.end();\n\t\t})\n\t\t.catch((error) => {\n\t\t\tstream.destroy(error);\n\t\t});\n\n\tPromise.resolve().then(() => {\n\t\toptions.onShellReady && options.onShellReady();\n\t});\n\n\treturn {\n\t\tabort() {\n\t\t\tcontroller.abort();\n\t\t\tstream.destroy(new Error('aborted'));\n\t\t},\n\t\t/**\n\t\t * @param {import(\"stream\").Writable} writable\n\t\t */\n\t\tpipe(writable) {\n\t\t\tstream.pipe(writable, { end: true });\n\t\t}\n\t};\n}\n"],"names":["UNSAFE_NAME","NAMESPACE_REPLACE_REGEX","HTML_LOWER_CASE","SVG_CAMEL_CASE","ENCODED_ENTITIES","encodeEntities","str","length","test","last","i","out","ch","charCodeAt","slice","JS_TO_CSS","IS_NON_DIMENSIONAL","Set","CSS_REGEX","styleObjToCss","s","prop","val","name","replace","toLowerCase","suffix","startsWith","has","undefined","Deferred","constructor","promise","Promise","resolve","reject","DIFF","RENDER","DIFFED","COMMIT","SKIP_EFFECTS","CATCH_ERROR","COMPONENT","CHILDREN","PARENT","VNODE","DIRTY","NEXT_STATE","CHILD_DID_SUSPEND","EMPTY_ARR","isArray","Array","assign","Object","beforeDiff","afterDiff","renderHook","ummountHook","renderToString","vnode","context","_rendererState","previousSkipEffects","options","unmount","parent","h","Fragment","rendered","_renderToString","EMPTY_OBJ","join","e","then","Error","markAsDirty","__d","renderClassComponent","type","isMounting","c","state","props","getDerivedStateFromProps","componentWillMount","componentWillUpdate","render","isSvgMode","selectValue","asyncMode","renderer","renderArray","child","childRender","push","cctx","contextType","component","tpl","exprs","value","UNSTABLE_comment","children","provider","__c","__","prototype","__v","setState","forceUpdate","__h","count","call","getChildContext","getDerivedStateFromError","componentDidCatch","errorBoundaries","isTopLevelFragment","key","err","error","onError","res","errorHook","renderNestedChildren","html","v","__html","childSvgMode","SELF_CLOSING","endTag","startTag","INIT_SCRIPT","createInitScript","createSubtree","id","content","renderToChunks","onWrite","abortSignal","start","Date","now","handleError","suspended","shell","len","forkPromises","suspensions","all","map","filter","includes","renderChild","found","find","x","race","aborted","addEventListener","fallback","renderToPipeableStream","encoder","TextEncoder","controller","AbortController","stream","PassThrough","signal","abort","write","encode","onAllReady","end","catch","destroy","onShellReady","pipe","writable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../../src/lib/util.js","../../../src/lib/constants.js","../../../src/index.js","../../../src/lib/client.js","../../../src/lib/chunked.js","../../../src/stream-node.js"],"sourcesContent":["export const VOID_ELEMENTS = /^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\nexport const UNSAFE_NAME = /[\\s\\n\\\\/='\"\\0<>]/;\nexport const NAMESPACE_REPLACE_REGEX = /^(xlink|xmlns|xml)([A-Z])/;\nexport const HTML_LOWER_CASE = /^accessK|^auto[A-Z]|^cell|^ch|^col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|spellC|src[A-Z]|tabI|useM|item[A-Z]/;\nexport const SVG_CAMEL_CASE = /^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/;\n\n// DOM properties that should NOT have \"px\" added when numeric\nconst ENCODED_ENTITIES = /[\"&<]/;\n\n/** @param {string} str */\nexport function encodeEntities(str) {\n\t// Skip all work for strings with no entities needing encoding:\n\tif (str.length === 0 || ENCODED_ENTITIES.test(str) === false) return str;\n\n\tlet last = 0,\n\t\ti = 0,\n\t\tout = '',\n\t\tch = '';\n\n\t// Seek forward in str until the next entity char:\n\tfor (; i < str.length; i++) {\n\t\tswitch (str.charCodeAt(i)) {\n\t\t\tcase 34:\n\t\t\t\tch = '"';\n\t\t\t\tbreak;\n\t\t\tcase 38:\n\t\t\t\tch = '&';\n\t\t\t\tbreak;\n\t\t\tcase 60:\n\t\t\t\tch = '<';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontinue;\n\t\t}\n\t\t// Append skipped/buffered characters and the encoded entity:\n\t\tif (i !== last) out = out + str.slice(last, i);\n\t\tout = out + ch;\n\t\t// Start the next seek/buffer after the entity's offset:\n\t\tlast = i + 1;\n\t}\n\tif (i !== last) out = out + str.slice(last, i);\n\treturn out;\n}\n\nexport let indent = (s, char) =>\n\tString(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n\nexport let isLargeString = (s, length, ignoreLines) =>\n\tString(s).length > (length || 40) ||\n\t(!ignoreLines && String(s).indexOf('\\n') !== -1) ||\n\tString(s).indexOf('<') !== -1;\n\nconst JS_TO_CSS = {};\n\nconst IS_NON_DIMENSIONAL = new Set([\n\t'animation-iteration-count',\n\t'border-image-outset',\n\t'border-image-slice',\n\t'border-image-width',\n\t'box-flex',\n\t'box-flex-group',\n\t'box-ordinal-group',\n\t'column-count',\n\t'fill-opacity',\n\t'flex',\n\t'flex-grow',\n\t'flex-negative',\n\t'flex-order',\n\t'flex-positive',\n\t'flex-shrink',\n\t'flood-opacity',\n\t'font-weight',\n\t'grid-column',\n\t'grid-row',\n\t'line-clamp',\n\t'line-height',\n\t'opacity',\n\t'order',\n\t'orphans',\n\t'stop-opacity',\n\t'stroke-dasharray',\n\t'stroke-dashoffset',\n\t'stroke-miterlimit',\n\t'stroke-opacity',\n\t'stroke-width',\n\t'tab-size',\n\t'widows',\n\t'z-index',\n\t'zoom'\n]);\n\nconst CSS_REGEX = /[A-Z]/g;\n// Convert an Object style to a CSSText string\nexport function styleObjToCss(s) {\n\tlet str = '';\n\tfor (let prop in s) {\n\t\tlet val = s[prop];\n\t\tif (val != null && val !== '') {\n\t\t\tconst name =\n\t\t\t\tprop[0] == '-'\n\t\t\t\t\t? prop\n\t\t\t\t\t: JS_TO_CSS[prop] ||\n\t\t\t\t\t (JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase());\n\n\t\t\tlet suffix = ';';\n\t\t\tif (\n\t\t\t\ttypeof val === 'number' &&\n\t\t\t\t// Exclude custom-attributes\n\t\t\t\t!name.startsWith('--') &&\n\t\t\t\t!IS_NON_DIMENSIONAL.has(name)\n\t\t\t) {\n\t\t\t\tsuffix = 'px;';\n\t\t\t}\n\t\t\tstr = str + name + ':' + val + suffix;\n\t\t}\n\t}\n\treturn str || undefined;\n}\n\n/**\n * Get flattened children from the children prop\n * @param {Array} accumulator\n * @param {any} children A `props.children` opaque object.\n * @returns {Array} accumulator\n * @private\n */\nexport function getChildren(accumulator, children) {\n\tif (Array.isArray(children)) {\n\t\tchildren.reduce(getChildren, accumulator);\n\t} else if (children != null && children !== false) {\n\t\taccumulator.push(children);\n\t}\n\treturn accumulator;\n}\n\nfunction markAsDirty() {\n\tthis.__d = true;\n}\n\nexport function createComponent(vnode, context) {\n\treturn {\n\t\t__v: vnode,\n\t\tcontext,\n\t\tprops: vnode.props,\n\t\t// silently drop state updates\n\t\tsetState: markAsDirty,\n\t\tforceUpdate: markAsDirty,\n\t\t__d: true,\n\t\t// hooks\n\t\t__h: new Array(0)\n\t};\n}\n\n// Necessary for createContext api. Setting this property will pass\n// the context value as `this.context` just for this component.\nexport function getContext(nodeName, context) {\n\tlet cxType = nodeName.contextType;\n\tlet provider = cxType && context[cxType.__c];\n\treturn cxType != null\n\t\t? provider\n\t\t\t? provider.props.value\n\t\t\t: cxType.__\n\t\t: context;\n}\n\n/**\n * @template T\n */\nexport class Deferred {\n\tconstructor() {\n\t\t// eslint-disable-next-line lines-around-comment\n\t\t/** @type {Promise<T>} */\n\t\tthis.promise = new Promise((resolve, reject) => {\n\t\t\tthis.resolve = resolve;\n\t\t\tthis.reject = reject;\n\t\t});\n\t}\n}\n","// Options hooks\nexport const DIFF = '__b';\nexport const RENDER = '__r';\nexport const DIFFED = 'diffed';\nexport const COMMIT = '__c';\nexport const SKIP_EFFECTS = '__s';\nexport const CATCH_ERROR = '__e';\n\n// VNode properties\nexport const COMPONENT = '__c';\nexport const CHILDREN = '__k';\nexport const PARENT = '__';\nexport const MASK = '__m';\n\n// Component properties\nexport const VNODE = '__v';\nexport const DIRTY = '__d';\nexport const NEXT_STATE = '__s';\nexport const CHILD_DID_SUSPEND = '__c';\n","import {\n\tencodeEntities,\n\tstyleObjToCss,\n\tUNSAFE_NAME,\n\tNAMESPACE_REPLACE_REGEX,\n\tHTML_LOWER_CASE,\n\tSVG_CAMEL_CASE,\n\tcreateComponent\n} from './lib/util.js';\nimport { options, h, Fragment } from 'preact';\nimport {\n\tCHILDREN,\n\tCOMMIT,\n\tCOMPONENT,\n\tDIFF,\n\tDIFFED,\n\tDIRTY,\n\tNEXT_STATE,\n\tPARENT,\n\tRENDER,\n\tSKIP_EFFECTS,\n\tVNODE,\n\tCATCH_ERROR\n} from './lib/constants.js';\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst isArray = Array.isArray;\nconst assign = Object.assign;\nconst EMPTY_STR = '';\n\n// Global state for the current render pass\nlet beforeDiff, afterDiff, renderHook, ummountHook;\n\n/**\n * Render Preact JSX + Components to an HTML string.\n * @param {VNode} vnode\tJSX Element / VNode to render\n * @param {Object} [context={}] Initial root context object\n * @param {RendererState} [_rendererState] for internal use\n * @returns {string} serialized HTML\n */\nexport function renderToString(vnode, context, _rendererState) {\n\t// Performance optimization: `renderToString` is synchronous and we\n\t// therefore don't execute any effects. To do that we pass an empty\n\t// array to `options._commit` (`__c`). But we can go one step further\n\t// and avoid a lot of dirty checks and allocations by setting\n\t// `options._skipEffects` (`__s`) too.\n\tconst previousSkipEffects = options[SKIP_EFFECTS];\n\toptions[SKIP_EFFECTS] = true;\n\n\t// store options hooks once before each synchronous render call\n\tbeforeDiff = options[DIFF];\n\tafterDiff = options[DIFFED];\n\trenderHook = options[RENDER];\n\tummountHook = options.unmount;\n\n\tconst parent = h(Fragment, null);\n\tparent[CHILDREN] = [vnode];\n\n\ttry {\n\t\tconst rendered = _renderToString(\n\t\t\tvnode,\n\t\t\tcontext || EMPTY_OBJ,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tparent,\n\t\t\tfalse,\n\t\t\t_rendererState\n\t\t);\n\n\t\tif (isArray(rendered)) {\n\t\t\treturn rendered.join(EMPTY_STR);\n\t\t}\n\t\treturn rendered;\n\t} catch (e) {\n\t\tif (e.then) {\n\t\t\tthrow new Error('Use \"renderToStringAsync\" for suspenseful rendering.');\n\t\t}\n\n\t\tthrow e;\n\t} finally {\n\t\t// options._commit, we don't schedule any effects in this library right now,\n\t\t// so we can pass an empty queue to this hook.\n\t\tif (options[COMMIT]) options[COMMIT](vnode, EMPTY_ARR);\n\t\toptions[SKIP_EFFECTS] = previousSkipEffects;\n\t\tEMPTY_ARR.length = 0;\n\t}\n}\n\n/**\n * Render Preact JSX + Components to an HTML string.\n * @param {VNode} vnode\tJSX Element / VNode to render\n * @param {Object} [context={}] Initial root context object\n * @returns {string} serialized HTML\n */\nexport async function renderToStringAsync(vnode, context) {\n\t// Performance optimization: `renderToString` is synchronous and we\n\t// therefore don't execute any effects. To do that we pass an empty\n\t// array to `options._commit` (`__c`). But we can go one step further\n\t// and avoid a lot of dirty checks and allocations by setting\n\t// `options._skipEffects` (`__s`) too.\n\tconst previousSkipEffects = options[SKIP_EFFECTS];\n\toptions[SKIP_EFFECTS] = true;\n\n\t// store options hooks once before each synchronous render call\n\tbeforeDiff = options[DIFF];\n\tafterDiff = options[DIFFED];\n\trenderHook = options[RENDER];\n\tummountHook = options.unmount;\n\n\tconst parent = h(Fragment, null);\n\tparent[CHILDREN] = [vnode];\n\n\ttry {\n\t\tconst rendered = await _renderToString(\n\t\t\tvnode,\n\t\t\tcontext || EMPTY_OBJ,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tparent,\n\t\t\ttrue,\n\t\t\tundefined\n\t\t);\n\n\t\tif (isArray(rendered)) {\n\t\t\tlet count = 0;\n\t\t\tlet resolved = rendered;\n\n\t\t\t// Resolving nested Promises with a maximum depth of 25\n\t\t\twhile (\n\t\t\t\tresolved.some(\n\t\t\t\t\t(element) => element && typeof element.then === 'function'\n\t\t\t\t) &&\n\t\t\t\tcount++ < 25\n\t\t\t) {\n\t\t\t\tresolved = (await Promise.all(resolved)).flat();\n\t\t\t}\n\n\t\t\treturn resolved.join(EMPTY_STR);\n\t\t}\n\n\t\treturn rendered;\n\t} finally {\n\t\t// options._commit, we don't schedule any effects in this library right now,\n\t\t// so we can pass an empty queue to this hook.\n\t\tif (options[COMMIT]) options[COMMIT](vnode, EMPTY_ARR);\n\t\toptions[SKIP_EFFECTS] = previousSkipEffects;\n\t\tEMPTY_ARR.length = 0;\n\t}\n}\n\n/**\n * @param {VNode} vnode\n * @param {Record<string, unknown>} context\n */\nfunction renderClassComponent(vnode, context) {\n\tlet type = /** @type {import(\"preact\").ComponentClass<typeof vnode.props>} */ (vnode.type);\n\n\tlet isMounting = true;\n\tlet c;\n\tif (vnode[COMPONENT]) {\n\t\tisMounting = false;\n\t\tc = vnode[COMPONENT];\n\t\tc.state = c[NEXT_STATE];\n\t} else {\n\t\tc = new type(vnode.props, context);\n\t}\n\n\tvnode[COMPONENT] = c;\n\tc[VNODE] = vnode;\n\n\tc.props = vnode.props;\n\tc.context = context;\n\t// turn off stateful re-rendering:\n\tc[DIRTY] = true;\n\n\tif (c.state == null) c.state = EMPTY_OBJ;\n\n\tif (c[NEXT_STATE] == null) {\n\t\tc[NEXT_STATE] = c.state;\n\t}\n\n\tif (type.getDerivedStateFromProps) {\n\t\tc.state = assign(\n\t\t\t{},\n\t\t\tc.state,\n\t\t\ttype.getDerivedStateFromProps(c.props, c.state)\n\t\t);\n\t} else if (isMounting && c.componentWillMount) {\n\t\tc.componentWillMount();\n\n\t\t// If the user called setState in cWM we need to flush pending,\n\t\t// state updates. This is the same behaviour in React.\n\t\tc.state = c[NEXT_STATE] !== c.state ? c[NEXT_STATE] : c.state;\n\t} else if (!isMounting && c.componentWillUpdate) {\n\t\tc.componentWillUpdate();\n\t}\n\n\tif (renderHook) renderHook(vnode);\n\n\treturn c.render(c.props, c.state, context);\n}\n\n/**\n * Recursively render VNodes to HTML.\n * @param {VNode|any} vnode\n * @param {any} context\n * @param {boolean} isSvgMode\n * @param {any} selectValue\n * @param {VNode} parent\n * @param {boolean} asyncMode\n * @param {RendererState | undefined} [renderer]\n * @returns {string | Promise<string> | (string | Promise<string>)[]}\n */\nfunction _renderToString(\n\tvnode,\n\tcontext,\n\tisSvgMode,\n\tselectValue,\n\tparent,\n\tasyncMode,\n\trenderer\n) {\n\t// Ignore non-rendered VNodes/values\n\tif (\n\t\tvnode == null ||\n\t\tvnode === true ||\n\t\tvnode === false ||\n\t\tvnode === EMPTY_STR\n\t) {\n\t\treturn EMPTY_STR;\n\t}\n\n\tlet vnodeType = typeof vnode;\n\t// Text VNodes: escape as HTML\n\tif (vnodeType != 'object') {\n\t\tif (vnodeType == 'function') return EMPTY_STR;\n\t\treturn vnodeType == 'string' ? encodeEntities(vnode) : vnode + EMPTY_STR;\n\t}\n\n\t// Recurse into children / Arrays\n\tif (isArray(vnode)) {\n\t\tlet rendered = EMPTY_STR,\n\t\t\trenderArray;\n\t\tparent[CHILDREN] = vnode;\n\t\tfor (let i = 0; i < vnode.length; i++) {\n\t\t\tlet child = vnode[i];\n\t\t\tif (child == null || typeof child == 'boolean') continue;\n\n\t\t\tconst childRender = _renderToString(\n\t\t\t\tchild,\n\t\t\t\tcontext,\n\t\t\t\tisSvgMode,\n\t\t\t\tselectValue,\n\t\t\t\tparent,\n\t\t\t\tasyncMode,\n\t\t\t\trenderer\n\t\t\t);\n\n\t\t\tif (typeof childRender == 'string') {\n\t\t\t\trendered = rendered + childRender;\n\t\t\t} else {\n\t\t\t\tif (!renderArray) {\n\t\t\t\t\trenderArray = [];\n\t\t\t\t}\n\n\t\t\t\tif (rendered) renderArray.push(rendered);\n\n\t\t\t\trendered = EMPTY_STR;\n\n\t\t\t\tif (isArray(childRender)) {\n\t\t\t\t\trenderArray.push(...childRender);\n\t\t\t\t} else {\n\t\t\t\t\trenderArray.push(childRender);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (renderArray) {\n\t\t\tif (rendered) renderArray.push(rendered);\n\t\t\treturn renderArray;\n\t\t}\n\n\t\treturn rendered;\n\t}\n\n\t// VNodes have {constructor:undefined} to prevent JSON injection:\n\tif (vnode.constructor !== undefined) return EMPTY_STR;\n\n\tvnode[PARENT] = parent;\n\tif (beforeDiff) beforeDiff(vnode);\n\n\tlet type = vnode.type,\n\t\tprops = vnode.props;\n\n\t// Invoke rendering on Components\n\tif (typeof type == 'function') {\n\t\tlet cctx = context,\n\t\t\tcontextType,\n\t\t\trendered,\n\t\t\tcomponent;\n\t\tif (type === Fragment) {\n\t\t\t// Serialized precompiled JSX.\n\t\t\tif ('tpl' in props) {\n\t\t\t\tlet out = EMPTY_STR;\n\t\t\t\tfor (let i = 0; i < props.tpl.length; i++) {\n\t\t\t\t\tout = out + props.tpl[i];\n\n\t\t\t\t\tif (props.exprs && i < props.exprs.length) {\n\t\t\t\t\t\tconst value = props.exprs[i];\n\t\t\t\t\t\tif (value == null) continue;\n\n\t\t\t\t\t\t// Check if we're dealing with a vnode or an array of nodes\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof value == 'object' &&\n\t\t\t\t\t\t\t(value.constructor === undefined || isArray(value))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tout =\n\t\t\t\t\t\t\t\tout +\n\t\t\t\t\t\t\t\t_renderToString(\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Values are pre-escaped by the JSX transform\n\t\t\t\t\t\t\tout = out + value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out;\n\t\t\t} else if ('UNSTABLE_comment' in props) {\n\t\t\t\t// Fragments are the least used components of core that's why\n\t\t\t\t// branching here for comments has the least effect on perf.\n\t\t\t\treturn '<!--' + encodeEntities(props.UNSTABLE_comment) + '-->';\n\t\t\t}\n\n\t\t\trendered = props.children;\n\t\t} else {\n\t\t\tcontextType = type.contextType;\n\t\t\tif (contextType != null) {\n\t\t\t\tlet provider = context[contextType.__c];\n\t\t\t\tcctx = provider ? provider.props.value : contextType.__;\n\t\t\t}\n\n\t\t\tlet isClassComponent =\n\t\t\t\ttype.prototype && typeof type.prototype.render == 'function';\n\t\t\tif (isClassComponent) {\n\t\t\t\trendered = /**#__NOINLINE__**/ renderClassComponent(vnode, cctx);\n\t\t\t\tcomponent = vnode[COMPONENT];\n\t\t\t} else {\n\t\t\t\tvnode[COMPONENT] = component = /**#__NOINLINE__**/ createComponent(\n\t\t\t\t\tvnode,\n\t\t\t\t\tcctx\n\t\t\t\t);\n\n\t\t\t\t// If a hook invokes setState() to invalidate the component during rendering,\n\t\t\t\t// re-render it up to 25 times to allow \"settling\" of memoized states.\n\t\t\t\t// Note:\n\t\t\t\t// This will need to be updated for Preact 11 to use internal.flags rather than component._dirty:\n\t\t\t\t// https://github.com/preactjs/preact/blob/d4ca6fdb19bc715e49fd144e69f7296b2f4daa40/src/diff/component.js#L35-L44\n\t\t\t\tlet count = 0;\n\t\t\t\twhile (component[DIRTY] && count++ < 25) {\n\t\t\t\t\tcomponent[DIRTY] = false;\n\n\t\t\t\t\tif (renderHook) renderHook(vnode);\n\n\t\t\t\t\trendered = type.call(component, props, cctx);\n\t\t\t\t}\n\t\t\t\tcomponent[DIRTY] = true;\n\t\t\t}\n\n\t\t\tif (component.getChildContext != null) {\n\t\t\t\tcontext = assign({}, context, component.getChildContext());\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tisClassComponent &&\n\t\t\t\toptions.errorBoundaries &&\n\t\t\t\t(type.getDerivedStateFromError || component.componentDidCatch)\n\t\t\t) {\n\t\t\t\t// When a component returns a Fragment node we flatten it in core, so we\n\t\t\t\t// need to mirror that logic here too\n\t\t\t\tlet isTopLevelFragment =\n\t\t\t\t\trendered != null &&\n\t\t\t\t\trendered.type === Fragment &&\n\t\t\t\t\trendered.key == null &&\n\t\t\t\t\trendered.props.tpl == null;\n\t\t\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\t\t\ttry {\n\t\t\t\t\treturn _renderToString(\n\t\t\t\t\t\trendered,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (type.getDerivedStateFromError) {\n\t\t\t\t\t\tcomponent[NEXT_STATE] = type.getDerivedStateFromError(err);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.componentDidCatch) {\n\t\t\t\t\t\tcomponent.componentDidCatch(err, EMPTY_OBJ);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component[DIRTY]) {\n\t\t\t\t\t\trendered = renderClassComponent(vnode, context);\n\t\t\t\t\t\tcomponent = vnode[COMPONENT];\n\n\t\t\t\t\t\tif (component.getChildContext != null) {\n\t\t\t\t\t\t\tcontext = assign({}, context, component.getChildContext());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet isTopLevelFragment =\n\t\t\t\t\t\t\trendered != null &&\n\t\t\t\t\t\t\trendered.type === Fragment &&\n\t\t\t\t\t\t\trendered.key == null &&\n\t\t\t\t\t\t\trendered.props.tpl == null;\n\t\t\t\t\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\t\t\t\t\treturn _renderToString(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn EMPTY_STR;\n\t\t\t\t} finally {\n\t\t\t\t\tif (afterDiff) afterDiff(vnode);\n\t\t\t\t\tvnode[PARENT] = null;\n\n\t\t\t\t\tif (ummountHook) ummountHook(vnode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// When a component returns a Fragment node we flatten it in core, so we\n\t\t// need to mirror that logic here too\n\t\tlet isTopLevelFragment =\n\t\t\trendered != null &&\n\t\t\trendered.type === Fragment &&\n\t\t\trendered.key == null &&\n\t\t\trendered.props.tpl == null;\n\t\trendered = isTopLevelFragment ? rendered.props.children : rendered;\n\n\t\ttry {\n\t\t\t// Recurse into children before invoking the after-diff hook\n\t\t\tconst str = _renderToString(\n\t\t\t\trendered,\n\t\t\t\tcontext,\n\t\t\t\tisSvgMode,\n\t\t\t\tselectValue,\n\t\t\t\tvnode,\n\t\t\t\tasyncMode,\n\t\t\t\trenderer\n\t\t\t);\n\n\t\t\tif (afterDiff) afterDiff(vnode);\n\t\t\t// when we are dealing with suspense we can't do this...\n\t\t\tvnode[PARENT] = null;\n\n\t\t\tif (options.unmount) options.unmount(vnode);\n\n\t\t\treturn str;\n\t\t} catch (error) {\n\t\t\tif (!asyncMode && renderer && renderer.onError) {\n\t\t\t\tlet res = renderer.onError(error, vnode, (child) =>\n\t\t\t\t\t_renderToString(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tif (res !== undefined) return res;\n\n\t\t\t\tlet errorHook = options[CATCH_ERROR];\n\t\t\t\tif (errorHook) errorHook(error, vnode);\n\t\t\t\treturn EMPTY_STR;\n\t\t\t}\n\n\t\t\tif (!asyncMode) throw error;\n\n\t\t\tif (!error || typeof error.then != 'function') throw error;\n\n\t\t\tconst renderNestedChildren = () => {\n\t\t\t\ttry {\n\t\t\t\t\treturn _renderToString(\n\t\t\t\t\t\trendered,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\tvnode,\n\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\trenderer\n\t\t\t\t\t);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (!e || typeof e.then != 'function') throw e;\n\n\t\t\t\t\treturn e.then(\n\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t_renderToString(\n\t\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\tisSvgMode,\n\t\t\t\t\t\t\t\tselectValue,\n\t\t\t\t\t\t\t\tvnode,\n\t\t\t\t\t\t\t\tasyncMode,\n\t\t\t\t\t\t\t\trenderer\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\trenderNestedChildren\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn error.then(renderNestedChildren);\n\t\t}\n\t}\n\n\t// Serialize Element VNodes to HTML\n\tlet s = '<' + type,\n\t\thtml = EMPTY_STR,\n\t\tchildren;\n\n\tfor (let name in props) {\n\t\tlet v = props[name];\n\n\t\tif (typeof v == 'function') continue;\n\n\t\tswitch (name) {\n\t\t\tcase 'children':\n\t\t\t\tchildren = v;\n\t\t\t\tcontinue;\n\n\t\t\t// VDOM-specific props\n\t\t\tcase 'key':\n\t\t\tcase 'ref':\n\t\t\tcase '__self':\n\t\t\tcase '__source':\n\t\t\t\tcontinue;\n\n\t\t\t// prefer for/class over htmlFor/className\n\t\t\tcase 'htmlFor':\n\t\t\t\tif ('for' in props) continue;\n\t\t\t\tname = 'for';\n\t\t\t\tbreak;\n\t\t\tcase 'className':\n\t\t\t\tif ('class' in props) continue;\n\t\t\t\tname = 'class';\n\t\t\t\tbreak;\n\n\t\t\t// Form element reflected properties\n\t\t\tcase 'defaultChecked':\n\t\t\t\tname = 'checked';\n\t\t\t\tbreak;\n\t\t\tcase 'defaultSelected':\n\t\t\t\tname = 'selected';\n\t\t\t\tbreak;\n\n\t\t\t// Special value attribute handling\n\t\t\tcase 'defaultValue':\n\t\t\tcase 'value':\n\t\t\t\tname = 'value';\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// <textarea value=\"a&b\"> --> <textarea>a&b</textarea>\n\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tchildren = v;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t// <select value> is serialized as a selected attribute on the matching option child\n\t\t\t\t\tcase 'select':\n\t\t\t\t\t\tselectValue = v;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t// Add a selected attribute to <option> if its value matches the parent <select> value\n\t\t\t\t\tcase 'option':\n\t\t\t\t\t\tif (selectValue == v && !('selected' in props)) {\n\t\t\t\t\t\t\ts = s + ' selected';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'dangerouslySetInnerHTML':\n\t\t\t\thtml = v && v.__html;\n\t\t\t\tcontinue;\n\n\t\t\t// serialize object styles to a CSS string\n\t\t\tcase 'style':\n\t\t\t\tif (typeof v === 'object') {\n\t\t\t\t\tv = styleObjToCss(v);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'acceptCharset':\n\t\t\t\tname = 'accept-charset';\n\t\t\t\tbreak;\n\t\t\tcase 'httpEquiv':\n\t\t\t\tname = 'http-equiv';\n\t\t\t\tbreak;\n\n\t\t\tdefault: {\n\t\t\t\tif (NAMESPACE_REPLACE_REGEX.test(name)) {\n\t\t\t\t\tname = name.replace(NAMESPACE_REPLACE_REGEX, '$1:$2').toLowerCase();\n\t\t\t\t} else if (UNSAFE_NAME.test(name)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ((name[4] === '-' || name === 'draggable') && v != null) {\n\t\t\t\t\t// serialize boolean aria-xyz or draggable attribute values as strings\n\t\t\t\t\t// `draggable` is an enumerated attribute and not Boolean. A value of `true` or `false` is mandatory\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable\n\t\t\t\t\tv = v + EMPTY_STR;\n\t\t\t\t} else if (isSvgMode) {\n\t\t\t\t\tif (SVG_CAMEL_CASE.test(name)) {\n\t\t\t\t\t\tname =\n\t\t\t\t\t\t\tname === 'panose1'\n\t\t\t\t\t\t\t\t? 'panose-1'\n\t\t\t\t\t\t\t\t: name.replace(/([A-Z])/g, '-$1').toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t} else if (HTML_LOWER_CASE.test(name)) {\n\t\t\t\t\tname = name.toLowerCase();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// write this attribute to the buffer\n\t\tif (v != null && v !== false) {\n\t\t\tif (v === true || v === EMPTY_STR) {\n\t\t\t\ts = s + ' ' + name;\n\t\t\t} else {\n\t\t\t\ts =\n\t\t\t\t\ts +\n\t\t\t\t\t' ' +\n\t\t\t\t\tname +\n\t\t\t\t\t'=\"' +\n\t\t\t\t\t(typeof v == 'string' ? encodeEntities(v) : v + EMPTY_STR) +\n\t\t\t\t\t'\"';\n\t\t\t}\n\t\t}\n\t}\n\n\tif (UNSAFE_NAME.test(type)) {\n\t\t// this seems to performs a lot better than throwing\n\t\t// return '<!-- -->';\n\t\tthrow new Error(`${type} is not a valid HTML tag name in ${s}>`);\n\t}\n\n\tif (html) {\n\t\t// dangerouslySetInnerHTML defined this node's contents\n\t} else if (typeof children === 'string') {\n\t\t// single text child\n\t\thtml = encodeEntities(children);\n\t} else if (children != null && children !== false && children !== true) {\n\t\t// recurse into this element VNode's children\n\t\tlet childSvgMode =\n\t\t\ttype === 'svg' || (type !== 'foreignObject' && isSvgMode);\n\t\thtml = _renderToString(\n\t\t\tchildren,\n\t\t\tcontext,\n\t\t\tchildSvgMode,\n\t\t\tselectValue,\n\t\t\tvnode,\n\t\t\tasyncMode,\n\t\t\trenderer\n\t\t);\n\t}\n\n\tif (afterDiff) afterDiff(vnode);\n\n\t// TODO: this was commented before\n\tvnode[PARENT] = null;\n\n\tif (ummountHook) ummountHook(vnode);\n\n\t// Emit self-closing tag for empty void elements:\n\tif (!html && SELF_CLOSING.has(type)) {\n\t\treturn s + '/>';\n\t}\n\n\tconst endTag = '</' + type + '>';\n\tconst startTag = s + '>';\n\n\tif (isArray(html)) return [startTag, ...html, endTag];\n\telse if (typeof html != 'string') return [startTag, html, endTag];\n\treturn startTag + html + endTag;\n}\n\nconst SELF_CLOSING = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'command',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'keygen',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr'\n]);\n\nexport default renderToString;\nexport const render = renderToString;\nexport const renderToStaticMarkup = renderToString;\n","/* eslint-disable no-var, key-spacing, object-curly-spacing, prefer-arrow-callback, semi, keyword-spacing */\n\n// function initPreactIslandElement() {\n// \tclass PreactIslandElement extends HTMLElement {\n// \t\tconnectedCallback() {\n// \t\t\tvar d = this;\n// \t\t\tif (!d.isConnected) return;\n\n// \t\t\tlet i = this.getAttribute('data-target');\n// \t\t\tif (!i) return;\n\n// \t\t\tvar s,\n// \t\t\t\te,\n// \t\t\t\tc = document.createNodeIterator(document, 128);\n// \t\t\twhile (c.nextNode()) {\n// \t\t\t\tlet n = c.referenceNode;\n\n// \t\t\t\tif (n.data == 'preact-island:' + i) s = n;\n// \t\t\t\telse if (n.data == '/preact-island:' + i) e = n;\n// \t\t\t\tif (s && e) break;\n// \t\t\t}\n// \t\t\tif (s && e) {\n// \t\t\t\trequestAnimationFrame(() => {\n// \t\t\t\t\tvar p = e.previousSibling;\n// \t\t\t\t\twhile (p != s) {\n// \t\t\t\t\t\tif (!p || p == s) break;\n// \t\t\t\t\t\te.parentNode.removeChild(p);\n// \t\t\t\t\t\tp = e.previousSibling;\n// \t\t\t\t\t}\n\n// \t\t\t\t\tc = s;\n// \t\t\t\t\twhile (d.firstChild) {\n// \t\t\t\t\t\ts = d.firstChild;\n// \t\t\t\t\t\td.removeChild(s);\n// \t\t\t\t\t\tc.after(s);\n// \t\t\t\t\t\tc = s;\n// \t\t\t\t\t}\n\n// \t\t\t\t\td.parentNode.removeChild(d);\n// \t\t\t\t});\n// \t\t\t}\n// \t\t}\n// \t}\n\n// \tcustomElements.define('preact-island', PreactIslandElement);\n// }\n\n// To modify the INIT_SCRIPT, uncomment the above code, modify it, and paste it into https://try.terser.org/.\nconst INIT_SCRIPT = `class e extends HTMLElement{connectedCallback(){var e=this;if(!e.isConnected)return;let t=this.getAttribute(\"data-target\");if(t){for(var r,a,i=document.createNodeIterator(document,128);i.nextNode();){let e=i.referenceNode;if(e.data==\"preact-island:\"+t?r=e:e.data==\"/preact-island:\"+t&&(a=e),r&&a)break}r&&a&&requestAnimationFrame((()=>{for(var t=a.previousSibling;t!=r&&t&&t!=r;)a.parentNode.removeChild(t),t=a.previousSibling;for(i=r;e.firstChild;)r=e.firstChild,e.removeChild(r),i.after(r),i=r;e.parentNode.removeChild(e)}))}}}customElements.define(\"preact-island\",e);`;\n\nexport function createInitScript() {\n\treturn `<script>(function(){${INIT_SCRIPT}}())</script>`;\n}\n\n/**\n * @param {string} id\n * @param {string} content\n * @returns {string}\n */\nexport function createSubtree(id, content) {\n\treturn `<preact-island hidden data-target=\"${id}\">${content}</preact-island>`;\n}\n","import { renderToString } from '../index.js';\nimport { CHILD_DID_SUSPEND, COMPONENT, PARENT } from './constants.js';\nimport { Deferred } from './util.js';\nimport { createInitScript, createSubtree } from './client.js';\n\n/**\n * @param {VNode} vnode\n * @param {RenderToChunksOptions} options\n * @returns {Promise<void>}\n */\nexport async function renderToChunks(vnode, { context, onWrite, abortSignal }) {\n\tcontext = context || {};\n\n\t/** @type {RendererState} */\n\tconst renderer = {\n\t\tstart: Date.now(),\n\t\tabortSignal,\n\t\tonWrite,\n\t\tonError: handleError,\n\t\tsuspended: []\n\t};\n\n\t// Synchronously render the shell\n\t// @ts-ignore - using third internal RendererState argument\n\tconst shell = renderToString(vnode, context, renderer);\n\tonWrite(shell);\n\n\t// Wait for any suspended sub-trees if there are any\n\tconst len = renderer.suspended.length;\n\tif (len > 0) {\n\t\tonWrite('<div hidden>');\n\t\tonWrite(createInitScript(len));\n\t\t// We should keep checking all promises\n\t\tawait forkPromises(renderer);\n\t\tonWrite('</div>');\n\t}\n}\n\nasync function forkPromises(renderer) {\n\tif (renderer.suspended.length > 0) {\n\t\tconst suspensions = [...renderer.suspended];\n\t\tawait Promise.all(renderer.suspended.map((s) => s.promise));\n\t\trenderer.suspended = renderer.suspended.filter(\n\t\t\t(s) => !suspensions.includes(s)\n\t\t);\n\t\tawait forkPromises(renderer);\n\t}\n}\n\n/** @type {RendererErrorHandler} */\nfunction handleError(error, vnode, renderChild) {\n\tif (!error || !error.then) return;\n\n\t// walk up to the Suspense boundary\n\twhile ((vnode = vnode[PARENT])) {\n\t\tlet component = vnode[COMPONENT];\n\t\tif (component && component[CHILD_DID_SUSPEND]) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!vnode) return;\n\n\tconst id = vnode.__v;\n\tconst found = this.suspended.find((x) => x.id === id);\n\tconst race = new Deferred();\n\n\tconst abortSignal = this.abortSignal;\n\tif (abortSignal) {\n\t\t// @ts-ignore 2554 - implicit undefined arg\n\t\tif (abortSignal.aborted) race.resolve();\n\t\telse abortSignal.addEventListener('abort', race.resolve);\n\t}\n\n\tconst promise = error.then(\n\t\t() => {\n\t\t\tif (abortSignal && abortSignal.aborted) return;\n\t\t\tconst child = renderChild(vnode.props.children);\n\t\t\tif (child) this.onWrite(createSubtree(id, child));\n\t\t},\n\t\t// TODO: Abort and send hydration code snippet to client\n\t\t// to attempt to recover during hydration\n\t\tthis.onError\n\t);\n\n\tthis.suspended.push({\n\t\tid,\n\t\tvnode,\n\t\tpromise: Promise.race([promise, race.promise])\n\t});\n\n\tconst fallback = renderChild(vnode.props.fallback);\n\n\treturn found\n\t\t? ''\n\t\t: `<!--preact-island:${id}-->${fallback}<!--/preact-island:${id}-->`;\n}\n","import { PassThrough } from 'node:stream';\nimport { renderToChunks } from './lib/chunked.js';\n\n/**\n * @typedef {object} RenderToPipeableStreamOptions\n * @property {() => void} [onShellReady]\n * @property {() => void} [onAllReady]\n * @property {(error) => void} [onError]\n */\n\n/**\n * @typedef {object} PipeableStream\n * @property {() => void} abort\n * @property {(writable: import('stream').Writable) => void} pipe\n */\n\n/**\n * @param {import('preact').VNode} vnode\n * @param {RenderToPipeableStreamOptions} options\n * @param {any} [context]\n * @returns {PipeableStream}\n */\nexport function renderToPipeableStream(vnode, options, context) {\n\tconst encoder = new TextEncoder('utf-8');\n\n\tconst controller = new AbortController();\n\tconst stream = new PassThrough();\n\n\trenderToChunks(vnode, {\n\t\tcontext,\n\t\tabortSignal: controller.signal,\n\t\tonError: (error) => {\n\t\t\tif (options.onError) {\n\t\t\t\toptions.onError(error);\n\t\t\t}\n\t\t\tcontroller.abort(error);\n\t\t},\n\t\tonWrite(s) {\n\t\t\tstream.write(encoder.encode(s));\n\t\t}\n\t})\n\t\t.then(() => {\n\t\t\toptions.onAllReady && options.onAllReady();\n\t\t\tstream.end();\n\t\t})\n\t\t.catch((error) => {\n\t\t\tstream.destroy(error);\n\t\t});\n\n\tPromise.resolve().then(() => {\n\t\toptions.onShellReady && options.onShellReady();\n\t});\n\n\treturn {\n\t\tabort() {\n\t\t\tcontroller.abort();\n\t\t\tstream.destroy(new Error('aborted'));\n\t\t},\n\t\t/**\n\t\t * @param {import(\"stream\").Writable} writable\n\t\t */\n\t\tpipe(writable) {\n\t\t\tstream.pipe(writable, { end: true });\n\t\t}\n\t};\n}\n"],"names":["UNSAFE_NAME","NAMESPACE_REPLACE_REGEX","HTML_LOWER_CASE","SVG_CAMEL_CASE","ENCODED_ENTITIES","encodeEntities","str","length","test","last","i","out","ch","charCodeAt","slice","JS_TO_CSS","IS_NON_DIMENSIONAL","Set","CSS_REGEX","styleObjToCss","s","prop","val","name","replace","toLowerCase","suffix","startsWith","has","undefined","markAsDirty","__d","createComponent","vnode","context","__v","props","setState","forceUpdate","__h","Array","Deferred","constructor","promise","Promise","resolve","reject","DIFF","RENDER","DIFFED","COMMIT","SKIP_EFFECTS","CATCH_ERROR","COMPONENT","CHILDREN","PARENT","VNODE","DIRTY","NEXT_STATE","CHILD_DID_SUSPEND","EMPTY_OBJ","EMPTY_ARR","isArray","assign","Object","EMPTY_STR","beforeDiff","afterDiff","renderHook","ummountHook","renderToString","_rendererState","previousSkipEffects","options","unmount","parent","h","Fragment","rendered","_renderToString","join","e","then","Error","renderClassComponent","type","isMounting","c","state","getDerivedStateFromProps","componentWillMount","componentWillUpdate","render","isSvgMode","selectValue","asyncMode","renderer","vnodeType","renderArray","child","childRender","push","cctx","contextType","component","tpl","exprs","value","UNSTABLE_comment","children","provider","__c","__","isClassComponent","prototype","count","call","getChildContext","errorBoundaries","getDerivedStateFromError","componentDidCatch","isTopLevelFragment","key","err","error","onError","res","errorHook","renderNestedChildren","html","v","__html","childSvgMode","SELF_CLOSING","endTag","startTag","INIT_SCRIPT","createInitScript","createSubtree","id","content","renderToChunks","onWrite","abortSignal","start","Date","now","handleError","suspended","shell","len","forkPromises","suspensions","all","map","filter","includes","renderChild","found","find","x","race","aborted","addEventListener","fallback","renderToPipeableStream","encoder","TextEncoder","controller","AbortController","stream","PassThrough","signal","abort","write","encode","onAllReady","end","catch","destroy","onShellReady","pipe","writable"],"mappings":";;;;;CACO,MAAMA,WAAW,GAAG,kBAApB;CACA,MAAMC,uBAAuB,GAAG,2BAAhC;CACA,MAAMC,eAAe,GAAG,oKAAxB;CACA,MAAMC,cAAc,GAAG,wQAAvB;;CAGP,MAAMC,gBAAgB,GAAG,OAAzB;CAEA;;CACO,SAASC,cAAT,CAAwBC,GAAxB,EAA6B;CACnC;CACA,MAAIA,GAAG,CAACC,MAAJ,KAAe,CAAf,IAAoBH,gBAAgB,CAACI,IAAjB,CAAsBF,GAAtB,MAA+B,KAAvD,EAA8D,OAAOA,GAAP;CAE9D,MAAIG,IAAI,GAAG,CAAX;CAAA,MACCC,CAAC,GAAG,CADL;CAAA,MAECC,GAAG,GAAG,EAFP;CAAA,MAGCC,EAAE,GAAG,EAHN,CAJmC;;CAUnC,SAAOF,CAAC,GAAGJ,GAAG,CAACC,MAAf,EAAuBG,CAAC,EAAxB,EAA4B;CAC3B,YAAQJ,GAAG,CAACO,UAAJ,CAAeH,CAAf,CAAR;CACC,WAAK,EAAL;CACCE,QAAAA,EAAE,GAAG,QAAL;CACA;;CACD,WAAK,EAAL;CACCA,QAAAA,EAAE,GAAG,OAAL;CACA;;CACD,WAAK,EAAL;CACCA,QAAAA,EAAE,GAAG,MAAL;CACA;;CACD;CACC;CAXF,KAD2B;;;CAe3B,QAAIF,CAAC,KAAKD,IAAV,EAAgBE,GAAG,GAAGA,GAAG,GAAGL,GAAG,CAACQ,KAAJ,CAAUL,IAAV,EAAgBC,CAAhB,CAAZ;CAChBC,IAAAA,GAAG,GAAGA,GAAG,GAAGC,EAAZ,CAhB2B;;CAkB3BH,IAAAA,IAAI,GAAGC,CAAC,GAAG,CAAX;CACA;;CACD,MAAIA,CAAC,KAAKD,IAAV,EAAgBE,GAAG,GAAGA,GAAG,GAAGL,GAAG,CAACQ,KAAJ,CAAUL,IAAV,EAAgBC,CAAhB,CAAZ;CAChB,SAAOC,GAAP;CACA;CAUD,MAAMI,SAAS,GAAG,EAAlB;CAEA,MAAMC,kBAAkB,GAAG,IAAIC,GAAJ,CAAQ,CAClC,2BADkC,EAElC,qBAFkC,EAGlC,oBAHkC,EAIlC,oBAJkC,EAKlC,UALkC,EAMlC,gBANkC,EAOlC,mBAPkC,EAQlC,cARkC,EASlC,cATkC,EAUlC,MAVkC,EAWlC,WAXkC,EAYlC,eAZkC,EAalC,YAbkC,EAclC,eAdkC,EAelC,aAfkC,EAgBlC,eAhBkC,EAiBlC,aAjBkC,EAkBlC,aAlBkC,EAmBlC,UAnBkC,EAoBlC,YApBkC,EAqBlC,aArBkC,EAsBlC,SAtBkC,EAuBlC,OAvBkC,EAwBlC,SAxBkC,EAyBlC,cAzBkC,EA0BlC,kBA1BkC,EA2BlC,mBA3BkC,EA4BlC,mBA5BkC,EA6BlC,gBA7BkC,EA8BlC,cA9BkC,EA+BlC,UA/BkC,EAgClC,QAhCkC,EAiClC,SAjCkC,EAkClC,MAlCkC,CAAR,CAA3B;CAqCA,MAAMC,SAAS,GAAG,QAAlB;;CAEO,SAASC,aAAT,CAAuBC,CAAvB,EAA0B;CAChC,MAAId,GAAG,GAAG,EAAV;;CACA,OAAK,IAAIe,IAAT,IAAiBD,CAAjB,EAAoB;CACnB,QAAIE,GAAG,GAAGF,CAAC,CAACC,IAAD,CAAX;;CACA,QAAIC,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAK,EAA3B,EAA+B;CAC9B,YAAMC,IAAI,GACTF,IAAI,CAAC,CAAD,CAAJ,IAAW,GAAX,GACGA,IADH,GAEGN,SAAS,CAACM,IAAD,CAAT,KACCN,SAAS,CAACM,IAAD,CAAT,GAAkBA,IAAI,CAACG,OAAL,CAAaN,SAAb,EAAwB,KAAxB,EAA+BO,WAA/B,EADnB,CAHJ;CAMA,UAAIC,MAAM,GAAG,GAAb;;CACA,UACC,OAAOJ,GAAP,KAAe,QAAf;CAEA,OAACC,IAAI,CAACI,UAAL,CAAgB,IAAhB,CAFD,IAGA,CAACX,kBAAkB,CAACY,GAAnB,CAAuBL,IAAvB,CAJF,EAKE;CACDG,QAAAA,MAAM,GAAG,KAAT;CACA;;CACDpB,MAAAA,GAAG,GAAGA,GAAG,GAAGiB,IAAN,GAAa,GAAb,GAAmBD,GAAnB,GAAyBI,MAA/B;CACA;CACD;;CACD,SAAOpB,GAAG,IAAIuB,SAAd;CACA;;CAkBD,SAASC,WAAT,GAAuB;CACtB,OAAKC,GAAL,GAAW,IAAX;CACA;;CAEM,SAASC,eAAT,CAAyBC,KAAzB,EAAgCC,OAAhC,EAAyC;CAC/C,SAAO;CACNC,IAAAA,GAAG,EAAEF,KADC;CAENC,IAAAA,OAFM;CAGNE,IAAAA,KAAK,EAAEH,KAAK,CAACG,KAHP;CAIN;CACAC,IAAAA,QAAQ,EAAEP,WALJ;CAMNQ,IAAAA,WAAW,EAAER,WANP;CAONC,IAAAA,GAAG,EAAE,IAPC;CAQN;CACAQ,IAAAA,GAAG,EAAE,IAAIC,KAAJ,CAAU,CAAV;CATC,GAAP;CAWA;CAcD;CACA;CACA;;CACO,MAAMC,QAAN,CAAe;CACrBC,EAAAA,WAAW,GAAG;CACb;;CACA;CACA,SAAKC,OAAL,GAAe,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;CAC/C,WAAKD,OAAL,GAAeA,OAAf;CACA,WAAKC,MAAL,GAAcA,MAAd;CACA,KAHc,CAAf;CAIA;;CARoB;;CCxKtB;CACO,MAAMC,IAAI,GAAG,KAAb;CACA,MAAMC,MAAM,GAAG,KAAf;CACA,MAAMC,MAAM,GAAG,QAAf;CACA,MAAMC,MAAM,GAAG,KAAf;CACA,MAAMC,YAAY,GAAG,KAArB;CACA,MAAMC,WAAW,GAAG,KAApB;;CAGA,MAAMC,SAAS,GAAG,KAAlB;CACA,MAAMC,QAAQ,GAAG,KAAjB;CACA,MAAMC,MAAM,GAAG,IAAf;;CAIA,MAAMC,KAAK,GAAG,KAAd;CACA,MAAMC,KAAK,GAAG,KAAd;CACA,MAAMC,UAAU,GAAG,KAAnB;CACA,MAAMC,iBAAiB,GAAG,KAA1B;;CCOP,MAAMC,SAAS,GAAG,EAAlB;CACA,MAAMC,SAAS,GAAG,EAAlB;CACA,MAAMC,OAAO,GAAGtB,KAAK,CAACsB,OAAtB;CACA,MAAMC,MAAM,GAAGC,MAAM,CAACD,MAAtB;CACA,MAAME,SAAS,GAAG,EAAlB;;CAGA,IAAIC,UAAJ,EAAgBC,SAAhB,EAA2BC,UAA3B,EAAuCC,WAAvC;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;;CACO,SAASC,cAAT,CAAwBrC,KAAxB,EAA+BC,OAA/B,EAAwCqC,cAAxC,EAAwD;CAC9D;CACA;CACA;CACA;CACA;CACA,QAAMC,mBAAmB,GAAGC,cAAO,CAACtB,YAAD,CAAnC;CACAsB,EAAAA,cAAO,CAACtB,YAAD,CAAP,GAAwB,IAAxB,CAP8D;;CAU9De,EAAAA,UAAU,GAAGO,cAAO,CAAC1B,IAAD,CAApB;CACAoB,EAAAA,SAAS,GAAGM,cAAO,CAACxB,MAAD,CAAnB;CACAmB,EAAAA,UAAU,GAAGK,cAAO,CAACzB,MAAD,CAApB;CACAqB,EAAAA,WAAW,GAAGI,cAAO,CAACC,OAAtB;CAEA,QAAMC,MAAM,GAAGC,QAAC,CAACC,eAAD,EAAW,IAAX,CAAhB;CACAF,EAAAA,MAAM,CAACrB,QAAD,CAAN,GAAmB,CAACrB,KAAD,CAAnB;;CAEA,MAAI;CACH,UAAM6C,QAAQ,GAAGC,eAAe,CAC/B9C,KAD+B,EAE/BC,OAAO,IAAI0B,SAFoB,EAG/B,KAH+B,EAI/B/B,SAJ+B,EAK/B8C,MAL+B,EAM/B,KAN+B,EAO/BJ,cAP+B,CAAhC;;CAUA,QAAIT,OAAO,CAACgB,QAAD,CAAX,EAAuB;CACtB,aAAOA,QAAQ,CAACE,IAAT,CAAcf,SAAd,CAAP;CACA;;CACD,WAAOa,QAAP;CACA,GAfD,CAeE,OAAOG,CAAP,EAAU;CACX,QAAIA,CAAC,CAACC,IAAN,EAAY;CACX,YAAM,IAAIC,KAAJ,CAAU,sDAAV,CAAN;CACA;;CAED,UAAMF,CAAN;CACA,GArBD,SAqBU;CACT;CACA;CACA,QAAIR,cAAO,CAACvB,MAAD,CAAX,EAAqBuB,cAAO,CAACvB,MAAD,CAAP,CAAgBjB,KAAhB,EAAuB4B,SAAvB;CACrBY,IAAAA,cAAO,CAACtB,YAAD,CAAP,GAAwBqB,mBAAxB;CACAX,IAAAA,SAAS,CAACtD,MAAV,GAAmB,CAAnB;CACA;CACD;CAgED;CACA;CACA;CACA;;CACA,SAAS6E,oBAAT,CAA8BnD,KAA9B,EAAqCC,OAArC,EAA8C;CAC7C,MAAImD,IAAI;CAAG;CAAoEpD,EAAAA,KAAK,CAACoD,IAArF;CAEA,MAAIC,UAAU,GAAG,IAAjB;CACA,MAAIC,CAAJ;;CACA,MAAItD,KAAK,CAACoB,SAAD,CAAT,EAAsB;CACrBiC,IAAAA,UAAU,GAAG,KAAb;CACAC,IAAAA,CAAC,GAAGtD,KAAK,CAACoB,SAAD,CAAT;CACAkC,IAAAA,CAAC,CAACC,KAAF,GAAUD,CAAC,CAAC7B,UAAD,CAAX;CACA,GAJD,MAIO;CACN6B,IAAAA,CAAC,GAAG,IAAIF,IAAJ,CAASpD,KAAK,CAACG,KAAf,EAAsBF,OAAtB,CAAJ;CACA;;CAEDD,EAAAA,KAAK,CAACoB,SAAD,CAAL,GAAmBkC,CAAnB;CACAA,EAAAA,CAAC,CAAC/B,KAAD,CAAD,GAAWvB,KAAX;CAEAsD,EAAAA,CAAC,CAACnD,KAAF,GAAUH,KAAK,CAACG,KAAhB;CACAmD,EAAAA,CAAC,CAACrD,OAAF,GAAYA,OAAZ,CAjB6C;;CAmB7CqD,EAAAA,CAAC,CAAC9B,KAAD,CAAD,GAAW,IAAX;CAEA,MAAI8B,CAAC,CAACC,KAAF,IAAW,IAAf,EAAqBD,CAAC,CAACC,KAAF,GAAU5B,SAAV;;CAErB,MAAI2B,CAAC,CAAC7B,UAAD,CAAD,IAAiB,IAArB,EAA2B;CAC1B6B,IAAAA,CAAC,CAAC7B,UAAD,CAAD,GAAgB6B,CAAC,CAACC,KAAlB;CACA;;CAED,MAAIH,IAAI,CAACI,wBAAT,EAAmC;CAClCF,IAAAA,CAAC,CAACC,KAAF,GAAUzB,MAAM,CACf,EADe,EAEfwB,CAAC,CAACC,KAFa,EAGfH,IAAI,CAACI,wBAAL,CAA8BF,CAAC,CAACnD,KAAhC,EAAuCmD,CAAC,CAACC,KAAzC,CAHe,CAAhB;CAKA,GAND,MAMO,IAAIF,UAAU,IAAIC,CAAC,CAACG,kBAApB,EAAwC;CAC9CH,IAAAA,CAAC,CAACG,kBAAF,GAD8C;CAI9C;;CACAH,IAAAA,CAAC,CAACC,KAAF,GAAUD,CAAC,CAAC7B,UAAD,CAAD,KAAkB6B,CAAC,CAACC,KAApB,GAA4BD,CAAC,CAAC7B,UAAD,CAA7B,GAA4C6B,CAAC,CAACC,KAAxD;CACA,GANM,MAMA,IAAI,CAACF,UAAD,IAAeC,CAAC,CAACI,mBAArB,EAA0C;CAChDJ,IAAAA,CAAC,CAACI,mBAAF;CACA;;CAED,MAAIvB,UAAJ,EAAgBA,UAAU,CAACnC,KAAD,CAAV;CAEhB,SAAOsD,CAAC,CAACK,MAAF,CAASL,CAAC,CAACnD,KAAX,EAAkBmD,CAAC,CAACC,KAApB,EAA2BtD,OAA3B,CAAP;CACA;CAED;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACA,SAAS6C,eAAT,CACC9C,KADD,EAECC,OAFD,EAGC2D,SAHD,EAICC,WAJD,EAKCnB,MALD,EAMCoB,SAND,EAOCC,QAPD,EAQE;CACD;CACA,MACC/D,KAAK,IAAI,IAAT,IACAA,KAAK,KAAK,IADV,IAEAA,KAAK,KAAK,KAFV,IAGAA,KAAK,KAAKgC,SAJX,EAKE;CACD,WAAOA,SAAP;CACA;;CAED,MAAIgC,SAAS,GAAG,OAAOhE,KAAvB,CAXC;;CAaD,MAAIgE,SAAS,IAAI,QAAjB,EAA2B;CAC1B,QAAIA,SAAS,IAAI,UAAjB,EAA6B,OAAOhC,SAAP;CAC7B,WAAOgC,SAAS,IAAI,QAAb,GAAwB5F,cAAc,CAAC4B,KAAD,CAAtC,GAAgDA,KAAK,GAAGgC,SAA/D;CACA,GAhBA;;;CAmBD,MAAIH,OAAO,CAAC7B,KAAD,CAAX,EAAoB;CACnB,QAAI6C,QAAQ,GAAGb,SAAf;CAAA,QACCiC,WADD;CAEAvB,IAAAA,MAAM,CAACrB,QAAD,CAAN,GAAmBrB,KAAnB;;CACA,SAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuB,KAAK,CAAC1B,MAA1B,EAAkCG,CAAC,EAAnC,EAAuC;CACtC,UAAIyF,KAAK,GAAGlE,KAAK,CAACvB,CAAD,CAAjB;CACA,UAAIyF,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,IAAgB,SAArC,EAAgD;;CAEhD,YAAMC,WAAW,GAAGrB,eAAe,CAClCoB,KADkC,EAElCjE,OAFkC,EAGlC2D,SAHkC,EAIlCC,WAJkC,EAKlCnB,MALkC,EAMlCoB,SANkC,EAOlCC,QAPkC,CAAnC;;CAUA,UAAI,OAAOI,WAAP,IAAsB,QAA1B,EAAoC;CACnCtB,QAAAA,QAAQ,GAAGA,QAAQ,GAAGsB,WAAtB;CACA,OAFD,MAEO;CACN,YAAI,CAACF,WAAL,EAAkB;CACjBA,UAAAA,WAAW,GAAG,EAAd;CACA;;CAED,YAAIpB,QAAJ,EAAcoB,WAAW,CAACG,IAAZ,CAAiBvB,QAAjB;CAEdA,QAAAA,QAAQ,GAAGb,SAAX;;CAEA,YAAIH,OAAO,CAACsC,WAAD,CAAX,EAA0B;CACzBF,UAAAA,WAAW,CAACG,IAAZ,CAAiB,GAAGD,WAApB;CACA,SAFD,MAEO;CACNF,UAAAA,WAAW,CAACG,IAAZ,CAAiBD,WAAjB;CACA;CACD;CACD;;CAED,QAAIF,WAAJ,EAAiB;CAChB,UAAIpB,QAAJ,EAAcoB,WAAW,CAACG,IAAZ,CAAiBvB,QAAjB;CACd,aAAOoB,WAAP;CACA;;CAED,WAAOpB,QAAP;CACA,GA9DA;;;CAiED,MAAI7C,KAAK,CAACS,WAAN,KAAsBb,SAA1B,EAAqC,OAAOoC,SAAP;CAErChC,EAAAA,KAAK,CAACsB,MAAD,CAAL,GAAgBoB,MAAhB;CACA,MAAIT,UAAJ,EAAgBA,UAAU,CAACjC,KAAD,CAAV;CAEhB,MAAIoD,IAAI,GAAGpD,KAAK,CAACoD,IAAjB;CAAA,MACCjD,KAAK,GAAGH,KAAK,CAACG,KADf,CAtEC;;CA0ED,MAAI,OAAOiD,IAAP,IAAe,UAAnB,EAA+B;CAC9B,QAAIiB,IAAI,GAAGpE,OAAX;CAAA,QACCqE,WADD;CAAA,QAECzB,QAFD;CAAA,QAGC0B,SAHD;;CAIA,QAAInB,IAAI,KAAKR,eAAb,EAAuB;CACtB;CACA,UAAI,SAASzC,KAAb,EAAoB;CACnB,YAAIzB,GAAG,GAAGsD,SAAV;;CACA,aAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0B,KAAK,CAACqE,GAAN,CAAUlG,MAA9B,EAAsCG,CAAC,EAAvC,EAA2C;CAC1CC,UAAAA,GAAG,GAAGA,GAAG,GAAGyB,KAAK,CAACqE,GAAN,CAAU/F,CAAV,CAAZ;;CAEA,cAAI0B,KAAK,CAACsE,KAAN,IAAehG,CAAC,GAAG0B,KAAK,CAACsE,KAAN,CAAYnG,MAAnC,EAA2C;CAC1C,kBAAMoG,KAAK,GAAGvE,KAAK,CAACsE,KAAN,CAAYhG,CAAZ,CAAd;CACA,gBAAIiG,KAAK,IAAI,IAAb,EAAmB,SAFuB;;CAK1C,gBACC,OAAOA,KAAP,IAAgB,QAAhB,KACCA,KAAK,CAACjE,WAAN,KAAsBb,SAAtB,IAAmCiC,OAAO,CAAC6C,KAAD,CAD3C,CADD,EAGE;CACDhG,cAAAA,GAAG,GACFA,GAAG,GACHoE,eAAe,CACd4B,KADc,EAEdzE,OAFc,EAGd2D,SAHc,EAIdC,WAJc,EAKd7D,KALc,EAMd8D,SANc,EAOdC,QAPc,CAFhB;CAWA,aAfD,MAeO;CACN;CACArF,cAAAA,GAAG,GAAGA,GAAG,GAAGgG,KAAZ;CACA;CACD;CACD;;CAED,eAAOhG,GAAP;CACA,OAjCD,MAiCO,IAAI,sBAAsByB,KAA1B,EAAiC;CACvC;CACA;CACA,eAAO,SAAS/B,cAAc,CAAC+B,KAAK,CAACwE,gBAAP,CAAvB,GAAkD,KAAzD;CACA;;CAED9B,MAAAA,QAAQ,GAAG1C,KAAK,CAACyE,QAAjB;CACA,KA1CD,MA0CO;CACNN,MAAAA,WAAW,GAAGlB,IAAI,CAACkB,WAAnB;;CACA,UAAIA,WAAW,IAAI,IAAnB,EAAyB;CACxB,YAAIO,QAAQ,GAAG5E,OAAO,CAACqE,WAAW,CAACQ,GAAb,CAAtB;CACAT,QAAAA,IAAI,GAAGQ,QAAQ,GAAGA,QAAQ,CAAC1E,KAAT,CAAeuE,KAAlB,GAA0BJ,WAAW,CAACS,EAArD;CACA;;CAED,UAAIC,gBAAgB,GACnB5B,IAAI,CAAC6B,SAAL,IAAkB,OAAO7B,IAAI,CAAC6B,SAAL,CAAetB,MAAtB,IAAgC,UADnD;;CAEA,UAAIqB,gBAAJ,EAAsB;CACrBnC,QAAAA,QAAQ;CAAG;CAAoBM,QAAAA,oBAAoB,CAACnD,KAAD,EAAQqE,IAAR,CAAnD;CACAE,QAAAA,SAAS,GAAGvE,KAAK,CAACoB,SAAD,CAAjB;CACA,OAHD,MAGO;CACNpB,QAAAA,KAAK,CAACoB,SAAD,CAAL,GAAmBmD,SAAS;CAAG;CAAoBxE,QAAAA,eAAe,CACjEC,KADiE,EAEjEqE,IAFiE,CAAlE,CADM;CAON;CACA;CACA;CACA;;CACA,YAAIa,KAAK,GAAG,CAAZ;;CACA,eAAOX,SAAS,CAAC/C,KAAD,CAAT,IAAoB0D,KAAK,KAAK,EAArC,EAAyC;CACxCX,UAAAA,SAAS,CAAC/C,KAAD,CAAT,GAAmB,KAAnB;CAEA,cAAIW,UAAJ,EAAgBA,UAAU,CAACnC,KAAD,CAAV;CAEhB6C,UAAAA,QAAQ,GAAGO,IAAI,CAAC+B,IAAL,CAAUZ,SAAV,EAAqBpE,KAArB,EAA4BkE,IAA5B,CAAX;CACA;;CACDE,QAAAA,SAAS,CAAC/C,KAAD,CAAT,GAAmB,IAAnB;CACA;;CAED,UAAI+C,SAAS,CAACa,eAAV,IAA6B,IAAjC,EAAuC;CACtCnF,QAAAA,OAAO,GAAG6B,MAAM,CAAC,EAAD,EAAK7B,OAAL,EAAcsE,SAAS,CAACa,eAAV,EAAd,CAAhB;CACA;;CAED,UACCJ,gBAAgB,IAChBxC,cAAO,CAAC6C,eADR,KAECjC,IAAI,CAACkC,wBAAL,IAAiCf,SAAS,CAACgB,iBAF5C,CADD,EAIE;CACD;CACA;CACA,YAAIC,kBAAkB,GACrB3C,QAAQ,IAAI,IAAZ,IACAA,QAAQ,CAACO,IAAT,KAAkBR,eADlB,IAEAC,QAAQ,CAAC4C,GAAT,IAAgB,IAFhB,IAGA5C,QAAQ,CAAC1C,KAAT,CAAeqE,GAAf,IAAsB,IAJvB;CAKA3B,QAAAA,QAAQ,GAAG2C,kBAAkB,GAAG3C,QAAQ,CAAC1C,KAAT,CAAeyE,QAAlB,GAA6B/B,QAA1D;;CAEA,YAAI;CACH,iBAAOC,eAAe,CACrBD,QADqB,EAErB5C,OAFqB,EAGrB2D,SAHqB,EAIrBC,WAJqB,EAKrB7D,KALqB,EAMrB8D,SANqB,EAOrBC,QAPqB,CAAtB;CASA,SAVD,CAUE,OAAO2B,GAAP,EAAY;CACb,cAAItC,IAAI,CAACkC,wBAAT,EAAmC;CAClCf,YAAAA,SAAS,CAAC9C,UAAD,CAAT,GAAwB2B,IAAI,CAACkC,wBAAL,CAA8BI,GAA9B,CAAxB;CACA;;CAED,cAAInB,SAAS,CAACgB,iBAAd,EAAiC;CAChChB,YAAAA,SAAS,CAACgB,iBAAV,CAA4BG,GAA5B,EAAiC/D,SAAjC;CACA;;CAED,cAAI4C,SAAS,CAAC/C,KAAD,CAAb,EAAsB;CACrBqB,YAAAA,QAAQ,GAAGM,oBAAoB,CAACnD,KAAD,EAAQC,OAAR,CAA/B;CACAsE,YAAAA,SAAS,GAAGvE,KAAK,CAACoB,SAAD,CAAjB;;CAEA,gBAAImD,SAAS,CAACa,eAAV,IAA6B,IAAjC,EAAuC;CACtCnF,cAAAA,OAAO,GAAG6B,MAAM,CAAC,EAAD,EAAK7B,OAAL,EAAcsE,SAAS,CAACa,eAAV,EAAd,CAAhB;CACA;;CAED,gBAAII,kBAAkB,GACrB3C,QAAQ,IAAI,IAAZ,IACAA,QAAQ,CAACO,IAAT,KAAkBR,eADlB,IAEAC,QAAQ,CAAC4C,GAAT,IAAgB,IAFhB,IAGA5C,QAAQ,CAAC1C,KAAT,CAAeqE,GAAf,IAAsB,IAJvB;CAKA3B,YAAAA,QAAQ,GAAG2C,kBAAkB,GAAG3C,QAAQ,CAAC1C,KAAT,CAAeyE,QAAlB,GAA6B/B,QAA1D;CAEA,mBAAOC,eAAe,CACrBD,QADqB,EAErB5C,OAFqB,EAGrB2D,SAHqB,EAIrBC,WAJqB,EAKrB7D,KALqB,EAMrB8D,SANqB,EAOrBC,QAPqB,CAAtB;CASA;;CAED,iBAAO/B,SAAP;CACA,SA9CD,SA8CU;CACT,cAAIE,SAAJ,EAAeA,SAAS,CAAClC,KAAD,CAAT;CACfA,UAAAA,KAAK,CAACsB,MAAD,CAAL,GAAgB,IAAhB;CAEA,cAAIc,WAAJ,EAAiBA,WAAW,CAACpC,KAAD,CAAX;CACjB;CACD;CACD,KAxJ6B;CA2J9B;;;CACA,QAAIwF,kBAAkB,GACrB3C,QAAQ,IAAI,IAAZ,IACAA,QAAQ,CAACO,IAAT,KAAkBR,eADlB,IAEAC,QAAQ,CAAC4C,GAAT,IAAgB,IAFhB,IAGA5C,QAAQ,CAAC1C,KAAT,CAAeqE,GAAf,IAAsB,IAJvB;CAKA3B,IAAAA,QAAQ,GAAG2C,kBAAkB,GAAG3C,QAAQ,CAAC1C,KAAT,CAAeyE,QAAlB,GAA6B/B,QAA1D;;CAEA,QAAI;CACH;CACA,YAAMxE,GAAG,GAAGyE,eAAe,CAC1BD,QAD0B,EAE1B5C,OAF0B,EAG1B2D,SAH0B,EAI1BC,WAJ0B,EAK1B7D,KAL0B,EAM1B8D,SAN0B,EAO1BC,QAP0B,CAA3B;;CAUA,UAAI7B,SAAJ,EAAeA,SAAS,CAAClC,KAAD,CAAT,CAZZ;;CAcHA,MAAAA,KAAK,CAACsB,MAAD,CAAL,GAAgB,IAAhB;CAEA,UAAIkB,cAAO,CAACC,OAAZ,EAAqBD,cAAO,CAACC,OAAR,CAAgBzC,KAAhB;CAErB,aAAO3B,GAAP;CACA,KAnBD,CAmBE,OAAOsH,KAAP,EAAc;CACf,UAAI,CAAC7B,SAAD,IAAcC,QAAd,IAA0BA,QAAQ,CAAC6B,OAAvC,EAAgD;CAC/C,YAAIC,GAAG,GAAG9B,QAAQ,CAAC6B,OAAT,CAAiBD,KAAjB,EAAwB3F,KAAxB,EAAgCkE,KAAD,IACxCpB,eAAe,CACdoB,KADc,EAEdjE,OAFc,EAGd2D,SAHc,EAIdC,WAJc,EAKd7D,KALc,EAMd8D,SANc,EAOdC,QAPc,CADN,CAAV;CAYA,YAAI8B,GAAG,KAAKjG,SAAZ,EAAuB,OAAOiG,GAAP;CAEvB,YAAIC,SAAS,GAAGtD,cAAO,CAACrB,WAAD,CAAvB;CACA,YAAI2E,SAAJ,EAAeA,SAAS,CAACH,KAAD,EAAQ3F,KAAR,CAAT;CACf,eAAOgC,SAAP;CACA;;CAED,UAAI,CAAC8B,SAAL,EAAgB,MAAM6B,KAAN;CAEhB,UAAI,CAACA,KAAD,IAAU,OAAOA,KAAK,CAAC1C,IAAb,IAAqB,UAAnC,EAA+C,MAAM0C,KAAN;;CAE/C,YAAMI,oBAAoB,GAAG,MAAM;CAClC,YAAI;CACH,iBAAOjD,eAAe,CACrBD,QADqB,EAErB5C,OAFqB,EAGrB2D,SAHqB,EAIrBC,WAJqB,EAKrB7D,KALqB,EAMrB8D,SANqB,EAOrBC,QAPqB,CAAtB;CASA,SAVD,CAUE,OAAOf,CAAP,EAAU;CACX,cAAI,CAACA,CAAD,IAAM,OAAOA,CAAC,CAACC,IAAT,IAAiB,UAA3B,EAAuC,MAAMD,CAAN;CAEvC,iBAAOA,CAAC,CAACC,IAAF,CACN,MACCH,eAAe,CACdD,QADc,EAEd5C,OAFc,EAGd2D,SAHc,EAIdC,WAJc,EAKd7D,KALc,EAMd8D,SANc,EAOdC,QAPc,CAFV,EAWNgC,oBAXM,CAAP;CAaA;CACD,OA5BD;;CA8BA,aAAOJ,KAAK,CAAC1C,IAAN,CAAW8C,oBAAX,CAAP;CACA;CACD,GAzTA;;;CA4TD,MAAI5G,CAAC,GAAG,MAAMiE,IAAd;CAAA,MACC4C,IAAI,GAAGhE,SADR;CAAA,MAEC4C,QAFD;;CAIA,OAAK,IAAItF,IAAT,IAAiBa,KAAjB,EAAwB;CACvB,QAAI8F,CAAC,GAAG9F,KAAK,CAACb,IAAD,CAAb;CAEA,QAAI,OAAO2G,CAAP,IAAY,UAAhB,EAA4B;;CAE5B,YAAQ3G,IAAR;CACC,WAAK,UAAL;CACCsF,QAAAA,QAAQ,GAAGqB,CAAX;CACA;CAED;;CACA,WAAK,KAAL;CACA,WAAK,KAAL;CACA,WAAK,QAAL;CACA,WAAK,UAAL;CACC;CAED;;CACA,WAAK,SAAL;CACC,YAAI,SAAS9F,KAAb,EAAoB;CACpBb,QAAAA,IAAI,GAAG,KAAP;CACA;;CACD,WAAK,WAAL;CACC,YAAI,WAAWa,KAAf,EAAsB;CACtBb,QAAAA,IAAI,GAAG,OAAP;CACA;CAED;;CACA,WAAK,gBAAL;CACCA,QAAAA,IAAI,GAAG,SAAP;CACA;;CACD,WAAK,iBAAL;CACCA,QAAAA,IAAI,GAAG,UAAP;CACA;CAED;;CACA,WAAK,cAAL;CACA,WAAK,OAAL;CACCA,QAAAA,IAAI,GAAG,OAAP;;CACA,gBAAQ8D,IAAR;CACC;CACA,eAAK,UAAL;CACCwB,YAAAA,QAAQ,GAAGqB,CAAX;CACA;CAED;;CACA,eAAK,QAAL;CACCpC,YAAAA,WAAW,GAAGoC,CAAd;CACA;CAED;;CACA,eAAK,QAAL;CACC,gBAAIpC,WAAW,IAAIoC,CAAf,IAAoB,EAAE,cAAc9F,KAAhB,CAAxB,EAAgD;CAC/ChB,cAAAA,CAAC,GAAGA,CAAC,GAAG,WAAR;CACA;;CACD;CAhBF;;CAkBA;;CAED,WAAK,yBAAL;CACC6G,QAAAA,IAAI,GAAGC,CAAC,IAAIA,CAAC,CAACC,MAAd;CACA;CAED;;CACA,WAAK,OAAL;CACC,YAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;CAC1BA,UAAAA,CAAC,GAAG/G,aAAa,CAAC+G,CAAD,CAAjB;CACA;;CACD;;CACD,WAAK,eAAL;CACC3G,QAAAA,IAAI,GAAG,gBAAP;CACA;;CACD,WAAK,WAAL;CACCA,QAAAA,IAAI,GAAG,YAAP;CACA;;CAED;CAAS;CACR,cAAItB,uBAAuB,CAACO,IAAxB,CAA6Be,IAA7B,CAAJ,EAAwC;CACvCA,YAAAA,IAAI,GAAGA,IAAI,CAACC,OAAL,CAAavB,uBAAb,EAAsC,OAAtC,EAA+CwB,WAA/C,EAAP;CACA,WAFD,MAEO,IAAIzB,WAAW,CAACQ,IAAZ,CAAiBe,IAAjB,CAAJ,EAA4B;CAClC;CACA,WAFM,MAEA,IAAI,CAACA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAZ,IAAmBA,IAAI,KAAK,WAA7B,KAA6C2G,CAAC,IAAI,IAAtD,EAA4D;CAClE;CACA;CACA;CACAA,YAAAA,CAAC,GAAGA,CAAC,GAAGjE,SAAR;CACA,WALM,MAKA,IAAI4B,SAAJ,EAAe;CACrB,gBAAI1F,cAAc,CAACK,IAAf,CAAoBe,IAApB,CAAJ,EAA+B;CAC9BA,cAAAA,IAAI,GACHA,IAAI,KAAK,SAAT,GACG,UADH,GAEGA,IAAI,CAACC,OAAL,CAAa,UAAb,EAAyB,KAAzB,EAAgCC,WAAhC,EAHJ;CAIA;CACD,WAPM,MAOA,IAAIvB,eAAe,CAACM,IAAhB,CAAqBe,IAArB,CAAJ,EAAgC;CACtCA,YAAAA,IAAI,GAAGA,IAAI,CAACE,WAAL,EAAP;CACA;CACD;CA3FF,KALuB;;;CAoGvB,QAAIyG,CAAC,IAAI,IAAL,IAAaA,CAAC,KAAK,KAAvB,EAA8B;CAC7B,UAAIA,CAAC,KAAK,IAAN,IAAcA,CAAC,KAAKjE,SAAxB,EAAmC;CAClC7C,QAAAA,CAAC,GAAGA,CAAC,GAAG,GAAJ,GAAUG,IAAd;CACA,OAFD,MAEO;CACNH,QAAAA,CAAC,GACAA,CAAC,GACD,GADA,GAEAG,IAFA,GAGA,IAHA,IAIC,OAAO2G,CAAP,IAAY,QAAZ,GAAuB7H,cAAc,CAAC6H,CAAD,CAArC,GAA2CA,CAAC,GAAGjE,SAJhD,IAKA,GAND;CAOA;CACD;CACD;;CAED,MAAIjE,WAAW,CAACQ,IAAZ,CAAiB6E,IAAjB,CAAJ,EAA4B;CAC3B;CACA;CACA,UAAM,IAAIF,KAAJ,CAAW,GAAEE,IAAK,oCAAmCjE,CAAE,GAAvD,CAAN;CACA;;CAED,MAAI6G,IAAJ,EAAU,CAAV,MAEO,IAAI,OAAOpB,QAAP,KAAoB,QAAxB,EAAkC;CACxC;CACAoB,IAAAA,IAAI,GAAG5H,cAAc,CAACwG,QAAD,CAArB;CACA,GAHM,MAGA,IAAIA,QAAQ,IAAI,IAAZ,IAAoBA,QAAQ,KAAK,KAAjC,IAA0CA,QAAQ,KAAK,IAA3D,EAAiE;CACvE;CACA,QAAIuB,YAAY,GACf/C,IAAI,KAAK,KAAT,IAAmBA,IAAI,KAAK,eAAT,IAA4BQ,SADhD;CAEAoC,IAAAA,IAAI,GAAGlD,eAAe,CACrB8B,QADqB,EAErB3E,OAFqB,EAGrBkG,YAHqB,EAIrBtC,WAJqB,EAKrB7D,KALqB,EAMrB8D,SANqB,EAOrBC,QAPqB,CAAtB;CASA;;CAED,MAAI7B,SAAJ,EAAeA,SAAS,CAAClC,KAAD,CAAT,CA7cd;;CAgdDA,EAAAA,KAAK,CAACsB,MAAD,CAAL,GAAgB,IAAhB;CAEA,MAAIc,WAAJ,EAAiBA,WAAW,CAACpC,KAAD,CAAX,CAldhB;;CAqdD,MAAI,CAACgG,IAAD,IAASI,YAAY,CAACzG,GAAb,CAAiByD,IAAjB,CAAb,EAAqC;CACpC,WAAOjE,CAAC,GAAG,IAAX;CACA;;CAED,QAAMkH,MAAM,GAAG,OAAOjD,IAAP,GAAc,GAA7B;CACA,QAAMkD,QAAQ,GAAGnH,CAAC,GAAG,GAArB;CAEA,MAAI0C,OAAO,CAACmE,IAAD,CAAX,EAAmB,OAAO,CAACM,QAAD,EAAW,GAAGN,IAAd,EAAoBK,MAApB,CAAP,CAAnB,KACK,IAAI,OAAOL,IAAP,IAAe,QAAnB,EAA6B,OAAO,CAACM,QAAD,EAAWN,IAAX,EAAiBK,MAAjB,CAAP;CAClC,SAAOC,QAAQ,GAAGN,IAAX,GAAkBK,MAAzB;CACA;;CAED,MAAMD,YAAY,GAAG,IAAIpH,GAAJ,CAAQ,CAC5B,MAD4B,EAE5B,MAF4B,EAG5B,IAH4B,EAI5B,KAJ4B,EAK5B,SAL4B,EAM5B,OAN4B,EAO5B,IAP4B,EAQ5B,KAR4B,EAS5B,OAT4B,EAU5B,QAV4B,EAW5B,MAX4B,EAY5B,MAZ4B,EAa5B,OAb4B,EAc5B,QAd4B,EAe5B,OAf4B,EAgB5B,KAhB4B,CAAR,CAArB;;CC/rBA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA,MAAMuH,WAAW,GAAI,4jBAArB;CAEO,SAASC,gBAAT,GAA4B;CAClC,SAAQ,uBAAsBD,WAAY,eAA1C;CACA;CAED;CACA;CACA;CACA;CACA;;CACO,SAASE,aAAT,CAAuBC,EAAvB,EAA2BC,OAA3B,EAAoC;CAC1C,SAAQ,sCAAqCD,EAAG,KAAIC,OAAQ,kBAA5D;CACA;;CCxDD;CACA;CACA;CACA;CACA;;CACO,eAAeC,cAAf,CAA8B5G,KAA9B,EAAqC;CAAEC,EAAAA,OAAF;CAAW4G,EAAAA,OAAX;CAAoBC,EAAAA;CAApB,CAArC,EAAwE;CAC9E7G,EAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;CAEA;;CACA,QAAM8D,QAAQ,GAAG;CAChBgD,IAAAA,KAAK,EAAEC,IAAI,CAACC,GAAL,EADS;CAEhBH,IAAAA,WAFgB;CAGhBD,IAAAA,OAHgB;CAIhBjB,IAAAA,OAAO,EAAEsB,WAJO;CAKhBC,IAAAA,SAAS,EAAE;CALK,GAAjB,CAJ8E;CAa9E;;CACA,QAAMC,KAAK,GAAG/E,cAAc,CAACrC,KAAD,EAAQC,OAAR,EAAiB8D,QAAjB,CAA5B;CACA8C,EAAAA,OAAO,CAACO,KAAD,CAAP,CAf8E;;CAkB9E,QAAMC,GAAG,GAAGtD,QAAQ,CAACoD,SAAT,CAAmB7I,MAA/B;;CACA,MAAI+I,GAAG,GAAG,CAAV,EAAa;CACZR,IAAAA,OAAO,CAAC,cAAD,CAAP;CACAA,IAAAA,OAAO,CAACL,gBAAgB,CAAA,CAAjB,CAAP,CAFY;;CAIZ,UAAMc,YAAY,CAACvD,QAAD,CAAlB;CACA8C,IAAAA,OAAO,CAAC,QAAD,CAAP;CACA;CACD;;CAED,eAAeS,YAAf,CAA4BvD,QAA5B,EAAsC;CACrC,MAAIA,QAAQ,CAACoD,SAAT,CAAmB7I,MAAnB,GAA4B,CAAhC,EAAmC;CAClC,UAAMiJ,WAAW,GAAG,CAAC,GAAGxD,QAAQ,CAACoD,SAAb,CAApB;CACA,UAAMxG,OAAO,CAAC6G,GAAR,CAAYzD,QAAQ,CAACoD,SAAT,CAAmBM,GAAnB,CAAwBtI,CAAD,IAAOA,CAAC,CAACuB,OAAhC,CAAZ,CAAN;CACAqD,IAAAA,QAAQ,CAACoD,SAAT,GAAqBpD,QAAQ,CAACoD,SAAT,CAAmBO,MAAnB,CACnBvI,CAAD,IAAO,CAACoI,WAAW,CAACI,QAAZ,CAAqBxI,CAArB,CADY,CAArB;CAGA,UAAMmI,YAAY,CAACvD,QAAD,CAAlB;CACA;CACD;CAED;;;CACA,SAASmD,WAAT,CAAqBvB,KAArB,EAA4B3F,KAA5B,EAAmC4H,WAAnC,EAAgD;CAC/C,MAAI,CAACjC,KAAD,IAAU,CAACA,KAAK,CAAC1C,IAArB,EAA2B,OADoB;;CAI/C,SAAQjD,KAAK,GAAGA,KAAK,CAACsB,MAAD,CAArB,EAAgC;CAC/B,QAAIiD,SAAS,GAAGvE,KAAK,CAACoB,SAAD,CAArB;;CACA,QAAImD,SAAS,IAAIA,SAAS,CAAC7C,iBAAD,CAA1B,EAA+C;CAC9C;CACA;CACD;;CAED,MAAI,CAAC1B,KAAL,EAAY;CAEZ,QAAM0G,EAAE,GAAG1G,KAAK,CAACE,GAAjB;CACA,QAAM2H,KAAK,GAAG,KAAKV,SAAL,CAAeW,IAAf,CAAqBC,CAAD,IAAOA,CAAC,CAACrB,EAAF,KAASA,EAApC,CAAd;CACA,QAAMsB,IAAI,GAAG,IAAIxH,QAAJ,EAAb;CAEA,QAAMsG,WAAW,GAAG,KAAKA,WAAzB;;CACA,MAAIA,WAAJ,EAAiB;CAChB;CACA,QAAIA,WAAW,CAACmB,OAAhB,EAAyBD,IAAI,CAACpH,OAAL,GAAzB,KACKkG,WAAW,CAACoB,gBAAZ,CAA6B,OAA7B,EAAsCF,IAAI,CAACpH,OAA3C;CACL;;CAED,QAAMF,OAAO,GAAGiF,KAAK,CAAC1C,IAAN,CACf,MAAM;CACL,QAAI6D,WAAW,IAAIA,WAAW,CAACmB,OAA/B,EAAwC;CACxC,UAAM/D,KAAK,GAAG0D,WAAW,CAAC5H,KAAK,CAACG,KAAN,CAAYyE,QAAb,CAAzB;CACA,QAAIV,KAAJ,EAAW,KAAK2C,OAAL,CAAaJ,aAAa,CAACC,EAAD,EAAKxC,KAAL,CAA1B;CACX,GALc;CAOf;CACA,OAAK0B,OARU,CAAhB;CAWA,OAAKuB,SAAL,CAAe/C,IAAf,CAAoB;CACnBsC,IAAAA,EADmB;CAEnB1G,IAAAA,KAFmB;CAGnBU,IAAAA,OAAO,EAAEC,OAAO,CAACqH,IAAR,CAAa,CAACtH,OAAD,EAAUsH,IAAI,CAACtH,OAAf,CAAb;CAHU,GAApB;CAMA,QAAMyH,QAAQ,GAAGP,WAAW,CAAC5H,KAAK,CAACG,KAAN,CAAYgI,QAAb,CAA5B;CAEA,SAAON,KAAK,GACT,EADS,GAER,qBAAoBnB,EAAG,MAAKyB,QAAS,sBAAqBzB,EAAG,KAFjE;CAGA;;CC7FD;CACA;CACA;CACA;CACA;CACA;;CAEA;CACA;CACA;CACA;CACA;;CAEA;CACA;CACA;CACA;CACA;CACA;;CACO,SAAS0B,sBAAT,CAAgCpI,KAAhC,EAAuCwC,OAAvC,EAAgDvC,OAAhD,EAAyD;CAC/D,QAAMoI,OAAO,GAAG,IAAIC,WAAJ,CAAgB,OAAhB,CAAhB;CAEA,QAAMC,UAAU,GAAG,IAAIC,eAAJ,EAAnB;CACA,QAAMC,MAAM,GAAG,IAAIC,uBAAJ,EAAf;CAEA9B,EAAAA,cAAc,CAAC5G,KAAD,EAAQ;CACrBC,IAAAA,OADqB;CAErB6G,IAAAA,WAAW,EAAEyB,UAAU,CAACI,MAFH;CAGrB/C,IAAAA,OAAO,EAAGD,KAAD,IAAW;CACnB,UAAInD,OAAO,CAACoD,OAAZ,EAAqB;CACpBpD,QAAAA,OAAO,CAACoD,OAAR,CAAgBD,KAAhB;CACA;;CACD4C,MAAAA,UAAU,CAACK,KAAX,CAAiBjD,KAAjB;CACA,KARoB;;CASrBkB,IAAAA,OAAO,CAAC1H,CAAD,EAAI;CACVsJ,MAAAA,MAAM,CAACI,KAAP,CAAaR,OAAO,CAACS,MAAR,CAAe3J,CAAf,CAAb;CACA;;CAXoB,GAAR,CAAd,CAaE8D,IAbF,CAaO,MAAM;CACXT,IAAAA,OAAO,CAACuG,UAAR,IAAsBvG,OAAO,CAACuG,UAAR,EAAtB;CACAN,IAAAA,MAAM,CAACO,GAAP;CACA,GAhBF,EAiBEC,KAjBF,CAiBStD,KAAD,IAAW;CACjB8C,IAAAA,MAAM,CAACS,OAAP,CAAevD,KAAf;CACA,GAnBF;CAqBAhF,EAAAA,OAAO,CAACC,OAAR,GAAkBqC,IAAlB,CAAuB,MAAM;CAC5BT,IAAAA,OAAO,CAAC2G,YAAR,IAAwB3G,OAAO,CAAC2G,YAAR,EAAxB;CACA,GAFD;CAIA,SAAO;CACNP,IAAAA,KAAK,GAAG;CACPL,MAAAA,UAAU,CAACK,KAAX;CACAH,MAAAA,MAAM,CAACS,OAAP,CAAe,IAAIhG,KAAJ,CAAU,SAAV,CAAf;CACA,KAJK;;CAKN;CACF;CACA;CACEkG,IAAAA,IAAI,CAACC,QAAD,EAAW;CACdZ,MAAAA,MAAM,CAACW,IAAP,CAAYC,QAAZ,EAAsB;CAAEL,QAAAA,GAAG,EAAE;CAAP,OAAtB;CACA;;CAVK,GAAP;CAYA;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "preact-render-to-string",
|
|
3
3
|
"amdName": "preactRenderToString",
|
|
4
|
-
"version": "6.5.
|
|
4
|
+
"version": "6.5.8",
|
|
5
5
|
"description": "Render JSX to an HTML string, with support for Preact components.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"umd:main": "dist/index.umd.js",
|