@sinequa/assistant 3.9.11 → 3.10.0

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 (110) hide show
  1. package/chat/chat-message/chat-message.component.d.ts +2 -4
  2. package/chat/chat.component.d.ts +4 -3
  3. package/chat/chat.service.d.ts +16 -1
  4. package/chat/custom-elements/components/code-block.component.d.ts +11 -0
  5. package/chat/custom-elements/components/document-reference.component.d.ts +13 -0
  6. package/chat/custom-elements/components/i18n/de.json +5 -0
  7. package/chat/custom-elements/components/i18n/en.json +5 -0
  8. package/chat/custom-elements/components/i18n/fr.json +5 -0
  9. package/chat/custom-elements/components/image-reference.component.d.ts +14 -0
  10. package/chat/custom-elements/components/page-reference.component.d.ts +14 -0
  11. package/chat/custom-elements/components/table-tools.component.d.ts +11 -0
  12. package/chat/custom-elements/custom-elements.config.d.ts +2 -0
  13. package/chat/{services → custom-elements}/custom-elements.service.d.ts +1 -0
  14. package/chat/documents-upload/documents-upload.service.d.ts +2 -2
  15. package/chat/fetch-patcher/app-injector.d.ts +9 -0
  16. package/chat/fetch-patcher/fetch-patcher.d.ts +31 -0
  17. package/chat/fetch-patcher/global-error-handler.service.d.ts +36 -0
  18. package/chat/fetch-patcher/handle-unauthorized-logic.d.ts +13 -0
  19. package/chat/markdown-it/markdown-it.config.d.ts +4 -0
  20. package/chat/markdown-it/plugins/document-reference.plugin.d.ts +8 -0
  21. package/chat/markdown-it/plugins/image-reference.plugin.d.ts +9 -0
  22. package/chat/markdown-it/plugins/page-reference.plugin.d.ts +9 -0
  23. package/chat/markdown-it/plugins/table-tools.plugin.d.ts +2 -0
  24. package/chat/public-api.d.ts +21 -2
  25. package/chat/{chat-reference → references/chat-reference}/chat-reference.component.d.ts +1 -1
  26. package/chat/references/chat-reference-image/chat-reference-image.component.d.ts +20 -0
  27. package/chat/references/chat-reference-page/chat-reference-page.component.d.ts +20 -0
  28. package/chat/references/i18n/de.json +4 -4
  29. package/chat/references/i18n/en.json +1 -1
  30. package/chat/references/i18n/fr.json +1 -1
  31. package/chat/saved-chats/i18n/de.json +2 -1
  32. package/chat/saved-chats/i18n/en.json +2 -1
  33. package/chat/saved-chats/i18n/fr.json +2 -1
  34. package/chat/saved-chats/saved-chats.component.d.ts +4 -0
  35. package/chat/saved-chats/saved-chats.service.d.ts +2 -2
  36. package/chat/services/assistant-metadata.service.d.ts +5 -1
  37. package/chat/services/signalR.web.service.d.ts +0 -11
  38. package/chat/smart-renderer/smart-renderer.d.ts +2 -0
  39. package/chat/token-progress-bar/i18n/en.json +1 -1
  40. package/chat/types/message-reference.types.d.ts +3 -0
  41. package/chat/types.d.ts +55 -35
  42. package/chat/version.d.ts +1 -0
  43. package/esm2022/chat/chat-message/chat-message.component.mjs +15 -12
  44. package/esm2022/chat/chat-settings-v3/chat-settings-v3.component.mjs +7 -4
  45. package/esm2022/chat/chat.component.mjs +39 -26
  46. package/esm2022/chat/chat.service.mjs +39 -5
  47. package/esm2022/chat/custom-elements/components/code-block.component.mjs +97 -0
  48. package/esm2022/chat/custom-elements/components/document-reference.component.mjs +85 -0
  49. package/esm2022/chat/custom-elements/components/image-reference.component.mjs +79 -0
  50. package/esm2022/chat/custom-elements/components/page-reference.component.mjs +79 -0
  51. package/esm2022/chat/custom-elements/components/table-tools.component.mjs +111 -0
  52. package/esm2022/chat/custom-elements/custom-elements.config.mjs +6 -0
  53. package/esm2022/chat/custom-elements/custom-elements.service.mjs +35 -0
  54. package/esm2022/chat/debug-message/debug-message.service.mjs +3 -3
  55. package/esm2022/chat/documents-upload/document-list/document-list.component.mjs +3 -3
  56. package/esm2022/chat/documents-upload/documents-upload.service.mjs +4 -4
  57. package/esm2022/chat/fetch-patcher/app-injector.mjs +19 -0
  58. package/esm2022/chat/fetch-patcher/fetch-patcher.mjs +62 -0
  59. package/esm2022/chat/fetch-patcher/global-error-handler.service.mjs +92 -0
  60. package/esm2022/chat/fetch-patcher/handle-unauthorized-logic.mjs +19 -0
  61. package/esm2022/chat/markdown-it/markdown-it.config.mjs +6 -0
  62. package/esm2022/chat/markdown-it/plugins/code-block.plugin.mjs +14 -0
  63. package/esm2022/chat/markdown-it/plugins/document-reference.plugin.mjs +66 -0
  64. package/esm2022/chat/markdown-it/plugins/image-reference.plugin.mjs +67 -0
  65. package/esm2022/chat/markdown-it/plugins/link.plugin.mjs +15 -0
  66. package/esm2022/chat/markdown-it/plugins/page-reference.plugin.mjs +67 -0
  67. package/esm2022/chat/markdown-it/plugins/table-tools.plugin.mjs +12 -0
  68. package/esm2022/chat/public-api.mjs +23 -3
  69. package/esm2022/chat/references/chat-reference/chat-reference.component.mjs +72 -0
  70. package/esm2022/chat/references/chat-reference-image/chat-reference-image.component.mjs +42 -0
  71. package/esm2022/chat/references/chat-reference-page/chat-reference-page.component.mjs +42 -0
  72. package/esm2022/chat/saved-chats/saved-chats.component.mjs +26 -6
  73. package/esm2022/chat/saved-chats/saved-chats.service.mjs +14 -10
  74. package/esm2022/chat/services/app.service.mjs +7 -2
  75. package/esm2022/chat/services/assistant-metadata.service.mjs +40 -9
  76. package/esm2022/chat/services/assistant-ws-frames.service.mjs +7 -4
  77. package/esm2022/chat/services/signalR-connection.service.mjs +3 -6
  78. package/esm2022/chat/services/signalR.web.service.mjs +3 -13
  79. package/esm2022/chat/services/user-settings.service.mjs +6 -3
  80. package/esm2022/chat/smart-renderer/smart-renderer.mjs +19 -18
  81. package/esm2022/chat/types/message-reference.types.mjs +1 -1
  82. package/esm2022/chat/types.mjs +10 -8
  83. package/esm2022/chat/utils/utils.service.mjs +11 -11
  84. package/esm2022/chat/version.mjs +3 -0
  85. package/fesm2022/sinequa-assistant-chat.mjs +2328 -2049
  86. package/fesm2022/sinequa-assistant-chat.mjs.map +1 -1
  87. package/package.json +6 -6
  88. package/chat/chat-reference/i18n/de.json +0 -4
  89. package/chat/chat-reference/i18n/en.json +0 -4
  90. package/chat/chat-reference/i18n/fr.json +0 -4
  91. package/chat/directives/copy-to-clipboard.directive.d.ts +0 -8
  92. package/chat/markdown-it-plugins/image-reference.plugin.d.ts +0 -3
  93. package/chat/markdown-it-plugins/page-reference.plugin.d.ts +0 -3
  94. package/chat/markdown-it-plugins/reference.plugin.d.ts +0 -7
  95. package/chat/references/inline-image-reference.d.ts +0 -21
  96. package/chat/references/inline-page-reference.d.ts +0 -21
  97. package/chat/references/references.component.d.ts +0 -43
  98. package/esm2022/chat/chat-reference/chat-reference.component.mjs +0 -74
  99. package/esm2022/chat/directives/copy-to-clipboard.directive.mjs +0 -68
  100. package/esm2022/chat/markdown-it-plugins/code-block.plugin.mjs +0 -14
  101. package/esm2022/chat/markdown-it-plugins/image-reference.plugin.mjs +0 -58
  102. package/esm2022/chat/markdown-it-plugins/link.plugin.mjs +0 -15
  103. package/esm2022/chat/markdown-it-plugins/page-reference.plugin.mjs +0 -60
  104. package/esm2022/chat/markdown-it-plugins/reference.plugin.mjs +0 -68
  105. package/esm2022/chat/references/inline-image-reference.mjs +0 -110
  106. package/esm2022/chat/references/inline-page-reference.mjs +0 -110
  107. package/esm2022/chat/references/references.component.mjs +0 -290
  108. package/esm2022/chat/services/custom-elements.service.mjs +0 -43
  109. /package/chat/{markdown-it-plugins → markdown-it/plugins}/code-block.plugin.d.ts +0 -0
  110. /package/chat/{markdown-it-plugins → markdown-it/plugins}/link.plugin.d.ts +0 -0
