@unhead/angular 2.0.0-alpha.19 → 2.0.0-alpha.21

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 (36) hide show
  1. package/client.d.ts +1 -0
  2. package/dist/client/client.d.ts +3 -0
  3. package/dist/client/client.d.ts.map +1 -0
  4. package/dist/client/index.d.ts +6 -0
  5. package/dist/client/public_api.d.ts +2 -0
  6. package/dist/client/public_api.d.ts.map +1 -0
  7. package/dist/client/unhead-angular-client.d.ts.map +1 -0
  8. package/dist/composables.d.ts.map +1 -0
  9. package/dist/context.d.ts +5 -0
  10. package/dist/context.d.ts.map +1 -0
  11. package/dist/fesm2022/unhead-angular-client.mjs +32 -0
  12. package/dist/fesm2022/unhead-angular-client.mjs.map +1 -0
  13. package/dist/fesm2022/unhead-angular-server.mjs +31 -0
  14. package/dist/fesm2022/unhead-angular-server.mjs.map +1 -0
  15. package/dist/fesm2022/unhead-angular.mjs +72 -105
  16. package/dist/fesm2022/unhead-angular.mjs.map +1 -1
  17. package/dist/head.component.d.ts.map +1 -0
  18. package/dist/public-api.d.ts +4 -4
  19. package/dist/public-api.d.ts.map +1 -1
  20. package/dist/server/index.d.ts +6 -0
  21. package/dist/server/public_api.d.ts +2 -0
  22. package/dist/server/public_api.d.ts.map +1 -0
  23. package/dist/server/server.d.ts +3 -0
  24. package/dist/server/server.d.ts.map +1 -0
  25. package/dist/server/unhead-angular-server.d.ts.map +1 -0
  26. package/dist/unhead.service.d.ts.map +1 -0
  27. package/package.json +37 -11
  28. package/server.d.ts +1 -0
  29. package/dist/lib/head.component.d.ts.map +0 -1
  30. package/dist/lib/unhead.service.d.ts.map +0 -1
  31. package/dist/unhead/composables.d.ts.map +0 -1
  32. package/dist/unhead/install.d.ts +0 -7
  33. package/dist/unhead/install.d.ts.map +0 -1
  34. /package/dist/{unhead/composables.d.ts → composables.d.ts} +0 -0
  35. /package/dist/{lib/head.component.d.ts → head.component.d.ts} +0 -0
  36. /package/dist/{lib/unhead.service.d.ts → unhead.service.d.ts} +0 -0
