@ng-prism/core 22.5.0 → 22.7.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 +13 -9
- package/dist/app/canvas/canvas-bg.styles.d.ts +1 -1
- package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
- package/dist/app/canvas/canvas-bg.styles.js +1 -1
- package/dist/app/canvas/canvas-overlay-tokens.d.ts +12 -0
- package/dist/app/canvas/canvas-overlay-tokens.d.ts.map +1 -0
- package/dist/app/canvas/canvas-overlay-tokens.js +52 -0
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +2 -2
- package/dist/app/canvas/prism-canvas-pin-row.component.js +2 -2
- package/dist/app/canvas/prism-canvas-rulers.component.d.ts +2 -0
- package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-rulers.component.js +17 -12
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +25 -3
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +154 -89
- package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +16 -7
- package/dist/app/canvas/state-chips.d.ts +50 -0
- package/dist/app/canvas/state-chips.d.ts.map +1 -0
- package/dist/app/canvas/state-chips.js +40 -0
- package/dist/app/component-head/head-metrics.d.ts +35 -19
- package/dist/app/component-head/head-metrics.d.ts.map +1 -1
- package/dist/app/component-head/head-metrics.js +57 -27
- package/dist/app/component-head/pipe-facts.d.ts +9 -0
- package/dist/app/component-head/pipe-facts.d.ts.map +1 -0
- package/dist/app/component-head/pipe-facts.js +15 -0
- package/dist/app/component-head/prism-component-head.component.d.ts +20 -22
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-component-head.component.js +85 -96
- package/dist/app/component-head/prism-head-gauge.component.d.ts +8 -12
- package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-head-gauge.component.js +51 -67
- package/dist/app/component-head/prism-head-info.component.d.ts +14 -2
- package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-head-info.component.js +84 -20
- package/dist/app/component-head/prism-stat.component.d.ts +4 -5
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-stat.component.js +16 -12
- package/dist/app/component-head/service-facts.d.ts +8 -0
- package/dist/app/component-head/service-facts.d.ts.map +1 -0
- package/dist/app/component-head/service-facts.js +11 -0
- package/dist/app/controls/boolean-control.component.js +2 -2
- package/dist/app/controls/json-control.component.js +2 -2
- package/dist/app/controls/union-control.component.js +4 -3
- package/dist/app/directives/resize-value.d.ts +1 -1
- package/dist/app/directives/resize-value.js +1 -1
- package/dist/app/discovery-manifest.d.ts +2 -2
- package/dist/app/discovery-manifest.d.ts.map +1 -1
- package/dist/app/discovery-manifest.js +15 -3
- package/dist/app/header/header-brand.d.ts +25 -0
- package/dist/app/header/header-brand.d.ts.map +1 -0
- package/dist/app/header/header-brand.js +10 -0
- package/dist/app/header/prism-header.component.d.ts +2 -2
- package/dist/app/header/prism-header.component.d.ts.map +1 -1
- package/dist/app/header/prism-header.component.js +73 -57
- package/dist/app/icons/icon-registry.d.ts.map +1 -1
- package/dist/app/icons/icon-registry.js +4 -1
- package/dist/app/index.d.ts +12 -0
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +12 -1
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts +3 -0
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
- package/dist/app/layout-menu/prism-layout-menu.component.js +72 -58
- package/dist/app/overview/open-in-playground.d.ts +19 -0
- package/dist/app/overview/open-in-playground.d.ts.map +1 -0
- package/dist/app/overview/open-in-playground.js +25 -0
- package/dist/app/overview/overview-matrix.d.ts +85 -0
- package/dist/app/overview/overview-matrix.d.ts.map +1 -0
- package/dist/app/overview/overview-matrix.js +98 -0
- package/dist/app/overview/overview-visibility.d.ts +10 -2
- package/dist/app/overview/overview-visibility.d.ts.map +1 -1
- package/dist/app/overview/overview-visibility.js +14 -3
- package/dist/app/overview/prism-overview-cell.component.d.ts +27 -2
- package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview-cell.component.js +145 -28
- package/dist/app/overview/prism-overview-matrix.component.d.ts +29 -0
- package/dist/app/overview/prism-overview-matrix.component.d.ts.map +1 -0
- package/dist/app/overview/prism-overview-matrix.component.js +155 -0
- package/dist/app/overview/prism-overview.component.d.ts +4 -0
- package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview.component.js +37 -14
- package/dist/app/page-renderer/prism-page-renderer.component.js +2 -2
- package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-core.plugin.js +0 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.d.ts +1 -4
- package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.js +8 -19
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +2 -2
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +1 -0
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +4 -3
- package/dist/app/panels/a11y/a11y-panel.component.d.ts +4 -1
- package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +32 -54
- package/dist/app/panels/a11y/a11y-score.component.d.ts +8 -3
- package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-score.component.js +19 -35
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +2 -2
- package/dist/app/panels/a11y/a11y-sr.component.js +2 -2
- package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-summary.js +8 -1
- package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
- package/dist/app/panels/a11y/a11y-violations.component.d.ts +23 -2
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +104 -89
- package/dist/app/panels/a11y/severity.d.ts +9 -0
- package/dist/app/panels/a11y/severity.d.ts.map +1 -0
- package/dist/app/panels/a11y/severity.js +12 -0
- package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -1
- package/dist/app/panels/controls/controls-plugin.js +1 -2
- package/dist/app/panels/controls/non-editable-input-types.d.ts +9 -1
- package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
- package/dist/app/panels/controls/non-editable-input-types.js +18 -0
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts +2 -1
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
- package/dist/app/panels/controls/prism-controls-panel.component.js +77 -59
- package/dist/app/panels/events/events-plugin.d.ts.map +1 -1
- package/dist/app/panels/events/events-plugin.js +1 -2
- package/dist/app/panels/events/prism-events-panel.component.d.ts +2 -0
- package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
- package/dist/app/panels/events/prism-events-panel.component.js +20 -7
- package/dist/app/panels/events/prism-json-node.utils.d.ts +6 -0
- package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
- package/dist/app/panels/events/prism-json-node.utils.js +8 -0
- package/dist/app/panels/panel-host/addon-panels.d.ts +11 -0
- package/dist/app/panels/panel-host/addon-panels.d.ts.map +1 -0
- package/dist/app/panels/panel-host/addon-panels.js +12 -0
- package/dist/app/panels/panel-host/panel-badge.d.ts +22 -0
- package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
- package/dist/app/panels/panel-host/panel-badge.js +56 -11
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +4 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.js +36 -70
- package/dist/app/pseudo/pseudo-state-marker.d.ts +32 -10
- package/dist/app/pseudo/pseudo-state-marker.d.ts.map +1 -1
- package/dist/app/pseudo/pseudo-state-marker.js +83 -67
- package/dist/app/pseudo/pseudo-targets.d.ts +11 -0
- package/dist/app/pseudo/pseudo-targets.d.ts.map +1 -0
- package/dist/app/pseudo/pseudo-targets.js +46 -0
- package/dist/app/pseudo/state-fit.d.ts +28 -0
- package/dist/app/pseudo/state-fit.d.ts.map +1 -0
- package/dist/app/pseudo/state-fit.js +97 -0
- package/dist/app/renderer/composition.d.ts +20 -0
- package/dist/app/renderer/composition.d.ts.map +1 -0
- package/dist/app/renderer/composition.js +26 -0
- package/dist/app/renderer/input-bindings.d.ts +28 -0
- package/dist/app/renderer/input-bindings.d.ts.map +1 -0
- package/dist/app/renderer/input-bindings.js +42 -0
- package/dist/app/renderer/known-inputs.d.ts +8 -1
- package/dist/app/renderer/known-inputs.d.ts.map +1 -1
- package/dist/app/renderer/known-inputs.js +13 -5
- package/dist/app/renderer/prism-renderer.component.d.ts +18 -4
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +78 -44
- package/dist/app/renderer/projectable-content.d.ts +8 -1
- package/dist/app/renderer/projectable-content.d.ts.map +1 -1
- package/dist/app/renderer/projectable-content.js +40 -29
- package/dist/app/renderer/rendered-key.d.ts +20 -6
- package/dist/app/renderer/rendered-key.d.ts.map +1 -1
- package/dist/app/renderer/rendered-key.js +25 -8
- package/dist/app/renderer/snippet-generator.d.ts +14 -2
- package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
- package/dist/app/renderer/snippet-generator.js +138 -81
- package/dist/app/services/navigation-item.d.ts +10 -0
- package/dist/app/services/navigation-item.d.ts.map +1 -0
- package/dist/app/services/navigation-item.js +20 -0
- package/dist/app/services/navigation-item.types.d.ts +8 -0
- package/dist/app/services/navigation-item.types.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.d.ts +12 -0
- package/dist/app/services/prism-layout.service.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.js +17 -7
- package/dist/app/services/prism-manifest.service.d.ts +4 -0
- package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
- package/dist/app/services/prism-manifest.service.js +4 -0
- package/dist/app/services/prism-navigation.service.d.ts +12 -0
- package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
- package/dist/app/services/prism-navigation.service.js +85 -19
- package/dist/app/services/prism-panel.service.d.ts +7 -3
- package/dist/app/services/prism-panel.service.d.ts.map +1 -1
- package/dist/app/services/prism-panel.service.js +13 -4
- package/dist/app/services/prism-pseudo-state.service.d.ts +59 -14
- package/dist/app/services/prism-pseudo-state.service.d.ts.map +1 -1
- package/dist/app/services/prism-pseudo-state.service.js +86 -29
- package/dist/app/services/prism-renderer.service.d.ts +23 -0
- package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
- package/dist/app/services/prism-renderer.service.js +77 -8
- package/dist/app/services/prism-search.service.d.ts +4 -0
- package/dist/app/services/prism-search.service.d.ts.map +1 -1
- package/dist/app/services/prism-search.service.js +29 -6
- package/dist/app/services/prism-theme.service.d.ts +11 -3
- package/dist/app/services/prism-theme.service.d.ts.map +1 -1
- package/dist/app/services/prism-theme.service.js +27 -19
- package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
- package/dist/app/services/prism-url-state.service.js +81 -12
- package/dist/app/shared/badge.types.d.ts +7 -0
- package/dist/app/shared/badge.types.d.ts.map +1 -0
- package/dist/app/shared/badge.types.js +9 -0
- package/dist/app/shared/brand-mark.d.ts +35 -0
- package/dist/app/shared/brand-mark.d.ts.map +1 -0
- package/dist/app/shared/brand-mark.js +52 -0
- package/dist/app/shared/metric-bar.d.ts +6 -0
- package/dist/app/shared/metric-bar.d.ts.map +1 -0
- package/dist/app/shared/metric-bar.js +7 -0
- package/dist/app/shared/prism-badge.component.d.ts +21 -0
- package/dist/app/shared/prism-badge.component.d.ts.map +1 -0
- package/dist/app/shared/prism-badge.component.js +68 -0
- package/dist/app/shared/prism-button.component.d.ts +12 -0
- package/dist/app/shared/prism-button.component.d.ts.map +1 -0
- package/dist/app/shared/prism-button.component.js +28 -0
- package/dist/app/shared/prism-icon-button.component.d.ts +17 -0
- package/dist/app/shared/prism-icon-button.component.d.ts.map +1 -0
- package/dist/app/shared/prism-icon-button.component.js +37 -0
- package/dist/app/shared/prism-list-row.component.d.ts +17 -0
- package/dist/app/shared/prism-list-row.component.d.ts.map +1 -0
- package/dist/app/shared/prism-list-row.component.js +57 -0
- package/dist/app/shared/prism-logo.component.d.ts +24 -0
- package/dist/app/shared/prism-logo.component.d.ts.map +1 -0
- package/dist/app/shared/prism-logo.component.js +77 -0
- package/dist/app/shared/prism-metric-badge.component.d.ts +9 -4
- package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
- package/dist/app/shared/prism-metric-badge.component.js +33 -12
- package/dist/app/shared/prism-metric-card.component.d.ts +30 -0
- package/dist/app/shared/prism-metric-card.component.d.ts.map +1 -0
- package/dist/app/shared/prism-metric-card.component.js +111 -0
- package/dist/app/shared/prism-panel-toolbar.component.d.ts +13 -0
- package/dist/app/shared/prism-panel-toolbar.component.d.ts.map +1 -0
- package/dist/app/shared/prism-panel-toolbar.component.js +28 -0
- package/dist/app/shared/prism-segmented.component.d.ts +25 -0
- package/dist/app/shared/prism-segmented.component.d.ts.map +1 -0
- package/dist/app/shared/prism-segmented.component.js +77 -0
- package/dist/app/shared/prism-tabs.component.d.ts +44 -0
- package/dist/app/shared/prism-tabs.component.d.ts.map +1 -0
- package/dist/app/shared/prism-tabs.component.js +134 -0
- package/dist/app/shared/roving-focus.d.ts +13 -0
- package/dist/app/shared/roving-focus.d.ts.map +1 -0
- package/dist/app/shared/roving-focus.js +34 -0
- package/dist/app/shell/prism-shell.component.d.ts +13 -0
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +57 -28
- package/dist/app/shell/should-select-first.d.ts +17 -0
- package/dist/app/shell/should-select-first.d.ts.map +1 -0
- package/dist/app/shell/should-select-first.js +13 -0
- package/dist/app/sidebar/navigation-decorations.d.ts +23 -1
- package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
- package/dist/app/sidebar/navigation-decorations.js +33 -2
- package/dist/app/sidebar/prism-sidebar.component.d.ts +5 -15
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +89 -77
- package/dist/app/theme/deprecated-tokens.d.ts +15 -0
- package/dist/app/theme/deprecated-tokens.d.ts.map +1 -0
- package/dist/app/theme/deprecated-tokens.js +22 -0
- package/dist/app/theme/favicon.d.ts +3 -0
- package/dist/app/theme/favicon.d.ts.map +1 -0
- package/dist/app/theme/favicon.js +3 -0
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +122 -66
- package/dist/app/theme/resolve-theme-tokens.d.ts +29 -0
- package/dist/app/theme/resolve-theme-tokens.d.ts.map +1 -0
- package/dist/app/theme/resolve-theme-tokens.js +43 -0
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -7
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +31 -69
- package/dist/app/view-tab-bar/next-view-id.d.ts +7 -1
- package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -1
- package/dist/app/view-tab-bar/next-view-id.js +9 -1
- package/dist/app/view-tab-bar/panel-inputs.d.ts +28 -0
- package/dist/app/view-tab-bar/panel-inputs.d.ts.map +1 -0
- package/dist/app/view-tab-bar/panel-inputs.js +41 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +2 -3
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +9 -9
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +6 -0
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +22 -29
- package/dist/builder/config-loader/deprecated-options.d.ts +9 -0
- package/dist/builder/config-loader/deprecated-options.d.ts.map +1 -0
- package/dist/builder/config-loader/deprecated-options.js +34 -0
- package/dist/builder/manifest/composition-wrapper.generator.d.ts +14 -0
- package/dist/builder/manifest/composition-wrapper.generator.d.ts.map +1 -0
- package/dist/builder/manifest/composition-wrapper.generator.js +66 -0
- package/dist/builder/manifest/host-parser.d.ts +2 -0
- package/dist/builder/manifest/host-parser.d.ts.map +1 -1
- package/dist/builder/manifest/host-parser.js +9 -4
- package/dist/builder/manifest/manifest-imports.d.ts +34 -0
- package/dist/builder/manifest/manifest-imports.d.ts.map +1 -0
- package/dist/builder/manifest/manifest-imports.js +91 -0
- package/dist/builder/manifest/runtime-manifest.generator.d.ts +13 -0
- package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.js +137 -65
- package/dist/builder/manifest/selector-element.d.ts +16 -0
- package/dist/builder/manifest/selector-element.d.ts.map +1 -0
- package/dist/builder/manifest/selector-element.js +46 -0
- package/dist/builder/manifest/template-literal.d.ts +3 -0
- package/dist/builder/manifest/template-literal.d.ts.map +1 -0
- package/dist/builder/manifest/template-literal.js +4 -0
- package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
- package/dist/builder/plugin-runner/plugin-runner.js +29 -26
- package/dist/builder/scanner/api/angular-decorators.d.ts +84 -0
- package/dist/builder/scanner/api/angular-decorators.d.ts.map +1 -0
- package/dist/builder/scanner/api/angular-decorators.js +157 -0
- package/dist/builder/scanner/api/component-api.extractor.d.ts +13 -0
- package/dist/builder/scanner/api/component-api.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/api/component-api.extractor.js +104 -0
- package/dist/builder/scanner/api/doc-tags.d.ts +13 -0
- package/dist/builder/scanner/api/doc-tags.d.ts.map +1 -0
- package/dist/builder/scanner/api/doc-tags.js +101 -0
- package/dist/builder/scanner/api/export-index.d.ts +18 -0
- package/dist/builder/scanner/api/export-index.d.ts.map +1 -0
- package/dist/builder/scanner/api/export-index.js +22 -0
- package/dist/builder/scanner/api/member.extractor.d.ts +90 -0
- package/dist/builder/scanner/api/member.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/api/member.extractor.js +270 -0
- package/dist/builder/scanner/api/pipe-api.extractor.d.ts +12 -0
- package/dist/builder/scanner/api/pipe-api.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/api/pipe-api.extractor.js +52 -0
- package/dist/builder/scanner/api/service-api.extractor.d.ts +14 -0
- package/dist/builder/scanner/api/service-api.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/api/service-api.extractor.js +119 -0
- package/dist/builder/scanner/api/setup.reader.d.ts +26 -0
- package/dist/builder/scanner/api/setup.reader.d.ts.map +1 -0
- package/dist/builder/scanner/api/setup.reader.js +89 -0
- package/dist/builder/scanner/api/type-collector.d.ts +24 -0
- package/dist/builder/scanner/api/type-collector.d.ts.map +1 -0
- package/dist/builder/scanner/api/type-collector.js +211 -0
- package/dist/builder/scanner/ast-utils.d.ts +8 -0
- package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
- package/dist/builder/scanner/ast-utils.js +37 -1
- package/dist/builder/scanner/class-hierarchy.d.ts +5 -3
- package/dist/builder/scanner/class-hierarchy.d.ts.map +1 -1
- package/dist/builder/scanner/class-hierarchy.js +12 -6
- package/dist/builder/scanner/component.scanner.d.ts +60 -6
- package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
- package/dist/builder/scanner/component.scanner.js +229 -58
- package/dist/builder/scanner/composition/compose-template.d.ts +36 -0
- package/dist/builder/scanner/composition/compose-template.d.ts.map +1 -0
- package/dist/builder/scanner/composition/compose-template.js +187 -0
- package/dist/builder/scanner/composition/declarables.d.ts +54 -0
- package/dist/builder/scanner/composition/declarables.d.ts.map +1 -0
- package/dist/builder/scanner/composition/declarables.js +182 -0
- package/dist/builder/scanner/composition/match-declarables.d.ts +43 -0
- package/dist/builder/scanner/composition/match-declarables.d.ts.map +1 -0
- package/dist/builder/scanner/composition/match-declarables.js +131 -0
- package/dist/builder/scanner/composition/read-composition.d.ts +77 -0
- package/dist/builder/scanner/composition/read-composition.d.ts.map +1 -0
- package/dist/builder/scanner/composition/read-composition.js +302 -0
- package/dist/builder/scanner/composition/template-elements.d.ts +12 -0
- package/dist/builder/scanner/composition/template-elements.d.ts.map +1 -0
- package/dist/builder/scanner/composition/template-elements.js +41 -0
- package/dist/builder/scanner/entry-point-discovery.d.ts +5 -0
- package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -1
- package/dist/builder/scanner/entry-point-discovery.js +14 -0
- package/dist/builder/scanner/entry-point.scanner.d.ts +3 -1
- package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -1
- package/dist/builder/scanner/entry-point.scanner.js +7 -6
- package/dist/builder/scanner/index.d.ts +4 -0
- package/dist/builder/scanner/index.d.ts.map +1 -1
- package/dist/builder/scanner/index.js +2 -0
- package/dist/builder/scanner/input.extractor.d.ts +31 -2
- package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
- package/dist/builder/scanner/input.extractor.js +73 -17
- package/dist/builder/scanner/pipe.scanner.d.ts +29 -0
- package/dist/builder/scanner/pipe.scanner.d.ts.map +1 -0
- package/dist/builder/scanner/pipe.scanner.js +65 -0
- package/dist/builder/scanner/pseudo-states.d.ts +1 -0
- package/dist/builder/scanner/pseudo-states.d.ts.map +1 -1
- package/dist/builder/scanner/pseudo-states.js +1 -1
- package/dist/builder/scanner/scanner.d.ts +27 -3
- package/dist/builder/scanner/scanner.d.ts.map +1 -1
- package/dist/builder/scanner/scanner.js +68 -24
- package/dist/builder/scanner/service/angular-decorators.d.ts +80 -0
- package/dist/builder/scanner/service/angular-decorators.d.ts.map +1 -0
- package/dist/builder/scanner/service/angular-decorators.js +154 -0
- package/dist/builder/scanner/service/doc-tags.d.ts +13 -0
- package/dist/builder/scanner/service/doc-tags.d.ts.map +1 -0
- package/dist/builder/scanner/service/doc-tags.js +97 -0
- package/dist/builder/scanner/service/export-index.d.ts +18 -0
- package/dist/builder/scanner/service/export-index.d.ts.map +1 -0
- package/dist/builder/scanner/service/export-index.js +22 -0
- package/dist/builder/scanner/service/member.extractor.d.ts +65 -0
- package/dist/builder/scanner/service/member.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/service/member.extractor.js +216 -0
- package/dist/builder/scanner/service/pipe-api.extractor.d.ts +12 -0
- package/dist/builder/scanner/service/pipe-api.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/service/pipe-api.extractor.js +72 -0
- package/dist/builder/scanner/service/service-api.extractor.d.ts +14 -0
- package/dist/builder/scanner/service/service-api.extractor.d.ts.map +1 -0
- package/dist/builder/scanner/service/service-api.extractor.js +119 -0
- package/dist/builder/scanner/service/setup.reader.d.ts +26 -0
- package/dist/builder/scanner/service/setup.reader.d.ts.map +1 -0
- package/dist/builder/scanner/service/setup.reader.js +89 -0
- package/dist/builder/scanner/service/type-collector.d.ts +23 -0
- package/dist/builder/scanner/service/type-collector.d.ts.map +1 -0
- package/dist/builder/scanner/service/type-collector.js +210 -0
- package/dist/builder/scanner/service.scanner.d.ts +26 -0
- package/dist/builder/scanner/service.scanner.d.ts.map +1 -0
- package/dist/builder/scanner/service.scanner.js +61 -0
- package/dist/builder/scanner/showcase-diagnostics.d.ts +60 -1
- package/dist/builder/scanner/showcase-diagnostics.d.ts.map +1 -1
- package/dist/builder/scanner/showcase-diagnostics.js +123 -10
- package/dist/builder/scanner/showcase-states.d.ts +17 -0
- package/dist/builder/scanner/showcase-states.d.ts.map +1 -0
- package/dist/builder/scanner/showcase-states.js +58 -0
- package/dist/builder/scanner/source-file-cache.d.ts +26 -0
- package/dist/builder/scanner/source-file-cache.d.ts.map +1 -0
- package/dist/builder/scanner/source-file-cache.js +60 -0
- package/dist/builder/shared/prism-pipeline.d.ts +6 -0
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +71 -18
- package/dist/decorator/index.d.ts +1 -1
- package/dist/decorator/index.d.ts.map +1 -1
- package/dist/decorator/showcase.types.d.ts +102 -9
- package/dist/decorator/showcase.types.d.ts.map +1 -1
- package/dist/plugin/index.d.ts +6 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +4 -0
- package/dist/plugin/pipe.types.d.ts +36 -0
- package/dist/plugin/pipe.types.d.ts.map +1 -0
- package/dist/plugin/pipe.types.js +1 -0
- package/dist/plugin/plugin.types.d.ts +184 -8
- package/dist/plugin/plugin.types.d.ts.map +1 -1
- package/dist/plugin/service.types.d.ts +124 -0
- package/dist/plugin/service.types.d.ts.map +1 -0
- package/dist/plugin/service.types.js +1 -0
- package/dist/plugin/status.d.ts +27 -0
- package/dist/plugin/status.d.ts.map +1 -0
- package/dist/plugin/status.js +26 -0
- package/dist/shared/composition.d.ts +30 -0
- package/dist/shared/composition.d.ts.map +1 -0
- package/dist/shared/composition.js +29 -0
- package/dist/shared/pseudo-state.type.d.ts +2 -1
- package/dist/shared/pseudo-state.type.d.ts.map +1 -1
- package/dist/shared/void-elements.d.ts +3 -0
- package/dist/shared/void-elements.d.ts.map +1 -0
- package/dist/shared/void-elements.js +2 -0
- package/package.json +1 -1
- package/src/builder/build/schema.json +6 -6
- package/src/builder/serve/schema.json +6 -6
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { COMPOSITION_SUBJECT_SLOT } from '../../shared/composition.js';
|
|
2
|
+
import { VOID_ELEMENTS } from '../../shared/void-elements.js';
|
|
3
|
+
import { PRISM_CONTENT_INPUT } from './input-bindings.js';
|
|
4
|
+
/** The value a directive's host renders its text content through: the snippet writes it as content, never as an attribute. */
|
|
5
|
+
const HOST_CONTENT_KEYS = new Set([PRISM_CONTENT_INPUT]);
|
|
1
6
|
function escapeAttrValue(value) {
|
|
2
7
|
return String(value).replace(/&/g, '&').replace(/"/g, '"');
|
|
3
8
|
}
|
|
@@ -18,14 +23,18 @@ function pushAttribute(attributes, name, value) {
|
|
|
18
23
|
attributes.push(`[${name}]="${escapeAttrValue(value)}"`);
|
|
19
24
|
}
|
|
20
25
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
/**
|
|
27
|
+
* The attributes that put the current values on the subject element. A value that equals its default is left out unless
|
|
28
|
+
* the variant sets it (`explicitKeys`); `skip` holds the member names of inputs that are not written at all, such as
|
|
29
|
+
* the ones a composition does not bind.
|
|
30
|
+
*/
|
|
31
|
+
export function subjectAttributes(inputs, values, explicitKeys, skip) {
|
|
25
32
|
const attributes = [];
|
|
26
|
-
const processed = new Set();
|
|
33
|
+
const processed = new Set(skip);
|
|
27
34
|
for (const input of inputs) {
|
|
28
35
|
processed.add(input.name);
|
|
36
|
+
if (skip?.has(input.name))
|
|
37
|
+
continue;
|
|
29
38
|
const value = values[input.name];
|
|
30
39
|
if (value === undefined)
|
|
31
40
|
continue;
|
|
@@ -35,7 +44,7 @@ export function generateSnippet(selector, inputs, values, explicitKeys, content,
|
|
|
35
44
|
// that defaults to `true` has to show its explicit `false`.
|
|
36
45
|
if (input.defaultValue === undefined && typeof value === 'boolean' && !value)
|
|
37
46
|
continue;
|
|
38
|
-
pushAttribute(attributes, input.name, value);
|
|
47
|
+
pushAttribute(attributes, input.alias ?? input.name, value);
|
|
39
48
|
}
|
|
40
49
|
for (const [name, value] of Object.entries(values)) {
|
|
41
50
|
if (processed.has(name))
|
|
@@ -46,48 +55,137 @@ export function generateSnippet(selector, inputs, values, explicitKeys, content,
|
|
|
46
55
|
continue;
|
|
47
56
|
pushAttribute(attributes, name, value);
|
|
48
57
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
return attributes;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The composition of a case as its author wrote it, with `attributes` on the subject element in place of the slot
|
|
62
|
+
* ng-prism leaves in `CompositionCase.template`. Only a bare attribute of the subject that one of them gives a value
|
|
63
|
+
* (`libTooltip`, which the selector asks for) is left out, as `attributes` writes it again.
|
|
64
|
+
*/
|
|
65
|
+
export function generateCompositionSnippet(caseTemplate, attributes) {
|
|
66
|
+
const written = attributes.length > 0 ? ` ${attributes.join(' ')}` : '';
|
|
67
|
+
const names = attributes.map((attribute) => attribute.split('=')[0].replace(/^\[(.*)\]$/, '$1'));
|
|
68
|
+
const parts = caseTemplate.split(COMPOSITION_SUBJECT_SLOT);
|
|
69
|
+
// The slot ends the subject's start tag, so each part but the last ends with one.
|
|
70
|
+
return parts.map((part, index) => (index < parts.length - 1 ? withoutBareAttributes(part, names) : part)).join(written);
|
|
71
|
+
}
|
|
72
|
+
/** `text` without the bare attributes `names` in the start tag it ends with. */
|
|
73
|
+
function withoutBareAttributes(text, names) {
|
|
74
|
+
const start = text.lastIndexOf('<');
|
|
75
|
+
if (start < 0)
|
|
76
|
+
return text;
|
|
77
|
+
const startTag = names.reduce((tag, name) => tag.replace(new RegExp(`\\s+${name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(?=\\s|$)`), ''), text.slice(start));
|
|
78
|
+
return text.slice(0, start) + startTag;
|
|
79
|
+
}
|
|
80
|
+
export function generateSnippet(selector, inputs, values, explicitKeys, content, directiveOptions) {
|
|
81
|
+
const host = directiveOptions?.host;
|
|
82
|
+
// A `{ template }` host is not shown yet: the snippet is the directive's selector, as without a host.
|
|
83
|
+
if (host && !(typeof host === 'object' && 'template' in host)) {
|
|
84
|
+
return generateDirectiveSnippet(selector, inputs, values, explicitKeys, content, host);
|
|
85
|
+
}
|
|
86
|
+
// A directive without a host renders on the element of its selector, with its text content in `__prismContent__`.
|
|
87
|
+
const attributes = subjectAttributes(inputs, values, explicitKeys, HOST_CONTENT_KEYS);
|
|
88
|
+
const element = selectorToElement(selector);
|
|
89
|
+
const selectorAttributes = unwrittenSelectorAttributes(element.attributes, attributes);
|
|
90
|
+
return renderElement(element.tag, [...selectorAttributes, ...attributes], resolveContentHtml(content ?? hostContentValue(values)));
|
|
91
|
+
}
|
|
92
|
+
function hostContentValue(values) {
|
|
93
|
+
const value = values[PRISM_CONTENT_INPUT];
|
|
94
|
+
return typeof value === 'string' ? value : undefined;
|
|
95
|
+
}
|
|
96
|
+
/** The parts of a selector list. `:not()` is ignored. */
|
|
97
|
+
function selectorParts(selector) {
|
|
98
|
+
return selector
|
|
99
|
+
.replace(/:not\([^)]*\)/g, '')
|
|
100
|
+
.split(',')
|
|
101
|
+
.map((part) => {
|
|
102
|
+
const text = part.trim();
|
|
103
|
+
const tag = text.match(/^[a-zA-Z][\w-]*/)?.[0];
|
|
104
|
+
const attributes = [];
|
|
105
|
+
const classNames = [];
|
|
106
|
+
for (const [, name, value, className] of text.slice(tag?.length ?? 0).matchAll(/\[([^\]=]+)(?:=["']?([^\]"']*)["']?)?\]|\.([\w-]+)/g)) {
|
|
107
|
+
if (className) {
|
|
108
|
+
classNames.push(className);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
attributes.push(value ? `${name}="${escapeAttrValue(value)}"` : name);
|
|
112
|
+
}
|
|
53
113
|
}
|
|
54
|
-
|
|
55
|
-
|
|
114
|
+
if (classNames.length > 0)
|
|
115
|
+
attributes.push(`class="${classNames.join(' ')}"`);
|
|
116
|
+
return { tag, attributes };
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The element and the attributes a component's selector asks for: `button[libBtn]` is `<button libBtn>`. Of a selector
|
|
121
|
+
* list only the first part counts, and a selector without an element is a `div`, as when the styleguide renders it.
|
|
122
|
+
*/
|
|
123
|
+
function selectorToElement(selector) {
|
|
124
|
+
const [first] = selectorParts(selector);
|
|
125
|
+
return { tag: first.tag ?? 'div', attributes: first.attributes };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The attributes of a directive's selector that put it on a host element `tag`: those of the first part of a selector
|
|
129
|
+
* list that names `tag` or no element, as the generated wrapper takes them. When no part fits, the first part's.
|
|
130
|
+
*/
|
|
131
|
+
function selectorAttributesOnHost(selector, tag) {
|
|
132
|
+
const parts = selectorParts(selector);
|
|
133
|
+
const fitting = parts.find((part) => (part.tag ?? tag).toLowerCase() === tag.toLowerCase()) ?? parts[0];
|
|
134
|
+
return fitting.attributes;
|
|
135
|
+
}
|
|
136
|
+
/** The attributes of a selector that no written attribute sets yet: an input aliased to one of them gives it its value. */
|
|
137
|
+
function unwrittenSelectorAttributes(selectorAttributes, written) {
|
|
138
|
+
return selectorAttributes.filter((attribute) => {
|
|
139
|
+
const name = attribute.split('=')[0];
|
|
140
|
+
return !written.some((w) => w.startsWith(`${name}=`) || w.startsWith(`[${name}]=`));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* One element, on a single line when it fits in 80 characters. A void element takes no content and no end tag
|
|
145
|
+
* (`<input>` and `<input />` are valid, `<input>text</input>` is not). Only void and custom elements may close
|
|
146
|
+
* themselves: Angular rejects `<button />`, so any other element without content gets its end tag.
|
|
147
|
+
*/
|
|
148
|
+
function renderElement(tag, attributes, contentHtml) {
|
|
149
|
+
const attrStr = attributes.length > 0 ? ` ${attributes.join(' ')}` : '';
|
|
150
|
+
const indented = attributes.map((attr) => ` ${attr}`).join('\n');
|
|
151
|
+
const content = VOID_ELEMENTS.has(tag.toLowerCase()) ? undefined : contentHtml;
|
|
152
|
+
if (!content) {
|
|
153
|
+
const selfClosing = VOID_ELEMENTS.has(tag.toLowerCase()) || tag.includes('-');
|
|
154
|
+
const end = selfClosing ? ' />' : `></${tag}>`;
|
|
155
|
+
const singleLine = `<${tag}${attrStr}${end}`;
|
|
156
|
+
if (attributes.length === 0 || singleLine.length <= 80)
|
|
56
157
|
return singleLine;
|
|
57
|
-
}
|
|
58
|
-
const indented = attributes.map((attr) => ` ${attr}`).join('\n');
|
|
59
|
-
return `<${selector}\n${indented} />`;
|
|
158
|
+
return `<${tag}\n${indented}${end}`;
|
|
60
159
|
}
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
if (singleLine.length <= 80) {
|
|
160
|
+
const openTag = `<${tag}${attrStr}>`;
|
|
161
|
+
const closeTag = `</${tag}>`;
|
|
162
|
+
const singleLine = `${openTag}${content}${closeTag}`;
|
|
163
|
+
if (singleLine.length <= 80)
|
|
66
164
|
return singleLine;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
const indented = attributes.map((attr) => ` ${attr}`).join('\n');
|
|
72
|
-
return `<${selector}\n${indented}>\n ${contentHtml}\n${closeTag}`;
|
|
73
|
-
}
|
|
74
|
-
function directiveSelectorToAttr(selector) {
|
|
75
|
-
const match = selector.match(/^\[([^\]]+)]$/);
|
|
76
|
-
return match ? match[1] : selector;
|
|
165
|
+
if (attributes.length <= 2)
|
|
166
|
+
return `${openTag}\n ${content}\n${closeTag}`;
|
|
167
|
+
return `<${tag}\n${indented}>\n ${content}\n${closeTag}`;
|
|
77
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* The element a string host starts with, its attributes as written, and the content between its start and end tag
|
|
171
|
+
* (`<button class="btn">Hover me</button>`): that content is what the host renders when a variant sets none.
|
|
172
|
+
*/
|
|
78
173
|
function parseHostStringSimple(host) {
|
|
79
|
-
const
|
|
80
|
-
if (!
|
|
174
|
+
const start = host.match(/^\s*<\s*([a-zA-Z][\w-]*)([^>]*?)\s*\/?\s*>/);
|
|
175
|
+
if (!start)
|
|
81
176
|
return { tag: 'div', attrs: '' };
|
|
82
|
-
|
|
177
|
+
const [opening, tag, attrs] = start;
|
|
178
|
+
const content = host.slice(opening.length).match(new RegExp(`^([\\s\\S]*?)<\\/\\s*${tag}\\s*>\\s*$`, 'i'))?.[1];
|
|
179
|
+
return { tag, attrs: attrs.trim(), content };
|
|
83
180
|
}
|
|
84
181
|
function generateDirectiveSnippet(selector, inputs, values, explicitKeys, content, host) {
|
|
85
|
-
const directiveAttr = directiveSelectorToAttr(selector);
|
|
86
182
|
let tag;
|
|
183
|
+
let hostContent;
|
|
87
184
|
const hostAttrs = [];
|
|
88
185
|
if (typeof host === 'string') {
|
|
89
186
|
const parsed = parseHostStringSimple(host);
|
|
90
187
|
tag = parsed.tag;
|
|
188
|
+
hostContent = parsed.content;
|
|
91
189
|
if (parsed.attrs)
|
|
92
190
|
hostAttrs.push(parsed.attrs);
|
|
93
191
|
}
|
|
@@ -99,53 +197,12 @@ function generateDirectiveSnippet(selector, inputs, values, explicitKeys, conten
|
|
|
99
197
|
}
|
|
100
198
|
}
|
|
101
199
|
}
|
|
102
|
-
const attributes =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
continue;
|
|
109
|
-
if (input.defaultValue !== undefined && value === input.defaultValue && !explicitKeys?.has(input.name))
|
|
110
|
-
continue;
|
|
111
|
-
// Only a guess, and only sound when no default is known: a boolean input
|
|
112
|
-
// that defaults to `true` has to show its explicit `false`.
|
|
113
|
-
if (input.defaultValue === undefined && typeof value === 'boolean' && !value)
|
|
114
|
-
continue;
|
|
115
|
-
pushAttribute(attributes, input.name, value);
|
|
116
|
-
}
|
|
117
|
-
for (const [name, value] of Object.entries(values)) {
|
|
118
|
-
if (processed.has(name))
|
|
119
|
-
continue;
|
|
120
|
-
if (value === undefined)
|
|
121
|
-
continue;
|
|
122
|
-
if (typeof value === 'boolean' && !value)
|
|
123
|
-
continue;
|
|
124
|
-
pushAttribute(attributes, name, value);
|
|
125
|
-
}
|
|
126
|
-
const projectedContent = content ?? (typeof values['__prismContent__'] === 'string' ? values['__prismContent__'] : undefined);
|
|
127
|
-
const allAttrs = [...hostAttrs, directiveAttr, ...attributes].join(' ');
|
|
128
|
-
const contentHtml = resolveContentHtml(projectedContent);
|
|
129
|
-
if (!contentHtml) {
|
|
130
|
-
if (!allAttrs)
|
|
131
|
-
return `<${tag} />`;
|
|
132
|
-
const singleLine = `<${tag} ${allAttrs} />`;
|
|
133
|
-
if (singleLine.length <= 80)
|
|
134
|
-
return singleLine;
|
|
135
|
-
const indented = [...hostAttrs, directiveAttr, ...attributes].map((a) => ` ${a}`).join('\n');
|
|
136
|
-
return `<${tag}\n${indented} />`;
|
|
137
|
-
}
|
|
138
|
-
const openTag = `<${tag} ${allAttrs}>`;
|
|
139
|
-
const closeTag = `</${tag}>`;
|
|
140
|
-
const singleLine = `${openTag}${contentHtml}${closeTag}`;
|
|
141
|
-
if (singleLine.length <= 80)
|
|
142
|
-
return singleLine;
|
|
143
|
-
const allAttrsList = [...hostAttrs, directiveAttr, ...attributes];
|
|
144
|
-
if (allAttrsList.length <= 2) {
|
|
145
|
-
return `${openTag}\n ${contentHtml}\n${closeTag}`;
|
|
146
|
-
}
|
|
147
|
-
const indented = allAttrsList.map((a) => ` ${a}`).join('\n');
|
|
148
|
-
return `<${tag}\n${indented}>\n ${contentHtml}\n${closeTag}`;
|
|
200
|
+
const attributes = subjectAttributes(inputs, values, explicitKeys, HOST_CONTENT_KEYS);
|
|
201
|
+
// The variant's content, else the content of the host: the generated host's `__prismContent__` defaults to it.
|
|
202
|
+
const projectedContent = content ?? hostContentValue(values) ?? hostContent;
|
|
203
|
+
// An input aliased to an attribute of the directive's selector already puts the directive on the host.
|
|
204
|
+
const selectorAttrs = unwrittenSelectorAttributes(selectorAttributesOnHost(selector, tag), attributes);
|
|
205
|
+
return renderElement(tag, [...hostAttrs, ...selectorAttrs, ...attributes], resolveContentHtml(projectedContent));
|
|
149
206
|
}
|
|
150
207
|
function resolveContentHtml(content) {
|
|
151
208
|
if (!content)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ShowcaseConfig } from '../../decorator/showcase.types.js';
|
|
2
|
+
import type { NavigationItem } from './navigation-item.types.js';
|
|
3
|
+
/** The `@Showcase` config behind a component, a service or a pipe, `undefined` for a page, which has none. */
|
|
4
|
+
export declare function itemShowcaseConfig(item: NavigationItem): ShowcaseConfig | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Identifies an item in a list. The prefixes keep a service, a pipe and a page
|
|
7
|
+
* from colliding with a component of the same name or title.
|
|
8
|
+
*/
|
|
9
|
+
export declare function itemKey(item: NavigationItem): string;
|
|
10
|
+
//# sourceMappingURL=navigation-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-item.d.ts","sourceRoot":"","sources":["../../../src/app/services/navigation-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,8GAA8G;AAC9G,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAEnF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAWpD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The `@Showcase` config behind a component, a service or a pipe, `undefined` for a page, which has none. */
|
|
2
|
+
export function itemShowcaseConfig(item) {
|
|
3
|
+
return item.kind === 'page' ? undefined : item.data.meta.showcaseConfig;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Identifies an item in a list. The prefixes keep a service, a pipe and a page
|
|
7
|
+
* from colliding with a component of the same name or title.
|
|
8
|
+
*/
|
|
9
|
+
export function itemKey(item) {
|
|
10
|
+
switch (item.kind) {
|
|
11
|
+
case 'component':
|
|
12
|
+
return item.data.meta.className;
|
|
13
|
+
case 'service':
|
|
14
|
+
return `service:${item.data.meta.className}`;
|
|
15
|
+
case 'pipe':
|
|
16
|
+
return `pipe:${item.data.meta.className}`;
|
|
17
|
+
case 'page':
|
|
18
|
+
return `page:${item.data.title}`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { StyleguidePage } from '../../plugin/page.types.js';
|
|
2
|
+
import type { RuntimePipe } from '../../plugin/pipe.types.js';
|
|
2
3
|
import type { RuntimeComponent } from '../../plugin/plugin.types.js';
|
|
4
|
+
import type { RuntimeService } from '../../plugin/service.types.js';
|
|
3
5
|
export type NavigationItem = {
|
|
4
6
|
kind: 'component';
|
|
5
7
|
data: RuntimeComponent;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'service';
|
|
10
|
+
data: RuntimeService;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'pipe';
|
|
13
|
+
data: RuntimePipe;
|
|
6
14
|
} | {
|
|
7
15
|
kind: 'page';
|
|
8
16
|
data: StyleguidePage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-item.types.d.ts","sourceRoot":"","sources":["../../../src/app/services/navigation-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation-item.types.d.ts","sourceRoot":"","sources":["../../../src/app/services/navigation-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,MAAM,cAAc,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
/** Bounds and default of the sidebar width, shared by the service, the resizer and the shell's CSS fallback. */
|
|
3
|
+
export declare const SIDEBAR_WIDTH: {
|
|
4
|
+
readonly min: 200;
|
|
5
|
+
readonly max: 360;
|
|
6
|
+
readonly default: 280;
|
|
7
|
+
};
|
|
8
|
+
/** Bounds and default of the addon panel height. */
|
|
9
|
+
export declare const PANEL_HEIGHT: {
|
|
10
|
+
readonly min: 200;
|
|
11
|
+
readonly max: 560;
|
|
12
|
+
readonly default: 300;
|
|
13
|
+
};
|
|
2
14
|
export declare class PrismLayoutService {
|
|
3
15
|
readonly sidebarVisible: import("@angular/core").WritableSignal<boolean>;
|
|
4
16
|
readonly addonsVisible: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,qBACa,kBAAkB;IAC3B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,gHAAgH;AAChH,eAAO,MAAM,aAAa;;;;CAAgD,CAAC;AAE3E,oDAAoD;AACpD,eAAO,MAAM,YAAY;;;;CAAgD,CAAC;AAI1E,qBACa,kBAAkB;IAC3B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,iDAAyC;IAC9D,QAAQ,CAAC,WAAW,iDAAwC;IAC5D,QAAQ,CAAC,UAAU,iDAAe;;IAMlC,aAAa,IAAI,IAAI;IAKrB,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,IAAI;IAKrB,iBAAiB,IAAI,IAAI;IAKzB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,aAAa;yCArEZ,kBAAkB;;CAsF9B"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Injectable, signal } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
const STORAGE_KEY = 'ng-prism-layout';
|
|
4
|
+
/** Bounds and default of the sidebar width, shared by the service, the resizer and the shell's CSS fallback. */
|
|
5
|
+
export const SIDEBAR_WIDTH = { min: 200, max: 360, default: 280 };
|
|
6
|
+
/** Bounds and default of the addon panel height. */
|
|
7
|
+
export const PANEL_HEIGHT = { min: 200, max: 560, default: 300 };
|
|
8
|
+
const clamp = (bounds, px) => Math.max(bounds.min, Math.min(bounds.max, px));
|
|
4
9
|
export class PrismLayoutService {
|
|
5
10
|
sidebarVisible = signal(true, /* @ts-ignore */
|
|
6
11
|
...(ngDevMode ? [{ debugName: "sidebarVisible" }] : /* istanbul ignore next */ []));
|
|
@@ -10,9 +15,9 @@ export class PrismLayoutService {
|
|
|
10
15
|
...(ngDevMode ? [{ debugName: "toolbarVisible" }] : /* istanbul ignore next */ []));
|
|
11
16
|
addonsOrientation = signal('bottom', /* @ts-ignore */
|
|
12
17
|
...(ngDevMode ? [{ debugName: "addonsOrientation" }] : /* istanbul ignore next */ []));
|
|
13
|
-
sidebarWidth = signal(
|
|
18
|
+
sidebarWidth = signal(SIDEBAR_WIDTH.default, /* @ts-ignore */
|
|
14
19
|
...(ngDevMode ? [{ debugName: "sidebarWidth" }] : /* istanbul ignore next */ []));
|
|
15
|
-
panelHeight = signal(
|
|
20
|
+
panelHeight = signal(PANEL_HEIGHT.default, /* @ts-ignore */
|
|
16
21
|
...(ngDevMode ? [{ debugName: "panelHeight" }] : /* istanbul ignore next */ []));
|
|
17
22
|
panelWidth = signal(320, /* @ts-ignore */
|
|
18
23
|
...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
|
|
@@ -36,11 +41,11 @@ export class PrismLayoutService {
|
|
|
36
41
|
this.saveToStorage();
|
|
37
42
|
}
|
|
38
43
|
setSidebarWidth(px) {
|
|
39
|
-
this.sidebarWidth.set(
|
|
44
|
+
this.sidebarWidth.set(clamp(SIDEBAR_WIDTH, px));
|
|
40
45
|
this.saveToStorage();
|
|
41
46
|
}
|
|
42
47
|
setPanelHeight(px) {
|
|
43
|
-
this.panelHeight.set(
|
|
48
|
+
this.panelHeight.set(clamp(PANEL_HEIGHT, px));
|
|
44
49
|
this.saveToStorage();
|
|
45
50
|
}
|
|
46
51
|
setPanelWidth(px) {
|
|
@@ -63,9 +68,9 @@ export class PrismLayoutService {
|
|
|
63
68
|
this.addonsOrientation.set(d['addonsOrientation']);
|
|
64
69
|
}
|
|
65
70
|
if (typeof d['sidebarWidth'] === 'number')
|
|
66
|
-
this.sidebarWidth.set(
|
|
71
|
+
this.sidebarWidth.set(clamp(SIDEBAR_WIDTH, d['sidebarWidth']));
|
|
67
72
|
if (typeof d['panelHeight'] === 'number')
|
|
68
|
-
this.panelHeight.set(
|
|
73
|
+
this.panelHeight.set(clamp(PANEL_HEIGHT, d['panelHeight']));
|
|
69
74
|
if (typeof d['panelWidth'] === 'number')
|
|
70
75
|
this.panelWidth.set(Math.max(200, Math.min(600, d['panelWidth'])));
|
|
71
76
|
}
|
|
@@ -83,7 +88,12 @@ export class PrismLayoutService {
|
|
|
83
88
|
panelHeight: this.panelHeight(),
|
|
84
89
|
panelWidth: this.panelWidth()
|
|
85
90
|
};
|
|
86
|
-
|
|
91
|
+
try {
|
|
92
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Storage full or blocked: the layout still applies for this session.
|
|
96
|
+
}
|
|
87
97
|
}
|
|
88
98
|
static ɵfac = function PrismLayoutService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismLayoutService)(); };
|
|
89
99
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrismLayoutService, factory: PrismLayoutService.ɵfac, providedIn: 'root' });
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { StyleguidePage } from '../../plugin/page.types.js';
|
|
2
|
+
import type { RuntimePipe } from '../../plugin/pipe.types.js';
|
|
2
3
|
import type { RuntimeComponent, RuntimeManifest } from '../../plugin/plugin.types.js';
|
|
4
|
+
import type { RuntimeService } from '../../plugin/service.types.js';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class PrismManifestService {
|
|
5
7
|
private readonly _manifest;
|
|
6
8
|
readonly manifest: import("@angular/core").Signal<RuntimeManifest>;
|
|
7
9
|
readonly components: import("@angular/core").Signal<RuntimeComponent[]>;
|
|
10
|
+
readonly services: import("@angular/core").Signal<RuntimeService[]>;
|
|
11
|
+
readonly pipes: import("@angular/core").Signal<RuntimePipe[]>;
|
|
8
12
|
readonly pages: import("@angular/core").Signal<StyleguidePage[]>;
|
|
9
13
|
readonly categories: import("@angular/core").Signal<string[]>;
|
|
10
14
|
readonly groupedByCategory: import("@angular/core").Signal<Map<string, RuntimeComponent[]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-manifest.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-manifest.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;
|
|
1
|
+
{"version":3,"file":"prism-manifest.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-manifest.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;;AAGpE,qBACa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAE7E,QAAQ,CAAC,QAAQ,kDAA+B;IAEhD,QAAQ,CAAC,UAAU,qDAAmE;IAEtF,QAAQ,CAAC,QAAQ,mDAAqE;IAEtF,QAAQ,CAAC,KAAK,gDAA+D;IAE7E,QAAQ,CAAC,KAAK,mDAAkE;IAEhF,QAAQ,CAAC,UAAU,2CA0BhB;IAEH,QAAQ,CAAC,iBAAiB,kEAYvB;IAEH,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;yCAvDtC,oBAAoB;;CA0DhC"}
|
|
@@ -7,6 +7,10 @@ export class PrismManifestService {
|
|
|
7
7
|
manifest = this._manifest.asReadonly();
|
|
8
8
|
components = computed(() => this._manifest().components, /* @ts-ignore */
|
|
9
9
|
...(ngDevMode ? [{ debugName: "components" }] : /* istanbul ignore next */ []));
|
|
10
|
+
services = computed(() => this._manifest().services ?? [], /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "services" }] : /* istanbul ignore next */ []));
|
|
12
|
+
pipes = computed(() => this._manifest().pipes ?? [], /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "pipes" }] : /* istanbul ignore next */ []));
|
|
10
14
|
pages = computed(() => this._manifest().pages ?? [], /* @ts-ignore */
|
|
11
15
|
...(ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []));
|
|
12
16
|
categories = computed(() => {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { StyleguidePage } from '../../plugin/page.types.js';
|
|
2
|
+
import type { RuntimePipe } from '../../plugin/pipe.types.js';
|
|
2
3
|
import type { RuntimeComponent, ScannedComponent } from '../../plugin/plugin.types.js';
|
|
4
|
+
import type { PanelTarget, RuntimeService } from '../../plugin/service.types.js';
|
|
3
5
|
import type { NavigationItem } from './navigation-item.types.js';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export interface CategoryNode {
|
|
@@ -18,9 +20,19 @@ export declare class PrismNavigationService {
|
|
|
18
20
|
private readonly manifestService;
|
|
19
21
|
readonly activeItem: import("@angular/core").WritableSignal<NavigationItem | null>;
|
|
20
22
|
readonly activeComponent: import("@angular/core").Signal<RuntimeComponent | null>;
|
|
23
|
+
readonly activeService: import("@angular/core").Signal<RuntimeService | null>;
|
|
24
|
+
readonly activePipe: import("@angular/core").Signal<RuntimePipe | null>;
|
|
25
|
+
/**
|
|
26
|
+
* What the active item is, for the panels that apply to one kind only.
|
|
27
|
+
* Built from the re-linked signals, so an item the manifest no longer has
|
|
28
|
+
* (and a page, which no panel targets) reports `null`.
|
|
29
|
+
*/
|
|
30
|
+
readonly activeTarget: import("@angular/core").Signal<PanelTarget | null>;
|
|
21
31
|
readonly activePage: import("@angular/core").Signal<StyleguidePage | null>;
|
|
22
32
|
readonly sectionTree: import("@angular/core").Signal<SectionNode[]>;
|
|
23
33
|
select(comp: RuntimeComponent): void;
|
|
34
|
+
selectService(service: RuntimeService): void;
|
|
35
|
+
selectPipe(pipe: RuntimePipe): void;
|
|
24
36
|
selectPage(page: StyleguidePage): void;
|
|
25
37
|
selectFirst(): void;
|
|
26
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismNavigationService, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;
|
|
1
|
+
{"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAajE,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAG1D;AA+BD,qBACa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAQrB;IAEH,QAAQ,CAAC,aAAa,wDAOnB;IAEH,QAAQ,CAAC,UAAU,qDAOhB;IAEH;;;;OAIG;IACH,QAAQ,CAAC,YAAY,qDAKlB;IAEH,QAAQ,CAAC,UAAU,wDAQhB;IAEH,QAAQ,CAAC,WAAW,gDAsEjB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI5C,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAInC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCAhJV,sBAAsB;;CA2KlC"}
|