@ng-prism/core 21.4.4 → 21.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +1 -1
  2. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +16 -0
  3. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -0
  4. package/dist/app/canvas/prism-canvas-rulers.component.js +177 -0
  5. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +14 -0
  6. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -0
  7. package/dist/app/canvas/prism-canvas-toolbar.component.js +144 -0
  8. package/dist/app/canvas/prism-code-drawer.component.d.ts +12 -0
  9. package/dist/app/canvas/prism-code-drawer.component.d.ts.map +1 -0
  10. package/dist/app/canvas/prism-code-drawer.component.js +114 -0
  11. package/dist/app/component-head/prism-component-head.component.d.ts +15 -0
  12. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -0
  13. package/dist/app/component-head/prism-component-head.component.js +207 -0
  14. package/dist/app/component-head/prism-stat.component.d.ts +10 -0
  15. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -0
  16. package/dist/app/component-head/prism-stat.component.js +52 -0
  17. package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
  18. package/dist/app/controls/boolean-control.component.js +16 -44
  19. package/dist/app/controls/json-control.component.d.ts.map +1 -1
  20. package/dist/app/controls/json-control.component.js +33 -54
  21. package/dist/app/controls/number-control.component.d.ts.map +1 -1
  22. package/dist/app/controls/number-control.component.js +18 -35
  23. package/dist/app/controls/string-control.component.d.ts.map +1 -1
  24. package/dist/app/controls/string-control.component.js +14 -41
  25. package/dist/app/controls/union-control.component.d.ts.map +1 -1
  26. package/dist/app/controls/union-control.component.js +26 -50
  27. package/dist/app/directives/prism-resizer.directive.d.ts +14 -0
  28. package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -0
  29. package/dist/app/directives/prism-resizer.directive.js +71 -0
  30. package/dist/app/header/prism-header.component.d.ts +3 -0
  31. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  32. package/dist/app/header/prism-header.component.js +91 -215
  33. package/dist/app/icons/prism-icon.component.d.ts +10 -0
  34. package/dist/app/icons/prism-icon.component.d.ts.map +1 -0
  35. package/dist/app/icons/prism-icon.component.js +64 -0
  36. package/dist/app/index.d.ts +4 -3
  37. package/dist/app/index.d.ts.map +1 -1
  38. package/dist/app/index.js +4 -3
  39. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  40. package/dist/app/layout-menu/prism-layout-menu.component.js +63 -69
  41. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
  42. package/dist/app/panels/a11y/a11y-core.plugin.js +1 -0
  43. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
  44. package/dist/app/panels/a11y/a11y-keyboard.component.js +61 -100
  45. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +4 -0
  46. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  47. package/dist/app/panels/a11y/a11y-overlay-host.component.js +87 -11
  48. package/dist/app/panels/a11y/a11y-panel.component.d.ts +0 -2
  49. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  50. package/dist/app/panels/a11y/a11y-panel.component.js +70 -85
  51. package/dist/app/panels/a11y/a11y-score.component.d.ts +2 -1
  52. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  53. package/dist/app/panels/a11y/a11y-score.component.js +55 -49
  54. package/dist/app/panels/a11y/a11y-sr.component.d.ts +1 -9
  55. package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
  56. package/dist/app/panels/a11y/a11y-sr.component.js +60 -208
  57. package/dist/app/panels/a11y/a11y-tree.component.d.ts +2 -4
  58. package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
  59. package/dist/app/panels/a11y/a11y-tree.component.js +92 -137
  60. package/dist/app/panels/a11y/a11y-violations.component.d.ts +2 -6
  61. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  62. package/dist/app/panels/a11y/a11y-violations.component.js +126 -373
  63. package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -1
  64. package/dist/app/panels/controls/controls-plugin.js +1 -0
  65. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  66. package/dist/app/panels/controls/prism-controls-panel.component.js +96 -88
  67. package/dist/app/panels/events/events-plugin.d.ts.map +1 -1
  68. package/dist/app/panels/events/events-plugin.js +1 -0
  69. package/dist/app/panels/events/prism-events-panel.component.d.ts +1 -0
  70. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  71. package/dist/app/panels/events/prism-events-panel.component.js +44 -46
  72. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +7 -2
  73. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  74. package/dist/app/panels/panel-host/prism-panel-host.component.js +102 -42
  75. package/dist/app/renderer/prism-renderer.component.d.ts +5 -6
  76. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  77. package/dist/app/renderer/prism-renderer.component.js +84 -150
  78. package/dist/app/services/prism-canvas.service.d.ts +18 -0
  79. package/dist/app/services/prism-canvas.service.d.ts.map +1 -0
  80. package/dist/app/services/prism-canvas.service.js +63 -0
  81. package/dist/app/services/prism-theme.service.d.ts +13 -1
  82. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  83. package/dist/app/services/prism-theme.service.js +56 -9
  84. package/dist/app/shell/prism-shell.component.d.ts +1 -2
  85. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  86. package/dist/app/shell/prism-shell.component.js +189 -178
  87. package/dist/app/sidebar/prism-sidebar.component.d.ts +16 -10
  88. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  89. package/dist/app/sidebar/prism-sidebar.component.js +318 -204
  90. package/dist/app/theme/prism-default-theme.d.ts +1 -0
  91. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  92. package/dist/app/theme/prism-default-theme.js +53 -34
  93. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +13 -0
  94. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -0
  95. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +134 -0
  96. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  97. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +15 -11
  98. package/dist/decorator/showcase.decorator.d.ts +1 -3
  99. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  100. package/dist/decorator/showcase.decorator.js +2 -6
  101. package/dist/plugin/plugin.types.d.ts +1 -0
  102. package/dist/plugin/plugin.types.d.ts.map +1 -1
  103. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  104. package/dist/schematics/ng-add/index.js +2 -1
  105. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"controls-plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/controls-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,eAAe,EAAE,aAU7B,CAAC"}