package/client.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/client'
@@ -0,0 +1,3 @@
1
+ import type { CreateClientHeadOptions } from 'unhead/types';
2
+ export declare function provideClientHead(options?: CreateClientHeadOptions): import("@angular/core").EnvironmentProviders;
3
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../client/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAM3D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,gDAetE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@unhead/angular/client" />
5
+ export * from './public_api';
6
+ //# sourceMappingURL=unhead-angular-client.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from './client';
2
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../client/src/public_api.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhead-angular-client.d.ts","sourceRoot":"","sources":["../../client/src/unhead-angular-client.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composables.d.ts","sourceRoot":"","sources":["../src/composables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKtH,wBAAgB,SAAS,oFAMxB;AAcD,wBAAgB,OAAO,CAAC,KAAK,GAAE,YAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,YAAY,CAAC,CAE/G;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAE,QAAa,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAE3G;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,eAAoB,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,CAExH;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CA2D3K"}
@@ -0,0 +1,5 @@
1
+ import type { Unhead } from 'unhead/types';
2
+ import { InjectionToken } from '@angular/core';
3
+ export declare const headSymbol = "usehead";
4
+ export declare const UnheadInjectionToken: InjectionToken<Unhead<import("unhead/types").Head<import("unhead/types").SchemaAugmentations>>>;
5
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,UAAU,YAAY,CAAA;AAEnC,eAAO,MAAM,oBAAoB,iGAAyC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { makeEnvironmentProviders, inject } from '@angular/core';
3
+ import { UnheadInjectionToken } from '@unhead/angular';
4
+ import { createHead, createDebouncedFn, renderDOMHead } from 'unhead/client';
5
+
6
+ function provideClientHead(options = {}) {
7
+ return makeEnvironmentProviders([{
8
+ provide: UnheadInjectionToken,
9
+ useFactory: () => {
10
+ const document = inject(DOCUMENT);
11
+ const head = createHead({
12
+ document,
13
+ domOptions: {
14
+ render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),
15
+ },
16
+ ...options,
17
+ });
18
+ return head;
19
+ },
20
+ }]);
21
+ }
22
+
23
+ /*
24
+ * Public API Surface of unhead
25
+ */
26
+
27
+ /**
28
+ * Generated bundle index. Do not edit.
29
+ */
30
+
31
+ export { provideClientHead };
32
+ //# sourceMappingURL=unhead-angular-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhead-angular-client.mjs","sources":["../../client/src/client.ts","../../client/src/public_api.ts","../../client/src/unhead-angular-client.ts"],"sourcesContent":["import type { CreateClientHeadOptions } from 'unhead/types'\nimport { DOCUMENT } from '@angular/common'\nimport { inject, makeEnvironmentProviders } from '@angular/core'\nimport { UnheadInjectionToken } from '@unhead/angular'\nimport { createHead as _createClientHead, createDebouncedFn, renderDOMHead } from 'unhead/client'\n\nexport function provideClientHead(options: CreateClientHeadOptions = {}) {\n return makeEnvironmentProviders([{\n provide: UnheadInjectionToken,\n useFactory: () => {\n const document = inject(DOCUMENT)\n const head = _createClientHead({\n document,\n domOptions: {\n render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),\n },\n ...options,\n })\n return head\n },\n }])\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './client'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_createClientHead"],"mappings":";;;;;AAMgB,SAAA,iBAAiB,CAAC,OAAA,GAAmC,EAAE,EAAA;IACrE,OAAO,wBAAwB,CAAC,CAAC;AAC/B,YAAA,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,MAAK;AACf,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,MAAM,IAAI,GAAGA,UAAiB,CAAC;oBAC7B,QAAQ;AACR,oBAAA,UAAU,EAAE;wBACV,MAAM,EAAE,iBAAiB,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,qBAAA;AACD,oBAAA,GAAG,OAAO;AACX,iBAAA,CAAC;AACF,gBAAA,OAAO,IAAI;aACZ;AACF,SAAA,CAAC,CAAC;AACL;;ACrBA;;AAEG;;ACFH;;AAEG;;;;"}
@@ -0,0 +1,31 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { BEFORE_APP_SERIALIZED } from '@angular/platform-server';
3
+ import { UnheadInjectionToken, Unhead } from '@unhead/angular';
4
+ import { createHead } from 'unhead/server';
5
+
6
+ function provideServerHead(options = {}) {
7
+ const head = createHead(options);
8
+ return makeEnvironmentProviders([
9
+ { provide: UnheadInjectionToken, useValue: head },
10
+ Unhead,
11
+ {
12
+ provide: BEFORE_APP_SERIALIZED,
13
+ useFactory: (service) => () => {
14
+ return service._ssrModifyResponse();
15
+ },
16
+ deps: [Unhead],
17
+ multi: true,
18
+ },
19
+ ]);
20
+ }
21
+
22
+ /*
23
+ * Public API Surface of unhead
24
+ */
25
+
26
+ /**
27
+ * Generated bundle index. Do not edit.
28
+ */
29
+
30
+ export { provideServerHead };
31
+ //# sourceMappingURL=unhead-angular-server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhead-angular-server.mjs","sources":["../../server/src/server.ts","../../server/src/public_api.ts","../../server/src/unhead-angular-server.ts"],"sourcesContent":["import type { CreateServerHeadOptions } from 'unhead/types'\nimport { makeEnvironmentProviders } from '@angular/core'\nimport { BEFORE_APP_SERIALIZED } from '@angular/platform-server'\nimport { Unhead, UnheadInjectionToken } from '@unhead/angular'\nimport { createHead as _createServerHead } from 'unhead/server'\n\nexport function provideServerHead(options: CreateServerHeadOptions = {}) {\n const head = _createServerHead(options)\n return makeEnvironmentProviders([\n { provide: UnheadInjectionToken, useValue: head },\n Unhead,\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: (service: Unhead) => () => {\n return service._ssrModifyResponse()\n },\n deps: [Unhead],\n multi: true,\n },\n ])\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './server'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_createServerHead"],"mappings":";;;;;AAMgB,SAAA,iBAAiB,CAAC,OAAA,GAAmC,EAAE,EAAA;AACrE,IAAA,MAAM,IAAI,GAAGA,UAAiB,CAAC,OAAO,CAAC;AACvC,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,MAAM;AACN,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,UAAU,EAAE,CAAC,OAAe,KAAK,MAAK;AACpC,gBAAA,OAAO,OAAO,CAAC,kBAAkB,EAAE;aACpC;YACD,IAAI,EAAE,CAAC,MAAM,CAAC;AACd,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,CAAC;AACJ;;ACpBA;;AAEG;;ACFH;;AAEG;;;;"}
@@ -1,97 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject, InjectionToken, makeEnvironmentProviders, inject, DestroyRef, effect, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { InjectionToken, inject, DestroyRef, effect, CUSTOM_ELEMENTS_SCHEMA, Component, Inject, Injectable } from '@angular/core';
3
3
  import { useHead as useHead$1, useHeadSafe as useHeadSafe$1, useSeoMeta as useSeoMeta$1, useScript as useScript$1 } from 'unhead';
