@memberjunction/ng-artifacts 2.107.0 → 2.109.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.
- package/dist/lib/artifacts.module.d.ts +2 -1
- package/dist/lib/artifacts.module.d.ts.map +1 -1
- package/dist/lib/artifacts.module.js +7 -3
- package/dist/lib/artifacts.module.js.map +1 -1
- package/dist/lib/components/artifact-type-plugin-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-type-plugin-viewer.component.js +3 -3
- package/dist/lib/components/artifact-type-plugin-viewer.component.js.map +1 -1
- package/dist/lib/components/artifact-viewer-panel.component.d.ts +81 -13
- package/dist/lib/components/artifact-viewer-panel.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-viewer-panel.component.js +609 -314
- package/dist/lib/components/artifact-viewer-panel.component.js.map +1 -1
- package/dist/lib/components/base-artifact-viewer.component.d.ts +17 -0
- package/dist/lib/components/base-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/base-artifact-viewer.component.js +1 -1
- package/dist/lib/components/base-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/component-artifact-viewer.component.d.ts +15 -18
- package/dist/lib/components/plugins/component-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/component-artifact-viewer.component.js +112 -182
- package/dist/lib/components/plugins/component-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/html-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/html-artifact-viewer.component.js +13 -1
- package/dist/lib/components/plugins/html-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/json-artifact-viewer.component.d.ts +17 -4
- package/dist/lib/components/plugins/json-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/json-artifact-viewer.component.js +229 -44
- package/dist/lib/components/plugins/json-artifact-viewer.component.js.map +1 -1
- package/package.json +6 -6
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { Component } from '@angular/core';
|
|
7
|
+
import { Component, ViewChild } from '@angular/core';
|
|
8
8
|
import { RegisterClass } from '@memberjunction/global';
|
|
9
9
|
import { BaseArtifactViewerPluginComponent } from '../base-artifact-viewer.component';
|
|
10
10
|
import { RunView } from '@memberjunction/core';
|
|
@@ -14,27 +14,44 @@ import * as i1 from "@angular/platform-browser";
|
|
|
14
14
|
import * as i2 from "@angular/common";
|
|
15
15
|
import * as i3 from "@angular/forms";
|
|
16
16
|
import * as i4 from "@memberjunction/ng-code-editor";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
i0.ɵɵ
|
|
17
|
+
const _c0 = ["htmlFrame"];
|
|
18
|
+
function JsonArtifactViewerComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
20
|
+
i0.ɵɵelementStart(0, "button", 9);
|
|
21
|
+
i0.ɵɵlistener("click", function JsonArtifactViewerComponent_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openInNewWindow()); });
|
|
22
|
+
i0.ɵɵelement(1, "i", 10);
|
|
23
|
+
i0.ɵɵtext(2, " New Window ");
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelementStart(3, "button", 11);
|
|
26
|
+
i0.ɵɵlistener("click", function JsonArtifactViewerComponent_Conditional_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.printHtml()); });
|
|
27
|
+
i0.ɵɵelement(4, "i", 12);
|
|
28
|
+
i0.ɵɵtext(5, " Print ");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
22
30
|
} }
|
|
23
31
|
function JsonArtifactViewerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
-
i0.ɵɵ
|
|
32
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
33
|
+
i0.ɵɵelementStart(0, "iframe", 13, 0);
|
|
34
|
+
i0.ɵɵlistener("load", function JsonArtifactViewerComponent_Conditional_7_Template_iframe_load_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onIframeLoad()); });
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
25
36
|
} if (rf & 2) {
|
|
26
|
-
const
|
|
27
|
-
i0.ɵɵproperty("
|
|
37
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
38
|
+
i0.ɵɵproperty("src", ctx_r1.htmlBlobUrl, i0.ɵɵsanitizeResourceUrl);
|
|
28
39
|
} }
|
|
29
40
|
function JsonArtifactViewerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
i0.ɵɵelement(0, "div", 7);
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
44
|
+
i0.ɵɵproperty("innerHTML", ctx_r1.renderedMarkdown, i0.ɵɵsanitizeHtml);
|
|
45
|
+
} }
|
|
46
|
+
function JsonArtifactViewerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
48
|
+
i0.ɵɵelementStart(0, "div", 8)(1, "mj-code-editor", 14);
|
|
49
|
+
i0.ɵɵtwoWayListener("ngModelChange", function JsonArtifactViewerComponent_Conditional_9_Template_mj_code_editor_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.jsonContent, $event) || (ctx_r1.jsonContent = $event); return i0.ɵɵresetView($event); });
|
|
33
50
|
i0.ɵɵelementEnd()();
|
|
34
51
|
} if (rf & 2) {
|
|
35
|
-
const
|
|
52
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
36
53
|
i0.ɵɵadvance();
|
|
37
|
-
i0.ɵɵtwoWayProperty("ngModel",
|
|
54
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.jsonContent);
|
|
38
55
|
i0.ɵɵproperty("language", "json")("readonly", true);
|
|
39
56
|
} }
|
|
40
57
|
/**
|
|
@@ -45,16 +62,27 @@ function JsonArtifactViewerComponent_Conditional_8_Template(rf, ctx) { if (rf &
|
|
|
45
62
|
let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends BaseArtifactViewerPluginComponent {
|
|
46
63
|
cdr;
|
|
47
64
|
sanitizer;
|
|
65
|
+
htmlFrame;
|
|
48
66
|
jsonContent = '';
|
|
49
67
|
displayMarkdown = null;
|
|
50
68
|
displayHtml = null;
|
|
69
|
+
htmlBlobUrl = null;
|
|
51
70
|
renderedMarkdown = null;
|
|
52
71
|
versionAttributes = [];
|
|
72
|
+
unsafeBlobUrl = null; // Keep unsafe URL for cleanup
|
|
53
73
|
constructor(cdr, sanitizer) {
|
|
54
74
|
super();
|
|
55
75
|
this.cdr = cdr;
|
|
56
76
|
this.sanitizer = sanitizer;
|
|
57
77
|
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
// Clean up blob URL to prevent memory leaks
|
|
80
|
+
if (this.unsafeBlobUrl) {
|
|
81
|
+
URL.revokeObjectURL(this.unsafeBlobUrl);
|
|
82
|
+
this.unsafeBlobUrl = null;
|
|
83
|
+
this.htmlBlobUrl = null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
58
86
|
async ngOnInit() {
|
|
59
87
|
this.jsonContent = this.getContent();
|
|
60
88
|
// Load version attributes to check for extract rules
|
|
@@ -63,11 +91,11 @@ let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends Base
|
|
|
63
91
|
this.cdr.detectChanges();
|
|
64
92
|
}
|
|
65
93
|
/**
|
|
66
|
-
* Override to return true when showing extracted
|
|
94
|
+
* Override to return true when showing extracted displayHtml or displayMarkdown.
|
|
67
95
|
* Returns false when showing raw JSON editor (no extract rules available).
|
|
68
96
|
*/
|
|
69
97
|
get isShowingElevatedDisplay() {
|
|
70
|
-
return !!(this.
|
|
98
|
+
return !!(this.displayHtml || this.displayMarkdown);
|
|
71
99
|
}
|
|
72
100
|
/**
|
|
73
101
|
* Override to tell parent whether to show raw JSON tab.
|
|
@@ -95,16 +123,28 @@ let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends Base
|
|
|
95
123
|
this.versionAttributes = result.Results;
|
|
96
124
|
console.log(`📦 JSON Plugin: Loaded ${this.versionAttributes.length} attributes for version ${this.artifactVersion.ID}`);
|
|
97
125
|
console.log(`📦 Attributes:`, this.versionAttributes.map(a => ({ name: a.Name, hasValue: !!a.Value })));
|
|
98
|
-
// Check for
|
|
99
|
-
|
|
126
|
+
// Check for displayHtml and displayMarkdown attributes (from extract rules)
|
|
127
|
+
// Priority: displayHtml > displayMarkdown
|
|
100
128
|
const displayHtmlAttr = this.versionAttributes.find(a => a.Name?.toLowerCase() === 'displayhtml');
|
|
101
|
-
|
|
129
|
+
const displayMarkdownAttr = this.versionAttributes.find(a => a.Name?.toLowerCase() === 'displaymarkdown');
|
|
102
130
|
console.log(`📦 displayHtmlAttr:`, displayHtmlAttr ? { name: displayHtmlAttr.Name, valueLength: displayHtmlAttr.Value?.length } : 'not found');
|
|
103
|
-
|
|
104
|
-
|
|
131
|
+
console.log(`📦 displayMarkdownAttr:`, displayMarkdownAttr ? { name: displayMarkdownAttr.Name, valueLength: displayMarkdownAttr.Value?.length } : 'not found');
|
|
132
|
+
// Parse attribute values - fix "null" string bug
|
|
105
133
|
this.displayHtml = this.parseAttributeValue(displayHtmlAttr?.Value);
|
|
106
|
-
|
|
107
|
-
|
|
134
|
+
this.displayMarkdown = this.parseAttributeValue(displayMarkdownAttr?.Value);
|
|
135
|
+
// Clean up double-escaped characters in HTML (from LLM generation)
|
|
136
|
+
if (this.displayHtml) {
|
|
137
|
+
this.displayHtml = this.cleanEscapedCharacters(this.displayHtml);
|
|
138
|
+
}
|
|
139
|
+
// Create blob URL for HTML to avoid srcdoc sanitization issues
|
|
140
|
+
if (this.displayHtml) {
|
|
141
|
+
const blob = new Blob([this.displayHtml], { type: 'text/html' });
|
|
142
|
+
this.unsafeBlobUrl = URL.createObjectURL(blob);
|
|
143
|
+
// Sanitize the blob URL so Angular trusts it in the iframe
|
|
144
|
+
this.htmlBlobUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.unsafeBlobUrl);
|
|
145
|
+
}
|
|
146
|
+
// Convert markdown to HTML if we have markdown content (and no HTML)
|
|
147
|
+
if (this.displayMarkdown && !this.displayHtml) {
|
|
108
148
|
try {
|
|
109
149
|
const html = marked.parse(this.displayMarkdown);
|
|
110
150
|
this.renderedMarkdown = this.sanitizer.sanitize(1, html); // 1 = SecurityContext.HTML
|
|
@@ -115,7 +155,7 @@ let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends Base
|
|
|
115
155
|
this.renderedMarkdown = this.displayMarkdown;
|
|
116
156
|
}
|
|
117
157
|
}
|
|
118
|
-
console.log(`📦 JSON Plugin:
|
|
158
|
+
console.log(`📦 JSON Plugin: displayHtml=${!!this.displayHtml} (${this.displayHtml?.length || 0} chars), displayMarkdown=${!!this.displayMarkdown} (${this.displayMarkdown?.length || 0} chars)`);
|
|
119
159
|
console.log(`📦 isShowingElevatedDisplay=${this.isShowingElevatedDisplay}`);
|
|
120
160
|
}
|
|
121
161
|
else {
|
|
@@ -129,22 +169,122 @@ let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends Base
|
|
|
129
169
|
parseAttributeValue(value) {
|
|
130
170
|
if (!value)
|
|
131
171
|
return null;
|
|
172
|
+
// Fix bug: Some extractors return string "null" instead of actual null
|
|
173
|
+
if (value === 'null' || value.trim() === '') {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
132
176
|
try {
|
|
133
177
|
// Try to parse as JSON first
|
|
134
178
|
const parsed = JSON.parse(value);
|
|
135
179
|
if (typeof parsed === 'string') {
|
|
180
|
+
// Check if parsed string is also "null"
|
|
181
|
+
if (parsed === 'null' || parsed.trim() === '') {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
136
184
|
return parsed;
|
|
137
185
|
}
|
|
138
186
|
return JSON.stringify(parsed, null, 2);
|
|
139
187
|
}
|
|
140
188
|
catch {
|
|
141
|
-
// If not valid JSON, return as-is
|
|
142
|
-
return value;
|
|
189
|
+
// If not valid JSON, return as-is (unless it's "null")
|
|
190
|
+
return value === 'null' ? null : value;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
onIframeLoad() {
|
|
194
|
+
// Inject base styles if HTML doesn't have them
|
|
195
|
+
if (this.htmlFrame) {
|
|
196
|
+
const iframe = this.htmlFrame.nativeElement;
|
|
197
|
+
const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
|
|
198
|
+
if (iframeDoc) {
|
|
199
|
+
// Check if HTML already has styles
|
|
200
|
+
const hasStyles = iframeDoc.querySelector('style') || iframeDoc.querySelector('link[rel="stylesheet"]');
|
|
201
|
+
if (!hasStyles) {
|
|
202
|
+
// Inject minimal base styles for better defaults
|
|
203
|
+
const style = iframeDoc.createElement('style');
|
|
204
|
+
style.textContent = `
|
|
205
|
+
body {
|
|
206
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
207
|
+
line-height: 1.6;
|
|
208
|
+
color: #333;
|
|
209
|
+
margin: 20px;
|
|
210
|
+
padding: 0;
|
|
211
|
+
}
|
|
212
|
+
h1, h2, h3 { color: #2c3e50; margin-top: 1.5em; margin-bottom: 0.5em; }
|
|
213
|
+
h1 { font-size: 2em; border-bottom: 2px solid #3498db; padding-bottom: 0.3em; }
|
|
214
|
+
h2 { font-size: 1.5em; }
|
|
215
|
+
table { border-collapse: collapse; width: 100%; margin: 1em 0; }
|
|
216
|
+
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
|
|
217
|
+
th { background-color: #f8f9fa; font-weight: 600; }
|
|
218
|
+
pre { background: #f6f8fa; padding: 16px; border-radius: 6px; overflow-x: auto; }
|
|
219
|
+
code { background: #f6f8fa; padding: 2px 6px; border-radius: 3px; font-family: monospace; }
|
|
220
|
+
`;
|
|
221
|
+
iframeDoc.head.appendChild(style);
|
|
222
|
+
}
|
|
223
|
+
// Inject width override to ensure content fills iframe
|
|
224
|
+
const widthOverride = iframeDoc.createElement('style');
|
|
225
|
+
widthOverride.textContent = `
|
|
226
|
+
body {
|
|
227
|
+
max-width: none !important;
|
|
228
|
+
width: 100% !important;
|
|
229
|
+
margin: 20px 10px 5px 20px !important; /* top right bottom left */
|
|
230
|
+
padding: 0 !important;
|
|
231
|
+
box-sizing: border-box !important;
|
|
232
|
+
}
|
|
233
|
+
`;
|
|
234
|
+
iframeDoc.head.appendChild(widthOverride);
|
|
235
|
+
console.log('📦 Iframe loaded, hasStyles:', !!hasStyles);
|
|
236
|
+
// Auto-resize iframe to fit content
|
|
237
|
+
this.resizeIframeToContent();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
resizeIframeToContent() {
|
|
242
|
+
if (this.htmlFrame) {
|
|
243
|
+
const iframe = this.htmlFrame.nativeElement;
|
|
244
|
+
const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
|
|
245
|
+
if (iframeDoc && iframeDoc.body) {
|
|
246
|
+
// Get the actual content height
|
|
247
|
+
const contentHeight = Math.max(iframeDoc.body.scrollHeight, iframeDoc.body.offsetHeight, iframeDoc.documentElement.scrollHeight, iframeDoc.documentElement.offsetHeight);
|
|
248
|
+
// Set iframe height to match content (with a bit of padding)
|
|
249
|
+
iframe.style.height = `${contentHeight + 20}px`;
|
|
250
|
+
// Get the iframe's actual width (excluding borders)
|
|
251
|
+
const iframeWidth = iframe.clientWidth;
|
|
252
|
+
// Force body to use full iframe width with consistent margins
|
|
253
|
+
if (iframeDoc.body) {
|
|
254
|
+
const marginSize = 20; // 20px margins on each side
|
|
255
|
+
const bodyWidth = iframeWidth - (marginSize * 2);
|
|
256
|
+
iframeDoc.body.style.width = `${bodyWidth}px`;
|
|
257
|
+
iframeDoc.body.style.maxWidth = 'none';
|
|
258
|
+
iframeDoc.body.style.margin = `${marginSize}px`;
|
|
259
|
+
iframeDoc.body.style.padding = '0';
|
|
260
|
+
iframeDoc.body.style.boxSizing = 'border-box';
|
|
261
|
+
}
|
|
262
|
+
console.log('📦 Iframe resized - Height:', contentHeight + 20, 'px, Width:', iframeWidth, 'px');
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
openInNewWindow() {
|
|
267
|
+
if (this.displayHtml) {
|
|
268
|
+
const newWindow = window.open('', '_blank');
|
|
269
|
+
if (newWindow) {
|
|
270
|
+
newWindow.document.write(this.displayHtml);
|
|
271
|
+
newWindow.document.close();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
printHtml() {
|
|
276
|
+
if (this.htmlFrame) {
|
|
277
|
+
const iframe = this.htmlFrame.nativeElement;
|
|
278
|
+
const iframeWindow = iframe.contentWindow;
|
|
279
|
+
if (iframeWindow) {
|
|
280
|
+
iframeWindow.focus();
|
|
281
|
+
iframeWindow.print();
|
|
282
|
+
}
|
|
143
283
|
}
|
|
144
284
|
}
|
|
145
285
|
onCopy() {
|
|
146
|
-
// Copy based on what's being displayed
|
|
147
|
-
const content = this.
|
|
286
|
+
// Copy based on what's being displayed - prioritize displayHtml
|
|
287
|
+
const content = this.displayHtml || this.displayMarkdown || this.jsonContent;
|
|
148
288
|
if (content) {
|
|
149
289
|
navigator.clipboard.writeText(content).then(() => {
|
|
150
290
|
console.log('✅ Copied content to clipboard');
|
|
@@ -153,21 +293,48 @@ let JsonArtifactViewerComponent = class JsonArtifactViewerComponent extends Base
|
|
|
153
293
|
});
|
|
154
294
|
}
|
|
155
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Clean up double-escaped characters that appear in LLM-generated HTML
|
|
298
|
+
* Removes literal "\\n", "\\t", and "\\\"" which cause rendering issues
|
|
299
|
+
*/
|
|
300
|
+
cleanEscapedCharacters(html) {
|
|
301
|
+
// Remove escaped quotes (\" becomes ")
|
|
302
|
+
let cleaned = html.replace(/\\"/g, '"');
|
|
303
|
+
// Remove escaped newlines (\\n becomes nothing)
|
|
304
|
+
// HTML doesn't need whitespace for formatting, and these cause display issues
|
|
305
|
+
cleaned = cleaned.replace(/\\n/g, '');
|
|
306
|
+
// Remove escaped tabs
|
|
307
|
+
cleaned = cleaned.replace(/\\t/g, '');
|
|
308
|
+
// Remove double-escaped tabs
|
|
309
|
+
cleaned = cleaned.replace(/\\\\t/g, '');
|
|
310
|
+
// Remove double-escaped newlines
|
|
311
|
+
cleaned = cleaned.replace(/\\\\n/g, '');
|
|
312
|
+
return cleaned;
|
|
313
|
+
}
|
|
156
314
|
static ɵfac = function JsonArtifactViewerComponent_Factory(t) { return new (t || JsonArtifactViewerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.DomSanitizer)); };
|
|
157
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JsonArtifactViewerComponent, selectors: [["mj-json-artifact-viewer"]],
|
|
158
|
-
i0.ɵɵ
|
|
315
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JsonArtifactViewerComponent, selectors: [["mj-json-artifact-viewer"]], viewQuery: function JsonArtifactViewerComponent_Query(rf, ctx) { if (rf & 1) {
|
|
316
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
317
|
+
} if (rf & 2) {
|
|
318
|
+
let _t;
|
|
319
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.htmlFrame = _t.first);
|
|
320
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 3, consts: [["htmlFrame", ""], [1, "json-artifact-viewer", 3, "ngClass"], [1, "display-toolbar"], ["title", "Copy Content", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], [1, "display-content"], ["sandbox", "allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-modals", 1, "html-iframe", 3, "src"], [1, "markdown-content", 3, "innerHTML"], [1, "json-editor-container"], ["title", "Open in New Window", 1, "btn-icon", 3, "click"], [1, "fas", "fa-external-link-alt"], ["title", "Print", 1, "btn-icon", 3, "click"], [1, "fas", "fa-print"], ["sandbox", "allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-modals", 1, "html-iframe", 3, "load", "src"], [2, "width", "100%", "height", "100%", 3, "ngModelChange", "ngModel", "language", "readonly"]], template: function JsonArtifactViewerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
321
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "button", 3);
|
|
159
322
|
i0.ɵɵlistener("click", function JsonArtifactViewerComponent_Template_button_click_2_listener() { return ctx.onCopy(); });
|
|
160
|
-
i0.ɵɵelement(3, "i",
|
|
323
|
+
i0.ɵɵelement(3, "i", 4);
|
|
161
324
|
i0.ɵɵtext(4, " Copy ");
|
|
162
|
-
i0.ɵɵelementEnd()
|
|
163
|
-
i0.ɵɵ
|
|
164
|
-
i0.ɵɵ
|
|
325
|
+
i0.ɵɵelementEnd();
|
|
326
|
+
i0.ɵɵtemplate(5, JsonArtifactViewerComponent_Conditional_5_Template, 6, 0);
|
|
327
|
+
i0.ɵɵelementEnd();
|
|
328
|
+
i0.ɵɵelementStart(6, "div", 5);
|
|
329
|
+
i0.ɵɵtemplate(7, JsonArtifactViewerComponent_Conditional_7_Template, 2, 1, "iframe", 6)(8, JsonArtifactViewerComponent_Conditional_8_Template, 1, 1, "div", 7)(9, JsonArtifactViewerComponent_Conditional_9_Template, 2, 3, "div", 8);
|
|
165
330
|
i0.ɵɵelementEnd()();
|
|
166
331
|
} if (rf & 2) {
|
|
167
332
|
i0.ɵɵproperty("ngClass", ctx.cssClass);
|
|
168
|
-
i0.ɵɵadvance(
|
|
169
|
-
i0.ɵɵconditional(ctx.
|
|
170
|
-
|
|
333
|
+
i0.ɵɵadvance(5);
|
|
334
|
+
i0.ɵɵconditional(ctx.displayHtml ? 5 : -1);
|
|
335
|
+
i0.ɵɵadvance(2);
|
|
336
|
+
i0.ɵɵconditional(ctx.displayHtml && ctx.htmlBlobUrl ? 7 : ctx.displayMarkdown ? 8 : 9);
|
|
337
|
+
} }, dependencies: [i2.NgClass, i3.NgControlStatus, i3.NgModel, i4.CodeEditorComponent], styles: [".json-artifact-viewer[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .display-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n }\n\n .btn-icon[_ngcontent-%COMP%] {\n padding: 6px 12px;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n }\n\n .btn-icon[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n border-color: #999;\n }\n\n .display-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n }\n\n .html-iframe[_ngcontent-%COMP%] {\n width: 100%;\n border: none;\n background: white;\n display: block;\n }\n\n .markdown-content[_ngcontent-%COMP%] {\n flex: 1;\n padding: 20px;\n overflow: auto;\n min-height: 0;\n background: white;\n }\n\n .json-editor-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n min-height: 0;\n }"] });
|
|
171
338
|
};
|
|
172
339
|
JsonArtifactViewerComponent = __decorate([
|
|
173
340
|
RegisterClass(BaseArtifactViewerPluginComponent, 'JsonArtifactViewerPlugin')
|
|
@@ -182,14 +349,29 @@ export { JsonArtifactViewerComponent };
|
|
|
182
349
|
<button class="btn-icon" title="Copy Content" (click)="onCopy()">
|
|
183
350
|
<i class="fas fa-copy"></i> Copy
|
|
184
351
|
</button>
|
|
352
|
+
@if (displayHtml) {
|
|
353
|
+
<button class="btn-icon" title="Open in New Window" (click)="openInNewWindow()">
|
|
354
|
+
<i class="fas fa-external-link-alt"></i> New Window
|
|
355
|
+
</button>
|
|
356
|
+
<button class="btn-icon" title="Print" (click)="printHtml()">
|
|
357
|
+
<i class="fas fa-print"></i> Print
|
|
358
|
+
</button>
|
|
359
|
+
}
|
|
185
360
|
</div>
|
|
186
361
|
|
|
187
|
-
<!-- Display content: priority order =
|
|
362
|
+
<!-- Display content: priority order = displayHtml > displayMarkdown > JSON editor -->
|
|
188
363
|
<div class="display-content">
|
|
189
|
-
@if (
|
|
364
|
+
@if (displayHtml && htmlBlobUrl) {
|
|
365
|
+
<!-- Sandboxed iframe for rich HTML using blob URL -->
|
|
366
|
+
<iframe
|
|
367
|
+
#htmlFrame
|
|
368
|
+
[src]="htmlBlobUrl"
|
|
369
|
+
sandbox="allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-modals"
|
|
370
|
+
class="html-iframe"
|
|
371
|
+
(load)="onIframeLoad()">
|
|
372
|
+
</iframe>
|
|
373
|
+
} @else if (displayMarkdown) {
|
|
190
374
|
<div class="markdown-content" [innerHTML]="renderedMarkdown"></div>
|
|
191
|
-
} @else if (displayHtml) {
|
|
192
|
-
<div class="html-content" [innerHTML]="displayHtml"></div>
|
|
193
375
|
} @else {
|
|
194
376
|
<div class="json-editor-container">
|
|
195
377
|
<mj-code-editor
|
|
@@ -202,7 +384,10 @@ export { JsonArtifactViewerComponent };
|
|
|
202
384
|
}
|
|
203
385
|
</div>
|
|
204
386
|
</div>
|
|
205
|
-
`, styles: ["\n .json-artifact-viewer {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .display-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n }\n\n .btn-icon {\n padding: 6px 12px;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .btn-icon:hover {\n background: #e9ecef;\n border-color: #999;\n }\n\n .display-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n
|
|
206
|
-
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }],
|
|
207
|
-
|
|
387
|
+
`, styles: ["\n .json-artifact-viewer {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .display-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n }\n\n .btn-icon {\n padding: 6px 12px;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n }\n\n .btn-icon:hover {\n background: #e9ecef;\n border-color: #999;\n }\n\n .display-content {\n flex: 1;\n overflow: auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n }\n\n .html-iframe {\n width: 100%;\n border: none;\n background: white;\n display: block;\n }\n\n .markdown-content {\n flex: 1;\n padding: 20px;\n overflow: auto;\n min-height: 0;\n background: white;\n }\n\n .json-editor-container {\n flex: 1;\n overflow: auto;\n min-height: 0;\n }\n "] }]
|
|
388
|
+
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }], { htmlFrame: [{
|
|
389
|
+
type: ViewChild,
|
|
390
|
+
args: ['htmlFrame']
|
|
391
|
+
}] }); })();
|
|
392
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JsonArtifactViewerComponent, { className: "JsonArtifactViewerComponent", filePath: "src/lib/components/plugins/json-artifact-viewer.component.ts", lineNumber: 124 }); })();
|
|
208
393
|
//# sourceMappingURL=json-artifact-viewer.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-artifact-viewer.component.js","sourceRoot":"","sources":["../../../../src/lib/components/plugins/json-artifact-viewer.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"json-artifact-viewer.component.js","sourceRoot":"","sources":["../../../../src/lib/components/plugins/json-artifact-viewer.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAwC,SAAS,EAAc,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;IAiBtB,iCAAgF;IAA5B,+LAAS,wBAAiB,KAAC;IAC7E,wBAAwC;IAAC,4BAC3C;IAAA,iBAAS;IACT,kCAA6D;IAAtB,+LAAS,kBAAW,KAAC;IAC1D,wBAA4B;IAAC,uBAC/B;IAAA,iBAAS;;;;IAQT,qCAK0B;IAAxB,6LAAQ,qBAAc,KAAC;IACzB,iBAAS;;;IAJP,kEAAmB;;;IAMrB,yBAAmE;;;IAArC,sEAA8B;;;;IAG1D,AADF,8BAAmC,yBAKI;IAHnC,kUAAyB;IAK7B,AADE,iBAAiB,EACb;;;IALF,cAAyB;IAAzB,kDAAyB;IAEzB,AADA,iCAAmB,kBACF;;AA1C/B;;;;GAIG;AA+GI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,iCAAiC;IAYtE;IACA;IAZc,SAAS,CAAiC;IAE3D,WAAW,GAAG,EAAE,CAAC;IACjB,eAAe,GAAkB,IAAI,CAAC;IACtC,WAAW,GAAkB,IAAI,CAAC;IAClC,WAAW,GAA2B,IAAI,CAAC;IAC3C,gBAAgB,GAAoB,IAAI,CAAC;IACxC,iBAAiB,GAAqC,EAAE,CAAC;IACzD,aAAa,GAAkB,IAAI,CAAC,CAAC,8BAA8B;IAE3E,YACU,GAAsB,EACtB,SAAuB;QAE/B,KAAK,EAAE,CAAC;QAHA,QAAG,GAAH,GAAG,CAAmB;QACtB,cAAS,GAAT,SAAS,CAAc;IAGjC,CAAC;IAED,WAAW;QACT,4CAA4C;QAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,qDAAqD;QACrD,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAoB,wBAAwB;QAC1C,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,IAAoB,0BAA0B;QAC5C,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7F,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAiC;gBAC9D,UAAU,EAAE,iCAAiC;gBAC7C,WAAW,EAAE,sBAAsB,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG;gBAC7D,UAAU,EAAE,eAAe;aAC5B,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,8CAA8C,MAAM,CAAC,OAAO,mBAAmB,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1H,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;gBAExC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,iBAAiB,CAAC,MAAM,2BAA2B,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBAExG,4EAA4E;gBAC5E,0CAA0C;gBAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;gBAClG,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,iBAAiB,CAAC,CAAC;gBAE1G,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC/I,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAE/J,iDAAiD;gBACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBAE5E,mEAAmE;gBACnE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnE,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBACjE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC/C,2DAA2D;oBAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvF,CAAC;gBAED,qEAAqE;gBACrE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC9C,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAW,CAAC;wBAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,2BAA2B;oBACvF,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;wBAC5D,yBAAyB;wBACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClM,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,gEAAgE,MAAM,CAAC,OAAO,mBAAmB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACzI,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAAgC;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,uEAAuE;QACvE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,wCAAwC;gBACxC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;YACvD,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,CAAC;IACH,CAAC;IAED,YAAY;QACV,+CAA+C;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;YAE3E,IAAI,SAAS,EAAE,CAAC;gBACd,mCAAmC;gBACnC,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;gBAExG,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,iDAAiD;oBACjD,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC/C,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;WAgBnB,CAAC;oBACF,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,uDAAuD;gBACvD,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,aAAa,CAAC,WAAW,GAAG;;;;;;;;SAQ3B,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAE1C,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAEzD,oCAAoC;gBACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;YAE3E,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAChC,gCAAgC;gBAChC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,SAAS,CAAC,IAAI,CAAC,YAAY,EAC3B,SAAS,CAAC,IAAI,CAAC,YAAY,EAC3B,SAAS,CAAC,eAAe,CAAC,YAAY,EACtC,SAAS,CAAC,eAAe,CAAC,YAAY,CACvC,CAAC;gBAEF,6DAA6D;gBAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,aAAa,GAAG,EAAE,IAAI,CAAC;gBAEhD,oDAAoD;gBACpD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAEvC,8DAA8D;gBAC9D,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,4BAA4B;oBACnD,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBAEjD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,IAAI,CAAC;oBAC9C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC;oBAChD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;gBAChD,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,aAAa,GAAG,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,YAAY,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,IAAY;QACzC,uCAAuC;QACvC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAExC,gDAAgD;QAChD,8EAA8E;QAC9E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEtC,sBAAsB;QACtB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEtC,6BAA6B;QAC7B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAExC,iCAAiC;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAExC,OAAO,OAAO,CAAC;IACjB,CAAC;qFAxSU,2BAA2B;6DAA3B,2BAA2B;;;;;;YAxGhC,AADF,AAFF,8BAAuD,aAExB,gBACsC;YAAnB,wGAAS,YAAQ,IAAC;YAC9D,uBAA2B;YAAC,sBAC9B;YAAA,iBAAS;YACT,0EAAmB;YAQrB,iBAAM;YAGN,8BAA6B;YAYzB,AAFA,AATF,uFAAkC,uEASJ,uEAErB;YAWb,AADE,iBAAM,EACF;;YAxC4B,sCAAoB;YAMlD,eAOC;YAPD,0CAOC;YAKD,eAoBC;YApBD,sFAoBC;;;AAqEI,2BAA2B;IADvC,aAAa,CAAC,iCAAiC,EAAE,0BAA0B,CAAC;GAChE,2BAA2B,CAySvC;;iFAzSY,2BAA2B;cA9GvC,SAAS;2BACE,yBAAyB,YACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CT;6EAmEuB,SAAS;kBAAhC,SAAS;mBAAC,WAAW;;kFADX,2BAA2B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-artifacts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.109.0",
|
|
4
4
|
"description": "MemberJunction: Artifact viewer plugin system for rendering different artifact types (JSON, Code, Markdown, HTML, SVG, Components)",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@memberjunction/core": "2.100.3",
|
|
28
28
|
"@memberjunction/global": "2.100.3",
|
|
29
|
-
"@memberjunction/core-entities": "2.
|
|
30
|
-
"@memberjunction/ng-base-types": "2.
|
|
31
|
-
"@memberjunction/ng-code-editor": "2.
|
|
32
|
-
"@memberjunction/ng-react": "2.
|
|
33
|
-
"@memberjunction/ng-notifications": "2.
|
|
29
|
+
"@memberjunction/core-entities": "2.109.0",
|
|
30
|
+
"@memberjunction/ng-base-types": "2.109.0",
|
|
31
|
+
"@memberjunction/ng-code-editor": "2.109.0",
|
|
32
|
+
"@memberjunction/ng-react": "2.109.0",
|
|
33
|
+
"@memberjunction/ng-notifications": "2.109.0",
|
|
34
34
|
"@angular/cdk": "18.0.2",
|
|
35
35
|
"tslib": "^2.3.0",
|
|
36
36
|
"rxjs": "^7.8.1",
|