@ng-prism/core 21.0.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 +170 -0
- package/builders.json +14 -0
- package/dist/app/component-header/prism-component-header.component.d.ts +8 -0
- package/dist/app/component-header/prism-component-header.component.d.ts.map +1 -0
- package/dist/app/component-header/prism-component-header.component.js +77 -0
- package/dist/app/controls/boolean-control.component.d.ts +10 -0
- package/dist/app/controls/boolean-control.component.d.ts.map +1 -0
- package/dist/app/controls/boolean-control.component.js +58 -0
- package/dist/app/controls/json-control.component.d.ts +19 -0
- package/dist/app/controls/json-control.component.d.ts.map +1 -0
- package/dist/app/controls/json-control.component.js +136 -0
- package/dist/app/controls/number-control.component.d.ts +10 -0
- package/dist/app/controls/number-control.component.d.ts.map +1 -0
- package/dist/app/controls/number-control.component.js +55 -0
- package/dist/app/controls/string-control.component.d.ts +10 -0
- package/dist/app/controls/string-control.component.d.ts.map +1 -0
- package/dist/app/controls/string-control.component.js +55 -0
- package/dist/app/controls/union-control.component.d.ts +11 -0
- package/dist/app/controls/union-control.component.d.ts.map +1 -0
- package/dist/app/controls/union-control.component.js +72 -0
- package/dist/app/header/prism-header.component.d.ts +10 -0
- package/dist/app/header/prism-header.component.d.ts.map +1 -0
- package/dist/app/header/prism-header.component.js +241 -0
- package/dist/app/hmr.d.ts +4 -0
- package/dist/app/hmr.d.ts.map +1 -0
- package/dist/app/hmr.js +5 -0
- package/dist/app/index.d.ts +18 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +21 -0
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts +10 -0
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -0
- package/dist/app/layout-menu/prism-layout-menu.component.js +190 -0
- package/dist/app/page-renderer/prism-icon-page.component.d.ts +8 -0
- package/dist/app/page-renderer/prism-icon-page.component.d.ts.map +1 -0
- package/dist/app/page-renderer/prism-icon-page.component.js +42 -0
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts +8 -0
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -0
- package/dist/app/page-renderer/prism-page-renderer.component.js +72 -0
- package/dist/app/page-renderer/prism-token-page.component.d.ts +8 -0
- package/dist/app/page-renderer/prism-token-page.component.d.ts.map +1 -0
- package/dist/app/page-renderer/prism-token-page.component.js +164 -0
- package/dist/app/panels/a11y/a11y-audit.service.d.ts +17 -0
- package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-audit.service.js +71 -0
- package/dist/app/panels/a11y/a11y-core.plugin.d.ts +3 -0
- package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-core.plugin.js +8 -0
- package/dist/app/panels/a11y/a11y-dom-utils.d.ts +11 -0
- package/dist/app/panels/a11y/a11y-dom-utils.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-dom-utils.js +149 -0
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts +24 -0
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +104 -0
- package/dist/app/panels/a11y/a11y-keyboard.component.d.ts +12 -0
- package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-keyboard.component.js +150 -0
- package/dist/app/panels/a11y/a11y-keyboard.service.d.ts +8 -0
- package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-keyboard.service.js +71 -0
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +6 -0
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +18 -0
- package/dist/app/panels/a11y/a11y-panel-state.service.d.ts +8 -0
- package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-panel-state.service.js +11 -0
- package/dist/app/panels/a11y/a11y-panel.component.d.ts +14 -0
- package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-panel.component.js +183 -0
- package/dist/app/panels/a11y/a11y-perspective.service.d.ts +8 -0
- package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-perspective.service.js +11 -0
- package/dist/app/panels/a11y/a11y-score.component.d.ts +11 -0
- package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-score.component.js +72 -0
- package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts +27 -0
- package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +127 -0
- package/dist/app/panels/a11y/a11y-sr.component.d.ts +19 -0
- package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-sr.component.js +257 -0
- package/dist/app/panels/a11y/a11y-sr.service.d.ts +8 -0
- package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-sr.service.js +102 -0
- package/dist/app/panels/a11y/a11y-tree.component.d.ts +27 -0
- package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-tree.component.js +229 -0
- package/dist/app/panels/a11y/a11y-tree.service.d.ts +8 -0
- package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-tree.service.js +47 -0
- package/dist/app/panels/a11y/a11y-violations.component.d.ts +15 -0
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-violations.component.js +457 -0
- package/dist/app/panels/a11y/a11y.types.d.ts +44 -0
- package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y.types.js +1 -0
- package/dist/app/panels/builtin-panels.d.ts +3 -0
- package/dist/app/panels/builtin-panels.d.ts.map +1 -0
- package/dist/app/panels/builtin-panels.js +8 -0
- package/dist/app/panels/controls/controls-plugin.d.ts +3 -0
- package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -0
- package/dist/app/panels/controls/controls-plugin.js +12 -0
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts +13 -0
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -0
- package/dist/app/panels/controls/prism-controls-panel.component.js +178 -0
- package/dist/app/panels/events/events-plugin.d.ts +3 -0
- package/dist/app/panels/events/events-plugin.d.ts.map +1 -0
- package/dist/app/panels/events/events-plugin.js +12 -0
- package/dist/app/panels/events/prism-events-panel.component.d.ts +9 -0
- package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -0
- package/dist/app/panels/events/prism-events-panel.component.js +83 -0
- package/dist/app/panels/events/prism-json-node.component.d.ts +22 -0
- package/dist/app/panels/events/prism-json-node.component.d.ts.map +1 -0
- package/dist/app/panels/events/prism-json-node.component.js +350 -0
- package/dist/app/panels/events/prism-json-node.utils.d.ts +2 -0
- package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -0
- package/dist/app/panels/events/prism-json-node.utils.js +40 -0
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +26 -0
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -0
- package/dist/app/panels/panel-host/prism-panel-host.component.js +157 -0
- package/dist/app/provide-prism.d.ts +8 -0
- package/dist/app/provide-prism.d.ts.map +1 -0
- package/dist/app/provide-prism.js +21 -0
- package/dist/app/renderer/highlight-xml.d.ts +2 -0
- package/dist/app/renderer/highlight-xml.d.ts.map +1 -0
- package/dist/app/renderer/highlight-xml.js +27 -0
- package/dist/app/renderer/prism-renderer.component.d.ts +32 -0
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -0
- package/dist/app/renderer/prism-renderer.component.js +346 -0
- package/dist/app/renderer/snippet-generator.d.ts +7 -0
- package/dist/app/renderer/snippet-generator.d.ts.map +1 -0
- package/dist/app/renderer/snippet-generator.js +162 -0
- package/dist/app/services/navigation-item.types.d.ts +10 -0
- package/dist/app/services/navigation-item.types.d.ts.map +1 -0
- package/dist/app/services/navigation-item.types.js +1 -0
- package/dist/app/services/prism-event-log.service.d.ts +16 -0
- package/dist/app/services/prism-event-log.service.d.ts.map +1 -0
- package/dist/app/services/prism-event-log.service.js +21 -0
- package/dist/app/services/prism-layout.service.d.ts +23 -0
- package/dist/app/services/prism-layout.service.d.ts.map +1 -0
- package/dist/app/services/prism-layout.service.js +85 -0
- package/dist/app/services/prism-manifest.service.d.ts +15 -0
- package/dist/app/services/prism-manifest.service.d.ts.map +1 -0
- package/dist/app/services/prism-manifest.service.js +53 -0
- package/dist/app/services/prism-navigation.service.d.ts +18 -0
- package/dist/app/services/prism-navigation.service.d.ts.map +1 -0
- package/dist/app/services/prism-navigation.service.js +94 -0
- package/dist/app/services/prism-panel.service.d.ts +8 -0
- package/dist/app/services/prism-panel.service.d.ts.map +1 -0
- package/dist/app/services/prism-panel.service.js +12 -0
- package/dist/app/services/prism-plugin.service.d.ts +12 -0
- package/dist/app/services/prism-plugin.service.d.ts.map +1 -0
- package/dist/app/services/prism-plugin.service.js +32 -0
- package/dist/app/services/prism-renderer.service.d.ts +18 -0
- package/dist/app/services/prism-renderer.service.d.ts.map +1 -0
- package/dist/app/services/prism-renderer.service.js +84 -0
- package/dist/app/services/prism-search.service.d.ts +13 -0
- package/dist/app/services/prism-search.service.d.ts.map +1 -0
- package/dist/app/services/prism-search.service.js +39 -0
- package/dist/app/services/prism-theme.service.d.ts +9 -0
- package/dist/app/services/prism-theme.service.d.ts.map +1 -0
- package/dist/app/services/prism-theme.service.js +23 -0
- package/dist/app/services/prism-url-state.service.d.ts +16 -0
- package/dist/app/services/prism-url-state.service.d.ts.map +1 -0
- package/dist/app/services/prism-url-state.service.js +108 -0
- package/dist/app/shell/prism-shell.component.d.ts +22 -0
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -0
- package/dist/app/shell/prism-shell.component.js +283 -0
- package/dist/app/sidebar/prism-sidebar.component.d.ts +14 -0
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -0
- package/dist/app/sidebar/prism-sidebar.component.js +105 -0
- package/dist/app/theme/prism-default-theme.d.ts +4 -0
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -0
- package/dist/app/theme/prism-default-theme.js +57 -0
- package/dist/app/tokens/prism-tokens.d.ts +11 -0
- package/dist/app/tokens/prism-tokens.d.ts.map +1 -0
- package/dist/app/tokens/prism-tokens.js +7 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +22 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +90 -0
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +10 -0
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -0
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +65 -0
- package/dist/builder/build/index.d.ts +6 -0
- package/dist/builder/build/index.d.ts.map +1 -0
- package/dist/builder/build/index.js +15 -0
- package/dist/builder/build/schema.d.ts +9 -0
- package/dist/builder/build/schema.d.ts.map +1 -0
- package/dist/builder/build/schema.js +1 -0
- package/dist/builder/config-loader/config-loader.d.ts +8 -0
- package/dist/builder/config-loader/config-loader.d.ts.map +1 -0
- package/dist/builder/config-loader/config-loader.js +33 -0
- package/dist/builder/config-loader/index.d.ts +3 -0
- package/dist/builder/config-loader/index.d.ts.map +1 -0
- package/dist/builder/config-loader/index.js +1 -0
- package/dist/builder/icon-resolver/icon-resolver.d.ts +7 -0
- package/dist/builder/icon-resolver/icon-resolver.d.ts.map +1 -0
- package/dist/builder/icon-resolver/icon-resolver.js +12 -0
- package/dist/builder/icon-resolver/index.d.ts +2 -0
- package/dist/builder/icon-resolver/index.d.ts.map +1 -0
- package/dist/builder/icon-resolver/index.js +1 -0
- package/dist/builder/manifest/host-parser.d.ts +6 -0
- package/dist/builder/manifest/host-parser.d.ts.map +1 -0
- package/dist/builder/manifest/host-parser.js +9 -0
- package/dist/builder/manifest/index.d.ts +3 -0
- package/dist/builder/manifest/index.d.ts.map +1 -0
- package/dist/builder/manifest/index.js +1 -0
- package/dist/builder/manifest/runtime-manifest.generator.d.ts +9 -0
- package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -0
- package/dist/builder/manifest/runtime-manifest.generator.js +216 -0
- package/dist/builder/plugin-runner/index.d.ts +2 -0
- package/dist/builder/plugin-runner/index.d.ts.map +1 -0
- package/dist/builder/plugin-runner/index.js +1 -0
- package/dist/builder/plugin-runner/plugin-runner.d.ts +3 -0
- package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -0
- package/dist/builder/plugin-runner/plugin-runner.js +38 -0
- package/dist/builder/scanner/ast-utils.d.ts +20 -0
- package/dist/builder/scanner/ast-utils.d.ts.map +1 -0
- package/dist/builder/scanner/ast-utils.js +100 -0
- package/dist/builder/scanner/component.scanner.d.ts +7 -0
- package/dist/builder/scanner/component.scanner.d.ts.map +1 -0
- package/dist/builder/scanner/component.scanner.js +113 -0
- package/dist/builder/scanner/entry-point-discovery.d.ts +6 -0
- package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -0
- package/dist/builder/scanner/entry-point-discovery.js +38 -0
- package/dist/builder/scanner/entry-point.scanner.d.ts +11 -0
- package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -0
- package/dist/builder/scanner/entry-point.scanner.js +19 -0
- package/dist/builder/scanner/index.d.ts +8 -0
- package/dist/builder/scanner/index.d.ts.map +1 -0
- package/dist/builder/scanner/index.js +6 -0
- package/dist/builder/scanner/input.extractor.d.ts +11 -0
- package/dist/builder/scanner/input.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/input.extractor.js +169 -0
- package/dist/builder/scanner/manifest.generator.d.ts +6 -0
- package/dist/builder/scanner/manifest.generator.d.ts.map +1 -0
- package/dist/builder/scanner/manifest.generator.js +59 -0
- package/dist/builder/scanner/scanner.d.ts +16 -0
- package/dist/builder/scanner/scanner.d.ts.map +1 -0
- package/dist/builder/scanner/scanner.js +28 -0
- package/dist/builder/serve/index.d.ts +6 -0
- package/dist/builder/serve/index.d.ts.map +1 -0
- package/dist/builder/serve/index.js +48 -0
- package/dist/builder/serve/schema.d.ts +9 -0
- package/dist/builder/serve/schema.d.ts.map +1 -0
- package/dist/builder/serve/schema.js +1 -0
- package/dist/builder/shared/index.d.ts +3 -0
- package/dist/builder/shared/index.d.ts.map +1 -0
- package/dist/builder/shared/index.js +1 -0
- package/dist/builder/shared/prism-pipeline.d.ts +21 -0
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -0
- package/dist/builder/shared/prism-pipeline.js +95 -0
- package/dist/builder/token-scanner/index.d.ts +2 -0
- package/dist/builder/token-scanner/index.d.ts.map +1 -0
- package/dist/builder/token-scanner/index.js +1 -0
- package/dist/builder/token-scanner/token-scanner.d.ts +9 -0
- package/dist/builder/token-scanner/token-scanner.d.ts.map +1 -0
- package/dist/builder/token-scanner/token-scanner.js +95 -0
- package/dist/builder/watcher/index.d.ts +3 -0
- package/dist/builder/watcher/index.d.ts.map +1 -0
- package/dist/builder/watcher/index.js +1 -0
- package/dist/builder/watcher/prism-watcher.d.ts +29 -0
- package/dist/builder/watcher/prism-watcher.d.ts.map +1 -0
- package/dist/builder/watcher/prism-watcher.js +79 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/decorator/index.d.ts +3 -0
- package/dist/decorator/index.d.ts.map +1 -0
- package/dist/decorator/index.js +1 -0
- package/dist/decorator/showcase.decorator.d.ts +5 -0
- package/dist/decorator/showcase.decorator.d.ts.map +1 -0
- package/dist/decorator/showcase.decorator.js +7 -0
- package/dist/decorator/showcase.types.d.ts +54 -0
- package/dist/decorator/showcase.types.d.ts.map +1 -0
- package/dist/decorator/showcase.types.js +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/plugin/define-config.d.ts +4 -0
- package/dist/plugin/define-config.d.ts.map +1 -0
- package/dist/plugin/define-config.js +4 -0
- package/dist/plugin/index.d.ts +8 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +3 -0
- package/dist/plugin/page-helpers.d.ts +19 -0
- package/dist/plugin/page-helpers.d.ts.map +1 -0
- package/dist/plugin/page-helpers.js +20 -0
- package/dist/plugin/page.types.d.ts +19 -0
- package/dist/plugin/page.types.d.ts.map +1 -0
- package/dist/plugin/page.types.js +1 -0
- package/dist/plugin/plugin.types.d.ts +98 -0
- package/dist/plugin/plugin.types.d.ts.map +1 -0
- package/dist/plugin/plugin.types.js +1 -0
- package/dist/schematics/ng-add/index.d.ts +4 -0
- package/dist/schematics/ng-add/index.d.ts.map +1 -0
- package/dist/schematics/ng-add/index.js +179 -0
- package/dist/schematics/ng-add/schema.d.ts +5 -0
- package/dist/schematics/ng-add/schema.d.ts.map +1 -0
- package/dist/schematics/ng-add/schema.js +1 -0
- package/dist/test-setup-browser.d.ts +2 -0
- package/dist/test-setup-browser.d.ts.map +1 -0
- package/dist/test-setup-browser.js +4 -0
- package/package.json +73 -0
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/schema.json +20 -0
- package/src/builder/build/schema.json +35 -0
- package/src/builder/serve/schema.json +36 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const PRISM_MANIFEST = new InjectionToken('PRISM_MANIFEST');
|
|
3
|
+
export const PRISM_CONFIG = new InjectionToken('PRISM_CONFIG', {
|
|
4
|
+
providedIn: 'root',
|
|
5
|
+
factory: () => ({}),
|
|
6
|
+
});
|
|
7
|
+
export const PRISM_RENDERER_HOOKS = new InjectionToken('PRISM_RENDERER_HOOKS');
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EnvironmentInjector, OnDestroy, type Type } from '@angular/core';
|
|
2
|
+
import { PrismPanelService } from '../services/prism-panel.service.js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class PrismViewPanelHostComponent implements OnDestroy {
|
|
5
|
+
private readonly pluginService;
|
|
6
|
+
private readonly nav;
|
|
7
|
+
protected readonly panelService: PrismPanelService;
|
|
8
|
+
private readonly envInjector;
|
|
9
|
+
private readonly allViewPanels;
|
|
10
|
+
protected readonly resolvedComponent: import("@angular/core").WritableSignal<Type<unknown> | null>;
|
|
11
|
+
protected readonly panelInputs: import("@angular/core").Signal<{
|
|
12
|
+
activeComponent: import("../../index.js").RuntimeComponent | null;
|
|
13
|
+
}>;
|
|
14
|
+
private readonly lazyCache;
|
|
15
|
+
private readonly injectorCache;
|
|
16
|
+
protected readonly activeInjector: import("@angular/core").Signal<EnvironmentInjector>;
|
|
17
|
+
constructor();
|
|
18
|
+
ngOnDestroy(): void;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismViewPanelHostComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismViewPanelHostComponent, "prism-view-panel-host", never, {}, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=prism-view-panel-host.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-view-panel-host.component.d.ts","sourceRoot":"","sources":["../../../src/app/view-tab-bar/prism-view-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAA0D,mBAAmB,EAAU,SAAS,EAAU,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAGlJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAGvE,qBAqBa,2BAA4B,YAAW,SAAS;IAC3D,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;IAE3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG3B;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,sDAY9B;;IA+BH,WAAW,IAAI,IAAI;yCA9DR,2BAA2B;2CAA3B,2BAA2B;CAiEvC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { Component, computed, createEnvironmentInjector, effect, EnvironmentInjector, inject, signal } from '@angular/core';
|
|
3
|
+
import { BUILTIN_PANELS } from '../panels/builtin-panels.js';
|
|
4
|
+
import { PrismNavigationService } from '../services/prism-navigation.service.js';
|
|
5
|
+
import { PrismPanelService } from '../services/prism-panel.service.js';
|
|
6
|
+
import { PrismPluginService } from '../services/prism-plugin.service.js';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
function PrismViewPanelHostComponent_Conditional_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
+
i0.ɵɵelementContainer(0);
|
|
10
|
+
} }
|
|
11
|
+
function PrismViewPanelHostComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵtemplate(0, PrismViewPanelHostComponent_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 1);
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
15
|
+
i0.ɵɵproperty("ngComponentOutlet", ctx_r0.resolvedComponent())("ngComponentOutletInputs", ctx_r0.panelInputs())("ngComponentOutletInjector", ctx_r0.activeInjector());
|
|
16
|
+
} }
|
|
17
|
+
export class PrismViewPanelHostComponent {
|
|
18
|
+
pluginService = inject(PrismPluginService);
|
|
19
|
+
nav = inject(PrismNavigationService);
|
|
20
|
+
panelService = inject(PrismPanelService);
|
|
21
|
+
envInjector = inject(EnvironmentInjector);
|
|
22
|
+
allViewPanels = computed(() => [
|
|
23
|
+
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
24
|
+
...this.pluginService.viewPanels(),
|
|
25
|
+
], ...(ngDevMode ? [{ debugName: "allViewPanels" }] : []));
|
|
26
|
+
resolvedComponent = signal(null, ...(ngDevMode ? [{ debugName: "resolvedComponent" }] : []));
|
|
27
|
+
panelInputs = computed(() => ({
|
|
28
|
+
activeComponent: this.nav.activeComponent(),
|
|
29
|
+
}), ...(ngDevMode ? [{ debugName: "panelInputs" }] : []));
|
|
30
|
+
lazyCache = new Map();
|
|
31
|
+
injectorCache = new Map();
|
|
32
|
+
activeInjector = computed(() => {
|
|
33
|
+
const panelId = this.panelService.activeViewId();
|
|
34
|
+
const panel = this.allViewPanels().find((p) => p.id === panelId);
|
|
35
|
+
if (!panel?.providers?.length)
|
|
36
|
+
return this.envInjector;
|
|
37
|
+
if (!this.injectorCache.has(panel.id)) {
|
|
38
|
+
this.injectorCache.set(panel.id, createEnvironmentInjector(panel.providers, this.envInjector, `PrismViewPanel[${panel.id}]`));
|
|
39
|
+
}
|
|
40
|
+
return this.injectorCache.get(panel.id);
|
|
41
|
+
}, ...(ngDevMode ? [{ debugName: "activeInjector" }] : []));
|
|
42
|
+
constructor() {
|
|
43
|
+
effect(() => {
|
|
44
|
+
const panel = this.allViewPanels().find((p) => p.id === this.panelService.activeViewId()) ?? null;
|
|
45
|
+
if (!panel) {
|
|
46
|
+
this.resolvedComponent.set(null);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (panel.component) {
|
|
50
|
+
this.resolvedComponent.set(panel.component);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (panel.loadComponent) {
|
|
54
|
+
const cached = this.lazyCache.get(panel.id);
|
|
55
|
+
if (cached) {
|
|
56
|
+
this.resolvedComponent.set(cached);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.resolvedComponent.set(null);
|
|
60
|
+
panel.loadComponent().then((comp) => {
|
|
61
|
+
this.lazyCache.set(panel.id, comp);
|
|
62
|
+
this.resolvedComponent.set(comp);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
this.injectorCache.forEach((injector) => injector.destroy());
|
|
69
|
+
}
|
|
70
|
+
static ɵfac = function PrismViewPanelHostComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismViewPanelHostComponent)(); };
|
|
71
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismViewPanelHostComponent, selectors: [["prism-view-panel-host"]], decls: 2, vars: 1, consts: [[1, "prism-view-panel-host"], [4, "ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector"]], template: function PrismViewPanelHostComponent_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
73
|
+
i0.ɵɵconditionalCreate(1, PrismViewPanelHostComponent_Conditional_1_Template, 1, 3, "ng-container");
|
|
74
|
+
i0.ɵɵelementEnd();
|
|
75
|
+
} if (rf & 2) {
|
|
76
|
+
i0.ɵɵadvance();
|
|
77
|
+
i0.ɵɵconditional(ctx.resolvedComponent() ? 1 : -1);
|
|
78
|
+
} }, dependencies: [NgComponentOutlet], styles: [".prism-view-panel-host[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }"] });
|
|
79
|
+
}
|
|
80
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismViewPanelHostComponent, [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ selector: 'prism-view-panel-host', standalone: true, imports: [NgComponentOutlet], template: `
|
|
83
|
+
<div class="prism-view-panel-host">
|
|
84
|
+
@if (resolvedComponent()) {
|
|
85
|
+
<ng-container *ngComponentOutlet="resolvedComponent(); inputs: panelInputs(); injector: activeInjector()" />
|
|
86
|
+
}
|
|
87
|
+
</div>
|
|
88
|
+
`, styles: ["\n .prism-view-panel-host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n "] }]
|
|
89
|
+
}], () => [], null); })();
|
|
90
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismViewPanelHostComponent, { className: "PrismViewPanelHostComponent", filePath: "app/view-tab-bar/prism-view-panel-host.component.ts", lineNumber: 29 }); })();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PrismPanelService } from '../services/prism-panel.service.js';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class PrismViewTabBarComponent {
|
|
4
|
+
protected readonly panelService: PrismPanelService;
|
|
5
|
+
private readonly pluginService;
|
|
6
|
+
protected readonly viewPanels: import("@angular/core").Signal<import("../../index.js").PanelDefinition[]>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismViewTabBarComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismViewTabBarComponent, "prism-view-tab-bar", never, {}, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=prism-view-tab-bar.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-view-tab-bar.component.d.ts","sourceRoot":"","sources":["../../../src/app/view-tab-bar/prism-view-tab-bar.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAGvE,qBAgEa,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,SAAS,CAAC,QAAQ,CAAC,UAAU,6EAG1B;yCAPQ,wBAAwB;2CAAxB,wBAAwB;CAQpC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, computed, inject } from '@angular/core';
|
|
2
|
+
import { BUILTIN_PANELS } from '../panels/builtin-panels.js';
|
|
3
|
+
import { PrismPanelService } from '../services/prism-panel.service.js';
|
|
4
|
+
import { PrismPluginService } from '../services/prism-plugin.service.js';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
const _forTrack0 = ($index, $item) => $item.id;
|
|
7
|
+
function PrismViewTabBarComponent_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
9
|
+
i0.ɵɵdomElementStart(0, "button", 1);
|
|
10
|
+
i0.ɵɵdomListener("click", function PrismViewTabBarComponent_For_4_Template_button_click_0_listener() { const panel_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.panelService.activeViewId.set(panel_r2.id)); });
|
|
11
|
+
i0.ɵɵtext(1);
|
|
12
|
+
i0.ɵɵdomElementEnd();
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const panel_r2 = ctx.$implicit;
|
|
15
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
16
|
+
i0.ɵɵclassProp("prism-view-tab-bar__tab--active", ctx_r2.panelService.activeViewId() === panel_r2.id);
|
|
17
|
+
i0.ɵɵadvance();
|
|
18
|
+
i0.ɵɵtextInterpolate1(" ", panel_r2.label, " ");
|
|
19
|
+
} }
|
|
20
|
+
export class PrismViewTabBarComponent {
|
|
21
|
+
panelService = inject(PrismPanelService);
|
|
22
|
+
pluginService = inject(PrismPluginService);
|
|
23
|
+
viewPanels = computed(() => [
|
|
24
|
+
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
25
|
+
...this.pluginService.viewPanels(),
|
|
26
|
+
], ...(ngDevMode ? [{ debugName: "viewPanels" }] : []));
|
|
27
|
+
static ɵfac = function PrismViewTabBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismViewTabBarComponent)(); };
|
|
28
|
+
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
|
+
i0.ɵɵdomElementStart(0, "div", 0)(1, "button", 1);
|
|
30
|
+
i0.ɵɵdomListener("click", function PrismViewTabBarComponent_Template_button_click_1_listener() { return ctx.panelService.activeViewId.set("renderer"); });
|
|
31
|
+
i0.ɵɵtext(2, " Renderer ");
|
|
32
|
+
i0.ɵɵdomElementEnd();
|
|
33
|
+
i0.ɵɵrepeaterCreate(3, PrismViewTabBarComponent_For_4_Template, 2, 3, "button", 2, _forTrack0);
|
|
34
|
+
i0.ɵɵdomElementEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
i0.ɵɵadvance();
|
|
37
|
+
i0.ɵɵclassProp("prism-view-tab-bar__tab--active", ctx.panelService.activeViewId() === "renderer");
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵrepeater(ctx.viewPanels());
|
|
40
|
+
} }, styles: [".prism-view-tab-bar[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid var(--prism-border);\n padding: 0 8px;\n flex-shrink: 0;\n background: var(--prism-bg-elevated);\n }\n\n .prism-view-tab-bar__tab[_ngcontent-%COMP%] {\n padding: 9px 14px;\n font-size: 13px;\n font-family: var(--prism-font-sans);\n border: none;\n background: none;\n color: var(--prism-text-muted);\n cursor: pointer;\n position: relative;\n margin-bottom: -1px;\n transition: color 0.12s;\n }\n\n .prism-view-tab-bar__tab[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 8px;\n right: 8px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n opacity: 0;\n transition: opacity 0.12s;\n }\n\n .prism-view-tab-bar__tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n\n .prism-view-tab-bar__tab--active[_ngcontent-%COMP%] { color: var(--prism-primary); font-weight: 500; }\n\n .prism-view-tab-bar__tab--active[_ngcontent-%COMP%]::after { opacity: 1; }"] });
|
|
41
|
+
}
|
|
42
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismViewTabBarComponent, [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'prism-view-tab-bar', standalone: true, template: `
|
|
45
|
+
<div class="prism-view-tab-bar">
|
|
46
|
+
<button
|
|
47
|
+
class="prism-view-tab-bar__tab"
|
|
48
|
+
[class.prism-view-tab-bar__tab--active]="panelService.activeViewId() === 'renderer'"
|
|
49
|
+
(click)="panelService.activeViewId.set('renderer')"
|
|
50
|
+
>
|
|
51
|
+
Renderer
|
|
52
|
+
</button>
|
|
53
|
+
@for (panel of viewPanels(); track panel.id) {
|
|
54
|
+
<button
|
|
55
|
+
class="prism-view-tab-bar__tab"
|
|
56
|
+
[class.prism-view-tab-bar__tab--active]="panelService.activeViewId() === panel.id"
|
|
57
|
+
(click)="panelService.activeViewId.set(panel.id)"
|
|
58
|
+
>
|
|
59
|
+
{{ panel.label }}
|
|
60
|
+
</button>
|
|
61
|
+
}
|
|
62
|
+
</div>
|
|
63
|
+
`, styles: ["\n .prism-view-tab-bar {\n display: flex;\n border-bottom: 1px solid var(--prism-border);\n padding: 0 8px;\n flex-shrink: 0;\n background: var(--prism-bg-elevated);\n }\n\n .prism-view-tab-bar__tab {\n padding: 9px 14px;\n font-size: 13px;\n font-family: var(--prism-font-sans);\n border: none;\n background: none;\n color: var(--prism-text-muted);\n cursor: pointer;\n position: relative;\n margin-bottom: -1px;\n transition: color 0.12s;\n }\n\n .prism-view-tab-bar__tab::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 8px;\n right: 8px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n opacity: 0;\n transition: opacity 0.12s;\n }\n\n .prism-view-tab-bar__tab:hover { color: var(--prism-text-2); }\n\n .prism-view-tab-bar__tab--active { color: var(--prism-primary); font-weight: 500; }\n\n .prism-view-tab-bar__tab--active::after { opacity: 1; }\n "] }]
|
|
64
|
+
}], null, null); })();
|
|
65
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismViewTabBarComponent, { className: "PrismViewTabBarComponent", filePath: "app/view-tab-bar/prism-view-tab-bar.component.ts", lineNumber: 70 }); })();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Builder } from '@angular-devkit/architect';
|
|
2
|
+
import type { json } from '@angular-devkit/core';
|
|
3
|
+
import type { BuildBuilderSchema } from './schema.js';
|
|
4
|
+
declare const builder: Builder<BuildBuilderSchema & json.JsonObject>;
|
|
5
|
+
export default builder;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAA2C,MAAM,2BAA2B,CAAC;AACjH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAwBtD,QAAA,MAAM,OAAO,EAAE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAyD,CAAC;AACrH,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createBuilder } from '@angular-devkit/architect';
|
|
2
|
+
import { runPrismPipeline, createPipelineState } from '../shared/prism-pipeline.js';
|
|
3
|
+
async function createBuildBuilder(options, context) {
|
|
4
|
+
const pipelineOptions = {
|
|
5
|
+
entryPoint: options.entryPoint,
|
|
6
|
+
libraryImportPath: options.libraryImportPath ?? options.libraryProject ?? options.prismProject,
|
|
7
|
+
prismProject: options.prismProject,
|
|
8
|
+
configFile: options.configFile ?? 'ng-prism.config.ts',
|
|
9
|
+
};
|
|
10
|
+
await runPrismPipeline(pipelineOptions, context, createPipelineState());
|
|
11
|
+
const run = await context.scheduleTarget({ project: options.prismProject, target: 'build', configuration: '' }, options.outputPath ? { outputPath: options.outputPath } : {});
|
|
12
|
+
return run.result;
|
|
13
|
+
}
|
|
14
|
+
const builder = createBuilder(createBuildBuilder);
|
|
15
|
+
export default builder;
|
|
@@ -0,0 +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;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import '@angular/compiler';
|
|
2
|
+
import type { NgPrismConfig } from '../../plugin/plugin.types.js';
|
|
3
|
+
export interface ConfigLoaderOptions {
|
|
4
|
+
workspaceRoot: string;
|
|
5
|
+
configFileName?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function loadConfig(options: ConfigLoaderOptions): Promise<NgPrismConfig>;
|
|
8
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/builder/config-loader/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAsB,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6BrF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import '@angular/compiler';
|
|
2
|
+
import { existsSync, readFileSync, writeFileSync, unlinkSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { pathToFileURL } from 'url';
|
|
5
|
+
import ts from 'typescript';
|
|
6
|
+
const DEFAULT_CONFIG_FILE = 'ng-prism.config.ts';
|
|
7
|
+
export async function loadConfig(options) {
|
|
8
|
+
const configFileName = options.configFileName ?? DEFAULT_CONFIG_FILE;
|
|
9
|
+
const configPath = join(options.workspaceRoot, configFileName);
|
|
10
|
+
if (!existsSync(configPath)) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
const source = readFileSync(configPath, 'utf-8');
|
|
14
|
+
const transpiled = ts.transpileModule(source, {
|
|
15
|
+
compilerOptions: {
|
|
16
|
+
module: ts.ModuleKind.ESNext,
|
|
17
|
+
target: ts.ScriptTarget.ES2022,
|
|
18
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
19
|
+
esModuleInterop: true,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
const tempPath = configPath.replace(/\.ts$/, '.tmp.mjs');
|
|
23
|
+
try {
|
|
24
|
+
writeFileSync(tempPath, transpiled.outputText, 'utf-8');
|
|
25
|
+
const module = await import(pathToFileURL(tempPath).href);
|
|
26
|
+
return module.default ?? {};
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
if (existsSync(tempPath)) {
|
|
30
|
+
unlinkSync(tempPath);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/config-loader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { loadConfig } from './config-loader.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IconEntry } from '../../plugin/page.types.js';
|
|
2
|
+
export interface ResolveIconsOptions {
|
|
3
|
+
pattern: string;
|
|
4
|
+
workspaceRoot: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function resolveIcons(options: ResolveIconsOptions): IconEntry[];
|
|
7
|
+
//# sourceMappingURL=icon-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-resolver.d.ts","sourceRoot":"","sources":["../../../src/builder/icon-resolver/icon-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAStE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { basename } from 'path';
|
|
3
|
+
import { globSync } from 'glob';
|
|
4
|
+
export function resolveIcons(options) {
|
|
5
|
+
const { pattern, workspaceRoot } = options;
|
|
6
|
+
const files = globSync(pattern, { cwd: workspaceRoot, absolute: true }).sort();
|
|
7
|
+
return files.map((filePath) => ({
|
|
8
|
+
name: basename(filePath, '.svg'),
|
|
9
|
+
svg: readFileSync(filePath, 'utf-8'),
|
|
10
|
+
filePath,
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/icon-resolver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolveIcons } from './icon-resolver.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-parser.d.ts","sourceRoot":"","sources":["../../../src/builder/manifest/host-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS/D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function parseHostString(host) {
|
|
2
|
+
const trimmed = host.trim();
|
|
3
|
+
const match = trimmed.match(/^<\s*([a-zA-Z][a-zA-Z0-9-]*)((?:\s+[^>]*?)?)\s*\/?\s*>$/);
|
|
4
|
+
if (!match)
|
|
5
|
+
return null;
|
|
6
|
+
const tag = match[1];
|
|
7
|
+
const attrs = match[2].trim();
|
|
8
|
+
return { tag, attrs };
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/manifest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { generateRuntimeManifest } from './runtime-manifest.generator.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ScannedComponent } from '../../plugin/plugin.types.js';
|
|
2
|
+
import type { StyleguidePage } from '../../plugin/page.types.js';
|
|
3
|
+
export interface RuntimeManifestOptions {
|
|
4
|
+
components: ScannedComponent[];
|
|
5
|
+
libraryImportPath: string;
|
|
6
|
+
pages?: StyleguidePage[];
|
|
7
|
+
}
|
|
8
|
+
export declare function generateRuntimeManifest(options: RuntimeManifestOptions): string;
|
|
9
|
+
//# sourceMappingURL=runtime-manifest.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-manifest.generator.d.ts","sourceRoot":"","sources":["../../../src/builder/manifest/runtime-manifest.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAyHD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAsE/E"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { parseHostString } from './host-parser.js';
|
|
2
|
+
function inputTypeAnnotation(input) {
|
|
3
|
+
if (input.type === 'union' && input.values) {
|
|
4
|
+
return input.values.map((v) => `'${v}'`).join(' | ');
|
|
5
|
+
}
|
|
6
|
+
if (input.type === 'boolean')
|
|
7
|
+
return 'boolean';
|
|
8
|
+
if (input.type === 'number')
|
|
9
|
+
return 'number';
|
|
10
|
+
if (input.type === 'string')
|
|
11
|
+
return 'string';
|
|
12
|
+
if (input.type === 'array')
|
|
13
|
+
return 'unknown[]';
|
|
14
|
+
if (input.type === 'object')
|
|
15
|
+
return 'Record<string, unknown>';
|
|
16
|
+
return 'unknown';
|
|
17
|
+
}
|
|
18
|
+
function formatInputDeclaration(input) {
|
|
19
|
+
if (input.required) {
|
|
20
|
+
const typeAnnotation = inputTypeAnnotation(input);
|
|
21
|
+
return `input.required<${typeAnnotation}>()`;
|
|
22
|
+
}
|
|
23
|
+
const def = input.defaultValue !== undefined ? JSON.stringify(input.defaultValue) : "''";
|
|
24
|
+
const needsAnnotation = input.type === 'union' && input.values;
|
|
25
|
+
if (needsAnnotation) {
|
|
26
|
+
const typeAnnotation = inputTypeAnnotation(input);
|
|
27
|
+
return `input<${typeAnnotation}>(${def})`;
|
|
28
|
+
}
|
|
29
|
+
return `input(${def})`;
|
|
30
|
+
}
|
|
31
|
+
function directiveSelector(selector) {
|
|
32
|
+
const match = selector.match(/^\[([^\]]+)]$/);
|
|
33
|
+
return match ? match[1] : selector;
|
|
34
|
+
}
|
|
35
|
+
function isBindableInput(input) {
|
|
36
|
+
if (input.type === 'string' || input.type === 'number' || input.type === 'boolean' || input.type === 'union') {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return input.defaultValue !== undefined;
|
|
40
|
+
}
|
|
41
|
+
function generateWrapperClass(comp) {
|
|
42
|
+
const wrapperName = `${comp.className}__PrismHost`;
|
|
43
|
+
const host = comp.showcaseConfig.host;
|
|
44
|
+
const directiveAttr = directiveSelector(comp.componentMeta.selector);
|
|
45
|
+
const bindableInputs = comp.inputs.filter(isBindableInput);
|
|
46
|
+
let tag;
|
|
47
|
+
let attrs;
|
|
48
|
+
let importsArray;
|
|
49
|
+
if (typeof host === 'string') {
|
|
50
|
+
const parsed = parseHostString(host);
|
|
51
|
+
tag = parsed?.tag ?? 'div';
|
|
52
|
+
attrs = parsed?.attrs ? ` ${parsed.attrs}` : '';
|
|
53
|
+
importsArray = `[${comp.className}]`;
|
|
54
|
+
}
|
|
55
|
+
else if (host && typeof host === 'object') {
|
|
56
|
+
const hostObj = host;
|
|
57
|
+
tag = hostObj.selector;
|
|
58
|
+
const staticInputs = Object.entries(hostObj.inputs ?? {})
|
|
59
|
+
.map(([k, v]) => ` ${k}="${String(v)}"`)
|
|
60
|
+
.join('');
|
|
61
|
+
attrs = staticInputs;
|
|
62
|
+
importsArray = `[${comp.className}, ${hostObj.import.name}]`;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
tag = 'div';
|
|
66
|
+
attrs = '';
|
|
67
|
+
importsArray = `[${comp.className}]`;
|
|
68
|
+
}
|
|
69
|
+
const inputBindings = bindableInputs
|
|
70
|
+
.map((i) => ` [${i.name}]="${i.name}()"`)
|
|
71
|
+
.join('');
|
|
72
|
+
const outputBindings = comp.outputs
|
|
73
|
+
.map((o) => ` (${o.name})="${o.name}.emit($event)"`)
|
|
74
|
+
.join('');
|
|
75
|
+
const template = `<${tag}${attrs} ${directiveAttr}${inputBindings}${outputBindings}>{{ __prismContent__() }}</${tag}>`;
|
|
76
|
+
const members = [];
|
|
77
|
+
for (const i of bindableInputs) {
|
|
78
|
+
members.push(` ${i.name} = ${formatInputDeclaration(i)};`);
|
|
79
|
+
}
|
|
80
|
+
for (const o of comp.outputs) {
|
|
81
|
+
members.push(` ${o.name} = output();`);
|
|
82
|
+
}
|
|
83
|
+
members.push(` __prismContent__ = input('');`);
|
|
84
|
+
const lines = [
|
|
85
|
+
`@Component({`,
|
|
86
|
+
` standalone: true,`,
|
|
87
|
+
` imports: ${importsArray},`,
|
|
88
|
+
` template: \`${template}\`,`,
|
|
89
|
+
`})`,
|
|
90
|
+
`class ${wrapperName} {`,
|
|
91
|
+
...members,
|
|
92
|
+
`}`,
|
|
93
|
+
];
|
|
94
|
+
return lines.join('\n');
|
|
95
|
+
}
|
|
96
|
+
function groupComponentsByImportPath(components, fallbackImportPath) {
|
|
97
|
+
const groups = new Map();
|
|
98
|
+
for (const comp of components) {
|
|
99
|
+
const path = comp.importPath ?? fallbackImportPath;
|
|
100
|
+
const list = groups.get(path);
|
|
101
|
+
if (list) {
|
|
102
|
+
list.push(comp.className);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
groups.set(path, [comp.className]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return groups;
|
|
109
|
+
}
|
|
110
|
+
export function generateRuntimeManifest(options) {
|
|
111
|
+
const { components, libraryImportPath, pages } = options;
|
|
112
|
+
const directives = components.filter((c) => c.componentMeta.isDirective);
|
|
113
|
+
const hasDirectives = directives.length > 0;
|
|
114
|
+
const lines = [
|
|
115
|
+
'// AUTO-GENERATED by ng-prism — do not edit!',
|
|
116
|
+
"import type { RuntimeManifest } from 'ng-prism/plugin';",
|
|
117
|
+
];
|
|
118
|
+
if (hasDirectives) {
|
|
119
|
+
lines.push("import { Component, input, output } from '@angular/core';");
|
|
120
|
+
}
|
|
121
|
+
if (components.length > 0) {
|
|
122
|
+
const groups = groupComponentsByImportPath(components, libraryImportPath);
|
|
123
|
+
for (const comp of directives) {
|
|
124
|
+
const host = comp.showcaseConfig.host;
|
|
125
|
+
if (host && typeof host === 'object' && 'import' in host) {
|
|
126
|
+
const hostObj = host;
|
|
127
|
+
const existing = groups.get(hostObj.import.from);
|
|
128
|
+
if (existing) {
|
|
129
|
+
if (!existing.includes(hostObj.import.name)) {
|
|
130
|
+
existing.push(hostObj.import.name);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
groups.set(hostObj.import.from, [hostObj.import.name]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
for (const [path, classNames] of groups) {
|
|
139
|
+
lines.push(`import { ${classNames.join(', ')} } from '${path}';`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (hasDirectives) {
|
|
143
|
+
lines.push('');
|
|
144
|
+
for (const comp of directives) {
|
|
145
|
+
lines.push(generateWrapperClass(comp));
|
|
146
|
+
lines.push('');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
lines.push('');
|
|
150
|
+
lines.push('export const PRISM_RUNTIME_MANIFEST: RuntimeManifest = {');
|
|
151
|
+
lines.push(' components: [');
|
|
152
|
+
for (const comp of components) {
|
|
153
|
+
const typeName = comp.componentMeta.isDirective
|
|
154
|
+
? `${comp.className}__PrismHost`
|
|
155
|
+
: comp.className;
|
|
156
|
+
lines.push(' {');
|
|
157
|
+
lines.push(` type: ${typeName},`);
|
|
158
|
+
lines.push(` meta: ${formatMeta(comp, 6)},`);
|
|
159
|
+
lines.push(' },');
|
|
160
|
+
}
|
|
161
|
+
lines.push(' ],');
|
|
162
|
+
if (pages && pages.length > 0) {
|
|
163
|
+
lines.push(` pages: ${JSON.stringify(pages, null, 2).split('\n').map((l, i) => i === 0 ? l : ' ' + l).join('\n')},`);
|
|
164
|
+
}
|
|
165
|
+
lines.push('};');
|
|
166
|
+
lines.push('');
|
|
167
|
+
return lines.join('\n');
|
|
168
|
+
}
|
|
169
|
+
function json(value) {
|
|
170
|
+
return JSON.stringify(value);
|
|
171
|
+
}
|
|
172
|
+
function indent(depth) {
|
|
173
|
+
return ' '.repeat(depth);
|
|
174
|
+
}
|
|
175
|
+
function formatMeta(comp, baseIndent) {
|
|
176
|
+
const inner = baseIndent + 2;
|
|
177
|
+
const lines = [
|
|
178
|
+
`${indent(inner)}className: ${json(comp.className)},`,
|
|
179
|
+
`${indent(inner)}filePath: ${json(comp.filePath)},`,
|
|
180
|
+
`${indent(inner)}showcaseConfig: ${formatObject(comp.showcaseConfig, inner)},`,
|
|
181
|
+
`${indent(inner)}inputs: ${formatArray(comp.inputs, inner)},`,
|
|
182
|
+
`${indent(inner)}outputs: ${formatArray(comp.outputs, inner)},`,
|
|
183
|
+
`${indent(inner)}componentMeta: ${formatObject(comp.componentMeta, inner)},`,
|
|
184
|
+
];
|
|
185
|
+
if (comp.meta && Object.keys(comp.meta).length > 0) {
|
|
186
|
+
lines.push(`${indent(inner)}meta: ${formatObject(comp.meta, inner)},`);
|
|
187
|
+
}
|
|
188
|
+
return `{\n${lines.join('\n')}\n${indent(baseIndent)}}`;
|
|
189
|
+
}
|
|
190
|
+
function formatObject(obj, baseIndent) {
|
|
191
|
+
const entries = Object.entries(obj).filter(([, v]) => v !== undefined);
|
|
192
|
+
if (entries.length === 0)
|
|
193
|
+
return '{}';
|
|
194
|
+
const inner = baseIndent + 2;
|
|
195
|
+
const lines = entries.map(([key, value]) => {
|
|
196
|
+
const formatted = Array.isArray(value)
|
|
197
|
+
? formatArray(value, inner)
|
|
198
|
+
: typeof value === 'object' && value !== null
|
|
199
|
+
? formatObject(value, inner)
|
|
200
|
+
: json(value);
|
|
201
|
+
return `${indent(inner)}${key}: ${formatted},`;
|
|
202
|
+
});
|
|
203
|
+
return `{\n${lines.join('\n')}\n${indent(baseIndent)}}`;
|
|
204
|
+
}
|
|
205
|
+
function formatArray(arr, baseIndent) {
|
|
206
|
+
if (arr.length === 0)
|
|
207
|
+
return '[]';
|
|
208
|
+
const inner = baseIndent + 2;
|
|
209
|
+
const items = arr.map((item) => {
|
|
210
|
+
const formatted = typeof item === 'object' && item !== null && !Array.isArray(item)
|
|
211
|
+
? formatObject(item, inner)
|
|
212
|
+
: json(item);
|
|
213
|
+
return `${indent(inner)}${formatted},`;
|
|
214
|
+
});
|
|
215
|
+
return `[\n${items.join('\n')}\n${indent(baseIndent)}]`;
|
|
216
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/plugin-runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { runPluginHooks } from './plugin-runner.js';
|