4
- import { BEFORE_APP_SERIALIZED } from '@angular/platform-server';
5
- import { createHead as createHead$1, createDebouncedFn, renderDOMHead } from 'unhead/client';
6
- import { renderSSRHead, createHead } from 'unhead/server';
7
4
  import { DOCUMENT } from '@angular/common';
8
-
9
- function attrToElement(element, acc) {
10
- const [key, value] = acc.match(/([a-z0-9-]+)(?:="([^"]*)")?/i)?.slice(1, 3) || [];
11
- if (!key)
12
- return;
13
- if (value === undefined) {
14
- element.setAttribute(key, '');
15
- }
16
- else if (key === 'style') {
17
- const styleObj = value.split(';').reduce((acc, style) => {
18
- const [prop, val] = style.split(':').map(s => s.trim());
19
- if (prop && val)
20
- acc[prop] = val;
21
- return acc;
22
- }, {});
23
- Object.entries(styleObj).forEach(([prop, val]) => {
24
- element.style.setProperty(prop, val);
25
- });
26
- }
27
- else if (key === 'class') {
28
- value.split(' ').forEach(className => element.classList.add(className));
29
- }
30
- else {
31
- element.setAttribute(key, value);
32
- }
33
- }
34
- const attrRegex = /([a-z0-9-]+(?:="[^"]*")?)/gi;
35
- class Unhead {
36
- document;
37
- unhead;
38
- constructor(document, unhead) {
39
- this.document = document;
40
- this.unhead = unhead;
41
- }
42
- async _ssrModifyResponse() {
43
- const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {
44
- omitLineBreaks: false,
45
- });
46
- htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr));
47
- bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr));
48
- this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags;
49
- this.document.head.innerHTML = headTags + this.document.head.innerHTML;
50
- }
51
- static ɵfac = function Unhead_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Unhead)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(UnheadInjectionToken)); };
52
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Unhead, factory: Unhead.ɵfac, providedIn: 'root' });
53
- }
54
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Unhead, [{
55
- type: Injectable,
56
- args: [{
57
- providedIn: 'root',
58
- }]
59
- }], () => [{ type: Document, decorators: [{
60
- type: Inject,
61
- args: [DOCUMENT]
62
- }] }, { type: undefined, decorators: [{
63
- type: Inject,
64
- args: [UnheadInjectionToken]
65
- }] }], null); })();
5
+ import { renderSSRHead } from 'unhead/server';
66
6
 
67
7
  const headSymbol = 'usehead';
68
8
  const UnheadInjectionToken = new InjectionToken(headSymbol);
69
- function provideServerHead(options = {}) {
70
- const head = createHead(options);
71
- return makeEnvironmentProviders([
72
- { provide: UnheadInjectionToken, useValue: head },
73
- Unhead,
74
- {
75
- provide: BEFORE_APP_SERIALIZED,
76
- useFactory: (service) => () => {
77
- return service._ssrModifyResponse();
78
- },
79
- deps: [Unhead],
80
- multi: true,
81
- },
82
- ]);
83
- }
84
- function provideClientHead(options = {}) {
85
- const head = createHead$1({
86
- domOptions: {
87
- render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),
88
- },
89
- ...options,
90
- });
91
- return makeEnvironmentProviders([
92
- { provide: UnheadInjectionToken, useValue: head },
93
- ]);
94
- }
95
9
 
96
10
  function useUnhead() {
97
11
  const instance = inject(UnheadInjectionToken);
@@ -172,7 +86,6 @@ function useScript(_input, _options) {
172
86
  return script;
173
87
  }
174
88
 
175
- const _c0 = ["*"];
176
89
  class Head {
177
90
  headEntry = useHead({});
178
91
  updateHead(nodes) {
@@ -201,22 +114,76 @@ class Head {
201
114
  ngOnDestroy() {
202
115
  this.headEntry.dispose();
203
116
  }
204
- static ɵfac = function Head_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Head)(); };
205
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Head, selectors: [["unhead-head"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function Head_Template(rf, ctx) { if (rf & 1) {
206
- i0.ɵɵprojectionDef();
207
- i0.ɵɵprojection(0);
208
- } }, encapsulation: 2 });
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Head, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: Head, isStandalone: true, selector: "unhead-head", ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Head, decorators: [{
121
+ type: Component,
122
+ args: [{
123
+ selector: 'unhead-head',
124
+ standalone: true,
125
+ template: '<ng-content></ng-content>',
126
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
127
+ }]
128
+ }] });
129
+
130
+ function attrToElement(element, acc) {
131
+ const [key, value] = acc.match(/([a-z0-9-]+)(?:="([^"]*)")?/i)?.slice(1, 3) || [];
132
+ if (!key)
133
+ return;
134
+ if (value === undefined) {
135
+ element.setAttribute(key, '');
136
+ }
137
+ else if (key === 'style') {
138
+ const styleObj = value.split(';').reduce((acc, style) => {
139
+ const [prop, val] = style.split(':').map(s => s.trim());
140
+ if (prop && val)
141
+ acc[prop] = val;
142
+ return acc;
143
+ }, {});
144
+ Object.entries(styleObj).forEach(([prop, val]) => {
145
+ element.style.setProperty(prop, val);
146
+ });
147
+ }
148
+ else if (key === 'class') {
149
+ value.split(' ').forEach(className => element.classList.add(className));
150
+ }
151
+ else {
152
+ element.setAttribute(key, value);
153
+ }
154
+ }
155
+ const attrRegex = /([a-z0-9-]+(?:="[^"]*")?)/gi;
156
+ class Unhead {
157
+ document;
158
+ unhead;
159
+ constructor(document, unhead) {
160
+ this.document = document;
161
+ this.unhead = unhead;
162
+ }
163
+ async _ssrModifyResponse() {
164
+ const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {
165
+ omitLineBreaks: false,
166
+ });
167
+ htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr));
168
+ bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr));
169
+ this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags;
170
+ this.document.head.innerHTML = headTags + this.document.head.innerHTML;
171
+ }
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Unhead, deps: [{ token: DOCUMENT }, { token: UnheadInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable });
173
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Unhead, providedIn: 'root' });
209
174
  }