1
+ {"version":3,"file":"controls-plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/controls-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,eAAe,EAAE,aAW7B,CAAC"}
@@ -5,6 +5,7 @@ export const CONTROLS_PLUGIN = {
5
5
  {
6
6
  id: 'controls',
7
7
  label: 'Controls',
8
+ icon: 'sliders-horizontal',
8
9
  component: PrismControlsPanelComponent,
9
10
  position: 'bottom',
10
11
  },
@@ -1 +1 @@
1
- {"version":3,"file":"prism-controls-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/prism-controls-panel.component.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBAiGa,2BAA2B;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI;IAItE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI1C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAIxC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;yCAjB7B,2BAA2B;2CAA3B,2BAA2B;CAoBvC"}
1
+ {"version":3,"file":"prism-controls-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/prism-controls-panel.component.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBA2Ha,2BAA2B;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI;IAOtE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI1C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAIxC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;yCApB7B,2BAA2B;2CAA3B,2BAA2B;CAuBvC"}
@@ -1,5 +1,5 @@
1
1
  import { NgComponentOutlet } from '@angular/common';
2
- import { Component, inject } from '@angular/core';
2
+ import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
3
3
  import { BooleanControlComponent } from '../../controls/boolean-control.component.js';
4
4
  import { JsonControlComponent } from '../../controls/json-control.component.js';
5
5
  import { NumberControlComponent } from '../../controls/number-control.component.js';
@@ -19,66 +19,79 @@ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_1_Template(
19
19
  const ctx_r1 = i0.ɵɵnextContext(2);
20
20
  i0.ɵɵproperty("ngComponentOutlet", ctx.component)("ngComponentOutletInputs", i0.ɵɵpureFunction2(2, _c0, input_r1, ctx_r1.rendererService));
21
21
  } }