@@ -1,290 +0,0 @@
1
- import { Component, ElementRef, inject, Input } from "@angular/core";
2
- import { ChatReferenceComponent } from "../chat-reference/chat-reference.component";
3
- import { CopyToClipboardDirective } from "../directives/copy-to-clipboard.directive";
4
- import { TooltipDirective } from "../tooltip/tooltip.directive";
5
- import { InlineImageReferenceComponent } from "./inline-image-reference";
6
- import { InlinePageReferenceComponent } from "./inline-page-reference";
7
- import * as i0 from "@angular/core";
8
- /*
9
- * Web Element Reference Components
10
- * Those components are used to display a reference (page, image, document) in the chat interface.
11
- * It uses a tooltip to show additional information about the reference.
12
- * The component emits custom events when the user interacts with it.
13
- */
14
- export class ReferenceComponent {
15
- constructor() {
16
- this.ref = {};
17
- }
18
- ngOnChanges() {
19
- if (!this.attachment)
20
- return;
21
- try {
22
- const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
23
- this.ref = obj;
24
- }
25
- catch (error) {
26
- console.error("Error parsing attachment", error, this.attachment);
27
- }
28
- }
29
- onOpenPreview(attachment, partId) {
30
- // Émettre un événement personnalisé pour le web element using the service
31
- dispatchEvent(new CustomEvent("onOpenPreview", {
32
- detail: { reference: attachment, partId: partId || this.id },
33
- }));
34
- }
35
- onOpenDocument(attachment, partId) {
36
- // Émettre un événement personnalisé pour le web element using the service
37
- dispatchEvent(new CustomEvent("onOpenDocument", {
38
- detail: { reference: attachment, partId: partId || this.id },
39
- }));
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReferenceComponent, isStandalone: true, selector: "reference", inputs: { id: "id", attachment: "attachment", rank: "rank" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
43
- <a
44
- class="reference"
45
- role="button"
46
- [sqTooltip]="ref"
47
- [sqTooltipTemplate]="tooltipTpl"
48
- [hoverableTooltip]="true"
49
- (click)="onOpenPreview(ref)"
50
- >{{ id }}</a>
51
-
52
- <!-- tooltip template -->
53
- <ng-template #tooltipTpl>
54
- <sq-chat-reference
55
- class="expanded"
56
- [attachment]="ref"
57
- [reference]="ref.contextId"
58
- [partId]="ref.$partId"
59
- (openPreview)="onOpenPreview($event, $event.$partId)"
60
- (openDocument)="onOpenDocument($event, $event.$partId)"
61
- ></sq-chat-reference>
62
- </ng-template>
63
- `, isInline: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "component", type: ChatReferenceComponent, selector: "sq-chat-reference", inputs: ["reference", "attachment", "partId", "referenceMap", "images", "pages"], outputs: ["openDocument", "openPreview"] }] }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReferenceComponent, decorators: [{
66
- type: Component,
67
- args: [{ selector: "reference", imports: [TooltipDirective, ChatReferenceComponent], providers: [], template: `
68
- <a
69
- class="reference"
70
- role="button"
71
- [sqTooltip]="ref"
72
- [sqTooltipTemplate]="tooltipTpl"
73
- [hoverableTooltip]="true"
74
- (click)="onOpenPreview(ref)"
75
- >{{ id }}</a>
76
-
77
- <!-- tooltip template -->
78
- <ng-template #tooltipTpl>
79
- <sq-chat-reference
80
- class="expanded"
81
- [attachment]="ref"
82
- [reference]="ref.contextId"
83
- [partId]="ref.$partId"
84
- (openPreview)="onOpenPreview($event, $event.$partId)"
85
- (openDocument)="onOpenDocument($event, $event.$partId)"
86
- ></sq-chat-reference>
87
- </ng-template>
88
- `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
89
- }], propDecorators: { id: [{
90
- type: Input
91
- }], attachment: [{
92
- type: Input
93
- }], rank: [{
94
- type: Input
95
- }] } });
96
- export class PageReferenceComponent {
97
- constructor() {
98
- this.ref = {};
99
- }
100
- ngOnChanges() {
101
- if (!this.attachment)
102
- return;
103
- try {
104
- const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
105
- this.ref = obj;
106
- }
107
- catch (error) {
108
- console.error("Error parsing attachment", error, this.attachment);
109
- }
110
- }
111
- onOpenPreview(attachment, partId) {
112
- // Émettre un événement personnalisé pour le web element using the service
113
- dispatchEvent(new CustomEvent("onOpenPreview", {
114
- detail: { reference: attachment, partId: partId || this.id },
115
- }));
116
- }
117
- onOpenDocument(attachment, partId) {
118
- // Émettre un événement personnalisé pour le web element using the service
119
- dispatchEvent(new CustomEvent("onOpenDocument", {
120
- detail: { reference: attachment, partId: partId || this.id },
121
- }));
122
- }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageReferenceComponent, isStandalone: true, selector: "page-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
125
- <span
126
- class="reference"
127
- [sqTooltip]="{ obj: ref, id }"
128
- [sqTooltipTemplate]="pageTooltipTpl"
129
- [hoverableTooltip]="true"
130
- >
131
- Page-{{ id }}
132
- </span>
133
- <ng-template #pageTooltipTpl let-ref>
134
- <InlinePageReference
135
- style="max-width: 30vw;"
136
- [id]="ref.id"
137
- [ref]="ref.obj"
138
- (openPreview)="onOpenPreview($event, $event.$partId)"
139
- (openDocument)="onOpenPreview($event, $event.$partId)"
140
- />
141
- </ng-template>
142
- `, isInline: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "component", type: InlinePageReferenceComponent, selector: "InlinePageReference", inputs: ["id", "ref"], outputs: ["openPreview", "openDocument", "openModal"] }] }); }
143
- }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageReferenceComponent, decorators: [{
145
- type: Component,
146
- args: [{ selector: "page-reference", imports: [TooltipDirective, InlinePageReferenceComponent], providers: [], template: `
147
- <span
148
- class="reference"
149
- [sqTooltip]="{ obj: ref, id }"
150
- [sqTooltipTemplate]="pageTooltipTpl"
151
- [hoverableTooltip]="true"
152
- >
153
- Page-{{ id }}
154
- </span>
155
- <ng-template #pageTooltipTpl let-ref>
156
- <InlinePageReference
157
- style="max-width: 30vw;"
158
- [id]="ref.id"
159
- [ref]="ref.obj"
160
- (openPreview)="onOpenPreview($event, $event.$partId)"
161
- (openDocument)="onOpenPreview($event, $event.$partId)"
162
- />
163
- </ng-template>
164
- `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
165
- }], propDecorators: { id: [{
166
- type: Input
167
- }], attachment: [{
168
- type: Input
169
- }] } });
170
- export class ImageReferenceComponent {
171
- constructor() {
172
- this.ref = {};
173
- }
174
- ngOnChanges() {
175
- if (!this.attachment)
176
- return;
177
- try {
178
- const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
179
- this.ref = obj;
180
- }
181
- catch (error) {
182
- console.error("Error parsing attachment", error, this.attachment);
183
- }
184
- }
185
- onOpenPreview(attachment, partId) {
186
- // Émettre un événement personnalisé pour le web element using the service
187
- dispatchEvent(new CustomEvent("onOpenPreview", {
188
- detail: { reference: attachment, partId: partId || this.id },
189
- }));
190
- }
191
- onOpenDocument(attachment, partId) {
192
- // Émettre un événement personnalisé pour le web element using the service
193
- dispatchEvent(new CustomEvent("onOpenDocument", {
194
- detail: { reference: attachment, partId: partId || this.id },
195
- }));
196
- }
197
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageReferenceComponent, isStandalone: true, selector: "image-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
199
- <span
200
- class="reference"
201
- [sqTooltip]="{ obj: ref, id }"
202
- [sqTooltipTemplate]="imageTooltipTpl"
203
- [hoverableTooltip]="true"
204
- >
205
- Img-{{ this.id }}
206
- </span>
207
- <ng-template #imageTooltipTpl let-ref>
208
- <InlineImageReference
209
- style="max-width: 30vw;"
210
- [id]="ref.id"
211
- [ref]="ref.obj"
212
- (openPreview)="onOpenPreview($event, $event.$partId)"
213
- (openDocument)="onOpenDocument($event, $event.$partId)"
214
- />
215
- </ng-template>
216
- `, isInline: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "component", type: InlineImageReferenceComponent, selector: "InlineImageReference", inputs: ["id", "ref"], outputs: ["openPreview", "openDocument", "openModal"] }] }); }
217
- }
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageReferenceComponent, decorators: [{
219
- type: Component,
220
- args: [{ selector: "image-reference", imports: [TooltipDirective, InlineImageReferenceComponent], providers: [], template: `
221
- <span
222
- class="reference"
223
- [sqTooltip]="{ obj: ref, id }"
224
- [sqTooltipTemplate]="imageTooltipTpl"
225
- [hoverableTooltip]="true"
226
- >
227
- Img-{{ this.id }}
228
- </span>
229
- <ng-template #imageTooltipTpl let-ref>
230
- <InlineImageReference
231
- style="max-width: 30vw;"
232
- [id]="ref.id"
233
- [ref]="ref.obj"
234
- (openPreview)="onOpenPreview($event, $event.$partId)"
235
- (openDocument)="onOpenDocument($event, $event.$partId)"
236
- />
237
- </ng-template>
238
- `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
239
- }], propDecorators: { id: [{
240
- type: Input
241
- }], attachment: [{
242
- type: Input
243
- }] } });
244
- export class CodeBlockReferenceComponent {
245
- constructor() {
246
- this.langname = "";
247
- this.el = inject(ElementRef);
248
- this.encodeCode = '';
249
- }
250
- ngAfterViewInit() {
251
- // get the code content
252
- const codeEl = this.el.nativeElement.querySelector("code");
253
- const code = codeEl ? codeEl.textContent : "";
254
- this.encodeCode = encodeURIComponent(code);
255
- }
256
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeBlockReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
257
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CodeBlockReferenceComponent, isStandalone: true, selector: "code-block-reference", inputs: { langname: "langname" }, ngImport: i0, template: `
258
- <div class="card mb-2">
259
- <div class="card-header d-flex justify-content-end align-items-center">
260
- <span class="me-auto">{{ langname || 'code'}}</span>
261
- <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
262
- <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
263
- </button>
264
- </div>
265
- <ng-content></ng-content>
266
- </div>
267
- `, isInline: true, dependencies: [{ kind: "directive", type: CopyToClipboardDirective, selector: "[copy-to-clipboard]", inputs: ["text"] }] }); }
268
- }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeBlockReferenceComponent, decorators: [{
270
- type: Component,
271
- args: [{
272
- selector: "code-block-reference",
273
- imports: [CopyToClipboardDirective],
274
- template: `
275
- <div class="card mb-2">
276
- <div class="card-header d-flex justify-content-end align-items-center">
277
- <span class="me-auto">{{ langname || 'code'}}</span>
278
- <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
279
- <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
280
- </button>
281
- </div>
282
- <ng-content></ng-content>
283
- </div>
284
- `,
285
- standalone: true,
286
- }]
287
- }], propDecorators: { langname: [{
288
- type: Input
289
- }] } });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9yZWZlcmVuY2VzL3JlZmVyZW5jZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRXZFOzs7OztHQUtHO0FBaUNILE1BQU0sT0FBTyxrQkFBa0I7SUEvQi9CO1FBcUNFLFFBQUcsR0FBeUIsRUFBMkIsQ0FBQztLQTZCekQ7SUEzQkMsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFpQyxF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RSxZQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQsY0FDVyxJQUFJOzhCQU9QLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLOztBQWlEUixNQUFNLE9BQU8sMkJBQTJCO0lBaEJ4QztRQWlCVyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztLQVFqQjtJQU5DLGVBQWU7UUFDYix1QkFBdUI7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0FYVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixrSEFiNUI7Ozs7Ozs7Ozs7R0FVVCw0REFYUyx3QkFBd0I7OzRGQWN2QiwyQkFBMkI7a0JBaEJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNuQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRVUsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2hhdFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jaGF0LXJlZmVyZW5jZS9jaGF0LXJlZmVyZW5jZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvY29weS10by1jbGlwYm9hcmQuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tIFwiLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBDaGF0Q29udGV4dEF0dGFjaG1lbnQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcclxuaW1wb3J0IHR5cGUgeyBNZXNzYWdlSW1hZ2VSZWZlcmVuY2UgfSBmcm9tIFwiLi4vdHlwZXMvbWVzc2FnZS1yZWZlcmVuY2UudHlwZXNcIjtcclxuaW1wb3J0IHsgSW5saW5lSW1hZ2VSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tIFwiLi9pbmxpbmUtaW1hZ2UtcmVmZXJlbmNlXCI7XHJcbmltcG9ydCB7IElubGluZVBhZ2VSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tIFwiLi9pbmxpbmUtcGFnZS1yZWZlcmVuY2VcIjtcclxuXHJcbi8qXHJcbiAqIFdlYiBFbGVtZW50IFJlZmVyZW5jZSBDb21wb25lbnRzXHJcbiAqIFRob3NlIGNvbXBvbmVudHMgYXJlIHVzZWQgdG8gZGlzcGxheSBhIHJlZmVyZW5jZSAocGFnZSwgaW1hZ2UsIGRvY3VtZW50KSBpbiB0aGUgY2hhdCBpbnRlcmZhY2UuXHJcbiAqIEl0IHVzZXMgYSB0b29sdGlwIHRvIHNob3cgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVmZXJlbmNlLlxyXG4gKiBUaGUgY29tcG9uZW50IGVtaXRzIGN1c3RvbSBldmVudHMgd2hlbiB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCBpdC5cclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJyZWZlcmVuY2VcIixcclxuICBpbXBvcnRzOiBbVG9vbHRpcERpcmVjdGl2ZSwgQ2hhdFJlZmVyZW5jZUNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxhXHJcbiAgICBjbGFzcz1cInJlZmVyZW5jZVwiXHJcbiAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgIFtzcVRvb2x0aXBdPVwicmVmXCJcclxuICAgIFtzcVRvb2x0aXBUZW1wbGF0ZV09XCJ0b29sdGlwVHBsXCJcclxuICAgIFtob3ZlcmFibGVUb29sdGlwXT1cInRydWVcIlxyXG4gICAgKGNsaWNrKT1cIm9uT3BlblByZXZpZXcocmVmKVwiXHJcbiAgICA+e3sgaWQgfX08L2E+XHJcblxyXG4gICAgPCEtLSB0b29sdGlwIHRlbXBsYXRlIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVHBsPlxyXG4gICAgICA8c3EtY2hhdC1yZWZlcmVuY2VcclxuICAgICAgICBjbGFzcz1cImV4cGFuZGVkXCJcclxuICAgICAgICBbYXR0YWNobWVudF09XCJyZWZcIlxyXG4gICAgICAgIFtyZWZlcmVuY2VdPVwicmVmLmNvbnRleHRJZFwiXHJcbiAgICAgICAgW3BhcnRJZF09XCJyZWYuJHBhcnRJZFwiXHJcbiAgICAgICAgKG9wZW5QcmV2aWV3KT1cIm9uT3BlblByZXZpZXcoJGV2ZW50LCAkZXZlbnQuJHBhcnRJZClcIlxyXG4gICAgICAgIChvcGVuRG9jdW1lbnQpPVwib25PcGVuRG9jdW1lbnQoJGV2ZW50LCAkZXZlbnQuJHBhcnRJZClcIlxyXG4gICAgICA+PC9zcS1jaGF0LXJlZmVyZW5jZT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHN0eWxlczogYFxyXG4gIGRpdiB7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweDtib3JkZXItcmFkaXVzOiA0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgLy8gamUgc3VpcyBvYmxpZ8OpIGQndXRpbGlzZXIgbGVzIGTDqWNvcmF0ZXVycyBASW5wdXQoKSBjYXIgQW5ndWxhciBuZSBzdXBwb3J0ZSBwYXMgbGVzIGlucHV0cyAoc2lnbmFsKSBkYW5zIGxlcyB3ZWIgZWxlbWVudHMgZW4gQW5ndWxhciB2MThcclxuICBASW5wdXQoKSBpZDtcclxuICBASW5wdXQoKSBhdHRhY2htZW50O1xyXG4gIEBJbnB1dCgpIHJhbms6IG51bWJlcjtcclxuXHJcbiAgcmVmOkNoYXRDb250ZXh0QXR0YWNobWVudCA9IHt9IGFzIENoYXRDb250ZXh0QXR0YWNobWVudDtcclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuYXR0YWNobWVudCkgcmV0dXJuO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoYXRvYih0aGlzLmF0dGFjaG1lbnQpKSk7XHJcbiAgICAgIHRoaXMucmVmID0gb2JqO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIHBhcnNpbmcgYXR0YWNobWVudFwiLCBlcnJvciwgdGhpcy5hdHRhY2htZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uT3BlblByZXZpZXcoYXR0YWNobWVudDogQ2hhdENvbnRleHRBdHRhY2htZW50LCBwYXJ0SWQ/OiBudW1iZXIpIHtcclxuICAgIC8vIMOJbWV0dHJlIHVuIMOpdsOpbmVtZW50IHBlcnNvbm5hbGlzw6kgcG91ciBsZSB3ZWIgZWxlbWVudCB1c2luZyB0aGUgc2VydmljZVxyXG4gICAgZGlzcGF0Y2hFdmVudChcclxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwib25PcGVuUHJldmlld1wiLCB7XHJcbiAgICAgICAgZGV0YWlsOiB7IHJlZmVyZW5jZTogYXR0YWNobWVudCwgcGFydElkOiBwYXJ0SWQgfHwgdGhpcy5pZCB9LFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uT3BlbkRvY3VtZW50KGF0dGFjaG1lbnQ6IENoYXRDb250ZXh0QXR0YWNobWVudCwgcGFydElkPzogbnVtYmVyKSB7XHJcbiAgICAvLyDDiW1ldHRyZSB1biDDqXbDqW5lbWVudCBwZXJzb25uYWxpc8OpIHBvdXIgbGUgd2ViIGVsZW1lbnQgdXNpbmcgdGhlIHNlcnZpY2VcclxuICAgIGRpc3BhdGNoRXZlbnQoXHJcbiAgICAgIG5ldyBDdXN0b21FdmVudChcIm9uT3BlbkRvY3VtZW50XCIsIHtcclxuICAgICAgICBkZXRhaWw6IHsgcmVmZXJlbmNlOiBhdHRhY2htZW50LCBwYXJ0SWQ6IHBhcnRJZCB8fCB0aGlzLmlkIH0sXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicGFnZS1yZWZlcmVuY2VcIixcclxuICBpbXBvcnRzOiBbVG9vbHRpcERpcmVjdGl2ZSwgSW5saW5lUGFnZVJlZmVyZW5jZUNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJyZWZlcmVuY2VcIlxyXG4gICAgICBbc3FUb29sdGlwXT1cInsgb2JqOiByZWYsIGlkIH1cIlxyXG4gICAgICBbc3FUb29sdGlwVGVtcGxhdGVdPVwicGFnZVRvb2x0aXBUcGxcIlxyXG4gICAgICBbaG92ZXJhYmxlVG9vbHRpcF09XCJ0cnVlXCJcclxuICAgID5cclxuICAgICAgUGFnZS17eyBpZCB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPG5nLXRlbXBsYXRlICNwYWdlVG9vbHRpcFRwbCBsZXQtcmVmPlxyXG4gICAgICA8SW5saW5lUGFnZVJlZmVyZW5jZVxyXG4gICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAzMHZ3O1wiXHJcbiAgICAgICAgW2lkXT1cInJlZi5pZFwiXHJcbiAgICAgICAgW3JlZl09XCJyZWYub2JqXCJcclxuICAgICAgICAob3BlblByZXZpZXcpPVwib25PcGVuUHJldmlldygkZXZlbnQsICRldmVudC4kcGFydElkKVwiXHJcbiAgICAgICAgKG9wZW5Eb2N1bWVudCk9XCJvbk9wZW5QcmV2aWV3KCRldmVudCwgJGV2ZW50LiRwYXJ0SWQpXCJcclxuICAgICAgLz5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHN0eWxlczogYFxyXG4gIGRpdiB7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweDtib3JkZXItcmFkaXVzOiA0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIC8vIGplIHN1aXMgb2JsaWfDqSBkJ3V0aWxpc2VyIGxlcyBkw6ljb3JhdGV1cnMgQElucHV0KCkgY2FyIEFuZ3VsYXIgbmUgc3VwcG9ydGUgcGFzIGxlcyBpbnB1dHMgKHNpZ25hbCkgZGFucyBsZXMgd2ViIGVsZW1lbnRzIGVuIEFuZ3VsYXIgdjE4XHJcbiAgQElucHV0KCkgaWQ7XHJcbiAgQElucHV0KCkgYXR0YWNobWVudDtcclxuXHJcbiAgcmVmOiBNZXNzYWdlSW1hZ2VSZWZlcmVuY2UgPSB7fSBhcyBNZXNzYWdlSW1hZ2VSZWZlcmVuY2U7XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKCF0aGlzLmF0dGFjaG1lbnQpIHJldHVybjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IodGhpcy5hdHRhY2htZW50KSkpO1xyXG4gICAgICB0aGlzLnJlZiA9IG9iajtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBwYXJzaW5nIGF0dGFjaG1lbnRcIiwgZXJyb3IsIHRoaXMuYXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk9wZW5QcmV2aWV3KGF0dGFjaG1lbnQ6IENoYXRDb250ZXh0QXR0YWNobWVudCwgcGFydElkPzogbnVtYmVyKSB7XHJcbiAgICAvLyDDiW1ldHRyZSB1biDDqXbDqW5lbWVudCBwZXJzb25uYWxpc8OpIHBvdXIgbGUgd2ViIGVsZW1lbnQgdXNpbmcgdGhlIHNlcnZpY2VcclxuICAgIGRpc3BhdGNoRXZlbnQoXHJcbiAgICAgIG5ldyBDdXN0b21FdmVudChcIm9uT3BlblByZXZpZXdcIiwge1xyXG4gICAgICAgIGRldGFpbDogeyByZWZlcmVuY2U6IGF0dGFjaG1lbnQsIHBhcnRJZDogcGFydElkIHx8IHRoaXMuaWQgfSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvbk9wZW5Eb2N1bWVudChhdHRhY2htZW50OiBDaGF0Q29udGV4dEF0dGFjaG1lbnQsIHBhcnRJZD86IG51bWJlcikge1xyXG4gICAgLy8gw4ltZXR0cmUgdW4gw6l2w6luZW1lbnQgcGVyc29ubmFsaXPDqSBwb3VyIGxlIHdlYiBlbGVtZW50IHVzaW5nIHRoZSBzZXJ2aWNlXHJcbiAgICBkaXNwYXRjaEV2ZW50KFxyXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJvbk9wZW5Eb2N1bWVudFwiLCB7XHJcbiAgICAgICAgZGV0YWlsOiB7IHJlZmVyZW5jZTogYXR0YWNobWVudCwgcGFydElkOiBwYXJ0SWQgfHwgdGhpcy5pZCB9LFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImltYWdlLXJlZmVyZW5jZVwiLFxyXG4gIGltcG9ydHM6IFtUb29sdGlwRGlyZWN0aXZlLCBJbmxpbmVJbWFnZVJlZmVyZW5jZUNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJyZWZlcmVuY2VcIlxyXG4gICAgICBbc3FUb29sdGlwXT1cInsgb2JqOiByZWYsIGlkIH1cIlxyXG4gICAgICBbc3FUb29sdGlwVGVtcGxhdGVdPVwiaW1hZ2VUb29sdGlwVHBsXCJcclxuICAgICAgW2hvdmVyYWJsZVRvb2x0aXBdPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIEltZy17eyB0aGlzLmlkIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ltYWdlVG9vbHRpcFRwbCBsZXQtcmVmPlxyXG4gICAgICA8SW5saW5lSW1hZ2VSZWZlcmVuY2VcclxuICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMzB2dztcIlxyXG4gICAgICAgIFtpZF09XCJyZWYuaWRcIlxyXG4gICAgICAgIFtyZWZdPVwicmVmLm9ialwiXHJcbiAgICAgICAgKG9wZW5QcmV2aWV3KT1cIm9uT3BlblByZXZpZXcoJGV2ZW50LCAkZXZlbnQuJHBhcnRJZClcIlxyXG4gICAgICAgIChvcGVuRG9jdW1lbnQpPVwib25PcGVuRG9jdW1lbnQoJGV2ZW50LCAkZXZlbnQuJHBhcnRJZClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc3R5bGVzOiBgXHJcbiAgZGl2IHsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4O2JvcmRlci1yYWRpdXM6IDRweDsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIC8vIGplIHN1aXMgb2JsaWfDqSBkJ3V0aWxpc2VyIGxlcyBkw6ljb3JhdGV1cnMgQElucHV0KCkgY2FyIEFuZ3VsYXIgbmUgc3VwcG9ydGUgcGFzIGxlcyBpbnB1dHMgKHNpZ25hbCkgZGFucyBsZXMgd2ViIGVsZW1lbnRzIGVuIEFuZ3VsYXIgdjE4XHJcbiAgQElucHV0KCkgaWQ7XHJcbiAgQElucHV0KCkgYXR0YWNobWVudDtcclxuXHJcbiAgcmVmOiBNZXNzYWdlSW1hZ2VSZWZlcmVuY2UgPSB7fSBhcyBNZXNzYWdlSW1hZ2VSZWZlcmVuY2U7XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKCF0aGlzLmF0dGFjaG1lbnQpIHJldHVybjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IodGhpcy5hdHRhY2htZW50KSkpO1xyXG4gICAgICB0aGlzLnJlZiA9IG9iajtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBwYXJzaW5nIGF0dGFjaG1lbnRcIiwgZXJyb3IsIHRoaXMuYXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk9wZW5QcmV2aWV3KGF0dGFjaG1lbnQ6IENoYXRDb250ZXh0QXR0YWNobWVudCwgcGFydElkPzogbnVtYmVyKSB7XHJcbiAgICAvLyDDiW1ldHRyZSB1biDDqXbDqW5lbWVudCBwZXJzb25uYWxpc8OpIHBvdXIgbGUgd2ViIGVsZW1lbnQgdXNpbmcgdGhlIHNlcnZpY2VcclxuICAgIGRpc3BhdGNoRXZlbnQoXHJcbiAgICAgIG5ldyBDdXN0b21FdmVudChcIm9uT3BlblByZXZpZXdcIiwge1xyXG4gICAgICAgIGRldGFpbDogeyByZWZlcmVuY2U6IGF0dGFjaG1lbnQsIHBhcnRJZDogcGFydElkIHx8IHRoaXMuaWQgfSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvbk9wZW5Eb2N1bWVudChhdHRhY2htZW50OiBDaGF0Q29udGV4dEF0dGFjaG1lbnQsIHBhcnRJZD86IG51bWJlcikge1xyXG4gICAgLy8gw4ltZXR0cmUgdW4gw6l2w6luZW1lbnQgcGVyc29ubmFsaXPDqSBwb3VyIGxlIHdlYiBlbGVtZW50IHVzaW5nIHRoZSBzZXJ2aWNlXHJcbiAgICBkaXNwYXRjaEV2ZW50KFxyXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJvbk9wZW5Eb2N1bWVudFwiLCB7XHJcbiAgICAgICAgZGV0YWlsOiB7IHJlZmVyZW5jZTogYXR0YWNobWVudCwgcGFydElkOiBwYXJ0SWQgfHwgdGhpcy5pZCB9LFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvZGUtYmxvY2stcmVmZXJlbmNlXCIsXHJcbiAgaW1wb3J0czogW0NvcHlUb0NsaXBib2FyZERpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWUtYXV0b1wiPnt7IGxhbmduYW1lIHx8ICdjb2RlJ319PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbVwiIGNvcHktdG8tY2xpcGJvYXJkIFt0ZXh0XT1cImVuY29kZUNvZGVcIj5cclxuICAgICAgICAgIDxzdmcgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCIgaGVpZ2h0PVwiMTZcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc3R5bGU9XCJjb2xvcjogY3VycmVudGNvbG9yO1wiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDAuNUMxLjc4MzUgMC41IDEgMS4yODM1IDEgMi4yNVY5Ljc1QzEgMTAuNzE2NSAxLjc4MzUgMTEuNSAyLjc1IDExLjVIMy43NUg0LjVWMTBIMy43NUgyLjc1QzIuNjExOTMgMTAgMi41IDkuODg4MDcgMi41IDkuNzVWMi4yNUMyLjUgMi4xMTE5MyAyLjYxMTkzIDIgMi43NSAySDguMjVDOC4zODgwNyAyIDguNSAyLjExMTkzIDguNSAyLjI1VjNIMTBWMi4yNUMxMCAxLjI4MzUgOS4yMTY1IDAuNSA4LjI1IDAuNUgyLjc1Wk03Ljc1IDQuNUM2Ljc4MzUgNC41IDYgNS4yODM1IDYgNi4yNVYxMy43NUM2IDE0LjcxNjUgNi43ODM1IDE1LjUgNy43NSAxNS41SDEzLjI1QzE0LjIxNjUgMTUuNSAxNSAxNC43MTY1IDE1IDEzLjc1VjYuMjVDMTUgNS4yODM1IDE0LjIxNjUgNC41IDEzLjI1IDQuNUg3Ljc1Wk03LjUgNi4yNUM3LjUgNi4xMTE5MyA3LjYxMTkzIDYgNy43NSA2SDEzLjI1QzEzLjM4ODEgNiAxMy41IDYuMTExOTMgMTMuNSA2LjI1VjEzLjc1QzEzLjUgMTMuODg4MSAxMy4zODgxIDE0IDEzLjI1IDE0SDcuNzVDNy42MTE5MyAxNCA3LjUgMTMuODg4MSA3LjUgMTMuNzVWNi4yNVpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kZUJsb2NrUmVmZXJlbmNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBsYW5nbmFtZSA9IFwiXCI7XHJcblxyXG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIGVuY29kZUNvZGUgPSAnJztcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gZ2V0IHRoZSBjb2RlIGNvbnRlbnRcclxuICAgIGNvbnN0IGNvZGVFbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZVwiKTtcclxuICAgIGNvbnN0IGNvZGUgPSBjb2RlRWwgPyBjb2RlRWwudGV4dENvbnRlbnQgOiBcIlwiO1xyXG4gICAgdGhpcy5lbmNvZGVDb2RlID0gZW5jb2RlVVJJQ29tcG9uZW50KGNvZGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,43 +0,0 @@
1
- import { inject, Injectable, Injector } from "@angular/core";
2
- import { createCustomElement } from "@angular/elements";
3
- import { CodeBlockReferenceComponent, ImageReferenceComponent, PageReferenceComponent, ReferenceComponent } from "../references/references.component";
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Service to register custom elements in the Angular application.
7
- * This service is used to define custom elements that can be used in the application.
8
- * It is called through APP_INITIALIZER to ensure that custom elements are registered before the application starts.
9
- */
10
- export class CustomElementsService {
11
- constructor() {
12
- this._injector = inject(Injector);
13
- }
14
- // called through APP_INITIALIZER
15
- setupCustomElements() {
16
- const referenceElement = createCustomElement(ReferenceComponent, {
17
- injector: this._injector,
18
- });
19
- customElements.define("reference-component", referenceElement);
20
- const pageReference = createCustomElement(PageReferenceComponent, {
21
- injector: this._injector,
22
- });
23
- customElements.define("page-reference", pageReference);
24
- const imageReference = createCustomElement(ImageReferenceComponent, {
25
- injector: this._injector,
26
- });
27
- customElements.define("image-reference", imageReference);
28
- const codeReference = createCustomElement(CodeBlockReferenceComponent, {
29
- injector: this._injector,
30
- });
31
- customElements.define("code-block-reference", codeReference);
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, providedIn: "root" }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, decorators: [{
37
- type: Injectable,
38
- args: [{ providedIn: "root" }]
39
- }] });
40
- export function initializeCustomElements(customElementsService) {
41
- return () => customElementsService.setupCustomElements();
42
- }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVsZW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9zZXJ2aWNlcy9jdXN0b20tZWxlbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXRKOzs7O0dBSUc7QUFHSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQXdCdEM7SUF0QkMsaUNBQWlDO0lBQ2pDLG1CQUFtQjtRQUNqQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFO1lBQy9ELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztTQUN6QixDQUFDLENBQUM7UUFDSCxjQUFjLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFL0QsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsc0JBQXNCLEVBQUU7WUFDaEUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFdkQsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFekQsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsMkJBQTJCLEVBQUU7WUFDckUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0F4QlUscUJBQXFCO21IQUFyQixxQkFBcUIsY0FEUixNQUFNOzs0RkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUE0QmxDLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxxQkFBNEM7SUFDbkYsT0FBTyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gXCJAYW5ndWxhci9lbGVtZW50c1wiO1xyXG5cclxuaW1wb3J0IHsgQ29kZUJsb2NrUmVmZXJlbmNlQ29tcG9uZW50LCBJbWFnZVJlZmVyZW5jZUNvbXBvbmVudCwgUGFnZVJlZmVyZW5jZUNvbXBvbmVudCwgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JlZmVyZW5jZXMvcmVmZXJlbmNlcy5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIHRvIHJlZ2lzdGVyIGN1c3RvbSBlbGVtZW50cyBpbiB0aGUgQW5ndWxhciBhcHBsaWNhdGlvbi5cclxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWQgdG8gZGVmaW5lIGN1c3RvbSBlbGVtZW50cyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi5cclxuICogSXQgaXMgY2FsbGVkIHRocm91Z2ggQVBQX0lOSVRJQUxJWkVSIHRvIGVuc3VyZSB0aGF0IGN1c3RvbSBlbGVtZW50cyBhcmUgcmVnaXN0ZXJlZCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9uIHN0YXJ0cy5cclxuICovXHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21FbGVtZW50c1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgLy8gY2FsbGVkIHRocm91Z2ggQVBQX0lOSVRJQUxJWkVSXHJcbiAgc2V0dXBDdXN0b21FbGVtZW50cygpIHtcclxuICAgIGNvbnN0IHJlZmVyZW5jZUVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KFJlZmVyZW5jZUNvbXBvbmVudCwge1xyXG4gICAgICBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IsXHJcbiAgICB9KTtcclxuICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJlZmVyZW5jZS1jb21wb25lbnRcIiwgcmVmZXJlbmNlRWxlbWVudCk7XHJcblxyXG4gICAgY29uc3QgcGFnZVJlZmVyZW5jZSA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoUGFnZVJlZmVyZW5jZUNvbXBvbmVudCwge1xyXG4gICAgICBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IsXHJcbiAgICB9KTtcclxuICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZShcInBhZ2UtcmVmZXJlbmNlXCIsIHBhZ2VSZWZlcmVuY2UpO1xyXG5cclxuICAgIGNvbnN0IGltYWdlUmVmZXJlbmNlID0gY3JlYXRlQ3VzdG9tRWxlbWVudChJbWFnZVJlZmVyZW5jZUNvbXBvbmVudCwge1xyXG4gICAgICBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IsXHJcbiAgICB9KTtcclxuICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZShcImltYWdlLXJlZmVyZW5jZVwiLCBpbWFnZVJlZmVyZW5jZSk7XHJcblxyXG4gICAgY29uc3QgY29kZVJlZmVyZW5jZSA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoQ29kZUJsb2NrUmVmZXJlbmNlQ29tcG9uZW50LCB7XHJcbiAgICAgIGluamVjdG9yOiB0aGlzLl9pbmplY3RvcixcclxuICAgIH0pO1xyXG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwiY29kZS1ibG9jay1yZWZlcmVuY2VcIiwgY29kZVJlZmVyZW5jZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUN1c3RvbUVsZW1lbnRzKGN1c3RvbUVsZW1lbnRzU2VydmljZTogQ3VzdG9tRWxlbWVudHNTZXJ2aWNlKSB7XHJcbiAgcmV0dXJuICgpID0+IGN1c3RvbUVsZW1lbnRzU2VydmljZS5zZXR1cEN1c3RvbUVsZW1lbnRzKCk7XHJcbn0iXX0=