210
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Head, [{
211
- type: Component,
212
- args: [{
213
- selector: 'unhead-head',
214
- standalone: true,
215
- template: '<ng-content></ng-content>',
216
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
217
- }]
218
- }], null, null); })();
219
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Head, { className: "Head", filePath: "lib/head.component.ts", lineNumber: 17 }); })();
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Unhead, decorators: [{
176
+ type: Injectable,
177
+ args: [{
178
+ providedIn: 'root',
179
+ }]
180
+ }], ctorParameters: () => [{ type: Document, decorators: [{
181
+ type: Inject,
182
+ args: [DOCUMENT]
183
+ }] }, { type: undefined, decorators: [{
184
+ type: Inject,
185
+ args: [UnheadInjectionToken]
186
+ }] }] });
220
187
 
221
188
  /*
222
189
  * Public API Surface of unhead
@@ -226,5 +193,5 @@ class Head {
226
193
  * Generated bundle index. Do not edit.
227
194
  */
228
195
 
229
- export { Head, Unhead, UnheadInjectionToken, headSymbol, provideClientHead, provideServerHead, useHead, useHeadSafe, useScript, useSeoMeta, useUnhead };
196
+ export { Head, Unhead, UnheadInjectionToken, headSymbol, useHead, useHeadSafe, useScript, useSeoMeta, useUnhead };
230
197
  //# sourceMappingURL=unhead-angular.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unhead-angular.mjs","sources":["../../src/lib/unhead.service.ts","../../src/unhead/install.ts","../../src/unhead/composables.ts","../../src/lib/head.component.ts","../../src/public-api.ts","../../src/unhead-angular.ts"],"sourcesContent":["import type { Unhead as UnheadSchema } from 'unhead/types'\nimport { DOCUMENT } from '@angular/common'\nimport { Inject, Injectable, Optional } from '@angular/core'\nimport { renderSSRHead } from 'unhead/server'\nimport { UnheadInjectionToken } from '../unhead/install'\n\nfunction attrToElement(element: HTMLElement, acc: string) {\n const [key, value] = acc.match(/([a-z0-9-]+)(?:=\"([^\"]*)\")?/i)?.slice(1, 3) || []\n if (!key)\n return\n\n if (value === undefined) {\n element.setAttribute(key, '')\n }\n else if (key === 'style') {\n const styleObj = value.split(';').reduce((acc, style) => {\n const [prop, val] = style.split(':').map(s => s.trim())\n if (prop && val)\n acc[prop] = val\n return acc\n }, {} as Record<string, string>)\n Object.entries(styleObj).forEach(([prop, val]) => {\n element.style.setProperty(prop, val)\n })\n }\n else if (key === 'class') {\n value.split(' ').forEach(className => element.classList.add(className))\n }\n else {\n element.setAttribute(key, value)\n }\n}\n\nconst attrRegex = /([a-z0-9-]+(?:=\"[^\"]*\")?)/gi\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Unhead {\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(UnheadInjectionToken) private unhead: UnheadSchema,\n ) {}\n\n async _ssrModifyResponse() {\n const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {\n omitLineBreaks: false,\n })\n htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr))\n bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr))\n this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags\n this.document.head.innerHTML = headTags + this.document.head.innerHTML\n }\n}\n","import type { CreateClientHeadOptions, CreateServerHeadOptions, Unhead as UnheadSchema } from 'unhead/types'\nimport { InjectionToken, makeEnvironmentProviders } from '@angular/core'\nimport { BEFORE_APP_SERIALIZED } from '@angular/platform-server'\nimport { createHead as _createClientHead, createDebouncedFn, renderDOMHead } from 'unhead/client'\nimport { createHead as _createServerHead } from 'unhead/server'\nimport { Unhead } from '../lib/unhead.service'\n\nexport const headSymbol = 'usehead'\n\nexport const UnheadInjectionToken = new InjectionToken<UnheadSchema>(headSymbol)\n\nexport function provideServerHead(options: CreateServerHeadOptions = {}) {\n const head = _createServerHead(options)\n return makeEnvironmentProviders([\n { provide: UnheadInjectionToken, useValue: head },\n Unhead,\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: (service: Unhead) => () => {\n return service._ssrModifyResponse()\n },\n deps: [Unhead],\n multi: true,\n },\n ])\n}\n\nexport function provideClientHead(options: CreateClientHeadOptions = {}) {\n const head = _createClientHead({\n domOptions: {\n render: createDebouncedFn(() => renderDOMHead(head), fn => setTimeout(() => fn(), 0)),\n },\n ...options,\n })\n return makeEnvironmentProviders([\n { provide: UnheadInjectionToken, useValue: head },\n ])\n}\n","import type { UseScriptInput, UseScriptOptions, UseScriptReturn } from 'unhead/scripts'\nimport type { ActiveHeadEntry, HeadEntryOptions, HeadSafe, Unhead, UseHeadInput, UseSeoMetaInput } from 'unhead/types'\nimport { DestroyRef, effect, inject } from '@angular/core'\nimport { useHead as baseHead, useHeadSafe as baseHeadSafe, useSeoMeta as baseSeoMeta, useScript as baseUseScript } from 'unhead'\nimport { UnheadInjectionToken } from './install'\n\nexport function useUnhead() {\n const instance = inject<Unhead>(UnheadInjectionToken)\n if (!instance) {\n throw new Error('useHead() was called without proper injection context.')\n }\n return instance\n}\n\nfunction withSideEffects<T extends ActiveHeadEntry<any>>(input: any, options: any, fn: any): T {\n const head = options.head || useUnhead()\n const entry = fn(head, input, options)\n\n const destroyRef = inject(DestroyRef)\n destroyRef.onDestroy(() => {\n entry.dispose()\n })\n\n return entry\n}\n\nexport function useHead(input: UseHeadInput = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<UseHeadInput> {\n return withSideEffects(input, options, baseHead)\n}\n\nexport function useHeadSafe(input: HeadSafe = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<HeadSafe> {\n return withSideEffects<ActiveHeadEntry<HeadSafe>>(input, options, baseHeadSafe)\n}\n\nexport function useSeoMeta(input: UseSeoMetaInput = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<UseSeoMetaInput> {\n return withSideEffects<ActiveHeadEntry<UseSeoMetaInput>>(input, options, baseSeoMeta)\n}\n\nexport function useScript<T extends Record<symbol | string, any> = Record<symbol | string, any>>(_input: UseScriptInput, _options?: UseScriptOptions<T>): UseScriptReturn<T> {\n const input = (typeof _input === 'string' ? { src: _input } : _input) as UseScriptInput\n const options = _options || {} as UseScriptOptions<T>\n const head = options?.head || useUnhead()\n options.head = head\n\n const mountCbs: (() => void)[] = []\n const sideEffects: (() => void)[] = []\n let isMounted = false\n\n const destroyRef = inject(DestroyRef)\n\n effect(() => {\n isMounted = true\n mountCbs.forEach(i => i())\n })\n\n if (typeof options.trigger === 'undefined') {\n options.trigger = (load) => {\n if (isMounted) {\n load()\n }\n else {\n mountCbs.push(load)\n }\n }\n }\n\n // @ts-expect-error untyped\n const script = baseUseScript(head, input as BaseUseScriptInput, options)\n\n const _registerCb = (key: 'loaded' | 'error', cb: any) => {\n let i: number | null\n const destroy = () => {\n // avoid removing the wrong callback\n if (i) {\n script._cbs[key]?.splice(i - 1, 1)\n i = null\n }\n }\n mountCbs.push(() => {\n if (!script._cbs[key]) {\n cb(script.instance)\n return () => {}\n }\n i = script._cbs[key].push(cb)\n sideEffects.push(destroy)\n return destroy\n })\n }\n\n destroyRef.onDestroy(() => {\n isMounted = false\n script._triggerAbortController?.abort()\n sideEffects.forEach(i => i())\n })\n script.onLoaded = (cb: (instance: T) => void | Promise<void>) => _registerCb('loaded', cb)\n script.onError = (cb: (err?: Error) => void | Promise<void>) => _registerCb('error', cb)\n return script\n}\n","import type { OnDestroy } from '@angular/core'\nimport { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { useHead } from '../unhead/composables'\n\ninterface NodeProps {\n type: string | symbol\n props?: Record<string, any>\n children?: NodeProps[]\n}\n\n@Component({\n selector: 'unhead-head',\n standalone: true,\n template: '<ng-content></ng-content>',\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Head implements OnDestroy {\n private headEntry = useHead({})\n\n updateHead(nodes: NodeProps[]) {\n const transformed = this.transformNodes(nodes)\n this.headEntry.patch(transformed)\n }\n\n private transformNodes(nodes: NodeProps[]) {\n const result: Record<string, any> = {}\n\n const processNode = (node: NodeProps) => {\n if (typeof node.type === 'symbol') {\n node.children?.forEach(child => processNode(child as NodeProps))\n return\n }\n\n const type = node.type as string\n if (node.children?.length === 1) {\n result[type] = node.children[0]\n }\n else if (Object.keys(node.props || {}).length) {\n result[type] = result[type] || []\n result[type].push(node.props)\n }\n }\n\n nodes.forEach(processNode)\n return result\n }\n\n ngOnDestroy() {\n this.headEntry.dispose()\n }\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './lib/head.component'\nexport * from './lib/unhead.service'\nexport * from './unhead/composables'\nexport * from './unhead/install'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_createServerHead","_createClientHead","baseHead","baseHeadSafe","baseSeoMeta","baseUseScript"],"mappings":"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"}
