@jay-framework/compiler-jay-html 0.15.2 → 0.15.3

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.
Files changed (2) hide show
  1. package/dist/index.js +26 -4
  2. package/package.json +9 -9
package/dist/index.js CHANGED
@@ -20554,9 +20554,25 @@ ${context.indent.firstLine} ${createBody})`,
20554
20554
  itemChildNodes.map((child) => renderHydrateNode(child, itemContext)),
20555
20555
  ",\n"
20556
20556
  );
20557
- const adoptBody = itemContent.rendered.trim() ? `() => [
20557
+ const itemRenderCtx = buildRenderContext(itemContext);
20558
+ const itemAttrs = renderDynamicAttributes(element, itemRenderCtx);
20559
+ const itemHasDynamicAttrs = itemAttrs.imports.has(Import.dynamicAttribute) || itemAttrs.imports.has(Import.dynamicProperty) || itemAttrs.imports.has(Import.booleanAttribute);
20560
+ const itemRefFragment = renderElementRef$1(element, itemRenderCtx);
20561
+ const needsItemAdoption = itemHasDynamicAttrs || !!itemRefFragment.rendered.trim();
20562
+ let adoptBody;
20563
+ if (needsItemAdoption) {
20564
+ const refSuffix = itemRefFragment.rendered ? `, ${itemRefFragment.rendered}` : "";
20565
+ const childrenArr = itemContent.rendered.trim() ? `[
20566
+ ${itemContent.rendered},
20567
+ ${indent.firstLine} ]` : "[]";
20568
+ adoptBody = `() => [
20569
+ ${indent.firstLine} adoptElement("", ${itemAttrs.rendered}, ${childrenArr}${refSuffix}),
20570
+ ${indent.firstLine} ]`;
20571
+ } else {
20572
+ adoptBody = itemContent.rendered.trim() ? `() => [
20558
20573
  ${itemContent.rendered},
20559
20574
  ${indent.firstLine} ]` : "() => []";
20575
+ }
20560
20576
  const createRenderContext = {
20561
20577
  ...renderContext,
20562
20578
  variables: forEachVariables,
@@ -20585,21 +20601,27 @@ ${indent.firstLine} ]` : "() => []";
20585
20601
  );
20586
20602
  const forEachElementFunc = forEachNeedsDynamic ? "de" : "e";
20587
20603
  const forEachElementImport = forEachNeedsDynamic ? Import.dynamicElement : Import.element;
20604
+ const createItemRef = renderElementRef$1(element, createRenderContext);
20605
+ const createRefSuffix = createItemRef.rendered ? `, ${createItemRef.rendered}` : "";
20588
20606
  const createBody = `(${forEachVariables.currentVar}: ${forEachVariables.currentType.name}) => {
20589
- ${indent.firstLine} return ${forEachElementFunc}('${element.rawTagName}', ${createAttributes.rendered}, [${createChildren.rendered}]);
20607
+ ${indent.firstLine} return ${forEachElementFunc}('${element.rawTagName}', ${createAttributes.rendered}, [${createChildren.rendered}]${createRefSuffix});
20590
20608
  ${indent.firstLine} }`;
20609
+ let allImports = Imports.for(Import.hydrateForEach).plus(forEachElementImport).plus(forEachFragment.imports).plus(itemContent.imports).plus(createChildren.imports).plus(createAttributes.imports).plus(itemAttrs.imports).plus(itemRefFragment.imports).plus(createItemRef.imports);
20610
+ if (needsItemAdoption) {
20611
+ allImports = allImports.plus(Import.adoptElement);
20612
+ }
20591
20613
  const hydrateForEachFragment = new RenderFragment(
20592
20614
  `${indent.firstLine}hydrateForEach(${forEachFragment.rendered}, '${trackBy}',
20593
20615
  ${indent.firstLine} ${adoptBody},
20594
20616
  ${indent.firstLine} ${createBody},
20595
20617
  ${indent.firstLine})`,
20596
- Imports.for(Import.hydrateForEach).plus(forEachElementImport).plus(forEachFragment.imports).plus(itemContent.imports).plus(createChildren.imports).plus(createAttributes.imports),
20618
+ allImports,
20597
20619
  [
20598
20620
  ...forEachFragment.validations,
20599
20621
  ...itemContent.validations,
20600
20622
  ...createChildren.validations
20601
20623
  ],
20602
- itemContent.refs
20624
+ mergeRefsTrees(itemContent.refs, itemRefFragment.refs)
20603
20625
  );
20604
20626
  return nestRefs(forEachAccessor.terms, hydrateForEachFragment);
20605
20627
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jay-framework/compiler-jay-html",
3
- "version": "0.15.2",
3
+ "version": "0.15.3",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -34,12 +34,12 @@
34
34
  },
35
35
  "author": "",
36
36
  "dependencies": {
37
- "@jay-framework/compiler-analyze-exported-types": "^0.15.2",
38
- "@jay-framework/compiler-shared": "^0.15.2",
39
- "@jay-framework/component": "^0.15.2",
40
- "@jay-framework/logger": "^0.15.2",
41
- "@jay-framework/runtime": "^0.15.2",
42
- "@jay-framework/secure": "^0.15.2",
37
+ "@jay-framework/compiler-analyze-exported-types": "^0.15.3",
38
+ "@jay-framework/compiler-shared": "^0.15.3",
39
+ "@jay-framework/component": "^0.15.3",
40
+ "@jay-framework/logger": "^0.15.3",
41
+ "@jay-framework/runtime": "^0.15.3",
42
+ "@jay-framework/secure": "^0.15.3",
43
43
  "@types/js-yaml": "^4.0.9",
44
44
  "change-case": "^4.1.2",
45
45
  "js-yaml": "^4.1.0",
@@ -51,8 +51,8 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@caiogondim/strip-margin": "^1.0.0",
54
- "@jay-framework/4-react": "^0.15.2",
55
- "@jay-framework/dev-environment": "^0.15.2",
54
+ "@jay-framework/4-react": "^0.15.3",
55
+ "@jay-framework/dev-environment": "^0.15.3",
56
56
  "@testing-library/jest-dom": "^6.2.0",
57
57
  "@types/js-beautify": "^1",
58
58
  "@types/node": "^20.11.5",