@anglr/dynamic 1.0.0-beta.20230203092613 → 1.0.0-beta.20230203134405

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.
@@ -111,13 +111,10 @@ export class RelationsDebuggerVisualizerSAComponent {
111
111
  * Updates current node definition for step
112
112
  */
113
113
  updateNodeDefinitionForStep() {
114
- const components = this.relationsDebugger.getCurrentComponents();
115
114
  this.nodeDefinitions = this.relationsDefinition
116
- .filter(itm => components[itm.id])
117
115
  .map(itm => {
118
116
  return Object.assign(Object.assign({}, itm), { package: 'relations-debugger' });
119
117
  });
120
- console.log(this.nodeDefinitions);
121
118
  }
122
119
  /**
123
120
  * Renders current step
@@ -1 +1 @@
1
- {"version":3,"file":"relationsDebuggerVisualizer.component.js","sourceRoot":"","sources":["../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.ts","../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, EventEmitter, Output, ClassProvider, Input, OnChanges, SimpleChanges, ChangeDetectorRef, OnInit} from '@angular/core';\nimport {RelationsCanvasSAComponent, RelationsNodeMetadata, RELATIONS_HISTORY_MANAGER} from '@anglr/dynamic/relations-editor';\nimport {RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNodeManager} from '@anglr/dynamic/relations-editor';\nimport {isPresent, nameof} from '@jscrpt/common';\n\nimport {MetadataHistoryManagerDebug} from '../../services';\nimport {StepNameSAPipe} from '../../pipes';\n\n/**\n * Component used for visualization of relations debugger data\n */\n@Component(\n{\n selector: 'relations-debugger-visualizer',\n templateUrl: 'relationsDebuggerVisualizer.component.html',\n standalone: true,\n imports:\n [\n RelationsCanvasSAComponent,\n StepNameSAPipe,\n ],\n providers:\n [\n RelationsNodeManager,\n <ClassProvider>\n {\n provide: RELATIONS_HISTORY_MANAGER,\n useClass: MetadataHistoryManagerDebug,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RelationsDebuggerVisualizerSAComponent implements OnInit, OnChanges\n{\n //######################### protected properties #########################\n\n /**\n * Interval of running debugging\n */\n protected interval: number|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Playing through debugging steps\n */\n protected playing: boolean = false;\n\n /**\n * Definition of nodes that should be rendered\n */\n protected nodeDefinitions: RelationsNodeMetadata[] = [];\n\n /**\n * Currently displayed step\n */\n protected currentStep: RelationsStepDebugInfo|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Delay between steps during automatic play\n */\n @Input()\n public playDelay: number = 2500;\n\n /**\n * Definition of relations and their nodes, used for rendering canvas\n */\n @Input()\n public relationsDefinition: RelationsNodeMetadata[] = [];\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when user is trying to close visualizer\n */\n @Output()\n public close: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### constructor #########################\n constructor(protected relationsDebugger: RelationsDebugger,\n protected changeDetector: ChangeDetectorRef,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n const step = this.relationsDebugger.getCurrentStep();\n\n this.renderStep(step);\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(nameof<RelationsDebuggerVisualizerSAComponent>('relationsDefinition') in changes)\n {\n this.renderStep(this.currentStep);\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Toggles play mode \n */\n protected togglePlay(): void\n {\n this.playing = !this.playing;\n\n if(isPresent(this.interval))\n {\n clearInterval(this.interval);\n this.interval = null;\n }\n else\n {\n this.interval = setInterval(() =>\n {\n const step = this.relationsDebugger.getNextStep();\n\n if(!step)\n {\n this.togglePlay();\n\n return;\n }\n\n this.processStep(step);\n\n console.log(step, this.relationsDebugger);\n }, this.playDelay) as unknown as number;\n }\n }\n\n /**\n * Shows next step\n */\n protected nextStep(): void\n {\n const step = this.relationsDebugger.getNextStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows previous step\n */\n protected previousStep(): void\n {\n const step = this.relationsDebugger.getPreviousStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows last step\n */\n protected lastStep(): void\n {\n const step = this.relationsDebugger.getLastStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows first step\n */\n protected firstStep(): void\n {\n const step = this.relationsDebugger.getFirstStep();\n\n this.renderStep(step);\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates current node definition for step\n */\n protected updateNodeDefinitionForStep(): void\n {\n const components = this.relationsDebugger.getCurrentComponents();\n\n this.nodeDefinitions = this.relationsDefinition\n .filter(itm => components[itm.id])\n .map(itm =>\n {\n return {\n ...itm,\n package: 'relations-debugger',\n };\n });\n console.log(this.nodeDefinitions);\n }\n\n /**\n * Renders current step\n * @param step - Step to be rendered\n */\n protected renderStep(step: RelationsStepDebugInfo|undefined|null): void\n {\n if(!step)\n {\n return;\n }\n\n this.processStep(step);\n }\n\n /**\n * Process step\n * @param step - Step to be processed\n */\n protected processStep(step: RelationsStepDebugInfo): void\n {\n this.updateNodeDefinitionForStep();\n this.currentStep = step;\n\n this.changeDetector.detectChanges();\n }\n}","<div class=\"dynamic-flex-row dynamic-margin-bottom-small\">\n <div class=\"dynamic-flex-row\">\n <div class=\"dynamic-margin-right-small\">{{currentStep?.timestamp}}</div>\n <div class=\"dynamic-margin-right-small\">{{currentStep | stepName}}</div>\n </div>\n\n <div class=\"dynamic-flex-row dynamic-flex-1 dynamic-justify-content-center\">\n <div>\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"firstStep()\">\n <span class=\"fas fa-backward-fast\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"previousStep()\">\n <span class=\"fas fa-backward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"togglePlay()\">\n <span class=\"fas\" [class.fa-play]=\"!playing\" [class.fa-pause]=\"playing\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"nextStep()\">\n <span class=\"fas fa-forward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"lastStep()\">\n <span class=\"fas fa-forward-fast\"></span>\n </a>\n </div>\n </div>\n\n <a class=\"dynamic-btn-icon dynamic-large-text dynamic-margin-right-extra-small\" (click)=\"close.emit()\">\n <span class=\"fas fa-times\"></span>\n </a>\n</div>\n\n<div class=\"dynamic-flex-row dynamic-flex-1\">\n <relations-canvas [nodeDefinitions]=\"nodeDefinitions\" class=\"dynamic-flex-1\"></relations-canvas>\n</div>\n"]}
1
+ {"version":3,"file":"relationsDebuggerVisualizer.component.js","sourceRoot":"","sources":["../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.ts","../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, EventEmitter, Output, ClassProvider, Input, OnChanges, SimpleChanges, ChangeDetectorRef, OnInit} from '@angular/core';\nimport {RelationsCanvasSAComponent, RelationsNodeMetadata, RELATIONS_HISTORY_MANAGER} from '@anglr/dynamic/relations-editor';\nimport {RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNodeManager} from '@anglr/dynamic/relations-editor';\nimport {isPresent, nameof} from '@jscrpt/common';\n\nimport {MetadataHistoryManagerDebug} from '../../services';\nimport {StepNameSAPipe} from '../../pipes';\n\n/**\n * Component used for visualization of relations debugger data\n */\n@Component(\n{\n selector: 'relations-debugger-visualizer',\n templateUrl: 'relationsDebuggerVisualizer.component.html',\n standalone: true,\n imports:\n [\n RelationsCanvasSAComponent,\n StepNameSAPipe,\n ],\n providers:\n [\n RelationsNodeManager,\n <ClassProvider>\n {\n provide: RELATIONS_HISTORY_MANAGER,\n useClass: MetadataHistoryManagerDebug,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RelationsDebuggerVisualizerSAComponent implements OnInit, OnChanges\n{\n //######################### protected properties #########################\n\n /**\n * Interval of running debugging\n */\n protected interval: number|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Playing through debugging steps\n */\n protected playing: boolean = false;\n\n /**\n * Definition of nodes that should be rendered\n */\n protected nodeDefinitions: RelationsNodeMetadata[] = [];\n\n /**\n * Currently displayed step\n */\n protected currentStep: RelationsStepDebugInfo|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Delay between steps during automatic play\n */\n @Input()\n public playDelay: number = 2500;\n\n /**\n * Definition of relations and their nodes, used for rendering canvas\n */\n @Input()\n public relationsDefinition: RelationsNodeMetadata[] = [];\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when user is trying to close visualizer\n */\n @Output()\n public close: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### constructor #########################\n constructor(protected relationsDebugger: RelationsDebugger,\n protected changeDetector: ChangeDetectorRef,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n const step = this.relationsDebugger.getCurrentStep();\n\n this.renderStep(step);\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(nameof<RelationsDebuggerVisualizerSAComponent>('relationsDefinition') in changes)\n {\n this.renderStep(this.currentStep);\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Toggles play mode \n */\n protected togglePlay(): void\n {\n this.playing = !this.playing;\n\n if(isPresent(this.interval))\n {\n clearInterval(this.interval);\n this.interval = null;\n }\n else\n {\n this.interval = setInterval(() =>\n {\n const step = this.relationsDebugger.getNextStep();\n\n if(!step)\n {\n this.togglePlay();\n\n return;\n }\n\n this.processStep(step);\n\n console.log(step, this.relationsDebugger);\n }, this.playDelay) as unknown as number;\n }\n }\n\n /**\n * Shows next step\n */\n protected nextStep(): void\n {\n const step = this.relationsDebugger.getNextStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows previous step\n */\n protected previousStep(): void\n {\n const step = this.relationsDebugger.getPreviousStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows last step\n */\n protected lastStep(): void\n {\n const step = this.relationsDebugger.getLastStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows first step\n */\n protected firstStep(): void\n {\n const step = this.relationsDebugger.getFirstStep();\n\n this.renderStep(step);\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates current node definition for step\n */\n protected updateNodeDefinitionForStep(): void\n {\n this.nodeDefinitions = this.relationsDefinition\n .map(itm =>\n {\n return {\n ...itm,\n package: 'relations-debugger',\n };\n });\n }\n\n /**\n * Renders current step\n * @param step - Step to be rendered\n */\n protected renderStep(step: RelationsStepDebugInfo|undefined|null): void\n {\n if(!step)\n {\n return;\n }\n\n this.processStep(step);\n }\n\n /**\n * Process step\n * @param step - Step to be processed\n */\n protected processStep(step: RelationsStepDebugInfo): void\n {\n this.updateNodeDefinitionForStep();\n this.currentStep = step;\n\n this.changeDetector.detectChanges();\n }\n}","<div class=\"dynamic-flex-row dynamic-margin-bottom-small\">\n <div class=\"dynamic-flex-row\">\n <div class=\"dynamic-margin-right-small\">{{currentStep?.timestamp}}</div>\n <div class=\"dynamic-margin-right-small\">{{currentStep | stepName}}</div>\n </div>\n\n <div class=\"dynamic-flex-row dynamic-flex-1 dynamic-justify-content-center\">\n <div>\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"firstStep()\">\n <span class=\"fas fa-backward-fast\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"previousStep()\">\n <span class=\"fas fa-backward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"togglePlay()\">\n <span class=\"fas\" [class.fa-play]=\"!playing\" [class.fa-pause]=\"playing\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"nextStep()\">\n <span class=\"fas fa-forward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"lastStep()\">\n <span class=\"fas fa-forward-fast\"></span>\n </a>\n </div>\n </div>\n\n <a class=\"dynamic-btn-icon dynamic-large-text dynamic-margin-right-extra-small\" (click)=\"close.emit()\">\n <span class=\"fas fa-times\"></span>\n </a>\n</div>\n\n<div class=\"dynamic-flex-row dynamic-flex-1\">\n <relations-canvas [nodeDefinitions]=\"nodeDefinitions\" class=\"dynamic-flex-1\"></relations-canvas>\n</div>\n"]}
@@ -69,14 +69,24 @@ export class DebuggerNodeSAComponent extends RelationsNodeBase {
69
69
  this.readNodesData();
70
70
  }
71
71
  //######################### protected methods #########################
72
+ /**
73
+ * Reads node data for current step
74
+ */
72
75
  readNodesData() {
73
76
  var _a;
74
77
  if (!this.metadata) {
75
78
  return;
76
79
  }
80
+ const components = this.relationsDebugger.getCurrentComponents();
81
+ //unregistered
82
+ if (!components[this.metadata.id]) {
83
+ this.element.nativeElement.classList.add('unregistered');
84
+ return;
85
+ }
86
+ this.element.nativeElement.classList.remove('unregistered');
77
87
  this.step = this.relationsDebugger.getCurrentStep();
78
88
  this.state = this.relationsDebugger.getComponentState(this.metadata.id);
79
- this.components = (_a = this.relationsDebugger.getCurrentComponents()[this.metadata.id]) !== null && _a !== void 0 ? _a : [];
89
+ this.components = (_a = components[this.metadata.id]) !== null && _a !== void 0 ? _a : [];
80
90
  }
81
91
  }
82
92
  DebuggerNodeSAComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DebuggerNodeSAComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerNode.component.js","sourceRoot":"","sources":["../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.ts","../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAY,MAAM,eAAe,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAgE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAClJ,OAAO,EAAgB,iBAAiB,EAAE,4BAA4B,EAAE,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AAC9I,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;;;;AAEnD;;GAEG;AAgBH,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAf9D;;QAiBI,0EAA0E;QAE1E;;WAEG;QACO,sBAAiB,GAAiB,IAAI,YAAY,EAAE,CAAC;QAE/D;;WAEG;QACO,sBAAiB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAS3E;;WAEG;QACO,eAAU,GAAa,EAAE,CAAC;QAOpC;;WAEG;QACO,UAAK,GAAuC,EAAE,CAAC;QAEzD;;WAEG;QACO,mBAAc,GACxB;YACI,QAAQ,EACR;gBACI,SAAS,EAAE,iBAAiB,CAAC,QAAQ;gBACrC,MAAM,EAAE,MAAM;aACjB;YACD,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,4BAA4B;SAChD,CAAC;KAmDL;IAjDG,gFAAgF;IAEhF;;OAEG;IACa,WAAW;QAEvB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACa,UAAU;QAEtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,mFAAmF;IAEnF;;OAEG;IACgB,WAAW;QAE1B,IAAG,CAAC,IAAI,CAAC,QAAQ,EACjB;YACI,OAAO;SACV;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,uEAAuE;IAE7D,aAAa;;QAEnB,IAAG,CAAC,IAAI,CAAC,QAAQ,EACjB;YACI,OAAO;SACV;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;IAC5F,CAAC;;oHAlGQ,uBAAuB;wGAAvB,uBAAuB,gGC3BpC,o9FAuDM,2CDpCE,YAAY,sNACZ,aAAa,mRACb,4BAA4B,gEAC5B,6BAA6B,4DAC7B,mBAAmB;2FAId,uBAAuB;kBAfnC,SAAS;+BAEI,eAAe,cAEb,IAAI,WAEhB;wBACI,YAAY;wBACZ,aAAa;wBACb,4BAA4B;wBAC5B,6BAA6B;wBAC7B,mBAAmB;qBACtB,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {Component, ChangeDetectionStrategy, inject, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PositionPlacement, TooltipModule, TooltipOptions} from '@anglr/common';\nimport {RelationsComponentEndpoints, RelationsComponentStateDebugInfo, RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNode, RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent} from '@anglr/dynamic/relations-editor';\nimport {Subscription} from 'rxjs';\n\nimport {JsonFormattedSAPipe} from '../../../pipes';\n\n/**\n * Relations node component for debugger node\n */\n@Component(\n{\n selector: 'debugger-node',\n templateUrl: 'debuggerNode.component.html',\n standalone: true,\n imports:\n [\n CommonModule,\n TooltipModule,\n RelationNodeInputSAComponent,\n RelationNodeOutputSAComponent,\n JsonFormattedSAPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DebuggerNodeSAComponent extends RelationsNodeBase implements RelationsNode, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Instance of relations debugger\n */\n protected relationsDebugger: RelationsDebugger = inject(RelationsDebugger);\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Instance of component definition\n */\n protected componentDef: RelationsComponentEndpoints|undefined|null;\n\n /**\n * Array of component ids\n */\n protected components: string[] = [];\n\n /**\n * Information about currently displayed step\n */\n protected step: RelationsStepDebugInfo|undefined|null;\n\n /**\n * Current state of all components\n */\n protected state: RelationsComponentStateDebugInfo[] = [];\n\n /**\n * Tooltip options\n */\n protected tooltipOptions: Partial<TooltipOptions> =\n {\n position:\n {\n placement: PositionPlacement.TopStart,\n offset: 'None',\n },\n allowSelection: true,\n tooltipCssClass: 'relations-debugger-tooltip',\n };\n\n //######################### public methods - overrides #########################\n \n /**\n * @inheritdoc\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.initSubscriptions.unsubscribe();\n }\n\n /**\n * @inheritdoc\n */\n public override initialize(): void\n {\n this.initSubscriptions.add(this.relationsDebugger.stepChange.subscribe(() => this.readNodesData()));\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override metadataSet(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.componentDef = this.relationsDebugger.getComponentDef(this.metadata.id);\n this.readNodesData();\n }\n\n //######################### protected methods #########################\n\n protected readNodesData(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.step = this.relationsDebugger.getCurrentStep();\n this.state = this.relationsDebugger.getComponentState(this.metadata.id);\n this.components = this.relationsDebugger.getCurrentComponents()[this.metadata.id] ?? [];\n }\n}","<div class=\"relations-node-header\">\n <div class=\"header-content\" tooltip=\"id: {{metadata?.id}}\">{{metadata?.name}}</div>\n</div>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\" *ngFor=\"let input of componentDef?.inputs\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"input\" [parent]=\"this\"></relation-node-input>\n <div>{{input}}</div>\n </div>\n </div>\n\n <div class=\"outputs\">\n <div class=\"output\" *ngFor=\"let output of componentDef?.outputs\">\n <div>{{output}}</div>\n <relation-node-output [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"output\" [parent]=\"this\"></relation-node-output>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"debugger-node-overlay\" tooltip [tooltipOptions]=\"tooltipOptions\">\n <div *tooltipTemplate class=\"relations-debugger-node-detail dynamic-thin-scrollbar\">\n <div class=\"dynamic-bold\">{{this.metadata?.id}}</div>\n\n <div *ngFor=\"let stat of state\">\n <div class=\"dynamic-semi-bold\">#{{stat.componentInternalId}}</div>\n\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-top-small dynamic-margin-bottom-extra-small\">relations options</div>\n\n <div class=\"formatted-json\">{{metadata?.relationsOptions | jsonFormatted}}</div>\n\n <div class=\"inputs-outputs-grid\">\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">inputs</div>\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">outputs</div>\n\n <div>\n <div *ngFor=\"let input of stat.inputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{input.key}}:</div>\n <div class=\"formatted-json\">{{input.value | jsonFormatted}}</div>\n </div>\n </div>\n\n <div>\n <div *ngFor=\"let output of stat.outputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{output.key}}:</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">assigned:</span> {{output.value.assigned}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">skipInit:</span> {{output.value.skipInit}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">value:</span> <div style=\"white-space: pre-wrap;\">{{output.value.value | jsonFormatted}}</div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"]}
1
+ {"version":3,"file":"debuggerNode.component.js","sourceRoot":"","sources":["../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.ts","../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, inject, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PositionPlacement, TooltipModule, TooltipOptions} from '@anglr/common';\nimport {RelationsComponentEndpoints, RelationsComponentStateDebugInfo, RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNode, RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent} from '@anglr/dynamic/relations-editor';\nimport {Subscription} from 'rxjs';\n\nimport {JsonFormattedSAPipe} from '../../../pipes';\n\n/**\n * Relations node component for debugger node\n */\n@Component(\n{\n selector: 'debugger-node',\n templateUrl: 'debuggerNode.component.html',\n standalone: true,\n imports:\n [\n CommonModule,\n TooltipModule,\n RelationNodeInputSAComponent,\n RelationNodeOutputSAComponent,\n JsonFormattedSAPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DebuggerNodeSAComponent extends RelationsNodeBase implements RelationsNode, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Instance of relations debugger\n */\n protected relationsDebugger: RelationsDebugger = inject(RelationsDebugger);\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Instance of component definition\n */\n protected componentDef: RelationsComponentEndpoints|undefined|null;\n\n /**\n * Array of component ids\n */\n protected components: string[] = [];\n\n /**\n * Information about currently displayed step\n */\n protected step: RelationsStepDebugInfo|undefined|null;\n\n /**\n * Current state of all components\n */\n protected state: RelationsComponentStateDebugInfo[] = [];\n\n /**\n * Tooltip options\n */\n protected tooltipOptions: Partial<TooltipOptions> =\n {\n position:\n {\n placement: PositionPlacement.TopStart,\n offset: 'None',\n },\n allowSelection: true,\n tooltipCssClass: 'relations-debugger-tooltip',\n };\n\n //######################### public methods - overrides #########################\n \n /**\n * @inheritdoc\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.initSubscriptions.unsubscribe();\n }\n\n /**\n * @inheritdoc\n */\n public override initialize(): void\n {\n this.initSubscriptions.add(this.relationsDebugger.stepChange.subscribe(() => this.readNodesData()));\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override metadataSet(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.componentDef = this.relationsDebugger.getComponentDef(this.metadata.id);\n this.readNodesData();\n }\n\n //######################### protected methods #########################\n\n /**\n * Reads node data for current step\n */\n protected readNodesData(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n const components = this.relationsDebugger.getCurrentComponents();\n\n //unregistered\n if(!components[this.metadata.id])\n {\n this.element.nativeElement.classList.add('unregistered');\n\n return;\n }\n\n this.element.nativeElement.classList.remove('unregistered');\n this.step = this.relationsDebugger.getCurrentStep();\n this.state = this.relationsDebugger.getComponentState(this.metadata.id);\n this.components = components[this.metadata.id] ?? [];\n }\n}","<div class=\"relations-node-header\">\n <div class=\"header-content\" tooltip=\"id: {{metadata?.id}}\">{{metadata?.name}}</div>\n</div>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\" *ngFor=\"let input of componentDef?.inputs\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"input\" [parent]=\"this\"></relation-node-input>\n <div>{{input}}</div>\n </div>\n </div>\n\n <div class=\"outputs\">\n <div class=\"output\" *ngFor=\"let output of componentDef?.outputs\">\n <div>{{output}}</div>\n <relation-node-output [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"output\" [parent]=\"this\"></relation-node-output>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"debugger-node-overlay\" tooltip [tooltipOptions]=\"tooltipOptions\">\n <div *tooltipTemplate class=\"relations-debugger-node-detail dynamic-thin-scrollbar\">\n <div class=\"dynamic-bold\">{{this.metadata?.id}}</div>\n\n <div *ngFor=\"let stat of state\">\n <div class=\"dynamic-semi-bold\">#{{stat.componentInternalId}}</div>\n\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-top-small dynamic-margin-bottom-extra-small\">relations options</div>\n\n <div class=\"formatted-json\">{{metadata?.relationsOptions | jsonFormatted}}</div>\n\n <div class=\"inputs-outputs-grid\">\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">inputs</div>\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">outputs</div>\n\n <div>\n <div *ngFor=\"let input of stat.inputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{input.key}}:</div>\n <div class=\"formatted-json\">{{input.value | jsonFormatted}}</div>\n </div>\n </div>\n\n <div>\n <div *ngFor=\"let output of stat.outputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{output.key}}:</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">assigned:</span> {{output.value.assigned}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">skipInit:</span> {{output.value.skipInit}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">value:</span> <div style=\"white-space: pre-wrap;\">{{output.value.value | jsonFormatted}}</div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"]}
@@ -111,16 +111,13 @@ export class RelationsDebuggerVisualizerSAComponent {
111
111
  * Updates current node definition for step
112
112
  */
113
113
  updateNodeDefinitionForStep() {
114
- const components = this.relationsDebugger.getCurrentComponents();
115
114
  this.nodeDefinitions = this.relationsDefinition
116
- .filter(itm => components[itm.id])
117
115
  .map(itm => {
118
116
  return {
119
117
  ...itm,
120
118
  package: 'relations-debugger',
121
119
  };
122
120
  });
123
- console.log(this.nodeDefinitions);
124
121
  }
125
122
  /**
126
123
  * Renders current step
@@ -1 +1 @@
1
- {"version":3,"file":"relationsDebuggerVisualizer.component.js","sourceRoot":"","sources":["../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.ts","../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, EventEmitter, Output, ClassProvider, Input, OnChanges, SimpleChanges, ChangeDetectorRef, OnInit} from '@angular/core';\nimport {RelationsCanvasSAComponent, RelationsNodeMetadata, RELATIONS_HISTORY_MANAGER} from '@anglr/dynamic/relations-editor';\nimport {RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNodeManager} from '@anglr/dynamic/relations-editor';\nimport {isPresent, nameof} from '@jscrpt/common';\n\nimport {MetadataHistoryManagerDebug} from '../../services';\nimport {StepNameSAPipe} from '../../pipes';\n\n/**\n * Component used for visualization of relations debugger data\n */\n@Component(\n{\n selector: 'relations-debugger-visualizer',\n templateUrl: 'relationsDebuggerVisualizer.component.html',\n standalone: true,\n imports:\n [\n RelationsCanvasSAComponent,\n StepNameSAPipe,\n ],\n providers:\n [\n RelationsNodeManager,\n <ClassProvider>\n {\n provide: RELATIONS_HISTORY_MANAGER,\n useClass: MetadataHistoryManagerDebug,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RelationsDebuggerVisualizerSAComponent implements OnInit, OnChanges\n{\n //######################### protected properties #########################\n\n /**\n * Interval of running debugging\n */\n protected interval: number|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Playing through debugging steps\n */\n protected playing: boolean = false;\n\n /**\n * Definition of nodes that should be rendered\n */\n protected nodeDefinitions: RelationsNodeMetadata[] = [];\n\n /**\n * Currently displayed step\n */\n protected currentStep: RelationsStepDebugInfo|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Delay between steps during automatic play\n */\n @Input()\n public playDelay: number = 2500;\n\n /**\n * Definition of relations and their nodes, used for rendering canvas\n */\n @Input()\n public relationsDefinition: RelationsNodeMetadata[] = [];\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when user is trying to close visualizer\n */\n @Output()\n public close: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### constructor #########################\n constructor(protected relationsDebugger: RelationsDebugger,\n protected changeDetector: ChangeDetectorRef,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n const step = this.relationsDebugger.getCurrentStep();\n\n this.renderStep(step);\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(nameof<RelationsDebuggerVisualizerSAComponent>('relationsDefinition') in changes)\n {\n this.renderStep(this.currentStep);\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Toggles play mode \n */\n protected togglePlay(): void\n {\n this.playing = !this.playing;\n\n if(isPresent(this.interval))\n {\n clearInterval(this.interval);\n this.interval = null;\n }\n else\n {\n this.interval = setInterval(() =>\n {\n const step = this.relationsDebugger.getNextStep();\n\n if(!step)\n {\n this.togglePlay();\n\n return;\n }\n\n this.processStep(step);\n\n console.log(step, this.relationsDebugger);\n }, this.playDelay) as unknown as number;\n }\n }\n\n /**\n * Shows next step\n */\n protected nextStep(): void\n {\n const step = this.relationsDebugger.getNextStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows previous step\n */\n protected previousStep(): void\n {\n const step = this.relationsDebugger.getPreviousStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows last step\n */\n protected lastStep(): void\n {\n const step = this.relationsDebugger.getLastStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows first step\n */\n protected firstStep(): void\n {\n const step = this.relationsDebugger.getFirstStep();\n\n this.renderStep(step);\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates current node definition for step\n */\n protected updateNodeDefinitionForStep(): void\n {\n const components = this.relationsDebugger.getCurrentComponents();\n\n this.nodeDefinitions = this.relationsDefinition\n .filter(itm => components[itm.id])\n .map(itm =>\n {\n return {\n ...itm,\n package: 'relations-debugger',\n };\n });\n console.log(this.nodeDefinitions);\n }\n\n /**\n * Renders current step\n * @param step - Step to be rendered\n */\n protected renderStep(step: RelationsStepDebugInfo|undefined|null): void\n {\n if(!step)\n {\n return;\n }\n\n this.processStep(step);\n }\n\n /**\n * Process step\n * @param step - Step to be processed\n */\n protected processStep(step: RelationsStepDebugInfo): void\n {\n this.updateNodeDefinitionForStep();\n this.currentStep = step;\n\n this.changeDetector.detectChanges();\n }\n}","<div class=\"dynamic-flex-row dynamic-margin-bottom-small\">\n <div class=\"dynamic-flex-row\">\n <div class=\"dynamic-margin-right-small\">{{currentStep?.timestamp}}</div>\n <div class=\"dynamic-margin-right-small\">{{currentStep | stepName}}</div>\n </div>\n\n <div class=\"dynamic-flex-row dynamic-flex-1 dynamic-justify-content-center\">\n <div>\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"firstStep()\">\n <span class=\"fas fa-backward-fast\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"previousStep()\">\n <span class=\"fas fa-backward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"togglePlay()\">\n <span class=\"fas\" [class.fa-play]=\"!playing\" [class.fa-pause]=\"playing\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"nextStep()\">\n <span class=\"fas fa-forward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"lastStep()\">\n <span class=\"fas fa-forward-fast\"></span>\n </a>\n </div>\n </div>\n\n <a class=\"dynamic-btn-icon dynamic-large-text dynamic-margin-right-extra-small\" (click)=\"close.emit()\">\n <span class=\"fas fa-times\"></span>\n </a>\n</div>\n\n<div class=\"dynamic-flex-row dynamic-flex-1\">\n <relations-canvas [nodeDefinitions]=\"nodeDefinitions\" class=\"dynamic-flex-1\"></relations-canvas>\n</div>\n"]}
1
+ {"version":3,"file":"relationsDebuggerVisualizer.component.js","sourceRoot":"","sources":["../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.ts","../../../../../relations-debugger/src/components/relationsDebuggerVisualizer/relationsDebuggerVisualizer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, EventEmitter, Output, ClassProvider, Input, OnChanges, SimpleChanges, ChangeDetectorRef, OnInit} from '@angular/core';\nimport {RelationsCanvasSAComponent, RelationsNodeMetadata, RELATIONS_HISTORY_MANAGER} from '@anglr/dynamic/relations-editor';\nimport {RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNodeManager} from '@anglr/dynamic/relations-editor';\nimport {isPresent, nameof} from '@jscrpt/common';\n\nimport {MetadataHistoryManagerDebug} from '../../services';\nimport {StepNameSAPipe} from '../../pipes';\n\n/**\n * Component used for visualization of relations debugger data\n */\n@Component(\n{\n selector: 'relations-debugger-visualizer',\n templateUrl: 'relationsDebuggerVisualizer.component.html',\n standalone: true,\n imports:\n [\n RelationsCanvasSAComponent,\n StepNameSAPipe,\n ],\n providers:\n [\n RelationsNodeManager,\n <ClassProvider>\n {\n provide: RELATIONS_HISTORY_MANAGER,\n useClass: MetadataHistoryManagerDebug,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RelationsDebuggerVisualizerSAComponent implements OnInit, OnChanges\n{\n //######################### protected properties #########################\n\n /**\n * Interval of running debugging\n */\n protected interval: number|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Playing through debugging steps\n */\n protected playing: boolean = false;\n\n /**\n * Definition of nodes that should be rendered\n */\n protected nodeDefinitions: RelationsNodeMetadata[] = [];\n\n /**\n * Currently displayed step\n */\n protected currentStep: RelationsStepDebugInfo|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Delay between steps during automatic play\n */\n @Input()\n public playDelay: number = 2500;\n\n /**\n * Definition of relations and their nodes, used for rendering canvas\n */\n @Input()\n public relationsDefinition: RelationsNodeMetadata[] = [];\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when user is trying to close visualizer\n */\n @Output()\n public close: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### constructor #########################\n constructor(protected relationsDebugger: RelationsDebugger,\n protected changeDetector: ChangeDetectorRef,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n const step = this.relationsDebugger.getCurrentStep();\n\n this.renderStep(step);\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(nameof<RelationsDebuggerVisualizerSAComponent>('relationsDefinition') in changes)\n {\n this.renderStep(this.currentStep);\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Toggles play mode \n */\n protected togglePlay(): void\n {\n this.playing = !this.playing;\n\n if(isPresent(this.interval))\n {\n clearInterval(this.interval);\n this.interval = null;\n }\n else\n {\n this.interval = setInterval(() =>\n {\n const step = this.relationsDebugger.getNextStep();\n\n if(!step)\n {\n this.togglePlay();\n\n return;\n }\n\n this.processStep(step);\n\n console.log(step, this.relationsDebugger);\n }, this.playDelay) as unknown as number;\n }\n }\n\n /**\n * Shows next step\n */\n protected nextStep(): void\n {\n const step = this.relationsDebugger.getNextStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows previous step\n */\n protected previousStep(): void\n {\n const step = this.relationsDebugger.getPreviousStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows last step\n */\n protected lastStep(): void\n {\n const step = this.relationsDebugger.getLastStep();\n\n this.renderStep(step);\n }\n\n /**\n * Shows first step\n */\n protected firstStep(): void\n {\n const step = this.relationsDebugger.getFirstStep();\n\n this.renderStep(step);\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates current node definition for step\n */\n protected updateNodeDefinitionForStep(): void\n {\n this.nodeDefinitions = this.relationsDefinition\n .map(itm =>\n {\n return {\n ...itm,\n package: 'relations-debugger',\n };\n });\n }\n\n /**\n * Renders current step\n * @param step - Step to be rendered\n */\n protected renderStep(step: RelationsStepDebugInfo|undefined|null): void\n {\n if(!step)\n {\n return;\n }\n\n this.processStep(step);\n }\n\n /**\n * Process step\n * @param step - Step to be processed\n */\n protected processStep(step: RelationsStepDebugInfo): void\n {\n this.updateNodeDefinitionForStep();\n this.currentStep = step;\n\n this.changeDetector.detectChanges();\n }\n}","<div class=\"dynamic-flex-row dynamic-margin-bottom-small\">\n <div class=\"dynamic-flex-row\">\n <div class=\"dynamic-margin-right-small\">{{currentStep?.timestamp}}</div>\n <div class=\"dynamic-margin-right-small\">{{currentStep | stepName}}</div>\n </div>\n\n <div class=\"dynamic-flex-row dynamic-flex-1 dynamic-justify-content-center\">\n <div>\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"firstStep()\">\n <span class=\"fas fa-backward-fast\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"previousStep()\">\n <span class=\"fas fa-backward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"togglePlay()\">\n <span class=\"fas\" [class.fa-play]=\"!playing\" [class.fa-pause]=\"playing\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"nextStep()\">\n <span class=\"fas fa-forward-step\"></span>\n </a>\n\n <a class=\"dynamic-btn-icon dynamic-margin-horizontal-extra-small\" (click)=\"lastStep()\">\n <span class=\"fas fa-forward-fast\"></span>\n </a>\n </div>\n </div>\n\n <a class=\"dynamic-btn-icon dynamic-large-text dynamic-margin-right-extra-small\" (click)=\"close.emit()\">\n <span class=\"fas fa-times\"></span>\n </a>\n</div>\n\n<div class=\"dynamic-flex-row dynamic-flex-1\">\n <relations-canvas [nodeDefinitions]=\"nodeDefinitions\" class=\"dynamic-flex-1\"></relations-canvas>\n</div>\n"]}
@@ -69,13 +69,23 @@ export class DebuggerNodeSAComponent extends RelationsNodeBase {
69
69
  this.readNodesData();
70
70
  }
71
71
  //######################### protected methods #########################
72
+ /**
73
+ * Reads node data for current step
74
+ */
72
75
  readNodesData() {
73
76
  if (!this.metadata) {
74
77
  return;
75
78
  }
79
+ const components = this.relationsDebugger.getCurrentComponents();
80
+ //unregistered
81
+ if (!components[this.metadata.id]) {
82
+ this.element.nativeElement.classList.add('unregistered');
83
+ return;
84
+ }
85
+ this.element.nativeElement.classList.remove('unregistered');
76
86
  this.step = this.relationsDebugger.getCurrentStep();
77
87
  this.state = this.relationsDebugger.getComponentState(this.metadata.id);
78
- this.components = this.relationsDebugger.getCurrentComponents()[this.metadata.id] ?? [];
88
+ this.components = components[this.metadata.id] ?? [];
79
89
  }
80
90
  }
81
91
  DebuggerNodeSAComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DebuggerNodeSAComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerNode.component.js","sourceRoot":"","sources":["../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.ts","../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAY,MAAM,eAAe,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAgE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAClJ,OAAO,EAAgB,iBAAiB,EAAE,4BAA4B,EAAE,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AAC9I,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;;;;AAEnD;;GAEG;AAgBH,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAf9D;;QAiBI,0EAA0E;QAE1E;;WAEG;QACO,sBAAiB,GAAiB,IAAI,YAAY,EAAE,CAAC;QAE/D;;WAEG;QACO,sBAAiB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAS3E;;WAEG;QACO,eAAU,GAAa,EAAE,CAAC;QAOpC;;WAEG;QACO,UAAK,GAAuC,EAAE,CAAC;QAEzD;;WAEG;QACO,mBAAc,GACxB;YACI,QAAQ,EACR;gBACI,SAAS,EAAE,iBAAiB,CAAC,QAAQ;gBACrC,MAAM,EAAE,MAAM;aACjB;YACD,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,4BAA4B;SAChD,CAAC;KAmDL;IAjDG,gFAAgF;IAEhF;;OAEG;IACa,WAAW;QAEvB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACa,UAAU;QAEtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,mFAAmF;IAEnF;;OAEG;IACgB,WAAW;QAE1B,IAAG,CAAC,IAAI,CAAC,QAAQ,EACjB;YACI,OAAO;SACV;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,uEAAuE;IAE7D,aAAa;QAEnB,IAAG,CAAC,IAAI,CAAC,QAAQ,EACjB;YACI,OAAO;SACV;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;;oHAlGQ,uBAAuB;wGAAvB,uBAAuB,gGC3BpC,o9FAuDM,2CDpCE,YAAY,sNACZ,aAAa,mRACb,4BAA4B,gEAC5B,6BAA6B,4DAC7B,mBAAmB;2FAId,uBAAuB;kBAfnC,SAAS;+BAEI,eAAe,cAEb,IAAI,WAEhB;wBACI,YAAY;wBACZ,aAAa;wBACb,4BAA4B;wBAC5B,6BAA6B;wBAC7B,mBAAmB;qBACtB,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {Component, ChangeDetectionStrategy, inject, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PositionPlacement, TooltipModule, TooltipOptions} from '@anglr/common';\nimport {RelationsComponentEndpoints, RelationsComponentStateDebugInfo, RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNode, RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent} from '@anglr/dynamic/relations-editor';\nimport {Subscription} from 'rxjs';\n\nimport {JsonFormattedSAPipe} from '../../../pipes';\n\n/**\n * Relations node component for debugger node\n */\n@Component(\n{\n selector: 'debugger-node',\n templateUrl: 'debuggerNode.component.html',\n standalone: true,\n imports:\n [\n CommonModule,\n TooltipModule,\n RelationNodeInputSAComponent,\n RelationNodeOutputSAComponent,\n JsonFormattedSAPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DebuggerNodeSAComponent extends RelationsNodeBase implements RelationsNode, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Instance of relations debugger\n */\n protected relationsDebugger: RelationsDebugger = inject(RelationsDebugger);\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Instance of component definition\n */\n protected componentDef: RelationsComponentEndpoints|undefined|null;\n\n /**\n * Array of component ids\n */\n protected components: string[] = [];\n\n /**\n * Information about currently displayed step\n */\n protected step: RelationsStepDebugInfo|undefined|null;\n\n /**\n * Current state of all components\n */\n protected state: RelationsComponentStateDebugInfo[] = [];\n\n /**\n * Tooltip options\n */\n protected tooltipOptions: Partial<TooltipOptions> =\n {\n position:\n {\n placement: PositionPlacement.TopStart,\n offset: 'None',\n },\n allowSelection: true,\n tooltipCssClass: 'relations-debugger-tooltip',\n };\n\n //######################### public methods - overrides #########################\n \n /**\n * @inheritdoc\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.initSubscriptions.unsubscribe();\n }\n\n /**\n * @inheritdoc\n */\n public override initialize(): void\n {\n this.initSubscriptions.add(this.relationsDebugger.stepChange.subscribe(() => this.readNodesData()));\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override metadataSet(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.componentDef = this.relationsDebugger.getComponentDef(this.metadata.id);\n this.readNodesData();\n }\n\n //######################### protected methods #########################\n\n protected readNodesData(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.step = this.relationsDebugger.getCurrentStep();\n this.state = this.relationsDebugger.getComponentState(this.metadata.id);\n this.components = this.relationsDebugger.getCurrentComponents()[this.metadata.id] ?? [];\n }\n}","<div class=\"relations-node-header\">\n <div class=\"header-content\" tooltip=\"id: {{metadata?.id}}\">{{metadata?.name}}</div>\n</div>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\" *ngFor=\"let input of componentDef?.inputs\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"input\" [parent]=\"this\"></relation-node-input>\n <div>{{input}}</div>\n </div>\n </div>\n\n <div class=\"outputs\">\n <div class=\"output\" *ngFor=\"let output of componentDef?.outputs\">\n <div>{{output}}</div>\n <relation-node-output [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"output\" [parent]=\"this\"></relation-node-output>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"debugger-node-overlay\" tooltip [tooltipOptions]=\"tooltipOptions\">\n <div *tooltipTemplate class=\"relations-debugger-node-detail dynamic-thin-scrollbar\">\n <div class=\"dynamic-bold\">{{this.metadata?.id}}</div>\n\n <div *ngFor=\"let stat of state\">\n <div class=\"dynamic-semi-bold\">#{{stat.componentInternalId}}</div>\n\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-top-small dynamic-margin-bottom-extra-small\">relations options</div>\n\n <div class=\"formatted-json\">{{metadata?.relationsOptions | jsonFormatted}}</div>\n\n <div class=\"inputs-outputs-grid\">\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">inputs</div>\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">outputs</div>\n\n <div>\n <div *ngFor=\"let input of stat.inputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{input.key}}:</div>\n <div class=\"formatted-json\">{{input.value | jsonFormatted}}</div>\n </div>\n </div>\n\n <div>\n <div *ngFor=\"let output of stat.outputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{output.key}}:</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">assigned:</span> {{output.value.assigned}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">skipInit:</span> {{output.value.skipInit}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">value:</span> <div style=\"white-space: pre-wrap;\">{{output.value.value | jsonFormatted}}</div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"]}
1
+ {"version":3,"file":"debuggerNode.component.js","sourceRoot":"","sources":["../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.ts","../../../../../../relations-debugger/src/dynamicItems/debuggerNode/node/debuggerNode.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, inject, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PositionPlacement, TooltipModule, TooltipOptions} from '@anglr/common';\nimport {RelationsComponentEndpoints, RelationsComponentStateDebugInfo, RelationsDebugger, RelationsStepDebugInfo} from '@anglr/dynamic/relations';\nimport {RelationsNode, RelationsNodeBase, RelationNodeInputSAComponent, RelationNodeOutputSAComponent} from '@anglr/dynamic/relations-editor';\nimport {Subscription} from 'rxjs';\n\nimport {JsonFormattedSAPipe} from '../../../pipes';\n\n/**\n * Relations node component for debugger node\n */\n@Component(\n{\n selector: 'debugger-node',\n templateUrl: 'debuggerNode.component.html',\n standalone: true,\n imports:\n [\n CommonModule,\n TooltipModule,\n RelationNodeInputSAComponent,\n RelationNodeOutputSAComponent,\n JsonFormattedSAPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DebuggerNodeSAComponent extends RelationsNodeBase implements RelationsNode, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Instance of relations debugger\n */\n protected relationsDebugger: RelationsDebugger = inject(RelationsDebugger);\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Instance of component definition\n */\n protected componentDef: RelationsComponentEndpoints|undefined|null;\n\n /**\n * Array of component ids\n */\n protected components: string[] = [];\n\n /**\n * Information about currently displayed step\n */\n protected step: RelationsStepDebugInfo|undefined|null;\n\n /**\n * Current state of all components\n */\n protected state: RelationsComponentStateDebugInfo[] = [];\n\n /**\n * Tooltip options\n */\n protected tooltipOptions: Partial<TooltipOptions> =\n {\n position:\n {\n placement: PositionPlacement.TopStart,\n offset: 'None',\n },\n allowSelection: true,\n tooltipCssClass: 'relations-debugger-tooltip',\n };\n\n //######################### public methods - overrides #########################\n \n /**\n * @inheritdoc\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.initSubscriptions.unsubscribe();\n }\n\n /**\n * @inheritdoc\n */\n public override initialize(): void\n {\n this.initSubscriptions.add(this.relationsDebugger.stepChange.subscribe(() => this.readNodesData()));\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override metadataSet(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n this.componentDef = this.relationsDebugger.getComponentDef(this.metadata.id);\n this.readNodesData();\n }\n\n //######################### protected methods #########################\n\n /**\n * Reads node data for current step\n */\n protected readNodesData(): void\n {\n if(!this.metadata)\n {\n return;\n }\n\n const components = this.relationsDebugger.getCurrentComponents();\n\n //unregistered\n if(!components[this.metadata.id])\n {\n this.element.nativeElement.classList.add('unregistered');\n\n return;\n }\n\n this.element.nativeElement.classList.remove('unregistered');\n this.step = this.relationsDebugger.getCurrentStep();\n this.state = this.relationsDebugger.getComponentState(this.metadata.id);\n this.components = components[this.metadata.id] ?? [];\n }\n}","<div class=\"relations-node-header\">\n <div class=\"header-content\" tooltip=\"id: {{metadata?.id}}\">{{metadata?.name}}</div>\n</div>\n\n<div class=\"node-content\">\n <div class=\"inputs-outputs\">\n <div class=\"inputs\">\n <div class=\"input\" *ngFor=\"let input of componentDef?.inputs\">\n <relation-node-input [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"input\" [parent]=\"this\"></relation-node-input>\n <div>{{input}}</div>\n </div>\n </div>\n\n <div class=\"outputs\">\n <div class=\"output\" *ngFor=\"let output of componentDef?.outputs\">\n <div>{{output}}</div>\n <relation-node-output [parentCoordiantes]=\"nodePosition\" [zoomLevel]=\"zoomLevel\" [name]=\"output\" [parent]=\"this\"></relation-node-output>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"debugger-node-overlay\" tooltip [tooltipOptions]=\"tooltipOptions\">\n <div *tooltipTemplate class=\"relations-debugger-node-detail dynamic-thin-scrollbar\">\n <div class=\"dynamic-bold\">{{this.metadata?.id}}</div>\n\n <div *ngFor=\"let stat of state\">\n <div class=\"dynamic-semi-bold\">#{{stat.componentInternalId}}</div>\n\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-top-small dynamic-margin-bottom-extra-small\">relations options</div>\n\n <div class=\"formatted-json\">{{metadata?.relationsOptions | jsonFormatted}}</div>\n\n <div class=\"inputs-outputs-grid\">\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">inputs</div>\n <div class=\"dynamic-text-uppercase dynamic-bold dynamic-margin-bottom-extra-small\">outputs</div>\n\n <div>\n <div *ngFor=\"let input of stat.inputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{input.key}}:</div>\n <div class=\"formatted-json\">{{input.value | jsonFormatted}}</div>\n </div>\n </div>\n\n <div>\n <div *ngFor=\"let output of stat.outputs | keyvalue\" class=\"dynamic-margin-bottom-extra-small\">\n <div class=\"dynamic-semi-bold\">{{output.key}}:</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">assigned:</span> {{output.value.assigned}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">skipInit:</span> {{output.value.skipInit}}</div>\n <div class=\"dynamic-margin-left-small\"><span class=\"dynamic-semi-bold\">value:</span> <div style=\"white-space: pre-wrap;\">{{output.value.value | jsonFormatted}}</div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anglr/dynamic",
3
- "version": "1.0.0-beta.20230203092613",
3
+ "version": "1.0.0-beta.20230203134405",
4
4
  "description": "Contains code for generating dynamic content from metadata",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1 +1 @@
1
- {"version":3,"file":"relationsDebuggerVisualizer.component.d.ts","sourceRoot":"","sources":["relationsDebuggerVisualizer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,YAAY,EAAgC,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAClK,OAAO,EAA6B,qBAAqB,EAA4B,MAAM,iCAAiC,CAAC;AAC7H,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;;AAOnF;;GAEG;AACH,qBAqBa,sCAAuC,YAAW,MAAM,EAAE,SAAS;IAiDhE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,SAAS,CAAC,cAAc,EAAE,iBAAiB;IA9CvD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI,CAAC;IAI1C;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAM;IAExD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,CAAC;IAI7D;;OAEG;IAEI,SAAS,EAAE,MAAM,CAAQ;IAEhC;;OAEG;IAEI,mBAAmB,EAAE,qBAAqB,EAAE,CAAM;IAIzD;;OAEG;IAEI,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAA4B;gBAGtC,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,iBAAiB;IAMvD;;OAEG;IACI,QAAQ,IAAI,IAAI;IASvB;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAUhD;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IA6B5B;;OAEG;IACH,SAAS,CAAC,QAAQ,IAAI,IAAI;IAO1B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAO9B;;OAEG;IACH,SAAS,CAAC,QAAQ,IAAI,IAAI;IAO1B;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAS3B;;OAEG;IACH,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAgB7C;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,GAAG,IAAI;IAUvE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;yCAhMhD,sCAAsC;2CAAtC,sCAAsC;CAuMlD"}
1
+ {"version":3,"file":"relationsDebuggerVisualizer.component.d.ts","sourceRoot":"","sources":["relationsDebuggerVisualizer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,YAAY,EAAgC,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAClK,OAAO,EAA6B,qBAAqB,EAA4B,MAAM,iCAAiC,CAAC;AAC7H,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;;AAOnF;;GAEG;AACH,qBAqBa,sCAAuC,YAAW,MAAM,EAAE,SAAS;IAiDhE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,SAAS,CAAC,cAAc,EAAE,iBAAiB;IA9CvD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI,CAAC;IAI1C;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAM;IAExD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,CAAC;IAI7D;;OAEG;IAEI,SAAS,EAAE,MAAM,CAAQ;IAEhC;;OAEG;IAEI,mBAAmB,EAAE,qBAAqB,EAAE,CAAM;IAIzD;;OAEG;IAEI,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAA4B;gBAGtC,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,iBAAiB;IAMvD;;OAEG;IACI,QAAQ,IAAI,IAAI;IASvB;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAUhD;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IA6B5B;;OAEG;IACH,SAAS,CAAC,QAAQ,IAAI,IAAI;IAO1B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAO9B;;OAEG;IACH,SAAS,CAAC,QAAQ,IAAI,IAAI;IAO1B;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAS3B;;OAEG;IACH,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAY7C;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,GAAG,IAAI;IAUvE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;yCA5LhD,sCAAsC;2CAAtC,sCAAsC;CAmMlD"}
@@ -48,6 +48,9 @@ export declare class DebuggerNodeSAComponent extends RelationsNodeBase implement
48
48
  * @inheritdoc
49
49
  */
50
50
  protected metadataSet(): void;
51
+ /**
52
+ * Reads node data for current step
53
+ */
51
54
  protected readNodesData(): void;
52
55
  static ɵfac: i0.ɵɵFactoryDeclaration<DebuggerNodeSAComponent, never>;
53
56
  static ɵcmp: i0.ɵɵComponentDeclaration<DebuggerNodeSAComponent, "debugger-node", never, {}, {}, never, never, true, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerNode.component.d.ts","sourceRoot":"","sources":["debuggerNode.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAmC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAClJ,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAA8D,MAAM,iCAAiC,CAAC;AAC9I,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;;AAIlC;;GAEG;AACH,qBAea,uBAAwB,SAAQ,iBAAkB,YAAW,aAAa,EAAE,SAAS;IAI9F;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,YAAY,CAAsB;IAE/D;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAA6B;IAI3E;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,2BAA2B,GAAC,SAAS,GAAC,IAAI,CAAC;IAEnE;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,CAAC;IAEtD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,gCAAgC,EAAE,CAAM;IAEzD;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAS/C;IAIF;;OAEG;IACa,WAAW,IAAI,IAAI;IAOnC;;OAEG;IACa,UAAU,IAAI,IAAI;IAOlC;;OAEG;cACgB,WAAW,IAAI,IAAI;IAatC,SAAS,CAAC,aAAa,IAAI,IAAI;yCAxFtB,uBAAuB;2CAAvB,uBAAuB;CAmGnC"}
1
+ {"version":3,"file":"debuggerNode.component.d.ts","sourceRoot":"","sources":["debuggerNode.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAmC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAClJ,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAA8D,MAAM,iCAAiC,CAAC;AAC9I,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;;AAIlC;;GAEG;AACH,qBAea,uBAAwB,SAAQ,iBAAkB,YAAW,aAAa,EAAE,SAAS;IAI9F;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,YAAY,CAAsB;IAE/D;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAA6B;IAI3E;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,2BAA2B,GAAC,SAAS,GAAC,IAAI,CAAC;IAEnE;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,sBAAsB,GAAC,SAAS,GAAC,IAAI,CAAC;IAEtD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,gCAAgC,EAAE,CAAM;IAEzD;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAS/C;IAIF;;OAEG;IACa,WAAW,IAAI,IAAI;IAOnC;;OAEG;IACa,UAAU,IAAI,IAAI;IAOlC;;OAEG;cACgB,WAAW,IAAI,IAAI;IAatC;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;yCA3FtB,uBAAuB;2CAAvB,uBAAuB;CAiHnC"}
@@ -31,6 +31,11 @@
31
31
  -moz-box-shadow: 0px 5px 5px -3px var(--dynamic-relations-canvas-relations-node-shadow1),0px 8px 10px 1px var(--dynamic-relations-canvas-relations-node-shadow2),0px 3px 14px 2px var(--dynamic-relations-canvas-relations-node-shadow3);
32
32
  box-shadow: 0px 5px 5px -3px var(--dynamic-relations-canvas-relations-node-shadow1),0px 8px 10px 1px var(--dynamic-relations-canvas-relations-node-shadow2),0px 3px 14px 2px var(--dynamic-relations-canvas-relations-node-shadow3);
33
33
 
34
+ &.unregistered
35
+ {
36
+ opacity: 0.3;
37
+ }
38
+
34
39
  relations-node-header,
35
40
  .relations-node-header,
36
41
  .node-content
package/version.bak CHANGED
@@ -1 +1 @@
1
- 1.0.0-beta.20230203092613
1
+ 1.0.0-beta.20230203134405