1
+ {"version":3,"file":"unhead-angular.mjs","sources":["../../src/context.ts","../../src/composables.ts","../../src/head.component.ts","../../src/unhead.service.ts","../../src/public-api.ts","../../src/unhead-angular.ts"],"sourcesContent":["import type { Unhead } from 'unhead/types'\nimport { InjectionToken } from '@angular/core'\n\nexport const headSymbol = 'usehead'\n\nexport const UnheadInjectionToken = new InjectionToken<Unhead>(headSymbol)\n","import type { UseScriptInput, UseScriptOptions, UseScriptReturn } from 'unhead/scripts'\nimport type { ActiveHeadEntry, HeadEntryOptions, HeadSafe, Unhead, UseHeadInput, UseSeoMetaInput } from 'unhead/types'\nimport { DestroyRef, effect, inject } from '@angular/core'\nimport { useHead as baseHead, useHeadSafe as baseHeadSafe, useSeoMeta as baseSeoMeta, useScript as baseUseScript } from 'unhead'\nimport { UnheadInjectionToken } from './context'\n\nexport function useUnhead() {\n const instance = inject<Unhead>(UnheadInjectionToken)\n if (!instance) {\n throw new Error('useHead() was called without proper injection context.')\n }\n return instance\n}\n\nfunction withSideEffects<T extends ActiveHeadEntry<any>>(input: any, options: any, fn: any): T {\n const head = options.head || useUnhead()\n const entry = fn(head, input, options)\n\n const destroyRef = inject(DestroyRef)\n destroyRef.onDestroy(() => {\n entry.dispose()\n })\n\n return entry\n}\n\nexport function useHead(input: UseHeadInput = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<UseHeadInput> {\n return withSideEffects(input, options, baseHead)\n}\n\nexport function useHeadSafe(input: HeadSafe = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<HeadSafe> {\n return withSideEffects<ActiveHeadEntry<HeadSafe>>(input, options, baseHeadSafe)\n}\n\nexport function useSeoMeta(input: UseSeoMetaInput = {}, options: HeadEntryOptions = {}): ActiveHeadEntry<UseSeoMetaInput> {\n return withSideEffects<ActiveHeadEntry<UseSeoMetaInput>>(input, options, baseSeoMeta)\n}\n\nexport function useScript<T extends Record<symbol | string, any> = Record<symbol | string, any>>(_input: UseScriptInput, _options?: UseScriptOptions<T>): UseScriptReturn<T> {\n const input = (typeof _input === 'string' ? { src: _input } : _input) as UseScriptInput\n const options = _options || {} as UseScriptOptions<T>\n const head = options?.head || useUnhead()\n options.head = head\n\n const mountCbs: (() => void)[] = []\n const sideEffects: (() => void)[] = []\n let isMounted = false\n\n const destroyRef = inject(DestroyRef)\n\n effect(() => {\n isMounted = true\n mountCbs.forEach(i => i())\n })\n\n if (typeof options.trigger === 'undefined') {\n options.trigger = (load) => {\n if (isMounted) {\n load()\n }\n else {\n mountCbs.push(load)\n }\n }\n }\n\n // @ts-expect-error untyped\n const script = baseUseScript(head, input as BaseUseScriptInput, options)\n\n const _registerCb = (key: 'loaded' | 'error', cb: any) => {\n let i: number | null\n const destroy = () => {\n // avoid removing the wrong callback\n if (i) {\n script._cbs[key]?.splice(i - 1, 1)\n i = null\n }\n }\n mountCbs.push(() => {\n if (!script._cbs[key]) {\n cb(script.instance)\n return () => {}\n }\n i = script._cbs[key].push(cb)\n sideEffects.push(destroy)\n return destroy\n })\n }\n\n destroyRef.onDestroy(() => {\n isMounted = false\n script._triggerAbortController?.abort()\n sideEffects.forEach(i => i())\n })\n script.onLoaded = (cb: (instance: T) => void | Promise<void>) => _registerCb('loaded', cb)\n script.onError = (cb: (err?: Error) => void | Promise<void>) => _registerCb('error', cb)\n return script\n}\n","import type { OnDestroy } from '@angular/core'\nimport { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { useHead } from './composables'\n\ninterface NodeProps {\n type: string | symbol\n props?: Record<string, any>\n children?: NodeProps[]\n}\n\n@Component({\n selector: 'unhead-head',\n standalone: true,\n template: '<ng-content></ng-content>',\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class Head implements OnDestroy {\n private headEntry = useHead({})\n\n updateHead(nodes: NodeProps[]) {\n const transformed = this.transformNodes(nodes)\n this.headEntry.patch(transformed)\n }\n\n private transformNodes(nodes: NodeProps[]) {\n const result: Record<string, any> = {}\n\n const processNode = (node: NodeProps) => {\n if (typeof node.type === 'symbol') {\n node.children?.forEach(child => processNode(child as NodeProps))\n return\n }\n\n const type = node.type as string\n if (node.children?.length === 1) {\n result[type] = node.children[0]\n }\n else if (Object.keys(node.props || {}).length) {\n result[type] = result[type] || []\n result[type].push(node.props)\n }\n }\n\n nodes.forEach(processNode)\n return result\n }\n\n ngOnDestroy() {\n this.headEntry.dispose()\n }\n}\n","import type { Unhead as UnheadSchema } from 'unhead/types'\nimport { DOCUMENT } from '@angular/common'\nimport { Inject, Injectable } from '@angular/core'\nimport { renderSSRHead } from 'unhead/server'\nimport { UnheadInjectionToken } from './context'\n\nfunction attrToElement(element: HTMLElement, acc: string) {\n const [key, value] = acc.match(/([a-z0-9-]+)(?:=\"([^\"]*)\")?/i)?.slice(1, 3) || []\n if (!key)\n return\n\n if (value === undefined) {\n element.setAttribute(key, '')\n }\n else if (key === 'style') {\n const styleObj = value.split(';').reduce((acc, style) => {\n const [prop, val] = style.split(':').map(s => s.trim())\n if (prop && val)\n acc[prop] = val\n return acc\n }, {} as Record<string, string>)\n Object.entries(styleObj).forEach(([prop, val]) => {\n element.style.setProperty(prop, val)\n })\n }\n else if (key === 'class') {\n value.split(' ').forEach(className => element.classList.add(className))\n }\n else {\n element.setAttribute(key, value)\n }\n}\n\nconst attrRegex = /([a-z0-9-]+(?:=\"[^\"]*\")?)/gi\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Unhead {\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(UnheadInjectionToken) private unhead: UnheadSchema,\n ) {}\n\n async _ssrModifyResponse() {\n const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {\n omitLineBreaks: false,\n })\n htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr))\n bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr))\n this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags\n this.document.head.innerHTML = headTags + this.document.head.innerHTML\n }\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './composables'\nexport * from './context'\nexport * from './head.component'\nexport * from './unhead.service'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["baseHead","baseHeadSafe","baseSeoMeta","baseUseScript"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.component.d.ts","sourceRoot":"","sources":["../src/head.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;;AAI9C,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAMa,IAAK,YAAW,SAAS;IACpC,OAAO,CAAC,SAAS,CAAc;IAE/B,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE;IAK7B,OAAO,CAAC,cAAc;IAuBtB,WAAW;yCA/BA,IAAI;2CAAJ,IAAI;CAkChB"}
@@ -1,5 +1,5 @@
1
- export * from './lib/head.component';
2
- export * from './lib/unhead.service';
3
- export * from './unhead/composables';
4
- export * from './unhead/install';
1
+ export * from './composables';
2
+ export * from './context';
3
+ export * from './head.component';
4
+ export * from './unhead.service';
5
5
  //# sourceMappingURL=public-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@unhead/angular/server" />
5
+ export * from './public_api';
6
+ //# sourceMappingURL=unhead-angular-server.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from './server';
2
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../server/src/public_api.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { CreateServerHeadOptions } from 'unhead/types';
2
+ export declare function provideServerHead(options?: CreateServerHeadOptions): import("@angular/core").EnvironmentProviders;
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../server/src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAM3D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,gDActE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhead-angular-server.d.ts","sourceRoot":"","sources":["../../server/src/unhead-angular-server.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unhead.service.d.ts","sourceRoot":"","sources":["../src/unhead.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;;AAmC1D,qBAGa,MAAM;IAEG,OAAO,CAAC,QAAQ;IACJ,OAAO,CAAC,MAAM;gBADlB,QAAQ,EAAE,QAAQ,EACN,MAAM,EAAE,YAAY;IAGtD,kBAAkB;yCANb,MAAM;6CAAN,MAAM;CAelB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@unhead/angular",
3
3
  "type": "module",
4
- "version": "2.0.0-alpha.19",
4
+ "version": "2.0.0-alpha.21",
5
5
  "description": "Full-stack <head> manager built for Angular.",
6
6
  "author": "Harlan Wilton <harlan@harlanzw.com>",
7
7
  "license": "MIT",
@@ -20,25 +20,51 @@
20
20
  "url": "https://github.com/unjs/unhead/issues"
21
21
  },
22
22
  "sideEffects": false,
23
+ "exports": {
24
+ "./package.json": {
25
+ "default": "./package.json"
26
+ },
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/fesm2022/unhead-angular.mjs"
30
+ },
31
+ "./client": {
32
+ "types": "./dist/client/index.d.ts",
33
+ "default": "./dist/fesm2022/unhead-angular-client.mjs"
34
+ },
35
+ "./server": {
36
+ "types": "./dist/server/index.d.ts",
37
+ "default": "./dist/fesm2022/unhead-angular-server.mjs"
38
+ }
39
+ },
23
40
  "module": "dist/fesm2022/unhead-angular.mjs",
