@testgorilla/tgo-ui 8.19.0 → 9.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/components/accordion/index.d.ts +7 -7
- package/components/ai-audio-circle/index.d.ts +3 -3
- package/components/ai-caveat/index.d.ts +5 -5
- package/components/ai-feedback/index.d.ts +14 -14
- package/components/alert-banner/index.d.ts +8 -8
- package/components/autocomplete/index.d.ts +15 -16
- package/components/autocomplete-v2/index.d.ts +36 -32
- package/components/avatar/index.d.ts +7 -7
- package/components/badge/index.d.ts +6 -6
- package/components/breadcrumb/index.d.ts +11 -11
- package/components/button/index.d.ts +23 -13
- package/components/card/index.d.ts +4 -4
- package/components/checkbox/index.d.ts +24 -24
- package/components/core/index.d.ts +39 -31
- package/components/datepicker/index.d.ts +18 -18
- package/components/dialog/index.d.ts +29 -21
- package/components/divider/index.d.ts +4 -4
- package/components/donut-chart/index.d.ts +3 -3
- package/components/dropdown/index.d.ts +37 -33
- package/components/elevation-shadow/index.d.ts +3 -3
- package/components/empty-state/index.d.ts +7 -7
- package/components/field/index.d.ts +33 -44
- package/components/file-upload/index.d.ts +14 -13
- package/components/filter-button/index.d.ts +19 -19
- package/components/gaussian-chart/index.d.ts +8 -8
- package/components/icon/index.d.ts +20 -16
- package/components/icon-label/index.d.ts +5 -5
- package/components/inline-field/index.d.ts +20 -24
- package/components/logo/index.d.ts +2 -3
- package/components/media-dialog/index.d.ts +3 -3
- package/components/multi-input/index.d.ts +25 -16
- package/components/navbar/index.d.ts +30 -30
- package/components/overflow-menu/index.d.ts +20 -19
- package/components/page-header/index.d.ts +5 -5
- package/components/paginator/index.d.ts +4 -4
- package/components/password-criteria/index.d.ts +13 -12
- package/components/password-strength/index.d.ts +6 -6
- package/components/phone-input/index.d.ts +28 -30
- package/components/progress-bar/index.d.ts +5 -5
- package/components/prompt/index.d.ts +25 -25
- package/components/radial-progress/index.d.ts +5 -5
- package/components/radio-button/index.d.ts +28 -29
- package/components/rating/index.d.ts +5 -5
- package/components/scale/index.d.ts +4 -4
- package/components/segmented-bar/index.d.ts +8 -8
- package/components/segmented-button/index.d.ts +17 -16
- package/components/selectable-card/index.d.ts +6 -6
- package/components/side-navigation/index.d.ts +14 -14
- package/components/side-panel/index.d.ts +8 -8
- package/components/side-sheet/index.d.ts +19 -17
- package/components/snackbar/index.d.ts +16 -15
- package/components/spider-chart/index.d.ts +12 -12
- package/components/spinner/index.d.ts +5 -5
- package/components/stepper/index.d.ts +35 -35
- package/components/table/index.d.ts +36 -34
- package/components/tabs/index.d.ts +18 -17
- package/components/tag/index.d.ts +10 -10
- package/components/toggle/index.d.ts +10 -9
- package/components/tooltip/index.d.ts +16 -18
- package/components/universal-skills/index.d.ts +16 -16
- package/components/validation-error/index.d.ts +22 -10
- package/components/write-with-ai/index.d.ts +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +36 -15
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +9 -12
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -10
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +39 -27
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +25 -14
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +4 -2
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +134 -117
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +47 -48
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +30 -18
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +9 -12
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +25 -18
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +155 -120
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +7 -9
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +51 -47
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +2232 -2210
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +44 -25
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +55 -31
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +8 -11
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +8 -10
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +105 -90
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +5 -7
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +24 -13
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +65 -57
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +35 -23
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +34 -27
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +26 -16
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +6 -7
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +112 -81
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +24 -24
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +4 -4
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +42 -21
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +44 -32
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +39 -21
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +10 -14
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +7 -9
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +33 -20
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +9 -12
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +82 -73
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +8 -11
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +47 -40
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -10
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +43 -48
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +7 -12
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +6 -10
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +30 -16
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +15 -14
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +8 -11
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +27 -21
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +5 -2
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +34 -26
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +5 -5
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +31 -20
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +28 -23
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +9 -12
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +85 -79
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +74 -51
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +57 -25
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +16 -17
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +25 -17
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +44 -28
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +34 -27
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +30 -14
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +13 -11
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +6 -8
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/index.d.ts +4 -4
- package/mcp/catalog.json +1 -1
- package/package.json +1 -2
|
@@ -1,9 +1,7 @@
|
|
|
1
|
+
import { NgClass, CommonModule } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Input, HostBinding, Optional, Inject, Component, NgModule } from '@angular/core';
|
|
3
|
-
import
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i2 from '@angular/material/divider';
|
|
6
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
3
|
+
import { Input, HostBinding, Optional, Inject, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
4
|
+
import { MatDivider, MatDividerModule } from '@angular/material/divider';
|
|
7
5
|
|
|
8
6
|
class DividerComponent {
|
|
9
7
|
constructor(defaultAppTheme) {
|
|
@@ -43,11 +41,11 @@ class DividerComponent {
|
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DividerComponent, isStandalone:
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DividerComponent, isStandalone: true, selector: "ui-divider", inputs: { size: "size", companyColor: "companyColor", applicationTheme: "applicationTheme", label: "label" }, host: { properties: { "style.--companyColor": "this.companyColor" } }, ngImport: i0, template: "<div class=\"ui-divider-wrapper\">\n @if (!label) {\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n } @else {\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n }\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #e0e0e0}mat-divider.classic.large{--mat-divider-width: 2px;--mat-divider-color: var(--companyColor)}mat-divider.light.small,mat-divider.dark.small{--mat-divider-width: 1px;--mat-divider-color: #d3d3d3}mat-divider.light.large,mat-divider.dark.large{--mat-divider-width: 2px;--mat-divider-color: #242424}.ui-divider-wrapper .container{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.ui-divider-wrapper .line{flex:1}.ui-divider-wrapper .label{font-size:14px;padding:0 8px}.ui-divider-wrapper .label.large{color:#242424}.ui-divider-wrapper .label.small{color:#666}\n"], dependencies: [{ kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
45
|
}
|
|
48
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponent, decorators: [{
|
|
49
47
|
type: Component,
|
|
50
|
-
args: [{ selector: 'ui-divider',
|
|
48
|
+
args: [{ selector: 'ui-divider', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDivider, NgClass], template: "<div class=\"ui-divider-wrapper\">\n @if (!label) {\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n } @else {\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n }\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #e0e0e0}mat-divider.classic.large{--mat-divider-width: 2px;--mat-divider-color: var(--companyColor)}mat-divider.light.small,mat-divider.dark.small{--mat-divider-width: 1px;--mat-divider-color: #d3d3d3}mat-divider.light.large,mat-divider.dark.large{--mat-divider-width: 2px;--mat-divider-color: #242424}.ui-divider-wrapper .container{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.ui-divider-wrapper .line{flex:1}.ui-divider-wrapper .label{font-size:14px;padding:0 8px}.ui-divider-wrapper .label.large{color:#242424}.ui-divider-wrapper .label.small{color:#666}\n"] }]
|
|
51
49
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
52
50
|
type: Optional
|
|
53
51
|
}, {
|
|
@@ -68,15 +66,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
68
66
|
|
|
69
67
|
class DividerComponentModule {
|
|
70
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
71
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule,
|
|
72
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule, imports: [CommonModule, MatDividerModule] }); }
|
|
69
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule, imports: [CommonModule, MatDividerModule, DividerComponent], exports: [DividerComponent] }); }
|
|
70
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule, imports: [CommonModule, MatDividerModule, DividerComponent] }); }
|
|
73
71
|
}
|
|
74
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DividerComponentModule, decorators: [{
|
|
75
73
|
type: NgModule,
|
|
76
74
|
args: [{
|
|
77
|
-
declarations: [DividerComponent],
|
|
78
75
|
exports: [DividerComponent],
|
|
79
|
-
imports: [CommonModule, MatDividerModule],
|
|
76
|
+
imports: [CommonModule, MatDividerModule, DividerComponent],
|
|
80
77
|
}]
|
|
81
78
|
}] });
|
|
82
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-divider.mjs","sources":["../../../components/divider/divider.component.ts","../../../components/divider/divider.component.html","../../../components/divider/divider.component.module.ts","../../../components/divider/testgorilla-tgo-ui-components-divider.ts"],"sourcesContent":["import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-divider.mjs","sources":["../../../components/divider/divider.component.ts","../../../components/divider/divider.component.html","../../../components/divider/divider.component.module.ts","../../../components/divider/testgorilla-tgo-ui-components-divider.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { MatDivider } from '@angular/material/divider';\n\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\nimport { DividerSize } from './divider.model';\n\n@Component({\n selector: 'ui-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n imports: [MatDivider, NgClass],\n})\nexport class DividerComponent {\n /**\n * Divider size\n *\n * @type {DividerSize}\n * @memberof DividerComponent\n */\n @Input() size: DividerSize = 'large';\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @HostBinding('style.--companyColor')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DividerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Text content in the center of the divider\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @Input() label = '';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n}\n","<div class=\"ui-divider-wrapper\">\n @if (!label) {\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n } @else {\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { DividerComponent } from './divider.component';\n\n@NgModule({\n exports: [DividerComponent],\n imports: [CommonModule, MatDividerModule, DividerComponent],\n})\nexport class DividerComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, Component, NgModule } from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import DataLabelsPlugin from 'chartjs-plugin-datalabels';
|
|
4
|
-
import * as i1 from 'ng2-charts';
|
|
5
4
|
import { BaseChartDirective } from 'ng2-charts';
|
|
6
5
|
import { Chart, registerables } from 'chart.js';
|
|
7
6
|
|
|
@@ -27,7 +26,7 @@ class DonutChartComponent {
|
|
|
27
26
|
// Plugin to display the total in the center
|
|
28
27
|
this.centerTextPlugin = {
|
|
29
28
|
id: 'centerText',
|
|
30
|
-
beforeDraw:
|
|
29
|
+
beforeDraw: chart => {
|
|
31
30
|
const { ctx, chartArea: { width, height }, } = chart;
|
|
32
31
|
const total = chart.data.datasets[0].data.reduce((a, b) => a + b, 0);
|
|
33
32
|
const padding = 32;
|
|
@@ -43,7 +42,7 @@ class DonutChartComponent {
|
|
|
43
42
|
// Plugin to draw lines from the donut segments to the labels
|
|
44
43
|
this.labelLinePlugin = {
|
|
45
44
|
id: 'labelLinePlugin',
|
|
46
|
-
afterDatasetDraw:
|
|
45
|
+
afterDatasetDraw: chart => {
|
|
47
46
|
const { ctx, data } = chart;
|
|
48
47
|
const meta = chart.getDatasetMeta(0);
|
|
49
48
|
const radialOffset = 10; // length of the radial segment (elbow)
|
|
@@ -80,7 +79,7 @@ class DonutChartComponent {
|
|
|
80
79
|
const textX = endX + direction * 5;
|
|
81
80
|
ctx.textAlign = direction > 0 ? 'left' : 'right';
|
|
82
81
|
ctx.textBaseline = 'middle';
|
|
83
|
-
ctx.fillText(value, textX, endY);
|
|
82
|
+
ctx.fillText(String(value), textX, endY);
|
|
84
83
|
});
|
|
85
84
|
ctx.restore();
|
|
86
85
|
},
|
|
@@ -116,25 +115,24 @@ class DonutChartComponent {
|
|
|
116
115
|
};
|
|
117
116
|
}
|
|
118
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: DonutChartComponent, isStandalone:
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: DonutChartComponent, isStandalone: true, selector: "ui-donut-chart", inputs: { donutChartData: { classPropertyName: "donutChartData", publicName: "donutChartData", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
120
119
|
}
|
|
121
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponent, decorators: [{
|
|
122
121
|
type: Component,
|
|
123
|
-
args: [{ selector: 'ui-donut-chart',
|
|
122
|
+
args: [{ selector: 'ui-donut-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [BaseChartDirective], template: "<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n" }]
|
|
124
123
|
}], propDecorators: { donutChartData: [{ type: i0.Input, args: [{ isSignal: true, alias: "donutChartData", required: false }] }], applicationTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "applicationTheme", required: false }] }] } });
|
|
125
124
|
|
|
126
125
|
Chart.register(...registerables);
|
|
127
126
|
class DonutChartComponentModule {
|
|
128
127
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
129
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponentModule,
|
|
128
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponentModule, imports: [BaseChartDirective, DonutChartComponent], exports: [DonutChartComponent] }); }
|
|
130
129
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponentModule }); }
|
|
131
130
|
}
|
|
132
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DonutChartComponentModule, decorators: [{
|
|
133
132
|
type: NgModule,
|
|
134
133
|
args: [{
|
|
135
|
-
declarations: [DonutChartComponent],
|
|
136
134
|
exports: [DonutChartComponent],
|
|
137
|
-
imports: [BaseChartDirective],
|
|
135
|
+
imports: [BaseChartDirective, DonutChartComponent],
|
|
138
136
|
}]
|
|
139
137
|
}] });
|
|
140
138
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-donut-chart.mjs","sources":["../../../components/donut-chart/donut-chart.component.ts","../../../components/donut-chart/donut-chart.component.html","../../../components/donut-chart/donut-chart.component.module.ts","../../../components/donut-chart/testgorilla-tgo-ui-components-donut-chart.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { DonutChartData } from './donut-chart.component.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { ChartOptions, Plugin } from 'chart.js';\nimport DataLabelsPlugin from 'chartjs-plugin-datalabels';\n\n@Component({\n selector: 'ui-donut-chart',\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss'],\n standalone: false,\n})\nexport class DonutChartComponent {\n donutChartData = input<DonutChartData>();\n applicationTheme = input<ApplicationTheme>('light');\n\n readonly chartData = computed(() => {\n const data = this.donutChartData();\n return data\n ? {\n labels: data.labels,\n datasets: [\n {\n data: data.data,\n backgroundColor: data.backgroundColor,\n borderWidth: 0,\n },\n ],\n }\n : { labels: [], datasets: [] };\n });\n\n // Plugin to display the total in the center\n centerTextPlugin: Plugin<'doughnut'> = {\n id: 'centerText',\n beforeDraw: (chart: any) => {\n const {\n ctx,\n chartArea: { width, height },\n } = chart;\n const total = chart.data.datasets[0].data.reduce((a: number, b: number) => a + b, 0);\n const padding = 32;\n ctx.save();\n ctx.font = 'bold 14px ModernGothic';\n ctx.fillStyle = '#242424';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(total.toString(), (width + padding) / 2, (height + padding) / 2);\n ctx.restore();\n },\n };\n\n // Plugin to draw lines from the donut segments to the labels\n labelLinePlugin: Plugin<'doughnut'> = {\n id: 'labelLinePlugin',\n afterDatasetDraw: (chart: any) => {\n const { ctx, data } = chart;\n const meta = chart.getDatasetMeta(0);\n const radialOffset = 10; // length of the radial segment (elbow)\n const horizontalLength = 20; // new length of the horizontal segment\n const fontSize = 14;\n\n ctx.save();\n ctx.strokeStyle = '#666';\n ctx.lineWidth = 1;\n ctx.font = `${fontSize}px ModernGothic`;\n ctx.fillStyle = '#242424';\n\n meta.data.forEach((arc: any, index: number) => {\n const angle = (arc.startAngle + arc.endAngle) / 2;\n const radius = arc.outerRadius;\n const centerX = arc.x;\n const centerY = arc.y;\n\n // Start point: outer edge of the arc\n const startX = centerX + Math.cos(angle) * radius;\n const startY = centerY + Math.sin(angle) * radius;\n\n // Elbow: short line outward\n const midX = centerX + Math.cos(angle) * (radius + radialOffset);\n const midY = centerY + Math.sin(angle) * (radius + radialOffset);\n\n // Extended horizontal line\n const direction = Math.cos(angle) >= 0 ? 1 : -1;\n const endX = midX + direction * horizontalLength;\n const endY = midY;\n\n // Draw line with elbow\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(midX, midY);\n ctx.lineTo(endX, endY);\n ctx.stroke();\n\n // Draw value at the end\n const value = data.datasets[0].data?.[index] ?? '';\n const textX = endX + direction * 5;\n ctx.textAlign = direction > 0 ? 'left' : 'right';\n ctx.textBaseline = 'middle';\n ctx.fillText(value, textX, endY);\n });\n\n ctx.restore();\n },\n };\n\n public donutChartPlugins: Plugin<'doughnut'>[] = [DataLabelsPlugin, this.centerTextPlugin, this.labelLinePlugin];\n\n public donutChartOptions: ChartOptions<'doughnut'> = {\n responsive: true,\n cutout: '65%',\n aspectRatio: 2,\n layout: {\n padding: 16,\n },\n plugins: {\n legend: {\n onClick: () => null, // Disable legend click events\n position: 'right',\n labels: {\n font: {\n family: 'ModernGothic',\n size: 14,\n },\n boxWidth: 14,\n padding: 20,\n },\n },\n tooltip: {\n enabled: false,\n },\n datalabels: {\n display: false,\n },\n },\n };\n}\n","<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DonutChartComponent } from './donut-chart.component';\nimport { BaseChartDirective } from 'ng2-charts';\nimport { Chart, registerables } from 'chart.js';\n\nChart.register(...registerables);\n\n@NgModule({\n declarations: [DonutChartComponent],\n exports: [DonutChartComponent],\n imports: [BaseChartDirective],\n})\nexport class DonutChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-donut-chart.mjs","sources":["../../../components/donut-chart/donut-chart.component.ts","../../../components/donut-chart/donut-chart.component.html","../../../components/donut-chart/donut-chart.component.module.ts","../../../components/donut-chart/testgorilla-tgo-ui-components-donut-chart.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ArcElement, ChartOptions, Plugin } from 'chart.js';\nimport DataLabelsPlugin from 'chartjs-plugin-datalabels';\nimport { BaseChartDirective } from 'ng2-charts';\n\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\nimport { DonutChartData } from './donut-chart.component.model';\n\n@Component({\n selector: 'ui-donut-chart',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss'],\n imports: [BaseChartDirective],\n})\nexport class DonutChartComponent {\n donutChartData = input<DonutChartData>();\n applicationTheme = input<ApplicationTheme>('light');\n\n readonly chartData = computed(() => {\n const data = this.donutChartData();\n return data\n ? {\n labels: data.labels,\n datasets: [\n {\n data: data.data,\n backgroundColor: data.backgroundColor,\n borderWidth: 0,\n },\n ],\n }\n : { labels: [], datasets: [] };\n });\n\n // Plugin to display the total in the center\n centerTextPlugin: Plugin<'doughnut'> = {\n id: 'centerText',\n beforeDraw: chart => {\n const {\n ctx,\n chartArea: { width, height },\n } = chart;\n const total = chart.data.datasets[0].data.reduce((a: number, b: number) => a + b, 0);\n const padding = 32;\n ctx.save();\n ctx.font = 'bold 14px ModernGothic';\n ctx.fillStyle = '#242424';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(total.toString(), (width + padding) / 2, (height + padding) / 2);\n ctx.restore();\n },\n };\n\n // Plugin to draw lines from the donut segments to the labels\n labelLinePlugin: Plugin<'doughnut'> = {\n id: 'labelLinePlugin',\n afterDatasetDraw: chart => {\n const { ctx, data } = chart;\n const meta = chart.getDatasetMeta(0);\n const radialOffset = 10; // length of the radial segment (elbow)\n const horizontalLength = 20; // new length of the horizontal segment\n const fontSize = 14;\n\n ctx.save();\n ctx.strokeStyle = '#666';\n ctx.lineWidth = 1;\n ctx.font = `${fontSize}px ModernGothic`;\n ctx.fillStyle = '#242424';\n\n (meta.data as ArcElement[]).forEach((arc, index) => {\n const angle = (arc.startAngle + arc.endAngle) / 2;\n const radius = arc.outerRadius;\n const centerX = arc.x;\n const centerY = arc.y;\n\n // Start point: outer edge of the arc\n const startX = centerX + Math.cos(angle) * radius;\n const startY = centerY + Math.sin(angle) * radius;\n\n // Elbow: short line outward\n const midX = centerX + Math.cos(angle) * (radius + radialOffset);\n const midY = centerY + Math.sin(angle) * (radius + radialOffset);\n\n // Extended horizontal line\n const direction = Math.cos(angle) >= 0 ? 1 : -1;\n const endX = midX + direction * horizontalLength;\n const endY = midY;\n\n // Draw line with elbow\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(midX, midY);\n ctx.lineTo(endX, endY);\n ctx.stroke();\n\n // Draw value at the end\n const value = data.datasets[0].data?.[index] ?? '';\n const textX = endX + direction * 5;\n ctx.textAlign = direction > 0 ? 'left' : 'right';\n ctx.textBaseline = 'middle';\n ctx.fillText(String(value), textX, endY);\n });\n\n ctx.restore();\n },\n };\n\n public donutChartPlugins: Plugin<'doughnut'>[] = [DataLabelsPlugin, this.centerTextPlugin, this.labelLinePlugin];\n\n public donutChartOptions: ChartOptions<'doughnut'> = {\n responsive: true,\n cutout: '65%',\n aspectRatio: 2,\n layout: {\n padding: 16,\n },\n plugins: {\n legend: {\n onClick: () => null, // Disable legend click events\n position: 'right',\n labels: {\n font: {\n family: 'ModernGothic',\n size: 14,\n },\n boxWidth: 14,\n padding: 20,\n },\n },\n tooltip: {\n enabled: false,\n },\n datalabels: {\n display: false,\n },\n },\n };\n}\n","<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n","import { NgModule } from '@angular/core';\nimport { Chart, registerables } from 'chart.js';\nimport { BaseChartDirective } from 'ng2-charts';\n\nimport { DonutChartComponent } from './donut-chart.component';\n\nChart.register(...registerables);\n\n@NgModule({\n exports: [DonutChartComponent],\n imports: [BaseChartDirective, DonutChartComponent],\n})\nexport class DonutChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|