22
- function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_0_Template(rf, ctx) { if (rf & 1) {
22
+ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_7_Template(rf, ctx) { if (rf & 1) {
23
23
  const _r3 = i0.ɵɵgetCurrentView();
24
- i0.ɵɵelementStart(0, "prism-boolean-control", 6);
25
- i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_0_Template_prism_boolean_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
24
+ i0.ɵɵelementStart(0, "prism-boolean-control", 10);
25
+ i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_7_Template_prism_boolean_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
26
26
  i0.ɵɵelementEnd();
27
27
  } if (rf & 2) {
28
28
  const input_r1 = i0.ɵɵnextContext(2).$implicit;
29
29
  const ctx_r1 = i0.ɵɵnextContext(2);
30
- i0.ɵɵproperty("value", ctx_r1.asBoolean(ctx_r1.rendererService.inputValues()[input_r1.name]))("label", input_r1.name)("typeName", input_r1.rawType ?? "");
30
+ i0.ɵɵproperty("value", ctx_r1.asBoolean(ctx_r1.rendererService.inputValues()[input_r1.name]));
31
31
  } }
32
- function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_1_Template(rf, ctx) { if (rf & 1) {
32
+ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_8_Template(rf, ctx) { if (rf & 1) {
33
33
  const _r4 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "prism-number-control", 6);
35
- i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_1_Template_prism_number_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
34
+ i0.ɵɵelementStart(0, "prism-number-control", 10);
35
+ i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_8_Template_prism_number_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
36
36
  i0.ɵɵelementEnd();
37
37
  } if (rf & 2) {
38
38
  const input_r1 = i0.ɵɵnextContext(2).$implicit;
39
39
  const ctx_r1 = i0.ɵɵnextContext(2);
40
- i0.ɵɵproperty("value", ctx_r1.asNumber(ctx_r1.rendererService.inputValues()[input_r1.name]))("label", input_r1.name)("typeName", input_r1.rawType ?? "");
40
+ i0.ɵɵproperty("value", ctx_r1.asNumber(ctx_r1.rendererService.inputValues()[input_r1.name]));
41
41
  } }
42
- function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_2_Template(rf, ctx) { if (rf & 1) {
42
+ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_9_Template(rf, ctx) { if (rf & 1) {
43
43
  const _r5 = i0.ɵɵgetCurrentView();
44
- i0.ɵɵelementStart(0, "prism-union-control", 7);
45
- i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_2_Template_prism_union_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
44
+ i0.ɵɵelementStart(0, "prism-union-control", 11);
45
+ i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_9_Template_prism_union_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
46
46
  i0.ɵɵelementEnd();
47
47
  } if (rf & 2) {
48
48
  const input_r1 = i0.ɵɵnextContext(2).$implicit;
49
49
  const ctx_r1 = i0.ɵɵnextContext(2);
50
- i0.ɵɵproperty("value", ctx_r1.asString(ctx_r1.rendererService.inputValues()[input_r1.name]))("label", input_r1.name)("typeName", input_r1.rawType ?? "")("options", input_r1.values ?? i0.ɵɵpureFunction0(4, _c1));
50
+ i0.ɵɵproperty("value", ctx_r1.asString(ctx_r1.rendererService.inputValues()[input_r1.name]))("options", input_r1.values ?? i0.ɵɵpureFunction0(2, _c1));
51
51
  } }
52
- function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_3_Template(rf, ctx) { if (rf & 1) {
52
+ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_10_Template(rf, ctx) { if (rf & 1) {
53
53
  const _r6 = i0.ɵɵgetCurrentView();
54
- i0.ɵɵelementStart(0, "prism-string-control", 6);
55
- i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_3_Template_prism_string_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
54
+ i0.ɵɵelementStart(0, "prism-string-control", 10);
55
+ i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_10_Template_prism_string_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
56
56
  i0.ɵɵelementEnd();
57
57
  } if (rf & 2) {
58
58
  const input_r1 = i0.ɵɵnextContext(2).$implicit;
59
59
  const ctx_r1 = i0.ɵɵnextContext(2);
60
- i0.ɵɵproperty("value", ctx_r1.asString(ctx_r1.rendererService.inputValues()[input_r1.name]))("label", input_r1.name)("typeName", input_r1.rawType ?? "");
60
+ i0.ɵɵproperty("value", ctx_r1.asString(ctx_r1.rendererService.inputValues()[input_r1.name]));
61
61
  } }
62
- function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_4_Template(rf, ctx) { if (rf & 1) {
62
+ function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_11_Template(rf, ctx) { if (rf & 1) {
63
63
  const _r7 = i0.ɵɵgetCurrentView();
64
- i0.ɵɵelementStart(0, "prism-json-control", 6);
65
- i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_4_Template_prism_json_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
64
+ i0.ɵɵelementStart(0, "prism-json-control", 10);
65
+ i0.ɵɵlistener("valueChange", function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_11_Template_prism_json_control_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const input_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.rendererService.updateInput(input_r1.name, $event)); });
66
66
  i0.ɵɵelementEnd();
67
67
  } if (rf & 2) {
68
68
  const input_r1 = i0.ɵɵnextContext(2).$implicit;
69
69
  const ctx_r1 = i0.ɵɵnextContext(2);
70
- i0.ɵɵproperty("value", ctx_r1.rendererService.inputValues()[input_r1.name])("label", input_r1.name)("typeName", input_r1.rawType ?? "");
70
+ i0.ɵɵproperty("value", ctx_r1.rendererService.inputValues()[input_r1.name]);
71
71
  } }
72
72
  function PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵconditionalCreate(0, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_0_Template, 1, 3, "prism-boolean-control", 4)(1, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_1_Template, 1, 3, "prism-number-control", 4)(2, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_2_Template, 1, 5, "prism-union-control", 5)(3, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_3_Template, 1, 3, "prism-string-control", 4)(4, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_4_Template, 1, 3, "prism-json-control", 4);
73
+ i0.ɵɵelementStart(0, "div", 4)(1, "span", 5);
74
+ i0.ɵɵtext(2);
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementStart(3, "span", 6)(4, "b");
77
+ i0.ɵɵtext(5);
78
+ i0.ɵɵelementEnd()()();
79
+ i0.ɵɵelementStart(6, "div", 7);
80
+ i0.ɵɵconditionalCreate(7, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_7_Template, 1, 1, "prism-boolean-control", 8)(8, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_8_Template, 1, 1, "prism-number-control", 8)(9, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_9_Template, 1, 3, "prism-union-control", 9)(10, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_10_Template, 1, 1, "prism-string-control", 8)(11, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Case_11_Template, 1, 1, "prism-json-control", 8);
81
+ i0.ɵɵelementEnd();
74
82
  } if (rf & 2) {
75
- let tmp_13_0;
83
+ let tmp_15_0;
76
84
  const input_r1 = i0.ɵɵnextContext().$implicit;
77
- i0.ɵɵconditional((tmp_13_0 = input_r1.type) === "boolean" ? 0 : tmp_13_0 === "number" ? 1 : tmp_13_0 === "union" ? 2 : tmp_13_0 === "string" ? 3 : 4);
85
+ i0.ɵɵadvance(2);
86
+ i0.ɵɵtextInterpolate(input_r1.name);
87
+ i0.ɵɵadvance(3);
88
+ i0.ɵɵtextInterpolate(input_r1.rawType ?? input_r1.type);
89
+ i0.ɵɵadvance(2);
90
+ i0.ɵɵconditional((tmp_15_0 = input_r1.type) === "boolean" ? 7 : tmp_15_0 === "number" ? 8 : tmp_15_0 === "union" ? 9 : tmp_15_0 === "string" ? 10 : 11);
78
91
  } }
79
92
  function PrismControlsPanelComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
80
93
  i0.ɵɵelementStart(0, "div", 1);
81
- i0.ɵɵconditionalCreate(1, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_1_Template, 1, 5, "ng-container", 3)(2, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Template, 5, 1);
94
+ i0.ɵɵconditionalCreate(1, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_1_Template, 1, 5, "ng-container", 3)(2, PrismControlsPanelComponent_Conditional_0_For_2_Conditional_2_Template, 12, 3);
82
95
  i0.ɵɵelementEnd();
83
96
  } if (rf & 2) {
84
97
  let tmp_12_0;
@@ -109,7 +122,8 @@ export class PrismControlsPanelComponent {
109
122
  rendererService = inject(PrismRendererService);
110
123
  pluginService = inject(PrismPluginService);
111
124
  getCustomControl(input) {
112
- return this.pluginService.controls().find((ctrl) => ctrl.matchType(input)) ?? null;
125
+ return (this.pluginService.controls().find((ctrl) => ctrl.matchType(input)) ??
126
+ null);
113
127
  }
114
128
  asBoolean(val) {
115
129
  return Boolean(val);
@@ -121,7 +135,7 @@ export class PrismControlsPanelComponent {
121
135
  return String(val ?? '');
122
136
  }
123
137
  static ɵfac = function PrismControlsPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismControlsPanelComponent)(); };
124
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismControlsPanelComponent, selectors: [["prism-controls-panel"]], decls: 1, vars: 1, consts: [[1, "prism-controls-panel"], [1, "prism-controls-panel__row"], [1, "prism-controls-panel__empty"], [3, "ngComponentOutlet", "ngComponentOutletInputs"], [3, "value", "label", "typeName"], [3, "value", "label", "typeName", "options"], [3, "valueChange", "value", "label", "typeName"], [3, "valueChange", "value", "label", "typeName", "options"]], template: function PrismControlsPanelComponent_Template(rf, ctx) { if (rf & 1) {
138
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismControlsPanelComponent, selectors: [["prism-controls-panel"]], decls: 1, vars: 1, consts: [[1, "ctl-panel"], [1, "ctl-row"], [1, "ctl-empty"], [3, "ngComponentOutlet", "ngComponentOutletInputs"], [1, "ctl-label"], [1, "ctl-name"], [1, "ctl-type"], [1, "ctl-input"], [3, "value"], [3, "value", "options"], [3, "valueChange", "value"], [3, "valueChange", "value", "options"]], template: function PrismControlsPanelComponent_Template(rf, ctx) { if (rf & 1) {
125
139
  i0.ɵɵconditionalCreate(0, PrismControlsPanelComponent_Conditional_0_Template, 4, 1, "div", 0);
126
140
  } if (rf & 2) {
127
141
  let tmp_0_0;
@@ -131,11 +145,11 @@ export class PrismControlsPanelComponent {
131
145
  StringControlComponent,
132
146
  NumberControlComponent,
133
147
  UnionControlComponent,
134
- JsonControlComponent], styles: [".prism-controls-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n height: 100%;\n }\n\n .prism-controls-panel__row[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-controls-panel__row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n\n .prism-controls-panel__empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n font-family: var(--prism-font-sans);\n margin: 0;\n padding: 16px;\n }"] });
148
+ JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"], changeDetection: 0 });
135
149
  }
136
150
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismControlsPanelComponent, [{
137
151
  type: Component,
138
- args: [{ selector: 'prism-controls-panel', standalone: true, imports: [
152
+ args: [{ selector: 'prism-controls-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
139
153
  NgComponentOutlet,
140
154
  BooleanControlComponent,
141
155
  StringControlComponent,
@@ -144,66 +158,60 @@ export class PrismControlsPanelComponent {
144
158
  JsonControlComponent,
145
159
  ], template: `
146
160
  @if (navigationService.activeComponent(); as comp) {
147
- <div class="prism-controls-panel">
148
- @for (input of comp.meta.inputs; track input.name) {
149
- <div class="prism-controls-panel__row">
150
- @if (getCustomControl(input); as customCtrl) {
151
- <ng-container
152
- [ngComponentOutlet]="customCtrl.component"
153
- [ngComponentOutletInputs]="{ inputMeta: input, rendererService: rendererService }"
154
- />
155
- } @else {
156
- @switch (input.type) {
157
- @case ('boolean') {
158
- <prism-boolean-control
159
- [value]="asBoolean(rendererService.inputValues()[input.name])"
160
- [label]="input.name"
161
- [typeName]="input.rawType ?? ''"
162
- (valueChange)="rendererService.updateInput(input.name, $event)"
163
- />
164
- }
165
- @case ('number') {
166
- <prism-number-control
167
- [value]="asNumber(rendererService.inputValues()[input.name])"
168
- [label]="input.name"
169
- [typeName]="input.rawType ?? ''"
170
- (valueChange)="rendererService.updateInput(input.name, $event)"
171
- />
172
- }
173
- @case ('union') {
174
- <prism-union-control
175
- [value]="asString(rendererService.inputValues()[input.name])"
176
- [label]="input.name"
177
- [typeName]="input.rawType ?? ''"
178
- [options]="input.values ?? []"
179
- (valueChange)="rendererService.updateInput(input.name, $event)"
180
- />
181
- }
182
- @case ('string') {
183
- <prism-string-control
184
- [value]="asString(rendererService.inputValues()[input.name])"
185
- [label]="input.name"
186
- [typeName]="input.rawType ?? ''"
187
- (valueChange)="rendererService.updateInput(input.name, $event)"
188
- />
189
- }
190
- @default {
191
- <prism-json-control
192
- [value]="rendererService.inputValues()[input.name]"
193
- [label]="input.name"
194
- [typeName]="input.rawType ?? ''"
195
- (valueChange)="rendererService.updateInput(input.name, $event)"
196
- />
197
- }
198
- }
199
- }
200
- </div>
201
- }
202
- @if (comp.meta.inputs.length === 0) {
203
- <p class="prism-controls-panel__empty">No inputs available</p>
161
+ <div class="ctl-panel">
162
+ @for (input of comp.meta.inputs; track input.name) {
163
+ <div class="ctl-row">
164
+ @if (getCustomControl(input); as customCtrl) {
165
+ <ng-container
166
+ [ngComponentOutlet]="customCtrl.component"
167
+ [ngComponentOutletInputs]="{
168
+ inputMeta: input,
169
+ rendererService: rendererService
170
+ }"
171
+ />
172
+ } @else {
173
+ <div class="ctl-label">
174
+ <span class="ctl-name">{{ input.name }}</span>
175
+ <span class="ctl-type"
176
+ ><b>{{ input.rawType ?? input.type }}</b></span
177
+ >
178
+ </div>
179
+ <div class="ctl-input">
180
+ @switch (input.type) { @case ('boolean') {
181
+ <prism-boolean-control
182
+ [value]="asBoolean(rendererService.inputValues()[input.name])"
183
+ (valueChange)="rendererService.updateInput(input.name, $event)"
184
+ />
185
+ } @case ('number') {
186
+ <prism-number-control
187
+ [value]="asNumber(rendererService.inputValues()[input.name])"
188
+ (valueChange)="rendererService.updateInput(input.name, $event)"
189
+ />
190
+ } @case ('union') {
191
+ <prism-union-control
192
+ [value]="asString(rendererService.inputValues()[input.name])"
193
+ [options]="input.values ?? []"
194
+ (valueChange)="rendererService.updateInput(input.name, $event)"
195
+ />
196
+ } @case ('string') {
197
+ <prism-string-control
198
+ [value]="asString(rendererService.inputValues()[input.name])"
199
+ (valueChange)="rendererService.updateInput(input.name, $event)"
200
+ />
201
+ } @default {
202
+ <prism-json-control
203
+ [value]="rendererService.inputValues()[input.name]"
204
+ (valueChange)="rendererService.updateInput(input.name, $event)"
205
+ />
206
+ } }
207
+ </div>
204
208
  }
205
209
  </div>
210
+ } @if (comp.meta.inputs.length === 0) {
211
+ <p class="ctl-empty">No inputs available</p>
212
+ }
213
+ </div>
206
214
  }
207
- `, styles: ["\n .prism-controls-panel {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n height: 100%;\n }\n\n .prism-controls-panel__row {\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-controls-panel__row:last-child { border-bottom: none; }\n\n .prism-controls-panel__empty {\n color: var(--prism-text-ghost);\n font-size: 13px;\n font-family: var(--prism-font-sans);\n margin: 0;\n padding: 16px;\n }\n "] }]
215
+ `, styles: ["\n .ctl-panel {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-row {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type b {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }\n "] }]
208
216
  }], null, null); })();
209
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismControlsPanelComponent, { className: "PrismControlsPanelComponent", filePath: "app/panels/controls/prism-controls-panel.component.ts", lineNumber: 110 }); })();
217
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismControlsPanelComponent, { className: "PrismControlsPanelComponent", filePath: "app/panels/controls/prism-controls-panel.component.ts", lineNumber: 139 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"events-plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/events-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,aAAa,EAAE,aAU3B,CAAC"}
1
+ {"version":3,"file":"events-plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/events-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC"}
@@ -5,6 +5,7 @@ export const EVENTS_PLUGIN = {
5
5
  {
6
6
  id: 'events',
7
7
  label: 'Events',
8
+ icon: 'zap',
8
9
  component: PrismEventsPanelComponent,
9
10
  position: 'bottom',
10
11
  },
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class PrismEventsPanelComponent {
4
4
  protected readonly eventLogService: PrismEventLogService;
5
5
  protected formatTime(ts: number): string;
6
+ protected padIdx(n: number): string;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismEventsPanelComponent, never>;
7
8
  static ɵcmp: i0.ɵɵComponentDeclaration<PrismEventsPanelComponent, "prism-events-panel", never, {}, {}, never, never, true, never>;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prism-events-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-events-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;;AAGjF,qBAkGa,yBAAyB;IACpC,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAElE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;yCAH7B,yBAAyB;2CAAzB,yBAAyB;CAOrC"}
1
+ {"version":3,"file":"prism-events-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-events-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;;AAGjF,qBA+Ea,yBAAyB;IACpC,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAElE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAQxC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;yCAXxB,yBAAyB;2CAAzB,yBAAyB;CAcrC"}
@@ -1,30 +1,36 @@
1
- import { Component, inject } from '@angular/core';
1
+ import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { PrismEventLogService } from '../../services/prism-event-log.service.js';
3
3
  import { PrismJsonNodeComponent } from './prism-json-node.component.js';
4
4
  import * as i0 from "@angular/core";
5
5
  const _forTrack0 = ($index, $item) => $item.id;
6
- function PrismEventsPanelComponent_For_8_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelementStart(0, "div", 5)(1, "span", 7);
6
+ function PrismEventsPanelComponent_For_3_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵelementStart(0, "div", 2)(1, "span", 4);
8
8
  i0.ɵɵtext(2);
9
9
  i0.ɵɵelementEnd();
10
- i0.ɵɵelementStart(3, "span", 8);
10
+ i0.ɵɵelementStart(3, "span", 5);
11
11
  i0.ɵɵtext(4);
12
12
  i0.ɵɵelementEnd();
13
- i0.ɵɵelementStart(5, "span", 9);
14
- i0.ɵɵelement(6, "prism-json-node", 10);
13
+ i0.ɵɵelementStart(5, "span", 6);
14
+ i0.ɵɵtext(6);
15
+ i0.ɵɵelementEnd();
16
+ i0.ɵɵelementStart(7, "span", 7);
17
+ i0.ɵɵelement(8, "prism-json-node", 8);
15
18
  i0.ɵɵelementEnd()();
16
19
  } if (rf & 2) {
17
20
  const entry_r1 = ctx.$implicit;
18
- const ctx_r1 = i0.ɵɵnextContext();
21
+ const ɵ$index_5_r2 = ctx.$index;
22
+ const ctx_r2 = i0.ɵɵnextContext();
23
+ i0.ɵɵadvance(2);
24
+ i0.ɵɵtextInterpolate(ctx_r2.formatTime(entry_r1.timestamp));
19
25
  i0.ɵɵadvance(2);
20
- i0.ɵɵtextInterpolate(ctx_r1.formatTime(entry_r1.timestamp));
26
+ i0.ɵɵtextInterpolate1("#", ctx_r2.padIdx(ctx_r2.eventLogService.events().length - ɵ$index_5_r2));
21
27
  i0.ɵɵadvance(2);
22
28
  i0.ɵɵtextInterpolate(entry_r1.name);
23
29
  i0.ɵɵadvance(2);
24
30
  i0.ɵɵproperty("value", entry_r1.value);
25
31
  } }
26
- function PrismEventsPanelComponent_ForEmpty_9_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelementStart(0, "p", 6);
32
+ function PrismEventsPanelComponent_ForEmpty_4_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelementStart(0, "p", 3);
28
34
  i0.ɵɵtext(1, "No events recorded");
29
35
  i0.ɵɵelementEnd();
30
36
  } }
@@ -32,52 +38,44 @@ export class PrismEventsPanelComponent {
32
38
  eventLogService = inject(PrismEventLogService);
33
39
  formatTime(ts) {
34
40
  const d = new Date(ts);
35
- return d.toLocaleTimeString('en-US', { hour12: false, fractionalSecondDigits: 3 });
41
+ return d.toLocaleTimeString('en-US', {
42
+ hour12: false,
43
+ fractionalSecondDigits: 3,
44
+ });
45
+ }
46
+ padIdx(n) {
47
+ return String(n).padStart(3, '0');
36
48
  }
37
49
  static ɵfac = function PrismEventsPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismEventsPanelComponent)(); };
38
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismEventsPanelComponent, selectors: [["prism-events-panel"]], decls: 10, vars: 1, consts: [[1, "prism-events-panel"], [1, "prism-events-panel__header"], [1, "prism-events-panel__title"], [1, "prism-events-panel__clear", 3, "click"], [1, "prism-events-panel__list"], [1, "prism-events-panel__entry"], [1, "prism-events-panel__empty"], [1, "prism-events-panel__time"], [1, "prism-events-panel__name"], [1, "prism-events-panel__value"], [3, "value"]], template: function PrismEventsPanelComponent_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "span", 2);
40
- i0.ɵɵtext(3, "Events");
41
- i0.ɵɵelementEnd();
42
- i0.ɵɵelementStart(4, "button", 3);
43
- i0.ɵɵlistener("click", function PrismEventsPanelComponent_Template_button_click_4_listener() { return ctx.eventLogService.clear(); });
44
- i0.ɵɵtext(5, " Clear ");
45
- i0.ɵɵelementEnd()();
46
- i0.ɵɵelementStart(6, "div", 4);
47
- i0.ɵɵrepeaterCreate(7, PrismEventsPanelComponent_For_8_Template, 7, 3, "div", 5, _forTrack0, false, PrismEventsPanelComponent_ForEmpty_9_Template, 2, 0, "p", 6);
50
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismEventsPanelComponent, selectors: [["prism-events-panel"]], decls: 5, vars: 1, consts: [[1, "ev-panel"], [1, "ev-body"], [1, "ev"], [1, "ev-empty"], [1, "ev-time"], [1, "ev-idx"], [1, "ev-name"], [1, "ev-args"], [3, "value"]], template: function PrismEventsPanelComponent_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
52
+ i0.ɵɵrepeaterCreate(2, PrismEventsPanelComponent_For_3_Template, 9, 4, "div", 2, _forTrack0, false, PrismEventsPanelComponent_ForEmpty_4_Template, 2, 0, "p", 3);
48
53
  i0.ɵɵelementEnd()();
49
54
  } if (rf & 2) {
50
- i0.ɵɵadvance(7);
55
+ i0.ɵɵadvance(2);
51
56
  i0.ɵɵrepeater(ctx.eventLogService.events());
52
- } }, dependencies: [PrismJsonNodeComponent], styles: [".prism-events-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n .prism-events-panel__header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-events-panel__title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n .prism-events-panel__clear[_ngcontent-%COMP%] {\n padding: 2px 8px;\n font-size: 12px;\n border: 1px solid var(--prism-border);\n border-radius: var(--prism-radius-sm);\n background: var(--prism-bg);\n color: var(--prism-text-muted);\n cursor: pointer;\n }\n .prism-events-panel__clear[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: var(--prism-text-muted);\n }\n .prism-events-panel__list[_ngcontent-%COMP%] {\n overflow-y: auto;\n flex: 1;\n }\n .prism-events-panel__entry[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 4px 16px;\n font-size: 12px;\n font-family: var(--prism-font-mono);\n border-bottom: 1px solid var(--prism-border);\n align-items: baseline;\n flex-wrap: wrap;\n }\n .prism-events-panel__time[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n flex-shrink: 0;\n }\n .prism-events-panel__name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 600;\n flex-shrink: 0;\n }\n .prism-events-panel__value[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n }\n .prism-events-panel__empty[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 13px;\n padding: 12px 16px;\n margin: 0;\n }"] });
57
+ } }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"], changeDetection: 0 });
53
58
  }
54
59
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
55
60
  type: Component,
56
- args: [{ selector: 'prism-events-panel', standalone: true, imports: [PrismJsonNodeComponent], template: `
57
- <div class="prism-events-panel">
58
- <div class="prism-events-panel__header">
59
- <span class="prism-events-panel__title">Events</span>
60
- <button
61
- class="prism-events-panel__clear"
62
- (click)="eventLogService.clear()"
63
- >
64
- Clear
65
- </button>
66
- </div>
67
- <div class="prism-events-panel__list">
68
- @for (entry of eventLogService.events(); track entry.id) {
69
- <div class="prism-events-panel__entry">
70
- <span class="prism-events-panel__time">{{ formatTime(entry.timestamp) }}</span>
71
- <span class="prism-events-panel__name">{{ entry.name }}</span>
72
- <span class="prism-events-panel__value">
73
- <prism-json-node [value]="entry.value" />
74
- </span>
75
- </div>
61
+ args: [{ selector: 'prism-events-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismJsonNodeComponent], template: `
62
+ <div class="ev-panel">
63
+ <div class="ev-body">
64
+ @for (entry of eventLogService.events(); track entry.id; let i = $index)
65
+ {
66
+ <div class="ev">
67
+ <span class="ev-time">{{ formatTime(entry.timestamp) }}</span>
68
+ <span class="ev-idx"
69
+ >#{{ padIdx(eventLogService.events().length - i) }}</span
70
+ >
71
+ <span class="ev-name">{{ entry.name }}</span>
72
+ <span class="ev-args"><prism-json-node [value]="entry.value" /></span>
73
+ </div>
76
74
  } @empty {
77
- <p class="prism-events-panel__empty">No events recorded</p>
75
+ <p class="ev-empty">No events recorded</p>
78
76
  }
79
77
  </div>
80
78
  </div>
81
- `, styles: ["\n .prism-events-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n .prism-events-panel__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-events-panel__title {\n font-size: 12px;\n font-weight: 600;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n .prism-events-panel__clear {\n padding: 2px 8px;\n font-size: 12px;\n border: 1px solid var(--prism-border);\n border-radius: var(--prism-radius-sm);\n background: var(--prism-bg);\n color: var(--prism-text-muted);\n cursor: pointer;\n }\n .prism-events-panel__clear:hover {\n color: var(--prism-text);\n border-color: var(--prism-text-muted);\n }\n .prism-events-panel__list {\n overflow-y: auto;\n flex: 1;\n }\n .prism-events-panel__entry {\n display: flex;\n gap: 12px;\n padding: 4px 16px;\n font-size: 12px;\n font-family: var(--prism-font-mono);\n border-bottom: 1px solid var(--prism-border);\n align-items: baseline;\n flex-wrap: wrap;\n }\n .prism-events-panel__time {\n color: var(--prism-text-muted);\n flex-shrink: 0;\n }\n .prism-events-panel__name {\n color: var(--prism-primary);\n font-weight: 600;\n flex-shrink: 0;\n }\n .prism-events-panel__value {\n flex: 1;\n min-width: 0;\n }\n .prism-events-panel__empty {\n color: var(--prism-text-muted);\n font-size: 13px;\n padding: 12px 16px;\n margin: 0;\n }\n "] }]
79
+ `, styles: ["\n .ev-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }\n "] }]
82
80
  }], null, null); })();
83
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber: 103 }); })();
81
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber: 84 }); })();
@@ -8,8 +8,13 @@ export declare class PrismPanelHostComponent implements OnDestroy {
8
8
  private readonly envInjector;
9
9
  private readonly auditService;
10
10
  private readonly rendererService;
11
- protected readonly a11yScore: import("@angular/core").Signal<number | null>;
12
- protected readonly coverageScore: import("@angular/core").Signal<number | null>;
11
+ private readonly a11yScore;
12
+ private readonly coverageScore;
13
+ private readonly inputCount;
14
+ protected panelBadge(panelId: string): {
15
+ text: string;
16
+ variant: 'default' | 'ok' | 'warn' | 'danger';
17
+ } | null;
13
18
  private readonly builtInPanels;
14
19
  protected readonly allPanels: import("@angular/core").Signal<import("../../../index.js").PanelDefinition[]>;
15
20
  protected readonly resolvedComponent: import("@angular/core").WritableSignal<Type<unknown> | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAA0D,mBAAmB,EAAU,SAAS,EAAU,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAKlJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;;AAK1E,qBAqFa,uBAAwB,YAAW,SAAS;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,SAAS,CAAC,QAAQ,CAAC,SAAS,gDAAkE;IAE9F,SAAS,CAAC,QAAQ,CAAC,aAAa,gDAK7B;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,gFAQzB;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,+DAAsC;IAC1E,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,SAAS,CAAC,QAAQ,CAAC,cAAc,sDAY9B;;IA0DH,WAAW,IAAI,IAAI;yCA1GR,uBAAuB;2CAAvB,uBAAuB;CA6GnC"}
1
+ {"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,mBAAmB,EAEnB,SAAS,EAET,KAAK,IAAI,EAEV,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;;AAK1E,qBA+Ka,uBAAwB,YAAW,SAAS;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK3B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGxB;IAEH,SAAS,CAAC,UAAU,CAClB,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI;IAwBzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,gFAQzB;IAEH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,+DAAsC;IAC1E,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,SAAS,CAAC,QAAQ,CAAC,cAAc,sDAgB9B;;IA8DH,WAAW,IAAI,IAAI;yCApJR,uBAAuB;2CAAvB,uBAAuB;CAuJnC"}