24
41
  "types": "dist/index.d.ts",
42
+ "typesVersions": {
43
+ "*": {
44
+ "server": [
45
+ "dist/server"
46
+ ],
47
+ "client": [
48
+ "dist/client"
49
+ ]
50
+ }
51
+ },
25
52
  "files": [
26
- "dist"
53
+ "client.d.ts",
54
+ "dist",
55
+ "server.d.ts"
27
56
  ],
28
- ".": {
29
- "types": "./dist/index.d.ts",
30
- "import": "./dist/fesm2022/unhead-angular.mjs"
31
- },
57
+ "typings": "index.d.ts",
32
58
  "peerDependencies": {
33
- "@angular/common": "^19.1.5",
34
- "@angular/core": "^19.1.5"
59
+ "@angular/common": "^19.1.7",
60
+ "@angular/core": "^19.1.7"
35
61
  },
36
62
  "dependencies": {
37
- "unhead": "2.0.0-alpha.19"
63
+ "tslib": "^2.8.1",
64
+ "unhead": "2.0.0-alpha.21"
38
65
  },
39
66
  "devDependencies": {
40
- "@angular/platform-browser-dynamic": "^19.1.5",
41
- "@vitest/coverage-istanbul": "^1.2.1",
67
+ "@angular/platform-browser-dynamic": "^19.1.7",
42
68
  "zone.js": "^0.15.0"
43
69
  },
