@elementar-rt/components 0.6.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/action-required/index.d.ts +13 -0
- package/alert/index.d.ts +51 -0
- package/announcement/index.d.ts +45 -0
- package/avatar/index.d.ts +67 -0
- package/block-loader/index.d.ts +21 -0
- package/block-state/index.d.ts +33 -0
- package/brand-colors/index.d.ts +27 -0
- package/breadcrumbs/index.d.ts +104 -0
- package/card-overlay/index.d.ts +20 -0
- package/carousel/index.d.ts +75 -0
- package/code-highlighter/index.d.ts +18 -0
- package/color-picker/index.d.ts +92 -0
- package/color-scheme/index.d.ts +44 -0
- package/command-bar/index.d.ts +28 -0
- package/comment-editor/index.d.ts +194 -0
- package/comparison-slider/index.d.ts +51 -0
- package/confirm/index.d.ts +35 -0
- package/content-fade/index.d.ts +17 -0
- package/cookie-popup/index.d.ts +41 -0
- package/core/index.d.ts +252 -0
- package/country-select/index.d.ts +76 -0
- package/crop/index.d.ts +59 -0
- package/currency-select/index.d.ts +78 -0
- package/dashboard/index.d.ts +48 -0
- package/data-view/index.d.ts +127 -0
- package/date-format-select/index.d.ts +56 -0
- package/divider/index.d.ts +13 -0
- package/drawer/index.d.ts +35 -0
- package/emoji-picker/index.d.ts +49 -0
- package/expand/index.d.ts +26 -0
- package/fesm2022/elementar-rt-components-action-required.mjs +30 -0
- package/fesm2022/elementar-rt-components-action-required.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-alert.mjs +139 -0
- package/fesm2022/elementar-rt-components-alert.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-announcement.mjs +73 -0
- package/fesm2022/elementar-rt-components-announcement.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-avatar.mjs +234 -0
- package/fesm2022/elementar-rt-components-avatar.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-block-loader.mjs +54 -0
- package/fesm2022/elementar-rt-components-block-loader.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-block-state.mjs +75 -0
- package/fesm2022/elementar-rt-components-block-state.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-brand-colors.mjs +78 -0
- package/fesm2022/elementar-rt-components-brand-colors.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-breadcrumbs.mjs +213 -0
- package/fesm2022/elementar-rt-components-breadcrumbs.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-card-overlay.mjs +55 -0
- package/fesm2022/elementar-rt-components-card-overlay.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-carousel.mjs +605 -0
- package/fesm2022/elementar-rt-components-carousel.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-code-highlighter.mjs +57 -0
- package/fesm2022/elementar-rt-components-code-highlighter.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-color-picker.mjs +708 -0
- package/fesm2022/elementar-rt-components-color-picker.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-color-scheme.mjs +106 -0
- package/fesm2022/elementar-rt-components-color-scheme.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-command-bar.mjs +59 -0
- package/fesm2022/elementar-rt-components-command-bar.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-comment-editor.mjs +1039 -0
- package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-comparison-slider.mjs +193 -0
- package/fesm2022/elementar-rt-components-comparison-slider.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-confirm.mjs +86 -0
- package/fesm2022/elementar-rt-components-confirm.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-content-fade.mjs +35 -0
- package/fesm2022/elementar-rt-components-content-fade.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-cookie-popup.mjs +109 -0
- package/fesm2022/elementar-rt-components-cookie-popup.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-core.mjs +837 -0
- package/fesm2022/elementar-rt-components-core.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-country-select.mjs +477 -0
- package/fesm2022/elementar-rt-components-country-select.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-crop.mjs +183 -0
- package/fesm2022/elementar-rt-components-crop.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-currency-select.mjs +384 -0
- package/fesm2022/elementar-rt-components-currency-select.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-dashboard.mjs +96 -0
- package/fesm2022/elementar-rt-components-dashboard.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-data-view.mjs +302 -0
- package/fesm2022/elementar-rt-components-data-view.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-date-format-select.mjs +136 -0
- package/fesm2022/elementar-rt-components-date-format-select.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-divider.mjs +31 -0
- package/fesm2022/elementar-rt-components-divider.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-drawer.mjs +131 -0
- package/fesm2022/elementar-rt-components-drawer.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-emoji-picker.mjs +249 -0
- package/fesm2022/elementar-rt-components-emoji-picker.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-expand.mjs +60 -0
- package/fesm2022/elementar-rt-components-expand.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-filter-builder.mjs +333 -0
- package/fesm2022/elementar-rt-components-filter-builder.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs +123 -0
- package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs +22 -0
- package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs +40 -0
- package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs +17 -0
- package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs +17 -0
- package/fesm2022/elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs +33 -0
- package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs +38 -0
- package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs +39 -0
- package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs +24 -0
- package/fesm2022/elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs +37 -0
- package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs +35 -0
- package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs +22 -0
- package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-form-renderer.mjs +321 -0
- package/fesm2022/elementar-rt-components-form-renderer.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-gauge.mjs +50 -0
- package/fesm2022/elementar-rt-components-gauge.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-icon.mjs +62 -0
- package/fesm2022/elementar-rt-components-icon.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-image-resizer.mjs +159 -0
- package/fesm2022/elementar-rt-components-image-resizer.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-image-viewer.mjs +349 -0
- package/fesm2022/elementar-rt-components-image-viewer.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-incidents.mjs +259 -0
- package/fesm2022/elementar-rt-components-incidents.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-inline-text-edit.mjs +181 -0
- package/fesm2022/elementar-rt-components-inline-text-edit.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-input-mask.mjs +180 -0
- package/fesm2022/elementar-rt-components-input-mask.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-input-validator.mjs +24 -0
- package/fesm2022/elementar-rt-components-input-validator.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-kanban-board.mjs +156 -0
- package/fesm2022/elementar-rt-components-kanban-board.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-layout.mjs +188 -0
- package/fesm2022/elementar-rt-components-layout.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-logo.mjs +43 -0
- package/fesm2022/elementar-rt-components-logo.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-marquee.mjs +79 -0
- package/fesm2022/elementar-rt-components-marquee.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-micro-chart.mjs +950 -0
- package/fesm2022/elementar-rt-components-micro-chart.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-navigation.mjs +379 -0
- package/fesm2022/elementar-rt-components-navigation.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-notifications.mjs +190 -0
- package/fesm2022/elementar-rt-components-notifications.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-number-input.mjs +288 -0
- package/fesm2022/elementar-rt-components-number-input.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs +455 -0
- package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-overlay.mjs +112 -0
- package/fesm2022/elementar-rt-components-overlay.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-page-loading-bar.mjs +79 -0
- package/fesm2022/elementar-rt-components-page-loading-bar.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-panel.mjs +105 -0
- package/fesm2022/elementar-rt-components-panel.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-password-strength.mjs +474 -0
- package/fesm2022/elementar-rt-components-password-strength.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-phone-input.mjs +637 -0
- package/fesm2022/elementar-rt-components-phone-input.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-pin-input.mjs +197 -0
- package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-popover.mjs +262 -0
- package/fesm2022/elementar-rt-components-popover.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-radio-card.mjs +102 -0
- package/fesm2022/elementar-rt-components-radio-card.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-rail-nav.mjs +84 -0
- package/fesm2022/elementar-rt-components-rail-nav.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-resizable-container.mjs +69 -0
- package/fesm2022/elementar-rt-components-resizable-container.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-screen-loader.mjs +27 -0
- package/fesm2022/elementar-rt-components-screen-loader.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-scroll-spy.mjs +165 -0
- package/fesm2022/elementar-rt-components-scroll-spy.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-segmented.mjs +153 -0
- package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-side-panel.mjs +110 -0
- package/fesm2022/elementar-rt-components-side-panel.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-sidebar.mjs +423 -0
- package/fesm2022/elementar-rt-components-sidebar.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-signature-pad.mjs +452 -0
- package/fesm2022/elementar-rt-components-signature-pad.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-skeleton.mjs +56 -0
- package/fesm2022/elementar-rt-components-skeleton.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-splash-screen.mjs +91 -0
- package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-stepper.mjs +194 -0
- package/fesm2022/elementar-rt-components-stepper.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-suggestions.mjs +76 -0
- package/fesm2022/elementar-rt-components-suggestions.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-tab-panel.mjs +270 -0
- package/fesm2022/elementar-rt-components-tab-panel.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-text-editor.mjs +1025 -0
- package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-thumbnail-maker.mjs +214 -0
- package/fesm2022/elementar-rt-components-thumbnail-maker.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-timeline.mjs +122 -0
- package/fesm2022/elementar-rt-components-timeline.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-timezone-select.mjs +351 -0
- package/fesm2022/elementar-rt-components-timezone-select.mjs.map +1 -0
- package/fesm2022/elementar-rt-components-upload.mjs +340 -0
- package/fesm2022/elementar-rt-components-upload.mjs.map +1 -0
- package/fesm2022/elementar-rt-components.mjs +6 -0
- package/fesm2022/elementar-rt-components.mjs.map +1 -0
- package/filter-builder/index.d.ts +107 -0
- package/form-renderer/index.d.ts +121 -0
- package/gauge/index.d.ts +21 -0
- package/icon/index.d.ts +17 -0
- package/image-resizer/index.d.ts +35 -0
- package/image-viewer/index.d.ts +63 -0
- package/incidents/index.d.ts +119 -0
- package/index.d.ts +2 -0
- package/inline-text-edit/index.d.ts +39 -0
- package/input-mask/index.d.ts +36 -0
- package/input-validator/index.d.ts +5 -0
- package/kanban-board/index.d.ts +68 -0
- package/layout/index.d.ts +75 -0
- package/logo/index.d.ts +21 -0
- package/marquee/index.d.ts +26 -0
- package/micro-chart/index.d.ts +193 -0
- package/navigation/index.d.ts +119 -0
- package/notifications/index.d.ts +84 -0
- package/number-input/index.d.ts +93 -0
- package/overlay/index.d.ts +12 -0
- package/overlay-scrollbar/index.d.ts +66 -0
- package/package.json +356 -0
- package/page-loading-bar/index.d.ts +20 -0
- package/panel/index.d.ts +43 -0
- package/password-strength/index.d.ts +109 -0
- package/phone-input/index.d.ts +94 -0
- package/pin-input/index.d.ts +48 -0
- package/popover/index.d.ts +75 -0
- package/radio-card/index.d.ts +37 -0
- package/rail-nav/index.d.ts +36 -0
- package/resizable-container/index.d.ts +21 -0
- package/screen-loader/index.d.ts +9 -0
- package/scroll-spy/index.d.ts +48 -0
- package/segmented/index.d.ts +54 -0
- package/side-panel/index.d.ts +42 -0
- package/sidebar/index.d.ts +143 -0
- package/signature-pad/index.d.ts +49 -0
- package/skeleton/index.d.ts +24 -0
- package/splash-screen/index.d.ts +31 -0
- package/stepper/index.d.ts +65 -0
- package/styles/_common.scss +776 -0
- package/styles/themes/cyan-orange.scss +41 -0
- package/styles/themes/default.scss +5 -0
- package/styles/themes/magenta-violet.scss +41 -0
- package/styles/themes/rose-red.scss +41 -0
- package/suggestions/index.d.ts +32 -0
- package/tab-panel/index.d.ts +96 -0
- package/text-editor/index.d.ts +191 -0
- package/thumbnail-maker/index.d.ts +35 -0
- package/timeline/index.d.ts +57 -0
- package/timezone-select/index.d.ts +72 -0
- package/upload/index.d.ts +134 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementar-rt-components-micro-chart.mjs","sources":["../../../projects/components/micro-chart/src/base-chart.tooltip.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.component.ts","../../../projects/components/micro-chart/src/mchart-line/mchart-line.component.html","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.component.ts","../../../projects/components/micro-chart/src/mchart-bar/mchart-bar.component.html","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.component.ts","../../../projects/components/micro-chart/src/mchart-pie/mchart-pie.component.html","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.component.ts","../../../projects/components/micro-chart/src/mchart-tooltip/mchart-tooltip.component.html","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.component.ts","../../../projects/components/micro-chart/src/mchart-tooltip-title/mchart-tooltip-title.component.html","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.component.ts","../../../projects/components/micro-chart/src/mchart-tooltip-body/mchart-tooltip-body.component.html","../../../projects/components/micro-chart/elementar-rt-components-micro-chart.ts"],"sourcesContent":["import { TemplatePortal } from '@angular/cdk/portal';\r\nimport { inject, Injector, Renderer2, TemplateRef, ViewContainerRef, DOCUMENT } from '@angular/core';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\n\r\nimport { OverlayPosition, PositionManager } from '@elementar-rt/components/overlay';\r\n\r\nexport abstract class BaseChartTooltip {\r\n protected _tooltipOrigin: HTMLElement;\r\n protected _tooltipPortal!: TemplatePortal;\r\n protected _overlayRef: OverlayRef;\r\n protected _renderer = inject(Renderer2);\r\n protected _overlay = inject(Overlay);\r\n protected _viewContainerRef = inject(ViewContainerRef);\r\n protected _injector = inject(Injector);\r\n protected _document = inject(DOCUMENT);\r\n\r\n abstract getTooltipTemplateRef(): TemplateRef<any> | undefined;\r\n abstract getTooltipPosition(): OverlayPosition;\r\n\r\n protected _createTooltipOrigin(): void {\r\n let tooltipOrigin: HTMLElement | null = this._document.querySelector('.emr-mchart-tooltip-origin');\r\n\r\n if (!tooltipOrigin) {\r\n tooltipOrigin = this._renderer.createElement('div') as HTMLElement;\r\n tooltipOrigin.classList.add('emr-mchart-tooltip-origin');\r\n this._renderer.appendChild(this._document.body, tooltipOrigin);\r\n }\r\n\r\n this._tooltipOrigin = tooltipOrigin;\r\n this._renderer.setStyle(this._tooltipOrigin, 'width', '10px');\r\n this._renderer.setStyle(this._tooltipOrigin, 'height', '10px');\r\n this._renderer.setStyle(this._tooltipOrigin, 'z-index', '-1');\r\n this._renderer.setStyle(this._tooltipOrigin, 'position', 'fixed');\r\n this._renderer.setStyle(this._tooltipOrigin, 'opacity', '0');\r\n }\r\n\r\n protected _showTooltip(data: object): void {\r\n this._overlayRef?.detach();\r\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\r\n this._overlayRef.attach(this._getContentPortal(data));\r\n }\r\n\r\n protected _hideTooltip(): void {\r\n this._overlayRef?.detach();\r\n }\r\n\r\n protected _setTooltipPositionByEvent(e: MouseEvent): void {\r\n this._renderer.setStyle(this._tooltipOrigin, 'left', (e.clientX + 10) + 'px');\r\n this._renderer.setStyle(this._tooltipOrigin, 'top', (e.clientY - 4) + 'px');\r\n }\r\n\r\n protected _setTooltipVisible(): void {\r\n this._renderer.addClass(this._tooltipOrigin, 'is-visible');\r\n }\r\n\r\n protected _setTooltipInVisible(): void {\r\n this._renderer.removeClass(this._tooltipOrigin, 'is-visible');\r\n }\r\n\r\n protected _getContentPortal(data: object) {\r\n this._tooltipPortal = new TemplatePortal(\r\n this.getTooltipTemplateRef() as TemplateRef<any>,\r\n this._viewContainerRef,\r\n {\r\n '$implicit': {\r\n ...data\r\n }\r\n },\r\n this._injector\r\n );\r\n\r\n return this._tooltipPortal;\r\n }\r\n\r\n protected _getOverlayConfig() {\r\n return new OverlayConfig({\r\n panelClass: 'emr-mchart-tooltip-overlay',\r\n positionStrategy: this._getOverlayPositionStrategy(),\r\n scrollStrategy: this._overlay.scrollStrategies.reposition()\r\n });\r\n }\r\n\r\n protected _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._tooltipOrigin)\r\n .withFlexibleDimensions()\r\n .withGrowAfterOpen()\r\n .withPositions(this._getOverlayPositions())\r\n ;\r\n }\r\n\r\n protected _getOverlayPositions(): ConnectedPosition[] {\r\n return (new PositionManager()).build(this.getTooltipPosition());\r\n }\r\n}\r\n","import {\r\n AfterViewChecked,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n numberAttribute, OnDestroy,\r\n PLATFORM_ID,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport {\r\n Selection,\r\n curveLinear,\r\n curveCatmullRom,\r\n curveBumpX,\r\n scaleLinear,\r\n select,\r\n scalePoint,\r\n min, max,\r\n pointer,\r\n line, area,\r\n curveStep\r\n} from 'd3';\r\nimport { OverlayPosition } from '@elementar-rt/components/overlay';\r\nimport { fromEvent } from 'rxjs';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MchartLineCurveType } from '../types';\r\nimport { BaseChartTooltip } from '../base-chart.tooltip';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n selector: 'emr-mchart-line',\r\n exportAs: 'emrMchartLine',\r\n templateUrl: './mchart-line.component.html',\r\n styleUrl: './mchart-line.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-mchart-line',\r\n '[class.fill-area-gradient]': 'fillAreaGradient()',\r\n }\r\n})\r\nexport class MchartLineComponent extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\r\n private _initialized = false;\r\n private _host: any;\r\n private _svg: any;\r\n private _dimensions: DOMRect;\r\n private _hostWidth = 0;\r\n private _hostHeight = 0;\r\n private _innerWidth = 0;\r\n private _innerHeight = 0;\r\n private _yScale: any;\r\n private _xScale: any;\r\n private _curveMap = {\r\n 'linear': curveLinear,\r\n 'catmullRom': curveCatmullRom,\r\n 'curveBumpX': curveBumpX,\r\n 'curveStep': curveStep\r\n };\r\n private _resizeObserver: ResizeObserver;\r\n private _tooltipDot: HTMLElement;\r\n private _area: any;\r\n private _line: any;\r\n private _platformId = inject(PLATFORM_ID);\r\n private _destroyRef = inject(DestroyRef);\r\n private _elementRef = inject(ElementRef);\r\n\r\n data = input<number[]>([]);\r\n labels = input<any[]>([]);\r\n strokeWidth = input(2, {\r\n transform: numberAttribute\r\n });\r\n showArea = input(false, {\r\n transform: booleanAttribute\r\n });\r\n showMarkers = input(false, {\r\n transform: booleanAttribute\r\n });\r\n responsive = input(false, {\r\n transform: booleanAttribute\r\n });\r\n fillAreaGradient = input(false, {\r\n transform: booleanAttribute\r\n });\r\n curve = input<MchartLineCurveType>('linear');\r\n xAccessor = input((d: any, i: number) => i);\r\n yAccessor = input((d: any) => d);\r\n compact = input(false, {\r\n transform: booleanAttribute\r\n });\r\n markerDotSize = input(5, {\r\n transform: numberAttribute\r\n });\r\n tooltip = input<TemplateRef<unknown>>();\r\n tooltipPosition = input<OverlayPosition>('after-center');\r\n\r\n get gradientId(): string {\r\n return 'areaGradient' + this._gradientId;\r\n }\r\n private _gradientId = nextId++;\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (!this._initialized) {\r\n return;\r\n }\r\n\r\n this._render();\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (isPlatformServer(this._platformId)) {\r\n return;\r\n }\r\n\r\n if (!this._initialized) {\r\n const element = this._elementRef.nativeElement as HTMLElement;\r\n this._dimensions = element.getBoundingClientRect();\r\n\r\n if (this._dimensions.width !== 0 && this._dimensions.height !== 0) {\r\n this._initialized = true;\r\n this._render();\r\n this._setupResizeObserver();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n getTooltipPosition(): OverlayPosition {\r\n return this.tooltipPosition();\r\n }\r\n\r\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\r\n return this.tooltip();\r\n }\r\n\r\n private _render(): void {\r\n this._setupContainers();\r\n this._setupData();\r\n }\r\n\r\n private _setupContainers(): void {\r\n this._hostWidth = this._dimensions.width;\r\n this._hostHeight = this._dimensions.height;\r\n this._innerWidth = this._dimensions.width;\r\n this._innerHeight = this._dimensions.height;\r\n this._host = select(this._elementRef.nativeElement);\r\n this._svg = this._host\r\n .select('svg')\r\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\r\n ;\r\n\r\n if (this.tooltip()) {\r\n this._tooltipDot = this._renderer.createElement('div');\r\n this._renderer.setStyle(this._tooltipDot, 'width', '10px');\r\n this._renderer.setStyle(this._tooltipDot, 'height', '10px');\r\n this._renderer.setStyle(this._tooltipDot, 'z-index', '-1');\r\n this._renderer.setStyle(this._tooltipDot, 'position', 'fixed');\r\n this._renderer.setStyle(this._tooltipDot, 'opacity', '0');\r\n this._renderer.appendChild(this._document.body, this._tooltipDot);\r\n }\r\n }\r\n\r\n private _setupData(isUpdate = false): void {\r\n let markerDotSize = this.markerDotSize();\r\n\r\n if (!this.showMarkers()) {\r\n markerDotSize = this.strokeWidth();\r\n }\r\n\r\n const xAccessor = this.xAccessor();\r\n const yAccessor = this.yAccessor();\r\n const xDomain = this.data().map((d: any, i: number) => xAccessor(d, i)) as any;\r\n\r\n if (!this._xScale) {\r\n this._xScale = scalePoint().domain(xDomain);\r\n }\r\n\r\n this._xScale.range([markerDotSize, this._innerWidth - markerDotSize]);\r\n\r\n const yDomain = [\r\n this.compact() ? min(this.data().map(d => yAccessor(d))) : 0,\r\n max(this.data().map(d => yAccessor(d)))\r\n ];\r\n\r\n if (!this._yScale) {\r\n this._yScale = scaleLinear()\r\n .domain(yDomain)\r\n ;\r\n }\r\n\r\n this._yScale.range([this._innerHeight - markerDotSize, markerDotSize])\r\n\r\n if (this.showArea()) {\r\n const areaGenerator = area()\r\n .x((d, i) => this._xScale(xAccessor(d, i)))\r\n .y1((d) => this._yScale(yAccessor(d)))\r\n .y0(this._innerHeight - markerDotSize)\r\n .curve(this._curveMap[this.curve()])\r\n ;\r\n\r\n if (!this._area) {\r\n // add area\r\n this._area = this._svg\r\n .append('path')\r\n .datum(this.data())\r\n .attr('d', areaGenerator)\r\n .attr('class', 'area')\r\n ;\r\n\r\n if (this.fillAreaGradient()) {\r\n this._area.attr('fill', `url(#${this.gradientId})`);\r\n }\r\n } else {\r\n this._area.attr('d', areaGenerator);\r\n }\r\n }\r\n\r\n const lineGenerator = line()\r\n .x((d, i) => this._xScale(xAccessor(d, i)))\r\n .y((d) => this._yScale(yAccessor(d)))\r\n ;\r\n\r\n if (!this._line) {\r\n // add line\r\n this._line = this._svg\r\n .append('path')\r\n .datum(this.data())\r\n .attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\r\n .attr('class', 'line')\r\n .attr('stroke-width', this.strokeWidth())\r\n ;\r\n } else {\r\n this._line.attr('d', lineGenerator.curve(this._curveMap[this.curve()]))\r\n }\r\n\r\n if (isUpdate) {\r\n return;\r\n }\r\n\r\n if (this.showMarkers() || this.tooltip()) {\r\n const markerLine = this._svg\r\n .append('line')\r\n .attr('x1', 0)\r\n .attr('x2', 0)\r\n .attr('y1', 0)\r\n .attr('y2', this._innerHeight - markerDotSize)\r\n .attr('opacity', 0)\r\n .attr('class', 'marker-line')\r\n ;\r\n const markerDot: Selection<any, any, any, any> = this._svg\r\n .append('circle')\r\n .attr('cx', 0)\r\n .attr('cy', 0)\r\n .attr('r', markerDotSize)\r\n .attr('opacity', 0)\r\n .attr('class', 'marker-dot')\r\n ;\r\n\r\n let x = 0;\r\n let y = 0;\r\n let label: any;\r\n let value: any;\r\n\r\n if (this.tooltip()) {\r\n this._createTooltipOrigin();\r\n }\r\n\r\n fromEvent<MouseEvent>(this._document, 'mousemove')\r\n .pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((e: MouseEvent) => {\r\n const target = e.target as HTMLElement;\r\n const oldXPosition = +markerDot.attr('cx');\r\n const pointerCoords = pointer(e, this._svg.node());\r\n const [posX, posY] = pointerCoords;\r\n let visible = true;\r\n\r\n if (posX < this.markerDotSize() || posY < this.markerDotSize() || posX > this._hostWidth || posY > this._hostHeight) {\r\n visible = false;\r\n this._overlayRef?.detach();\r\n markerLine.attr('opacity', 0);\r\n markerDot.attr('opacity', 0);\r\n } else {\r\n if (target.closest('.emr-mchart-line') ||\r\n target.classList.contains('emr-mchart-tooltip-overlay') ||\r\n target.closest('.emr-mchart-tooltip-overlay')\r\n ) {\r\n if (this.showMarkers()) {\r\n markerLine.attr('opacity', 1);\r\n markerDot.attr('opacity', 1);\r\n }\r\n } else {\r\n visible = false;\r\n this._overlayRef?.detach();\r\n }\r\n }\r\n\r\n const eachBand = this._xScale.step();\r\n const index = Math.round((posX / eachBand));\r\n const dataValue = this.data()[index];\r\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\r\n value = yAccessor(dataValue);\r\n x = this._xScale(xAccessor(index, index));\r\n y = this._yScale(yAccessor(dataValue));\r\n markerLine\r\n .attr('x1', x)\r\n .attr('x2', x)\r\n ;\r\n markerDot\r\n .attr('cx', x)\r\n .attr('cy', y)\r\n ;\r\n\r\n if (this.tooltip()) {\r\n this._setTooltipPositionByEvent(e);\r\n\r\n if (visible) {\r\n this._setTooltipVisible();\r\n\r\n if (!this._overlayRef?.hasAttached()) {\r\n this._showTooltip({\r\n label,\r\n value\r\n });\r\n } else {\r\n if (oldXPosition !== x) {\r\n this._showTooltip({\r\n label,\r\n value\r\n });\r\n } else {\r\n this._overlayRef.updatePosition();\r\n }\r\n }\r\n } else {\r\n this._setTooltipInVisible();\r\n }\r\n }\r\n })\r\n ;\r\n }\r\n }\r\n\r\n private _setupResizeObserver(): void {\r\n if (!this.responsive()) {\r\n return;\r\n }\r\n\r\n this._resizeObserver = new ResizeObserver((entries) => {\r\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\r\n this._hostWidth = entries[0].contentRect.width;\r\n this._hostHeight = entries[0].contentRect.height;\r\n this._innerWidth = entries[0].contentRect.width;\r\n this._innerHeight = entries[0].contentRect.height;\r\n this._svg\r\n .attr(\"viewBox\", `0 0 ${this._hostWidth} ${this._hostHeight}`)\r\n ;\r\n this._setupData(true);\r\n }\r\n });\r\n this._resizeObserver.observe(this._elementRef.nativeElement);\r\n }\r\n}\r\n","<svg>\r\n @if (fillAreaGradient()) {\r\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" class=\"lg-start-color\"/>\r\n <stop offset=\"100%\" class=\"lg-end-color\"/>\r\n </linearGradient>\r\n }\r\n</svg>\r\n","import {\r\n AfterViewChecked,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n numberAttribute, OnDestroy,\r\n PLATFORM_ID, TemplateRef,\r\n} from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { pointer, scaleBand, scaleLinear, select } from 'd3';\r\nimport { OverlayPosition } from '@elementar-rt/components/overlay';\r\nimport { fromEvent } from 'rxjs';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { BaseChartTooltip } from '../base-chart.tooltip';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n selector: 'emr-mchart-bar',\r\n exportAs: 'emrMchartBar',\r\n templateUrl: './mchart-bar.component.html',\r\n styleUrl: './mchart-bar.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-mchart-bar',\r\n '[class.fill-gradient]': 'fillGradient()',\r\n '[class.with-tooltip]': '!!tooltip()',\r\n }\r\n})\r\nexport class MchartBarComponent extends BaseChartTooltip implements OnDestroy, AfterViewChecked {\r\n private _initialized = false;\r\n private _host: any;\r\n private _svg: any;\r\n private _hlContainer: any;\r\n private _dataContainer: any;\r\n private _dimensions: DOMRect;\r\n private _innerWidth = 0;\r\n private _innerHeight = 0;\r\n private _hostWidth = 0;\r\n private _hostHeight = 0;\r\n private _xScale: any;\r\n private _yScale: any;\r\n private _resizeObserver: ResizeObserver;\r\n private _platformId = inject(PLATFORM_ID);\r\n private _elementRef = inject(ElementRef);\r\n private _destroyRef = inject(DestroyRef);\r\n\r\n data = input<number[]>([]);\r\n labels = input<string[]>([]);\r\n gap = input(0.2, {\r\n transform: numberAttribute\r\n });\r\n radius = input(0, {\r\n transform: numberAttribute\r\n });\r\n highlight = input(false, {\r\n transform: booleanAttribute\r\n });\r\n responsive = input(false, {\r\n transform: booleanAttribute\r\n });\r\n fillGradient = input(false, {\r\n transform: booleanAttribute\r\n });\r\n xAccessor = input((d: any, i: number) => i);\r\n yAccessor = input((d: any) => d);\r\n tooltip = input<TemplateRef<any>>();\r\n tooltipPosition = input<OverlayPosition>('after-center');\r\n\r\n get gradientId(): string {\r\n return 'areaGradient' + this._gradientId;\r\n }\r\n private _gradientId = nextId++;\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (!this._initialized) {\r\n return;\r\n }\r\n\r\n this._render();\r\n this._setupResizeObserver();\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (isPlatformServer(this._platformId)) {\r\n return;\r\n }\r\n\r\n if (!this._initialized) {\r\n const element = this._elementRef.nativeElement as HTMLElement;\r\n this._dimensions = element.getBoundingClientRect();\r\n\r\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\r\n this._initialized = true;\r\n this._render();\r\n this._setupResizeObserver();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n getTooltipPosition(): OverlayPosition {\r\n return this.tooltipPosition();\r\n }\r\n\r\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\r\n return this.tooltip();\r\n }\r\n\r\n private _render(): void {\r\n this._init();\r\n this._setupAxisScale();\r\n this._setupData();\r\n this._initTooltip();\r\n }\r\n\r\n private _init(): void {\r\n this._hostWidth = this._dimensions.width;\r\n this._hostHeight = this._dimensions.height;\r\n this._innerWidth = this._dimensions.width;\r\n this._innerHeight = this._dimensions.height;\r\n this._host = select(this._elementRef.nativeElement);\r\n this._svg = this._host\r\n .select('svg')\r\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\r\n ;\r\n }\r\n\r\n private _setupAxisScale(): void {\r\n if (!this._xScale) {\r\n this._xScale = scaleBand()\r\n .paddingInner(this.gap())\r\n .domain(this.data().map((d, i) => i.toString()))\r\n ;\r\n }\r\n\r\n this._xScale.range([0, this._innerWidth]);\r\n\r\n if (!this._yScale) {\r\n this._yScale = scaleLinear().domain([0, Math.max(...this.data())]);\r\n }\r\n\r\n this._yScale.range([this._innerHeight, 0]);\r\n }\r\n\r\n private _setupData(): void {\r\n if (this.highlight()) {\r\n if (!this._hlContainer) {\r\n this._hlContainer = this._svg.append('g')\r\n .attr('class', 'hl-container')\r\n .attr('transform', `translate(0,0)`)\r\n ;\r\n this._hlContainer.selectAll('rect')\r\n .data(this.data())\r\n .enter()\r\n .append('rect')\r\n .attr('rx', this.radius())\r\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\r\n .attr('y', 0)\r\n .attr('width', this._xScale.bandwidth())\r\n .attr('height', this._innerHeight)\r\n .attr('class', 'highlight')\r\n ;\r\n } else {\r\n this._hlContainer.selectAll('rect')\r\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\r\n .attr('y', 0)\r\n .attr('width', this._xScale.bandwidth())\r\n .attr('height', this._innerHeight)\r\n ;\r\n }\r\n }\r\n\r\n if (!this._dataContainer) {\r\n this._dataContainer = this._svg.append('g')\r\n .attr('class', 'data-container')\r\n .attr('transform', `translate(0,0)`)\r\n ;\r\n const allBars = this._dataContainer.selectAll('rect')\r\n .data(this.data())\r\n .enter()\r\n .append('rect')\r\n .attr('rx', this.radius())\r\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\r\n .attr('y', (d: any) => this._yScale(d))\r\n .attr('width', this._xScale.bandwidth())\r\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\r\n .attr('class', 'bar')\r\n ;\r\n\r\n if (this.fillGradient()) {\r\n allBars.attr('fill', `url(#${this.gradientId})`);\r\n }\r\n } else {\r\n this._dataContainer.selectAll('rect')\r\n .attr('x', (d: any, i: number) => this._xScale(i.toString()))\r\n .attr('y', (d: any) => this._yScale(d))\r\n .attr('width', this._xScale.bandwidth())\r\n .attr('height', (d: any) => this._innerHeight - this._yScale(d))\r\n ;\r\n }\r\n }\r\n\r\n private _setupResizeObserver(): void {\r\n if (!this.responsive()) {\r\n return;\r\n }\r\n\r\n this._resizeObserver?.disconnect();\r\n this._resizeObserver = new ResizeObserver((entries) => {\r\n if (this._hostWidth !== entries[0].contentRect.width || this._hostHeight !== entries[0].contentRect.height) {\r\n this._hostWidth = entries[0].contentRect.width;\r\n this._hostHeight = entries[0].contentRect.height;\r\n this._innerWidth = entries[0].contentRect.width;\r\n this._innerHeight = entries[0].contentRect.height;\r\n this._svg.attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`);\r\n this._setupAxisScale();\r\n this._setupData();\r\n }\r\n });\r\n this._resizeObserver.observe(this._elementRef.nativeElement);\r\n }\r\n\r\n private _initTooltip(): void {\r\n if (!this.tooltip()) {\r\n return;\r\n }\r\n\r\n const xAccessor = this.xAccessor();\r\n const yAccessor = this.yAccessor();\r\n this._createTooltipOrigin();\r\n\r\n let x = 0;\r\n let y = 0;\r\n let label: any;\r\n let value: any;\r\n let oldX: any;\r\n\r\n fromEvent<MouseEvent>(this._document, 'mousemove')\r\n .pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((e: MouseEvent) => {\r\n const target = e.target as HTMLElement;\r\n const pointerCoords = pointer(e, this._svg.node());\r\n const [posX, posY] = pointerCoords;\r\n let visible = true;\r\n\r\n if (posX < 0 || posY < 0 || posX > this._hostWidth || posY > this._hostHeight) {\r\n visible = false;\r\n oldX = null;\r\n this._overlayRef?.detach();\r\n } else {\r\n if (!target.closest('.emr-mchart-line') ||\r\n !target.classList.contains('emr-mchart-tooltip-overlay') ||\r\n !target.closest('.emr-mchart-tooltip-overlay')\r\n ) {\r\n oldX = null;\r\n this._overlayRef?.detach();\r\n }\r\n }\r\n\r\n const eachBand = this._xScale.step();\r\n const index = Math.floor(posX / eachBand);\r\n const dataValue = this.data()[index];\r\n label = this.labels()[index] ? this.labels()[index] : xAccessor(index, index);\r\n value = yAccessor(dataValue);\r\n x = this._xScale(xAccessor(index, index));\r\n y = this._yScale(yAccessor(dataValue));\r\n this._setTooltipPositionByEvent(e);\r\n\r\n if (visible) {\r\n this._setTooltipVisible();\r\n\r\n if (!this._overlayRef?.hasAttached()) {\r\n oldX = x;\r\n this._showTooltip({\r\n label,\r\n value\r\n });\r\n } else {\r\n if (oldX !== x) {\r\n oldX = x;\r\n this._showTooltip({\r\n label,\r\n value\r\n });\r\n } else {\r\n this._overlayRef.updatePosition();\r\n }\r\n }\r\n } else {\r\n oldX = x;\r\n this._setTooltipInVisible();\r\n }\r\n })\r\n ;\r\n }\r\n}\r\n","<svg>\r\n <defs>\r\n @if (fillGradient()) {\r\n <linearGradient [id]=\"gradientId\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" class=\"lg-start-color\"/>\r\n <stop offset=\"100%\" class=\"lg-end-color\"/>\r\n </linearGradient>\r\n }\r\n </defs>\r\n</svg>\r\n","import {\r\n AfterViewChecked, booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n input, numberAttribute, OnChanges, OnDestroy,\r\n PLATFORM_ID, SimpleChanges, TemplateRef\r\n} from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport {\r\n arc,\r\n interpolate,\r\n pie,\r\n scaleOrdinal,\r\n schemeTableau10,\r\n select\r\n} from 'd3';\r\nimport { OverlayPosition } from '@elementar-rt/components/overlay';\r\nimport { BaseChartTooltip } from '../base-chart.tooltip';\r\n\r\n@Component({\r\n selector: 'emr-mchart-pie',\r\n exportAs: 'emrMchartPie',\r\n templateUrl: './mchart-pie.component.html',\r\n styleUrl: './mchart-pie.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-mchart-pie'\r\n }\r\n})\r\nexport class MchartPieComponent extends BaseChartTooltip implements AfterViewChecked, OnChanges, OnDestroy {\r\n private _initialized = false;\r\n private _host: any;\r\n private _svg: any;\r\n private _dataContainer: any;\r\n private _legendContainer: any;\r\n private _dimensions: DOMRect;\r\n private _innerWidth = 0;\r\n private _innerHeight = 0;\r\n private _hostWidth = 0;\r\n private _hostHeight = 0;\r\n private _resizeObserver: ResizeObserver;\r\n private _platformId = inject(PLATFORM_ID);\r\n private _elementRef = inject(ElementRef);\r\n private _radius = 0;\r\n private _arcGenerator: any;\r\n private _pieGenerator: any;\r\n private _colorsGenerator: any;\r\n private _arcTweenGenerator: any;\r\n private _pieData: any;\r\n\r\n data = input<number[]>([]);\r\n labels = input<string[] | number[]>([]);\r\n valueAccessor = input((d: any) => d);\r\n dataItemStrokeWidth = input(1, {\r\n transform: numberAttribute\r\n });\r\n legendContainerWidth = input(0, {\r\n transform: numberAttribute\r\n });\r\n showDataAnimation = input(false, {\r\n transform: booleanAttribute\r\n });\r\n showValueOnSlices = input(false, {\r\n transform: booleanAttribute\r\n });\r\n showLegend = input(false, {\r\n transform: booleanAttribute\r\n });\r\n legendOffset = input(30, {\r\n transform: numberAttribute\r\n });\r\n legendItemHeight = input(30, {\r\n transform: numberAttribute\r\n });\r\n legendItemSymbolSize = input(12, {\r\n transform: numberAttribute\r\n });\r\n legendItemFontSize = input(14, {\r\n transform: numberAttribute\r\n });\r\n legendItemSymbolBorderRadius = input(12, {\r\n transform: numberAttribute\r\n });\r\n valueFontSize = input(12, {\r\n transform: numberAttribute\r\n });\r\n tooltip = input<TemplateRef<unknown>>();\r\n tooltipPosition = input<OverlayPosition>('after-center');\r\n\r\n getTooltipPosition(): OverlayPosition {\r\n return this.tooltipPosition();\r\n }\r\n\r\n getTooltipTemplateRef(): TemplateRef<any> | undefined {\r\n return this.tooltip();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (isPlatformServer(this._platformId)) {\r\n return;\r\n }\r\n\r\n if (!this._initialized) {\r\n const element = this._elementRef.nativeElement as HTMLElement;\r\n this._dimensions = element.getBoundingClientRect();\r\n\r\n if (this._dimensions.width !== 0 && this._dimensions.height !==0) {\r\n this._initialized = true;\r\n this._render();\r\n this._setupResizeObserver();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this._initialized) {\r\n return;\r\n }\r\n\r\n if (changes['data'] && !changes['data'].firstChange) {\r\n this._draw(true);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n private _render(): void {\r\n this._initDimensions();\r\n this._initContainers();\r\n this._setGenerators();\r\n this._setLegend();\r\n this._draw();\r\n this._initTooltip();\r\n }\r\n\r\n private _initDimensions(): void {\r\n const legendContainerWidth = this.showLegend() ? this.legendContainerWidth() : 0;\r\n this._hostWidth = this._dimensions.width;\r\n this._hostHeight = this._dimensions.height;\r\n this._innerWidth = this._dimensions.width - legendContainerWidth - this.dataItemStrokeWidth() * 2;\r\n this._innerHeight = this._dimensions.height - this.dataItemStrokeWidth() * 2;\r\n this._host = select(this._elementRef.nativeElement);\r\n this._svg = this._host\r\n .select('svg')\r\n .attr('viewBox', `0 0 ${this._hostWidth} ${this._hostHeight}`)\r\n ;\r\n this._radius = Math.min(this._innerWidth, this._innerHeight) * .5;\r\n }\r\n\r\n private _initContainers(): void {\r\n this._dataContainer = this._svg\r\n .append('g')\r\n .attr('class', 'data-container')\r\n .attr('transform', `translate(${this._radius},${this._innerHeight * .5})`)\r\n ;\r\n\r\n if (this.showLegend()) {\r\n this._legendContainer = this._svg\r\n .append('g')\r\n .attr('class', 'legend-container')\r\n ;\r\n }\r\n }\r\n\r\n private _setGenerators(): void {\r\n const self = this;\r\n this._arcGenerator = arc()\r\n .innerRadius(0)\r\n .outerRadius(this._radius)\r\n ;\r\n this._pieGenerator = pie()\r\n .value(this.valueAccessor())\r\n ;\r\n this._colorsGenerator = scaleOrdinal(schemeTableau10)\r\n .domain(this.data().map((d: number, i: number) => i.toString()))\r\n ;\r\n this._arcTweenGenerator = function(d: number) {\r\n // @ts-ignore\r\n const _this = this as any;\r\n const current = d;\r\n const interpolateGenerator = interpolate(_this._previous, current);\r\n _this._previous = current;\r\n return (t: any) => {\r\n return self._arcGenerator(interpolateGenerator(t));\r\n };\r\n }\r\n ;\r\n }\r\n\r\n private _setLegend(): void {\r\n if (!this.showLegend()) {\r\n return;\r\n }\r\n\r\n this._legendContainer\r\n .selectAll('g.legend-item')\r\n .data(this.data())\r\n .join('g')\r\n .attr('class', 'legend-item')\r\n .attr('data-index', (d: number, i: number) => i)\r\n .attr('transform', (d: number, i: number) => `translate(0, ${i * this.legendItemHeight()})`)\r\n .on('mouseenter', (event: MouseEvent, d: number) => {\r\n const target = event.target as HTMLElement;\r\n const index = +(target.getAttribute('data-index') as string);\r\n this._dataContainer\r\n .select(`path.data-item[data-index=\"${index}\"]`)\r\n .classed('active', true)\r\n ;\r\n })\r\n .on('mouseleave', (event: MouseEvent, d: number) => {\r\n const target = event.target as HTMLElement;\r\n const index = +(target.getAttribute('data-index') as string);\r\n this._dataContainer\r\n .select(`path.data-item[data-index=\"${index}\"]`)\r\n .classed('active', false)\r\n ;\r\n })\r\n ;\r\n this._legendContainer\r\n .selectAll('g.legend-item')\r\n .selectAll('text')\r\n .data((d: number, i: number) => [i])\r\n .join('text')\r\n .attr('class', 'legend-item-text')\r\n .attr('x', this.legendItemSymbolSize() * 2)\r\n .attr('y', this.legendItemHeight() * .5)\r\n .attr('font-size', this.legendItemFontSize())\r\n .text((i: number) => this.labels()[i])\r\n ;\r\n this._legendContainer\r\n .selectAll('g.legend-item')\r\n .selectAll('rect')\r\n .data((d: number, i: number) => [i])\r\n .join('rect')\r\n .attr('class', 'legend-item-symbol')\r\n .attr('rx', this.legendItemSymbolBorderRadius())\r\n .attr('width', this.legendItemSymbolSize())\r\n .attr('height', this.legendItemSymbolSize())\r\n .attr('fill', (i: number) => this._colorsGenerator(i))\r\n .attr('y', this.legendItemFontSize() * .5 - 2)\r\n ;\r\n const dimensions = this._legendContainer.node().getBBox();\r\n this._legendContainer.attr(\r\n 'transform',\r\n `translate(${this._radius * 2 + this.legendOffset()},${this._innerHeight * .5 - .5 * dimensions.height})`\r\n )\r\n }\r\n\r\n private _draw(isUpdate = false): void {\r\n if (isUpdate) {\r\n this._colorsGenerator\r\n .domain(this.data().map((d: number, i: number) => i.toString()))\r\n ;\r\n }\r\n\r\n this._pieData = this._pieGenerator(this.data());\r\n this._dataContainer\r\n .selectAll('g.data-item-group')\r\n .data(this.data())\r\n .join('g')\r\n .attr('class', 'data-item-group')\r\n .attr('data-index', (d: number, i: number) => i)\r\n ;\r\n this._dataContainer\r\n .selectAll('g.data-item-group')\r\n .selectAll('path')\r\n .data((d: number, i: number) => [this._pieData[i]])\r\n .join('path')\r\n .attr('class', 'data-item')\r\n .attr('stroke-width', this.dataItemStrokeWidth())\r\n .attr('d', (d: any) => this._arcGenerator(d))\r\n .style('fill', (d: any) => this._colorsGenerator(d.index))\r\n .attr('data-index', (d: any) => d.index)\r\n .transition()\r\n .duration(this.showDataAnimation() ? 1000 : 0)\r\n .attrTween('d', this._arcTweenGenerator)\r\n ;\r\n\r\n if (this.showValueOnSlices()) {\r\n this._dataContainer\r\n .selectAll('g.data-item-group')\r\n .selectAll('text')\r\n .data((d: number, i: number) => [this._pieData[i]])\r\n .join('text')\r\n .attr('class', 'value')\r\n .attr('font-size', this.valueFontSize())\r\n .attr('transform', (d: any) => {\r\n const coordinates = this._arcGenerator.centroid(d);\r\n return `translate(${coordinates[0]},${coordinates[1]})`;\r\n })\r\n .text((d: any) => d.data)\r\n ;\r\n }\r\n }\r\n\r\n private _setupResizeObserver(): void {\r\n }\r\n\r\n private _initTooltip(): void {\r\n if (!this.tooltip()) {\r\n return;\r\n }\r\n\r\n let oldValue: number;\r\n this._createTooltipOrigin();\r\n this._dataContainer\r\n .selectAll('g.data-item-group')\r\n .data(this._pieData)\r\n .on('mousemove', (event: MouseEvent, d: any) => {\r\n const target = event.target as HTMLElement;\r\n this._setTooltipPositionByEvent(event);\r\n this._setTooltipVisible();\r\n\r\n const index = +(target.getAttribute('data-index') as string);\r\n const label = this.labels()[index] ? this.labels()[index] : null;\r\n const color = this._colorsGenerator(index);\r\n const value = d.data;\r\n\r\n if (!this._overlayRef?.hasAttached()) {\r\n this._showTooltip({\r\n label,\r\n color,\r\n value\r\n });\r\n oldValue = value;\r\n } else {\r\n if (oldValue !== d.data) {\r\n this._showTooltip({\r\n label,\r\n color,\r\n value\r\n });\r\n oldValue = value;\r\n } else {\r\n this._overlayRef.updatePosition();\r\n }\r\n }\r\n })\r\n ;\r\n this._dataContainer\r\n .on('mouseleave', (event: MouseEvent) => {\r\n this._setTooltipInVisible();\r\n this._hideTooltip();\r\n })\r\n ;\r\n }\r\n}\r\n","<svg></svg>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emr-mchart-tooltip',\r\n exportAs: 'emrMchartTooltip',\r\n templateUrl: './mchart-tooltip.component.html',\r\n styleUrl: './mchart-tooltip.component.scss',\r\n host: {\r\n 'class': 'emr-mchart-tooltip'\r\n }\r\n})\r\nexport class MchartTooltipComponent {\r\n\r\n}\r\n","<div class=\"title\">\r\n <ng-content select=\"emr-mchart-tooltip-title\"></ng-content>\r\n</div>\r\n<div class=\"body\">\r\n <ng-content select=\"emr-mchart-tooltip-body\"></ng-content>\r\n</div>\r\n<ng-content></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emr-mchart-tooltip-title',\r\n exportAs: 'emrMchartTooltipTitle',\r\n templateUrl: './mchart-tooltip-title.component.html',\r\n styleUrl: './mchart-tooltip-title.component.scss',\r\n host: {\r\n 'class': 'emr-mchart-tooltip-title'\r\n }\r\n})\r\nexport class MchartTooltipTitleComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emr-mchart-tooltip-body',\r\n exportAs: 'emrMchartTooltipBody',\r\n templateUrl: './mchart-tooltip-body.component.html',\r\n styleUrl: './mchart-tooltip-body.component.scss',\r\n host: {\r\n 'class': 'emr-mchart-tooltip-body'\r\n }\r\n})\r\nexport class MchartTooltipBodyComponent {\r\n\r\n}\r\n","<ng-content></ng-content>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|