@ngstarter-ui/components 1.0.28 → 1.0.31
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/ngstarter-ui-components-action-required.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-alert.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-announcement.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-avatar.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-badge.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-block-loader.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-card.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-checkbox.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-chips.mjs +21 -7
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-color-picker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-command-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs} +15 -15
- package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs} +6 -6
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-content-editor.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-content-fade.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-core.mjs +137 -34
- package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-country-select.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-data-view.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-dialog.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-divider.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-drawer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-empty-state.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-expand.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-expansion.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-form-field.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs} +3 -3
- package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs} +3 -3
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-gauge.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-grid.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-incidents.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-kbd.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-list.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-logo.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-menu.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-navigation.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-notifications.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-number-input.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-option.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-paginator.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-password-strength.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-phone-input.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-popover.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-radio-card.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-radio.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-segmented.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-select.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-side-panel.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sidebar.mjs +14 -14
- package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sidenav.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-skeleton.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-slider.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-spinner.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-split.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-stepper.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-suggestions.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-table.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tabs.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-text-editor.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tiles.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-timeline.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-timepicker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-toolbar.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tooltip.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-upload.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -1
- package/package.json +15 -3
- package/schematics/collection.json +10 -0
- package/schematics/migrations.json +11 -0
- package/schematics/ng-add/index.d.ts +6 -0
- package/schematics/ng-add/index.js +14 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.json +17 -0
- package/schematics/ng-update/index.d.ts +6 -0
- package/schematics/ng-update/index.js +14 -0
- package/schematics/ng-update/index.js.map +1 -0
- package/schematics/ng-update/schema.json +17 -0
- package/schematics/utils.d.ts +8 -0
- package/schematics/utils.js +400 -0
- package/schematics/utils.js.map +1 -0
- package/styles/_common.scss +84 -390
- package/styles/_global.scss +12 -12
- package/styles/_tokens.scss +1043 -0
- package/styles/themes/compact.scss +9 -0
- package/styles/themes/enterprise.scss +349 -0
- package/styles/themes/modern.scss +352 -0
- package/types/ngstarter-ui-components-chips.d.ts +9 -4
- package/types/ngstarter-ui-components-core.d.ts +41 -5
|
@@ -359,14 +359,14 @@ class MchartLine extends BaseChartTooltip {
|
|
|
359
359
|
this._resizeObserver.observe(this._elementRef.nativeElement);
|
|
360
360
|
}
|
|
361
361
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartLine, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
362
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: MchartLine, isStandalone: true, selector: "ngs-mchart-line", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null }, showArea: { classPropertyName: "showArea", publicName: "showArea", isSignal: true, isRequired: false, transformFunction: null }, showMarkers: { classPropertyName: "showMarkers", publicName: "showMarkers", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, fillAreaGradient: { classPropertyName: "fillAreaGradient", publicName: "fillAreaGradient", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, xAccessor: { classPropertyName: "xAccessor", publicName: "xAccessor", isSignal: true, isRequired: false, transformFunction: null }, yAccessor: { classPropertyName: "yAccessor", publicName: "yAccessor", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, markerDotSize: { classPropertyName: "markerDotSize", publicName: "markerDotSize", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fill-area-gradient": "fillAreaGradient()" }, classAttribute: "ngs-mchart-line" }, exportAs: ["ngsMchartLine"], usesInheritance: true, ngImport: i0, template: "<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n", styles: [":host{--ngs-mchart-line-line-bg: var(--color-primary);--ngs-mchart-line-area-bg: var(--color-primary-200);--ngs-mchart-line-marker-line-bg: var(--color-neutral);--ngs-mchart-line-marker-dot-bg: var(--color-primary);--ngs-mchart-line-area-gradient-start-color: var(--color-primary);--ngs-mchart-line-area-gradient-end-color: var(--color-background);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .line{stroke:var(--ngs-mchart-line-line-bg);fill:none;stroke-linejoin:round;stroke-linecap:round}:host ::ng-deep .area{stroke-width:0}:host ::ng-deep .marker-line{stroke:var(--ngs-mchart-line-marker-line-bg);stroke-width:1;stroke-dasharray:3}:host ::ng-deep .marker-dot{fill:var(--ngs-mchart-line-marker-dot-bg)}:host:not(.fill-area-gradient) ::ng-deep .area{fill:var(--ngs-mchart-line-area-bg)}:host.fill-area-gradient .lg-start-color{stop-color:var(--ngs-mchart-line-area-gradient-start-color)}:host.fill-area-gradient .lg-end-color{stop-color:var(--ngs-mchart-line-area-gradient-end-color)}:host-context(html.dark){--ngs-mchart-line-area-bg: var(--color-neutral-700);--ngs-mchart-line-area-gradient-start-color: var(--color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
362
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: MchartLine, isStandalone: true, selector: "ngs-mchart-line", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null }, showArea: { classPropertyName: "showArea", publicName: "showArea", isSignal: true, isRequired: false, transformFunction: null }, showMarkers: { classPropertyName: "showMarkers", publicName: "showMarkers", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, fillAreaGradient: { classPropertyName: "fillAreaGradient", publicName: "fillAreaGradient", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, xAccessor: { classPropertyName: "xAccessor", publicName: "xAccessor", isSignal: true, isRequired: false, transformFunction: null }, yAccessor: { classPropertyName: "yAccessor", publicName: "yAccessor", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, markerDotSize: { classPropertyName: "markerDotSize", publicName: "markerDotSize", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fill-area-gradient": "fillAreaGradient()" }, classAttribute: "ngs-mchart-line" }, exportAs: ["ngsMchartLine"], usesInheritance: true, ngImport: i0, template: "<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n", styles: [":host{--ngs-mchart-line-line-bg: var(--ngs-color-primary);--ngs-mchart-line-area-bg: var(--ngs-color-primary-200);--ngs-mchart-line-marker-line-bg: var(--ngs-color-neutral);--ngs-mchart-line-marker-dot-bg: var(--ngs-color-primary);--ngs-mchart-line-area-gradient-start-color: var(--ngs-color-primary);--ngs-mchart-line-area-gradient-end-color: var(--ngs-color-background);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .line{stroke:var(--ngs-mchart-line-line-bg);fill:none;stroke-linejoin:round;stroke-linecap:round}:host ::ng-deep .area{stroke-width:0}:host ::ng-deep .marker-line{stroke:var(--ngs-mchart-line-marker-line-bg);stroke-width:1;stroke-dasharray:3}:host ::ng-deep .marker-dot{fill:var(--ngs-mchart-line-marker-dot-bg)}:host:not(.fill-area-gradient) ::ng-deep .area{fill:var(--ngs-mchart-line-area-bg)}:host.fill-area-gradient .lg-start-color{stop-color:var(--ngs-mchart-line-area-gradient-start-color)}:host.fill-area-gradient .lg-end-color{stop-color:var(--ngs-mchart-line-area-gradient-end-color)}:host-context(html.dark){--ngs-mchart-line-area-bg: var(--ngs-color-neutral-700);--ngs-mchart-line-area-gradient-start-color: var(--ngs-color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
363
363
|
}
|
|
364
364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartLine, decorators: [{
|
|
365
365
|
type: Component,
|
|
366
366
|
args: [{ selector: 'ngs-mchart-line', exportAs: 'ngsMchartLine', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
367
367
|
'class': 'ngs-mchart-line',
|
|
368
368
|
'[class.fill-area-gradient]': 'fillAreaGradient()',
|
|
369
|
-
}, template: "<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n", styles: [":host{--ngs-mchart-line-line-bg: var(--color-primary);--ngs-mchart-line-area-bg: var(--color-primary-200);--ngs-mchart-line-marker-line-bg: var(--color-neutral);--ngs-mchart-line-marker-dot-bg: var(--color-primary);--ngs-mchart-line-area-gradient-start-color: var(--color-primary);--ngs-mchart-line-area-gradient-end-color: var(--color-background);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .line{stroke:var(--ngs-mchart-line-line-bg);fill:none;stroke-linejoin:round;stroke-linecap:round}:host ::ng-deep .area{stroke-width:0}:host ::ng-deep .marker-line{stroke:var(--ngs-mchart-line-marker-line-bg);stroke-width:1;stroke-dasharray:3}:host ::ng-deep .marker-dot{fill:var(--ngs-mchart-line-marker-dot-bg)}:host:not(.fill-area-gradient) ::ng-deep .area{fill:var(--ngs-mchart-line-area-bg)}:host.fill-area-gradient .lg-start-color{stop-color:var(--ngs-mchart-line-area-gradient-start-color)}:host.fill-area-gradient .lg-end-color{stop-color:var(--ngs-mchart-line-area-gradient-end-color)}:host-context(html.dark){--ngs-mchart-line-area-bg: var(--color-neutral-700);--ngs-mchart-line-area-gradient-start-color: var(--color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
369
|
+
}, template: "<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n", styles: [":host{--ngs-mchart-line-line-bg: var(--ngs-color-primary);--ngs-mchart-line-area-bg: var(--ngs-color-primary-200);--ngs-mchart-line-marker-line-bg: var(--ngs-color-neutral);--ngs-mchart-line-marker-dot-bg: var(--ngs-color-primary);--ngs-mchart-line-area-gradient-start-color: var(--ngs-color-primary);--ngs-mchart-line-area-gradient-end-color: var(--ngs-color-background);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .line{stroke:var(--ngs-mchart-line-line-bg);fill:none;stroke-linejoin:round;stroke-linecap:round}:host ::ng-deep .area{stroke-width:0}:host ::ng-deep .marker-line{stroke:var(--ngs-mchart-line-marker-line-bg);stroke-width:1;stroke-dasharray:3}:host ::ng-deep .marker-dot{fill:var(--ngs-mchart-line-marker-dot-bg)}:host:not(.fill-area-gradient) ::ng-deep .area{fill:var(--ngs-mchart-line-area-bg)}:host.fill-area-gradient .lg-start-color{stop-color:var(--ngs-mchart-line-area-gradient-start-color)}:host.fill-area-gradient .lg-end-color{stop-color:var(--ngs-mchart-line-area-gradient-end-color)}:host-context(html.dark){--ngs-mchart-line-area-bg: var(--ngs-color-neutral-700);--ngs-mchart-line-area-gradient-start-color: var(--ngs-color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
370
370
|
}], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], strokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeWidth", required: false }] }], showArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArea", required: false }] }], showMarkers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMarkers", required: false }] }], responsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsive", required: false }] }], fillAreaGradient: [{ type: i0.Input, args: [{ isSignal: true, alias: "fillAreaGradient", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], xAccessor: [{ type: i0.Input, args: [{ isSignal: true, alias: "xAccessor", required: false }] }], yAccessor: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAccessor", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], markerDotSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerDotSize", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], tooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipPosition", required: false }] }] } });
|
|
371
371
|
|
|
372
372
|
let nextId = 0;
|
|
@@ -612,7 +612,7 @@ class MchartBar extends BaseChartTooltip {
|
|
|
612
612
|
});
|
|
613
613
|
}
|
|
614
614
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
615
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: MchartBar, isStandalone: true, selector: "ngs-mchart-bar", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, fillGradient: { classPropertyName: "fillGradient", publicName: "fillGradient", isSignal: true, isRequired: false, transformFunction: null }, xAccessor: { classPropertyName: "xAccessor", publicName: "xAccessor", isSignal: true, isRequired: false, transformFunction: null }, yAccessor: { classPropertyName: "yAccessor", publicName: "yAccessor", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fill-gradient": "fillGradient()", "class.with-tooltip": "!!tooltip()" }, classAttribute: "ngs-mchart-bar" }, exportAs: ["ngsMchartBar"], usesInheritance: true, ngImport: i0, template: "<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n", styles: [":host{--ngs-mchart-bar-bar-bg: var(--color-primary);--ngs-mchart-bar-bar-gradient-start-color: var(--color-primary-500);--ngs-mchart-bar-bar-gradient-end-color: var(--color-primary);--ngs-mchart-bar-highlight-bg: var(--color-neutral-200);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .highlight{fill:var(--ngs-mchart-bar-highlight-bg)}:host:not(.fill-gradient) ::ng-deep .bar{fill:var(--ngs-mchart-bar-bar-bg)}:host.fill-gradient .lg-start-color{stop-color:var(--ngs-mchart-bar-bar-gradient-start-color)}:host.fill-gradient .lg-end-color{stop-color:var(--ngs-mchart-bar-bar-gradient-end-color)}:host.with-tooltip ::ng-deep .bar:hover{opacity:.85}:host-context(html.dark){--ngs-mchart-bar-highlight-bg: var(--color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
615
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: MchartBar, isStandalone: true, selector: "ngs-mchart-bar", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, fillGradient: { classPropertyName: "fillGradient", publicName: "fillGradient", isSignal: true, isRequired: false, transformFunction: null }, xAccessor: { classPropertyName: "xAccessor", publicName: "xAccessor", isSignal: true, isRequired: false, transformFunction: null }, yAccessor: { classPropertyName: "yAccessor", publicName: "yAccessor", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fill-gradient": "fillGradient()", "class.with-tooltip": "!!tooltip()" }, classAttribute: "ngs-mchart-bar" }, exportAs: ["ngsMchartBar"], usesInheritance: true, ngImport: i0, template: "<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n", styles: [":host{--ngs-mchart-bar-bar-bg: var(--ngs-color-primary);--ngs-mchart-bar-bar-gradient-start-color: var(--ngs-color-primary-500);--ngs-mchart-bar-bar-gradient-end-color: var(--ngs-color-primary);--ngs-mchart-bar-highlight-bg: var(--ngs-color-neutral-200);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .highlight{fill:var(--ngs-mchart-bar-highlight-bg)}:host:not(.fill-gradient) ::ng-deep .bar{fill:var(--ngs-mchart-bar-bar-bg)}:host.fill-gradient .lg-start-color{stop-color:var(--ngs-mchart-bar-bar-gradient-start-color)}:host.fill-gradient .lg-end-color{stop-color:var(--ngs-mchart-bar-bar-gradient-end-color)}:host.with-tooltip ::ng-deep .bar:hover{opacity:.85}:host-context(html.dark){--ngs-mchart-bar-highlight-bg: var(--ngs-color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
616
616
|
}
|
|
617
617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartBar, decorators: [{
|
|
618
618
|
type: Component,
|
|
@@ -620,7 +620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
620
620
|
'class': 'ngs-mchart-bar',
|
|
621
621
|
'[class.fill-gradient]': 'fillGradient()',
|
|
622
622
|
'[class.with-tooltip]': '!!tooltip()',
|
|
623
|
-
}, template: "<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n", styles: [":host{--ngs-mchart-bar-bar-bg: var(--color-primary);--ngs-mchart-bar-bar-gradient-start-color: var(--color-primary-500);--ngs-mchart-bar-bar-gradient-end-color: var(--color-primary);--ngs-mchart-bar-highlight-bg: var(--color-neutral-200);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .highlight{fill:var(--ngs-mchart-bar-highlight-bg)}:host:not(.fill-gradient) ::ng-deep .bar{fill:var(--ngs-mchart-bar-bar-bg)}:host.fill-gradient .lg-start-color{stop-color:var(--ngs-mchart-bar-bar-gradient-start-color)}:host.fill-gradient .lg-end-color{stop-color:var(--ngs-mchart-bar-bar-gradient-end-color)}:host.with-tooltip ::ng-deep .bar:hover{opacity:.85}:host-context(html.dark){--ngs-mchart-bar-highlight-bg: var(--color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
623
|
+
}, template: "<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n", styles: [":host{--ngs-mchart-bar-bar-bg: var(--ngs-color-primary);--ngs-mchart-bar-bar-gradient-start-color: var(--ngs-color-primary-500);--ngs-mchart-bar-bar-gradient-end-color: var(--ngs-color-primary);--ngs-mchart-bar-highlight-bg: var(--ngs-color-neutral-200);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host ::ng-deep .highlight{fill:var(--ngs-mchart-bar-highlight-bg)}:host:not(.fill-gradient) ::ng-deep .bar{fill:var(--ngs-mchart-bar-bar-bg)}:host.fill-gradient .lg-start-color{stop-color:var(--ngs-mchart-bar-bar-gradient-start-color)}:host.fill-gradient .lg-end-color{stop-color:var(--ngs-mchart-bar-bar-gradient-end-color)}:host.with-tooltip ::ng-deep .bar:hover{opacity:.85}:host-context(html.dark){--ngs-mchart-bar-highlight-bg: var(--ngs-color-neutral-700)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
624
624
|
}], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], highlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlight", required: false }] }], responsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsive", required: false }] }], fillGradient: [{ type: i0.Input, args: [{ isSignal: true, alias: "fillGradient", required: false }] }], xAccessor: [{ type: i0.Input, args: [{ isSignal: true, alias: "xAccessor", required: false }] }], yAccessor: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAccessor", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], tooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipPosition", required: false }] }] } });
|
|
625
625
|
|
|
626
626
|
class MchartPie extends BaseChartTooltip {
|
|
@@ -878,35 +878,35 @@ class MchartPie extends BaseChartTooltip {
|
|
|
878
878
|
});
|
|
879
879
|
}
|
|
880
880
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartPie, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
881
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: MchartPie, isStandalone: true, selector: "ngs-mchart-pie", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, valueAccessor: { classPropertyName: "valueAccessor", publicName: "valueAccessor", isSignal: true, isRequired: false, transformFunction: null }, dataItemStrokeWidth: { classPropertyName: "dataItemStrokeWidth", publicName: "dataItemStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, legendContainerWidth: { classPropertyName: "legendContainerWidth", publicName: "legendContainerWidth", isSignal: true, isRequired: false, transformFunction: null }, showDataAnimation: { classPropertyName: "showDataAnimation", publicName: "showDataAnimation", isSignal: true, isRequired: false, transformFunction: null }, showValueOnSlices: { classPropertyName: "showValueOnSlices", publicName: "showValueOnSlices", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, legendOffset: { classPropertyName: "legendOffset", publicName: "legendOffset", isSignal: true, isRequired: false, transformFunction: null }, legendItemHeight: { classPropertyName: "legendItemHeight", publicName: "legendItemHeight", isSignal: true, isRequired: false, transformFunction: null }, legendItemSymbolSize: { classPropertyName: "legendItemSymbolSize", publicName: "legendItemSymbolSize", isSignal: true, isRequired: false, transformFunction: null }, legendItemFontSize: { classPropertyName: "legendItemFontSize", publicName: "legendItemFontSize", isSignal: true, isRequired: false, transformFunction: null }, legendItemSymbolBorderRadius: { classPropertyName: "legendItemSymbolBorderRadius", publicName: "legendItemSymbolBorderRadius", isSignal: true, isRequired: false, transformFunction: null }, valueFontSize: { classPropertyName: "valueFontSize", publicName: "valueFontSize", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ngs-mchart-pie" }, exportAs: ["ngsMchartPie"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg></svg>\n", styles: [":host{--ngs-mchart-pie-stroke-color: var(--color-background);--ngs-mchart-pie-legend-item-color: var(--color-neutral-900);--ngs-mchart-pie-legend-item-hover-color: var(--color-primary);--ngs-mchart-pie-value-color: var(--color-neutral-950);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host:has(.data-item.active) ::ng-deep .data-item:not(.active){opacity:.7;scale:.93;transition:scale .2s}:host ::ng-deep .data-item{stroke:var(--ngs-mchart-pie-stroke-color)}:host ::ng-deep .value{text-anchor:middle;alignment-baseline:middle;fill:var(--ngs-mchart-pie-value-color)}:host ::ng-deep .legend-item{cursor:pointer}:host ::ng-deep .legend-item:hover .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-hover-color)}:host ::ng-deep .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-color)}:host-context(html.dark){--ngs-mchart-pie-legend-item-color: var(--color-neutral-200)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
881
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: MchartPie, isStandalone: true, selector: "ngs-mchart-pie", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, valueAccessor: { classPropertyName: "valueAccessor", publicName: "valueAccessor", isSignal: true, isRequired: false, transformFunction: null }, dataItemStrokeWidth: { classPropertyName: "dataItemStrokeWidth", publicName: "dataItemStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, legendContainerWidth: { classPropertyName: "legendContainerWidth", publicName: "legendContainerWidth", isSignal: true, isRequired: false, transformFunction: null }, showDataAnimation: { classPropertyName: "showDataAnimation", publicName: "showDataAnimation", isSignal: true, isRequired: false, transformFunction: null }, showValueOnSlices: { classPropertyName: "showValueOnSlices", publicName: "showValueOnSlices", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, legendOffset: { classPropertyName: "legendOffset", publicName: "legendOffset", isSignal: true, isRequired: false, transformFunction: null }, legendItemHeight: { classPropertyName: "legendItemHeight", publicName: "legendItemHeight", isSignal: true, isRequired: false, transformFunction: null }, legendItemSymbolSize: { classPropertyName: "legendItemSymbolSize", publicName: "legendItemSymbolSize", isSignal: true, isRequired: false, transformFunction: null }, legendItemFontSize: { classPropertyName: "legendItemFontSize", publicName: "legendItemFontSize", isSignal: true, isRequired: false, transformFunction: null }, legendItemSymbolBorderRadius: { classPropertyName: "legendItemSymbolBorderRadius", publicName: "legendItemSymbolBorderRadius", isSignal: true, isRequired: false, transformFunction: null }, valueFontSize: { classPropertyName: "valueFontSize", publicName: "valueFontSize", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ngs-mchart-pie" }, exportAs: ["ngsMchartPie"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg></svg>\n", styles: [":host{--ngs-mchart-pie-stroke-color: var(--ngs-color-background);--ngs-mchart-pie-legend-item-color: var(--ngs-color-neutral-900);--ngs-mchart-pie-legend-item-hover-color: var(--ngs-color-primary);--ngs-mchart-pie-value-color: var(--ngs-color-neutral-950);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host:has(.data-item.active) ::ng-deep .data-item:not(.active){opacity:.7;scale:.93;transition:scale .2s}:host ::ng-deep .data-item{stroke:var(--ngs-mchart-pie-stroke-color)}:host ::ng-deep .value{text-anchor:middle;alignment-baseline:middle;fill:var(--ngs-mchart-pie-value-color)}:host ::ng-deep .legend-item{cursor:pointer}:host ::ng-deep .legend-item:hover .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-hover-color)}:host ::ng-deep .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-color)}:host-context(html.dark){--ngs-mchart-pie-legend-item-color: var(--ngs-color-neutral-200)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
882
882
|
}
|
|
883
883
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartPie, decorators: [{
|
|
884
884
|
type: Component,
|
|
885
885
|
args: [{ selector: 'ngs-mchart-pie', exportAs: 'ngsMchartPie', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
886
886
|
'class': 'ngs-mchart-pie'
|
|
887
|
-
}, template: "<svg></svg>\n", styles: [":host{--ngs-mchart-pie-stroke-color: var(--color-background);--ngs-mchart-pie-legend-item-color: var(--color-neutral-900);--ngs-mchart-pie-legend-item-hover-color: var(--color-primary);--ngs-mchart-pie-value-color: var(--color-neutral-950);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host:has(.data-item.active) ::ng-deep .data-item:not(.active){opacity:.7;scale:.93;transition:scale .2s}:host ::ng-deep .data-item{stroke:var(--ngs-mchart-pie-stroke-color)}:host ::ng-deep .value{text-anchor:middle;alignment-baseline:middle;fill:var(--ngs-mchart-pie-value-color)}:host ::ng-deep .legend-item{cursor:pointer}:host ::ng-deep .legend-item:hover .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-hover-color)}:host ::ng-deep .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-color)}:host-context(html.dark){--ngs-mchart-pie-legend-item-color: var(--color-neutral-200)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
887
|
+
}, template: "<svg></svg>\n", styles: [":host{--ngs-mchart-pie-stroke-color: var(--ngs-color-background);--ngs-mchart-pie-legend-item-color: var(--ngs-color-neutral-900);--ngs-mchart-pie-legend-item-hover-color: var(--ngs-color-primary);--ngs-mchart-pie-value-color: var(--ngs-color-neutral-950);display:block;overflow:hidden}:host svg{width:100%;height:100%}:host:has(.data-item.active) ::ng-deep .data-item:not(.active){opacity:.7;scale:.93;transition:scale .2s}:host ::ng-deep .data-item{stroke:var(--ngs-mchart-pie-stroke-color)}:host ::ng-deep .value{text-anchor:middle;alignment-baseline:middle;fill:var(--ngs-mchart-pie-value-color)}:host ::ng-deep .legend-item{cursor:pointer}:host ::ng-deep .legend-item:hover .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-hover-color)}:host ::ng-deep .legend-item-text{fill:var(--ngs-mchart-pie-legend-item-color)}:host-context(html.dark){--ngs-mchart-pie-legend-item-color: var(--ngs-color-neutral-200)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
888
888
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], valueAccessor: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueAccessor", required: false }] }], dataItemStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataItemStrokeWidth", required: false }] }], legendContainerWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendContainerWidth", required: false }] }], showDataAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDataAnimation", required: false }] }], showValueOnSlices: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueOnSlices", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], legendOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendOffset", required: false }] }], legendItemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendItemHeight", required: false }] }], legendItemSymbolSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendItemSymbolSize", required: false }] }], legendItemFontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendItemFontSize", required: false }] }], legendItemSymbolBorderRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendItemSymbolBorderRadius", required: false }] }], valueFontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFontSize", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], tooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipPosition", required: false }] }] } });
|
|
889
889
|
|
|
890
890
|
class MchartTooltip {
|
|
891
891
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartTooltip, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
892
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: MchartTooltip, isStandalone: true, selector: "ngs-mchart-tooltip", host: { classAttribute: "ngs-mchart-tooltip" }, exportAs: ["ngsMchartTooltip"], ngImport: i0, template: "<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n", styles: [":host{display:block;width:max-content;box-shadow:
|
|
892
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: MchartTooltip, isStandalone: true, selector: "ngs-mchart-tooltip", host: { classAttribute: "ngs-mchart-tooltip" }, exportAs: ["ngsMchartTooltip"], ngImport: i0, template: "<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n", styles: [":host{display:block;width:max-content;box-shadow:var(--ngs-shadow-sm);border-radius:var(--ngs-radius-lg);background:#fff;font-size:var(--ngs-font-size-xs);overflow:hidden}:host .title:empty{display:none}:host .body:empty{display:none}:host-context(html.dark){background:var(--ngs-color-tertiary-200);color:var(--ngs-color-neutral-800)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
893
893
|
}
|
|
894
894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartTooltip, decorators: [{
|
|
895
895
|
type: Component,
|
|
896
896
|
args: [{ selector: 'ngs-mchart-tooltip', exportAs: 'ngsMchartTooltip', host: {
|
|
897
897
|
'class': 'ngs-mchart-tooltip'
|
|
898
|
-
}, template: "<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n", styles: [":host{display:block;width:max-content;box-shadow:
|
|
898
|
+
}, template: "<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n", styles: [":host{display:block;width:max-content;box-shadow:var(--ngs-shadow-sm);border-radius:var(--ngs-radius-lg);background:#fff;font-size:var(--ngs-font-size-xs);overflow:hidden}:host .title:empty{display:none}:host .body:empty{display:none}:host-context(html.dark){background:var(--ngs-color-tertiary-200);color:var(--ngs-color-neutral-800)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
899
899
|
}] });
|
|
900
900
|
|
|
901
901
|
class MchartTooltipTitle {
|
|
902
902
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartTooltipTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
903
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: MchartTooltipTitle, isStandalone: true, selector: "ngs-mchart-tooltip-title", host: { classAttribute: "ngs-mchart-tooltip-title" }, exportAs: ["ngsMchartTooltipTitle"], ngImport: i0, template: "<ng-content />\n", styles: [":host{display:block;background:var(--color-neutral-200);padding:calc(var(--spacing, .25rem) * 1.5) calc(var(--spacing, .25rem) * 2);font-weight:500}:host-context(html.dark){background:var(--color-neutral-300);color:var(--color-neutral-900)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
903
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: MchartTooltipTitle, isStandalone: true, selector: "ngs-mchart-tooltip-title", host: { classAttribute: "ngs-mchart-tooltip-title" }, exportAs: ["ngsMchartTooltipTitle"], ngImport: i0, template: "<ng-content />\n", styles: [":host{display:block;background:var(--ngs-color-neutral-200);padding:calc(var(--spacing, .25rem) * 1.5) calc(var(--spacing, .25rem) * 2);font-weight:500}:host-context(html.dark){background:var(--ngs-color-neutral-300);color:var(--ngs-color-neutral-900)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
904
904
|
}
|
|
905
905
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: MchartTooltipTitle, decorators: [{
|
|
906
906
|
type: Component,
|
|
907
907
|
args: [{ selector: 'ngs-mchart-tooltip-title', exportAs: 'ngsMchartTooltipTitle', host: {
|
|
908
908
|
'class': 'ngs-mchart-tooltip-title'
|
|
909
|
-
}, template: "<ng-content />\n", styles: [":host{display:block;background:var(--color-neutral-200);padding:calc(var(--spacing, .25rem) * 1.5) calc(var(--spacing, .25rem) * 2);font-weight:500}:host-context(html.dark){background:var(--color-neutral-300);color:var(--color-neutral-900)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
909
|
+
}, template: "<ng-content />\n", styles: [":host{display:block;background:var(--ngs-color-neutral-200);padding:calc(var(--spacing, .25rem) * 1.5) calc(var(--spacing, .25rem) * 2);font-weight:500}:host-context(html.dark){background:var(--ngs-color-neutral-300);color:var(--ngs-color-neutral-900)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
910
910
|
}] });
|
|
911
911
|
|
|
912
912
|
class MchartTooltipBody {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-micro-chart.mjs","sources":["../../../projects/components/micro-chart/src/base-chart.tooltip.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.html","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.ts","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.html","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.ts","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.html","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.ts","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.html","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.ts","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.html","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.ts","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.html","../../../projects/components/micro-chart/ngstarter-ui-components-micro-chart.ts"],"sourcesContent":["import { TemplatePortal } from '@angular/cdk/portal';\nimport { inject, Injector, Renderer2, TemplateRef, ViewContainerRef, DOCUMENT } from '@angular/core';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\n\nimport { OverlayPosition, PositionManager } from '@ngstarter-ui/components/overlay';\n\nexport abstract class BaseChartTooltip {\n protected _tooltipOrigin: HTMLElement;\n protected _tooltipPortal!: TemplatePortal;\n protected _overlayRef: OverlayRef;\n protected _renderer = inject(Renderer2);\n protected _overlay = inject(Overlay);\n protected _viewContainerRef = inject(ViewContainerRef);\n protected _injector = inject(Injector);\n protected _document = inject(DOCUMENT);\n\n abstract getTooltipTemplateRef(): TemplateRef<any> | undefined;\n abstract getTooltipPosition(): OverlayPosition;\n\n protected _createTooltipOrigin(): void {\n let tooltipOrigin: HTMLElement | null = this._document.querySelector('.ngs-mchart-tooltip-origin');\n\n if (!tooltipOrigin) {\n tooltipOrigin = this._renderer.createElement('div') as HTMLElement;\n tooltipOrigin.classList.add('ngs-mchart-tooltip-origin');\n this._renderer.appendChild(this._document.body, tooltipOrigin);\n }\n\n this._tooltipOrigin = tooltipOrigin;\n this._renderer.setStyle(this._tooltipOrigin, 'width', '0');\n this._renderer.setStyle(this._tooltipOrigin, 'height', '0');\n this._renderer.setStyle(this._tooltipOrigin, 'z-index', '-1');\n this._renderer.setStyle(this._tooltipOrigin, 'position', 'fixed');\n this._renderer.setStyle(this._tooltipOrigin, 'opacity', '0');\n }\n\n protected _showTooltip(data: object): void {\n this._overlayRef?.detach();\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getContentPortal(data));\n }\n\n protected _hideTooltip(): void {\n this._overlayRef?.detach();\n }\n\n protected _setTooltipPositionByEvent(e: MouseEvent): void {\n const gap = 10;\n this._renderer.setStyle(this._tooltipOrigin, 'left', (e.clientX - gap) + 'px');\n this._renderer.setStyle(this._tooltipOrigin, 'top', (e.clientY) + 'px');\n this._renderer.setStyle(this._tooltipOrigin, 'width', (gap * 2) + 'px');\n }\n\n protected _setTooltipVisible(): void {\n this._renderer.addClass(this._tooltipOrigin, 'is-visible');\n }\n\n protected _setTooltipInVisible(): void {\n this._renderer.removeClass(this._tooltipOrigin, 'is-visible');\n }\n\n protected _getContentPortal(data: object) {\n this._tooltipPortal = new TemplatePortal(\n this.getTooltipTemplateRef() as TemplateRef<any>,\n this._viewContainerRef,\n {\n '$implicit': {\n ...data\n }\n },\n this._injector\n );\n\n return this._tooltipPortal;\n }\n\n protected _getOverlayConfig() {\n return new OverlayConfig({\n panelClass: 'ngs-mchart-tooltip-overlay',\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.reposition()\n });\n }\n\n protected _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._tooltipOrigin)\n .withFlexibleDimensions()\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions())\n ;\n }\n\n protected _getOverlayPositions(): ConnectedPosition[] {\n return (new PositionManager()).build(this.getTooltipPosition());\n }\n}\n","import {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component, DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute, OnDestroy,\n PLATFORM_ID,\n TemplateRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport {\n Selection,\n curveLinear,\n curveCatmullRom,\n curveBumpX,\n scaleLinear,\n select,\n scalePoint,\n min, max,\n pointer,\n line, area,\n curveStep\n} from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MchartLineCurveType } from '../types';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-mchart-line',\n exportAs: 'ngsMchartLine',\n templateUrl: './mchart-line.html',\n styleUrl: './mchart-line.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-line',\n '[class.fill-area-gradient]': 'fillAreaGradient()',\n }\n})\nexport class MchartLine extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _dimensions: DOMRect;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _yScale: any;\n private _xScale: any;\n private _curveMap = {\n 'linear': curveLinear,\n 'catmullRom': curveCatmullRom,\n 'curveBumpX': curveBumpX,\n 'curveStep': curveStep\n };\n private _resizeObserver: ResizeObserver;\n private _tooltipDot: HTMLElement;\n private _area: any;\n private _line: any;\n private _platformId = inject(PLATFORM_ID);\n private _destroyRef = inject(DestroyRef);\n private _elementRef = inject(ElementRef);\n\n data = input<number[]>([]);\n labels = input<any[]>([]);\n strokeWidth = input(2, {\n transform: numberAttribute\n });\n showArea = input(false, {\n transform: booleanAttribute\n });\n showMarkers = input(false, {\n transform: booleanAttribute\n });\n responsive = input(false, {\n transform: booleanAttribute\n });\n fillAreaGradient = input(false, {\n transform: booleanAttribute\n });\n curve = input<MchartLineCurveType>('linear');\n xAccessor = input((d: any, i: number) => i);\n yAccessor = input((d: any) => d);\n compact = input(false, {\n transform: booleanAttribute\n });\n markerDotSize = input(5, {\n transform: numberAttribute\n });\n tooltip = input<TemplateRef<unknown>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n private _currentTooltipPosition: OverlayPosition = 'after-center';\n\n get gradientId(): string {\n return 'areaGradient' + this._gradientId;\n }\n private _gradientId = nextId++;\n\n constructor() {\n super();\n effect(() => {\n this._currentTooltipPosition = this.tooltipPosition();\n });\n effect(() => {\n if (!this._initialized) {\n return;\n }\n\n this._render();\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !== 0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n getTooltipPosition(): OverlayPosition {\n return this._currentTooltipPosition;\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n private _render(): void {\n this._setupContainers();\n this._setupData();\n }\n\n private _setupContainers(): void {\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width;\n this._innerHeight = this._dimensions.height;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n\n if (this.tooltip()) {\n this._tooltipDot = this._renderer.createElement('div');\n this._renderer.setStyle(this._tooltipDot, 'width', '10px');\n this._renderer.setStyle(this._tooltipDot, 'height', '10px');\n this._renderer.setStyle(this._tooltipDot, 'z-index', '-1');\n this._renderer.setStyle(this._tooltipDot, 'position', 'fixed');\n this._renderer.setStyle(this._tooltipDot, 'opacity', '0');\n this._renderer.appendChild(this._document.body, this._tooltipDot);\n }\n }\n\n private _setupData(isUpdate = false): void {\n let markerDotSize = this.markerDotSize();\n\n if (!this.showMarkers()) {\n markerDotSize = this.strokeWidth();\n }\n\n const xAccessor = this.xAccessor();\n const yAccessor = this.yAccessor();\n const xDomain = this.data().map((d: any, i: number) => xAccessor(d, i)) as any;\n\n if (!this._xScale) {\n this._xScale = scalePoint().domain(xDomain);\n }\n\n this._xScale.range([markerDotSize, this._innerWidth - markerDotSize]);\n\n const yDomain = [\n this.compact() ? min(this.data().map(d => yAccessor(d))) : 0,\n max(this.data().map(d => yAccessor(d)))\n ];\n\n if (!this._yScale) {\n this._yScale = scaleLinear()\n .domain(yDomain)\n ;\n }\n\n this._yScale.range([this._innerHeight - markerDotSize, markerDotSize])\n\n if (this.showArea()) {\n const areaGenerator = area()\n .x((d, i) => this._xScale(xAccessor(d, i)))\n .y1((d) => this._yScale(yAccessor(d)))\n .y0(this._innerHeight - markerDotSize)\n .curve(this._curveMap[this.curve()])\n ;\n\n if (!this._area) {\n // add area\n this._area = this._svg\n .append('path')\n .datum(this.data())\n .attr('d', areaGenerator)\n .attr('class', 'area')\n ;\n\n if (this.fillAreaGradient()) {\n this._area.attr('fill', `url(#${this.gradientId})`);\n }\n } else {\n this._area.attr('d', areaGenerator);\n }\n }\n\n const lineGenerator = line()\n .x((d, i) => this._xScale(xAccessor(d, i)))\n .y((d) => this._yScale(yAccessor(d)))\n ;\n\n if (!this._line) {\n // add line\n this._line = this._svg\n .append('path')\n .datum(this.data())\n .attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\n .attr('class', 'line')\n .attr('stroke-width', this.strokeWidth())\n ;\n } else {\n this._line.attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\n }\n\n if (isUpdate) {\n return;\n }\n\n if (this.showMarkers() || this.tooltip()) {\n const markerLine = this._svg\n .append('line')\n .attr('x1', 0)\n .attr('x2', 0)\n .attr('y1', 0)\n .attr('y2', this._innerHeight - markerDotSize)\n .attr('opacity', 0)\n .attr('class', 'marker-line')\n ;\n const markerDot: Selection<any, any, any, any> = this._svg\n .append('circle')\n .attr('cx', 0)\n .attr('cy', 0)\n .attr('r', markerDotSize)\n .attr('opacity', 0)\n .attr('class', 'marker-dot')\n ;\n\n let x = 0;\n let y = 0;\n let label: any;\n let value: any;\n\n if (this.tooltip()) {\n this._createTooltipOrigin();\n }\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const oldXPosition = +markerDot.attr('cx');\n const pointerCoords = pointer(e, this._svg.node());\n const [posX, posY] = pointerCoords;\n let visible = true;\n\n if (posX < this.markerDotSize() || posY < this.markerDotSize() || posX > this._hostWidth || posY > this._hostHeight) {\n visible = false;\n this._overlayRef?.detach();\n markerLine.attr('opacity', 0);\n markerDot.attr('opacity', 0);\n } else {\n if (target.closest('.ngs-mchart-line') ||\n target.classList.contains('ngs-mchart-tooltip-overlay') ||\n target.closest('.ngs-mchart-tooltip-overlay')\n ) {\n if (this.showMarkers()) {\n markerLine.attr('opacity', 1);\n markerDot.attr('opacity', 1);\n }\n } else {\n visible = false;\n this._overlayRef?.detach();\n }\n }\n\n const eachBand = this._xScale.step();\n const index = Math.round((posX / eachBand));\n const dataValue = this.data()[index];\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\n value = yAccessor(dataValue);\n x = this._xScale(xAccessor(index, index));\n y = this._yScale(yAccessor(dataValue));\n markerLine\n .attr('x1', x)\n .attr('x2', x)\n ;\n markerDot\n .attr('cx', x)\n .attr('cy', y)\n ;\n\n if (this.tooltip()) {\n if (posX < this._hostWidth / 2) {\n this._currentTooltipPosition = 'after-center';\n } else {\n this._currentTooltipPosition = 'before-center';\n }\n\n this._setTooltipPositionByEvent(e);\n\n if (visible) {\n this._setTooltipVisible();\n\n if (!this._overlayRef?.hasAttached()) {\n this._showTooltip({\n label,\n value\n });\n } else {\n if (oldXPosition !== x) {\n this._showTooltip({\n label,\n value\n });\n } else {\n this._overlayRef.updatePositionStrategy(this._getOverlayPositionStrategy());\n this._overlayRef.updatePosition();\n }\n }\n } else {\n this._setTooltipInVisible();\n }\n }\n })\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n if (!this.responsive()) {\n return;\n }\n\n this._resizeObserver = new ResizeObserver((entries) => {\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\n this._hostWidth = entries[0].contentRect.width;\n this._hostHeight = entries[0].contentRect.height;\n this._innerWidth = entries[0].contentRect.width;\n this._innerHeight = entries[0].contentRect.height;\n this._svg\n .attr(\"viewBox\", `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n this._setupData(true);\n }\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n}\n","<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n","import {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component, DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute, OnDestroy,\n PLATFORM_ID, TemplateRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { pointer, scaleBand, scaleLinear, select } from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-mchart-bar',\n exportAs: 'ngsMchartBar',\n templateUrl: './mchart-bar.html',\n styleUrl: './mchart-bar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-bar',\n '[class.fill-gradient]': 'fillGradient()',\n '[class.with-tooltip]': '!!tooltip()',\n }\n})\nexport class MchartBar extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _hlContainer: any;\n private _dataContainer: any;\n private _dimensions: DOMRect;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _xScale: any;\n private _yScale: any;\n private _resizeObserver: ResizeObserver;\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _destroyRef = inject(DestroyRef);\n\n data = input<number[]>([]);\n labels = input<string[]>([]);\n gap = input(0.2, {\n transform: numberAttribute\n });\n radius = input(0, {\n transform: numberAttribute\n });\n highlight = input(false, {\n transform: booleanAttribute\n });\n responsive = input(false, {\n transform: booleanAttribute\n });\n fillGradient = input(false, {\n transform: booleanAttribute\n });\n xAccessor = input((d: any, i: number) => i);\n yAccessor = input((d: any) => d);\n tooltip = input<TemplateRef<any>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n private _currentTooltipPosition: OverlayPosition = 'after-center';\n\n get gradientId(): string {\n return 'areaGradient' + this._gradientId;\n }\n private _gradientId = nextId++;\n\n constructor() {\n super();\n effect(() => {\n this._currentTooltipPosition = this.tooltipPosition();\n });\n effect(() => {\n if (!this._initialized) {\n return;\n }\n\n this._render();\n this._setupResizeObserver();\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n getTooltipPosition(): OverlayPosition {\n return this._currentTooltipPosition;\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n private _render(): void {\n this._init();\n this._setupAxisScale();\n this._setupData();\n this._initTooltip();\n }\n\n private _init(): void {\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width;\n this._innerHeight = this._dimensions.height;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n }\n\n private _setupAxisScale(): void {\n if (!this._xScale) {\n this._xScale = scaleBand()\n .paddingInner(this.gap())\n .domain(this.data().map((d, i) => i.toString()))\n ;\n }\n\n this._xScale.range([0, this._innerWidth]);\n\n if (!this._yScale) {\n this._yScale = scaleLinear().domain([0, Math.max(...this.data())]);\n }\n\n this._yScale.range([this._innerHeight, 0]);\n }\n\n private _setupData(): void {\n if (this.highlight()) {\n if (!this._hlContainer) {\n this._hlContainer = this._svg.append('g')\n .attr('class', 'hl-container')\n .attr('transform', `translate(0,0)`)\n ;\n this._hlContainer.selectAll('rect')\n .data(this.data())\n .enter()\n .append('rect')\n .attr('rx', this.radius())\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', 0)\n .attr('width', this._xScale.bandwidth())\n .attr('height', this._innerHeight)\n .attr('class', 'highlight')\n ;\n } else {\n this._hlContainer.selectAll('rect')\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', 0)\n .attr('width', this._xScale.bandwidth())\n .attr('height', this._innerHeight)\n ;\n }\n }\n\n if (!this._dataContainer) {\n this._dataContainer = this._svg.append('g')\n .attr('class', 'data-container')\n .attr('transform', `translate(0,0)`)\n ;\n const allBars = this._dataContainer.selectAll('rect')\n .data(this.data())\n .enter()\n .append('rect')\n .attr('rx', this.radius())\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', (d: any) => this._yScale(d))\n .attr('width', this._xScale.bandwidth())\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\n .attr('class', 'bar')\n ;\n\n if (this.fillGradient()) {\n allBars.attr('fill', `url(#${this.gradientId})`);\n }\n } else {\n this._dataContainer.selectAll('rect')\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', (d: any) => this._yScale(d))\n .attr('width', this._xScale.bandwidth())\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n if (!this.responsive()) {\n return;\n }\n\n this._resizeObserver?.disconnect();\n this._resizeObserver = new ResizeObserver((entries) => {\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\n this._hostWidth = entries[0].contentRect.width;\n this._hostHeight = entries[0].contentRect.height;\n this._innerWidth = entries[0].contentRect.width;\n this._innerHeight = entries[0].contentRect.height;\n this._svg.attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`);\n this._setupAxisScale();\n this._setupData();\n }\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n\n private _initTooltip(): void {\n if (!this.tooltip()) {\n return;\n }\n\n const xAccessor = this.xAccessor();\n const yAccessor = this.yAccessor();\n this._createTooltipOrigin();\n\n let x = 0;\n let y = 0;\n let label: any;\n let value: any;\n let oldX: any;\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const pointerCoords = pointer(e, this._svg.node());\n const [posX, posY] = pointerCoords;\n let visible = true;\n\n if (posX < 0 || posY < 0 || posX > this._hostWidth || posY > this._hostHeight) {\n visible = false;\n oldX = null;\n this._overlayRef?.detach();\n } else {\n if (!target.closest('.ngs-mchart-line') ||\n !target.classList.contains('ngs-mchart-tooltip-overlay') ||\n !target.closest('.ngs-mchart-tooltip-overlay')\n ) {\n oldX = null;\n this._overlayRef?.detach();\n }\n }\n\n const eachBand = this._xScale.step();\n const index = Math.floor(posX / eachBand);\n const dataValue = this.data()[index];\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\n value = yAccessor(dataValue);\n x = this._xScale(xAccessor(index, index));\n y = this._yScale(yAccessor(dataValue));\n\n if (posX < this._hostWidth / 2) {\n this._currentTooltipPosition = 'after-center';\n } else {\n this._currentTooltipPosition = 'before-center';\n }\n\n this._setTooltipPositionByEvent(e);\n\n if (visible) {\n this._setTooltipVisible();\n\n if (!this._overlayRef?.hasAttached()) {\n oldX = x;\n this._showTooltip({\n label,\n value\n });\n } else {\n if (oldX !== x) {\n oldX = x;\n this._showTooltip({\n label,\n value\n });\n } else {\n this._overlayRef.updatePositionStrategy(this._getOverlayPositionStrategy());\n this._overlayRef.updatePosition();\n }\n }\n } else {\n oldX = x;\n this._setTooltipInVisible();\n }\n })\n ;\n }\n}\n","<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n","import {\n AfterViewChecked, booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input, numberAttribute, OnChanges, OnDestroy,\n PLATFORM_ID, SimpleChanges, TemplateRef\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport {\n arc,\n interpolate,\n pie,\n scaleOrdinal,\n schemeTableau10,\n select\n} from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\n@Component({\n selector: 'ngs-mchart-pie',\n exportAs: 'ngsMchartPie',\n templateUrl: './mchart-pie.html',\n styleUrl: './mchart-pie.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-pie'\n }\n})\nexport class MchartPie extends BaseChartTooltip implements AfterViewChecked, OnChanges, OnDestroy {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _dataContainer: any;\n private _legendContainer: any;\n private _dimensions: DOMRect;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _resizeObserver: ResizeObserver;\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _radius = 0;\n private _arcGenerator: any;\n private _pieGenerator: any;\n private _colorsGenerator: any;\n private _arcTweenGenerator: any;\n private _pieData: any;\n\n data = input<number[]>([]);\n labels = input<string[] | number[]>([]);\n valueAccessor = input((d: any) => d);\n dataItemStrokeWidth = input(1, {\n transform: numberAttribute\n });\n legendContainerWidth = input(0, {\n transform: numberAttribute\n });\n showDataAnimation = input(false, {\n transform: booleanAttribute\n });\n showValueOnSlices = input(false, {\n transform: booleanAttribute\n });\n showLegend = input(false, {\n transform: booleanAttribute\n });\n legendOffset = input(30, {\n transform: numberAttribute\n });\n legendItemHeight = input(30, {\n transform: numberAttribute\n });\n legendItemSymbolSize = input(12, {\n transform: numberAttribute\n });\n legendItemFontSize = input(14, {\n transform: numberAttribute\n });\n legendItemSymbolBorderRadius = input(12, {\n transform: numberAttribute\n });\n valueFontSize = input(12, {\n transform: numberAttribute\n });\n tooltip = input<TemplateRef<unknown>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n getTooltipPosition(): OverlayPosition {\n return this.tooltipPosition();\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this._initialized) {\n return;\n }\n\n if (changes['data'] && !changes['data'].firstChange) {\n this._draw(true);\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n private _render(): void {\n this._initDimensions();\n this._initContainers();\n this._setGenerators();\n this._setLegend();\n this._draw();\n this._initTooltip();\n }\n\n private _initDimensions(): void {\n const legendContainerWidth = this.showLegend() ? this.legendContainerWidth() : 0;\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width - legendContainerWidth - this.dataItemStrokeWidth() * 2;\n this._innerHeight = this._dimensions.height - this.dataItemStrokeWidth() * 2;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n this._radius = Math.min(this._innerWidth, this._innerHeight) * .5;\n }\n\n private _initContainers(): void {\n this._dataContainer = this._svg\n .append('g')\n .attr('class', 'data-container')\n .attr('transform', `translate(${this._radius},${this._innerHeight * .5})`)\n ;\n\n if (this.showLegend()) {\n this._legendContainer = this._svg\n .append('g')\n .attr('class', 'legend-container')\n ;\n }\n }\n\n private _setGenerators(): void {\n const self = this;\n this._arcGenerator = arc()\n .innerRadius(0)\n .outerRadius(this._radius)\n ;\n this._pieGenerator = pie()\n .value(this.valueAccessor())\n ;\n this._colorsGenerator = scaleOrdinal(schemeTableau10)\n .domain(this.data().map((d: number, i: number) => i.toString()))\n ;\n this._arcTweenGenerator = function(d: number) {\n // @ts-ignore\n const _this = this as any;\n const current = d;\n const interpolateGenerator = interpolate(_this._previous, current);\n _this._previous = current;\n return (t: any) => {\n return self._arcGenerator(interpolateGenerator(t));\n };\n }\n ;\n }\n\n private _setLegend(): void {\n if (!this.showLegend()) {\n return;\n }\n\n this._legendContainer\n .selectAll('g.legend-item')\n .data(this.data())\n .join('g')\n .attr('class', 'legend-item')\n .attr('data-index', (d: number, i: number) => i)\n .attr('transform', (d: number, i: number) => `translate(0, ${i * this.legendItemHeight()})`)\n .on('mouseenter', (event: MouseEvent, d: number) => {\n const target = event.target as HTMLElement;\n const index = +(target.getAttribute('data-index') as string);\n this._dataContainer\n .select(`path.data-item[data-index=\"${index}\"]`)\n .classed('active', true)\n ;\n })\n .on('mouseleave', (event: MouseEvent, d: number) => {\n const target = event.target as HTMLElement;\n const index = +(target.getAttribute('data-index') as string);\n this._dataContainer\n .select(`path.data-item[data-index=\"${index}\"]`)\n .classed('active', false)\n ;\n })\n ;\n this._legendContainer\n .selectAll('g.legend-item')\n .selectAll('text')\n .data((d: number, i: number) => [i])\n .join('text')\n .attr('class', 'legend-item-text')\n .attr('x', this.legendItemSymbolSize() * 2)\n .attr('y', this.legendItemHeight() * .5)\n .attr('font-size', this.legendItemFontSize())\n .text((i: number) => this.labels()[i])\n ;\n this._legendContainer\n .selectAll('g.legend-item')\n .selectAll('rect')\n .data((d: number, i: number) => [i])\n .join('rect')\n .attr('class', 'legend-item-symbol')\n .attr('rx', this.legendItemSymbolBorderRadius())\n .attr('width', this.legendItemSymbolSize())\n .attr('height', this.legendItemSymbolSize())\n .attr('fill', (i: number) => this._colorsGenerator(i))\n .attr('y', this.legendItemFontSize() * .5 - 2)\n ;\n const dimensions = this._legendContainer.node().getBBox();\n this._legendContainer.attr(\n 'transform',\n `translate(${this._radius * 2 + this.legendOffset()},${this._innerHeight * .5 - .5 * dimensions.height})`\n )\n }\n\n private _draw(isUpdate = false): void {\n if (isUpdate) {\n this._colorsGenerator\n .domain(this.data().map((d: number, i: number) => i.toString()))\n ;\n }\n\n this._pieData = this._pieGenerator(this.data());\n this._dataContainer\n .selectAll('g.data-item-group')\n .data(this.data())\n .join('g')\n .attr('class', 'data-item-group')\n .attr('data-index', (d: number, i: number) => i)\n ;\n this._dataContainer\n .selectAll('g.data-item-group')\n .selectAll('path')\n .data((d: number, i: number) => [this._pieData[i]])\n .join('path')\n .attr('class', 'data-item')\n .attr('stroke-width', this.dataItemStrokeWidth())\n .attr('d', (d: any) => this._arcGenerator(d))\n .style('fill', (d: any) => this._colorsGenerator(d.index))\n .attr('data-index', (d: any) => d.index)\n .transition()\n .duration(this.showDataAnimation() ? 1000 : 0)\n .attrTween('d', this._arcTweenGenerator)\n ;\n\n if (this.showValueOnSlices()) {\n this._dataContainer\n .selectAll('g.data-item-group')\n .selectAll('text')\n .data((d: number, i: number) => [this._pieData[i]])\n .join('text')\n .attr('class', 'value')\n .attr('font-size', this.valueFontSize())\n .attr('transform', (d: any) => {\n const coordinates = this._arcGenerator.centroid(d);\n return `translate(${coordinates[0]},${coordinates[1]})`;\n })\n .text((d: any) => d.data)\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n }\n\n private _initTooltip(): void {\n if (!this.tooltip()) {\n return;\n }\n\n let oldValue: number;\n this._createTooltipOrigin();\n this._dataContainer\n .selectAll('g.data-item-group')\n .data(this._pieData)\n .on('mousemove', (event: MouseEvent, d: any) => {\n const target = event.target as HTMLElement;\n this._setTooltipPositionByEvent(event);\n this._setTooltipVisible();\n\n const index = +(target.getAttribute('data-index') as string);\n const label = this.labels()[index] ? this.labels()[index] : null;\n const color = this._colorsGenerator(index);\n const value = d.data;\n\n if (!this._overlayRef?.hasAttached()) {\n this._showTooltip({\n label,\n color,\n value\n });\n oldValue = value;\n } else {\n if (oldValue !== d.data) {\n this._showTooltip({\n label,\n color,\n value\n });\n oldValue = value;\n } else {\n this._overlayRef.updatePosition();\n }\n }\n })\n ;\n this._dataContainer\n .on('mouseleave', (event: MouseEvent) => {\n this._setTooltipInVisible();\n this._hideTooltip();\n })\n ;\n }\n}\n","<svg></svg>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip',\n exportAs: 'ngsMchartTooltip',\n templateUrl: './mchart-tooltip.html',\n styleUrl: './mchart-tooltip.scss',\n host: {\n 'class': 'ngs-mchart-tooltip'\n }\n})\nexport class MchartTooltip {\n\n}\n","<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip-title',\n exportAs: 'ngsMchartTooltipTitle',\n templateUrl: './mchart-tooltip-title.html',\n styleUrl: './mchart-tooltip-title.scss',\n host: {\n 'class': 'ngs-mchart-tooltip-title'\n }\n})\nexport class MchartTooltipTitle {\n\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip-body',\n exportAs: 'ngsMchartTooltipBody',\n templateUrl: './mchart-tooltip-body.html',\n styleUrl: './mchart-tooltip-body.scss',\n host: {\n 'class': 'ngs-mchart-tooltip-body'\n }\n})\nexport class MchartTooltipBody {\n\n}\n","<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-micro-chart.mjs","sources":["../../../projects/components/micro-chart/src/base-chart.tooltip.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.html","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.ts","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.html","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.ts","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.html","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.ts","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.html","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.ts","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.html","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.ts","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.html","../../../projects/components/micro-chart/ngstarter-ui-components-micro-chart.ts"],"sourcesContent":["import { TemplatePortal } from '@angular/cdk/portal';\nimport { inject, Injector, Renderer2, TemplateRef, ViewContainerRef, DOCUMENT } from '@angular/core';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\n\nimport { OverlayPosition, PositionManager } from '@ngstarter-ui/components/overlay';\n\nexport abstract class BaseChartTooltip {\n protected _tooltipOrigin: HTMLElement;\n protected _tooltipPortal!: TemplatePortal;\n protected _overlayRef: OverlayRef;\n protected _renderer = inject(Renderer2);\n protected _overlay = inject(Overlay);\n protected _viewContainerRef = inject(ViewContainerRef);\n protected _injector = inject(Injector);\n protected _document = inject(DOCUMENT);\n\n abstract getTooltipTemplateRef(): TemplateRef<any> | undefined;\n abstract getTooltipPosition(): OverlayPosition;\n\n protected _createTooltipOrigin(): void {\n let tooltipOrigin: HTMLElement | null = this._document.querySelector('.ngs-mchart-tooltip-origin');\n\n if (!tooltipOrigin) {\n tooltipOrigin = this._renderer.createElement('div') as HTMLElement;\n tooltipOrigin.classList.add('ngs-mchart-tooltip-origin');\n this._renderer.appendChild(this._document.body, tooltipOrigin);\n }\n\n this._tooltipOrigin = tooltipOrigin;\n this._renderer.setStyle(this._tooltipOrigin, 'width', '0');\n this._renderer.setStyle(this._tooltipOrigin, 'height', '0');\n this._renderer.setStyle(this._tooltipOrigin, 'z-index', '-1');\n this._renderer.setStyle(this._tooltipOrigin, 'position', 'fixed');\n this._renderer.setStyle(this._tooltipOrigin, 'opacity', '0');\n }\n\n protected _showTooltip(data: object): void {\n this._overlayRef?.detach();\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getContentPortal(data));\n }\n\n protected _hideTooltip(): void {\n this._overlayRef?.detach();\n }\n\n protected _setTooltipPositionByEvent(e: MouseEvent): void {\n const gap = 10;\n this._renderer.setStyle(this._tooltipOrigin, 'left', (e.clientX - gap) + 'px');\n this._renderer.setStyle(this._tooltipOrigin, 'top', (e.clientY) + 'px');\n this._renderer.setStyle(this._tooltipOrigin, 'width', (gap * 2) + 'px');\n }\n\n protected _setTooltipVisible(): void {\n this._renderer.addClass(this._tooltipOrigin, 'is-visible');\n }\n\n protected _setTooltipInVisible(): void {\n this._renderer.removeClass(this._tooltipOrigin, 'is-visible');\n }\n\n protected _getContentPortal(data: object) {\n this._tooltipPortal = new TemplatePortal(\n this.getTooltipTemplateRef() as TemplateRef<any>,\n this._viewContainerRef,\n {\n '$implicit': {\n ...data\n }\n },\n this._injector\n );\n\n return this._tooltipPortal;\n }\n\n protected _getOverlayConfig() {\n return new OverlayConfig({\n panelClass: 'ngs-mchart-tooltip-overlay',\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.reposition()\n });\n }\n\n protected _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._tooltipOrigin)\n .withFlexibleDimensions()\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions())\n ;\n }\n\n protected _getOverlayPositions(): ConnectedPosition[] {\n return (new PositionManager()).build(this.getTooltipPosition());\n }\n}\n","import {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component, DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute, OnDestroy,\n PLATFORM_ID,\n TemplateRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport {\n Selection,\n curveLinear,\n curveCatmullRom,\n curveBumpX,\n scaleLinear,\n select,\n scalePoint,\n min, max,\n pointer,\n line, area,\n curveStep\n} from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MchartLineCurveType } from '../types';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-mchart-line',\n exportAs: 'ngsMchartLine',\n templateUrl: './mchart-line.html',\n styleUrl: './mchart-line.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-line',\n '[class.fill-area-gradient]': 'fillAreaGradient()',\n }\n})\nexport class MchartLine extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _dimensions: DOMRect;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _yScale: any;\n private _xScale: any;\n private _curveMap = {\n 'linear': curveLinear,\n 'catmullRom': curveCatmullRom,\n 'curveBumpX': curveBumpX,\n 'curveStep': curveStep\n };\n private _resizeObserver: ResizeObserver;\n private _tooltipDot: HTMLElement;\n private _area: any;\n private _line: any;\n private _platformId = inject(PLATFORM_ID);\n private _destroyRef = inject(DestroyRef);\n private _elementRef = inject(ElementRef);\n\n data = input<number[]>([]);\n labels = input<any[]>([]);\n strokeWidth = input(2, {\n transform: numberAttribute\n });\n showArea = input(false, {\n transform: booleanAttribute\n });\n showMarkers = input(false, {\n transform: booleanAttribute\n });\n responsive = input(false, {\n transform: booleanAttribute\n });\n fillAreaGradient = input(false, {\n transform: booleanAttribute\n });\n curve = input<MchartLineCurveType>('linear');\n xAccessor = input((d: any, i: number) => i);\n yAccessor = input((d: any) => d);\n compact = input(false, {\n transform: booleanAttribute\n });\n markerDotSize = input(5, {\n transform: numberAttribute\n });\n tooltip = input<TemplateRef<unknown>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n private _currentTooltipPosition: OverlayPosition = 'after-center';\n\n get gradientId(): string {\n return 'areaGradient' + this._gradientId;\n }\n private _gradientId = nextId++;\n\n constructor() {\n super();\n effect(() => {\n this._currentTooltipPosition = this.tooltipPosition();\n });\n effect(() => {\n if (!this._initialized) {\n return;\n }\n\n this._render();\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !== 0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n getTooltipPosition(): OverlayPosition {\n return this._currentTooltipPosition;\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n private _render(): void {\n this._setupContainers();\n this._setupData();\n }\n\n private _setupContainers(): void {\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width;\n this._innerHeight = this._dimensions.height;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n\n if (this.tooltip()) {\n this._tooltipDot = this._renderer.createElement('div');\n this._renderer.setStyle(this._tooltipDot, 'width', '10px');\n this._renderer.setStyle(this._tooltipDot, 'height', '10px');\n this._renderer.setStyle(this._tooltipDot, 'z-index', '-1');\n this._renderer.setStyle(this._tooltipDot, 'position', 'fixed');\n this._renderer.setStyle(this._tooltipDot, 'opacity', '0');\n this._renderer.appendChild(this._document.body, this._tooltipDot);\n }\n }\n\n private _setupData(isUpdate = false): void {\n let markerDotSize = this.markerDotSize();\n\n if (!this.showMarkers()) {\n markerDotSize = this.strokeWidth();\n }\n\n const xAccessor = this.xAccessor();\n const yAccessor = this.yAccessor();\n const xDomain = this.data().map((d: any, i: number) => xAccessor(d, i)) as any;\n\n if (!this._xScale) {\n this._xScale = scalePoint().domain(xDomain);\n }\n\n this._xScale.range([markerDotSize, this._innerWidth - markerDotSize]);\n\n const yDomain = [\n this.compact() ? min(this.data().map(d => yAccessor(d))) : 0,\n max(this.data().map(d => yAccessor(d)))\n ];\n\n if (!this._yScale) {\n this._yScale = scaleLinear()\n .domain(yDomain)\n ;\n }\n\n this._yScale.range([this._innerHeight - markerDotSize, markerDotSize])\n\n if (this.showArea()) {\n const areaGenerator = area()\n .x((d, i) => this._xScale(xAccessor(d, i)))\n .y1((d) => this._yScale(yAccessor(d)))\n .y0(this._innerHeight - markerDotSize)\n .curve(this._curveMap[this.curve()])\n ;\n\n if (!this._area) {\n // add area\n this._area = this._svg\n .append('path')\n .datum(this.data())\n .attr('d', areaGenerator)\n .attr('class', 'area')\n ;\n\n if (this.fillAreaGradient()) {\n this._area.attr('fill', `url(#${this.gradientId})`);\n }\n } else {\n this._area.attr('d', areaGenerator);\n }\n }\n\n const lineGenerator = line()\n .x((d, i) => this._xScale(xAccessor(d, i)))\n .y((d) => this._yScale(yAccessor(d)))\n ;\n\n if (!this._line) {\n // add line\n this._line = this._svg\n .append('path')\n .datum(this.data())\n .attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\n .attr('class', 'line')\n .attr('stroke-width', this.strokeWidth())\n ;\n } else {\n this._line.attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\n }\n\n if (isUpdate) {\n return;\n }\n\n if (this.showMarkers() || this.tooltip()) {\n const markerLine = this._svg\n .append('line')\n .attr('x1', 0)\n .attr('x2', 0)\n .attr('y1', 0)\n .attr('y2', this._innerHeight - markerDotSize)\n .attr('opacity', 0)\n .attr('class', 'marker-line')\n ;\n const markerDot: Selection<any, any, any, any> = this._svg\n .append('circle')\n .attr('cx', 0)\n .attr('cy', 0)\n .attr('r', markerDotSize)\n .attr('opacity', 0)\n .attr('class', 'marker-dot')\n ;\n\n let x = 0;\n let y = 0;\n let label: any;\n let value: any;\n\n if (this.tooltip()) {\n this._createTooltipOrigin();\n }\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const oldXPosition = +markerDot.attr('cx');\n const pointerCoords = pointer(e, this._svg.node());\n const [posX, posY] = pointerCoords;\n let visible = true;\n\n if (posX < this.markerDotSize() || posY < this.markerDotSize() || posX > this._hostWidth || posY > this._hostHeight) {\n visible = false;\n this._overlayRef?.detach();\n markerLine.attr('opacity', 0);\n markerDot.attr('opacity', 0);\n } else {\n if (target.closest('.ngs-mchart-line') ||\n target.classList.contains('ngs-mchart-tooltip-overlay') ||\n target.closest('.ngs-mchart-tooltip-overlay')\n ) {\n if (this.showMarkers()) {\n markerLine.attr('opacity', 1);\n markerDot.attr('opacity', 1);\n }\n } else {\n visible = false;\n this._overlayRef?.detach();\n }\n }\n\n const eachBand = this._xScale.step();\n const index = Math.round((posX / eachBand));\n const dataValue = this.data()[index];\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\n value = yAccessor(dataValue);\n x = this._xScale(xAccessor(index, index));\n y = this._yScale(yAccessor(dataValue));\n markerLine\n .attr('x1', x)\n .attr('x2', x)\n ;\n markerDot\n .attr('cx', x)\n .attr('cy', y)\n ;\n\n if (this.tooltip()) {\n if (posX < this._hostWidth / 2) {\n this._currentTooltipPosition = 'after-center';\n } else {\n this._currentTooltipPosition = 'before-center';\n }\n\n this._setTooltipPositionByEvent(e);\n\n if (visible) {\n this._setTooltipVisible();\n\n if (!this._overlayRef?.hasAttached()) {\n this._showTooltip({\n label,\n value\n });\n } else {\n if (oldXPosition !== x) {\n this._showTooltip({\n label,\n value\n });\n } else {\n this._overlayRef.updatePositionStrategy(this._getOverlayPositionStrategy());\n this._overlayRef.updatePosition();\n }\n }\n } else {\n this._setTooltipInVisible();\n }\n }\n })\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n if (!this.responsive()) {\n return;\n }\n\n this._resizeObserver = new ResizeObserver((entries) => {\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\n this._hostWidth = entries[0].contentRect.width;\n this._hostHeight = entries[0].contentRect.height;\n this._innerWidth = entries[0].contentRect.width;\n this._innerHeight = entries[0].contentRect.height;\n this._svg\n .attr(\"viewBox\", `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n this._setupData(true);\n }\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n}\n","<svg>\n @if (fillAreaGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n</svg>\n","import {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component, DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute, OnDestroy,\n PLATFORM_ID, TemplateRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { pointer, scaleBand, scaleLinear, select } from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-mchart-bar',\n exportAs: 'ngsMchartBar',\n templateUrl: './mchart-bar.html',\n styleUrl: './mchart-bar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-bar',\n '[class.fill-gradient]': 'fillGradient()',\n '[class.with-tooltip]': '!!tooltip()',\n }\n})\nexport class MchartBar extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _hlContainer: any;\n private _dataContainer: any;\n private _dimensions: DOMRect;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _xScale: any;\n private _yScale: any;\n private _resizeObserver: ResizeObserver;\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _destroyRef = inject(DestroyRef);\n\n data = input<number[]>([]);\n labels = input<string[]>([]);\n gap = input(0.2, {\n transform: numberAttribute\n });\n radius = input(0, {\n transform: numberAttribute\n });\n highlight = input(false, {\n transform: booleanAttribute\n });\n responsive = input(false, {\n transform: booleanAttribute\n });\n fillGradient = input(false, {\n transform: booleanAttribute\n });\n xAccessor = input((d: any, i: number) => i);\n yAccessor = input((d: any) => d);\n tooltip = input<TemplateRef<any>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n private _currentTooltipPosition: OverlayPosition = 'after-center';\n\n get gradientId(): string {\n return 'areaGradient' + this._gradientId;\n }\n private _gradientId = nextId++;\n\n constructor() {\n super();\n effect(() => {\n this._currentTooltipPosition = this.tooltipPosition();\n });\n effect(() => {\n if (!this._initialized) {\n return;\n }\n\n this._render();\n this._setupResizeObserver();\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n getTooltipPosition(): OverlayPosition {\n return this._currentTooltipPosition;\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n private _render(): void {\n this._init();\n this._setupAxisScale();\n this._setupData();\n this._initTooltip();\n }\n\n private _init(): void {\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width;\n this._innerHeight = this._dimensions.height;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n }\n\n private _setupAxisScale(): void {\n if (!this._xScale) {\n this._xScale = scaleBand()\n .paddingInner(this.gap())\n .domain(this.data().map((d, i) => i.toString()))\n ;\n }\n\n this._xScale.range([0, this._innerWidth]);\n\n if (!this._yScale) {\n this._yScale = scaleLinear().domain([0, Math.max(...this.data())]);\n }\n\n this._yScale.range([this._innerHeight, 0]);\n }\n\n private _setupData(): void {\n if (this.highlight()) {\n if (!this._hlContainer) {\n this._hlContainer = this._svg.append('g')\n .attr('class', 'hl-container')\n .attr('transform', `translate(0,0)`)\n ;\n this._hlContainer.selectAll('rect')\n .data(this.data())\n .enter()\n .append('rect')\n .attr('rx', this.radius())\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', 0)\n .attr('width', this._xScale.bandwidth())\n .attr('height', this._innerHeight)\n .attr('class', 'highlight')\n ;\n } else {\n this._hlContainer.selectAll('rect')\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', 0)\n .attr('width', this._xScale.bandwidth())\n .attr('height', this._innerHeight)\n ;\n }\n }\n\n if (!this._dataContainer) {\n this._dataContainer = this._svg.append('g')\n .attr('class', 'data-container')\n .attr('transform', `translate(0,0)`)\n ;\n const allBars = this._dataContainer.selectAll('rect')\n .data(this.data())\n .enter()\n .append('rect')\n .attr('rx', this.radius())\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', (d: any) => this._yScale(d))\n .attr('width', this._xScale.bandwidth())\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\n .attr('class', 'bar')\n ;\n\n if (this.fillGradient()) {\n allBars.attr('fill', `url(#${this.gradientId})`);\n }\n } else {\n this._dataContainer.selectAll('rect')\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\n .attr('y', (d: any) => this._yScale(d))\n .attr('width', this._xScale.bandwidth())\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n if (!this.responsive()) {\n return;\n }\n\n this._resizeObserver?.disconnect();\n this._resizeObserver = new ResizeObserver((entries) => {\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\n this._hostWidth = entries[0].contentRect.width;\n this._hostHeight = entries[0].contentRect.height;\n this._innerWidth = entries[0].contentRect.width;\n this._innerHeight = entries[0].contentRect.height;\n this._svg.attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`);\n this._setupAxisScale();\n this._setupData();\n }\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n\n private _initTooltip(): void {\n if (!this.tooltip()) {\n return;\n }\n\n const xAccessor = this.xAccessor();\n const yAccessor = this.yAccessor();\n this._createTooltipOrigin();\n\n let x = 0;\n let y = 0;\n let label: any;\n let value: any;\n let oldX: any;\n\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const pointerCoords = pointer(e, this._svg.node());\n const [posX, posY] = pointerCoords;\n let visible = true;\n\n if (posX < 0 || posY < 0 || posX > this._hostWidth || posY > this._hostHeight) {\n visible = false;\n oldX = null;\n this._overlayRef?.detach();\n } else {\n if (!target.closest('.ngs-mchart-line') ||\n !target.classList.contains('ngs-mchart-tooltip-overlay') ||\n !target.closest('.ngs-mchart-tooltip-overlay')\n ) {\n oldX = null;\n this._overlayRef?.detach();\n }\n }\n\n const eachBand = this._xScale.step();\n const index = Math.floor(posX / eachBand);\n const dataValue = this.data()[index];\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\n value = yAccessor(dataValue);\n x = this._xScale(xAccessor(index, index));\n y = this._yScale(yAccessor(dataValue));\n\n if (posX < this._hostWidth / 2) {\n this._currentTooltipPosition = 'after-center';\n } else {\n this._currentTooltipPosition = 'before-center';\n }\n\n this._setTooltipPositionByEvent(e);\n\n if (visible) {\n this._setTooltipVisible();\n\n if (!this._overlayRef?.hasAttached()) {\n oldX = x;\n this._showTooltip({\n label,\n value\n });\n } else {\n if (oldX !== x) {\n oldX = x;\n this._showTooltip({\n label,\n value\n });\n } else {\n this._overlayRef.updatePositionStrategy(this._getOverlayPositionStrategy());\n this._overlayRef.updatePosition();\n }\n }\n } else {\n oldX = x;\n this._setTooltipInVisible();\n }\n })\n ;\n }\n}\n","<svg>\n <defs>\n @if (fillGradient()) {\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" class=\"lg-start-color\"/>\n <stop offset=\"100%\" class=\"lg-end-color\"/>\n </linearGradient>\n }\n </defs>\n</svg>\n","import {\n AfterViewChecked, booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input, numberAttribute, OnChanges, OnDestroy,\n PLATFORM_ID, SimpleChanges, TemplateRef\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport {\n arc,\n interpolate,\n pie,\n scaleOrdinal,\n schemeTableau10,\n select\n} from 'd3';\nimport { OverlayPosition } from '@ngstarter-ui/components/overlay';\nimport { BaseChartTooltip } from '../base-chart.tooltip';\n\n@Component({\n selector: 'ngs-mchart-pie',\n exportAs: 'ngsMchartPie',\n templateUrl: './mchart-pie.html',\n styleUrl: './mchart-pie.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-mchart-pie'\n }\n})\nexport class MchartPie extends BaseChartTooltip implements AfterViewChecked, OnChanges, OnDestroy {\n private _initialized = false;\n private _host: any;\n private _svg: any;\n private _dataContainer: any;\n private _legendContainer: any;\n private _dimensions: DOMRect;\n private _innerWidth = 0;\n private _innerHeight = 0;\n private _hostWidth = 0;\n private _hostHeight = 0;\n private _resizeObserver: ResizeObserver;\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _radius = 0;\n private _arcGenerator: any;\n private _pieGenerator: any;\n private _colorsGenerator: any;\n private _arcTweenGenerator: any;\n private _pieData: any;\n\n data = input<number[]>([]);\n labels = input<string[] | number[]>([]);\n valueAccessor = input((d: any) => d);\n dataItemStrokeWidth = input(1, {\n transform: numberAttribute\n });\n legendContainerWidth = input(0, {\n transform: numberAttribute\n });\n showDataAnimation = input(false, {\n transform: booleanAttribute\n });\n showValueOnSlices = input(false, {\n transform: booleanAttribute\n });\n showLegend = input(false, {\n transform: booleanAttribute\n });\n legendOffset = input(30, {\n transform: numberAttribute\n });\n legendItemHeight = input(30, {\n transform: numberAttribute\n });\n legendItemSymbolSize = input(12, {\n transform: numberAttribute\n });\n legendItemFontSize = input(14, {\n transform: numberAttribute\n });\n legendItemSymbolBorderRadius = input(12, {\n transform: numberAttribute\n });\n valueFontSize = input(12, {\n transform: numberAttribute\n });\n tooltip = input<TemplateRef<unknown>>();\n tooltipPosition = input<OverlayPosition>('after-center');\n\n getTooltipPosition(): OverlayPosition {\n return this.tooltipPosition();\n }\n\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\n return this.tooltip();\n }\n\n ngAfterViewChecked() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this._initialized) {\n const element = this._elementRef.nativeElement as HTMLElement;\n this._dimensions = element.getBoundingClientRect();\n\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\n this._initialized = true;\n this._render();\n this._setupResizeObserver();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this._initialized) {\n return;\n }\n\n if (changes['data'] && !changes['data'].firstChange) {\n this._draw(true);\n }\n }\n\n ngOnDestroy() {\n this._resizeObserver?.disconnect();\n }\n\n private _render(): void {\n this._initDimensions();\n this._initContainers();\n this._setGenerators();\n this._setLegend();\n this._draw();\n this._initTooltip();\n }\n\n private _initDimensions(): void {\n const legendContainerWidth = this.showLegend() ? this.legendContainerWidth() : 0;\n this._hostWidth = this._dimensions.width;\n this._hostHeight = this._dimensions.height;\n this._innerWidth = this._dimensions.width - legendContainerWidth - this.dataItemStrokeWidth() * 2;\n this._innerHeight = this._dimensions.height - this.dataItemStrokeWidth() * 2;\n this._host = select(this._elementRef.nativeElement);\n this._svg = this._host\n .select('svg')\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\n ;\n this._radius = Math.min(this._innerWidth, this._innerHeight) * .5;\n }\n\n private _initContainers(): void {\n this._dataContainer = this._svg\n .append('g')\n .attr('class', 'data-container')\n .attr('transform', `translate(${this._radius},${this._innerHeight * .5})`)\n ;\n\n if (this.showLegend()) {\n this._legendContainer = this._svg\n .append('g')\n .attr('class', 'legend-container')\n ;\n }\n }\n\n private _setGenerators(): void {\n const self = this;\n this._arcGenerator = arc()\n .innerRadius(0)\n .outerRadius(this._radius)\n ;\n this._pieGenerator = pie()\n .value(this.valueAccessor())\n ;\n this._colorsGenerator = scaleOrdinal(schemeTableau10)\n .domain(this.data().map((d: number, i: number) => i.toString()))\n ;\n this._arcTweenGenerator = function(d: number) {\n // @ts-ignore\n const _this = this as any;\n const current = d;\n const interpolateGenerator = interpolate(_this._previous, current);\n _this._previous = current;\n return (t: any) => {\n return self._arcGenerator(interpolateGenerator(t));\n };\n }\n ;\n }\n\n private _setLegend(): void {\n if (!this.showLegend()) {\n return;\n }\n\n this._legendContainer\n .selectAll('g.legend-item')\n .data(this.data())\n .join('g')\n .attr('class', 'legend-item')\n .attr('data-index', (d: number, i: number) => i)\n .attr('transform', (d: number, i: number) => `translate(0, ${i * this.legendItemHeight()})`)\n .on('mouseenter', (event: MouseEvent, d: number) => {\n const target = event.target as HTMLElement;\n const index = +(target.getAttribute('data-index') as string);\n this._dataContainer\n .select(`path.data-item[data-index=\"${index}\"]`)\n .classed('active', true)\n ;\n })\n .on('mouseleave', (event: MouseEvent, d: number) => {\n const target = event.target as HTMLElement;\n const index = +(target.getAttribute('data-index') as string);\n this._dataContainer\n .select(`path.data-item[data-index=\"${index}\"]`)\n .classed('active', false)\n ;\n })\n ;\n this._legendContainer\n .selectAll('g.legend-item')\n .selectAll('text')\n .data((d: number, i: number) => [i])\n .join('text')\n .attr('class', 'legend-item-text')\n .attr('x', this.legendItemSymbolSize() * 2)\n .attr('y', this.legendItemHeight() * .5)\n .attr('font-size', this.legendItemFontSize())\n .text((i: number) => this.labels()[i])\n ;\n this._legendContainer\n .selectAll('g.legend-item')\n .selectAll('rect')\n .data((d: number, i: number) => [i])\n .join('rect')\n .attr('class', 'legend-item-symbol')\n .attr('rx', this.legendItemSymbolBorderRadius())\n .attr('width', this.legendItemSymbolSize())\n .attr('height', this.legendItemSymbolSize())\n .attr('fill', (i: number) => this._colorsGenerator(i))\n .attr('y', this.legendItemFontSize() * .5 - 2)\n ;\n const dimensions = this._legendContainer.node().getBBox();\n this._legendContainer.attr(\n 'transform',\n `translate(${this._radius * 2 + this.legendOffset()},${this._innerHeight * .5 - .5 * dimensions.height})`\n )\n }\n\n private _draw(isUpdate = false): void {\n if (isUpdate) {\n this._colorsGenerator\n .domain(this.data().map((d: number, i: number) => i.toString()))\n ;\n }\n\n this._pieData = this._pieGenerator(this.data());\n this._dataContainer\n .selectAll('g.data-item-group')\n .data(this.data())\n .join('g')\n .attr('class', 'data-item-group')\n .attr('data-index', (d: number, i: number) => i)\n ;\n this._dataContainer\n .selectAll('g.data-item-group')\n .selectAll('path')\n .data((d: number, i: number) => [this._pieData[i]])\n .join('path')\n .attr('class', 'data-item')\n .attr('stroke-width', this.dataItemStrokeWidth())\n .attr('d', (d: any) => this._arcGenerator(d))\n .style('fill', (d: any) => this._colorsGenerator(d.index))\n .attr('data-index', (d: any) => d.index)\n .transition()\n .duration(this.showDataAnimation() ? 1000 : 0)\n .attrTween('d', this._arcTweenGenerator)\n ;\n\n if (this.showValueOnSlices()) {\n this._dataContainer\n .selectAll('g.data-item-group')\n .selectAll('text')\n .data((d: number, i: number) => [this._pieData[i]])\n .join('text')\n .attr('class', 'value')\n .attr('font-size', this.valueFontSize())\n .attr('transform', (d: any) => {\n const coordinates = this._arcGenerator.centroid(d);\n return `translate(${coordinates[0]},${coordinates[1]})`;\n })\n .text((d: any) => d.data)\n ;\n }\n }\n\n private _setupResizeObserver(): void {\n }\n\n private _initTooltip(): void {\n if (!this.tooltip()) {\n return;\n }\n\n let oldValue: number;\n this._createTooltipOrigin();\n this._dataContainer\n .selectAll('g.data-item-group')\n .data(this._pieData)\n .on('mousemove', (event: MouseEvent, d: any) => {\n const target = event.target as HTMLElement;\n this._setTooltipPositionByEvent(event);\n this._setTooltipVisible();\n\n const index = +(target.getAttribute('data-index') as string);\n const label = this.labels()[index] ? this.labels()[index] : null;\n const color = this._colorsGenerator(index);\n const value = d.data;\n\n if (!this._overlayRef?.hasAttached()) {\n this._showTooltip({\n label,\n color,\n value\n });\n oldValue = value;\n } else {\n if (oldValue !== d.data) {\n this._showTooltip({\n label,\n color,\n value\n });\n oldValue = value;\n } else {\n this._overlayRef.updatePosition();\n }\n }\n })\n ;\n this._dataContainer\n .on('mouseleave', (event: MouseEvent) => {\n this._setTooltipInVisible();\n this._hideTooltip();\n })\n ;\n }\n}\n","<svg></svg>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip',\n exportAs: 'ngsMchartTooltip',\n templateUrl: './mchart-tooltip.html',\n styleUrl: './mchart-tooltip.scss',\n host: {\n 'class': 'ngs-mchart-tooltip'\n }\n})\nexport class MchartTooltip {\n\n}\n","<div class=\"title\">\n <ng-content select=\"ngs-mchart-tooltip-title\" />\n</div>\n<div class=\"body\">\n <ng-content select=\"ngs-mchart-tooltip-body\" />\n</div>\n<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip-title',\n exportAs: 'ngsMchartTooltipTitle',\n templateUrl: './mchart-tooltip-title.html',\n styleUrl: './mchart-tooltip-title.scss',\n host: {\n 'class': 'ngs-mchart-tooltip-title'\n }\n})\nexport class MchartTooltipTitle {\n\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-mchart-tooltip-body',\n exportAs: 'ngsMchartTooltipBody',\n templateUrl: './mchart-tooltip-body.html',\n styleUrl: './mchart-tooltip-body.scss',\n host: {\n 'class': 'ngs-mchart-tooltip-body'\n }\n})\nexport class MchartTooltipBody {\n\n}\n","<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|