@porscheinformatik/clr-addons 19.21.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/porscheinformatik-clr-addons-charts.mjs +256 -251
- package/fesm2022/porscheinformatik-clr-addons-charts.mjs.map +1 -1
- package/fesm2022/{clr-addons.mjs → porscheinformatik-clr-addons.mjs} +1409 -1747
- package/fesm2022/porscheinformatik-clr-addons.mjs.map +1 -0
- package/package.json +10 -14
- package/styles/clr-addons-phs.css +34 -30
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
- package/types/porscheinformatik-clr-addons-charts.d.ts +601 -0
- package/types/porscheinformatik-clr-addons.d.ts +4773 -0
- package/abstract-form-component/abstract-form-component.d.ts +0 -32
- package/abstract-form-component/control-id.service.d.ts +0 -11
- package/abstract-form-component/form.module.d.ts +0 -7
- package/abstract-form-component/index.d.ts +0 -2
- package/abstract-form-component/label.d.ts +0 -15
- package/action-panel/action-panel-container-content.d.ts +0 -5
- package/action-panel/action-panel-container-footer.d.ts +0 -5
- package/action-panel/action-panel-container.d.ts +0 -5
- package/action-panel/action-panel.d.ts +0 -14
- package/action-panel/action-panel.module.d.ts +0 -13
- package/action-panel/index.d.ts +0 -5
- package/autocomplete-off/autocomplete-off.directive.d.ts +0 -5
- package/autocomplete-off/autocomplete-off.module.d.ts +0 -7
- package/autocomplete-off/index.d.ts +0 -2
- package/back-button/back-button.d.ts +0 -9
- package/back-button/back-button.module.d.ts +0 -10
- package/back-button/index.d.ts +0 -2
- package/brand-avatar/brand-avatar.d.ts +0 -27
- package/brand-avatar/brand-avatar.module.d.ts +0 -9
- package/brand-avatar/index.d.ts +0 -2
- package/breadcrumb/breadcrumb-model.interface.d.ts +0 -10
- package/breadcrumb/breadcrumb.d.ts +0 -17
- package/breadcrumb/breadcrumb.module.d.ts +0 -10
- package/breadcrumb/breadcrumb.service.d.ts +0 -9
- package/breadcrumb/index.d.ts +0 -4
- package/charts/area-chart/area-chart.component.d.ts +0 -41
- package/charts/bar-chart/bar-chart.component.d.ts +0 -97
- package/charts/chart-alert-overlay/chart-alert-overlay.component.d.ts +0 -7
- package/charts/chart-export/chart-export-button.component.d.ts +0 -13
- package/charts/chart-export/chart-export.service.d.ts +0 -20
- package/charts/chart-legend/chart-legend.component.d.ts +0 -12
- package/charts/chart-tooltip/chart-tooltip.component.d.ts +0 -16
- package/charts/charts.module.d.ts +0 -21
- package/charts/combo-chart/combo-chart.component.d.ts +0 -83
- package/charts/constants/alert-message-constants.d.ts +0 -5
- package/charts/constants/index.d.ts +0 -1
- package/charts/directives/auto-position.directive.d.ts +0 -16
- package/charts/directives/index.d.ts +0 -4
- package/charts/directives/outside-click.directive.d.ts +0 -10
- package/charts/directives/screen-state.service.d.ts +0 -35
- package/charts/directives/tenant-full-date-range.directive.d.ts +0 -10
- package/charts/directives/window-resize.directive.d.ts +0 -12
- package/charts/funnel-chart/funnel-chart.component.d.ts +0 -154
- package/charts/index.d.ts +0 -8
- package/charts/line-chart/line-chart.component.d.ts +0 -43
- package/charts/pie-chart/pie-chart.component.d.ts +0 -40
- package/charts/shared/chart-base.d.ts +0 -37
- package/charts/shared/chart-skeleton.component.d.ts +0 -8
- package/charts/shared/d3-chart-axes.d.ts +0 -50
- package/charts/shared/d3-dots.d.ts +0 -10
- package/charts/shared/xy-chart.types.d.ts +0 -35
- package/charts/utils/color.utils.d.ts +0 -9
- package/charts/utils/index.d.ts +0 -3
- package/charts/utils/text.utils.d.ts +0 -8
- package/charts/utils/utils.d.ts +0 -2
- package/clr-addons.module.d.ts +0 -48
- package/clr-control-warning/if-warning.directive.d.ts +0 -19
- package/clr-control-warning/if-warning.module.d.ts +0 -8
- package/clr-control-warning/index.d.ts +0 -2
- package/collapse-expand-section/collapse-expand-section.d.ts +0 -14
- package/collapse-expand-section/collapse-expand-section.module.d.ts +0 -10
- package/collapse-expand-section/index.d.ts +0 -2
- package/content-panel/content-panel-container-content.d.ts +0 -5
- package/content-panel/content-panel-container-footer.d.ts +0 -5
- package/content-panel/content-panel-container.d.ts +0 -5
- package/content-panel/content-panel.d.ts +0 -14
- package/content-panel/content-panel.module.d.ts +0 -13
- package/content-panel/index.d.ts +0 -5
- package/control-enter-submit/clr-control-enter-submit.directive.d.ts +0 -16
- package/control-enter-submit/index.d.ts +0 -1
- package/copy-to-clipboard/copy-to-clipboard.d.ts +0 -31
- package/copy-to-clipboard/index.d.ts +0 -1
- package/data-list-validator/data-list-predefined-validator.directive.d.ts +0 -14
- package/data-list-validator/data-list-validator.module.d.ts +0 -7
- package/data-list-validator/data-list.validator.d.ts +0 -26
- package/data-list-validator/index.d.ts +0 -3
- package/datagrid/column-reorder/column-reorder.directive.d.ts +0 -32
- package/datagrid/column-reorder/datagrid-column-reorder.module.d.ts +0 -9
- package/datagrid/column-reorder/dynamic-cell-content.component.d.ts +0 -9
- package/datagrid/column-reorder/dynamic-column.d.ts +0 -10
- package/datagrid/column-reorder/index.d.ts +0 -4
- package/datagrid/datagrid-state-persistence/column-hidden-state-persistence.directive.d.ts +0 -21
- package/datagrid/datagrid-state-persistence/datagrid-field.directive.d.ts +0 -8
- package/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.d.ts +0 -15
- package/datagrid/datagrid-state-persistence/datagrid-state-persistence.module.d.ts +0 -9
- package/datagrid/datagrid-state-persistence/index.d.ts +0 -6
- package/datagrid/datagrid-state-persistence/state-persistence-key.directive.d.ts +0 -82
- package/datagrid/datagrid-state-persistence/state-persistence-options.interface.d.ts +0 -14
- package/datagrid/date-filter/date-filter.component.d.ts +0 -58
- package/datagrid/date-filter/date-filter.module.d.ts +0 -12
- package/datagrid/date-filter/index.d.ts +0 -2
- package/datagrid/date-filter/nested-property.d.ts +0 -10
- package/datagrid/enum-filter/enum-filter.component.d.ts +0 -44
- package/datagrid/enum-filter/enum-filter.module.d.ts +0 -10
- package/datagrid/enum-filter/index.d.ts +0 -2
- package/datagrid/index.d.ts +0 -4
- package/date-time-container/date-time-container.d.ts +0 -11
- package/date-time-container/date-time-module.d.ts +0 -11
- package/date-time-container/index.d.ts +0 -3
- package/date-time-container/time-input.d.ts +0 -5
- package/daterangepicker/daterange.constants.d.ts +0 -21
- package/daterangepicker/daterangepicker.module.d.ts +0 -18
- package/daterangepicker/directives/abstract-container.component.d.ts +0 -53
- package/daterangepicker/directives/datepicker/datepicker.component.d.ts +0 -66
- package/daterangepicker/directives/daterangepicker/daterangepicker.directive.d.ts +0 -133
- package/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.d.ts +0 -133
- package/daterangepicker/directives/if-daterange-error.directive.d.ts +0 -40
- package/daterangepicker/directives/timepicker/timepicker.component.d.ts +0 -33
- package/daterangepicker/index.d.ts +0 -16
- package/daterangepicker/interfaces/daterange-preset.interface.d.ts +0 -8
- package/daterangepicker/interfaces/daterange.interface.d.ts +0 -12
- package/daterangepicker/interfaces/timerange-preset.interface.d.ts +0 -8
- package/daterangepicker/interfaces/timerange.interface.d.ts +0 -13
- package/daterangepicker/models/day.model.d.ts +0 -80
- package/daterangepicker/models/popover-positions.model.d.ts +0 -20
- package/daterangepicker/models/time.model.d.ts +0 -65
- package/daterangepicker/providers/daterange-control-state.service.d.ts +0 -42
- package/daterangepicker/providers/daterange-parsing.service.d.ts +0 -77
- package/daterangepicker/providers/daterange.service.d.ts +0 -47
- package/daterangepicker/providers/opened-datepickers-tracker.service.d.ts +0 -20
- package/daterangepicker/validators/daterange-max.validator.d.ts +0 -32
- package/daterangepicker/validators/daterange-min.validator.d.ts +0 -32
- package/daterangepicker/validators/daterange-order.validator.d.ts +0 -30
- package/daterangepicker/validators/daterange-required.validator.d.ts +0 -29
- package/dot-pager/dot-pager.d.ts +0 -21
- package/dot-pager/dot-pager.module.d.ts +0 -10
- package/dot-pager/index.d.ts +0 -2
- package/dropdown/clr-dropdown-overflow.directive.d.ts +0 -26
- package/dropdown/clr-dropdown-overflow.module.d.ts +0 -7
- package/dropdown/index.d.ts +0 -2
- package/export-datagrid-button/export-datagrid-button.component.d.ts +0 -39
- package/export-datagrid-button/export-datagrid-button.module.d.ts +0 -7
- package/export-datagrid-button/export-datagrid.service.d.ts +0 -15
- package/export-datagrid-button/export-type.model.d.ts +0 -9
- package/export-datagrid-button/index.d.ts +0 -4
- package/fesm2022/clr-addons.mjs.map +0 -1
- package/flow-bar/flow-bar.d.ts +0 -32
- package/flow-bar/flow-bar.module.d.ts +0 -11
- package/flow-bar/index.d.ts +0 -2
- package/focus-first-invalid-field/focus-first-invalid-field.directive.d.ts +0 -7
- package/focus-first-invalid-field/index.d.ts +0 -1
- package/generic-quick-list/generic-quick-list.d.ts +0 -29
- package/generic-quick-list/generic-quick-list.module.d.ts +0 -9
- package/generic-quick-list/index.d.ts +0 -2
- package/history/history-model.interface.d.ts +0 -38
- package/history/history-pinned.d.ts +0 -27
- package/history/history.d.ts +0 -33
- package/history/history.http.impl.service.d.ts +0 -16
- package/history/history.http.service.d.ts +0 -9
- package/history/history.module.d.ts +0 -12
- package/history/history.provider.d.ts +0 -15
- package/history/history.service.d.ts +0 -27
- package/history/index.d.ts +0 -7
- package/icon-avatar/icon-avatar.d.ts +0 -14
- package/icon-avatar/icon-avatar.module.d.ts +0 -9
- package/icon-avatar/index.d.ts +0 -2
- package/icons/index.d.ts +0 -2
- package/icons/shapes.d.ts +0 -1088
- package/icons/svg-tag-generator.d.ts +0 -8
- package/image-gallery/image-carousel.d.ts +0 -36
- package/image-gallery/image-gallery.d.ts +0 -31
- package/image-gallery/image-gallery.module.d.ts +0 -10
- package/image-gallery/image-gallery.types.d.ts +0 -8
- package/image-gallery/index.d.ts +0 -3
- package/index.d.ts +0 -44
- package/keyboard-nav/clr-keyboard-nav-alt-mnemonic.directive.d.ts +0 -50
- package/keyboard-nav/clr-keyboard-nav-ctrl-arrow.directive.d.ts +0 -60
- package/keyboard-nav/index.d.ts +0 -2
- package/letter-avatar/index.d.ts +0 -2
- package/letter-avatar/letter-avatar.d.ts +0 -14
- package/letter-avatar/letter-avatar.module.d.ts +0 -9
- package/location-bar/index.d.ts +0 -5
- package/location-bar/location-bar-node/location-bar-node.component.d.ts +0 -59
- package/location-bar/location-bar-search/location-bar-search.component.d.ts +0 -23
- package/location-bar/location-bar.component.d.ts +0 -21
- package/location-bar/location-bar.model.d.ts +0 -54
- package/location-bar/location-bar.module.d.ts +0 -16
- package/location-bar/location-bar.provider.d.ts +0 -25
- package/location-bar/location-bar.search.model.d.ts +0 -16
- package/main-nav-group/index.d.ts +0 -3
- package/main-nav-group/main-nav-group-item.d.ts +0 -12
- package/main-nav-group/main-nav-group.d.ts +0 -30
- package/main-nav-group/main-nav-group.module.d.ts +0 -11
- package/multilingual/abstract-multilingual.d.ts +0 -31
- package/multilingual/index.d.ts +0 -5
- package/multilingual/multilingual-input/multilingual-input.d.ts +0 -8
- package/multilingual/multilingual-selector.d.ts +0 -10
- package/multilingual/multilingual-textarea/multilingual-textarea.d.ts +0 -9
- package/multilingual/multilingual-validators.d.ts +0 -48
- package/multilingual/multilingual.module.d.ts +0 -14
- package/notification/index.d.ts +0 -4
- package/notification/notification-ref.d.ts +0 -33
- package/notification/notification.d.ts +0 -34
- package/notification/notification.module.d.ts +0 -10
- package/notification/notification.service.d.ts +0 -27
- package/notification/scheduler-utils.d.ts +0 -10
- package/numericfield/index.d.ts +0 -3
- package/numericfield/numeric-field-validators.d.ts +0 -65
- package/numericfield/numeric-field.d.ts +0 -51
- package/numericfield/numeric-field.module.d.ts +0 -11
- package/paged-search-result-list/index.d.ts +0 -2
- package/paged-search-result-list/paged-search-result-list.d.ts +0 -46
- package/paged-search-result-list/paged-search-result-list.module.d.ts +0 -11
- package/pager/index.d.ts +0 -2
- package/pager/pager.d.ts +0 -43
- package/pager/pager.module.d.ts +0 -10
- package/progress-spinner/index.d.ts +0 -2
- package/progress-spinner/progress-spinner.d.ts +0 -19
- package/progress-spinner/progress-spinner.module.d.ts +0 -8
- package/quick-list/add-option.d.ts +0 -25
- package/quick-list/add-option.service.d.ts +0 -6
- package/quick-list/index.d.ts +0 -3
- package/quick-list/quick-list.d.ts +0 -30
- package/quick-list/quick-list.module.d.ts +0 -11
- package/readonly/index.d.ts +0 -2
- package/readonly/readonly.directive.d.ts +0 -37
- package/readonly/readonly.module.d.ts +0 -7
- package/searchfield/index.d.ts +0 -2
- package/searchfield/search-field.d.ts +0 -26
- package/searchfield/search-field.module.d.ts +0 -10
- package/signpost/index.d.ts +0 -2
- package/signpost/signpost.component.d.ts +0 -22
- package/signpost/signpost.module.d.ts +0 -9
- package/summary-area/index.d.ts +0 -7
- package/summary-area/summary-area/summary-area-state.service.d.ts +0 -15
- package/summary-area/summary-area/summary-area.d.ts +0 -75
- package/summary-area/summary-area/summary-area.model.d.ts +0 -19
- package/summary-area/summary-area-toggle/summary-area-toggle.d.ts +0 -15
- package/summary-area/summary-item/summary-item.d.ts +0 -59
- package/summary-area/summary-item/summary-item.model.d.ts +0 -19
- package/summary-area/summary-item-value/summary-item-value.d.ts +0 -65
- package/treetable/built-in/filter/treetable-string-filter.d.ts +0 -24
- package/treetable/enums/selection-type.d.ts +0 -9
- package/treetable/enums/sort-order.enum.d.ts +0 -5
- package/treetable/index.d.ts +0 -17
- package/treetable/interfaces/comparator.interface.d.ts +0 -3
- package/treetable/interfaces/filter-model.d.ts +0 -37
- package/treetable/interfaces/treetable-model.d.ts +0 -55
- package/treetable/interfaces/treetable-state-model.d.ts +0 -20
- package/treetable/providers/filters.d.ts +0 -29
- package/treetable/providers/index.d.ts +0 -2
- package/treetable/providers/sort.d.ts +0 -28
- package/treetable/providers/treetable-data-state.service.d.ts +0 -37
- package/treetable/providers/treetable-recursion.service.d.ts +0 -17
- package/treetable/renderer/cell-renderer.d.ts +0 -11
- package/treetable/renderer/header-renderer.d.ts +0 -18
- package/treetable/renderer/index.d.ts +0 -4
- package/treetable/renderer/main-renderer.d.ts +0 -22
- package/treetable/renderer/row-renderer.d.ts +0 -8
- package/treetable/treetable-action-overflow.d.ts +0 -14
- package/treetable/treetable-cell.d.ts +0 -5
- package/treetable/treetable-column.d.ts +0 -18
- package/treetable/treetable-filter.d.ts +0 -18
- package/treetable/treetable-items.d.ts +0 -25
- package/treetable/treetable-placeholder.d.ts +0 -5
- package/treetable/treetable-recursive-rows.d.ts +0 -12
- package/treetable/treetable-row-checkbox.d.ts +0 -10
- package/treetable/treetable-row.d.ts +0 -27
- package/treetable/treetable.d.ts +0 -27
- package/treetable/treetable.module.d.ts +0 -25
- package/treetable/util/treetable-filter-util.d.ts +0 -22
- package/treetable/util/treetable-state-util.d.ts +0 -10
- package/util/escape.util.d.ts +0 -2
- package/util/index.d.ts +0 -2
- package/util/numeric.format.util.d.ts +0 -2
- package/view-edit-section/index.d.ts +0 -2
- package/view-edit-section/view-edit-section.d.ts +0 -37
- package/view-edit-section/view-edit-section.module.d.ts +0 -10
- package/view-edit-section/view-edit-section.types.d.ts +0 -2
|
@@ -0,0 +1,601 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AfterViewInit, ElementRef, OnChanges, SimpleChanges, OnInit } from '@angular/core';
|
|
3
|
+
import * as i7 from '@angular/common';
|
|
4
|
+
import * as i8 from '@clr/angular';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A single data point on an XY chart (line, area).
|
|
8
|
+
* `x` is used as the category key; `xLabel` is the optional display label for the axis tick.
|
|
9
|
+
*/
|
|
10
|
+
interface XYChartPoint {
|
|
11
|
+
/** Unique key used as the X-axis category. */
|
|
12
|
+
x: string;
|
|
13
|
+
/** Optional display label for the X-axis tick (defaults to `x`). */
|
|
14
|
+
xLabel?: string;
|
|
15
|
+
/** Y value. */
|
|
16
|
+
value: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A named data series for an XY chart.
|
|
20
|
+
*/
|
|
21
|
+
interface XYChartSeries {
|
|
22
|
+
/** Unique identifier. */
|
|
23
|
+
key: string;
|
|
24
|
+
/** Display name shown in the legend and tooltip. */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Line / area / dot colour. Accepts hex or CSS custom property. */
|
|
27
|
+
color: string;
|
|
28
|
+
/** Ordered data points for this series. */
|
|
29
|
+
data: XYChartPoint[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Emitted when the user clicks a data point on an XY chart.
|
|
33
|
+
*/
|
|
34
|
+
interface XYChartValue {
|
|
35
|
+
seriesKey: string;
|
|
36
|
+
seriesLabel: string;
|
|
37
|
+
x: string;
|
|
38
|
+
xLabel?: string;
|
|
39
|
+
value: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Converts a chart color value to a CSS-compatible string.
|
|
44
|
+
*
|
|
45
|
+
* Supports:
|
|
46
|
+
* - Hex values: '#e57200' → returned as-is
|
|
47
|
+
* - CSS custom props: '--cds-global-color-lavender-1000' → wrapped in var(...)
|
|
48
|
+
* - Any other string: 'rgb(...)' / 'hsl(...)' → returned as-is
|
|
49
|
+
*/
|
|
50
|
+
declare function toChartColor(color: string | undefined): string;
|
|
51
|
+
|
|
52
|
+
interface ChartLegendItem {
|
|
53
|
+
label: string;
|
|
54
|
+
color: string;
|
|
55
|
+
}
|
|
56
|
+
declare class ChartLegendComponent {
|
|
57
|
+
readonly items: _angular_core.InputSignal<ChartLegendItem[]>;
|
|
58
|
+
protected readonly toChartColor: typeof toChartColor;
|
|
59
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartLegendComponent, never>;
|
|
60
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartLegendComponent, "cng-chart-legend", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Abstract base class shared by all chart components.
|
|
65
|
+
* ...
|
|
66
|
+
*/
|
|
67
|
+
declare abstract class ChartBase<TSelected = unknown> implements AfterViewInit {
|
|
68
|
+
/** Whether the chart is in loading state (shows skeleton). */
|
|
69
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
70
|
+
/** Reference to the `<svg #chart>` element in the component template. */
|
|
71
|
+
protected readonly chartRef: _angular_core.Signal<ElementRef<any>>;
|
|
72
|
+
/** Reference to the `<div #container>` host element in the component template. */
|
|
73
|
+
protected readonly containerRef: _angular_core.Signal<ElementRef<any>>;
|
|
74
|
+
/** Exposes the raw SVG element for the chart-export button. */
|
|
75
|
+
readonly svgElement: _angular_core.Signal<SVGSVGElement>;
|
|
76
|
+
protected readonly selectedItem: _angular_core.WritableSignal<TSelected>;
|
|
77
|
+
protected readonly tooltipPosition: _angular_core.WritableSignal<{
|
|
78
|
+
x: number;
|
|
79
|
+
y: number;
|
|
80
|
+
}>;
|
|
81
|
+
/** Schedules the first render after the view is ready. */
|
|
82
|
+
ngAfterViewInit(): void;
|
|
83
|
+
/** Each chart implements its own D3 rendering logic here. */
|
|
84
|
+
protected abstract updateChart(): void;
|
|
85
|
+
/** Returns the pixel dimensions of the container div. */
|
|
86
|
+
protected getContainerDimensions(): {
|
|
87
|
+
width: number;
|
|
88
|
+
height: number;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Clears the active tooltip. Override in subclasses that have additional
|
|
92
|
+
* selection state
|
|
93
|
+
*/
|
|
94
|
+
resetTooltip(): void;
|
|
95
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartBase<any>, never>;
|
|
96
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChartBase<any>, never, never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
interface BarChartData {
|
|
100
|
+
key: string;
|
|
101
|
+
label: string;
|
|
102
|
+
fullLabel?: string;
|
|
103
|
+
value: number;
|
|
104
|
+
color?: string;
|
|
105
|
+
stackKey?: string;
|
|
106
|
+
}
|
|
107
|
+
interface BarChartValue {
|
|
108
|
+
key: string[];
|
|
109
|
+
label: string;
|
|
110
|
+
value: number;
|
|
111
|
+
}
|
|
112
|
+
type BarChartDataPoint = BarChartData & {
|
|
113
|
+
stackValue0: number;
|
|
114
|
+
stackValue1: number;
|
|
115
|
+
percentageOfStack: number;
|
|
116
|
+
};
|
|
117
|
+
type BarChartLabel = {
|
|
118
|
+
stackKey: string;
|
|
119
|
+
label: string;
|
|
120
|
+
};
|
|
121
|
+
declare class BarChartComponent extends ChartBase<BarChartDataPoint> implements OnChanges {
|
|
122
|
+
readonly data: _angular_core.InputSignal<BarChartData[]>;
|
|
123
|
+
readonly stacks: _angular_core.InputSignal<BarChartLabel[]>;
|
|
124
|
+
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
125
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
126
|
+
readonly barSizePx: _angular_core.InputSignal<number>;
|
|
127
|
+
readonly barAreaSizePx: _angular_core.InputSignal<number>;
|
|
128
|
+
readonly tooltipPercentOfTotal: _angular_core.InputSignal<string>;
|
|
129
|
+
readonly tooltipPercentOf: _angular_core.InputSignal<string>;
|
|
130
|
+
readonly noItemsMessage: _angular_core.InputSignal<string>;
|
|
131
|
+
readonly tooManyItemsMessage: _angular_core.InputSignal<string>;
|
|
132
|
+
readonly tooManyItemsGroupedMessage: _angular_core.InputSignal<string>;
|
|
133
|
+
readonly showLegend: _angular_core.InputSignal<boolean>;
|
|
134
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
135
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
136
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
137
|
+
/** Optional label rendered below the X axis. */
|
|
138
|
+
readonly xAxisLabel: _angular_core.InputSignal<string>;
|
|
139
|
+
/** Optional label rendered rotated to the left of the Y axis. */
|
|
140
|
+
readonly yAxisLabel: _angular_core.InputSignal<string>;
|
|
141
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<BarChartValue>;
|
|
142
|
+
private readonly textRenderer;
|
|
143
|
+
private readonly MARGIN;
|
|
144
|
+
private static readonly HORIZONTAL_BAR_MIN_HEIGHT_PX;
|
|
145
|
+
protected readonly toChartColor: typeof toChartColor;
|
|
146
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
147
|
+
protected readonly totalByStack: _angular_core.Signal<Record<string, number>>;
|
|
148
|
+
protected readonly keysByStack: _angular_core.Signal<Record<string, string[]>>;
|
|
149
|
+
protected readonly totalBarCount: _angular_core.Signal<number>;
|
|
150
|
+
protected readonly showingBarCount: _angular_core.Signal<number>;
|
|
151
|
+
readonly alertMessageAndType: _angular_core.Signal<[string, string]>;
|
|
152
|
+
readonly legendItems: _angular_core.Signal<ChartLegendItem[]>;
|
|
153
|
+
/** Computed values used by the tooltip to avoid inline logic in the template. */
|
|
154
|
+
protected readonly tooltipKey: _angular_core.Signal<string[]>;
|
|
155
|
+
protected readonly tooltipLabel: _angular_core.Signal<string>;
|
|
156
|
+
protected readonly tooltipValue: _angular_core.Signal<number>;
|
|
157
|
+
/** Slices belonging to the currently selected stack – used by the tooltip @for loop. */
|
|
158
|
+
protected readonly selectedStackSlices: _angular_core.Signal<BarChartDataPoint[]>;
|
|
159
|
+
private readonly maxAmountOfItems;
|
|
160
|
+
private readonly slicedDataPoints;
|
|
161
|
+
private svg;
|
|
162
|
+
private barSelection;
|
|
163
|
+
private labelSelection;
|
|
164
|
+
constructor();
|
|
165
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
166
|
+
ngAfterViewInit(): void;
|
|
167
|
+
private createChart;
|
|
168
|
+
protected updateChart(): void;
|
|
169
|
+
private createVerticalChart;
|
|
170
|
+
private createHorizontalChart;
|
|
171
|
+
private createBarSelectionGroups;
|
|
172
|
+
private addTextCommonInfo;
|
|
173
|
+
private addTextHoverHandlers;
|
|
174
|
+
private setHoverStylesByStackKey;
|
|
175
|
+
private addBarClickHandler;
|
|
176
|
+
private addTextClickHandler;
|
|
177
|
+
private openTooltipByKey;
|
|
178
|
+
private addTextAndTitle;
|
|
179
|
+
private styleGridLines;
|
|
180
|
+
private addVerticalBarRectangle;
|
|
181
|
+
private addHorizontalBarRectangle;
|
|
182
|
+
/** Appends a shared-style axis description label to the chart group. */
|
|
183
|
+
private appendAxisLabel;
|
|
184
|
+
private stackItems;
|
|
185
|
+
private mapItems;
|
|
186
|
+
private getMaxAmountOfItems;
|
|
187
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartComponent, never>;
|
|
188
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "clr-bar-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "stacks": { "alias": "stacks"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": true; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "barSizePx": { "alias": "barSizePx"; "required": false; "isSignal": true; }; "barAreaSizePx": { "alias": "barAreaSizePx"; "required": false; "isSignal": true; }; "tooltipPercentOfTotal": { "alias": "tooltipPercentOfTotal"; "required": false; "isSignal": true; }; "tooltipPercentOf": { "alias": "tooltipPercentOf"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "tooManyItemsMessage": { "alias": "tooManyItemsMessage"; "required": false; "isSignal": true; }; "tooManyItemsGroupedMessage": { "alias": "tooManyItemsGroupedMessage"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "xAxisLabel": { "alias": "xAxisLabel"; "required": false; "isSignal": true; }; "yAxisLabel": { "alias": "yAxisLabel"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
type LineChartSelectedPoint = XYChartPoint & {
|
|
192
|
+
seriesKey: string;
|
|
193
|
+
seriesLabel: string;
|
|
194
|
+
color: string;
|
|
195
|
+
};
|
|
196
|
+
declare class LineChartComponent extends ChartBase<LineChartSelectedPoint> implements OnChanges {
|
|
197
|
+
readonly series: _angular_core.InputSignal<XYChartSeries[]>;
|
|
198
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
199
|
+
readonly showArea: _angular_core.InputSignal<boolean>;
|
|
200
|
+
readonly showLegend: _angular_core.InputSignal<boolean>;
|
|
201
|
+
readonly showValues: _angular_core.InputSignal<boolean>;
|
|
202
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
203
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
204
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
205
|
+
readonly noItemsMessage: _angular_core.InputSignal<string>;
|
|
206
|
+
readonly tooltipPercentOfTotal: _angular_core.InputSignal<string>;
|
|
207
|
+
/** Optional label rendered below the X axis. */
|
|
208
|
+
readonly xAxisLabel: _angular_core.InputSignal<string>;
|
|
209
|
+
/** Optional label rendered rotated to the left of the Y axis. */
|
|
210
|
+
readonly yAxisLabel: _angular_core.InputSignal<string>;
|
|
211
|
+
readonly yMin: _angular_core.InputSignal<number>;
|
|
212
|
+
readonly autoscaleYAxis: _angular_core.InputSignal<boolean>;
|
|
213
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<XYChartValue>;
|
|
214
|
+
private readonly MARGIN;
|
|
215
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
216
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
217
|
+
readonly alertMessageAndType: _angular_core.Signal<[string, string]>;
|
|
218
|
+
readonly legendItems: _angular_core.Signal<ChartLegendItem[]>;
|
|
219
|
+
private svg;
|
|
220
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
221
|
+
ngAfterViewInit(): void;
|
|
222
|
+
protected updateChart(): void;
|
|
223
|
+
private drawSeries;
|
|
224
|
+
private openTooltip;
|
|
225
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartComponent, never>;
|
|
226
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "clr-line-chart", never, { "series": { "alias": "series"; "required": true; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "showArea": { "alias": "showArea"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "tooltipPercentOfTotal": { "alias": "tooltipPercentOfTotal"; "required": false; "isSignal": true; }; "xAxisLabel": { "alias": "xAxisLabel"; "required": false; "isSignal": true; }; "yAxisLabel": { "alias": "yAxisLabel"; "required": false; "isSignal": true; }; "yMin": { "alias": "yMin"; "required": false; "isSignal": true; }; "autoscaleYAxis": { "alias": "autoscaleYAxis"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
type AreaChartSelectedPoint = XYChartPoint & {
|
|
230
|
+
seriesKey: string;
|
|
231
|
+
seriesLabel: string;
|
|
232
|
+
color: string;
|
|
233
|
+
};
|
|
234
|
+
declare class AreaChartComponent extends ChartBase<AreaChartSelectedPoint> implements OnChanges {
|
|
235
|
+
readonly series: _angular_core.InputSignal<XYChartSeries[]>;
|
|
236
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
237
|
+
readonly showLegend: _angular_core.InputSignal<boolean>;
|
|
238
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
239
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
240
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
241
|
+
/** Area fill opacity (0–1). Default: 0.2. */
|
|
242
|
+
readonly areaOpacity: _angular_core.InputSignal<number>;
|
|
243
|
+
readonly noItemsMessage: _angular_core.InputSignal<string>;
|
|
244
|
+
readonly tooltipPercentOfTotal: _angular_core.InputSignal<string>;
|
|
245
|
+
/** Optional label rendered below the X axis. */
|
|
246
|
+
readonly xAxisLabel: _angular_core.InputSignal<string>;
|
|
247
|
+
/** Optional label rendered rotated to the left of the Y axis. */
|
|
248
|
+
readonly yAxisLabel: _angular_core.InputSignal<string>;
|
|
249
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<XYChartValue>;
|
|
250
|
+
private readonly MARGIN;
|
|
251
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
252
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
253
|
+
readonly alertMessageAndType: _angular_core.Signal<[string, string]>;
|
|
254
|
+
readonly legendItems: _angular_core.Signal<ChartLegendItem[]>;
|
|
255
|
+
private svg;
|
|
256
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
257
|
+
ngAfterViewInit(): void;
|
|
258
|
+
protected updateChart(): void;
|
|
259
|
+
private drawSeries;
|
|
260
|
+
private openTooltip;
|
|
261
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AreaChartComponent, never>;
|
|
262
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChartComponent, "clr-area-chart", never, { "series": { "alias": "series"; "required": true; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "areaOpacity": { "alias": "areaOpacity"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "tooltipPercentOfTotal": { "alias": "tooltipPercentOfTotal"; "required": false; "isSignal": true; }; "xAxisLabel": { "alias": "xAxisLabel"; "required": false; "isSignal": true; }; "yAxisLabel": { "alias": "yAxisLabel"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
interface ComboBarPoint {
|
|
266
|
+
/** X category key (must match keys used in line data). */
|
|
267
|
+
x: string;
|
|
268
|
+
/** Optional display label for the X-axis tick. */
|
|
269
|
+
xLabel?: string;
|
|
270
|
+
value: number;
|
|
271
|
+
}
|
|
272
|
+
interface ComboBarSeries {
|
|
273
|
+
key: string;
|
|
274
|
+
label: string;
|
|
275
|
+
color: string;
|
|
276
|
+
data: ComboBarPoint[];
|
|
277
|
+
}
|
|
278
|
+
interface ComboLinePoint {
|
|
279
|
+
x: string;
|
|
280
|
+
value: number;
|
|
281
|
+
}
|
|
282
|
+
interface ComboLineSeries {
|
|
283
|
+
key: string;
|
|
284
|
+
label: string;
|
|
285
|
+
color: string;
|
|
286
|
+
data: ComboLinePoint[];
|
|
287
|
+
}
|
|
288
|
+
/** Emitted when the user clicks a bar segment or a line dot. */
|
|
289
|
+
interface ComboChartValue {
|
|
290
|
+
seriesKey: string;
|
|
291
|
+
seriesLabel: string;
|
|
292
|
+
seriesType: 'bar' | 'line';
|
|
293
|
+
x: string;
|
|
294
|
+
xLabel?: string;
|
|
295
|
+
value: number;
|
|
296
|
+
}
|
|
297
|
+
interface SelectedComboItem {
|
|
298
|
+
seriesKey: string;
|
|
299
|
+
seriesLabel: string;
|
|
300
|
+
seriesType: 'bar' | 'line';
|
|
301
|
+
color: string;
|
|
302
|
+
x: string;
|
|
303
|
+
xLabel?: string;
|
|
304
|
+
value: number;
|
|
305
|
+
total: number;
|
|
306
|
+
}
|
|
307
|
+
declare class ComboChartComponent extends ChartBase<SelectedComboItem> implements OnChanges {
|
|
308
|
+
readonly barSeries: _angular_core.InputSignal<ComboBarSeries[]>;
|
|
309
|
+
readonly lineSeries: _angular_core.InputSignal<ComboLineSeries[]>;
|
|
310
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
311
|
+
readonly showLegend: _angular_core.InputSignal<boolean>;
|
|
312
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
313
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
314
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
315
|
+
readonly noItemsMessage: _angular_core.InputSignal<string>;
|
|
316
|
+
readonly tooltipPercentOfTotal: _angular_core.InputSignal<string>;
|
|
317
|
+
/** Optional label rendered below the X axis. */
|
|
318
|
+
readonly xAxisLabel: _angular_core.InputSignal<string>;
|
|
319
|
+
/** Optional label rendered rotated to the left of the Y axis (bar scale). */
|
|
320
|
+
readonly yAxisLabel: _angular_core.InputSignal<string>;
|
|
321
|
+
/** Optional label rendered rotated to the right of the Y axis (line scale). */
|
|
322
|
+
readonly yLineAxisLabel: _angular_core.InputSignal<string>;
|
|
323
|
+
/** Optional fixed maximum value for the bar Y axis (left). Defaults to auto. */
|
|
324
|
+
readonly yBarMax: _angular_core.InputSignal<number>;
|
|
325
|
+
/** Optional fixed maximum value for the line Y axis (right). Defaults to auto. */
|
|
326
|
+
readonly yLineMax: _angular_core.InputSignal<number>;
|
|
327
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<ComboChartValue>;
|
|
328
|
+
private readonly MARGIN;
|
|
329
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
330
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
331
|
+
readonly alertMessageAndType: _angular_core.Signal<[string, string]>;
|
|
332
|
+
readonly legendItems: _angular_core.Signal<ChartLegendItem[]>;
|
|
333
|
+
private svg;
|
|
334
|
+
private _clipIdCounter;
|
|
335
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
336
|
+
ngAfterViewInit(): void;
|
|
337
|
+
protected updateChart(): void;
|
|
338
|
+
private drawBars;
|
|
339
|
+
private drawLines;
|
|
340
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComboChartComponent, never>;
|
|
341
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboChartComponent, "clr-combo-chart", never, { "barSeries": { "alias": "barSeries"; "required": false; "isSignal": true; }; "lineSeries": { "alias": "lineSeries"; "required": false; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "tooltipPercentOfTotal": { "alias": "tooltipPercentOfTotal"; "required": false; "isSignal": true; }; "xAxisLabel": { "alias": "xAxisLabel"; "required": false; "isSignal": true; }; "yAxisLabel": { "alias": "yAxisLabel"; "required": false; "isSignal": true; }; "yLineAxisLabel": { "alias": "yLineAxisLabel"; "required": false; "isSignal": true; }; "yBarMax": { "alias": "yBarMax"; "required": false; "isSignal": true; }; "yLineMax": { "alias": "yLineMax"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
interface PieChartData {
|
|
345
|
+
key: string;
|
|
346
|
+
label: string;
|
|
347
|
+
fullLabel?: string;
|
|
348
|
+
value: number;
|
|
349
|
+
color: string;
|
|
350
|
+
}
|
|
351
|
+
interface PieChartValue {
|
|
352
|
+
key: string;
|
|
353
|
+
label: string;
|
|
354
|
+
value: number;
|
|
355
|
+
}
|
|
356
|
+
declare class PieChartComponent extends ChartBase<PieChartData> implements OnChanges {
|
|
357
|
+
readonly data: _angular_core.InputSignal<PieChartData[]>;
|
|
358
|
+
readonly donut: _angular_core.InputSignal<boolean>;
|
|
359
|
+
readonly showLegend: _angular_core.InputSignal<boolean>;
|
|
360
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
361
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
362
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
363
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
364
|
+
readonly noItemsMessage: _angular_core.InputSignal<string>;
|
|
365
|
+
readonly tooltipPercentOfTotal: _angular_core.InputSignal<string>;
|
|
366
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<PieChartValue>;
|
|
367
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
368
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
369
|
+
readonly alertMessageAndType: _angular_core.Signal<[string, string]>;
|
|
370
|
+
readonly legendItems: _angular_core.Signal<ChartLegendItem[]>;
|
|
371
|
+
private svg;
|
|
372
|
+
private arcGen;
|
|
373
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
374
|
+
ngAfterViewInit(): void;
|
|
375
|
+
protected updateChart(): void;
|
|
376
|
+
private openTooltip;
|
|
377
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChartComponent, never>;
|
|
378
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartComponent, "clr-pie-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "donut": { "alias": "donut"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "tooltipPercentOfTotal": { "alias": "tooltipPercentOfTotal"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
interface FunnelChartSection {
|
|
382
|
+
key: string;
|
|
383
|
+
label: string;
|
|
384
|
+
value: number;
|
|
385
|
+
/** Hex value ('#009ADB') or CSS custom property ('--cds-global-color-blue-800'). */
|
|
386
|
+
color?: string;
|
|
387
|
+
/** Text color rendered inside this section. */
|
|
388
|
+
textColor?: string;
|
|
389
|
+
}
|
|
390
|
+
interface FunnelChartData {
|
|
391
|
+
key: string;
|
|
392
|
+
label: string;
|
|
393
|
+
fullLabel?: string;
|
|
394
|
+
description?: string;
|
|
395
|
+
value: number;
|
|
396
|
+
/** Optional breakdown of the bar into named segments. Values should sum to `value`. */
|
|
397
|
+
sections?: FunnelChartSection[];
|
|
398
|
+
}
|
|
399
|
+
interface FunnelValue {
|
|
400
|
+
value: number;
|
|
401
|
+
label: string;
|
|
402
|
+
key: string;
|
|
403
|
+
/** Key of the clicked section, or `undefined` when the whole bar was clicked. */
|
|
404
|
+
section?: string;
|
|
405
|
+
}
|
|
406
|
+
interface FunnelChartLabels {
|
|
407
|
+
total: string;
|
|
408
|
+
all: string;
|
|
409
|
+
}
|
|
410
|
+
interface FunnelDataPointSection {
|
|
411
|
+
key: string;
|
|
412
|
+
label: string;
|
|
413
|
+
x: number;
|
|
414
|
+
width: number;
|
|
415
|
+
value: number;
|
|
416
|
+
percentage: number;
|
|
417
|
+
cssColor: string;
|
|
418
|
+
hoverColor: string;
|
|
419
|
+
textColor: string;
|
|
420
|
+
}
|
|
421
|
+
interface FunnelDataPoint {
|
|
422
|
+
key: string;
|
|
423
|
+
label: string;
|
|
424
|
+
fullLabel?: string;
|
|
425
|
+
description?: string;
|
|
426
|
+
value: number;
|
|
427
|
+
y: number;
|
|
428
|
+
width: number;
|
|
429
|
+
percentage: number;
|
|
430
|
+
delta?: number;
|
|
431
|
+
deltaPercentage?: number;
|
|
432
|
+
sections: FunnelDataPointSection[];
|
|
433
|
+
}
|
|
434
|
+
interface SectionTooltipData {
|
|
435
|
+
key: string;
|
|
436
|
+
x?: number;
|
|
437
|
+
y?: number;
|
|
438
|
+
description?: string;
|
|
439
|
+
}
|
|
440
|
+
interface SpacerDataPoint {
|
|
441
|
+
index: number;
|
|
442
|
+
topWidth: number;
|
|
443
|
+
bottomWidth: number;
|
|
444
|
+
topY: number;
|
|
445
|
+
bottomY: number;
|
|
446
|
+
topX: number;
|
|
447
|
+
bottomX: number;
|
|
448
|
+
deltaPercentage: number;
|
|
449
|
+
}
|
|
450
|
+
declare class FunnelChartComponent extends ChartBase<FunnelDataPoint> implements OnChanges {
|
|
451
|
+
readonly data: _angular_core.InputSignal<FunnelChartData[]>;
|
|
452
|
+
readonly showExportButton: _angular_core.InputSignal<boolean>;
|
|
453
|
+
readonly exportButtonTitle: _angular_core.InputSignal<string>;
|
|
454
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
455
|
+
/** Rendering mode. 'default' = horizontal bars with sections; 'centered' = centered trapezoid funnel. */
|
|
456
|
+
readonly orientation: _angular_core.InputSignal<"default" | "centered">;
|
|
457
|
+
/** Width reserved on each side for labels (px). */
|
|
458
|
+
readonly textSize: _angular_core.InputSignal<number>;
|
|
459
|
+
/** Gap between funnel bars and their side-line labels (px). */
|
|
460
|
+
readonly lineTextPadding: _angular_core.InputSignal<number>;
|
|
461
|
+
/** Vertical gap between funnel bars – default mode only (px). */
|
|
462
|
+
readonly barGap: _angular_core.InputSignal<number>;
|
|
463
|
+
/** Vertical padding inside the side measurement lines (px). */
|
|
464
|
+
readonly sideLineVerticalPadding: _angular_core.InputSignal<number>;
|
|
465
|
+
/** Minimum length of the horizontal measurement lines on each side (px). Centered mode only. */
|
|
466
|
+
readonly minLineSize: _angular_core.InputSignal<number>;
|
|
467
|
+
/** Ratio of bar height to spacer height. Centered mode only. */
|
|
468
|
+
readonly barToSpacerRatio: _angular_core.InputSignal<number>;
|
|
469
|
+
/** Vertical padding inside the center divider lines (px). Centered mode only. */
|
|
470
|
+
readonly middleLineVerticalPadding: _angular_core.InputSignal<number>;
|
|
471
|
+
/** Fill color of the centered-mode bars. Accepts hex or CSS custom property. Centered mode only. */
|
|
472
|
+
readonly barColor: _angular_core.InputSignal<string>;
|
|
473
|
+
/** Fill color of the trapezoid spacers. Accepts hex or CSS custom property. Centered mode only. */
|
|
474
|
+
readonly spacerColor: _angular_core.InputSignal<string>;
|
|
475
|
+
/**
|
|
476
|
+
* Override the chart labels shown in the tooltip (total / all rows).
|
|
477
|
+
* Partial – any key not provided falls back to the English default.
|
|
478
|
+
*/
|
|
479
|
+
readonly chartLabels: _angular_core.InputSignal<Partial<FunnelChartLabels>>;
|
|
480
|
+
/**
|
|
481
|
+
* Override section colors by section key.
|
|
482
|
+
* Accepts hex values ('#009ADB') or CSS custom properties ('--cds-global-color-blue-800').
|
|
483
|
+
* Per-section `color` in the data takes priority over this map; this map takes priority over
|
|
484
|
+
* the built-in default palette.
|
|
485
|
+
*/
|
|
486
|
+
readonly sectionColors: _angular_core.InputSignal<Record<string, string>>;
|
|
487
|
+
readonly valueClicked: _angular_core.OutputEmitterRef<FunnelValue>;
|
|
488
|
+
protected readonly resolvedChartLabels: _angular_core.Signal<FunnelChartLabels>;
|
|
489
|
+
/** CSS-ready color for the centered-mode bar. */
|
|
490
|
+
protected readonly centeredBarCssColor: _angular_core.Signal<string>;
|
|
491
|
+
/** CSS-ready spacer color. */
|
|
492
|
+
protected readonly centeredSpacerCssColor: _angular_core.Signal<string>;
|
|
493
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
494
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
495
|
+
protected readonly selectedItemLabel: _angular_core.Signal<string>;
|
|
496
|
+
protected readonly selectedSpacerItem: _angular_core.WritableSignal<SpacerDataPoint>;
|
|
497
|
+
protected readonly sectionTooltips: _angular_core.WritableSignal<SectionTooltipData[]>;
|
|
498
|
+
private svg;
|
|
499
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
500
|
+
ngAfterViewInit(): void;
|
|
501
|
+
protected updateChart(): void;
|
|
502
|
+
private calculateDataPoints;
|
|
503
|
+
private renderRightSideText;
|
|
504
|
+
private renderLeftSideText;
|
|
505
|
+
private renderSideLines;
|
|
506
|
+
private renderSideLine;
|
|
507
|
+
private renderFunnel;
|
|
508
|
+
private handleSectionClick;
|
|
509
|
+
resetTooltip(): void;
|
|
510
|
+
/** Formats a percentage to 2 decimal places for template use. */
|
|
511
|
+
protected pct(value: number, total: number): number;
|
|
512
|
+
private renderCenteredChart;
|
|
513
|
+
private calculateCenteredDataPoints;
|
|
514
|
+
private calculateSpacerDataPoints;
|
|
515
|
+
private renderCenteredLeftSideText;
|
|
516
|
+
private renderCenteredLeftSideLines;
|
|
517
|
+
private renderCenteredRightSideText;
|
|
518
|
+
private renderCenteredRightSideLines;
|
|
519
|
+
private renderCenteredMiddleLines;
|
|
520
|
+
private renderCenteredFunnel;
|
|
521
|
+
private getMaxFunnelWidth;
|
|
522
|
+
private getCenteredFractionHeight;
|
|
523
|
+
private getCenteredBarHeight;
|
|
524
|
+
private getCenteredSpacerHeight;
|
|
525
|
+
private getFunnelWidth;
|
|
526
|
+
private getBarHeight;
|
|
527
|
+
private round;
|
|
528
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FunnelChartComponent, never>;
|
|
529
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FunnelChartComponent, "clr-funnel-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "exportButtonTitle": { "alias": "exportButtonTitle"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "textSize": { "alias": "textSize"; "required": false; "isSignal": true; }; "lineTextPadding": { "alias": "lineTextPadding"; "required": false; "isSignal": true; }; "barGap": { "alias": "barGap"; "required": false; "isSignal": true; }; "sideLineVerticalPadding": { "alias": "sideLineVerticalPadding"; "required": false; "isSignal": true; }; "minLineSize": { "alias": "minLineSize"; "required": false; "isSignal": true; }; "barToSpacerRatio": { "alias": "barToSpacerRatio"; "required": false; "isSignal": true; }; "middleLineVerticalPadding": { "alias": "middleLineVerticalPadding"; "required": false; "isSignal": true; }; "barColor": { "alias": "barColor"; "required": false; "isSignal": true; }; "spacerColor": { "alias": "spacerColor"; "required": false; "isSignal": true; }; "chartLabels": { "alias": "chartLabels"; "required": false; "isSignal": true; }; "sectionColors": { "alias": "sectionColors"; "required": false; "isSignal": true; }; }, { "valueClicked": "valueClicked"; }, never, never, false, never>;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
declare class ChartAlertOverlayComponent {
|
|
533
|
+
readonly alertMessage: _angular_core.InputSignal<string>;
|
|
534
|
+
readonly alertType: _angular_core.InputSignal<string>;
|
|
535
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartAlertOverlayComponent, never>;
|
|
536
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartAlertOverlayComponent, "cng-chart-alert-overlay", never, { "alertMessage": { "alias": "alertMessage"; "required": true; "isSignal": true; }; "alertType": { "alias": "alertType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
declare class ChartExportButtonComponent {
|
|
540
|
+
readonly svgRef: _angular_core.InputSignal<SVGSVGElement>;
|
|
541
|
+
readonly filename: _angular_core.InputSignal<string>;
|
|
542
|
+
readonly buttonTitle: _angular_core.InputSignal<string>;
|
|
543
|
+
/** Legend items to include below the chart in the exported file. */
|
|
544
|
+
readonly legendItems: _angular_core.InputSignal<ChartLegendItem[]>;
|
|
545
|
+
private readonly exportService;
|
|
546
|
+
export(format: 'svg' | 'png'): void;
|
|
547
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartExportButtonComponent, never>;
|
|
548
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartExportButtonComponent, "cng-chart-export-button", never, { "svgRef": { "alias": "svgRef"; "required": false; "isSignal": true; }; "filename": { "alias": "filename"; "required": false; "isSignal": true; }; "buttonTitle": { "alias": "buttonTitle"; "required": false; "isSignal": true; }; "legendItems": { "alias": "legendItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
declare class ChartSkeletonComponent {
|
|
552
|
+
readonly skeletonType: _angular_core.InputSignal<"loading" | "placeholder">;
|
|
553
|
+
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
554
|
+
protected readonly animationStyle: _angular_core.Signal<string>;
|
|
555
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartSkeletonComponent, never>;
|
|
556
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartSkeletonComponent, "cng-bar-chart-skeleton", never, { "skeletonType": { "alias": "skeletonType"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
declare class ChartTooltipComponent {
|
|
560
|
+
readonly tooltipPosition: _angular_core.InputSignal<{
|
|
561
|
+
x: number;
|
|
562
|
+
y: number;
|
|
563
|
+
}>;
|
|
564
|
+
readonly tooltipOrientation: _angular_core.InputSignal<"top" | "bottom">;
|
|
565
|
+
readonly squareColor: _angular_core.InputSignal<string>;
|
|
566
|
+
readonly tooltipClickable: _angular_core.InputSignal<boolean>;
|
|
567
|
+
readonly tooltipClosed: _angular_core.OutputEmitterRef<void>;
|
|
568
|
+
readonly tooltipHeaderClicked: _angular_core.OutputEmitterRef<void>;
|
|
569
|
+
protected readonly toChartColor: typeof toChartColor;
|
|
570
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartTooltipComponent, never>;
|
|
571
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartTooltipComponent, "cng-chart-tooltip", never, { "tooltipPosition": { "alias": "tooltipPosition"; "required": true; "isSignal": true; }; "tooltipOrientation": { "alias": "tooltipOrientation"; "required": false; "isSignal": true; }; "squareColor": { "alias": "squareColor"; "required": true; "isSignal": true; }; "tooltipClickable": { "alias": "tooltipClickable"; "required": false; "isSignal": true; }; }, { "tooltipClosed": "tooltipClosed"; "tooltipHeaderClicked": "tooltipHeaderClicked"; }, never, ["cng-title", "*", "cng-footer"], true, never>;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
declare class OutsideClickDirective implements AfterViewInit {
|
|
575
|
+
readonly outsideClick: _angular_core.OutputEmitterRef<void>;
|
|
576
|
+
private readonly renderer;
|
|
577
|
+
private readonly destroyRef;
|
|
578
|
+
ngAfterViewInit(): void;
|
|
579
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OutsideClickDirective, never>;
|
|
580
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OutsideClickDirective, "[cngOutsideClick]", never, {}, { "outsideClick": "cngOutsideClick"; }, never, never, true, never>;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
declare class WindowResizeDirective implements OnInit {
|
|
584
|
+
readonly debounce: _angular_core.InputSignal<number>;
|
|
585
|
+
readonly includeFirst: _angular_core.InputSignal<boolean>;
|
|
586
|
+
readonly windowResize: _angular_core.OutputEmitterRef<number>;
|
|
587
|
+
private readonly screenStateService;
|
|
588
|
+
private readonly destroyRef;
|
|
589
|
+
ngOnInit(): void;
|
|
590
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WindowResizeDirective, never>;
|
|
591
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WindowResizeDirective, "[cngWindowResize]", never, { "debounce": { "alias": "debounce"; "required": false; "isSignal": true; }; "includeFirst": { "alias": "includeFirst"; "required": false; "isSignal": true; }; }, { "windowResize": "cngWindowResize"; }, never, never, true, never>;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
declare class ClrChartsModule {
|
|
595
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClrChartsModule, never>;
|
|
596
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ClrChartsModule, [typeof AreaChartComponent, typeof BarChartComponent, typeof ComboChartComponent, typeof FunnelChartComponent, typeof LineChartComponent, typeof PieChartComponent], [typeof i7.CommonModule, typeof i7.DecimalPipe, typeof i8.ClrAlertModule, typeof i8.ClrIcon, typeof i8.ClrSignpostModule, typeof ChartAlertOverlayComponent, typeof ChartExportButtonComponent, typeof ChartLegendComponent, typeof ChartSkeletonComponent, typeof ChartTooltipComponent, typeof OutsideClickDirective, typeof WindowResizeDirective], [typeof AreaChartComponent, typeof BarChartComponent, typeof ComboChartComponent, typeof FunnelChartComponent, typeof LineChartComponent, typeof PieChartComponent]>;
|
|
597
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<ClrChartsModule>;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export { AreaChartComponent, BarChartComponent, ClrChartsModule, ComboChartComponent, FunnelChartComponent, LineChartComponent, PieChartComponent };
|
|
601
|
+
export type { XYChartPoint as AreaChartPoint, XYChartSeries as AreaChartSeries, XYChartValue as AreaChartValue, BarChartData, BarChartLabel, BarChartValue, ComboBarPoint, ComboBarSeries, ComboChartValue, ComboLinePoint, ComboLineSeries, FunnelChartData, FunnelChartLabels, FunnelChartSection, FunnelValue, XYChartPoint as LineChartPoint, XYChartSeries as LineChartSeries, XYChartValue as LineChartValue, PieChartData, PieChartValue, XYChartPoint, XYChartSeries, XYChartValue };
|