@memberjunction/ng-dashboards 5.31.0 → 5.33.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/Admin/admin-data-schema.component.d.ts +16 -0
- package/dist/Admin/admin-data-schema.component.d.ts.map +1 -0
- package/dist/Admin/admin-data-schema.component.js +136 -0
- package/dist/Admin/admin-data-schema.component.js.map +1 -0
- package/dist/Admin/admin-dev-tools-resource.component.d.ts +14 -0
- package/dist/Admin/admin-dev-tools-resource.component.d.ts.map +1 -0
- package/dist/Admin/admin-dev-tools-resource.component.js +162 -0
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -0
- package/dist/Admin/admin-identity-access.component.d.ts +15 -0
- package/dist/Admin/admin-identity-access.component.d.ts.map +1 -0
- package/dist/Admin/admin-identity-access.component.js +156 -0
- package/dist/Admin/admin-identity-access.component.js.map +1 -0
- package/dist/Admin/admin-monitoring.component.d.ts +15 -0
- package/dist/Admin/admin-monitoring.component.d.ts.map +1 -0
- package/dist/Admin/admin-monitoring.component.js +130 -0
- package/dist/Admin/admin-monitoring.component.js.map +1 -0
- package/dist/Admin/base-admin-container.component.d.ts +80 -0
- package/dist/Admin/base-admin-container.component.d.ts.map +1 -0
- package/dist/Admin/base-admin-container.component.js +198 -0
- package/dist/Admin/base-admin-container.component.js.map +1 -0
- package/dist/Admin/index.d.ts +6 -0
- package/dist/Admin/index.d.ts.map +1 -0
- package/dist/Admin/index.js +6 -0
- package/dist/Admin/index.js.map +1 -0
- package/dist/DevTools/app-state-inspector.component.d.ts +53 -0
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -0
- package/dist/DevTools/app-state-inspector.component.js +301 -0
- package/dist/DevTools/app-state-inspector.component.js.map +1 -0
- package/dist/DevTools/class-registry.component.d.ts +64 -0
- package/dist/DevTools/class-registry.component.d.ts.map +1 -0
- package/dist/DevTools/class-registry.component.js +423 -0
- package/dist/DevTools/class-registry.component.js.map +1 -0
- package/dist/DevTools/dev-tools-prefs.d.ts +21 -0
- package/dist/DevTools/dev-tools-prefs.d.ts.map +1 -0
- package/dist/DevTools/dev-tools-prefs.js +48 -0
- package/dist/DevTools/dev-tools-prefs.js.map +1 -0
- package/dist/DevTools/event-monitor.component.d.ts +78 -0
- package/dist/DevTools/event-monitor.component.d.ts.map +1 -0
- package/dist/DevTools/event-monitor.component.js +659 -0
- package/dist/DevTools/event-monitor.component.js.map +1 -0
- package/dist/DevTools/graphql-console.component.d.ts +153 -0
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -0
- package/dist/DevTools/graphql-console.component.js +1463 -0
- package/dist/DevTools/graphql-console.component.js.map +1 -0
- package/dist/DevTools/index.d.ts +8 -0
- package/dist/DevTools/index.d.ts.map +1 -0
- package/dist/DevTools/index.js +8 -0
- package/dist/DevTools/index.js.map +1 -0
- package/dist/DevTools/layout-inspector.component.d.ts +42 -0
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -0
- package/dist/DevTools/layout-inspector.component.js +208 -0
- package/dist/DevTools/layout-inspector.component.js.map +1 -0
- package/dist/DevTools/lazy-module-status.component.d.ts +65 -0
- package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -0
- package/dist/DevTools/lazy-module-status.component.js +388 -0
- package/dist/DevTools/lazy-module-status.component.js.map +1 -0
- package/dist/DevTools/settings-explorer.component.d.ts +55 -0
- package/dist/DevTools/settings-explorer.component.d.ts.map +1 -0
- package/dist/DevTools/settings-explorer.component.js +394 -0
- package/dist/DevTools/settings-explorer.component.js.map +1 -0
- package/dist/core-dashboards.module.d.ts +45 -34
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +57 -0
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +52 -52
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-monitor.component.js","sourceRoot":"","sources":["../../src/DevTools/event-monitor.component.ts","../../src/DevTools/event-monitor.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RegisterClass, MJGlobal, MJEvent } from '@memberjunction/global';\nimport { Subscription } from 'rxjs';\nimport { DevToolsPrefs } from './dev-tools-prefs';\n\ninterface EventMonitorPrefs {\n filter?: string;\n typeFilter?: string;\n componentFilter?: string;\n codeFilter?: string;\n sortField?: SortField;\n sortDir?: SortDir;\n}\n\ninterface EventRow {\n seq: number;\n timestamp: Date;\n type: string;\n eventCode?: string;\n componentName: string;\n summary: string;\n args: unknown;\n expanded: boolean;\n /** True when args is null/undefined/empty — used to render a clean empty-state on expand. */\n hasPayload: boolean;\n}\n\ntype SortField = 'time' | 'type' | 'eventCode' | 'component';\ntype SortDir = 'asc' | 'desc';\n\n/**\n * Event Monitor — live tail of `MJGlobal.Instance.GetEventListener()`.\n * Captures events into a ring buffer (configurable cap) with filtering,\n * pause/resume, click-to-expand-payload, copy.\n */\n@RegisterClass(BaseResourceComponent, 'EventMonitorInspector')\n@Component({\n standalone: false,\n selector: 'mj-event-monitor',\n templateUrl: './event-monitor.component.html',\n styleUrls: ['./inspector-shared.css', './event-monitor.component.css']\n})\nexport class EventMonitorComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n public readonly MaxEvents = 500;\n public Events: EventRow[] = [];\n public Paused = false;\n public AutoScroll = true;\n public Filter = '';\n public TypeFilter = ''; // '' = all\n public ComponentFilter = ''; // '' = all\n public CodeFilter = ''; // '' = all\n public KnownTypes: string[] = [];\n public KnownComponents: string[] = [];\n public KnownCodes: string[] = [];\n public Stats = { captured: 0, perSecond: 0, kept: 0 };\n public StartedAt = new Date();\n public SortField: SortField = 'time';\n public SortDir: SortDir = 'desc';\n\n private sub?: Subscription;\n private seq = 0;\n private rateBucket: number[] = []; // event timestamps within last 1s\n private rateTimer?: ReturnType<typeof setInterval>;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit(): void {\n this.loadPrefs();\n this.subscribe();\n this.rateTimer = setInterval(() => this.tickRate(), 500);\n this.NotifyLoadComplete();\n }\n\n public ngOnDestroy(): void {\n this.savePrefs();\n this.sub?.unsubscribe();\n if (this.rateTimer) clearInterval(this.rateTimer);\n }\n\n private loadPrefs(): void {\n const p = DevToolsPrefs.Get<EventMonitorPrefs>('eventMonitor');\n if (!p) return;\n this.Filter = p.filter ?? '';\n this.TypeFilter = p.typeFilter ?? '';\n this.ComponentFilter = p.componentFilter ?? '';\n this.CodeFilter = p.codeFilter ?? '';\n this.SortField = p.sortField ?? 'time';\n this.SortDir = p.sortDir ?? 'desc';\n }\n\n private savePrefs(): void {\n DevToolsPrefs.Save<EventMonitorPrefs>('eventMonitor', {\n filter: this.Filter,\n typeFilter: this.TypeFilter,\n componentFilter: this.ComponentFilter,\n codeFilter: this.CodeFilter,\n sortField: this.SortField,\n sortDir: this.SortDir\n });\n }\n\n public override async GetResourceDisplayName(): Promise<string> { return 'Event Monitor'; }\n public override async GetResourceIconClass(): Promise<string> { return 'fa-solid fa-bolt'; }\n\n public TogglePause(): void {\n this.Paused = !this.Paused;\n this.cdr.markForCheck();\n }\n\n public ToggleAutoScroll(): void {\n this.AutoScroll = !this.AutoScroll;\n }\n\n public Clear(): void {\n this.Events = [];\n this.seq = 0;\n this.Stats.kept = 0;\n this.cdr.markForCheck();\n }\n\n public ToggleRow(row: EventRow): void {\n row.expanded = !row.expanded;\n }\n\n public OnTypeFilterClick(type: string): void {\n this.TypeFilter = this.TypeFilter === type ? '' : type;\n }\n\n public OnSortClick(field: SortField): void {\n if (this.SortField === field) {\n this.SortDir = this.SortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this.SortField = field;\n this.SortDir = field === 'time' ? 'desc' : 'asc';\n }\n this.savePrefs();\n }\n\n /** Public so the template can call on every ngModelChange (filters, selects). */\n public PersistPrefs(): void {\n this.savePrefs();\n }\n\n public async OnCopyRow(row: EventRow): Promise<void> {\n const payload = {\n timestamp: row.timestamp.toISOString(),\n type: row.type,\n eventCode: row.eventCode,\n component: row.componentName,\n args: row.args\n };\n try {\n await navigator.clipboard.writeText(JSON.stringify(payload, null, 2));\n } catch { /* clipboard unavailable */ }\n }\n\n public get FilteredEvents(): EventRow[] {\n let list = this.Events;\n if (this.TypeFilter) list = list.filter(e => e.type === this.TypeFilter);\n if (this.ComponentFilter) list = list.filter(e => e.componentName === this.ComponentFilter);\n if (this.CodeFilter) list = list.filter(e => (e.eventCode ?? '') === this.CodeFilter);\n\n const q = this.Filter.trim().toLowerCase();\n if (q) {\n list = list.filter(e =>\n e.type.toLowerCase().includes(q) ||\n e.componentName.toLowerCase().includes(q) ||\n e.summary.toLowerCase().includes(q) ||\n (e.eventCode && e.eventCode.toLowerCase().includes(q))\n );\n }\n\n // Sort (always returns a new array — preserves the natural seq order otherwise)\n const dir = this.SortDir === 'asc' ? 1 : -1;\n const sorted = [...list].sort((a, b) => {\n switch (this.SortField) {\n case 'time': return (a.seq - b.seq) * dir;\n case 'type': return a.type.localeCompare(b.type) * dir;\n case 'eventCode': return (a.eventCode ?? '').localeCompare(b.eventCode ?? '') * dir;\n case 'component': return a.componentName.localeCompare(b.componentName) * dir;\n default: return 0;\n }\n });\n return sorted;\n }\n\n public ClearFilters(): void {\n this.Filter = '';\n this.TypeFilter = '';\n this.ComponentFilter = '';\n this.CodeFilter = '';\n this.savePrefs();\n }\n\n public get HasActiveFilters(): boolean {\n return !!(this.Filter || this.TypeFilter || this.ComponentFilter || this.CodeFilter);\n }\n\n public get UptimeLabel(): string {\n const ms = Date.now() - this.StartedAt.getTime();\n const s = Math.floor(ms / 1000);\n const m = Math.floor(s / 60);\n const remainder = s % 60;\n return m > 0 ? `${m}m ${remainder}s` : `${s}s`;\n }\n\n public TrackBySeq = (_i: number, e: EventRow) => e.seq;\n\n // ---------- private ----------\n\n private subscribe(): void {\n try {\n // withReplay = true so we get historical events that were emitted\n // before this component mounted (within MJGlobal's replay buffer).\n this.sub = MJGlobal.Instance.GetEventListener(true).subscribe((evt: MJEvent) => {\n this.handleEvent(evt);\n });\n } catch {\n // Listener unavailable; silent (rare)\n }\n }\n\n private handleEvent(evt: MJEvent): void {\n this.Stats.captured++;\n this.rateBucket.push(Date.now());\n\n if (this.Paused) return;\n\n const type = String(evt.event ?? 'Unknown');\n if (!this.KnownTypes.includes(type)) {\n this.KnownTypes = [...this.KnownTypes, type].sort();\n }\n\n const componentName = (evt.component as { constructor?: { name?: string } } | null | undefined)?.constructor?.name ?? '(no component)';\n if (!this.KnownComponents.includes(componentName)) {\n this.KnownComponents = [...this.KnownComponents, componentName].sort();\n }\n const code = evt.eventCode;\n if (code && !this.KnownCodes.includes(code)) {\n this.KnownCodes = [...this.KnownCodes, code].sort();\n }\n\n const hasPayload = this.computeHasPayload(evt.args);\n\n const row: EventRow = {\n seq: ++this.seq,\n timestamp: new Date(),\n type,\n eventCode: code,\n componentName,\n summary: hasPayload ? this.summarizeArgs(evt.args) : '—',\n args: evt.args,\n expanded: false,\n hasPayload\n };\n\n this.Events = [row, ...this.Events];\n if (this.Events.length > this.MaxEvents) {\n this.Events = this.Events.slice(0, this.MaxEvents);\n }\n this.Stats.kept = this.Events.length;\n this.cdr.markForCheck();\n }\n\n private computeHasPayload(args: unknown): boolean {\n if (args === null || args === undefined) return false;\n if (typeof args === 'string') return args.length > 0;\n if (Array.isArray(args)) return args.length > 0;\n if (typeof args === 'object') return Object.keys(args as Record<string, unknown>).length > 0;\n return true; // numbers, booleans count as payload\n }\n\n private tickRate(): void {\n const cutoff = Date.now() - 1000;\n this.rateBucket = this.rateBucket.filter(t => t >= cutoff);\n this.Stats.perSecond = this.rateBucket.length;\n this.cdr.markForCheck();\n }\n\n private summarizeArgs(args: unknown): string {\n if (args === null || args === undefined) return '—';\n if (typeof args === 'string') return args.length > 80 ? args.slice(0, 77) + '…' : args;\n if (typeof args === 'number' || typeof args === 'boolean') return String(args);\n if (Array.isArray(args)) return `[ ${args.length} item${args.length === 1 ? '' : 's'} ]`;\n if (typeof args === 'object') {\n const keys = Object.keys(args as Record<string, unknown>);\n if (keys.length === 0) return '{ }';\n return `{ ${keys.slice(0, 3).join(', ')}${keys.length > 3 ? ', …' : ''} }`;\n }\n return String(args);\n }\n}\n","<div class=\"mj-inspector mj-inspector--solo\">\n <div class=\"mj-inspector__header\">\n <div class=\"mj-inspector__header-icon\"><i class=\"fa-solid fa-bolt\"></i></div>\n <div>\n <h3 class=\"mj-inspector__header-title\">Event Monitor</h3>\n <div class=\"mj-inspector__header-sub\">Live tail of MJGlobal events with filter and pause</div>\n </div>\n <span class=\"mj-inspector__header-spacer\"></span>\n <div class=\"mj-inspector__header-actions\">\n <button class=\"mj-inspector__btn\"\n [class.mj-inspector__btn--success]=\"!Paused\"\n [class.em-paused]=\"Paused\"\n type=\"button\" (click)=\"TogglePause()\"\n [title]=\"Paused ? 'Resume capture' : 'Pause capture'\">\n @if (Paused) {\n <i class=\"fa-solid fa-play\"></i> Resume\n } @else {\n <i class=\"fa-solid fa-pause\"></i> Pause\n }\n </button>\n <button class=\"mj-inspector__btn\" type=\"button\" (click)=\"Clear()\" title=\"Clear all captured events\">\n <i class=\"fa-solid fa-broom\"></i> Clear\n </button>\n </div>\n </div>\n\n <div class=\"em-stats\">\n <div class=\"em-stat\">\n <i class=\"em-pulse\" [class.em-pulse--paused]=\"Paused\"></i>\n <div>\n <div class=\"em-stat-value\">{{ Paused ? 'PAUSED' : 'LIVE' }}</div>\n <div class=\"em-stat-label\">{{ Paused ? 'Capture suspended' : 'Capturing events' }}</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.captured }}</div>\n <div class=\"em-stat-label\">Total captured</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.kept }} / {{ MaxEvents }}</div>\n <div class=\"em-stat-label\">In buffer</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.perSecond }}/s</div>\n <div class=\"em-stat-label\">Last second</div>\n </div>\n </div>\n <div class=\"em-stat em-stat--right\">\n <div>\n <div class=\"em-stat-value em-stat-value--small\">{{ UptimeLabel }}</div>\n <div class=\"em-stat-label\">Watching for</div>\n </div>\n </div>\n </div>\n\n <div class=\"em-toolbar\">\n <div class=\"em-search-wrap\">\n <i class=\"fa-solid fa-search em-search-icon\"></i>\n <input type=\"search\"\n class=\"em-search\"\n placeholder=\"Filter by type, component, payload…\"\n [(ngModel)]=\"Filter\"\n (ngModelChange)=\"PersistPrefs()\" />\n @if (Filter) {\n <button class=\"em-search-clear\" (click)=\"Filter = ''\" title=\"Clear\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Type</label>\n <select class=\"em-select\" [(ngModel)]=\"TypeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All types ({{ KnownTypes.length }})</option>\n @for (t of KnownTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Component</label>\n <select class=\"em-select\" [(ngModel)]=\"ComponentFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All components ({{ KnownComponents.length }})</option>\n @for (c of KnownComponents; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n\n @if (KnownCodes.length > 0) {\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Code</label>\n <select class=\"em-select\" [(ngModel)]=\"CodeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All codes ({{ KnownCodes.length }})</option>\n @for (c of KnownCodes; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n }\n\n @if (HasActiveFilters) {\n <button class=\"em-clear-filters\" type=\"button\" (click)=\"ClearFilters()\" title=\"Clear all filters\">\n <i class=\"fa-solid fa-xmark\"></i> Clear filters\n </button>\n }\n </div>\n\n <div class=\"em-list\">\n <div class=\"em-table-head\">\n <button type=\"button\"\n class=\"em-th em-th--time\"\n [class.em-th--sorted]=\"SortField === 'time'\"\n (click)=\"OnSortClick('time')\">\n Time\n @if (SortField === 'time') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--type\"\n [class.em-th--sorted]=\"SortField === 'type'\"\n (click)=\"OnSortClick('type')\">\n Type\n @if (SortField === 'type') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--code\"\n [class.em-th--sorted]=\"SortField === 'eventCode'\"\n (click)=\"OnSortClick('eventCode')\">\n Code\n @if (SortField === 'eventCode') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--component\"\n [class.em-th--sorted]=\"SortField === 'component'\"\n (click)=\"OnSortClick('component')\">\n Component\n @if (SortField === 'component') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <span class=\"em-th em-th--summary\">Summary</span>\n <span class=\"em-th em-th--actions\"></span>\n </div>\n\n @if (FilteredEvents.length === 0) {\n <div class=\"em-empty\">\n @if (Stats.captured === 0) {\n <i class=\"fa-solid fa-radio em-empty-icon\"></i>\n <div class=\"em-empty-title\">Listening for events…</div>\n <div class=\"em-empty-sub\">Trigger an action — saves, navigation, AI events all show up here.</div>\n } @else if (Paused) {\n <i class=\"fa-solid fa-pause em-empty-icon\"></i>\n <div class=\"em-empty-title\">Capture is paused</div>\n <div class=\"em-empty-sub\">{{ Stats.captured }} events fired since you paused. Click Resume to start collecting again.</div>\n } @else {\n <i class=\"fa-solid fa-filter em-empty-icon\"></i>\n <div class=\"em-empty-title\">No events match your filter</div>\n <div class=\"em-empty-sub\">{{ Stats.kept }} events in buffer · clear filters to see them.</div>\n }\n </div>\n } @else {\n @for (evt of FilteredEvents; track TrackBySeq($index, evt)) {\n <div class=\"em-row\" [class.em-row--expanded]=\"evt.expanded\">\n <div class=\"em-row-head\" (click)=\"ToggleRow(evt)\">\n <i class=\"em-row-chev fa-solid fa-chevron-right\"\n [class.em-row-chev--down]=\"evt.expanded\"></i>\n <span class=\"em-row-time\">{{ evt.timestamp | date:'HH:mm:ss.SSS' }}</span>\n <span class=\"em-row-type\" [attr.data-type]=\"evt.type\">{{ evt.type }}</span>\n <span class=\"em-row-code\">{{ evt.eventCode || '—' }}</span>\n <span class=\"em-row-component\" [title]=\"evt.componentName\">{{ evt.componentName }}</span>\n <span class=\"em-row-summary\" [class.em-row-summary--empty]=\"!evt.hasPayload\">{{ evt.summary }}</span>\n <button class=\"em-row-copy\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); OnCopyRow(evt)\"\n title=\"Copy as JSON\">\n <i class=\"fa-solid fa-clipboard\"></i>\n </button>\n </div>\n @if (evt.expanded) {\n @if (evt.hasPayload) {\n <pre class=\"em-row-payload\"><code>{{ evt.args | json }}</code></pre>\n } @else {\n <div class=\"em-row-no-payload\">\n <i class=\"fa-regular fa-circle\"></i>\n <span>This event has no payload.</span>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n</div>\n"]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, ChangeDetectorRef, ElementRef } from '@angular/core';
|
|
2
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
3
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
interface HistoryEntry {
|
|
6
|
+
id: string;
|
|
7
|
+
query: string;
|
|
8
|
+
variables: string;
|
|
9
|
+
timestamp: Date;
|
|
10
|
+
durationMs?: number;
|
|
11
|
+
status: 'ok' | 'error' | 'pending';
|
|
12
|
+
favorite: boolean;
|
|
13
|
+
label?: string;
|
|
14
|
+
}
|
|
15
|
+
/** GraphQL introspection — minimal subset sufficient for the explorer. */
|
|
16
|
+
interface IntrospectedTypeRef {
|
|
17
|
+
kind: 'NON_NULL' | 'LIST' | 'SCALAR' | 'OBJECT' | 'ENUM' | 'INPUT_OBJECT' | 'INTERFACE' | 'UNION' | string;
|
|
18
|
+
name: string | null;
|
|
19
|
+
ofType?: IntrospectedTypeRef | null;
|
|
20
|
+
}
|
|
21
|
+
interface IntrospectedArg {
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string | null;
|
|
24
|
+
type: IntrospectedTypeRef;
|
|
25
|
+
defaultValue?: string | null;
|
|
26
|
+
}
|
|
27
|
+
interface IntrospectedField {
|
|
28
|
+
name: string;
|
|
29
|
+
description?: string | null;
|
|
30
|
+
args: IntrospectedArg[];
|
|
31
|
+
type: IntrospectedTypeRef;
|
|
32
|
+
}
|
|
33
|
+
interface SchemaOperation {
|
|
34
|
+
name: string;
|
|
35
|
+
kind: 'query' | 'mutation';
|
|
36
|
+
description: string;
|
|
37
|
+
argSummary: string;
|
|
38
|
+
returnSummary: string;
|
|
39
|
+
field: IntrospectedField;
|
|
40
|
+
}
|
|
41
|
+
type SidebarTab = 'history' | 'schema' | 'entities';
|
|
42
|
+
type EntityOpKind = 'view' | 'byId' | 'create' | 'update' | 'delete';
|
|
43
|
+
interface EntityListItem {
|
|
44
|
+
info: EntityInfo;
|
|
45
|
+
typeName: string;
|
|
46
|
+
schema: string;
|
|
47
|
+
/** True when this entity is currently expanded showing operation buttons. */
|
|
48
|
+
expanded: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* GraphQL Console — write and run arbitrary GraphQL queries against the
|
|
52
|
+
* connected MJ API. Re-uses the active GraphQLDataProvider client (auth +
|
|
53
|
+
* session intact). Local history with copy / favorite / replay; copy-as-curl;
|
|
54
|
+
* keyboard shortcut (Cmd/Ctrl+Enter) to run.
|
|
55
|
+
*/
|
|
56
|
+
export declare class GraphQLConsoleComponent extends BaseResourceComponent implements OnInit, OnDestroy {
|
|
57
|
+
private cdr;
|
|
58
|
+
queryEditor?: ElementRef<HTMLTextAreaElement>;
|
|
59
|
+
Query: string;
|
|
60
|
+
Variables: string;
|
|
61
|
+
ShowVariables: boolean;
|
|
62
|
+
Running: boolean;
|
|
63
|
+
ResponseJson: string;
|
|
64
|
+
ResponseStatus: 'ok' | 'error' | 'idle';
|
|
65
|
+
ResponseDurationMs: number | null;
|
|
66
|
+
ResponseSizeBytes: number | null;
|
|
67
|
+
ErrorMessage: string | null;
|
|
68
|
+
History: HistoryEntry[];
|
|
69
|
+
ShowHistory: boolean;
|
|
70
|
+
CopyConfirmed: boolean;
|
|
71
|
+
ApiUrl: string;
|
|
72
|
+
SidebarTab: SidebarTab;
|
|
73
|
+
SchemaLoading: boolean;
|
|
74
|
+
SchemaError: string | null;
|
|
75
|
+
SchemaIntrospectionDisabled: boolean;
|
|
76
|
+
SchemaSearch: string;
|
|
77
|
+
SchemaKindFilter: 'all' | 'query' | 'mutation';
|
|
78
|
+
Operations: SchemaOperation[];
|
|
79
|
+
private schemaLoaded;
|
|
80
|
+
EntitiesSearch: string;
|
|
81
|
+
Entities: EntityListItem[];
|
|
82
|
+
EntitySchemaFilter: string;
|
|
83
|
+
KnownSchemas: string[];
|
|
84
|
+
SidebarWidthPx: number;
|
|
85
|
+
EditorHeightPct: number;
|
|
86
|
+
private resizing;
|
|
87
|
+
private elementRef;
|
|
88
|
+
constructor(cdr: ChangeDetectorRef);
|
|
89
|
+
ngOnInit(): void;
|
|
90
|
+
ngOnDestroy(): void;
|
|
91
|
+
private loadEntities;
|
|
92
|
+
GetResourceDisplayName(): Promise<string>;
|
|
93
|
+
GetResourceIconClass(): Promise<string>;
|
|
94
|
+
OnHostKeydown(event: KeyboardEvent): void;
|
|
95
|
+
OnRun(): Promise<void>;
|
|
96
|
+
OnRestoreHistory(entry: HistoryEntry): void;
|
|
97
|
+
OnToggleFavorite(entry: HistoryEntry, event: Event): void;
|
|
98
|
+
OnDeleteHistory(entry: HistoryEntry, event: Event): void;
|
|
99
|
+
OnClearHistory(): void;
|
|
100
|
+
OnCopyResponse(): Promise<void>;
|
|
101
|
+
OnCopyAsCurl(): Promise<void>;
|
|
102
|
+
OnFormatQuery(): void;
|
|
103
|
+
ToggleHistoryPanel(): void;
|
|
104
|
+
ToggleVariables(): void;
|
|
105
|
+
OnSidebarTabChange(tab: SidebarTab): void;
|
|
106
|
+
OnReloadSchema(): Promise<void>;
|
|
107
|
+
OnInsertOperation(op: SchemaOperation, event?: MouseEvent): void;
|
|
108
|
+
OnClearQuery(): void;
|
|
109
|
+
get FilteredOperations(): SchemaOperation[];
|
|
110
|
+
get OperationCounts(): {
|
|
111
|
+
all: number;
|
|
112
|
+
query: number;
|
|
113
|
+
mutation: number;
|
|
114
|
+
};
|
|
115
|
+
TrackByOp: (_i: number, o: SchemaOperation) => string;
|
|
116
|
+
TrackByEntity: (_i: number, e: EntityListItem) => string;
|
|
117
|
+
get FilteredEntities(): EntityListItem[];
|
|
118
|
+
ToggleEntity(e: EntityListItem): void;
|
|
119
|
+
OnEntityOp(item: EntityListItem, op: EntityOpKind, event: MouseEvent): void;
|
|
120
|
+
/**
|
|
121
|
+
* Default: replace the editor contents with the new template.
|
|
122
|
+
* Shift-click: append to the end (with a blank-line separator) so the
|
|
123
|
+
* user can stage multiple operations in one document.
|
|
124
|
+
*/
|
|
125
|
+
private insertTemplate;
|
|
126
|
+
private buildEntityOpTemplate;
|
|
127
|
+
/** Pick the first ~10 displayable fields, prioritizing primary key and common fields. */
|
|
128
|
+
private pickRepresentativeFields;
|
|
129
|
+
private isExpensiveField;
|
|
130
|
+
ClearEntityFilters(): void;
|
|
131
|
+
OnSplitterDown(event: MouseEvent, kind: 'sidebar' | 'editor'): void;
|
|
132
|
+
private onMouseMove;
|
|
133
|
+
private onMouseUp;
|
|
134
|
+
private detachResizeListeners;
|
|
135
|
+
get FormattedSize(): string;
|
|
136
|
+
TrackByHistory: (_i: number, h: HistoryEntry) => string;
|
|
137
|
+
private recordHistory;
|
|
138
|
+
private deriveLabel;
|
|
139
|
+
private formatError;
|
|
140
|
+
private extractErrorSummary;
|
|
141
|
+
private loadFromStorage;
|
|
142
|
+
private saveToStorage;
|
|
143
|
+
private loadSchema;
|
|
144
|
+
private extractErrorCode;
|
|
145
|
+
private toOperation;
|
|
146
|
+
private typeRefToString;
|
|
147
|
+
private isObjectReturn;
|
|
148
|
+
private buildOperationTemplate;
|
|
149
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GraphQLConsoleComponent, never>;
|
|
150
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GraphQLConsoleComponent, "mj-graphql-console", never, {}, {}, never, never, false, never>;
|
|
151
|
+
}
|
|
152
|
+
export {};
|
|
153
|
+
//# sourceMappingURL=graphql-console.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-console.component.d.ts","sourceRoot":"","sources":["../../src/DevTools/graphql-console.component.ts"],"names":[],"mappings":"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"}
|