@ojiepermana/angular 22.1.11 → 22.1.13
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 +32 -26
- package/chart/README.md +272 -0
- package/component/README.md +89 -0
- package/component/accordion/README.md +195 -0
- package/component/alert/README.md +184 -0
- package/component/alert-dialog/README.md +255 -0
- package/component/aspect-ratio/README.md +116 -0
- package/component/avatar/README.md +182 -0
- package/component/badge/README.md +143 -0
- package/component/breadcrumb/README.md +223 -0
- package/component/button/README.md +141 -0
- package/component/button-group/README.md +214 -0
- package/component/calendar/README.md +137 -0
- package/component/card/README.md +232 -0
- package/component/carousel/README.md +276 -0
- package/component/checkbox/README.md +153 -0
- package/component/collapsible/README.md +216 -0
- package/component/combobox/README.md +202 -0
- package/component/command/README.md +287 -0
- package/component/composer/README.md +241 -0
- package/component/context-menu/README.md +268 -0
- package/component/date-picker/README.md +202 -0
- package/component/dialog/README.md +276 -0
- package/component/drawer/README.md +147 -0
- package/component/dropdown-menu/README.md +336 -0
- package/component/editor/README.md +152 -0
- package/component/empty/README.md +193 -0
- package/component/form/README.md +216 -0
- package/component/hover-card/README.md +150 -0
- package/component/icon/README.md +25 -0
- package/component/input/README.md +160 -0
- package/component/input-group/README.md +245 -0
- package/component/input-otp/README.md +331 -0
- package/component/item/README.md +254 -0
- package/component/kanban/README.md +81 -0
- package/component/kbd/README.md +141 -0
- package/component/label/README.md +137 -0
- package/component/menubar/README.md +270 -0
- package/component/native-select/README.md +176 -0
- package/component/navigation-menu/README.md +165 -0
- package/component/pagination/README.md +151 -0
- package/component/pillbox/README.md +68 -0
- package/component/popover/README.md +54 -0
- package/component/progress/README.md +160 -0
- package/component/radio/README.md +212 -0
- package/component/resizable/README.md +178 -0
- package/component/scroll-area/README.md +150 -0
- package/component/select/README.md +228 -0
- package/component/separator/README.md +175 -0
- package/component/sheet/README.md +190 -0
- package/component/skeleton/README.md +158 -0
- package/component/slider/README.md +207 -0
- package/component/spinner/README.md +160 -0
- package/component/switch/README.md +170 -0
- package/component/table/README.md +292 -0
- package/component/tabs/README.md +220 -0
- package/component/textarea/README.md +169 -0
- package/component/timeline/README.md +94 -0
- package/component/toast/README.md +173 -0
- package/component/toggle/README.md +133 -0
- package/component/toggle-group/README.md +234 -0
- package/component/tooltip/README.md +230 -0
- package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
- package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
- package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
- package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
- package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
- package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
- package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
- package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
- package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
- package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
- package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
- package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
- package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
- package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
- package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
- package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
- package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
- package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
- package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
- package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
- package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
- package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
- package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
- package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
- package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
- package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
- package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
- package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
- package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
- package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
- package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
- package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
- package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
- package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
- package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
- package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
- package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
- package/fesm2022/ojiepermana-angular-component.mjs +4 -4
- package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
- package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
- package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
- package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
- package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
- package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
- package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
- package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
- package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
- package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
- package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
- package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
- package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
- package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
- package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
- package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
- package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
- package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
- package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
- package/fesm2022/ojiepermana-angular.mjs +6 -11
- package/navigation/README.md +374 -0
- package/package.json +81 -20
- package/sdk/README.md +212 -0
- package/sdk/schematics/collection.json +20 -0
- package/sdk/schematics/init/index.js +83 -0
- package/sdk/schematics/init/schema.json +19 -0
- package/sdk/schematics/ng-add/index.js +147 -0
- package/sdk/schematics/ng-add/schema.json +14 -0
- package/sdk/schematics/package.json +3 -0
- package/sdk/schematics/sdk/index.js +175 -0
- package/sdk/schematics/sdk/schema.json +19 -0
- package/sdk/sdk.config.example.json +24 -0
- package/sdk/src/config/loader.js +43 -0
- package/sdk/src/config/schema.js +59 -0
- package/sdk/src/emit/client.js +251 -0
- package/sdk/src/emit/metadata.js +310 -0
- package/sdk/src/emit/models.js +104 -0
- package/sdk/src/emit/navigation.js +56 -0
- package/sdk/src/emit/operations.js +118 -0
- package/sdk/src/emit/public-api.js +54 -0
- package/sdk/src/emit/services.js +110 -0
- package/sdk/src/engine.js +67 -0
- package/sdk/src/layout/per-domain.js +360 -0
- package/sdk/src/package.json +3 -0
- package/sdk/src/parser/bundle.js +25 -0
- package/sdk/src/parser/ir.js +429 -0
- package/sdk/src/parser/types.js +7 -0
- package/sdk/src/render/template.js +152 -0
- package/sdk/src/writer/index.js +286 -0
- package/theme/README.md +126 -0
- package/theme/component/settings/README.md +135 -0
- package/theme/layout/README.md +539 -0
- package/theme/page/README.md +453 -0
- package/theme/shell/README.md +340 -0
- package/theme/styles/README.md +178 -0
- package/theme/styles/css/base/components.css +553 -0
- package/theme/styles/css/base/index.css +14 -0
- package/theme/styles/css/base/package.css +9 -0
- package/theme/styles/css/base/prefers-dark.css +86 -0
- package/theme/styles/css/base/print.css +62 -0
- package/theme/styles/css/base/status.css +38 -0
- package/theme/styles/css/base/tailwind.css +165 -0
- package/theme/styles/css/base/theme.css +374 -0
- package/theme/styles/css/base/tokens.css +361 -0
- package/theme/styles/css/color/amber.css +72 -0
- package/theme/styles/css/color/blue.css +72 -0
- package/theme/styles/css/color/brand.css +38 -0
- package/theme/styles/css/color/cyan.css +72 -0
- package/theme/styles/css/color/emerald.css +72 -0
- package/theme/styles/css/color/fuchsia.css +72 -0
- package/theme/styles/css/color/green.css +72 -0
- package/theme/styles/css/color/index.css +19 -0
- package/theme/styles/css/color/indigo.css +72 -0
- package/theme/styles/css/color/lime.css +72 -0
- package/theme/styles/css/color/orange.css +72 -0
- package/theme/styles/css/color/pink.css +72 -0
- package/theme/styles/css/color/purple.css +72 -0
- package/theme/styles/css/color/red.css +72 -0
- package/theme/styles/css/color/rose.css +72 -0
- package/theme/styles/css/color/sky.css +72 -0
- package/theme/styles/css/color/teal.css +72 -0
- package/theme/styles/css/color/violet.css +72 -0
- package/theme/styles/css/color/yellow.css +72 -0
- package/theme/styles/css/index.css +18 -0
- package/theme/styles/css/neutral/gray.css +63 -0
- package/theme/styles/css/neutral/index.css +11 -0
- package/theme/styles/css/neutral/mauve.css +63 -0
- package/theme/styles/css/neutral/mist.css +63 -0
- package/theme/styles/css/neutral/neutral.css +63 -0
- package/theme/styles/css/neutral/olive.css +63 -0
- package/theme/styles/css/neutral/slate.css +63 -0
- package/theme/styles/css/neutral/stone.css +63 -0
- package/theme/styles/css/neutral/taupe.css +63 -0
- package/theme/styles/css/neutral/zinc.css +63 -0
- package/theme/styles/css/radius/index.css +30 -0
- package/theme/styles/css/space/index.css +20 -0
- package/types/ojiepermana-angular-chart-area.d.ts +76 -1
- package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
- package/types/ojiepermana-angular-chart-core.d.ts +811 -1
- package/types/ojiepermana-angular-chart-line.d.ts +75 -1
- package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
- package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
- package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
- package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
- package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
- package/types/ojiepermana-angular-chart.d.ts +2 -1
- package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
- package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
- package/types/ojiepermana-angular-component-alert.d.ts +42 -1
- package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
- package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
- package/types/ojiepermana-angular-component-badge.d.ts +24 -1
- package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
- package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
- package/types/ojiepermana-angular-component-button.d.ts +27 -1
- package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
- package/types/ojiepermana-angular-component-card.d.ts +69 -1
- package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
- package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
- package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
- package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
- package/types/ojiepermana-angular-component-command.d.ts +130 -1
- package/types/ojiepermana-angular-component-composer.d.ts +90 -1
- package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
- package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
- package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
- package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
- package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
- package/types/ojiepermana-angular-component-editor.d.ts +135 -1
- package/types/ojiepermana-angular-component-empty.d.ts +50 -1
- package/types/ojiepermana-angular-component-form.d.ts +159 -1
- package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
- package/types/ojiepermana-angular-component-icon.d.ts +89 -1
- package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
- package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
- package/types/ojiepermana-angular-component-input.d.ts +21 -1
- package/types/ojiepermana-angular-component-item.d.ts +93 -1
- package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
- package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
- package/types/ojiepermana-angular-component-label.d.ts +11 -1
- package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
- package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
- package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
- package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
- package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
- package/types/ojiepermana-angular-component-popover.d.ts +66 -1
- package/types/ojiepermana-angular-component-progress.d.ts +17 -1
- package/types/ojiepermana-angular-component-radio.d.ts +60 -1
- package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
- package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
- package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
- package/types/ojiepermana-angular-component-select.d.ts +122 -1
- package/types/ojiepermana-angular-component-separator.d.ts +14 -1
- package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
- package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
- package/types/ojiepermana-angular-component-slider.d.ts +83 -1
- package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
- package/types/ojiepermana-angular-component-switch.d.ts +44 -1
- package/types/ojiepermana-angular-component-table.d.ts +57 -1
- package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
- package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
- package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
- package/types/ojiepermana-angular-component-toast.d.ts +64 -1
- package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
- package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
- package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
- package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
- package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
- package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
- package/types/ojiepermana-angular-component-utils.d.ts +2 -1
- package/types/ojiepermana-angular-component.d.ts +2 -1
- package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
- package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
- package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
- package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
- package/types/ojiepermana-angular-navigation.d.ts +507 -1
- package/types/ojiepermana-angular-sdk.d.ts +89 -1
- package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
- package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
- package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
- package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
- package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
- package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
- package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
- package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
- package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
- package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
- package/types/ojiepermana-angular-theme-page.d.ts +5 -1
- package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
- package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
- package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
- package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
- package/types/ojiepermana-angular-theme.d.ts +2 -1
- package/types/ojiepermana-angular.d.ts +5 -5
|
@@ -1 +1,75 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
2
|
+
import { ChartOrientation, LineCurve, ChartMargin, ChartPointClickEvent, LinePoint, LineSeriesPath } from '@ojiepermana/angular/chart/core';
|
|
3
|
+
export { AreaLayoutInput, AreaLayoutResult, CartesianBase, LineCurve, LineLayoutResult, LinePoint, LineSeriesPath, buildCartesianScales, cloneLinear, computeAreaLayout, computeLineLayout, pointToBandAdapter, provideCartesianFromLineLayout } from '@ojiepermana/angular/chart/core';
|
|
4
|
+
import * as _angular_core from '@angular/core';
|
|
5
|
+
|
|
6
|
+
/** Emitted when a data point is activated (click or keyboard). */
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `ChartPointClickEvent` from
|
|
9
|
+
* `@ojiepermana/angular/chart/core`. Kept so existing handlers keep compiling;
|
|
10
|
+
* the shape is identical.
|
|
11
|
+
*/
|
|
12
|
+
type LinePointClickEvent = ChartPointClickEvent;
|
|
13
|
+
declare class LineChart {
|
|
14
|
+
private readonly root;
|
|
15
|
+
private readonly cart;
|
|
16
|
+
private readonly viewport;
|
|
17
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
|
|
18
|
+
readonly xKey: _angular_core.InputSignal<string>;
|
|
19
|
+
readonly orientation: _angular_core.InputSignal<ChartOrientation>;
|
|
20
|
+
/**
|
|
21
|
+
* Presentational style of the chart.
|
|
22
|
+
*
|
|
23
|
+
* Replaces `styles`, which read like a CSS styles bag rather than a single
|
|
24
|
+
* variant. Named `styleVariant` and not `variant` because `ChartBar` already
|
|
25
|
+
* publishes a `variant` input for its grouped versus stacked axis, and one
|
|
26
|
+
* name cannot mean two things across the family.
|
|
27
|
+
*/
|
|
28
|
+
readonly styleVariant: _angular_core.InputSignal<"base" | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Use `styleVariant`. Still fully supported; when both are bound,
|
|
31
|
+
* `styleVariant` wins. Due for removal in the next major.
|
|
32
|
+
*/
|
|
33
|
+
readonly styles: _angular_core.InputSignal<"base">;
|
|
34
|
+
/** The style actually in effect. Bind this, never `styles()`. */
|
|
35
|
+
protected readonly chartStyle: _angular_core.Signal<"base">;
|
|
36
|
+
readonly curve: _angular_core.InputSignal<LineCurve>;
|
|
37
|
+
private readonly themeSpace;
|
|
38
|
+
/**
|
|
39
|
+
* Plot gutters. Leave it unset and they follow the theme-space density
|
|
40
|
+
* axis; set it and your numbers win, unchanged, whatever the axis says.
|
|
41
|
+
*/
|
|
42
|
+
readonly margin: _angular_core.InputSignal<ChartMargin | null>;
|
|
43
|
+
/** The margin actually in effect. Bind this, never `margin()`. */
|
|
44
|
+
protected readonly plotMargin: _angular_core.Signal<ChartMargin>;
|
|
45
|
+
readonly strokeWidth: _angular_core.InputSignal<number>;
|
|
46
|
+
readonly showDots: _angular_core.InputSignal<boolean>;
|
|
47
|
+
readonly dotRadius: _angular_core.InputSignal<number>;
|
|
48
|
+
readonly dotColorKey: _angular_core.InputSignal<string | undefined>;
|
|
49
|
+
readonly dotStrokeColor: _angular_core.InputSignal<string | undefined>;
|
|
50
|
+
readonly dotStrokeWidth: _angular_core.InputSignal<number>;
|
|
51
|
+
readonly showValueLabels: _angular_core.InputSignal<boolean>;
|
|
52
|
+
readonly valueLabelFormat: _angular_core.InputSignal<(value: number) => string>;
|
|
53
|
+
readonly pointClick: _angular_core.OutputEmitterRef<LinePointClickEvent>;
|
|
54
|
+
/**
|
|
55
|
+
* The shared cartesian scaffolding: geometry, the index window, the layout
|
|
56
|
+
* effect, and the click plus active-point plus aria-label handlers.
|
|
57
|
+
*
|
|
58
|
+
* Declared before `layout` because the layout computed reads its geometry.
|
|
59
|
+
*/
|
|
60
|
+
protected readonly cx: _ojiepermana_angular_chart_core.CartesianChartSetup<LinePoint>;
|
|
61
|
+
protected readonly layout: _angular_core.Signal<_ojiepermana_angular_chart_core.LineLayoutResult>;
|
|
62
|
+
protected readonly series: _angular_core.Signal<readonly LineSeriesPath[]>;
|
|
63
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
64
|
+
protected readonly dataColumns: _angular_core.Signal<string[]>;
|
|
65
|
+
protected dotFill(point: LinePoint, fallbackColor: string): string;
|
|
66
|
+
protected formatValueLabel(point: LinePoint): string;
|
|
67
|
+
protected labelX(point: LinePoint): number;
|
|
68
|
+
protected labelY(point: LinePoint): number;
|
|
69
|
+
protected labelAnchor(): 'middle' | 'start';
|
|
70
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChart, never>;
|
|
71
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChart, "ChartLine", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "xKey": { "alias": "xKey"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "styles": { "alias": "styles"; "required": false; "isSignal": true; }; "curve": { "alias": "curve"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "dotRadius": { "alias": "dotRadius"; "required": false; "isSignal": true; }; "dotColorKey": { "alias": "dotColorKey"; "required": false; "isSignal": true; }; "dotStrokeColor": { "alias": "dotStrokeColor"; "required": false; "isSignal": true; }; "dotStrokeWidth": { "alias": "dotStrokeWidth"; "required": false; "isSignal": true; }; "showValueLabels": { "alias": "showValueLabels"; "required": false; "isSignal": true; }; "valueLabelFormat": { "alias": "valueLabelFormat"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; }, never, ["svg:g[ChartBrush]", "svg\\:g[ChartGrid]", "svg\\:g[ChartAxisX]", "svg\\:g[ChartAxisY]", "svg\\:g[ChartCrosshair]", "ChartTooltip", "ChartLegend", "ChartZoomControls"], true, never>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { LineChart };
|
|
75
|
+
export type { LinePointClickEvent };
|
|
@@ -1 +1,131 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
2
|
+
import { ChartDatum, ChartMargin, ChartPointClickEvent } from '@ojiepermana/angular/chart/core';
|
|
3
|
+
import * as _ojiepermana_angular_chart_pie from '@ojiepermana/angular/chart/pie';
|
|
4
|
+
import * as _angular_core from '@angular/core';
|
|
5
|
+
|
|
6
|
+
interface PieLayoutInput {
|
|
7
|
+
readonly data: readonly ChartDatum[];
|
|
8
|
+
/** Field on each datum whose value is the slice's numeric magnitude. */
|
|
9
|
+
readonly valueKey: string;
|
|
10
|
+
/** Field on each datum whose value is the slice's categorical label. */
|
|
11
|
+
readonly nameKey: string;
|
|
12
|
+
/**
|
|
13
|
+
* Ordered series keys used to resolve color (`var(--color-<key>)`).
|
|
14
|
+
* Must have the same length as `data`. If omitted, falls back to
|
|
15
|
+
* `nameKey` values.
|
|
16
|
+
*/
|
|
17
|
+
readonly seriesKeys?: readonly string[];
|
|
18
|
+
/**
|
|
19
|
+
* Series keys the legend has toggled off. Their slices are dropped and the
|
|
20
|
+
* remainder re-totals, because a pie's angles are relative by construction.
|
|
21
|
+
*/
|
|
22
|
+
readonly hiddenSeriesKeys?: ReadonlySet<string>;
|
|
23
|
+
readonly innerWidth: number;
|
|
24
|
+
readonly innerHeight: number;
|
|
25
|
+
/** Inner radius for donut-style charts (0 = full pie). */
|
|
26
|
+
readonly innerRadius: number;
|
|
27
|
+
/** Gap between slices, in radians. */
|
|
28
|
+
readonly padAngle: number;
|
|
29
|
+
/** Corner radius for slices (px). */
|
|
30
|
+
readonly cornerRadius: number;
|
|
31
|
+
/** Starting angle in radians (default −π/2 = 12 o'clock). */
|
|
32
|
+
readonly startAngle: number;
|
|
33
|
+
/** Ending angle in radians (default 3π/2). */
|
|
34
|
+
readonly endAngle: number;
|
|
35
|
+
readonly activeIndex?: number;
|
|
36
|
+
readonly activeOffset?: number;
|
|
37
|
+
}
|
|
38
|
+
interface PieSliceRect {
|
|
39
|
+
readonly seriesKey: string;
|
|
40
|
+
readonly name: string;
|
|
41
|
+
readonly value: number;
|
|
42
|
+
readonly datumIndex: number;
|
|
43
|
+
readonly color: string;
|
|
44
|
+
readonly arcPath: string;
|
|
45
|
+
readonly centroid: readonly [number, number];
|
|
46
|
+
readonly startAngle: number;
|
|
47
|
+
readonly endAngle: number;
|
|
48
|
+
readonly translateX: number;
|
|
49
|
+
readonly translateY: number;
|
|
50
|
+
}
|
|
51
|
+
interface PieLayout {
|
|
52
|
+
readonly slices: readonly PieSliceRect[];
|
|
53
|
+
readonly centerX: number;
|
|
54
|
+
readonly centerY: number;
|
|
55
|
+
readonly outerRadius: number;
|
|
56
|
+
}
|
|
57
|
+
declare function computePieLayout(input: PieLayoutInput): PieLayout;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Use `ChartPointClickEvent` from
|
|
61
|
+
* `@ojiepermana/angular/chart/core`. `name` is superseded by `category`, which
|
|
62
|
+
* carries the same value; `name` is still emitted so existing handlers keep
|
|
63
|
+
* working.
|
|
64
|
+
*/
|
|
65
|
+
type PieSliceClickEvent = ChartPointClickEvent & {
|
|
66
|
+
/** @deprecated Use `category`. */
|
|
67
|
+
readonly name: string;
|
|
68
|
+
};
|
|
69
|
+
declare class PieChart {
|
|
70
|
+
private readonly root;
|
|
71
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
|
|
72
|
+
readonly valueKey: _angular_core.InputSignal<string>;
|
|
73
|
+
readonly nameKey: _angular_core.InputSignal<string>;
|
|
74
|
+
readonly seriesKeys: _angular_core.InputSignal<readonly string[] | undefined>;
|
|
75
|
+
/**
|
|
76
|
+
* Presentational style of the chart.
|
|
77
|
+
*
|
|
78
|
+
* Replaces `styles`, which read like a CSS styles bag rather than a single
|
|
79
|
+
* variant. Named `styleVariant` and not `variant` because `ChartBar` already
|
|
80
|
+
* publishes a `variant` input for its grouped versus stacked axis, and one
|
|
81
|
+
* name cannot mean two things across the family.
|
|
82
|
+
*/
|
|
83
|
+
readonly styleVariant: _angular_core.InputSignal<"base" | undefined>;
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Use `styleVariant`. Still fully supported; when both are bound,
|
|
86
|
+
* `styleVariant` wins. Due for removal in the next major.
|
|
87
|
+
*/
|
|
88
|
+
readonly styles: _angular_core.InputSignal<"base">;
|
|
89
|
+
/** The style actually in effect. Bind this, never `styles()`. */
|
|
90
|
+
protected readonly chartStyle: _angular_core.Signal<"base">;
|
|
91
|
+
private readonly themeRadius;
|
|
92
|
+
private readonly themeSpace;
|
|
93
|
+
/**
|
|
94
|
+
* Plot gutters. Leave it unset and they follow the theme-space density
|
|
95
|
+
* axis; set it and your numbers win, unchanged, whatever the axis says.
|
|
96
|
+
*/
|
|
97
|
+
readonly margin: _angular_core.InputSignal<ChartMargin | null>;
|
|
98
|
+
/** The margin actually in effect. Bind this, never `margin()`. */
|
|
99
|
+
protected readonly plotMargin: _angular_core.Signal<ChartMargin>;
|
|
100
|
+
readonly innerRadius: _angular_core.InputSignal<number>;
|
|
101
|
+
readonly padAngle: _angular_core.InputSignal<number>;
|
|
102
|
+
/**
|
|
103
|
+
* Slice corner radius. Unset now means "follow the theme-radius axis", the
|
|
104
|
+
* same contract `ChartBar` already offers, so a pie picks up the app's shape
|
|
105
|
+
* language instead of being the one chart that stays sharp.
|
|
106
|
+
*
|
|
107
|
+
* Zero is still available, and still means square corners: it is a real value,
|
|
108
|
+
* not the absence of one, which is why the default moved to `null`.
|
|
109
|
+
*/
|
|
110
|
+
readonly cornerRadius: _angular_core.InputSignal<number | null>;
|
|
111
|
+
/** The slice corner radius actually in effect. */
|
|
112
|
+
protected readonly sliceCornerRadius: _angular_core.Signal<number>;
|
|
113
|
+
readonly startAngle: _angular_core.InputSignal<number>;
|
|
114
|
+
readonly endAngle: _angular_core.InputSignal<number>;
|
|
115
|
+
readonly showLabels: _angular_core.InputSignal<boolean>;
|
|
116
|
+
readonly activeIndex: _angular_core.InputSignal<number | undefined>;
|
|
117
|
+
readonly activeOffset: _angular_core.InputSignal<number>;
|
|
118
|
+
readonly sliceClick: _angular_core.OutputEmitterRef<PieSliceClickEvent>;
|
|
119
|
+
protected readonly polar: _ojiepermana_angular_chart_core.PolarChartSetup;
|
|
120
|
+
protected readonly layout: _angular_core.Signal<_ojiepermana_angular_chart_pie.PieLayout>;
|
|
121
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
122
|
+
protected readonly dataColumns: _angular_core.Signal<string[]>;
|
|
123
|
+
protected sliceAriaLabel(s: PieSliceRect): string;
|
|
124
|
+
protected sliceTransform(s: PieSliceRect): string | null;
|
|
125
|
+
protected emitClick(s: PieSliceRect): void;
|
|
126
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChart, never>;
|
|
127
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChart, "ChartPie", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "valueKey": { "alias": "valueKey"; "required": true; "isSignal": true; }; "nameKey": { "alias": "nameKey"; "required": true; "isSignal": true; }; "seriesKeys": { "alias": "seriesKeys"; "required": false; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "styles": { "alias": "styles"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "innerRadius": { "alias": "innerRadius"; "required": false; "isSignal": true; }; "padAngle": { "alias": "padAngle"; "required": false; "isSignal": true; }; "cornerRadius": { "alias": "cornerRadius"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; "endAngle": { "alias": "endAngle"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "activeOffset": { "alias": "activeOffset"; "required": false; "isSignal": true; }; }, { "sliceClick": "sliceClick"; }, never, ["ChartPieCenter", "ChartTooltip", "ChartLegend"], true, never>;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export { PieChart, computePieLayout };
|
|
131
|
+
export type { PieLayout, PieLayoutInput, PieSliceClickEvent, PieSliceRect };
|
|
@@ -1 +1,291 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Type, TemplateRef } from '@angular/core';
|
|
3
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
4
|
+
import { ChartTick, ChartDatum } from '@ojiepermana/angular/chart/core';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* X axis for a cartesian chart. Reads scales from `CartesianContext`.
|
|
8
|
+
*
|
|
9
|
+
* Renders as `<svg:g>` — must be placed inside the owning chart's SVG.
|
|
10
|
+
*/
|
|
11
|
+
declare class ChartAxisX {
|
|
12
|
+
private readonly ctx;
|
|
13
|
+
/** Approximate tick count for linear (value) scales. */
|
|
14
|
+
readonly tickCount: _angular_core.InputSignal<number>;
|
|
15
|
+
/** Show 6-px tick marks between the axis line and the labels. */
|
|
16
|
+
readonly tickLine: _angular_core.InputSignal<boolean>;
|
|
17
|
+
/** Formatter for numeric tick labels. */
|
|
18
|
+
readonly tickFormat: _angular_core.InputSignal<(value: number) => string>;
|
|
19
|
+
protected readonly innerWidth: _angular_core.WritableSignal<number>;
|
|
20
|
+
protected readonly transform: _angular_core.Signal<string>;
|
|
21
|
+
protected readonly ticks: _angular_core.Signal<ChartTick[]>;
|
|
22
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartAxisX, never>;
|
|
23
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartAxisX, "svg:g[ChartAxisX]", never, { "tickCount": { "alias": "tickCount"; "required": false; "isSignal": true; }; "tickLine": { "alias": "tickLine"; "required": false; "isSignal": true; }; "tickFormat": { "alias": "tickFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Y axis for a cartesian chart. Reads scales from `CartesianContext`.
|
|
28
|
+
*
|
|
29
|
+
* Renders as `<svg:g>` — must be placed inside the owning chart's SVG.
|
|
30
|
+
*/
|
|
31
|
+
declare class ChartAxisY {
|
|
32
|
+
private readonly ctx;
|
|
33
|
+
readonly tickCount: _angular_core.InputSignal<number>;
|
|
34
|
+
readonly tickLine: _angular_core.InputSignal<boolean>;
|
|
35
|
+
readonly tickFormat: _angular_core.InputSignal<(value: number) => string>;
|
|
36
|
+
protected readonly innerHeight: _angular_core.WritableSignal<number>;
|
|
37
|
+
protected readonly ticks: _angular_core.Signal<ChartTick[]>;
|
|
38
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartAxisY, never>;
|
|
39
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartAxisY, "svg:g[ChartAxisY]", never, { "tickCount": { "alias": "tickCount"; "required": false; "isSignal": true; }; "tickLine": { "alias": "tickLine"; "required": false; "isSignal": true; }; "tickFormat": { "alias": "tickFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Horizontal / vertical grid lines for the cartesian plotting area.
|
|
44
|
+
*
|
|
45
|
+
* Reads tick positions from `CartesianContext.valueScale`. Direction of the
|
|
46
|
+
* grid lines follows `orientation`:
|
|
47
|
+
* - vertical → horizontal grid lines (one per y-tick)
|
|
48
|
+
* - horizontal → vertical grid lines (one per x-tick)
|
|
49
|
+
*/
|
|
50
|
+
declare class ChartGrid {
|
|
51
|
+
private readonly ctx;
|
|
52
|
+
readonly tickCount: _angular_core.InputSignal<number>;
|
|
53
|
+
protected readonly ticks: _angular_core.Signal<_ojiepermana_angular_chart_core.ChartTick[]>;
|
|
54
|
+
protected readonly line: (offset: number) => {
|
|
55
|
+
x1: number;
|
|
56
|
+
x2: number;
|
|
57
|
+
y1: number;
|
|
58
|
+
y2: number;
|
|
59
|
+
};
|
|
60
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartGrid, never>;
|
|
61
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartGrid, "svg:g[ChartGrid]", never, { "tickCount": { "alias": "tickCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Crosshair primitive — a line drawn through the currently active data point
|
|
66
|
+
* perpendicular to the categorical axis. Reads `activePoint` from
|
|
67
|
+
* `ChartContext` and the scales from `CartesianContext`.
|
|
68
|
+
*
|
|
69
|
+
* Place inside a cartesian chart's SVG inner group.
|
|
70
|
+
*/
|
|
71
|
+
declare class ChartCrosshair {
|
|
72
|
+
private readonly root;
|
|
73
|
+
private readonly cart;
|
|
74
|
+
protected readonly line: _angular_core.Signal<{
|
|
75
|
+
x1: number;
|
|
76
|
+
x2: number;
|
|
77
|
+
y1: number;
|
|
78
|
+
y2: number;
|
|
79
|
+
} | null>;
|
|
80
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartCrosshair, never>;
|
|
81
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartCrosshair, "svg:g[ChartCrosshair]", never, {}, {}, never, never, true, never>;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
declare class ChartBrush {
|
|
85
|
+
private readonly hitbox;
|
|
86
|
+
private readonly cart;
|
|
87
|
+
private readonly categorical;
|
|
88
|
+
private readonly scatter;
|
|
89
|
+
private readonly document;
|
|
90
|
+
/**
|
|
91
|
+
* Torn down the moment a drag ends. Permanent `window:` bindings marked the
|
|
92
|
+
* view dirty for every pointer move anywhere on the page, brush or no brush.
|
|
93
|
+
*/
|
|
94
|
+
private detachDragListeners;
|
|
95
|
+
constructor();
|
|
96
|
+
private readonly mode;
|
|
97
|
+
private readonly activePointerId;
|
|
98
|
+
private readonly categoryStartIndex;
|
|
99
|
+
private readonly categoryPanStart;
|
|
100
|
+
private readonly scatterBrush;
|
|
101
|
+
private readonly scatterPan;
|
|
102
|
+
protected readonly width: _angular_core.Signal<number>;
|
|
103
|
+
protected readonly height: _angular_core.Signal<number>;
|
|
104
|
+
protected readonly categoryPreview: _angular_core.Signal<{
|
|
105
|
+
x: number;
|
|
106
|
+
y: number;
|
|
107
|
+
width: number;
|
|
108
|
+
height: number;
|
|
109
|
+
} | null>;
|
|
110
|
+
protected readonly scatterPreviewRect: _angular_core.Signal<{
|
|
111
|
+
x: number;
|
|
112
|
+
y: number;
|
|
113
|
+
width: number;
|
|
114
|
+
height: number;
|
|
115
|
+
} | null>;
|
|
116
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
117
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
118
|
+
protected onPointerUp(event?: PointerEvent): void;
|
|
119
|
+
protected onPointerCancel(event: PointerEvent): void;
|
|
120
|
+
protected onWheel(event: WheelEvent): void;
|
|
121
|
+
protected resetZoom(): void;
|
|
122
|
+
private beginDrag;
|
|
123
|
+
private endDrag;
|
|
124
|
+
private onScatterPointerDown;
|
|
125
|
+
private localPoint;
|
|
126
|
+
private pointerAxis;
|
|
127
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartBrush, never>;
|
|
128
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartBrush, "svg:g[ChartBrush]", never, {}, {}, never, never, true, never>;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Attach to a chart's `<svg:svg>` to publish pointer-driven active-point
|
|
133
|
+
* state into the surrounding `ChartContext`.
|
|
134
|
+
*
|
|
135
|
+
* Computes the local (x, y) of the pointer relative to the inner plotting
|
|
136
|
+
* area, resolves the nearest category, and updates
|
|
137
|
+
* `ChartContext.activePoint`. Clears it on `pointerleave`.
|
|
138
|
+
*/
|
|
139
|
+
declare class ChartPointerTracker {
|
|
140
|
+
private readonly root;
|
|
141
|
+
private readonly cart;
|
|
142
|
+
private readonly viewport;
|
|
143
|
+
protected onMove(event: PointerEvent): void;
|
|
144
|
+
protected onLeave(): void;
|
|
145
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartPointerTracker, never>;
|
|
146
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChartPointerTracker, "svg:svg[ChartPointerTracker]", never, {}, {}, never, never, true, never>;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** Row of data fed to tooltip templates. */
|
|
150
|
+
interface ChartTooltipRow {
|
|
151
|
+
readonly seriesKey: string;
|
|
152
|
+
readonly label: string;
|
|
153
|
+
readonly value: unknown;
|
|
154
|
+
readonly color: string;
|
|
155
|
+
readonly icon?: Type<unknown>;
|
|
156
|
+
}
|
|
157
|
+
/** Payload available to a user-supplied tooltip template. */
|
|
158
|
+
interface ChartTooltipPayload {
|
|
159
|
+
readonly category: string;
|
|
160
|
+
readonly datum: ChartDatum;
|
|
161
|
+
readonly rows: readonly ChartTooltipRow[];
|
|
162
|
+
}
|
|
163
|
+
/** Indicator rendered beside each tooltip row. */
|
|
164
|
+
type ChartTooltipIndicator = 'dot' | 'line' | 'dashed' | 'none';
|
|
165
|
+
/** Signature for the per-row value formatter (string output). */
|
|
166
|
+
type ChartTooltipValueFormatter = (value: unknown, row: ChartTooltipRow, payload: ChartTooltipPayload) => string;
|
|
167
|
+
/** Signature for the tooltip header (label) formatter. */
|
|
168
|
+
type ChartTooltipLabelFormatter = (label: string, payload: ChartTooltipPayload) => string;
|
|
169
|
+
/**
|
|
170
|
+
* Tooltip overlay — renders the default tooltip card (or a user-supplied
|
|
171
|
+
* template) anchored to the currently active data point.
|
|
172
|
+
*
|
|
173
|
+
* Shadcn-compatible knobs:
|
|
174
|
+
* - `indicator="line"` / `"none"` / `"dashed"` — swap the row glyph
|
|
175
|
+
* - `hideLabel` — drop the header row
|
|
176
|
+
* - `label="Activities"` — override the header text
|
|
177
|
+
* - `labelKey="activities"` — resolve the header from `config[labelKey].label`
|
|
178
|
+
* - `labelFormatter` — transform the header (e.g. ISO date → long date)
|
|
179
|
+
* - `formatter` — format per-row values (e.g. `"380 kcal"`)
|
|
180
|
+
* - `valueKey` — for pie/radial/radar, read row value from a single field
|
|
181
|
+
* - Icons are picked up automatically from `config[key].icon`.
|
|
182
|
+
*/
|
|
183
|
+
declare class ChartTooltip {
|
|
184
|
+
private readonly root;
|
|
185
|
+
private readonly host;
|
|
186
|
+
private readonly zone;
|
|
187
|
+
private readonly platformId;
|
|
188
|
+
private readonly destroyRef;
|
|
189
|
+
/**
|
|
190
|
+
* The two measurements `position` needs, taken outside it.
|
|
191
|
+
*
|
|
192
|
+
* `position` used to call `getBoundingClientRect` and read `offsetWidth`
|
|
193
|
+
* while the template evaluated it, which forced layout on every tick and left
|
|
194
|
+
* the tooltip stale after a resize — a computed only re-runs for the signals
|
|
195
|
+
* it reads, and a DOM box is not one.
|
|
196
|
+
*/
|
|
197
|
+
private readonly containerBox;
|
|
198
|
+
private readonly tooltipBox;
|
|
199
|
+
constructor();
|
|
200
|
+
/** Data key on each datum whose value is the category label (x-axis). */
|
|
201
|
+
readonly xKey: _angular_core.InputSignal<string | null>;
|
|
202
|
+
/** Data source (optional — if omitted tooltip reads from chart data via activePoint.datumIndex). */
|
|
203
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[] | null>;
|
|
204
|
+
/**
|
|
205
|
+
* Optional key for per-datum value lookup (pie / radial / radar datasets
|
|
206
|
+
* store values on a single field like `visitors` instead of one field per
|
|
207
|
+
* series). When set and `activePoint.seriesKey` is active, the tooltip row
|
|
208
|
+
* reads `datum[valueKey]` for its value.
|
|
209
|
+
*/
|
|
210
|
+
readonly valueKey: _angular_core.InputSignal<string | null>;
|
|
211
|
+
/** Indicator variant next to each row. Default `'dot'`. */
|
|
212
|
+
readonly indicator: _angular_core.InputSignal<ChartTooltipIndicator>;
|
|
213
|
+
/** Hide the header label entirely. */
|
|
214
|
+
readonly hideLabel: _angular_core.InputSignal<boolean>;
|
|
215
|
+
/** Override the header label with a fixed string. Takes precedence over `labelKey`. */
|
|
216
|
+
readonly label: _angular_core.InputSignal<string | null>;
|
|
217
|
+
/**
|
|
218
|
+
* Resolve the header label from `config[labelKey].label`. Useful when the
|
|
219
|
+
* header should come from a config entry rather than the datum itself
|
|
220
|
+
* (shadcn's "Custom label" variant).
|
|
221
|
+
*/
|
|
222
|
+
readonly labelKey: _angular_core.InputSignal<string | null>;
|
|
223
|
+
/** Transform the final header string (e.g. ISO date → long date). */
|
|
224
|
+
readonly labelFormatter: _angular_core.InputSignal<ChartTooltipLabelFormatter | null>;
|
|
225
|
+
/** Format each row's value (return string — HTML is not interpreted). */
|
|
226
|
+
readonly formatter: _angular_core.InputSignal<ChartTooltipValueFormatter | null>;
|
|
227
|
+
readonly customTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
228
|
+
protected readonly visible: _angular_core.Signal<boolean>;
|
|
229
|
+
protected readonly payload: _angular_core.Signal<ChartTooltipPayload | null>;
|
|
230
|
+
/** Resolve the header string honoring `label`, `labelKey`, then `labelFormatter`. */
|
|
231
|
+
protected headerText(p: ChartTooltipPayload): string | null;
|
|
232
|
+
/** Apply per-row value formatter (or stringify). */
|
|
233
|
+
protected formatRow(row: ChartTooltipRow, p: ChartTooltipPayload): string;
|
|
234
|
+
protected readonly position: _angular_core.Signal<{
|
|
235
|
+
x: number;
|
|
236
|
+
y: number;
|
|
237
|
+
}>;
|
|
238
|
+
private observeContainer;
|
|
239
|
+
private measure;
|
|
240
|
+
private measureContainer;
|
|
241
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartTooltip, never>;
|
|
242
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartTooltip, "ChartTooltip", never, { "xKey": { "alias": "xKey"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "valueKey": { "alias": "valueKey"; "required": false; "isSignal": true; }; "indicator": { "alias": "indicator"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": false; "isSignal": true; }; "labelFormatter": { "alias": "labelFormatter"; "required": false; "isSignal": true; }; "formatter": { "alias": "formatter"; "required": false; "isSignal": true; }; }, {}, ["customTpl"], never, true, never>;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Legend — renders a list of series swatches. Clicking an item toggles
|
|
247
|
+
* visibility via `ChartContext.toggleSeries`.
|
|
248
|
+
*
|
|
249
|
+
* Place as a child of `<Chart>`:
|
|
250
|
+
* ```html
|
|
251
|
+
* <Chart [config]="cfg">
|
|
252
|
+
* <ChartBar ... />
|
|
253
|
+
* <ChartLegend />
|
|
254
|
+
* </Chart>
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
declare class ChartLegend {
|
|
258
|
+
private readonly root;
|
|
259
|
+
protected readonly items: _angular_core.Signal<{
|
|
260
|
+
seriesKey: string;
|
|
261
|
+
label: string;
|
|
262
|
+
color: string;
|
|
263
|
+
hidden: boolean;
|
|
264
|
+
}[]>;
|
|
265
|
+
protected toggle(key: string): void;
|
|
266
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartLegend, never>;
|
|
267
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartLegend, "ChartLegend", never, {}, {}, never, never, true, never>;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
declare class ChartZoomControls {
|
|
271
|
+
private readonly categorical;
|
|
272
|
+
private readonly scatter;
|
|
273
|
+
protected readonly status: _angular_core.Signal<string | null>;
|
|
274
|
+
protected readonly hint: _angular_core.Signal<"Drag to brush a region. Use the wheel to zoom and one-finger touch drag to pan while zoomed." | "Drag to select a category range. Use the wheel to zoom and one-finger touch drag to pan while zoomed.">;
|
|
275
|
+
protected resetZoom(): void;
|
|
276
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartZoomControls, never>;
|
|
277
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartZoomControls, "ChartZoomControls", never, {}, {}, never, never, true, never>;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
declare class PieCenter {
|
|
281
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieCenter, never>;
|
|
282
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieCenter, "ChartPieCenter", never, {}, {}, never, ["*"], true, never>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
declare class RadialCenter {
|
|
286
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadialCenter, never>;
|
|
287
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadialCenter, "ChartRadialCenter", never, {}, {}, never, ["*"], true, never>;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export { ChartAxisX, ChartAxisY, ChartBrush, ChartCrosshair, ChartGrid, ChartLegend, ChartPointerTracker, ChartTooltip, ChartZoomControls, PieCenter, RadialCenter };
|
|
291
|
+
export type { ChartTooltipIndicator, ChartTooltipLabelFormatter, ChartTooltipPayload, ChartTooltipRow, ChartTooltipValueFormatter };
|
|
@@ -1 +1,116 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ojiepermana_angular_chart_core from '@ojiepermana/angular/chart/core';
|
|
2
|
+
import { ChartDatum, ChartMargin, ChartPointClickEvent } from '@ojiepermana/angular/chart/core';
|
|
3
|
+
import * as _ojiepermana_angular_chart_radar from '@ojiepermana/angular/chart/radar';
|
|
4
|
+
import * as _angular_core from '@angular/core';
|
|
5
|
+
|
|
6
|
+
type RadarCurve = 'linear' | 'cardinal';
|
|
7
|
+
type RadarGrid = 'polygon' | 'circle' | 'none';
|
|
8
|
+
interface RadarLayoutInput {
|
|
9
|
+
readonly data: readonly ChartDatum[];
|
|
10
|
+
readonly axisKey: string;
|
|
11
|
+
readonly seriesKeys: readonly string[];
|
|
12
|
+
readonly innerWidth: number;
|
|
13
|
+
readonly innerHeight: number;
|
|
14
|
+
readonly maxValue?: number;
|
|
15
|
+
readonly levels: number;
|
|
16
|
+
readonly curve: RadarCurve;
|
|
17
|
+
readonly grid: RadarGrid;
|
|
18
|
+
}
|
|
19
|
+
interface RadarAxisInfo {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly angle: number;
|
|
22
|
+
readonly x: number;
|
|
23
|
+
readonly y: number;
|
|
24
|
+
}
|
|
25
|
+
interface RadarSeries {
|
|
26
|
+
readonly seriesKey: string;
|
|
27
|
+
readonly color: string;
|
|
28
|
+
readonly path: string;
|
|
29
|
+
readonly points: readonly {
|
|
30
|
+
readonly x: number;
|
|
31
|
+
readonly y: number;
|
|
32
|
+
readonly value: number;
|
|
33
|
+
readonly axis: string;
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
interface RadarLevel {
|
|
37
|
+
readonly value: number;
|
|
38
|
+
readonly radius: number;
|
|
39
|
+
readonly path: string;
|
|
40
|
+
}
|
|
41
|
+
interface RadarLayout {
|
|
42
|
+
readonly centerX: number;
|
|
43
|
+
readonly centerY: number;
|
|
44
|
+
readonly radius: number;
|
|
45
|
+
readonly axes: readonly RadarAxisInfo[];
|
|
46
|
+
readonly levels: readonly RadarLevel[];
|
|
47
|
+
readonly maxValue: number;
|
|
48
|
+
readonly series: readonly RadarSeries[];
|
|
49
|
+
readonly grid: RadarGrid;
|
|
50
|
+
}
|
|
51
|
+
declare function computeRadarLayout(input: RadarLayoutInput): RadarLayout;
|
|
52
|
+
|
|
53
|
+
/** One radar dot, resolved to the row and series it stands for. */
|
|
54
|
+
type RadarPoint = RadarSeries['points'][number];
|
|
55
|
+
declare class RadarChart {
|
|
56
|
+
private readonly root;
|
|
57
|
+
readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
|
|
58
|
+
readonly axisKey: _angular_core.InputSignal<string>;
|
|
59
|
+
/**
|
|
60
|
+
* Presentational style of the chart.
|
|
61
|
+
*
|
|
62
|
+
* Replaces `styles`, which read like a CSS styles bag rather than a single
|
|
63
|
+
* variant. Named `styleVariant` and not `variant` because `ChartBar` already
|
|
64
|
+
* publishes a `variant` input for its grouped versus stacked axis, and one
|
|
65
|
+
* name cannot mean two things across the family.
|
|
66
|
+
*/
|
|
67
|
+
readonly styleVariant: _angular_core.InputSignal<"base" | undefined>;
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated Use `styleVariant`. Still fully supported; when both are bound,
|
|
70
|
+
* `styleVariant` wins. Due for removal in the next major.
|
|
71
|
+
*/
|
|
72
|
+
readonly styles: _angular_core.InputSignal<"base">;
|
|
73
|
+
/** The style actually in effect. Bind this, never `styles()`. */
|
|
74
|
+
protected readonly chartStyle: _angular_core.Signal<"base">;
|
|
75
|
+
private readonly themeSpace;
|
|
76
|
+
/**
|
|
77
|
+
* Plot gutters. Leave it unset and they follow the theme-space density
|
|
78
|
+
* axis; set it and your numbers win, unchanged, whatever the axis says.
|
|
79
|
+
*/
|
|
80
|
+
readonly margin: _angular_core.InputSignal<ChartMargin | null>;
|
|
81
|
+
/** The margin actually in effect. Bind this, never `margin()`. */
|
|
82
|
+
protected readonly plotMargin: _angular_core.Signal<ChartMargin>;
|
|
83
|
+
readonly curve: _angular_core.InputSignal<RadarCurve>;
|
|
84
|
+
readonly levels: _angular_core.InputSignal<number>;
|
|
85
|
+
readonly maxValue: _angular_core.InputSignal<number | undefined>;
|
|
86
|
+
readonly strokeWidth: _angular_core.InputSignal<number>;
|
|
87
|
+
readonly fillOpacity: _angular_core.InputSignal<number>;
|
|
88
|
+
readonly showLabels: _angular_core.InputSignal<boolean>;
|
|
89
|
+
readonly showDots: _angular_core.InputSignal<boolean>;
|
|
90
|
+
readonly dotRadius: _angular_core.InputSignal<number>;
|
|
91
|
+
readonly grid: _angular_core.InputSignal<RadarGrid>;
|
|
92
|
+
readonly gridFilled: _angular_core.InputSignal<boolean>;
|
|
93
|
+
readonly showAxes: _angular_core.InputSignal<boolean>;
|
|
94
|
+
readonly linesOnly: _angular_core.InputSignal<boolean>;
|
|
95
|
+
/**
|
|
96
|
+
* Emitted when a dot is activated by pointer or keyboard. Radar was the one
|
|
97
|
+
* chart family a keyboard user could focus but never operate.
|
|
98
|
+
*/
|
|
99
|
+
readonly pointClick: _angular_core.OutputEmitterRef<ChartPointClickEvent<Readonly<Record<string, unknown>>>>;
|
|
100
|
+
protected readonly polar: _ojiepermana_angular_chart_core.PolarChartSetup;
|
|
101
|
+
protected readonly layout: _angular_core.Signal<_ojiepermana_angular_chart_radar.RadarLayout>;
|
|
102
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
103
|
+
protected readonly dataColumns: _angular_core.Signal<string[]>;
|
|
104
|
+
protected gridFill(): string;
|
|
105
|
+
protected gridFillOpacity(levelIndex: number): number | null;
|
|
106
|
+
protected dotAriaLabel(seriesKey: string, p: {
|
|
107
|
+
axis: string;
|
|
108
|
+
value: number;
|
|
109
|
+
}): string;
|
|
110
|
+
protected emitClick(seriesKey: string, point: RadarPoint, datumIndex: number): void;
|
|
111
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadarChart, never>;
|
|
112
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadarChart, "ChartRadar", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "axisKey": { "alias": "axisKey"; "required": true; "isSignal": true; }; "styleVariant": { "alias": "styleVariant"; "required": false; "isSignal": true; }; "styles": { "alias": "styles"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "curve": { "alias": "curve"; "required": false; "isSignal": true; }; "levels": { "alias": "levels"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "fillOpacity": { "alias": "fillOpacity"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "dotRadius": { "alias": "dotRadius"; "required": false; "isSignal": true; }; "grid": { "alias": "grid"; "required": false; "isSignal": true; }; "gridFilled": { "alias": "gridFilled"; "required": false; "isSignal": true; }; "showAxes": { "alias": "showAxes"; "required": false; "isSignal": true; }; "linesOnly": { "alias": "linesOnly"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; }, never, ["*", "ChartTooltip", "ChartLegend"], true, never>;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { RadarChart, computeRadarLayout };
|
|
116
|
+
export type { RadarAxisInfo, RadarCurve, RadarGrid, RadarLayout, RadarLayoutInput, RadarLevel, RadarSeries };
|