@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.
- package/README.md +1 -1
- package/dist/app/canvas/prism-canvas-rulers.component.d.ts +16 -0
- package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -0
- package/dist/app/canvas/prism-canvas-rulers.component.js +177 -0
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +14 -0
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -0
- package/dist/app/canvas/prism-canvas-toolbar.component.js +144 -0
- package/dist/app/canvas/prism-code-drawer.component.d.ts +12 -0
- package/dist/app/canvas/prism-code-drawer.component.d.ts.map +1 -0
- package/dist/app/canvas/prism-code-drawer.component.js +114 -0
- package/dist/app/component-head/prism-component-head.component.d.ts +15 -0
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-component-head.component.js +207 -0
- package/dist/app/component-head/prism-stat.component.d.ts +10 -0
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-stat.component.js +52 -0
- package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
- package/dist/app/controls/boolean-control.component.js +16 -44
- package/dist/app/controls/json-control.component.d.ts.map +1 -1
- package/dist/app/controls/json-control.component.js +33 -54
- package/dist/app/controls/number-control.component.d.ts.map +1 -1
- package/dist/app/controls/number-control.component.js +18 -35
- package/dist/app/controls/string-control.component.d.ts.map +1 -1
- package/dist/app/controls/string-control.component.js +14 -41
- package/dist/app/controls/union-control.component.d.ts.map +1 -1
- package/dist/app/controls/union-control.component.js +26 -50
- package/dist/app/directives/prism-resizer.directive.d.ts +14 -0
- package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -0
- package/dist/app/directives/prism-resizer.directive.js +71 -0
- package/dist/app/header/prism-header.component.d.ts +3 -0
- package/dist/app/header/prism-header.component.d.ts.map +1 -1
- package/dist/app/header/prism-header.component.js +91 -215
- package/dist/app/icons/prism-icon.component.d.ts +10 -0
- package/dist/app/icons/prism-icon.component.d.ts.map +1 -0
- package/dist/app/icons/prism-icon.component.js +64 -0
- package/dist/app/index.d.ts +4 -3
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +4 -3
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
- package/dist/app/layout-menu/prism-layout-menu.component.js +63 -69
- package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-core.plugin.js +1 -0
- package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.component.js +61 -100
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +4 -0
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +87 -11
- package/dist/app/panels/a11y/a11y-panel.component.d.ts +0 -2
- package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +70 -85
- package/dist/app/panels/a11y/a11y-score.component.d.ts +2 -1
- package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-score.component.js +55 -49
- package/dist/app/panels/a11y/a11y-sr.component.d.ts +1 -9
- package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-sr.component.js +60 -208
- package/dist/app/panels/a11y/a11y-tree.component.d.ts +2 -4
- package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-tree.component.js +92 -137
- package/dist/app/panels/a11y/a11y-violations.component.d.ts +2 -6
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +126 -373
- package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -1
- package/dist/app/panels/controls/controls-plugin.js +1 -0
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
- package/dist/app/panels/controls/prism-controls-panel.component.js +96 -88
- package/dist/app/panels/events/events-plugin.d.ts.map +1 -1
- package/dist/app/panels/events/events-plugin.js +1 -0
- package/dist/app/panels/events/prism-events-panel.component.d.ts +1 -0
- package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
- package/dist/app/panels/events/prism-events-panel.component.js +44 -46
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +7 -2
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.js +102 -42
- package/dist/app/renderer/prism-renderer.component.d.ts +5 -6
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +84 -150
- package/dist/app/services/prism-canvas.service.d.ts +18 -0
- package/dist/app/services/prism-canvas.service.d.ts.map +1 -0
- package/dist/app/services/prism-canvas.service.js +63 -0
- package/dist/app/services/prism-theme.service.d.ts +13 -1
- package/dist/app/services/prism-theme.service.d.ts.map +1 -1
- package/dist/app/services/prism-theme.service.js +56 -9
- package/dist/app/shell/prism-shell.component.d.ts +1 -2
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +189 -178
- package/dist/app/sidebar/prism-sidebar.component.d.ts +16 -10
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +318 -204
- package/dist/app/theme/prism-default-theme.d.ts +1 -0
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +53 -34
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +13 -0
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -0
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +134 -0
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +15 -11
- package/dist/decorator/showcase.decorator.d.ts +1 -3
- package/dist/decorator/showcase.decorator.d.ts.map +1 -1
- package/dist/decorator/showcase.decorator.js +2 -6
- package/dist/plugin/plugin.types.d.ts +1 -0
- package/dist/plugin/plugin.types.d.ts.map +1 -1
- package/dist/schematics/ng-add/index.d.ts.map +1 -1
- package/dist/schematics/ng-add/index.js +2 -1
- package/package.json +6 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { Component, computed, createEnvironmentInjector, effect, EnvironmentInjector, inject, signal } from '@angular/core';
|
|
2
|
+
import { Component, computed, createEnvironmentInjector, effect, EnvironmentInjector, inject, signal, ChangeDetectionStrategy, } from '@angular/core';
|
|
3
|
+
import { PrismIconComponent } from '../../icons/prism-icon.component.js';
|
|
3
4
|
import { BUILTIN_PANELS } from '../builtin-panels.js';
|
|
4
5
|
import { A11yAuditService } from '../a11y/a11y-audit.service.js';
|
|
5
|
-
import { A11yScoreComponent } from '../a11y/a11y-score.component.js';
|
|
6
6
|
import { PrismNavigationService } from '../../services/prism-navigation.service.js';
|
|
7
7
|
import { PrismPanelService } from '../../services/prism-panel.service.js';
|
|
8
8
|
import { PrismPluginService } from '../../services/prism-plugin.service.js';
|
|
@@ -10,41 +10,47 @@ import { PrismRendererService } from '../../services/prism-renderer.service.js';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
const _forTrack0 = ($index, $item) => $item.id;
|
|
12
12
|
function PrismPanelHostComponent_For_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
i0.ɵɵelement(0, "prism-
|
|
13
|
+
i0.ɵɵelement(0, "prism-icon", 5);
|
|
14
14
|
} if (rf & 2) {
|
|
15
|
-
const
|
|
16
|
-
i0.ɵɵproperty("
|
|
15
|
+
const panel_r2 = i0.ɵɵnextContext().$implicit;
|
|
16
|
+
i0.ɵɵproperty("name", panel_r2.icon)("size", 13);
|
|
17
17
|
} }
|
|
18
|
-
function
|
|
19
|
-
i0.ɵɵ
|
|
18
|
+
function PrismPanelHostComponent_For_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelementStart(0, "span", 7);
|
|
20
|
+
i0.ɵɵtext(1);
|
|
21
|
+
i0.ɵɵelementEnd();
|
|
20
22
|
} if (rf & 2) {
|
|
21
|
-
const
|
|
22
|
-
i0.ɵɵ
|
|
23
|
+
const badge_r4 = ctx;
|
|
24
|
+
i0.ɵɵclassProp("ok", badge_r4.variant === "ok")("warn", badge_r4.variant === "warn")("danger", badge_r4.variant === "danger");
|
|
25
|
+
i0.ɵɵadvance();
|
|
26
|
+
i0.ɵɵtextInterpolate(badge_r4.text);
|
|
23
27
|
} }
|
|
24
28
|
function PrismPanelHostComponent_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
25
29
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
26
30
|
i0.ɵɵelementStart(0, "button", 4);
|
|
27
31
|
i0.ɵɵlistener("click", function PrismPanelHostComponent_For_3_Template_button_click_0_listener() { const panel_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.panelService.activePanelId.set(panel_r2.id)); });
|
|
28
|
-
i0.ɵɵconditionalCreate(1, PrismPanelHostComponent_For_3_Conditional_1_Template, 1, 2, "prism-
|
|
29
|
-
i0.ɵɵ
|
|
30
|
-
i0.ɵɵ
|
|
32
|
+
i0.ɵɵconditionalCreate(1, PrismPanelHostComponent_For_3_Conditional_1_Template, 1, 2, "prism-icon", 5);
|
|
33
|
+
i0.ɵɵtext(2);
|
|
34
|
+
i0.ɵɵconditionalCreate(3, PrismPanelHostComponent_For_3_Conditional_3_Template, 2, 7, "span", 6);
|
|
31
35
|
i0.ɵɵelementEnd();
|
|
32
36
|
} if (rf & 2) {
|
|
37
|
+
let tmp_15_0;
|
|
33
38
|
const panel_r2 = ctx.$implicit;
|
|
34
39
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
35
|
-
i0.ɵɵclassProp("
|
|
40
|
+
i0.ɵɵclassProp("p-tab--active", ctx_r2.panelService.activePanelId() === panel_r2.id);
|
|
41
|
+
i0.ɵɵattribute("aria-selected", ctx_r2.panelService.activePanelId() === panel_r2.id)("aria-controls", ctx_r2.panelService.activePanelId() === panel_r2.id ? "panel-" + panel_r2.id : null);
|
|
36
42
|
i0.ɵɵadvance();
|
|
37
|
-
i0.ɵɵconditional(panel_r2.
|
|
38
|
-
i0.ɵɵadvance();
|
|
39
|
-
i0.ɵɵconditional(panel_r2.id === "coverage" && ctx_r2.coverageScore() !== null ? 2 : -1);
|
|
43
|
+
i0.ɵɵconditional(panel_r2.icon ? 1 : -1);
|
|
40
44
|
i0.ɵɵadvance();
|
|
41
45
|
i0.ɵɵtextInterpolate1(" ", panel_r2.label, " ");
|
|
46
|
+
i0.ɵɵadvance();
|
|
47
|
+
i0.ɵɵconditional((tmp_15_0 = ctx_r2.panelBadge(panel_r2.id)) ? 3 : -1, tmp_15_0);
|
|
42
48
|
} }
|
|
43
49
|
function PrismPanelHostComponent_Conditional_5_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
44
50
|
i0.ɵɵelementContainer(0);
|
|
45
51
|
} }
|
|
46
52
|
function PrismPanelHostComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
-
i0.ɵɵtemplate(0, PrismPanelHostComponent_Conditional_5_ng_container_0_Template, 1, 0, "ng-container",
|
|
53
|
+
i0.ɵɵtemplate(0, PrismPanelHostComponent_Conditional_5_ng_container_0_Template, 1, 0, "ng-container", 8);
|
|
48
54
|
} if (rf & 2) {
|
|
49
55
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
50
56
|
i0.ɵɵproperty("ngComponentOutlet", ctx_r2.resolvedComponent())("ngComponentOutletInputs", ctx_r2.panelInputs())("ngComponentOutletInjector", ctx_r2.activeInjector());
|
|
@@ -64,6 +70,35 @@ export class PrismPanelHostComponent {
|
|
|
64
70
|
return null;
|
|
65
71
|
return coverage.score;
|
|
66
72
|
}, ...(ngDevMode ? [{ debugName: "coverageScore" }] : []));
|
|
73
|
+
inputCount = computed(() => {
|
|
74
|
+
const comp = this.nav.activeComponent();
|
|
75
|
+
return comp?.meta.inputs.length ?? 0;
|
|
76
|
+
}, ...(ngDevMode ? [{ debugName: "inputCount" }] : []));
|
|
77
|
+
panelBadge(panelId) {
|
|
78
|
+
if (panelId === 'controls') {
|
|
79
|
+
const count = this.inputCount();
|
|
80
|
+
return count > 0 ? { text: String(count), variant: 'default' } : null;
|
|
81
|
+
}
|
|
82
|
+
if (panelId === 'a11y') {
|
|
83
|
+
const score = this.a11yScore();
|
|
84
|
+
if (score === null)
|
|
85
|
+
return null;
|
|
86
|
+
return {
|
|
87
|
+
text: String(score),
|
|
88
|
+
variant: score >= 90 ? 'ok' : score >= 70 ? 'warn' : 'danger',
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (panelId === 'coverage') {
|
|
92
|
+
const score = this.coverageScore();
|
|
93
|
+
if (score === null)
|
|
94
|
+
return null;
|
|
95
|
+
return {
|
|
96
|
+
text: String(score),
|
|
97
|
+
variant: score >= 90 ? 'ok' : score >= 70 ? 'warn' : 'danger',
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
67
102
|
builtInPanels = BUILTIN_PANELS;
|
|
68
103
|
allPanels = computed(() => {
|
|
69
104
|
const comp = this.nav.activeComponent();
|
|
@@ -140,9 +175,9 @@ export class PrismPanelHostComponent {
|
|
|
140
175
|
this.injectorCache.forEach((injector) => injector.destroy());
|
|
141
176
|
}
|
|
142
177
|
static ɵfac = function PrismPanelHostComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismPanelHostComponent)(); };
|
|
143
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismPanelHostComponent, selectors: [["prism-panel-host"]], decls: 6, vars:
|
|
144
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "
|
|
145
|
-
i0.ɵɵrepeaterCreate(2, PrismPanelHostComponent_For_3_Template, 4,
|
|
178
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismPanelHostComponent, selectors: [["prism-panel-host"]], decls: 6, vars: 2, consts: [[1, "panel"], ["role", "tablist", 1, "panel-tabs"], ["role", "tab", 1, "p-tab", 3, "p-tab--active"], ["role", "tabpanel", 1, "panel-body", 3, "id"], ["role", "tab", 1, "p-tab", 3, "click"], [3, "name", "size"], [1, "p-tab-badge", 3, "ok", "warn", "danger"], [1, "p-tab-badge"], [4, "ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector"]], template: function PrismPanelHostComponent_Template(rf, ctx) { if (rf & 1) {
|
|
179
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "nav", 1);
|
|
180
|
+
i0.ɵɵrepeaterCreate(2, PrismPanelHostComponent_For_3_Template, 4, 7, "button", 2, _forTrack0);
|
|
146
181
|
i0.ɵɵelementEnd();
|
|
147
182
|
i0.ɵɵelementStart(4, "div", 3);
|
|
148
183
|
i0.ɵɵconditionalCreate(5, PrismPanelHostComponent_Conditional_5_Template, 1, 3, "ng-container");
|
|
@@ -150,37 +185,62 @@ export class PrismPanelHostComponent {
|
|
|
150
185
|
} if (rf & 2) {
|
|
151
186
|
i0.ɵɵadvance(2);
|
|
152
187
|
i0.ɵɵrepeater(ctx.allPanels());
|
|
153
|
-
i0.ɵɵadvance(
|
|
188
|
+
i0.ɵɵadvance(2);
|
|
189
|
+
i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
|
|
190
|
+
i0.ɵɵadvance();
|
|
154
191
|
i0.ɵɵconditional(ctx.resolvedComponent() ? 5 : -1);
|
|
155
|
-
} }, dependencies: [NgComponentOutlet,
|
|
192
|
+
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .p-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .p-tab--active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right[_ngcontent-%COMP%] {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"], changeDetection: 0 });
|
|
156
193
|
}
|
|
157
194
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
|
|
158
195
|
type: Component,
|
|
159
|
-
args: [{ selector: 'prism-panel-host', standalone: true, imports: [NgComponentOutlet,
|
|
160
|
-
<div class="
|
|
161
|
-
<
|
|
196
|
+
args: [{ selector: 'prism-panel-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, PrismIconComponent], template: `
|
|
197
|
+
<div class="panel">
|
|
198
|
+
<nav class="panel-tabs" role="tablist">
|
|
162
199
|
@for (panel of allPanels(); track panel.id) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
200
|
+
<button
|
|
201
|
+
class="p-tab"
|
|
202
|
+
[class.p-tab--active]="panelService.activePanelId() === panel.id"
|
|
203
|
+
(click)="panelService.activePanelId.set(panel.id)"
|
|
204
|
+
role="tab"
|
|
205
|
+
[attr.aria-selected]="panelService.activePanelId() === panel.id"
|
|
206
|
+
[attr.aria-controls]="
|
|
207
|
+
panelService.activePanelId() === panel.id
|
|
208
|
+
? 'panel-' + panel.id
|
|
209
|
+
: null
|
|
210
|
+
"
|
|
211
|
+
>
|
|
212
|
+
@if (panel.icon) {
|
|
213
|
+
<prism-icon [name]="panel.icon" [size]="13" />
|
|
214
|
+
}
|
|
215
|
+
{{ panel.label }}
|
|
216
|
+
@if (panelBadge(panel.id); as badge) {
|
|
217
|
+
<span
|
|
218
|
+
class="p-tab-badge"
|
|
219
|
+
[class.ok]="badge.variant === 'ok'"
|
|
220
|
+
[class.warn]="badge.variant === 'warn'"
|
|
221
|
+
[class.danger]="badge.variant === 'danger'"
|
|
222
|
+
>{{ badge.text }}</span
|
|
167
223
|
>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
@if (panel.id === 'coverage' && coverageScore() !== null) {
|
|
172
|
-
<prism-a11y-score [score]="coverageScore()!" [compact]="true" style="width:18px;height:18px;" />
|
|
173
|
-
}
|
|
174
|
-
{{ panel.label }}
|
|
175
|
-
</button>
|
|
224
|
+
}
|
|
225
|
+
</button>
|
|
176
226
|
}
|
|
177
|
-
</
|
|
178
|
-
<div
|
|
227
|
+
</nav>
|
|
228
|
+
<div
|
|
229
|
+
class="panel-body"
|
|
230
|
+
[id]="'panel-' + panelService.activePanelId()"
|
|
231
|
+
role="tabpanel"
|
|
232
|
+
>
|
|
179
233
|
@if (resolvedComponent()) {
|
|
180
|
-
|
|
234
|
+
<ng-container
|
|
235
|
+
*ngComponentOutlet="
|
|
236
|
+
resolvedComponent();
|
|
237
|
+
inputs: panelInputs();
|
|
238
|
+
injector: activeInjector()
|
|
239
|
+
"
|
|
240
|
+
/>
|
|
181
241
|
}
|
|
182
242
|
</div>
|
|
183
243
|
</div>
|
|
184
|
-
`, styles: ["\n .
|
|
244
|
+
`, styles: ["\n .panel {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs::-webkit-scrollbar { display: none; }\n\n .p-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab:hover { color: var(--prism-text-2); }\n .p-tab--active { color: var(--prism-text); }\n .p-tab--active::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.ok {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
185
245
|
}], () => [], null); })();
|
|
186
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber:
|
|
246
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber: 198 }); })();
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import { Injector, type Type } from '@angular/core';
|
|
2
|
-
import { A11yPerspectiveService } from '../panels/a11y/a11y-perspective.service.js';
|
|
3
2
|
import { PrismNavigationService } from '../services/prism-navigation.service.js';
|
|
4
3
|
import { PrismRendererService } from '../services/prism-renderer.service.js';
|
|
4
|
+
import { PrismCanvasService } from '../services/prism-canvas.service.js';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class PrismRendererComponent {
|
|
7
|
+
protected readonly Math: Math;
|
|
7
8
|
protected readonly navigationService: PrismNavigationService;
|
|
8
9
|
protected readonly rendererService: PrismRendererService;
|
|
9
|
-
protected readonly
|
|
10
|
+
protected readonly canvasService: PrismCanvasService;
|
|
10
11
|
private readonly eventLogService;
|
|
11
12
|
private readonly manifestService;
|
|
12
13
|
private readonly injector;
|
|
13
14
|
private readonly destroyRef;
|
|
14
15
|
private readonly host;
|
|
15
16
|
private readonly rendererHooks;
|
|
17
|
+
private readonly panelService;
|
|
18
|
+
private readonly pluginService;
|
|
16
19
|
private readonly outlet;
|
|
17
20
|
private componentRef;
|
|
18
21
|
private outputSubscriptions;
|
|
19
22
|
private lastProjectedContent;
|
|
20
23
|
private isRenderPage;
|
|
21
|
-
private readonly panelService;
|
|
22
|
-
private readonly pluginService;
|
|
23
24
|
private readonly overlayCache;
|
|
24
25
|
readonly activeOverlay: import("@angular/core").WritableSignal<Type<unknown> | null>;
|
|
25
26
|
protected readonly overlayInputs: {
|
|
26
27
|
rendererService: PrismRendererService;
|
|
27
28
|
};
|
|
28
29
|
protected readonly overlayInjector: import("@angular/core").Signal<import("@angular/core").EnvironmentInjector | Injector>;
|
|
29
|
-
readonly codeVisible: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
-
readonly snippet: import("@angular/core").Signal<string>;
|
|
31
30
|
constructor();
|
|
32
31
|
private createComponent;
|
|
33
32
|
private cleanup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EAER,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAGzE,qBAmHa,sBAAsB;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,oBAAoB,CAChB;IACZ,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,QAAQ,CAAC,aAAa,+DAAsC;IAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa;;MAA6C;IAC7E,SAAS,CAAC,QAAQ,CAAC,eAAe,yFAG/B;;IAuFH,OAAO,CAAC,eAAe;IA6FvB,OAAO,CAAC,OAAO;yCApNJ,sBAAsB;2CAAtB,sBAAsB;CAkOlC"}
|