├── .DS_Store
├── .gitignore
├── LICENSE
├── README.md
├── demo
├── .gitignore
├── README.md
├── composables
│ └── useDemoParams.ts
├── layouts
│ └── default.vue
├── nuxt.config.ts
├── package-lock.json
├── package.json
├── pages
│ ├── [chartType]
│ │ └── [pluginName]
│ │ │ └── [presetName].client.vue
│ ├── demo0
│ │ └── index.client.vue
│ ├── demo1
│ │ └── index.client.vue
│ ├── demo2
│ │ └── index.client.vue
│ ├── demo3
│ │ └── index.client.vue
│ ├── index.vue
│ ├── index
│ │ └── index.vue
│ ├── test
│ │ └── index.client.vue
│ ├── test1
│ │ └── index.client.vue
│ ├── test2
│ │ └── index.client.vue
│ ├── test3
│ │ └── index.client.vue
│ ├── test4
│ │ └── index.client.vue
│ ├── test5
│ │ └── index.client.vue
│ ├── test6
│ │ └── index.client.vue
│ ├── test7
│ │ └── index.client.vue
│ └── test8
│ │ └── index.client.vue
├── public
│ ├── .nojekyll
│ ├── favicon.ico
│ ├── favicon_temp.ico
│ ├── nuxt.ico
│ └── orbcharts_logo_temp.png
├── server
│ └── tsconfig.json
├── tsconfig.json
└── utils
│ └── getDemoData.ts
├── index.html
└── packages
├── README.md
├── orbcharts-core-types
├── LICENSE
├── package-lock.json
├── package.json
├── src
│ ├── index.ts
│ └── types
│ │ ├── Axis.ts
│ │ ├── Chart.ts
│ │ ├── ChartParams.ts
│ │ ├── Common.ts
│ │ ├── ComputedData.ts
│ │ ├── ComputedDataGrid.ts
│ │ ├── ComputedDataMultiGrid.ts
│ │ ├── ComputedDataMultiValue.ts
│ │ ├── ComputedDataRelationship.ts
│ │ ├── ComputedDataSeries.ts
│ │ ├── ComputedDataTree.ts
│ │ ├── ContextObserver.ts
│ │ ├── ContextObserverGrid.ts
│ │ ├── ContextObserverMultiGrid.ts
│ │ ├── ContextObserverMultiValue.ts
│ │ ├── ContextObserverRelationship.ts
│ │ ├── ContextObserverSeries.ts
│ │ ├── ContextObserverTree.ts
│ │ ├── ContextSubject.ts
│ │ ├── Data.ts
│ │ ├── DataFormatter.ts
│ │ ├── DataFormatterGrid.ts
│ │ ├── DataFormatterMultiGrid.ts
│ │ ├── DataFormatterMultiValue.ts
│ │ ├── DataFormatterRelationship.ts
│ │ ├── DataFormatterSeries.ts
│ │ ├── DataFormatterTree.ts
│ │ ├── DataGrid.ts
│ │ ├── DataMultiGrid.ts
│ │ ├── DataMultiValue.ts
│ │ ├── DataRelationship.ts
│ │ ├── DataSeries.ts
│ │ ├── DataTree.ts
│ │ ├── Event.ts
│ │ ├── Layout.ts
│ │ ├── Padding.ts
│ │ ├── Plugin.ts
│ │ ├── Preset.ts
│ │ ├── TransformData.ts
│ │ ├── Validator.ts
│ │ └── index.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
├── orbcharts-core
├── LICENSE
├── lib
│ └── core-types.ts
├── package-lock.json
├── package.json
├── src
│ ├── AbstractChart.ts
│ ├── GridChart.ts
│ ├── MultiGridChart.ts
│ ├── MultiValueChart.ts
│ ├── RelationshipChart.ts
│ ├── SeriesChart.ts
│ ├── TreeChart.ts
│ ├── base
│ │ ├── createBaseChart.ts
│ │ ├── createBasePlugin.ts
│ │ └── validators
│ │ │ ├── chartOptionsValidator.ts
│ │ │ ├── chartParamsValidator.ts
│ │ │ ├── elementValidator.ts
│ │ │ └── pluginsValidator.ts
│ ├── defaults.ts
│ ├── defineGridPlugin.ts
│ ├── defineMultiGridPlugin.ts
│ ├── defineMultiValuePlugin.ts
│ ├── defineNoneDataPlugin.ts
│ ├── defineRelationshipPlugin.ts
│ ├── defineSeriesPlugin.ts
│ ├── defineTreePlugin.ts
│ ├── grid
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── gridObservables.ts
│ ├── index.ts
│ ├── multiGrid
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── multiGridObservables.ts
│ ├── multiValue
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── multiValueObservables.ts
│ ├── relationship
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── relationshipObservables.ts
│ ├── series
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── seriesObservables.ts
│ ├── tree
│ │ ├── computedDataFn.ts
│ │ ├── contextObserverCallback.ts
│ │ ├── dataFormatterValidator.ts
│ │ ├── dataValidator.ts
│ │ └── treeObservables.ts
│ └── utils
│ │ ├── commonUtils.ts
│ │ ├── d3Scale.ts
│ │ ├── errorMessage.ts
│ │ ├── index.ts
│ │ ├── observables.ts
│ │ ├── orbchartsUtils.ts
│ │ └── validator.ts
├── tsconfig.base.json
├── tsconfig.json
├── vite-env.d.ts
└── vite.config.js
├── orbcharts-demo
├── LICENSE
├── lib
│ ├── core-types.ts
│ ├── plugins-basic-types.ts
│ └── presets-basic.ts
├── package-lock.json
├── package.json
├── src
│ ├── data
│ │ ├── gridData1.ts
│ │ ├── gridData2.ts
│ │ ├── gridData3.ts
│ │ ├── gridData4.ts
│ │ ├── gridData5.ts
│ │ ├── multiGridData0.ts
│ │ ├── multiGridData1.ts
│ │ ├── multiGridData2.ts
│ │ ├── multiGridData3.ts
│ │ ├── multiGridData4.ts
│ │ ├── multiValue0.ts
│ │ ├── multiValue1.ts
│ │ ├── multiValueData_brand.ts
│ │ ├── multiValueData_brand_short.ts
│ │ ├── multiValueData_channel.ts
│ │ ├── multiValueData_channel_short.ts
│ │ ├── relationshipData1.ts
│ │ ├── relationshipData3.ts
│ │ ├── seriesData1.ts
│ │ ├── seriesData2.ts
│ │ ├── seriesData3.ts
│ │ ├── seriesData4.ts
│ │ ├── treeData0.ts
│ │ └── treeData1.ts
│ ├── demo.ts
│ ├── index.ts
│ ├── types.ts
│ └── utils.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
├── orbcharts-plugins-basic-types
├── LICENSE
├── lib
│ └── core-types.ts
├── package-lock.json
├── package.json
├── src
│ ├── index.ts
│ └── types
│ │ ├── BasePluginParams.ts
│ │ ├── Common.ts
│ │ ├── GridPluginParams.ts
│ │ ├── MultiGridPluginParams.ts
│ │ ├── MultiValuePluginParams.ts
│ │ ├── NoneDataPluginParams.ts
│ │ ├── PluginList.ts
│ │ ├── RelationshipPluginParams.ts
│ │ ├── SeriesPluginParams.ts
│ │ ├── TreePluginParams.ts
│ │ └── index.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
├── orbcharts-plugins-basic
├── LICENSE
├── lib
│ ├── core-types.ts
│ ├── core.ts
│ ├── gridObservables.ts
│ └── plugins-basic-types.ts
├── package-lock.json
├── package.json
├── src
│ ├── base
│ │ ├── BaseBars.ts
│ │ ├── BaseBarsTriangle.ts
│ │ ├── BaseDots.ts
│ │ ├── BaseGroupAxis.ts
│ │ ├── BaseLegend.ts
│ │ ├── BaseLineAreas.ts
│ │ ├── BaseLines.ts
│ │ ├── BaseOrdinalBubbles.ts
│ │ ├── BaseRacingBars.ts
│ │ ├── BaseRacingLabels.ts
│ │ ├── BaseRacingValueLabels.ts
│ │ ├── BaseStackedBars.ts
│ │ ├── BaseTooltip.ts
│ │ ├── BaseValueAxis.ts
│ │ ├── BaseXAxis.ts
│ │ ├── BaseXZoom.ts
│ │ ├── BaseYAxis.ts
│ │ └── types.ts
│ ├── const.ts
│ ├── grid
│ │ ├── defaults.ts
│ │ ├── gridObservables.ts
│ │ ├── index.ts
│ │ └── plugins
│ │ │ ├── Bars.ts
│ │ │ ├── BarsPN.ts
│ │ │ ├── BarsTriangle.ts
│ │ │ ├── Dots.ts
│ │ │ ├── GridLegend.ts
│ │ │ ├── GridTooltip.ts
│ │ │ ├── GroupAux.ts
│ │ │ ├── GroupAxis.ts
│ │ │ ├── GroupZoom.ts
│ │ │ ├── LineAreas.ts
│ │ │ ├── Lines.ts
│ │ │ ├── StackedBars.ts
│ │ │ ├── StackedValueAxis.ts
│ │ │ └── ValueAxis.ts
│ ├── index.ts
│ ├── multiGrid
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ ├── multiGridObservables.ts
│ │ └── plugins
│ │ │ ├── MultiBars.ts
│ │ │ ├── MultiBarsTriangle.ts
│ │ │ ├── MultiDots.ts
│ │ │ ├── MultiGridLegend.ts
│ │ │ ├── MultiGridTooltip.ts
│ │ │ ├── MultiGroupAxis.ts
│ │ │ ├── MultiLineAreas.ts
│ │ │ ├── MultiLines.ts
│ │ │ ├── MultiStackedBars.ts
│ │ │ ├── MultiStackedValueAxis.ts
│ │ │ ├── MultiValueAxis.ts
│ │ │ ├── OverlappingStackedValueAxes.ts
│ │ │ └── OverlappingValueAxes.ts
│ ├── multiValue
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ ├── multiValueObservables.ts
│ │ └── plugins
│ │ │ ├── MultiValueLegend.ts
│ │ │ ├── MultiValueTooltip.ts
│ │ │ ├── OrdinalAux.ts
│ │ │ ├── OrdinalAxis.ts
│ │ │ ├── OrdinalBubbles.ts
│ │ │ ├── OrdinalZoom.ts
│ │ │ ├── RacingBars.ts
│ │ │ ├── RacingCounterAxis.ts
│ │ │ ├── RacingCounterTexts.ts
│ │ │ ├── RacingValueAxis.ts
│ │ │ ├── Scatter.ts
│ │ │ ├── ScatterBubbles.ts
│ │ │ ├── XAxis.ts
│ │ │ ├── XYAux.ts
│ │ │ ├── XYAxes.ts
│ │ │ ├── XYAxes_legacy.ts
│ │ │ └── XZoom.ts
│ ├── noneData
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ └── plugins
│ │ │ ├── Container.ts
│ │ │ └── Tooltip.ts
│ ├── relationship
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ ├── plugins
│ │ │ ├── ForceDirected.ts
│ │ │ ├── ForceDirectedBubbles.ts
│ │ │ ├── RelationshipLegend.ts
│ │ │ └── RelationshipTooltip.ts
│ │ └── relationshipObservables.ts
│ ├── series
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ ├── plugins
│ │ │ ├── Bubbles.ts
│ │ │ ├── Pie.ts
│ │ │ ├── PieEventTexts.ts
│ │ │ ├── PieLabels.ts
│ │ │ ├── Rose.ts
│ │ │ ├── RoseLabels.ts
│ │ │ ├── SeriesLegend.ts
│ │ │ ├── SeriesTooltip.ts
│ │ │ └── Waffle.ts
│ │ ├── seriesObservables.ts
│ │ └── seriesUtils.ts
│ ├── tree
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ └── plugins
│ │ │ ├── TreeLegend.ts
│ │ │ ├── TreeMap.ts
│ │ │ └── TreeTooltip.ts
│ └── utils
│ │ ├── commonUtils.ts
│ │ ├── d3Graphics.ts
│ │ ├── d3Utils.ts
│ │ ├── observables.ts
│ │ └── orbchartsUtils.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
├── orbcharts-presets-basic
├── LICENSE
├── lib
│ ├── core-types.ts
│ └── plugins-basic-types.ts
├── package-lock.json
├── package.json
├── src
│ ├── grid
│ │ ├── PRESET_BARS_HORIZONTAL_AND_ROUND.ts
│ │ ├── PRESET_BARS_HORIZONTAL_AND_THIN.ts
│ │ ├── PRESET_BARS_ROUND.ts
│ │ ├── PRESET_BARS_THIN.ts
│ │ ├── PRESET_GRID_BASIC.ts
│ │ ├── PRESET_GRID_HORIZONTAL.ts
│ │ ├── PRESET_GRID_PN_SCALE.ts
│ │ ├── PRESET_GRID_PN_SCALE_SIMPLE.ts
│ │ ├── PRESET_GRID_ROTATE_AXIS_LABEL.ts
│ │ ├── PRESET_GRID_SEPARATE_SERIES.ts
│ │ ├── PRESET_GRID_SIMPLE.ts
│ │ ├── PRESET_LINES_BASIC.ts
│ │ ├── PRESET_LINES_CURVE.ts
│ │ ├── PRESET_LINES_HIGHLIGHT_GROUP_DOTS.ts
│ │ ├── PRESET_LINES_HORIZONTAL.ts
│ │ ├── PRESET_LINES_LOOSE_TICKS.ts
│ │ ├── PRESET_LINES_ROTATE_AXIS_LABEL.ts
│ │ ├── PRESET_LINES_SIMPLE.ts
│ │ ├── PRESET_LINES_WITH_SOLID_DOTS.ts
│ │ ├── PRESET_LINE_AREAS_BASIC.ts
│ │ ├── PRESET_LINE_AREAS_CURVE.ts
│ │ ├── PRESET_LINE_AREAS_HIGHLIGHT_GROUP_DOTS.ts
│ │ ├── PRESET_LINE_AREAS_HORIZONTAL.ts
│ │ ├── PRESET_LINE_AREAS_LOOSE_TICKS.ts
│ │ ├── PRESET_LINE_AREAS_ROTATE_AXIS_LABEL.ts
│ │ ├── PRESET_LINE_AREAS_SEPARATE_SERIES.ts
│ │ ├── PRESET_LINE_AREAS_SIMPLE.ts
│ │ └── index.ts
│ ├── index.ts
│ ├── multiGrid
│ │ ├── PRESET_MULTI_GRID_BASIC.ts
│ │ ├── PRESET_MULTI_GRID_DIVERGING.ts
│ │ ├── PRESET_MULTI_GRID_DIVERGING_SIMPLE.ts
│ │ ├── PRESET_MULTI_GRID_ROUND_STYLE.ts
│ │ ├── PRESET_MULTI_GRID_ROUND_STYLE_SIMPLE.ts
│ │ ├── PRESET_MULTI_GRID_SEPARATE_GRID.ts
│ │ ├── PRESET_MULTI_GRID_SEPARATE_GRID_SIMPLE.ts
│ │ ├── PRESET_MULTI_GRID_SIMPLE.ts
│ │ ├── PRESET_MULTI_LINES_SEPARATE_GRID.ts
│ │ ├── PRESET_MULTI_LINES_SEPARATE_GRID_SIMPLE.ts
│ │ ├── PRESET_MULTI_LINE_AREAS_SEPARATE_GRID.ts
│ │ ├── PRESET_MULTI_LINE_AREAS_SEPARATE_GRID_SIMPLE.ts
│ │ └── index.ts
│ ├── multiValue
│ │ ├── PRESET_MULTI_VALUE_BASIC.ts
│ │ ├── PRESET_MULTI_VALUE_SEPARATE_CATEGORY.ts
│ │ ├── PRESET_MULTI_VALUE_SIMPLE.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_ALL_ITEMS.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_BASIC.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_LINEAR_OPACITY.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_SCALING_BY_RADIUS.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_SEPARATE_CATEGORY.ts
│ │ ├── PRESET_ORDINAL_BUBBLES_SIMPLE.ts
│ │ ├── PRESET_RACING_BARS_ALL_ITEMS.ts
│ │ ├── PRESET_RACING_BARS_BASIC.ts
│ │ ├── PRESET_RACING_BARS_FAST.ts
│ │ ├── PRESET_RACING_BARS_FASTER.ts
│ │ ├── PRESET_RACING_BARS_LOOP.ts
│ │ ├── PRESET_RACING_BARS_OUTSIDE_LABELS.ts
│ │ ├── PRESET_RACING_BARS_SEPARATE_CATEGORY.ts
│ │ ├── PRESET_RACING_BARS_SIMPLE.ts
│ │ ├── PRESET_RACING_BARS_STOP.ts
│ │ ├── PRESET_SCATTER_BASIC.ts
│ │ ├── PRESET_SCATTER_BUBBLES_BASIC.ts
│ │ ├── PRESET_SCATTER_BUBBLES_LINEAR_OPACITY.ts
│ │ ├── PRESET_SCATTER_BUBBLES_SCALING_BY_RADIUS.ts
│ │ ├── PRESET_SCATTER_BUBBLES_SEPARATE_CATEGORY.ts
│ │ ├── PRESET_SCATTER_BUBBLES_SIMPLE.ts
│ │ ├── PRESET_SCATTER_SEPARATE_CATEGORY.ts
│ │ ├── PRESET_SCATTER_SIMPLE.ts
│ │ └── index.ts
│ ├── relationship
│ │ ├── PRESET_FORCE_DIRECTED_BASIC.ts
│ │ ├── PRESET_FORCE_DIRECTED_BUBBLES_BASIC.ts
│ │ ├── PRESET_FORCE_DIRECTED_BUBBLES_FIX_ARROW_WIDTH.ts
│ │ ├── PRESET_FORCE_DIRECTED_BUBBLES_NONE_ARROW.ts
│ │ ├── PRESET_FORCE_DIRECTED_BUBBLES_NONE_ZOOM.ts
│ │ ├── PRESET_FORCE_DIRECTED_BUBBLES_SIMPLE.ts
│ │ ├── PRESET_FORCE_DIRECTED_FIX_FONT_SIZE.ts
│ │ ├── PRESET_FORCE_DIRECTED_NONE_ARROW.ts
│ │ ├── PRESET_FORCE_DIRECTED_NONE_ZOOM.ts
│ │ ├── PRESET_FORCE_DIRECTED_SIMPLE.ts
│ │ └── index.ts
│ ├── series
│ │ ├── PRESET_BUBBLES_BASIC.ts
│ │ ├── PRESET_BUBBLES_SCALING_BY_RADIUS.ts
│ │ ├── PRESET_BUBBLES_SEPARATE_ALL.ts
│ │ ├── PRESET_BUBBLES_SEPARATE_LABEL.ts
│ │ ├── PRESET_BUBBLES_SEPARATE_SERIES.ts
│ │ ├── PRESET_BUBBLES_SIMPLE.ts
│ │ ├── PRESET_BUBBLES_SUM_SERIES.ts
│ │ ├── PRESET_PIE_BASIC.ts
│ │ ├── PRESET_PIE_DONUT.ts
│ │ ├── PRESET_PIE_HALF_DONUT.ts
│ │ ├── PRESET_PIE_SEPARATE_LABEL.ts
│ │ ├── PRESET_PIE_SEPARATE_SERIES.ts
│ │ ├── PRESET_PIE_SIMPLE.ts
│ │ ├── PRESET_PIE_SUM_SERIES.ts
│ │ ├── PRESET_PIE_WITH_INNER_LABELS.ts
│ │ ├── PRESET_ROSE_BASIC.ts
│ │ ├── PRESET_ROSE_SCALING_BY_RADIUS.ts
│ │ ├── PRESET_ROSE_SEPARATE_ALL.ts
│ │ ├── PRESET_ROSE_SEPARATE_LABEL.ts
│ │ ├── PRESET_ROSE_SEPARATE_SERIES.ts
│ │ ├── PRESET_ROSE_SEPARATE_SERIES_AND_SUM_SERIES.ts
│ │ ├── PRESET_ROSE_SIMPLE.ts
│ │ ├── PRESET_ROSE_SUM_SERIES.ts
│ │ ├── PRESET_SERIES_BASIC.ts
│ │ ├── PRESET_SERIES_SEPARATE_SERIES.ts
│ │ ├── PRESET_SERIES_SEPARATE_SERIES_AND_SUM_SERIES.ts
│ │ ├── PRESET_SERIES_SUM_SERIES.ts
│ │ └── index.ts
│ ├── tree
│ │ ├── PRESET_TREE_MAP_BASIC.ts
│ │ ├── PRESET_TREE_MAP_SIMPLE.ts
│ │ └── index.ts
│ └── types.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
├── orbcharts-test
├── LICENSE
├── package-lock.json
├── package.json
├── src
│ └── index.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
└── orbcharts
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── src
└── index.ts
├── tsconfig.base.json
├── tsconfig.json
└── vite.config.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/.DS_Store
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | # Nuxt dev/build outputs
2 | .output
3 | .data
4 | .nuxt
5 | .nitro
6 | .cache
7 | dist
8 |
9 | # Node dependencies
10 | node_modules
11 |
12 | # Logs
13 | logs
14 | *.log
15 |
16 | # Misc
17 | .DS_Store
18 | .fleet
19 | .idea
20 |
21 | # Local env files
22 | .env
23 | .env.*
24 | !.env.example
25 |
--------------------------------------------------------------------------------
/demo/README.md:
--------------------------------------------------------------------------------
1 | # Nuxt 3 Minimal Starter
2 |
3 | Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
4 |
5 | ## Setup
6 |
7 | Make sure to install the dependencies:
8 |
9 | ```bash
10 | # npm
11 | npm install
12 |
13 | # pnpm
14 | pnpm install
15 |
16 | # yarn
17 | yarn install
18 |
19 | # bun
20 | bun install
21 | ```
22 |
23 | ## Development Server
24 |
25 | Start the development server on `http://localhost:3000`:
26 |
27 | ```bash
28 | # npm
29 | npm run dev
30 |
31 | # pnpm
32 | pnpm run dev
33 |
34 | # yarn
35 | yarn dev
36 |
37 | # bun
38 | bun run dev
39 | ```
40 |
41 | ## Production
42 |
43 | Build the application for production:
44 |
45 | ```bash
46 | # npm
47 | npm run build
48 |
49 | # pnpm
50 | pnpm run build
51 |
52 | # yarn
53 | yarn build
54 |
55 | # bun
56 | bun run build
57 | ```
58 |
59 | Locally preview production build:
60 |
61 | ```bash
62 | # npm
63 | npm run preview
64 |
65 | # pnpm
66 | pnpm run preview
67 |
68 | # yarn
69 | yarn preview
70 |
71 | # bun
72 | bun run preview
73 | ```
74 |
75 | Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
76 |
--------------------------------------------------------------------------------
/demo/composables/useDemoParams.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 | export default () => {
4 |
5 | }
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nuxt-app",
3 | "private": true,
4 | "type": "module",
5 | "scripts": {
6 | "build": "nuxt build",
7 | "dev": "nuxt dev",
8 | "generate": "nuxt generate",
9 | "preview": "nuxt preview",
10 | "postinstall": "nuxt prepare",
11 | "deploy": "gh-pages --dotfiles -d .output/public"
12 | },
13 | "dependencies": {
14 | "nuxt": "^3.11.2",
15 | "orbcharts": "^3.0.9",
16 | "rxjs": "npm:@esm-bundle/rxjs@^7.8.1",
17 | "vue": "^3.4.27",
18 | "vue-router": "^4.3.2"
19 | },
20 | "devDependencies": {
21 | "gh-pages": "^6.1.1"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/demo/pages/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/demo/pages/index/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
21 |
22 |
--------------------------------------------------------------------------------
/demo/public/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/demo/public/.nojekyll
--------------------------------------------------------------------------------
/demo/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/demo/public/favicon.ico
--------------------------------------------------------------------------------
/demo/public/favicon_temp.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/demo/public/favicon_temp.ico
--------------------------------------------------------------------------------
/demo/public/nuxt.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/demo/public/nuxt.ico
--------------------------------------------------------------------------------
/demo/public/orbcharts_logo_temp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BPbase/orbcharts/4f35f399320084fd1c28d040ebe882809d4b29e3/demo/public/orbcharts_logo_temp.png
--------------------------------------------------------------------------------
/demo/server/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../.nuxt/tsconfig.server.json"
3 | }
4 |
--------------------------------------------------------------------------------
/demo/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | // https://nuxt.com/docs/guide/concepts/typescript
3 | "extends": "./.nuxt/tsconfig.json"
4 | }
5 |
--------------------------------------------------------------------------------
/demo/utils/getDemoData.ts:
--------------------------------------------------------------------------------
1 | import * as core from '../../packages/orbcharts-core/src'
2 | import * as pluginsBasic from '../../packages/orbcharts-plugins-basic/src'
3 | import * as presetsBasic from '../../packages/orbcharts-presets-basic/src'
4 | import type { DemoItem, DemoData } from '../../packages/orbcharts-demo/src/types'
5 | import { DEMO_LIST } from '../../packages/orbcharts-demo/src'
6 |
7 | export async function getDemoData ({ chartType, pluginNames, presetName }: {
8 | chartType: T
9 | pluginNames: (keyof typeof pluginsBasic)[]
10 | presetName: keyof typeof presetsBasic
11 | }): Promise | null> {
12 | const chartTypeItem = DEMO_LIST.find((item) => item.chartType === chartType)
13 | const mainPluginsItem = chartTypeItem?.list.find((item) => item.mainPluginNames.join(',') === pluginNames.join(','))
14 | const demoItem: DemoItem | null = mainPluginsItem?.list.find((item) => item.presetName === presetName) ?? null
15 | if (!demoItem) {
16 | return null
17 | }
18 |
19 | // plugins
20 | const plugins: core.PluginEntity[] = demoItem.allPluginNames.map((plugin) => {
21 | const Plugin = pluginsBasic[plugin] as core.PluginConstructor
22 | return new Plugin()
23 | })
24 | // data
25 | const { default: data } = await demoItem.getData()
26 | // preset
27 | const preset = presetsBasic[presetName] as any
28 |
29 | return { preset, plugins, data }
30 | }
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Document
7 |
8 |
9 |
10 |
27 |
28 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@orbcharts/core-types",
3 | "version": "3.0.4",
4 | "description": "Types of core codes for OrbCharts",
5 | "author": "Blue Planet Inc.",
6 | "license": "Apache-2.0",
7 | "keywords": [
8 | "d3",
9 | "rxjs",
10 | "typescript",
11 | "svg",
12 | "visualization",
13 | "infographic",
14 | "graph",
15 | "chart"
16 | ],
17 | "private": false,
18 | "publishConfig": {
19 | "access": "public",
20 | "registry": "https://registry.npmjs.org/"
21 | },
22 | "files": [
23 | "*"
24 | ],
25 | "main": "./dist/orbcharts-core-types.umd.js",
26 | "module": "./dist/orbcharts-core-types.es.js",
27 | "types": "./dist/src/index.d.ts",
28 | "unpkg": "./dist/orbcharts-core-types.umd.js",
29 | "jsdelivr": "./dist/orbcharts-core-types.umd.js",
30 | "scripts": {
31 | "test": "echo \"Error: no test specified\" && exit 1",
32 | "build": "vite build --mode production"
33 | },
34 | "devDependencies": {
35 | "@types/d3": "^7.4.0",
36 | "ts-loader": "^9.4.2",
37 | "typescript": "^5.0.4",
38 | "vite": "^5.3.5",
39 | "vite-plugin-dts": "^3.7.3"
40 | },
41 | "dependencies": {
42 | "d3": "^7.8.5",
43 | "rxjs": "^7.8.1"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './types'
2 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/Axis.ts:
--------------------------------------------------------------------------------
1 | export type AxisPosition = 'top' | 'bottom' | 'left' | 'right'
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ChartParams.ts:
--------------------------------------------------------------------------------
1 | import type { Padding } from './Padding'
2 |
3 | export interface ChartParams {
4 | padding: Padding,
5 | highlightTarget: HighlightTarget
6 | highlightDefault: string | null
7 | colorScheme: 'dark' | 'light'
8 | colors: {
9 | light: ColorScheme
10 | dark: ColorScheme
11 | }
12 | styles: Styles
13 | transitionDuration: number
14 | transitionEase: string
15 | // [key: string]: any
16 | }
17 |
18 | export type ChartParamsPartial = Partial,
20 | colors: Partial<{
21 | light: Partial
22 | dark: Partial
23 | }>
24 | styles: Partial
25 | }>
26 |
27 | export type HighlightTarget = 'series' | 'group' | 'category' | 'datum' | 'none'
28 |
29 | export interface Styles {
30 | textSize: string | number
31 | unhighlightedOpacity: number
32 | }
33 |
34 | export interface ColorScheme {
35 | label: string[]
36 | primary: string
37 | secondary: string
38 | // white: string
39 | labelContrast: [string, string]
40 | background: string
41 | }
42 |
43 | export type ColorType = 'none' | keyof ColorScheme
44 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/Common.ts:
--------------------------------------------------------------------------------
1 | export type DeepPartial = Partial<{ [P in keyof T]: DeepPartial }>
2 |
3 | export interface ContainerSize {
4 | width: number
5 | height: number
6 | }
7 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataGrid.ts:
--------------------------------------------------------------------------------
1 | import { ComputedDatumBase, ComputedDatumBaseGrid, ComputedDatumBaseValue } from './ComputedData'
2 |
3 | export interface ComputedDatumGrid
4 | extends ComputedDatumBase, ComputedDatumBaseGrid, ComputedDatumBaseValue {
5 | // accSeriesIndex: number // 每一個grid累加的seriesIndex
6 | // gridIndex: number
7 | // groupIndex: number
8 | // groupLabel: string
9 | // axisX: number
10 | // axisY: number
11 | // axisYFromZero: number
12 | }
13 |
14 | export type ComputedDataGrid = ComputedDatumGrid[][]
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataMultiGrid.ts:
--------------------------------------------------------------------------------
1 | import { ComputedDataGrid } from './ComputedDataGrid'
2 |
3 | export type ComputedDataMultiGrid = ComputedDataGrid[]
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataMultiValue.ts:
--------------------------------------------------------------------------------
1 | import type { ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseMultiValue } from './ComputedData'
2 |
3 | export type ComputedDataMultiValue = ComputedDatumMultiValue[][]
4 |
5 | export interface ComputedDatumMultiValue extends ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseMultiValue {
6 | // datumIndex: number
7 | xValueIndex: number
8 | yValueIndex: number
9 | value: (number | null)[]
10 | // _visibleValue: (number | null)[] // 有顯示出來的值(用於tooltip)
11 | }
12 |
13 | export interface ComputedDatumWithSumMultiValue extends ComputedDatumMultiValue {
14 | sum: number
15 | }
16 |
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataRelationship.ts:
--------------------------------------------------------------------------------
1 | import type { ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseValue } from './ComputedData'
2 |
3 | export type ComputedDataRelationship = {
4 | nodes: ComputedNode[]
5 | edges: ComputedEdge[]
6 | }
7 |
8 | export interface ComputedNode extends ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseValue {
9 | // startNodes: ComputedNode[]
10 | // startNodeIds: string[]
11 | // endNodes: ComputedNode[]
12 | // endNodeIds: string[]
13 | }
14 |
15 | export interface ComputedEdge extends ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseValue {
16 | startNode: ComputedNode
17 | // startNodeId: string
18 | endNode: ComputedNode
19 | // endNodeId: string
20 | }
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataSeries.ts:
--------------------------------------------------------------------------------
1 | import { ComputedDatumBase, ComputedDatumBaseSeries, ComputedDatumBaseValue } from './ComputedData'
2 |
3 | export interface ComputedDatumSeries
4 | extends ComputedDatumBase, ComputedDatumBaseSeries, ComputedDatumBaseValue {
5 |
6 | }
7 |
8 | export type ComputedDataSeries = ComputedDatumSeries[][]
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ComputedDataTree.ts:
--------------------------------------------------------------------------------
1 | import type { ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseValue } from './ComputedData'
2 |
3 | // export type ComputedDataTree = ComputedDataTreeDatum[]
4 |
5 | // export interface ComputedDataTreeDatum extends ComputedDatum {
6 | // // id: string
7 | // children: ComputedDataTreeDatum[]
8 | // childrenIds: string[]
9 | // // ChildrenMap: Map
10 | // parent: ComputedDataTreeDatum
11 | // parentId: string
12 | // value?: number
13 | // }
14 |
15 | // 樹狀結構
16 | export interface ComputedDataTree extends ComputedDatumBase, ComputedDatumBaseCategory, ComputedDatumBaseValue {
17 | level: number
18 | seq: number
19 | children?: ComputedDataTree[]
20 | }
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ContextObserverMultiGrid.ts:
--------------------------------------------------------------------------------
1 | import { Observable } from 'rxjs'
2 | import type { ContextObserverBase } from './ContextObserver'
3 | import type { ComputedDataGrid, ComputedDatumGrid } from './ComputedDataGrid'
4 | import type { DataFormatterGrid } from './DataFormatterGrid'
5 | import type { ContextObserverGridDetail } from './ContextObserverGrid'
6 | import type { ContainerPositionScaled } from './ContextObserver'
7 | import type { ContainerSize } from './Common'
8 |
9 | export interface ContextObserverMultiGrid extends ContextObserverBase<'multiGrid', PluginParams> {
10 | textSizePx$: Observable
11 | containerSize$: Observable
12 | multiGridHighlight$: Observable
13 | // seriesLabels$: Observable
14 | multiGridContainerPosition$: Observable
15 | filteredMinMaxValue$: Observable<[number, number]>
16 | filteredStackedMinMaxValue$: Observable<[number, number]>
17 | // -- each grid --
18 | multiGridEachDetail$: Observable
19 | }
20 |
21 |
22 | export interface ContextObserverMultiGridDetail extends ContextObserverGridDetail {
23 | computedData$: Observable
24 | dataFormatter$: Observable
25 | }
--------------------------------------------------------------------------------
/packages/orbcharts-core-types/src/types/ContextObserverRelationship.ts:
--------------------------------------------------------------------------------
1 | import type { Observable } from 'rxjs'
2 | import type { ContextObserverBase } from './ContextObserver'
3 | import type { ComputedDataRelationship, ComputedNode, ComputedEdge } from './ComputedDataRelationship'
4 |
5 | export interface ContextObserverRelationship extends ContextObserverBase<'relationship', PluginParams> {
6 | textSizePx$: Observable
7 | relationshipHighlightNodes$: Observable
8 | relationshipHighlightEdges$: Observable
9 | categoryLabels$: Observable
10 | CategoryNodeMap$: Observable