@analogjs/astro-angular 3.0.0-beta.1 → 3.0.0-beta.11
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/package.json +2 -2
- package/src/client-ngh.js +1 -1
- package/src/client.d.ts +2 -1
- package/src/client.js +10 -27
- package/src/client.js.map +1 -1
- package/src/server-ngh.js +1 -1
- package/src/server.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/astro-angular",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.11",
|
|
4
4
|
"description": "Use Angular components within Astro",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"url": "https://github.com/sponsors/brandonroberts"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@analogjs/vite-plugin-angular": "3.0.0-beta.
|
|
59
|
+
"@analogjs/vite-plugin-angular": "3.0.0-beta.11",
|
|
60
60
|
"rehype": "^13.0.2"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
package/src/client-ngh.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { buildProjectableNodes, collectProjectedNodes } from "./projection.js";
|
|
2
1
|
import { ID_PROP_NAME } from "./id.js";
|
|
3
2
|
import { createComponentBindings, getComponentElementTag, registerRootComponent } from "./create-component.js";
|
|
3
|
+
import { buildProjectableNodes, collectProjectedNodes } from "./projection.js";
|
|
4
4
|
import { ensureSsrIntegrityMarker } from "./ssr-integrity.js";
|
|
5
5
|
import { APP_ID, createComponent, provideZonelessChangeDetection, reflectComponentType } from "@angular/core";
|
|
6
6
|
import { createApplication, provideClientHydration } from "@angular/platform-browser";
|
package/src/client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EnvironmentProviders, Provider, ɵComponentType as ComponentType } from "@angular/core";
|
|
2
|
+
import { ApplicationRef } from "@angular/core";
|
|
2
3
|
declare const _default: (element: HTMLElement) => ((Component: ComponentType<unknown> & {
|
|
3
4
|
clientProviders?: (Provider | EnvironmentProviders)[];
|
|
4
|
-
}, props?: Record<string, unknown>, slots?: unknown) => void);
|
|
5
|
+
}, props?: Record<string, unknown>, slots?: unknown) => Promise<ApplicationRef | void> | undefined);
|
|
5
6
|
export default _default;
|
package/src/client.js
CHANGED
|
@@ -1,42 +1,25 @@
|
|
|
1
|
+
import { ID_PROP_NAME } from "./id.js";
|
|
2
|
+
import { createComponentBindings, registerRootComponent } from "./create-component.js";
|
|
1
3
|
import { buildProjectableNodes } from "./projection.js";
|
|
2
4
|
import { createComponent, provideZonelessChangeDetection, reflectComponentType } from "@angular/core";
|
|
3
5
|
import { createApplication } from "@angular/platform-browser";
|
|
4
|
-
import { Subject, takeUntil } from "rxjs";
|
|
5
6
|
//#region packages/astro-angular/src/client.ts
|
|
6
7
|
var client_default = (element) => {
|
|
7
8
|
return (Component, props, slots) => {
|
|
8
9
|
const mirror = reflectComponentType(Component);
|
|
9
10
|
if (!mirror) return;
|
|
10
|
-
|
|
11
|
+
if (mirror.outputs.length && props?.["data-analog-id"]) element.setAttribute(ID_PROP_NAME, props[ID_PROP_NAME]);
|
|
12
|
+
return createApplication({ providers: [provideZonelessChangeDetection(), ...Component.clientProviders || []] }).then((appRef) => {
|
|
11
13
|
const componentRef = createComponent(Component, {
|
|
12
14
|
environmentInjector: appRef.injector,
|
|
13
15
|
hostElement: element,
|
|
14
|
-
projectableNodes: buildProjectableNodes(mirror, slots, document)
|
|
16
|
+
projectableNodes: buildProjectableNodes(mirror, slots, document),
|
|
17
|
+
bindings: createComponentBindings(mirror, props, element)
|
|
15
18
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const destroySubject = new Subject();
|
|
21
|
-
element.setAttribute("data-analog-id", props["data-analog-id"]);
|
|
22
|
-
mirror.outputs.forEach(({ templateName, propName }) => {
|
|
23
|
-
const outputName = templateName || propName;
|
|
24
|
-
componentRef.instance[outputName].pipe(takeUntil(destroySubject)).subscribe((detail) => {
|
|
25
|
-
const event = new CustomEvent(outputName, {
|
|
26
|
-
bubbles: true,
|
|
27
|
-
cancelable: true,
|
|
28
|
-
composed: true,
|
|
29
|
-
detail
|
|
30
|
-
});
|
|
31
|
-
element.dispatchEvent(event);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
appRef.onDestroy(() => {
|
|
35
|
-
destroySubject.next();
|
|
36
|
-
destroySubject.complete();
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
appRef.attachView(componentRef.hostView);
|
|
19
|
+
registerRootComponent(appRef, componentRef);
|
|
20
|
+
return appRef;
|
|
21
|
+
}).catch((error) => {
|
|
22
|
+
console.error("Failed to bootstrap Angular component:", error);
|
|
40
23
|
});
|
|
41
24
|
};
|
|
42
25
|
};
|
package/src/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":[],"sources":["../../src/client.ts"],"sourcesContent":["import {\n EnvironmentProviders,\n Provider,\n reflectComponentType,\n ɵComponentType as ComponentType,\n provideZonelessChangeDetection,\n} from '@angular/core';\nimport { ApplicationRef, createComponent } from '@angular/core';\nimport { createApplication } from '@angular/platform-browser';\nimport {
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../../src/client.ts"],"sourcesContent":["import {\n EnvironmentProviders,\n Provider,\n reflectComponentType,\n ɵComponentType as ComponentType,\n provideZonelessChangeDetection,\n} from '@angular/core';\nimport { ApplicationRef, createComponent } from '@angular/core';\nimport { createApplication } from '@angular/platform-browser';\nimport {\n createComponentBindings,\n registerRootComponent,\n} from './create-component.ts';\nimport { ID_PROP_NAME } from './id.ts';\nimport { buildProjectableNodes } from './projection.ts';\n\nexport default (\n element: HTMLElement,\n): ((\n Component: ComponentType<unknown> & {\n clientProviders?: (Provider | EnvironmentProviders)[];\n },\n props?: Record<string, unknown>,\n slots?: unknown,\n) => Promise<ApplicationRef | void> | undefined) => {\n return (\n Component: ComponentType<unknown> & {\n clientProviders?: (Provider | EnvironmentProviders)[];\n },\n props?: Record<string, unknown>,\n slots?: unknown,\n ): Promise<ApplicationRef | void> | undefined => {\n const mirror = reflectComponentType(Component);\n\n if (!mirror) {\n // Not an Angular component\n return;\n }\n\n if (mirror.outputs.length && props?.[ID_PROP_NAME]) {\n // `addOutputListener` waits for this attribute to attach its listener.\n element.setAttribute(ID_PROP_NAME, props[ID_PROP_NAME] as string);\n }\n\n return createApplication({\n providers: [\n provideZonelessChangeDetection(),\n ...(Component.clientProviders || []),\n ],\n })\n .then((appRef: ApplicationRef) => {\n // Bindings go through `inputBinding`/`outputBinding`, which handle\n // aliases as well as signal `input()` and `output()`.\n const componentRef = createComponent(Component, {\n environmentInjector: appRef.injector,\n hostElement: element,\n projectableNodes: buildProjectableNodes(mirror, slots, document),\n bindings: createComponentBindings(mirror, props, element),\n });\n\n registerRootComponent(appRef, componentRef);\n\n return appRef;\n })\n .catch((error) => {\n console.error('Failed to bootstrap Angular component:', error);\n });\n };\n};\n"],"mappings":";;;;;;AAgBA,IAAA,kBACE,YAOkD;CAClD,QACE,WAGA,OACA,UAC+C;EAC/C,MAAM,SAAS,qBAAqB,SAAS;EAE7C,IAAI,CAAC,QAEH;EAGF,IAAI,OAAO,QAAQ,UAAU,QAAA,mBAE3B,QAAQ,aAAa,cAAc,MAAM,aAAuB;EAGlE,OAAO,kBAAkB,EACvB,WAAW,CACT,+BAA+B,GAC/B,GAAI,UAAU,mBAAmB,CAAC,CACpC,EACF,CAAC,CAAC,CACC,MAAM,WAA2B;GAGhC,MAAM,eAAe,gBAAgB,WAAW;IAC9C,qBAAqB,OAAO;IAC5B,aAAa;IACb,kBAAkB,sBAAsB,QAAQ,OAAO,QAAQ;IAC/D,UAAU,wBAAwB,QAAQ,OAAO,OAAO;GAC1D,CAAC;GAED,sBAAsB,QAAQ,YAAY;GAE1C,OAAO;EACT,CAAC,CAAC,CACD,OAAO,UAAU;GAChB,QAAQ,MAAM,0CAA0C,KAAK;EAC/D,CAAC;CACL;AACF"}
|
package/src/server-ngh.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { buildProjectableNodes, markProjectableNodes } from "./projection.js";
|
|
2
1
|
import { ID_PROP_NAME } from "./id.js";
|
|
3
2
|
import { createInputBindings, getComponentElementTag, registerRootComponent } from "./create-component.js";
|
|
3
|
+
import { buildProjectableNodes, markProjectableNodes } from "./projection.js";
|
|
4
4
|
import { getContext, incrementId } from "./context.js";
|
|
5
5
|
import { APP_ID, DOCUMENT, createComponent, provideZonelessChangeDetection, reflectComponentType } from "@angular/core";
|
|
6
6
|
import { createApplication, provideClientHydration } from "@angular/platform-browser";
|
package/src/server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { buildProjectableNodes } from "./projection.js";
|
|
2
1
|
import { createInputBindings, getComponentElementTag, registerRootComponent } from "./create-component.js";
|
|
2
|
+
import { buildProjectableNodes } from "./projection.js";
|
|
3
3
|
import { DOCUMENT, createComponent, provideZonelessChangeDetection, reflectComponentType } from "@angular/core";
|
|
4
4
|
import { createApplication } from "@angular/platform-browser";
|
|
5
5
|
import { platformServer, provideServerRendering, renderApplication, ɵSERVER_CONTEXT } from "@angular/platform-server";
|