@ng-prism/core 21.12.0 → 23.0.0-beta.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 +10 -13
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +1 -1
- package/dist/app/canvas/prism-canvas-rulers.component.js +5 -3
- package/dist/app/canvas/prism-canvas-toolbar.component.js +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +7 -4
- package/dist/app/component-head/prism-component-head.component.js +20 -11
- package/dist/app/component-head/prism-stat.component.js +9 -5
- package/dist/app/component-header/prism-component-header.component.js +1 -1
- package/dist/app/controls/boolean-control.component.js +7 -4
- package/dist/app/controls/json-control.component.js +19 -10
- package/dist/app/controls/number-control.component.js +7 -4
- package/dist/app/controls/string-control.component.js +7 -4
- package/dist/app/controls/union-control.component.js +9 -5
- package/dist/app/directives/prism-resizer.directive.js +8 -4
- package/dist/app/header/prism-header-widget-host.component.js +5 -3
- package/dist/app/header/prism-header.component.js +13 -7
- package/dist/app/icons/prism-icon.component.js +5 -3
- package/dist/app/layout-menu/prism-layout-menu.component.js +2 -1
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
- package/dist/app/page-renderer/prism-page-renderer.component.js +13 -16
- package/dist/app/panels/a11y/a11y-audit.service.js +8 -4
- package/dist/app/panels/a11y/a11y-header-badge.component.js +3 -2
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +3 -2
- package/dist/app/panels/a11y/a11y-keyboard.component.js +3 -2
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +11 -6
- package/dist/app/panels/a11y/a11y-panel-state.service.js +2 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +7 -4
- package/dist/app/panels/a11y/a11y-perspective.service.js +2 -1
- package/dist/app/panels/a11y/a11y-score.component.js +7 -4
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +5 -3
- package/dist/app/panels/a11y/a11y-sr.component.js +3 -2
- package/dist/app/panels/a11y/a11y-tree.component.js +14 -8
- package/dist/app/panels/a11y/a11y-violations.component.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +9 -11
- package/dist/app/panels/controls/prism-controls-panel.component.js +3 -2
- package/dist/app/panels/events/prism-events-panel.component.js +3 -2
- package/dist/app/panels/events/prism-json-node.component.js +14 -7
- package/dist/app/panels/panel-host/prism-panel-host.component.js +15 -8
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +9 -6
- package/dist/app/services/prism-canvas.service.js +8 -4
- package/dist/app/services/prism-event-log.service.js +2 -1
- package/dist/app/services/prism-layout.service.js +16 -8
- package/dist/app/services/prism-manifest.service.js +10 -5
- package/dist/app/services/prism-navigation.service.js +8 -4
- package/dist/app/services/prism-panel.service.js +6 -3
- package/dist/app/services/prism-plugin.service.js +14 -7
- package/dist/app/services/prism-renderer.service.js +10 -5
- package/dist/app/services/prism-search.service.js +6 -3
- package/dist/app/services/prism-theme.service.js +4 -2
- package/dist/app/services/prism-variant-bg.service.js +8 -4
- package/dist/app/shell/prism-shell.component.js +7 -4
- package/dist/app/sidebar/prism-sidebar.component.js +15 -8
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +7 -4
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +8 -4
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +2 -1
- package/dist/builder/build/index.d.ts.map +1 -1
- package/dist/builder/build/index.js +11 -4
- package/dist/builder/build/schema.d.ts +1 -0
- package/dist/builder/build/schema.d.ts.map +1 -1
- package/dist/builder/serve/index.d.ts.map +1 -1
- package/dist/builder/serve/index.js +21 -6
- package/dist/builder/serve/schema.d.ts +1 -0
- package/dist/builder/serve/schema.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.d.ts +2 -0
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +3 -5
- package/dist/builder/shared/resolve-cache-dir.d.ts +8 -0
- package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -0
- package/dist/builder/shared/resolve-cache-dir.js +12 -0
- package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts +3 -0
- package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -0
- package/dist/schematics/migrations/v21-13-manifest-cache/index.js +103 -0
- package/dist/schematics/ng-add/index.d.ts.map +1 -1
- package/dist/schematics/ng-add/index.js +31 -44
- package/dist/schematics/utils/index.d.ts +1 -0
- package/dist/schematics/utils/index.d.ts.map +1 -1
- package/dist/schematics/utils/index.js +1 -0
- package/dist/schematics/utils/tsconfig-paths.d.ts +8 -0
- package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -0
- package/dist/schematics/utils/tsconfig-paths.js +20 -0
- package/package.json +9 -6
- package/schematics/migrations.json +10 -0
- package/src/builder/build/schema.json +4 -0
- package/src/builder/serve/schema.json +4 -0
|
@@ -109,14 +109,17 @@ export class PrismShellComponent {
|
|
|
109
109
|
viewPanels = computed(() => [
|
|
110
110
|
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
111
111
|
...this.pluginService.viewPanels(),
|
|
112
|
-
],
|
|
112
|
+
], /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "viewPanels" }] : /* istanbul ignore next */ []));
|
|
113
114
|
showPanel = computed(() => this.layout.addonsVisible() &&
|
|
114
115
|
this.panelService.activeViewId() === 'renderer' &&
|
|
115
|
-
!this.navigationService.activePage(),
|
|
116
|
+
!this.navigationService.activePage(), /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "showPanel" }] : /* istanbul ignore next */ []));
|
|
116
118
|
shellStyle = computed(() => {
|
|
117
119
|
const sw = this.layout.sidebarVisible() ? this.layout.sidebarWidth() : 0;
|
|
118
120
|
return `--sw: ${sw}px;`;
|
|
119
|
-
},
|
|
121
|
+
}, /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "shellStyle" }] : /* istanbul ignore next */ []));
|
|
120
123
|
constructor() {
|
|
121
124
|
this.themeService.applyConfigOverrides(this.config);
|
|
122
125
|
this.navigationService.selectFirst();
|
|
@@ -194,7 +197,7 @@ export class PrismShellComponent {
|
|
|
194
197
|
PrismViewPanelHostComponent,
|
|
195
198
|
PrismResizerDirective,
|
|
196
199
|
PrismCanvasToolbarComponent,
|
|
197
|
-
PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: 52px 1fr;\n background: var(--prism-void);\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n background: var(--prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__view-bar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n }"]
|
|
200
|
+
PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: 52px 1fr;\n background: var(--prism-void);\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n background: var(--prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__view-bar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n }"] });
|
|
198
201
|
}
|
|
199
202
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismShellComponent, [{
|
|
200
203
|
type: Component,
|
|
@@ -6,7 +6,8 @@ import { PrismManifestService } from '../services/prism-manifest.service.js';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
const _c0 = ["filterInput"];
|
|
8
8
|
const _forTrack0 = ($index, $item) => $item.name;
|
|
9
|
-
function _forTrack1($index, $item) {
|
|
9
|
+
function _forTrack1($index, $item) { /* @ts-ignore */
|
|
10
|
+
return this.itemKey($item); }
|
|
10
11
|
function PrismSidebarComponent_Conditional_8_For_8_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
11
12
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
12
13
|
i0.ɵɵelementStart(0, "button", 18);
|
|
@@ -175,7 +176,8 @@ export class PrismSidebarComponent {
|
|
|
175
176
|
navigationService = inject(PrismNavigationService);
|
|
176
177
|
searchService = inject(PrismSearchService);
|
|
177
178
|
manifestService = inject(PrismManifestService);
|
|
178
|
-
filterInput = viewChild('filterInput',
|
|
179
|
+
filterInput = viewChild('filterInput', /* @ts-ignore */
|
|
180
|
+
...(ngDevMode ? [{ debugName: "filterInput" }] : /* istanbul ignore next */ []));
|
|
179
181
|
onGlobalKey(e) {
|
|
180
182
|
if (e.key !== '/' || e.ctrlKey || e.metaKey || e.altKey)
|
|
181
183
|
return;
|
|
@@ -185,10 +187,12 @@ export class PrismSidebarComponent {
|
|
|
185
187
|
e.preventDefault();
|
|
186
188
|
this.filterInput()?.nativeElement.focus();
|
|
187
189
|
}
|
|
188
|
-
collapsedSet = signal(this.loadCollapsed(),
|
|
190
|
+
collapsedSet = signal(this.loadCollapsed(), /* @ts-ignore */
|
|
191
|
+
...(ngDevMode ? [{ debugName: "collapsedSet" }] : /* istanbul ignore next */ []));
|
|
189
192
|
totalPages = computed(() => {
|
|
190
193
|
return this.searchService.filteredPages().length;
|
|
191
|
-
},
|
|
194
|
+
}, /* @ts-ignore */
|
|
195
|
+
...(ngDevMode ? [{ debugName: "totalPages" }] : /* istanbul ignore next */ []));
|
|
192
196
|
pageCategories = computed(() => {
|
|
193
197
|
const pages = this.searchService.filteredPages();
|
|
194
198
|
const catMap = new Map();
|
|
@@ -203,7 +207,8 @@ export class PrismSidebarComponent {
|
|
|
203
207
|
color: categoryColor(name),
|
|
204
208
|
items,
|
|
205
209
|
}));
|
|
206
|
-
},
|
|
210
|
+
}, /* @ts-ignore */
|
|
211
|
+
...(ngDevMode ? [{ debugName: "pageCategories" }] : /* istanbul ignore next */ []));
|
|
207
212
|
componentCategories = computed(() => {
|
|
208
213
|
const tree = this.navigationService.categoryTree();
|
|
209
214
|
const result = [];
|
|
@@ -218,8 +223,10 @@ export class PrismSidebarComponent {
|
|
|
218
223
|
});
|
|
219
224
|
}
|
|
220
225
|
return result;
|
|
221
|
-
},
|
|
222
|
-
|
|
226
|
+
}, /* @ts-ignore */
|
|
227
|
+
...(ngDevMode ? [{ debugName: "componentCategories" }] : /* istanbul ignore next */ []));
|
|
228
|
+
totalComponents = computed(() => this.manifestService.manifest().components.length, /* @ts-ignore */
|
|
229
|
+
...(ngDevMode ? [{ debugName: "totalComponents" }] : /* istanbul ignore next */ []));
|
|
223
230
|
isCollapsed(key) {
|
|
224
231
|
return this.collapsedSet().has(key);
|
|
225
232
|
}
|
|
@@ -321,7 +328,7 @@ export class PrismSidebarComponent {
|
|
|
321
328
|
i0.ɵɵconditional(ctx.componentCategories().length > 0 ? 9 : -1);
|
|
322
329
|
i0.ɵɵadvance();
|
|
323
330
|
i0.ɵɵrepeater(ctx.componentCategories());
|
|
324
|
-
} }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n color: var(--prism-text-muted);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--fs-md);\n color: var(--prism-text);\n font-family: var(--font-sans);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--prism-text-muted); }\n .sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--prism-border);\n border-top: 1px solid var(--prism-border);\n }\n .sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon[_ngcontent-%COMP%] { color: var(--prism-primary); }\n .sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n }\n .sb-pinned-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin[_ngcontent-%COMP%] { color: var(--prism-accent); }\n\n .sb-group[_ngcontent-%COMP%] { margin-bottom: 4px; }\n .sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transition: transform var(--dur-fast);\n color: var(--prism-text-ghost);\n }\n .sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { transform: rotate(-90deg); }\n\n .sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--chip, var(--prism-primary));\n box-shadow: 0 0 6px var(--chip, var(--prism-primary));\n }\n .sb-group-count[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n\n .sb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--prism-text-2);\n cursor: pointer;\n border: none;\n border-left: 2px solid transparent;\n background: none;\n position: relative;\n transition: background var(--dur-fast), color var(--dur-fast);\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 5%, transparent);\n color: var(--prism-text);\n }\n .sb-item--active[_ngcontent-%COMP%] {\n border-left-color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n font-weight: 500;\n }\n .sb-item--active[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -1px;\n top: 0;\n bottom: 0;\n width: 3px;\n background: linear-gradient(180deg, var(--prism-primary-from), var(--prism-primary-to));\n }\n .sb-item-icon[_ngcontent-%COMP%] { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sb-item-status[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n margin-left: auto;\n display: flex;\n align-items: center;\n }\n .sb-item-status-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-warn);\n }\n\n .sb-item--deprecated[_ngcontent-%COMP%] .sb-item-name[_ngcontent-%COMP%] {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--prism-text-ghost);\n opacity: 0.7;\n }\n\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"]
|
|
331
|
+
} }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n color: var(--prism-text-muted);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--fs-md);\n color: var(--prism-text);\n font-family: var(--font-sans);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--prism-text-muted); }\n .sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--prism-border);\n border-top: 1px solid var(--prism-border);\n }\n .sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon[_ngcontent-%COMP%] { color: var(--prism-primary); }\n .sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n }\n .sb-pinned-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin[_ngcontent-%COMP%] { color: var(--prism-accent); }\n\n .sb-group[_ngcontent-%COMP%] { margin-bottom: 4px; }\n .sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transition: transform var(--dur-fast);\n color: var(--prism-text-ghost);\n }\n .sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { transform: rotate(-90deg); }\n\n .sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--chip, var(--prism-primary));\n box-shadow: 0 0 6px var(--chip, var(--prism-primary));\n }\n .sb-group-count[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n\n .sb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--prism-text-2);\n cursor: pointer;\n border: none;\n border-left: 2px solid transparent;\n background: none;\n position: relative;\n transition: background var(--dur-fast), color var(--dur-fast);\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 5%, transparent);\n color: var(--prism-text);\n }\n .sb-item--active[_ngcontent-%COMP%] {\n border-left-color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n font-weight: 500;\n }\n .sb-item--active[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -1px;\n top: 0;\n bottom: 0;\n width: 3px;\n background: linear-gradient(180deg, var(--prism-primary-from), var(--prism-primary-to));\n }\n .sb-item-icon[_ngcontent-%COMP%] { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sb-item-status[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n margin-left: auto;\n display: flex;\n align-items: center;\n }\n .sb-item-status-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-warn);\n }\n\n .sb-item--deprecated[_ngcontent-%COMP%] .sb-item-name[_ngcontent-%COMP%] {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--prism-text-ghost);\n opacity: 0.7;\n }\n\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"] });
|
|
325
332
|
}
|
|
326
333
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismSidebarComponent, [{
|
|
327
334
|
type: Component,
|
|
@@ -64,12 +64,15 @@ function variantColor(name, index) {
|
|
|
64
64
|
export class PrismVariantRibbonComponent {
|
|
65
65
|
navigationService = inject(PrismNavigationService);
|
|
66
66
|
rendererService = inject(PrismRendererService);
|
|
67
|
-
tabsContainer = viewChild('tabsContainer',
|
|
68
|
-
|
|
67
|
+
tabsContainer = viewChild('tabsContainer', /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "tabsContainer" }] : /* istanbul ignore next */ []));
|
|
69
|
+
tabButtons = viewChildren('tabButton', /* @ts-ignore */
|
|
70
|
+
...(ngDevMode ? [{ debugName: "tabButtons" }] : /* istanbul ignore next */ []));
|
|
69
71
|
variants = computed(() => {
|
|
70
72
|
const comp = this.navigationService.activeComponent();
|
|
71
73
|
return comp?.meta.showcaseConfig.variants ?? [];
|
|
72
|
-
},
|
|
74
|
+
}, /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "variants" }] : /* istanbul ignore next */ []));
|
|
73
76
|
constructor() {
|
|
74
77
|
effect(() => {
|
|
75
78
|
const idx = this.rendererService.activeVariantIndex();
|
|
@@ -111,7 +114,7 @@ export class PrismVariantRibbonComponent {
|
|
|
111
114
|
i0.ɵɵconditionalCreate(0, PrismVariantRibbonComponent_Conditional_0_Template, 10, 4, "nav", 2);
|
|
112
115
|
} if (rf & 2) {
|
|
113
116
|
i0.ɵɵconditional(ctx.variants().length > 0 ? 0 : -1);
|
|
114
|
-
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .variant-ribbon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n height: 42px;\n }\n\n .variant-ribbon-tabs[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 2px;\n height: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .variant-ribbon-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .v-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 14px;\n font-size: 13px;\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 .v-tab[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 10px;\n right: 10px;\n bottom: 0;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n opacity: 0;\n transition: opacity var(--dur-fast);\n border-radius: 1px 1px 0 0;\n }\n .v-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .v-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .v-tab--active[_ngcontent-%COMP%]::after { opacity: 1; }\n\n .v-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--vc, var(--prism-primary));\n opacity: 0.6;\n }\n .v-tab--active[_ngcontent-%COMP%] .v-dot[_ngcontent-%COMP%] {\n opacity: 1;\n box-shadow: 0 0 6px var(--vc);\n }\n\n .variant-ribbon-right[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n margin-left: 12px;\n border-left: 1px solid var(--prism-border);\n height: 24px;\n }\n\n .tool-btn[_ngcontent-%COMP%] {\n height: 24px;\n width: 24px;\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 .tool-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n color: var(--prism-text);\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .tool-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.3;\n cursor: default;\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"]
|
|
117
|
+
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .variant-ribbon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n height: 42px;\n }\n\n .variant-ribbon-tabs[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 2px;\n height: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .variant-ribbon-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .v-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 14px;\n font-size: 13px;\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 .v-tab[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 10px;\n right: 10px;\n bottom: 0;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n opacity: 0;\n transition: opacity var(--dur-fast);\n border-radius: 1px 1px 0 0;\n }\n .v-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .v-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .v-tab--active[_ngcontent-%COMP%]::after { opacity: 1; }\n\n .v-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--vc, var(--prism-primary));\n opacity: 0.6;\n }\n .v-tab--active[_ngcontent-%COMP%] .v-dot[_ngcontent-%COMP%] {\n opacity: 1;\n box-shadow: 0 0 6px var(--vc);\n }\n\n .variant-ribbon-right[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n margin-left: 12px;\n border-left: 1px solid var(--prism-border);\n height: 24px;\n }\n\n .tool-btn[_ngcontent-%COMP%] {\n height: 24px;\n width: 24px;\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 .tool-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n color: var(--prism-text);\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .tool-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.3;\n cursor: default;\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"] });
|
|
115
118
|
}
|
|
116
119
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismVariantRibbonComponent, [{
|
|
117
120
|
type: Component,
|
|
@@ -22,11 +22,14 @@ export class PrismViewPanelHostComponent {
|
|
|
22
22
|
allViewPanels = computed(() => [
|
|
23
23
|
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
24
24
|
...this.pluginService.viewPanels(),
|
|
25
|
-
],
|
|
26
|
-
|
|
25
|
+
], /* @ts-ignore */
|
|
26
|
+
...(ngDevMode ? [{ debugName: "allViewPanels" }] : /* istanbul ignore next */ []));
|
|
27
|
+
resolvedComponent = signal(null, /* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "resolvedComponent" }] : /* istanbul ignore next */ []));
|
|
27
29
|
panelInputs = computed(() => ({
|
|
28
30
|
activeComponent: this.nav.activeComponent(),
|
|
29
|
-
}),
|
|
31
|
+
}), /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "panelInputs" }] : /* istanbul ignore next */ []));
|
|
30
33
|
lazyCache = new Map();
|
|
31
34
|
injectorCache = new Map();
|
|
32
35
|
activeInjector = computed(() => {
|
|
@@ -38,7 +41,8 @@ export class PrismViewPanelHostComponent {
|
|
|
38
41
|
this.injectorCache.set(panel.id, createEnvironmentInjector(panel.providers, this.envInjector, `PrismViewPanel[${panel.id}]`));
|
|
39
42
|
}
|
|
40
43
|
return this.injectorCache.get(panel.id);
|
|
41
|
-
},
|
|
44
|
+
}, /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "activeInjector" }] : /* istanbul ignore next */ []));
|
|
42
46
|
constructor() {
|
|
43
47
|
effect(() => {
|
|
44
48
|
const panel = this.allViewPanels().find((p) => p.id === this.panelService.activeViewId()) ?? null;
|
|
@@ -23,7 +23,8 @@ export class PrismViewTabBarComponent {
|
|
|
23
23
|
viewPanels = computed(() => [
|
|
24
24
|
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
25
25
|
...this.pluginService.viewPanels(),
|
|
26
|
-
],
|
|
26
|
+
], /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "viewPanels" }] : /* istanbul ignore next */ []));
|
|
27
28
|
static ɵfac = function PrismViewTabBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismViewTabBarComponent)(); };
|
|
28
29
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismViewTabBarComponent, selectors: [["prism-view-tab-bar"]], decls: 5, vars: 2, consts: [[1, "prism-view-tab-bar"], [1, "prism-view-tab-bar__tab", 3, "click"], [1, "prism-view-tab-bar__tab", 3, "prism-view-tab-bar__tab--active"]], template: function PrismViewTabBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
30
|
i0.ɵɵdomElementStart(0, "div", 0)(1, "button", 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAqCtD,QAAA,MAAM,OAAO,EAAE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CACJ,CAAC;AACxD,eAAe,OAAO,CAAC"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import { createBuilder } from '@angular-devkit/architect';
|
|
2
|
-
import { runPrismPipeline, createPipelineState } from '../shared/prism-pipeline.js';
|
|
1
|
+
import { createBuilder, } from '@angular-devkit/architect';
|
|
2
|
+
import { runPrismPipeline, createPipelineState, } from '../shared/prism-pipeline.js';
|
|
3
|
+
import { resolveCacheDir } from '../shared/resolve-cache-dir.js';
|
|
3
4
|
async function createBuildBuilder(options, context) {
|
|
5
|
+
const cacheDir = resolveCacheDir(options.cacheDir, context.workspaceRoot);
|
|
4
6
|
const pipelineOptions = {
|
|
5
7
|
entryPoint: options.entryPoint,
|
|
6
|
-
libraryImportPath: options.libraryImportPath ??
|
|
8
|
+
libraryImportPath: options.libraryImportPath ??
|
|
9
|
+
options.libraryProject ??
|
|
10
|
+
options.prismProject,
|
|
7
11
|
prismProject: options.prismProject,
|
|
8
12
|
configFile: options.configFile ?? 'ng-prism.config.ts',
|
|
13
|
+
cacheDir,
|
|
9
14
|
};
|
|
10
15
|
await runPrismPipeline(pipelineOptions, context, createPipelineState());
|
|
11
|
-
const run = await context.scheduleTarget({ project: options.prismProject, target: 'build', configuration: '' }, options.outputPath
|
|
16
|
+
const run = await context.scheduleTarget({ project: options.prismProject, target: 'build', configuration: '' }, options.outputPath
|
|
17
|
+
? { outputPath: { base: options.outputPath, browser: '' } }
|
|
18
|
+
: {});
|
|
12
19
|
return run.result;
|
|
13
20
|
}
|
|
14
21
|
const builder = createBuilder(createBuildBuilder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/builder/build/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/builder/build/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/serve/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/serve/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA0FtD,QAAA,MAAM,OAAO,EAAE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CACJ,CAAC;AACxD,eAAe,OAAO,CAAC"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import { createBuilder } from '@angular-devkit/architect';
|
|
1
|
+
import { createBuilder, } from '@angular-devkit/architect';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { existsSync } from 'fs';
|
|
4
|
-
import { runPrismPipeline, createPipelineState } from '../shared/prism-pipeline.js';
|
|
4
|
+
import { runPrismPipeline, createPipelineState, } from '../shared/prism-pipeline.js';
|
|
5
|
+
import { resolveCacheDir } from '../shared/resolve-cache-dir.js';
|
|
5
6
|
import { startWatcher } from '../watcher/index.js';
|
|
6
7
|
async function createServeBuilder(options, context) {
|
|
8
|
+
const cacheDir = resolveCacheDir(options.cacheDir, context.workspaceRoot);
|
|
7
9
|
const pipelineOptions = {
|
|
8
10
|
entryPoint: options.entryPoint,
|
|
9
|
-
libraryImportPath: options.libraryImportPath ??
|
|
11
|
+
libraryImportPath: options.libraryImportPath ??
|
|
12
|
+
options.libraryProject ??
|
|
13
|
+
options.prismProject,
|
|
10
14
|
prismProject: options.prismProject,
|
|
11
15
|
configFile: options.configFile ?? 'ng-prism.config.ts',
|
|
16
|
+
cacheDir,
|
|
12
17
|
};
|
|
13
18
|
const state = createPipelineState();
|
|
14
19
|
await runPrismPipeline(pipelineOptions, context, state);
|
|
@@ -42,9 +47,19 @@ async function createServeBuilder(options, context) {
|
|
|
42
47
|
return new Promise((resolve, reject) => {
|
|
43
48
|
let lastOutput;
|
|
44
49
|
run.output.subscribe({
|
|
45
|
-
next: (output) => {
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
next: (output) => {
|
|
51
|
+
lastOutput = output;
|
|
52
|
+
},
|
|
53
|
+
error: (err) => {
|
|
54
|
+
cleanupSignals();
|
|
55
|
+
shutdown();
|
|
56
|
+
reject(err);
|
|
57
|
+
},
|
|
58
|
+
complete: () => {
|
|
59
|
+
cleanupSignals();
|
|
60
|
+
watcher.close();
|
|
61
|
+
resolve(lastOutput ?? { success: false });
|
|
62
|
+
},
|
|
48
63
|
});
|
|
49
64
|
});
|
|
50
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/builder/serve/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/builder/serve/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -5,6 +5,8 @@ export interface PrismPipelineOptions {
|
|
|
5
5
|
libraryImportPath: string;
|
|
6
6
|
prismProject: string;
|
|
7
7
|
configFile: string;
|
|
8
|
+
/** Absolute path. If omitted, defaults to `<workspaceRoot>/.ng-prism/<prismProject>`. */
|
|
9
|
+
cacheDir?: string;
|
|
8
10
|
}
|
|
9
11
|
export interface PrismPipelineResult {
|
|
10
12
|
manifestPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-pipeline.d.ts","sourceRoot":"","sources":["../../../src/builder/shared/prism-pipeline.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAYpE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"prism-pipeline.d.ts","sourceRoot":"","sources":["../../../src/builder/shared/prism-pipeline.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAYpE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,oGAAoG;IACpG,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,wBAAgB,mBAAmB,IAAI,kBAAkB,CAExD;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAyE9B"}
|
|
@@ -45,11 +45,9 @@ export async function runPrismPipeline(options, context, state) {
|
|
|
45
45
|
pages: manifest.pages,
|
|
46
46
|
meta: manifest.meta,
|
|
47
47
|
});
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
const manifestPath = join(workspaceRoot, sourceRoot, 'prism-manifest.ts');
|
|
52
|
-
mkdirSync(join(workspaceRoot, sourceRoot), { recursive: true });
|
|
48
|
+
const cacheDir = options.cacheDir ?? join(workspaceRoot, '.ng-prism', options.prismProject);
|
|
49
|
+
const manifestPath = join(cacheDir, 'prism-manifest.ts');
|
|
50
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
53
51
|
const written = writeManifestIfChanged(manifestPath, source);
|
|
54
52
|
const pageCount = (manifest.pages ?? []).length;
|
|
55
53
|
context.reportStatus('');
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a user-provided `cacheDir` builder option to an absolute path
|
|
3
|
+
* (or `undefined` when the option is empty/unset).
|
|
4
|
+
*
|
|
5
|
+
* Relative paths resolve against `workspaceRoot`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveCacheDir(option: string | undefined, workspaceRoot: string): string | undefined;
|
|
8
|
+
//# sourceMappingURL=resolve-cache-dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-cache-dir.d.ts","sourceRoot":"","sources":["../../../src/builder/shared/resolve-cache-dir.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAGpB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { join, isAbsolute } from 'path';
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes a user-provided `cacheDir` builder option to an absolute path
|
|
4
|
+
* (or `undefined` when the option is empty/unset).
|
|
5
|
+
*
|
|
6
|
+
* Relative paths resolve against `workspaceRoot`.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveCacheDir(option, workspaceRoot) {
|
|
9
|
+
if (!option)
|
|
10
|
+
return undefined;
|
|
11
|
+
return isAbsolute(option) ? option : join(workspaceRoot, option);
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schematics/migrations/v21-13-manifest-cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AA4H/E,wBAAgB,OAAO,IAAI,IAAI,CAgB9B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { addTsConfigPath } from '../../utils/tsconfig-paths.js';
|
|
2
|
+
const OLD_IMPORT = /^import\s+\{\s*PRISM_RUNTIME_MANIFEST\s*\}\s+from\s+['"](?:\.\/prism-manifest|prism-manifest)['"]\s*;?$/m;
|
|
3
|
+
function buildNewImport(prismProject) {
|
|
4
|
+
return `import { PRISM_RUNTIME_MANIFEST } from 'prism-manifest/${prismProject}';`;
|
|
5
|
+
}
|
|
6
|
+
function readWorkspace(tree) {
|
|
7
|
+
const buffer = tree.read('angular.json');
|
|
8
|
+
if (!buffer)
|
|
9
|
+
return undefined;
|
|
10
|
+
return JSON.parse(buffer.toString('utf-8'));
|
|
11
|
+
}
|
|
12
|
+
function findPrismProjects(workspace) {
|
|
13
|
+
const projects = workspace.projects ?? {};
|
|
14
|
+
const result = [];
|
|
15
|
+
for (const [, project] of Object.entries(projects)) {
|
|
16
|
+
const architect = project.architect ?? {};
|
|
17
|
+
for (const target of Object.values(architect)) {
|
|
18
|
+
if (target.builder === '@ng-prism/core:serve') {
|
|
19
|
+
const prismProject = target.options?.['prismProject'];
|
|
20
|
+
if (typeof prismProject === 'string' &&
|
|
21
|
+
!result.includes(prismProject)) {
|
|
22
|
+
result.push(prismProject);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
function rewriteMainTs(tree, context, workspace, prismProject) {
|
|
30
|
+
const project = workspace.projects?.[prismProject];
|
|
31
|
+
const sourceRoot = project?.sourceRoot ?? `projects/${prismProject}/src`;
|
|
32
|
+
const mainPath = `${sourceRoot}/main.ts`;
|
|
33
|
+
const buffer = tree.read(mainPath);
|
|
34
|
+
if (!buffer)
|
|
35
|
+
return;
|
|
36
|
+
const newImport = buildNewImport(prismProject);
|
|
37
|
+
const content = buffer.toString('utf-8');
|
|
38
|
+
if (content.includes(newImport))
|
|
39
|
+
return;
|
|
40
|
+
if (!OLD_IMPORT.test(content)) {
|
|
41
|
+
context.logger.warn(`ng-prism migration: could not find PRISM_RUNTIME_MANIFEST import in ${mainPath}. ` +
|
|
42
|
+
`Update it manually to: ${newImport}`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
tree.overwrite(mainPath, content.replace(OLD_IMPORT, newImport));
|
|
46
|
+
}
|
|
47
|
+
function addTsConfigMapping(tree) {
|
|
48
|
+
addTsConfigPath(tree, 'tsconfig.json', 'prism-manifest/*', [
|
|
49
|
+
'.ng-prism/*/prism-manifest.ts',
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
function ensureNgPrismGitignoreEntry(tree) {
|
|
53
|
+
const path = '.gitignore';
|
|
54
|
+
const entry = '.ng-prism/';
|
|
55
|
+
const buffer = tree.read(path);
|
|
56
|
+
if (!buffer) {
|
|
57
|
+
tree.create(path, entry + '\n');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const content = buffer.toString('utf-8');
|
|
61
|
+
if (content.split('\n').some((line) => line.trim() === entry))
|
|
62
|
+
return;
|
|
63
|
+
tree.overwrite(path, content.trimEnd() + '\n' + entry + '\n');
|
|
64
|
+
}
|
|
65
|
+
function deleteLegacyManifest(tree, workspace, prismProject) {
|
|
66
|
+
const project = workspace.projects?.[prismProject];
|
|
67
|
+
const sourceRoot = project?.sourceRoot ?? `projects/${prismProject}/src`;
|
|
68
|
+
const manifestPath = `${sourceRoot}/prism-manifest.ts`;
|
|
69
|
+
if (tree.exists(manifestPath)) {
|
|
70
|
+
tree.delete(manifestPath);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function removeGitignoreEntry(tree, prismProject) {
|
|
74
|
+
const path = '.gitignore';
|
|
75
|
+
const buffer = tree.read(path);
|
|
76
|
+
if (!buffer)
|
|
77
|
+
return;
|
|
78
|
+
const targetEntry = `projects/${prismProject}/src/prism-manifest.ts`;
|
|
79
|
+
const content = buffer.toString('utf-8');
|
|
80
|
+
if (!content.includes(targetEntry))
|
|
81
|
+
return;
|
|
82
|
+
const cleaned = content
|
|
83
|
+
.split('\n')
|
|
84
|
+
.filter((line) => line.trim() !== targetEntry)
|
|
85
|
+
.join('\n');
|
|
86
|
+
tree.overwrite(path, cleaned);
|
|
87
|
+
}
|
|
88
|
+
export function migrate() {
|
|
89
|
+
return (tree, context) => {
|
|
90
|
+
const workspace = readWorkspace(tree);
|
|
91
|
+
if (!workspace)
|
|
92
|
+
return tree;
|
|
93
|
+
const prismProjects = findPrismProjects(workspace);
|
|
94
|
+
for (const prismProject of prismProjects) {
|
|
95
|
+
rewriteMainTs(tree, context, workspace, prismProject);
|
|
96
|
+
addTsConfigMapping(tree);
|
|
97
|
+
deleteLegacyManifest(tree, workspace, prismProject);
|
|
98
|
+
removeGitignoreEntry(tree, prismProject);
|
|
99
|
+
}
|
|
100
|
+
ensureNgPrismGitignoreEntry(tree);
|
|
101
|
+
return tree;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,IAAI,EAIV,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,IAAI,EAIV,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAiWtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAWvD"}
|