44
70
  "scripts": {
package/server.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/server'
@@ -1 +0,0 @@
1
- {"version":3,"file":"head.component.d.ts","sourceRoot":"","sources":["../../src/lib/head.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;;AAI9C,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAMa,IAAK,YAAW,SAAS;IACpC,OAAO,CAAC,SAAS,CAAc;IAE/B,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE;IAK7B,OAAO,CAAC,cAAc;IAuBtB,WAAW;yCA/BA,IAAI;2CAAJ,IAAI;CAkChB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"unhead.service.d.ts","sourceRoot":"","sources":["../../src/lib/unhead.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;;AAmC1D,qBAGa,MAAM;IAEG,OAAO,CAAC,QAAQ;IACJ,OAAO,CAAC,MAAM;gBADlB,QAAQ,EAAE,QAAQ,EACN,MAAM,EAAE,YAAY;IAGtD,kBAAkB;yCANb,MAAM;6CAAN,MAAM;CAelB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"composables.d.ts","sourceRoot":"","sources":["../../src/unhead/composables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKtH,wBAAgB,SAAS,oFAMxB;AAcD,wBAAgB,OAAO,CAAC,KAAK,GAAE,YAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,YAAY,CAAC,CAE/G;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAE,QAAa,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAE3G;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,eAAoB,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,CAExH;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CA2D3K"}
@@ -1,7 +0,0 @@
1
- import type { CreateClientHeadOptions, CreateServerHeadOptions, Unhead as UnheadSchema } from 'unhead/types';
2
- import { InjectionToken } from '@angular/core';
3
- export declare const headSymbol = "usehead";
4
- export declare const UnheadInjectionToken: InjectionToken<UnheadSchema<import("unhead/types").Head<import("unhead/types").SchemaAugmentations>>>;
5
- export declare function provideServerHead(options?: CreateServerHeadOptions): import("@angular/core").EnvironmentProviders;
6
- export declare function provideClientHead(options?: CreateClientHeadOptions): import("@angular/core").EnvironmentProviders;
7
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/unhead/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5G,OAAO,EAAE,cAAc,EAA4B,MAAM,eAAe,CAAA;AAMxE,eAAO,MAAM,UAAU,YAAY,CAAA;AAEnC,eAAO,MAAM,oBAAoB,uGAA+C,CAAA;AAEhF,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,gDActE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,gDAUtE"}