@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,6 +1,21 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
|
2
2
|
import { PrismIconComponent } from '../icons/prism-icon.component.js';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
function PrismMetricBadgeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
5
|
+
i0.ɵɵelementStart(0, "span", 1);
|
|
6
|
+
i0.ɵɵtext(1);
|
|
7
|
+
i0.ɵɵelementEnd();
|
|
8
|
+
} if (rf & 2) {
|
|
9
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
10
|
+
i0.ɵɵadvance();
|
|
11
|
+
i0.ɵɵtextInterpolate(ctx_r0.shortLabel());
|
|
12
|
+
} }
|
|
13
|
+
function PrismMetricBadgeComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelement(0, "prism-icon", 2);
|
|
15
|
+
} if (rf & 2) {
|
|
16
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
17
|
+
i0.ɵɵproperty("name", ctx_r0.icon())("size", 12);
|
|
18
|
+
} }
|
|
4
19
|
/**
|
|
5
20
|
* Library-wide metric badge for the header.
|
|
6
21
|
*
|
|
@@ -8,9 +23,9 @@ import * as i0 from "@angular/core";
|
|
|
8
23
|
* (a11y in core, coverage and visual regression in their plugins) keeps its own
|
|
9
24
|
* data logic while sharing one appearance.
|
|
10
25
|
*
|
|
11
|
-
* It shows
|
|
12
|
-
*
|
|
13
|
-
*
|
|
26
|
+
* It shows a short label ("Coverage 53%") when given one, and otherwise an icon:
|
|
27
|
+
* the same glyph the source uses for its navigation marks and panel tab. The
|
|
28
|
+
* icon is `aria-hidden`; the accessible name is built here
|
|
14
29
|
* as "label: value" (e.g. "Library coverage: 23%") so a consumer cannot drop
|
|
15
30
|
* the figure. `title` is the consumer's full text for the hover tooltip.
|
|
16
31
|
*/
|
|
@@ -25,27 +40,33 @@ export class PrismMetricBadgeComponent {
|
|
|
25
40
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
26
41
|
variant = input('ok', /* @ts-ignore */
|
|
27
42
|
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
43
|
+
/**
|
|
44
|
+
* A short visible label ("Coverage", "VRT"). When set, it replaces the icon,
|
|
45
|
+
* so the figure reads as "Coverage 53%" without a glyph to decode.
|
|
46
|
+
*/
|
|
47
|
+
shortLabel = input(null, /* @ts-ignore */
|
|
48
|
+
...(ngDevMode ? [{ debugName: "shortLabel" }] : /* istanbul ignore next */ []));
|
|
28
49
|
/** "label: value" is the accessible name, so the figure is never dropped. */
|
|
29
50
|
accessibleName = computed(() => `${this.label()}: ${this.value()}`, /* @ts-ignore */
|
|
30
51
|
...(ngDevMode ? [{ debugName: "accessibleName" }] : /* istanbul ignore next */ []));
|
|
31
52
|
static ɵfac = function PrismMetricBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismMetricBadgeComponent)(); };
|
|
32
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismMetricBadgeComponent, selectors: [["prism-metric-badge"]], inputs: { icon: [1, "icon"], value: [1, "value"], label: [1, "label"], title: [1, "title"], variant: [1, "variant"] }, decls:
|
|
53
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismMetricBadgeComponent, selectors: [["prism-metric-badge"]], inputs: { icon: [1, "icon"], value: [1, "value"], label: [1, "label"], title: [1, "title"], variant: [1, "variant"], shortLabel: [1, "shortLabel"] }, decls: 5, vars: 10, consts: [["role", "img", 1, "metric-badge"], ["aria-hidden", "true", 1, "metric-badge__label"], ["aria-hidden", "true", 3, "name", "size"], [1, "metric-badge__value"]], template: function PrismMetricBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
33
54
|
i0.ɵɵelementStart(0, "span", 0);
|
|
34
|
-
i0.ɵɵ
|
|
35
|
-
i0.ɵɵelementStart(
|
|
36
|
-
i0.ɵɵtext(
|
|
55
|
+
i0.ɵɵconditionalCreate(1, PrismMetricBadgeComponent_Conditional_1_Template, 2, 1, "span", 1)(2, PrismMetricBadgeComponent_Conditional_2_Template, 1, 2, "prism-icon", 2);
|
|
56
|
+
i0.ɵɵelementStart(3, "span", 3);
|
|
57
|
+
i0.ɵɵtext(4);
|
|
37
58
|
i0.ɵɵelementEnd()();
|
|
38
59
|
} if (rf & 2) {
|
|
39
60
|
i0.ɵɵclassProp("metric-badge--ok", ctx.variant() === "ok")("metric-badge--warn", ctx.variant() === "warn")("metric-badge--danger", ctx.variant() === "danger");
|
|
40
61
|
i0.ɵɵattribute("title", ctx.title() || ctx.label())("aria-label", ctx.accessibleName());
|
|
41
62
|
i0.ɵɵadvance();
|
|
42
|
-
i0.ɵɵ
|
|
43
|
-
i0.ɵɵadvance(
|
|
63
|
+
i0.ɵɵconditional(ctx.shortLabel() ? 1 : 2);
|
|
64
|
+
i0.ɵɵadvance(3);
|
|
44
65
|
i0.ɵɵtextInterpolate(ctx.value());
|
|
45
|
-
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n align-items: center;\n}\n\n.metric-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n gap:
|
|
66
|
+
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n align-items: center;\n}\n\n.metric-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 6px;\n align-items: center;\n height: 22px;\n padding: 0 8px;\n font-family: var(--%NS%font-sans);\n font-size: 11.5px;\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n background: var(--%NS%prism-input-bg);\n border-radius: 4px;\n}\n\n.metric-badge__value[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n}\n\n.metric-badge--ok[_ngcontent-%COMP%] {\n color: var(--%NS%prism-success);\n background: var(--%NS%prism-success-bg);\n}\n\n.metric-badge--warn[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n background: var(--%NS%prism-warn-bg);\n}\n\n.metric-badge--danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-danger);\n background: var(--%NS%prism-danger-bg);\n}"] });
|
|
46
67
|
}
|
|
47
68
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismMetricBadgeComponent, [{
|
|
48
69
|
type: Component,
|
|
49
|
-
args: [{ selector: 'prism-metric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<span\n class=\"metric-badge\"\n role=\"img\"\n [class.metric-badge--ok]=\"variant() === 'ok'\"\n [class.metric-badge--warn]=\"variant() === 'warn'\"\n [class.metric-badge--danger]=\"variant() === 'danger'\"\n [attr.title]=\"title() || label()\"\n [attr.aria-label]=\"accessibleName()\">\n <prism-icon\n
|
|
50
|
-
}], null, { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] }); })();
|
|
70
|
+
args: [{ selector: 'prism-metric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<span\n class=\"metric-badge\"\n role=\"img\"\n [class.metric-badge--ok]=\"variant() === 'ok'\"\n [class.metric-badge--warn]=\"variant() === 'warn'\"\n [class.metric-badge--danger]=\"variant() === 'danger'\"\n [attr.title]=\"title() || label()\"\n [attr.aria-label]=\"accessibleName()\">\n @if (shortLabel()) {\n <span\n class=\"metric-badge__label\"\n aria-hidden=\"true\"\n >{{ shortLabel() }}</span\n >\n } @else {\n <prism-icon\n [name]=\"icon()\"\n [size]=\"12\"\n aria-hidden=\"true\" />\n }\n <span class=\"metric-badge__value\">{{ value() }}</span>\n</span>\n", styles: [":host {\n display: inline-flex;\n align-items: center;\n}\n\n.metric-badge {\n display: inline-flex;\n gap: 6px;\n align-items: center;\n height: 22px;\n padding: 0 8px;\n font-family: var(--font-sans);\n font-size: 11.5px;\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n background: var(--prism-input-bg);\n border-radius: 4px;\n}\n\n.metric-badge__value {\n font-family: var(--font-mono);\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n}\n\n.metric-badge--ok {\n color: var(--prism-success);\n background: var(--prism-success-bg);\n}\n\n.metric-badge--warn {\n color: var(--prism-warn);\n background: var(--prism-warn-bg);\n}\n\n.metric-badge--danger {\n color: var(--prism-danger);\n background: var(--prism-danger-bg);\n}\n"] }]
|
|
71
|
+
}], null, { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], shortLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortLabel", required: false }] }] }); })();
|
|
51
72
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismMetricBadgeComponent, { className: "PrismMetricBadgeComponent", filePath: "app/shared/prism-metric-badge.component.ts", lineNumber: 25 }); })();
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BadgeTone } from './badge.types.js';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* A measured value in a panel: label, status badge, the figure and its unit,
|
|
5
|
+
* optionally a bar with a threshold tick, or a visual of the caller's own in
|
|
6
|
+
* `[metricVisual]` (a ring, a sparkline).
|
|
7
|
+
*
|
|
8
|
+
* No visible subtitle. Details such as bytes, the threshold or the source go in
|
|
9
|
+
* `title`, the card's tooltip. A rated value fills its bar in the status tone;
|
|
10
|
+
* a plain quantity (no `tone`) in the primary colour.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PrismMetricCardComponent {
|
|
13
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
14
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
15
|
+
readonly unit: import("@angular/core").InputSignal<string | null>;
|
|
16
|
+
readonly tone: import("@angular/core").InputSignal<BadgeTone | null>;
|
|
17
|
+
readonly statusLabel: import("@angular/core").InputSignal<string | null>;
|
|
18
|
+
/** Bar fill, 0–1. No bar without it. */
|
|
19
|
+
readonly fraction: import("@angular/core").InputSignal<number | null>;
|
|
20
|
+
/** Threshold tick, 0–1. */
|
|
21
|
+
readonly threshold: import("@angular/core").InputSignal<number | null>;
|
|
22
|
+
readonly title: import("@angular/core").InputSignal<string | null>;
|
|
23
|
+
protected readonly bar: import("@angular/core").Signal<{
|
|
24
|
+
width: string;
|
|
25
|
+
tick: string | null;
|
|
26
|
+
} | null>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismMetricCardComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismMetricCardComponent, "prism-metric-card", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": false; "isSignal": true; }; "fraction": { "alias": "fraction"; "required": false; "isSignal": true; }; "threshold": { "alias": "threshold"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, ["[metricVisual]"], true, never>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=prism-metric-card.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-metric-card.component.d.ts","sourceRoot":"","sources":["../../../src/app/shared/prism-metric-card.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;;AAIlD;;;;;;;;GAQG;AACH,qBAYa,wBAAwB;IACjC,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,IAAI,qDAA8B;IAC3C,QAAQ,CAAC,IAAI,wDAAiC;IAC9C,QAAQ,CAAC,WAAW,qDAA8B;IAClD,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,qDAA8B;IAC/C,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,qDAA8B;IAChD,QAAQ,CAAC,KAAK,qDAA8B;IAE5C,SAAS,CAAC,QAAQ,CAAC,GAAG;;;cAInB;yCAhBM,wBAAwB;2CAAxB,wBAAwB;CAiBpC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
|
2
|
+
import { barGeometry } from './metric-bar.js';
|
|
3
|
+
import { PrismBadgeComponent } from './prism-badge.component.js';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const _c0 = [[["", "metricVisual", ""]]];
|
|
6
|
+
const _c1 = ["[metricVisual]"];
|
|
7
|
+
function PrismMetricCardComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelement(0, "prism-badge", 2);
|
|
9
|
+
} if (rf & 2) {
|
|
10
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
11
|
+
i0.ɵɵproperty("tone", ctx_r0.tone())("label", ctx_r0.statusLabel());
|
|
12
|
+
} }
|
|
13
|
+
function PrismMetricCardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelementStart(0, "small");
|
|
15
|
+
i0.ɵɵtext(1);
|
|
16
|
+
i0.ɵɵelementEnd();
|
|
17
|
+
} if (rf & 2) {
|
|
18
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
19
|
+
i0.ɵɵadvance();
|
|
20
|
+
i0.ɵɵtextInterpolate(ctx_r0.unit());
|
|
21
|
+
} }
|
|
22
|
+
function PrismMetricCardComponent_Conditional_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelement(0, "b");
|
|
24
|
+
} if (rf & 2) {
|
|
25
|
+
const b_r2 = i0.ɵɵnextContext();
|
|
26
|
+
i0.ɵɵstyleProp("left", b_r2.tick);
|
|
27
|
+
} }
|
|
28
|
+
function PrismMetricCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "div", 5);
|
|
30
|
+
i0.ɵɵelement(1, "i");
|
|
31
|
+
i0.ɵɵconditionalCreate(2, PrismMetricCardComponent_Conditional_9_Conditional_2_Template, 1, 2, "b", 6);
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
const b_r2 = ctx;
|
|
35
|
+
i0.ɵɵadvance();
|
|
36
|
+
i0.ɵɵstyleProp("width", b_r2.width);
|
|
37
|
+
i0.ɵɵadvance();
|
|
38
|
+
i0.ɵɵconditional(b_r2.tick ? 2 : -1);
|
|
39
|
+
} }
|
|
40
|
+
/**
|
|
41
|
+
* A measured value in a panel: label, status badge, the figure and its unit,
|
|
42
|
+
* optionally a bar with a threshold tick, or a visual of the caller's own in
|
|
43
|
+
* `[metricVisual]` (a ring, a sparkline).
|
|
44
|
+
*
|
|
45
|
+
* No visible subtitle. Details such as bytes, the threshold or the source go in
|
|
46
|
+
* `title`, the card's tooltip. A rated value fills its bar in the status tone;
|
|
47
|
+
* a plain quantity (no `tone`) in the primary colour.
|
|
48
|
+
*/
|
|
49
|
+
export class PrismMetricCardComponent {
|
|
50
|
+
label = input.required(/* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
52
|
+
value = input.required(/* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
54
|
+
unit = input(null, /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "unit" }] : /* istanbul ignore next */ []));
|
|
56
|
+
tone = input(null, /* @ts-ignore */
|
|
57
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
58
|
+
statusLabel = input(null, /* @ts-ignore */
|
|
59
|
+
...(ngDevMode ? [{ debugName: "statusLabel" }] : /* istanbul ignore next */ []));
|
|
60
|
+
/** Bar fill, 0–1. No bar without it. */
|
|
61
|
+
fraction = input(null, /* @ts-ignore */
|
|
62
|
+
...(ngDevMode ? [{ debugName: "fraction" }] : /* istanbul ignore next */ []));
|
|
63
|
+
/** Threshold tick, 0–1. */
|
|
64
|
+
threshold = input(null, /* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "threshold" }] : /* istanbul ignore next */ []));
|
|
66
|
+
title = input(null, /* @ts-ignore */
|
|
67
|
+
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
68
|
+
bar = computed(() => {
|
|
69
|
+
const fraction = this.fraction();
|
|
70
|
+
return fraction === null ? null : barGeometry(fraction, this.threshold() ?? undefined);
|
|
71
|
+
}, /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "bar" }] : /* istanbul ignore next */ []));
|
|
73
|
+
static ɵfac = function PrismMetricCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismMetricCardComponent)(); };
|
|
74
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismMetricCardComponent, selectors: [["prism-metric-card"]], hostVars: 2, hostBindings: function PrismMetricCardComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
75
|
+
i0.ɵɵattribute("title", ctx.title())("data-tone", ctx.tone());
|
|
76
|
+
} }, inputs: { label: [1, "label"], value: [1, "value"], unit: [1, "unit"], tone: [1, "tone"], statusLabel: [1, "statusLabel"], fraction: [1, "fraction"], threshold: [1, "threshold"], title: [1, "title"] }, ngContentSelectors: _c1, decls: 10, vars: 5, consts: [[1, "prism-metric-card__head"], [1, "prism-metric-card__label"], ["size", "sm", 3, "tone", "label"], [1, "prism-metric-card__body"], [1, "prism-metric-card__value"], ["aria-hidden", "true", 1, "prism-metric-card__bar"], [3, "left"]], template: function PrismMetricCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
+
i0.ɵɵprojectionDef(_c0);
|
|
78
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "span", 1);
|
|
79
|
+
i0.ɵɵtext(2);
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
i0.ɵɵconditionalCreate(3, PrismMetricCardComponent_Conditional_3_Template, 1, 2, "prism-badge", 2);
|
|
82
|
+
i0.ɵɵelementEnd();
|
|
83
|
+
i0.ɵɵelementStart(4, "div", 3);
|
|
84
|
+
i0.ɵɵprojection(5);
|
|
85
|
+
i0.ɵɵelementStart(6, "span", 4);
|
|
86
|
+
i0.ɵɵtext(7);
|
|
87
|
+
i0.ɵɵconditionalCreate(8, PrismMetricCardComponent_Conditional_8_Template, 2, 1, "small");
|
|
88
|
+
i0.ɵɵelementEnd()();
|
|
89
|
+
i0.ɵɵconditionalCreate(9, PrismMetricCardComponent_Conditional_9_Template, 3, 3, "div", 5);
|
|
90
|
+
} if (rf & 2) {
|
|
91
|
+
let tmp_4_0;
|
|
92
|
+
i0.ɵɵadvance(2);
|
|
93
|
+
i0.ɵɵtextInterpolate(ctx.label());
|
|
94
|
+
i0.ɵɵadvance();
|
|
95
|
+
i0.ɵɵconditional(ctx.statusLabel() && ctx.tone() ? 3 : -1);
|
|
96
|
+
i0.ɵɵadvance(4);
|
|
97
|
+
i0.ɵɵtextInterpolate1("", ctx.value(), " ");
|
|
98
|
+
i0.ɵɵadvance();
|
|
99
|
+
i0.ɵɵconditional(ctx.unit() ? 8 : -1);
|
|
100
|
+
i0.ɵɵadvance();
|
|
101
|
+
i0.ɵɵconditional((tmp_4_0 = ctx.bar()) ? 9 : -1, tmp_4_0);
|
|
102
|
+
} }, dependencies: [PrismBadgeComponent], styles: ["[_nghost-%COMP%] {\n --%NS%prism-metric-tone: var(--%NS%prism-primary);\n\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n padding: 10px 12px;\n background: var(--%NS%prism-bg-surface);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 6px;\n}\n\n[data-tone='success'][_nghost-%COMP%] {\n --%NS%prism-metric-tone: var(--%NS%prism-success);\n}\n\n[data-tone='warn'][_nghost-%COMP%] {\n --%NS%prism-metric-tone: var(--%NS%prism-warn);\n}\n\n[data-tone='danger'][_nghost-%COMP%] {\n --%NS%prism-metric-tone: var(--%NS%prism-danger);\n}\n\n.prism-metric-card__head[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n min-height: 16px;\n}\n\n.prism-metric-card__label[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 11px;\n font-weight: 600;\n color: var(--%NS%prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n white-space: nowrap;\n}\n\n.prism-metric-card__body[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n.prism-metric-card__value[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 22px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n line-height: 1.1;\n color: var(--%NS%prism-text);\n}\n\n.prism-metric-card__value[_ngcontent-%COMP%] small[_ngcontent-%COMP%] {\n margin-left: 2px;\n font-size: 12px;\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n}\n\n.prism-metric-card__bar[_ngcontent-%COMP%] {\n position: relative;\n height: 4px;\n margin-top: 2px;\n background: var(--%NS%prism-input-bg);\n border-radius: 2px;\n}\n\n.prism-metric-card__bar[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0 auto 0 0;\n background: var(--%NS%prism-metric-tone);\n border-radius: 2px;\n}\n\n.prism-metric-card__bar[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n position: absolute;\n top: -3px;\n width: 1.5px;\n height: 10px;\n margin-left: -0.75px;\n background: var(--%NS%prism-text-2);\n}"] });
|
|
103
|
+
}
|
|
104
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismMetricCardComponent, [{
|
|
105
|
+
type: Component,
|
|
106
|
+
args: [{ selector: 'prism-metric-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismBadgeComponent], host: {
|
|
107
|
+
'[attr.title]': 'title()',
|
|
108
|
+
'[attr.data-tone]': 'tone()'
|
|
109
|
+
}, template: "<div class=\"prism-metric-card__head\">\n <span class=\"prism-metric-card__label\">{{ label() }}</span>\n @if (statusLabel() && tone()) {\n <prism-badge\n size=\"sm\"\n [tone]=\"tone()!\"\n [label]=\"statusLabel()\" />\n }\n</div>\n<div class=\"prism-metric-card__body\">\n <ng-content select=\"[metricVisual]\" />\n <span class=\"prism-metric-card__value\"\n >{{ value() }}\n @if (unit()) {\n <small>{{ unit() }}</small>\n }\n </span>\n</div>\n@if (bar(); as b) {\n <div\n class=\"prism-metric-card__bar\"\n aria-hidden=\"true\">\n <i [style.width]=\"b.width\"></i>\n @if (b.tick) {\n <b [style.left]=\"b.tick\"></b>\n }\n </div>\n}\n", styles: [":host {\n --prism-metric-tone: var(--prism-primary);\n\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n}\n\n:host([data-tone='success']) {\n --prism-metric-tone: var(--prism-success);\n}\n\n:host([data-tone='warn']) {\n --prism-metric-tone: var(--prism-warn);\n}\n\n:host([data-tone='danger']) {\n --prism-metric-tone: var(--prism-danger);\n}\n\n.prism-metric-card__head {\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n min-height: 16px;\n}\n\n.prism-metric-card__label {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 11px;\n font-weight: 600;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n white-space: nowrap;\n}\n\n.prism-metric-card__body {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n.prism-metric-card__value {\n font-family: var(--font-mono);\n font-size: 22px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n line-height: 1.1;\n color: var(--prism-text);\n}\n\n.prism-metric-card__value small {\n margin-left: 2px;\n font-size: 12px;\n font-weight: 500;\n color: var(--prism-text-muted);\n}\n\n.prism-metric-card__bar {\n position: relative;\n height: 4px;\n margin-top: 2px;\n background: var(--prism-input-bg);\n border-radius: 2px;\n}\n\n.prism-metric-card__bar i {\n position: absolute;\n inset: 0 auto 0 0;\n background: var(--prism-metric-tone);\n border-radius: 2px;\n}\n\n.prism-metric-card__bar b {\n position: absolute;\n top: -3px;\n width: 1.5px;\n height: 10px;\n margin-left: -0.75px;\n background: var(--prism-text-2);\n}\n"] }]
|
|
110
|
+
}], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], fraction: [{ type: i0.Input, args: [{ isSignal: true, alias: "fraction", required: false }] }], threshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "threshold", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }] }); })();
|
|
111
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismMetricCardComponent, { className: "PrismMetricCardComponent", filePath: "app/shared/prism-metric-card.component.ts", lineNumber: 27 }); })();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* The toolbar row of an addon panel: sub-tabs on the left (`[toolbarStart]`),
|
|
4
|
+
* actions on the right (`[toolbarEnd]`, secondary before primary).
|
|
5
|
+
*
|
|
6
|
+
* No meta text: counts, timestamps, thresholds and sizes belong in tooltips. A
|
|
7
|
+
* panel renders this only when it has sub-tabs or actions.
|
|
8
|
+
*/
|
|
9
|
+
export declare class PrismPanelToolbarComponent {
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismPanelToolbarComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismPanelToolbarComponent, "prism-panel-toolbar", never, {}, {}, never, ["[toolbarStart]", "[toolbarEnd]"], true, never>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=prism-panel-toolbar.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-panel-toolbar.component.d.ts","sourceRoot":"","sources":["../../../src/app/shared/prism-panel-toolbar.component.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,qBAOa,0BAA0B;yCAA1B,0BAA0B;2CAA1B,0BAA0B;CAAG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const _c0 = [[["", "toolbarStart", ""]], [["", "toolbarEnd", ""]]];
|
|
4
|
+
const _c1 = ["[toolbarStart]", "[toolbarEnd]"];
|
|
5
|
+
/**
|
|
6
|
+
* The toolbar row of an addon panel: sub-tabs on the left (`[toolbarStart]`),
|
|
7
|
+
* actions on the right (`[toolbarEnd]`, secondary before primary).
|
|
8
|
+
*
|
|
9
|
+
* No meta text: counts, timestamps, thresholds and sizes belong in tooltips. A
|
|
10
|
+
* panel renders this only when it has sub-tabs or actions.
|
|
11
|
+
*/
|
|
12
|
+
export class PrismPanelToolbarComponent {
|
|
13
|
+
static ɵfac = function PrismPanelToolbarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismPanelToolbarComponent)(); };
|
|
14
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismPanelToolbarComponent, selectors: [["prism-panel-toolbar"]], ngContentSelectors: _c1, decls: 4, vars: 0, consts: [[1, "prism-panel-toolbar__start"], [1, "prism-panel-toolbar__end"]], template: function PrismPanelToolbarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵprojectionDef(_c0);
|
|
16
|
+
i0.ɵɵdomElementStart(0, "div", 0);
|
|
17
|
+
i0.ɵɵprojection(1);
|
|
18
|
+
i0.ɵɵdomElementEnd();
|
|
19
|
+
i0.ɵɵdomElementStart(2, "div", 1);
|
|
20
|
+
i0.ɵɵprojection(3, 1);
|
|
21
|
+
i0.ɵɵdomElementEnd();
|
|
22
|
+
} }, styles: ["[_nghost-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n flex-shrink: 0;\n gap: 12px;\n align-items: stretch;\n justify-content: space-between;\n height: 36px;\n padding: 0 18px;\n background: var(--%NS%prism-bg-surface);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.prism-panel-toolbar__start[_ngcontent-%COMP%] {\n display: flex;\n align-items: stretch;\n min-width: 0;\n margin-left: -10px;\n}\n\n.prism-panel-toolbar__end[_ngcontent-%COMP%] {\n display: flex;\n flex: none;\n gap: 8px;\n align-items: center;\n}"] });
|
|
23
|
+
}
|
|
24
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelToolbarComponent, [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'prism-panel-toolbar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"prism-panel-toolbar__start\"><ng-content select=\"[toolbarStart]\" /></div>\n<div class=\"prism-panel-toolbar__end\"><ng-content select=\"[toolbarEnd]\" /></div>\n", styles: [":host {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n flex-shrink: 0;\n gap: 12px;\n align-items: stretch;\n justify-content: space-between;\n height: 36px;\n padding: 0 18px;\n background: var(--prism-bg-surface);\n border-bottom: 1px solid var(--prism-border);\n}\n\n.prism-panel-toolbar__start {\n display: flex;\n align-items: stretch;\n min-width: 0;\n margin-left: -10px;\n}\n\n.prism-panel-toolbar__end {\n display: flex;\n flex: none;\n gap: 8px;\n align-items: center;\n}\n"] }]
|
|
27
|
+
}], null, null); })();
|
|
28
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelToolbarComponent, { className: "PrismPanelToolbarComponent", filePath: "app/shared/prism-panel-toolbar.component.ts", lineNumber: 17 }); })();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export interface PrismSegmentOption<T extends string = string> {
|
|
3
|
+
value: T;
|
|
4
|
+
label: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A choice between a few values: the view switch (Playground / Overview / API),
|
|
9
|
+
* zoom levels, fit modes. A radio group with a roving tabindex; the active
|
|
10
|
+
* segment sits raised on the track with a line in the brand ink under it.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PrismSegmentedComponent<T extends string = string> {
|
|
13
|
+
readonly options: import("@angular/core").InputSignal<readonly PrismSegmentOption<T>[]>;
|
|
14
|
+
readonly value: import("@angular/core").ModelSignal<T | null>;
|
|
15
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
16
|
+
readonly size: import("@angular/core").InputSignal<"md" | "sm">;
|
|
17
|
+
private readonly segments;
|
|
18
|
+
protected choose(option: PrismSegmentOption<T>): void;
|
|
19
|
+
protected onKey(event: KeyboardEvent): void;
|
|
20
|
+
/** The segment in the tab order: the chosen one, or the first when the value matches none. */
|
|
21
|
+
protected isFocusable(index: number): boolean;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismSegmentedComponent<any>, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismSegmentedComponent<any>, "prism-segmented", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=prism-segmented.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-segmented.component.d.ts","sourceRoot":"","sources":["../../../src/app/shared/prism-segmented.component.ts"],"names":[],"mappings":";AAGA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACzD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAQa,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,QAAQ,CAAC,OAAO,wEAAsD;IACtE,QAAQ,CAAC,KAAK,gDAAyB;IACvC,QAAQ,CAAC,SAAS,qDAA8B;IAChD,QAAQ,CAAC,IAAI,mDAA4B;IAEzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0D;IAEnF,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrD,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAc3C,8FAA8F;IAC9F,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;yCA3BpC,uBAAuB;2CAAvB,uBAAuB;CAoCnC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, model, viewChildren } from '@angular/core';
|
|
2
|
+
import { nextRovingIndex, rovingTabStop } from './roving-focus.js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const _c0 = ["segment"];
|
|
5
|
+
const _forTrack0 = ($index, $item) => $item.value;
|
|
6
|
+
function PrismSegmentedComponent_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
8
|
+
i0.ɵɵdomElementStart(0, "button", 3, 0);
|
|
9
|
+
i0.ɵɵdomListener("click", function PrismSegmentedComponent_For_2_Template_button_click_0_listener() { const option_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.choose(option_r2)); });
|
|
10
|
+
i0.ɵɵtext(2);
|
|
11
|
+
i0.ɵɵdomElementEnd();
|
|
12
|
+
} if (rf & 2) {
|
|
13
|
+
const option_r2 = ctx.$implicit;
|
|
14
|
+
const ɵ$index_3_r4 = ctx.$index;
|
|
15
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
16
|
+
i0.ɵɵclassProp("prism-segment--on", option_r2.value === ctx_r2.value());
|
|
17
|
+
i0.ɵɵattribute("aria-checked", option_r2.value === ctx_r2.value())("tabindex", ctx_r2.isFocusable(ɵ$index_3_r4) ? 0 : -1)("title", option_r2.title ?? null);
|
|
18
|
+
i0.ɵɵadvance(2);
|
|
19
|
+
i0.ɵɵtextInterpolate1(" ", option_r2.label, " ");
|
|
20
|
+
} }
|
|
21
|
+
/**
|
|
22
|
+
* A choice between a few values: the view switch (Playground / Overview / API),
|
|
23
|
+
* zoom levels, fit modes. A radio group with a roving tabindex; the active
|
|
24
|
+
* segment sits raised on the track with a line in the brand ink under it.
|
|
25
|
+
*/
|
|
26
|
+
export class PrismSegmentedComponent {
|
|
27
|
+
options = input.required(/* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
29
|
+
value = model(null, /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
31
|
+
ariaLabel = input(null, /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
33
|
+
size = input('md', /* @ts-ignore */
|
|
34
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
35
|
+
segments = viewChildren('segment', /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "segments" }] : /* istanbul ignore next */ []));
|
|
37
|
+
choose(option) {
|
|
38
|
+
this.value.set(option.value);
|
|
39
|
+
}
|
|
40
|
+
onKey(event) {
|
|
41
|
+
const options = this.options();
|
|
42
|
+
const current = Math.max(0, this.segments().findIndex((s) => s.nativeElement === event.target));
|
|
43
|
+
const next = nextRovingIndex(current, event.key, options.length);
|
|
44
|
+
if (next === null)
|
|
45
|
+
return;
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
this.value.set(options[next].value);
|
|
48
|
+
this.segments()[next]?.nativeElement.focus();
|
|
49
|
+
}
|
|
50
|
+
/** The segment in the tab order: the chosen one, or the first when the value matches none. */
|
|
51
|
+
isFocusable(index) {
|
|
52
|
+
return (index ===
|
|
53
|
+
rovingTabStop(this.options().map((option) => option.value), this.value()));
|
|
54
|
+
}
|
|
55
|
+
static ɵfac = function PrismSegmentedComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismSegmentedComponent)(); };
|
|
56
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismSegmentedComponent, selectors: [["prism-segmented"]], viewQuery: function PrismSegmentedComponent_Query(rf, ctx) { if (rf & 1) {
|
|
57
|
+
i0.ɵɵviewQuerySignal(ctx.segments, _c0, 5);
|
|
58
|
+
} if (rf & 2) {
|
|
59
|
+
i0.ɵɵqueryAdvance();
|
|
60
|
+
} }, hostVars: 2, hostBindings: function PrismSegmentedComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
61
|
+
i0.ɵɵclassProp("prism-segmented--sm", ctx.size() === "sm");
|
|
62
|
+
} }, inputs: { options: [1, "options"], value: [1, "value"], ariaLabel: [1, "ariaLabel"], size: [1, "size"] }, outputs: { value: "valueChange" }, decls: 3, vars: 1, consts: [["segment", ""], ["role", "radiogroup", 1, "prism-segmented", 3, "keydown"], ["type", "button", "role", "radio", 1, "prism-segment", 3, "prism-segment--on"], ["type", "button", "role", "radio", 1, "prism-segment", 3, "click"]], template: function PrismSegmentedComponent_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵdomElementStart(0, "div", 1);
|
|
64
|
+
i0.ɵɵdomListener("keydown", function PrismSegmentedComponent_Template_div_keydown_0_listener($event) { return ctx.onKey($event); });
|
|
65
|
+
i0.ɵɵrepeaterCreate(1, PrismSegmentedComponent_For_2_Template, 3, 6, "button", 2, _forTrack0);
|
|
66
|
+
i0.ɵɵdomElementEnd();
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
i0.ɵɵattribute("aria-label", ctx.ariaLabel());
|
|
69
|
+
i0.ɵɵadvance();
|
|
70
|
+
i0.ɵɵrepeater(ctx.options());
|
|
71
|
+
} }, styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n}\n\n.prism-segmented[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 2px;\n padding: 2px;\n background: var(--%NS%prism-input-bg);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--%NS%prism-border);\n}\n\n.prism-segment[_ngcontent-%COMP%] {\n position: relative;\n padding: 2px 12px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-md);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 4px;\n transition: color var(--%NS%dur-fast) var(--%NS%ease-default);\n}\n\n.prism-segment[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\n.prism-segment--on[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text);\n background: var(--%NS%prism-bg-elevated);\n box-shadow: var(--%NS%prism-shadow-sm);\n}\n\n.prism-segment--%NS%on[_ngcontent-%COMP%]::after {\n position: absolute;\n right: 10px;\n bottom: 1px;\n left: 10px;\n height: 1.5px;\n content: '';\n background: var(--%NS%prism-brand-ink);\n border-radius: 2px;\n}\n\n.prism-segment[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 1px;\n}\n\n.prism-segmented--sm[_nghost-%COMP%] .prism-segment[_ngcontent-%COMP%] {\n padding: 1px 9px;\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-sm);\n}"] });
|
|
72
|
+
}
|
|
73
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismSegmentedComponent, [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'prism-segmented', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.prism-segmented--sm]': "size() === 'sm'" }, template: "<div\n class=\"prism-segmented\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel()\"\n (keydown)=\"onKey($event)\">\n @for (option of options(); track option.value; let i = $index) {\n <button\n #segment\n type=\"button\"\n role=\"radio\"\n class=\"prism-segment\"\n [class.prism-segment--on]=\"option.value === value()\"\n [attr.aria-checked]=\"option.value === value()\"\n [attr.tabindex]=\"isFocusable(i) ? 0 : -1\"\n [attr.title]=\"option.title ?? null\"\n (click)=\"choose(option)\">\n {{ option.label }}\n </button>\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.prism-segmented {\n display: inline-flex;\n gap: 2px;\n padding: 2px;\n background: var(--prism-input-bg);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--prism-border);\n}\n\n.prism-segment {\n position: relative;\n padding: 2px 12px;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 4px;\n transition: color var(--dur-fast) var(--ease-default);\n}\n\n.prism-segment:hover {\n color: var(--prism-text-2);\n}\n\n.prism-segment--on {\n color: var(--prism-text);\n background: var(--prism-bg-elevated);\n box-shadow: var(--prism-shadow-sm);\n}\n\n.prism-segment--on::after {\n position: absolute;\n right: 10px;\n bottom: 1px;\n left: 10px;\n height: 1.5px;\n content: '';\n background: var(--prism-brand-ink);\n border-radius: 2px;\n}\n\n.prism-segment:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n:host(.prism-segmented--sm) .prism-segment {\n padding: 1px 9px;\n font-family: var(--font-mono);\n font-size: var(--fs-sm);\n}\n"] }]
|
|
76
|
+
}], null, { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], segments: [{ type: i0.ViewChildren, args: ['segment', { isSignal: true }] }] }); })();
|
|
77
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSegmentedComponent, { className: "PrismSegmentedComponent", filePath: "app/shared/prism-segmented.component.ts", lineNumber: 23 }); })();
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BadgeTone } from './badge.types.js';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** A tab's badge: `count` is a plain quantity, `issues` a number of open findings. */
|
|
4
|
+
export interface PrismTabBadge {
|
|
5
|
+
kind: 'count' | 'issues';
|
|
6
|
+
text: string;
|
|
7
|
+
tone?: BadgeTone;
|
|
8
|
+
/** Read after the tab's label by assistive technology, e.g. "A11y, 1 violation". Same name as on `PanelBadge`. */
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PrismTabItem {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
badge?: PrismTabBadge | null;
|
|
16
|
+
title?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The one tab bar of the chrome: variant ribbon and panel tabs (`md`), sub-tabs
|
|
20
|
+
* inside panels (`sm`).
|
|
21
|
+
*
|
|
22
|
+
* One indicator per size: `md` underlines the active tab in the brand ink, `sm`
|
|
23
|
+
* in the primary colour. Full tab semantics with a roving tabindex: arrow keys,
|
|
24
|
+
* Home and End move between tabs and select them.
|
|
25
|
+
*/
|
|
26
|
+
export declare class PrismTabsComponent {
|
|
27
|
+
readonly items: import("@angular/core").InputSignal<readonly PrismTabItem[]>;
|
|
28
|
+
readonly active: import("@angular/core").ModelSignal<string | null>;
|
|
29
|
+
readonly size: import("@angular/core").InputSignal<"md" | "sm">;
|
|
30
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
31
|
+
/** When set, each tab points at `<prefix><id>` through `aria-controls`. */
|
|
32
|
+
readonly panelIdPrefix: import("@angular/core").InputSignal<string | null>;
|
|
33
|
+
private readonly tabs;
|
|
34
|
+
/** The tab in the tab order: the active one, or the first when the active id matches none. */
|
|
35
|
+
protected readonly tabStop: import("@angular/core").Signal<number>;
|
|
36
|
+
constructor();
|
|
37
|
+
protected select(item: PrismTabItem): void;
|
|
38
|
+
protected onKey(event: KeyboardEvent): void;
|
|
39
|
+
protected panelId(item: PrismTabItem): string | null;
|
|
40
|
+
protected accessibleName(item: PrismTabItem): string;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PrismTabsComponent, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PrismTabsComponent, "prism-tabs", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "panelIdPrefix": { "alias": "panelIdPrefix"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, never, true, never>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=prism-tabs.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-tabs.component.d.ts","sourceRoot":"","sources":["../../../src/app/shared/prism-tabs.component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;;AAGlD,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kHAAkH;IAClH,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,qBASa,kBAAkB;IAC3B,QAAQ,CAAC,KAAK,+DAA6C;IAC3D,QAAQ,CAAC,MAAM,qDAA8B;IAC7C,QAAQ,CAAC,IAAI,mDAA4B;IACzC,QAAQ,CAAC,SAAS,qDAA8B;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,qDAA8B;IAEpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsD;IAE3E,8FAA8F;IAC9F,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAKxB;;IAUF,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI1C,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAc3C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAMpD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;yCAlD3C,kBAAkB;2CAAlB,kBAAkB;CAqD9B"}
|