@orbcharts/core 3.0.0-beta.5 → 3.0.0-beta.7
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/LICENSE +200 -200
- package/dist/orbcharts-core.es.js +1481 -1412
- package/dist/orbcharts-core.umd.js +4 -4
- package/dist/src/defaults.d.ts +22 -22
- package/dist/src/utils/orbchartsUtils.d.ts +7 -7
- package/dist/src/utils/relationshipObservables.d.ts +13 -0
- package/lib/core-types.ts +7 -7
- package/package.json +42 -42
- package/src/AbstractChart.ts +57 -57
- package/src/GridChart.ts +24 -24
- package/src/MultiGridChart.ts +24 -24
- package/src/MultiValueChart.ts +24 -24
- package/src/RelationshipChart.ts +24 -24
- package/src/SeriesChart.ts +24 -24
- package/src/TreeChart.ts +24 -24
- package/src/base/createBaseChart.ts +505 -505
- package/src/base/createBasePlugin.ts +153 -153
- package/src/base/validators/chartOptionsValidator.ts +23 -23
- package/src/base/validators/chartParamsValidator.ts +133 -133
- package/src/base/validators/elementValidator.ts +13 -13
- package/src/base/validators/pluginsValidator.ts +14 -14
- package/src/defaults.ts +235 -235
- package/src/defineGridPlugin.ts +3 -3
- package/src/defineMultiGridPlugin.ts +3 -3
- package/src/defineMultiValuePlugin.ts +3 -3
- package/src/defineNoneDataPlugin.ts +4 -4
- package/src/defineRelationshipPlugin.ts +3 -3
- package/src/defineSeriesPlugin.ts +3 -3
- package/src/defineTreePlugin.ts +3 -3
- package/src/grid/computedDataFn.ts +129 -129
- package/src/grid/contextObserverCallback.ts +176 -176
- package/src/grid/dataFormatterValidator.ts +101 -101
- package/src/grid/dataValidator.ts +12 -12
- package/src/index.ts +20 -20
- package/src/multiGrid/computedDataFn.ts +123 -123
- package/src/multiGrid/contextObserverCallback.ts +41 -41
- package/src/multiGrid/dataFormatterValidator.ts +115 -115
- package/src/multiGrid/dataValidator.ts +12 -12
- package/src/multiValue/computedDataFn.ts +110 -110
- package/src/multiValue/contextObserverCallback.ts +160 -160
- package/src/multiValue/dataFormatterValidator.ts +9 -9
- package/src/multiValue/dataValidator.ts +9 -9
- package/src/relationship/computedDataFn.ts +144 -125
- package/src/relationship/contextObserverCallback.ts +80 -12
- package/src/relationship/dataFormatterValidator.ts +9 -9
- package/src/relationship/dataValidator.ts +9 -9
- package/src/series/computedDataFn.ts +88 -88
- package/src/series/contextObserverCallback.ts +100 -100
- package/src/series/dataFormatterValidator.ts +41 -41
- package/src/series/dataValidator.ts +12 -12
- package/src/tree/computedDataFn.ts +129 -129
- package/src/tree/contextObserverCallback.ts +58 -58
- package/src/tree/dataFormatterValidator.ts +13 -13
- package/src/tree/dataValidator.ts +13 -13
- package/src/utils/commonUtils.ts +55 -55
- package/src/utils/d3Scale.ts +198 -198
- package/src/utils/errorMessage.ts +42 -42
- package/src/utils/gridObservables.ts +683 -683
- package/src/utils/index.ts +9 -9
- package/src/utils/multiGridObservables.ts +392 -392
- package/src/utils/multiValueObservables.ts +661 -661
- package/src/utils/observables.ts +219 -219
- package/src/utils/orbchartsUtils.ts +377 -377
- package/src/utils/relationshipObservables.ts +85 -0
- package/src/utils/seriesObservables.ts +175 -175
- package/src/utils/treeObservables.ts +105 -105
- package/src/utils/validator.ts +126 -126
- package/tsconfig.base.json +13 -13
- package/tsconfig.json +2 -2
- package/vite-env.d.ts +6 -6
- package/vite.config.js +22 -22
| @@ -1,15 +1,15 @@ | |
| 1 | 
            -
            import type { ChartType, PluginEntity, ValidatorResult } from '../../../lib/core-types'
         | 
| 2 | 
            -
            import { validateColumns } from '../../utils/validator'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            export function pluginsValidator (chartType: ChartType, pluginEntities: PluginEntity<any, any, any>[]): ValidatorResult {
         | 
| 5 | 
            -
              const result = validateColumns({ pluginEntities }, {
         | 
| 6 | 
            -
                pluginEntities: {
         | 
| 7 | 
            -
                  toBe: `PluginEntity<'${chartType}'>[]`,
         | 
| 8 | 
            -
                  test: (value: PluginEntity<any, any, any>[]) => {
         | 
| 9 | 
            -
                    return Array.isArray(value) && value.every((v) => v.chartType === chartType || v.chartType === 'noneData')
         | 
| 10 | 
            -
                  }
         | 
| 11 | 
            -
                }
         | 
| 12 | 
            -
              })
         | 
| 13 | 
            -
              
         | 
| 14 | 
            -
              return result
         | 
| 1 | 
            +
            import type { ChartType, PluginEntity, ValidatorResult } from '../../../lib/core-types'
         | 
| 2 | 
            +
            import { validateColumns } from '../../utils/validator'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            export function pluginsValidator (chartType: ChartType, pluginEntities: PluginEntity<any, any, any>[]): ValidatorResult {
         | 
| 5 | 
            +
              const result = validateColumns({ pluginEntities }, {
         | 
| 6 | 
            +
                pluginEntities: {
         | 
| 7 | 
            +
                  toBe: `PluginEntity<'${chartType}'>[]`,
         | 
| 8 | 
            +
                  test: (value: PluginEntity<any, any, any>[]) => {
         | 
| 9 | 
            +
                    return Array.isArray(value) && value.every((v) => v.chartType === chartType || v.chartType === 'noneData')
         | 
| 10 | 
            +
                  }
         | 
| 11 | 
            +
                }
         | 
| 12 | 
            +
              })
         | 
| 13 | 
            +
              
         | 
| 14 | 
            +
              return result
         | 
| 15 15 | 
             
            }
         | 
    
        package/src/defaults.ts
    CHANGED
    
    | @@ -1,235 +1,235 @@ | |
| 1 | 
            -
            import type {
         | 
| 2 | 
            -
              ChartOptionsPartial,
         | 
| 3 | 
            -
              DataSeries,
         | 
| 4 | 
            -
              DataGrid,
         | 
| 5 | 
            -
              DataMultiGrid,
         | 
| 6 | 
            -
              DataMultiValue,
         | 
| 7 | 
            -
              DataTree,
         | 
| 8 | 
            -
              DataRelationship,
         | 
| 9 | 
            -
              DataFormatterValueAxis,
         | 
| 10 | 
            -
              DataFormatterGroupAxis,
         | 
| 11 | 
            -
              DataFormatterContainer,
         | 
| 12 | 
            -
              DataFormatterSeries,
         | 
| 13 | 
            -
              DataFormatterGrid,
         | 
| 14 | 
            -
              DataFormatterGridGrid,
         | 
| 15 | 
            -
              DataFormatterMultiGrid,
         | 
| 16 | 
            -
              DataFormatterMultiGridGrid,
         | 
| 17 | 
            -
              DataFormatterMultiValue,
         | 
| 18 | 
            -
              DataFormatterTree,
         | 
| 19 | 
            -
              DataFormatterRelationship,
         | 
| 20 | 
            -
              ChartParams,
         | 
| 21 | 
            -
              Padding
         | 
| 22 | 
            -
            } from '../lib/core-types'
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            export const  | 
| 25 | 
            -
              // preset: {} // 預設為空
         | 
| 26 | 
            -
              width: 'auto',
         | 
| 27 | 
            -
              height: 'auto'
         | 
| 28 | 
            -
            }
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            // export const GLOBAL_DEFAULT: ChartGlobalDefault = {
         | 
| 31 | 
            -
            //   colors: ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67'],
         | 
| 32 | 
            -
            //   padding: {
         | 
| 33 | 
            -
            //     top: 50,
         | 
| 34 | 
            -
            //     right: 70,
         | 
| 35 | 
            -
            //     bottom: 50,
         | 
| 36 | 
            -
            //     left: 70
         | 
| 37 | 
            -
            //   },
         | 
| 38 | 
            -
            //   // chartWidth: '100%',
         | 
| 39 | 
            -
            //   // chartHeight: 500
         | 
| 40 | 
            -
            // }
         | 
| 41 | 
            -
             | 
| 42 | 
            -
            // export const COLORS_DEFAULT = ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67']
         | 
| 43 | 
            -
            // ['#ff7ab9', '#66dec8', '#84c8ff', '#30ad1b', '#f8c43e', '#fa5640', '#9d79d7', '#ea4f98']
         | 
| 44 | 
            -
             | 
| 45 | 
            -
            export const  | 
| 46 | 
            -
              top: 60,
         | 
| 47 | 
            -
              right: 60,
         | 
| 48 | 
            -
              bottom: 60,
         | 
| 49 | 
            -
              left: 60
         | 
| 50 | 
            -
            }
         | 
| 51 | 
            -
             | 
| 52 | 
            -
            export const  | 
| 53 | 
            -
              padding:  | 
| 54 | 
            -
              highlightTarget: 'datum',
         | 
| 55 | 
            -
              highlightDefault: null,
         | 
| 56 | 
            -
              colorScheme: 'light',
         | 
| 57 | 
            -
              colors: {
         | 
| 58 | 
            -
                light: {
         | 
| 59 | 
            -
                   | 
| 60 | 
            -
                  // primary: '#454545',
         | 
| 61 | 
            -
                  primary: '#1b1e23',
         | 
| 62 | 
            -
                  secondary: '#e1e1e1',
         | 
| 63 | 
            -
                  white: '#ffffff',
         | 
| 64 | 
            -
                  background: '#ffffff'
         | 
| 65 | 
            -
                },
         | 
| 66 | 
            -
                dark: {
         | 
| 67 | 
            -
                   | 
| 68 | 
            -
                  primary: '#f0f0f0',
         | 
| 69 | 
            -
                  secondary: '#e1e1e1',
         | 
| 70 | 
            -
                  white: '#ffffff',
         | 
| 71 | 
            -
                  background: '#000000'
         | 
| 72 | 
            -
                }
         | 
| 73 | 
            -
              },
         | 
| 74 | 
            -
              styles: {
         | 
| 75 | 
            -
                // textSize: 14,
         | 
| 76 | 
            -
                textSize: '0.875rem',
         | 
| 77 | 
            -
                unhighlightedOpacity: 0.3
         | 
| 78 | 
            -
              },
         | 
| 79 | 
            -
              transitionDuration: 800,
         | 
| 80 | 
            -
              transitionEase: 'easeCubic'
         | 
| 81 | 
            -
            }
         | 
| 82 | 
            -
             | 
| 83 | 
            -
            export const  | 
| 84 | 
            -
             | 
| 85 | 
            -
            export const  | 
| 86 | 
            -
             | 
| 87 | 
            -
            // -- Data --
         | 
| 88 | 
            -
             | 
| 89 | 
            -
            export const  | 
| 90 | 
            -
             | 
| 91 | 
            -
            export const  | 
| 92 | 
            -
             | 
| 93 | 
            -
            export const  | 
| 94 | 
            -
             | 
| 95 | 
            -
            export const  | 
| 96 | 
            -
             | 
| 97 | 
            -
            export const  | 
| 98 | 
            -
             | 
| 99 | 
            -
            export const  | 
| 100 | 
            -
              nodes: [],
         | 
| 101 | 
            -
              edges: []
         | 
| 102 | 
            -
            }
         | 
| 103 | 
            -
             | 
| 104 | 
            -
            // -- Data Formatter --
         | 
| 105 | 
            -
             | 
| 106 | 
            -
            export const  | 
| 107 | 
            -
              position: 'left',
         | 
| 108 | 
            -
              scaleDomain: ['auto', 'auto'],
         | 
| 109 | 
            -
              scaleRange: [0, 0.9],
         | 
| 110 | 
            -
              label: '',
         | 
| 111 | 
            -
            }
         | 
| 112 | 
            -
             | 
| 113 | 
            -
            export const  | 
| 114 | 
            -
              position: 'bottom',
         | 
| 115 | 
            -
              scaleDomain: [0, 'max'],
         | 
| 116 | 
            -
              scalePadding: 0.5,
         | 
| 117 | 
            -
              label: ''
         | 
| 118 | 
            -
            }
         | 
| 119 | 
            -
             | 
| 120 | 
            -
            export const  | 
| 121 | 
            -
              gap: 120,
         | 
| 122 | 
            -
              rowAmount: 1,
         | 
| 123 | 
            -
              columnAmount: 1
         | 
| 124 | 
            -
            }
         | 
| 125 | 
            -
             | 
| 126 | 
            -
            export const  | 
| 127 | 
            -
              type: 'series',
         | 
| 128 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 129 | 
            -
              sort: null,
         | 
| 130 | 
            -
              seriesLabels: [],
         | 
| 131 | 
            -
              container: {
         | 
| 132 | 
            -
                ... | 
| 133 | 
            -
              },
         | 
| 134 | 
            -
              separateSeries: false,
         | 
| 135 | 
            -
              sumSeries: false
         | 
| 136 | 
            -
              // mapSeries: (datum, rowIndex, columnIndex, { data, dataFormatter }) => {
         | 
| 137 | 
            -
              //   const seriesIndex = rowIndex >= dataFormatter.seriesLabels.length
         | 
| 138 | 
            -
              //     ? rowIndex % dataFormatter.seriesLabels.length // 如果index大於所設定的seriesLabels的數量則從頭回來算
         | 
| 139 | 
            -
              //     : rowIndex
         | 
| 140 | 
            -
              //   return dataFormatter.seriesLabels[seriesIndex]
         | 
| 141 | 
            -
              // },
         | 
| 142 | 
            -
              // colorsPredicate: (datum, rowIndex, columnIndex, { chartParams }) => {
         | 
| 143 | 
            -
              //   return rowIndex < chartParams.colors[chartParams.colorScheme].series.length
         | 
| 144 | 
            -
              //     ? chartParams.colors[chartParams.colorScheme].series[rowIndex]
         | 
| 145 | 
            -
              //     : chartParams.colors[chartParams.colorScheme].series[
         | 
| 146 | 
            -
              //       rowIndex % chartParams.colors[chartParams.colorScheme].series.length
         | 
| 147 | 
            -
              //     ]
         | 
| 148 | 
            -
              // },
         | 
| 149 | 
            -
            }
         | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
            export const  | 
| 153 | 
            -
              seriesDirection: 'row',
         | 
| 154 | 
            -
              rowLabels: [],
         | 
| 155 | 
            -
              columnLabels: [],
         | 
| 156 | 
            -
              valueAxis: { ... | 
| 157 | 
            -
              groupAxis: { ... | 
| 158 | 
            -
              separateSeries: false,
         | 
| 159 | 
            -
              // slotIndex: 0,
         | 
| 160 | 
            -
              // seriesSlotIndexes: null
         | 
| 161 | 
            -
            }
         | 
| 162 | 
            -
             | 
| 163 | 
            -
            export const  | 
| 164 | 
            -
              type: 'grid',
         | 
| 165 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 166 | 
            -
              grid: {
         | 
| 167 | 
            -
                ... | 
| 168 | 
            -
              },
         | 
| 169 | 
            -
              container: {
         | 
| 170 | 
            -
                ... | 
| 171 | 
            -
              }
         | 
| 172 | 
            -
            }
         | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
            // export const DATA_FORMATTER_MULTI_GRID_MULTI_GRID_DEFAULT: DataFormatterMultiGridMultiGrid = {
         | 
| 176 | 
            -
            //   ... | 
| 177 | 
            -
            //   slotIndex: 0,
         | 
| 178 | 
            -
            //   seriesSlotIndexes: null
         | 
| 179 | 
            -
            // }
         | 
| 180 | 
            -
             | 
| 181 | 
            -
            export const  | 
| 182 | 
            -
              ... | 
| 183 | 
            -
            }
         | 
| 184 | 
            -
             | 
| 185 | 
            -
            export const  | 
| 186 | 
            -
              type: 'multiGrid',
         | 
| 187 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 188 | 
            -
              gridList: [
         | 
| 189 | 
            -
                {
         | 
| 190 | 
            -
                  ... | 
| 191 | 
            -
                },
         | 
| 192 | 
            -
              ],
         | 
| 193 | 
            -
              separateGrid: false,
         | 
| 194 | 
            -
              container: {
         | 
| 195 | 
            -
                ... | 
| 196 | 
            -
              }
         | 
| 197 | 
            -
            }
         | 
| 198 | 
            -
             | 
| 199 | 
            -
             | 
| 200 | 
            -
            export const  | 
| 201 | 
            -
              type: 'multiValue',
         | 
| 202 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 203 | 
            -
              categoryLabels: [],
         | 
| 204 | 
            -
              xAxis: { ... | 
| 205 | 
            -
              yAxis: { ... | 
| 206 | 
            -
              container: {
         | 
| 207 | 
            -
                ... | 
| 208 | 
            -
              },
         | 
| 209 | 
            -
              separateCategory: false
         | 
| 210 | 
            -
            }
         | 
| 211 | 
            -
             | 
| 212 | 
            -
             | 
| 213 | 
            -
            export const  | 
| 214 | 
            -
              type: 'tree',
         | 
| 215 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 216 | 
            -
              // labelFormat: (datum: any) => (datum && datum.label) ?? '',
         | 
| 217 | 
            -
              categoryLabels: []
         | 
| 218 | 
            -
            }
         | 
| 219 | 
            -
             | 
| 220 | 
            -
             | 
| 221 | 
            -
            export const  | 
| 222 | 
            -
              type: 'relationship',
         | 
| 223 | 
            -
              visibleFilter: (datum, context) => true,
         | 
| 224 | 
            -
              categoryLabels: []
         | 
| 225 | 
            -
              // node: {
         | 
| 226 | 
            -
              //   // labelFormat: (node: any) => (node && node.label) ?? '',
         | 
| 227 | 
            -
              //   descriptionFormat: (node: any) => (node && node.label) ?? ''
         | 
| 228 | 
            -
              // },
         | 
| 229 | 
            -
              // edge: {
         | 
| 230 | 
            -
              //   // labelFormat: (edge: any) => (edge && edge.label) ?? '',
         | 
| 231 | 
            -
              //   descriptionFormat: (edge: any) => (edge && edge.label) ?? ''
         | 
| 232 | 
            -
              // },
         | 
| 233 | 
            -
            }
         | 
| 234 | 
            -
             | 
| 235 | 
            -
             | 
| 1 | 
            +
            import type {
         | 
| 2 | 
            +
              ChartOptionsPartial,
         | 
| 3 | 
            +
              DataSeries,
         | 
| 4 | 
            +
              DataGrid,
         | 
| 5 | 
            +
              DataMultiGrid,
         | 
| 6 | 
            +
              DataMultiValue,
         | 
| 7 | 
            +
              DataTree,
         | 
| 8 | 
            +
              DataRelationship,
         | 
| 9 | 
            +
              DataFormatterValueAxis,
         | 
| 10 | 
            +
              DataFormatterGroupAxis,
         | 
| 11 | 
            +
              DataFormatterContainer,
         | 
| 12 | 
            +
              DataFormatterSeries,
         | 
| 13 | 
            +
              DataFormatterGrid,
         | 
| 14 | 
            +
              DataFormatterGridGrid,
         | 
| 15 | 
            +
              DataFormatterMultiGrid,
         | 
| 16 | 
            +
              DataFormatterMultiGridGrid,
         | 
| 17 | 
            +
              DataFormatterMultiValue,
         | 
| 18 | 
            +
              DataFormatterTree,
         | 
| 19 | 
            +
              DataFormatterRelationship,
         | 
| 20 | 
            +
              ChartParams,
         | 
| 21 | 
            +
              Padding
         | 
| 22 | 
            +
            } from '../lib/core-types'
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            export const DEFAULT_CHART_OPTIONS: ChartOptionsPartial<any> = {
         | 
| 25 | 
            +
              // preset: {} // 預設為空
         | 
| 26 | 
            +
              width: 'auto',
         | 
| 27 | 
            +
              height: 'auto'
         | 
| 28 | 
            +
            }
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            // export const GLOBAL_DEFAULT: ChartGlobalDefault = {
         | 
| 31 | 
            +
            //   colors: ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67'],
         | 
| 32 | 
            +
            //   padding: {
         | 
| 33 | 
            +
            //     top: 50,
         | 
| 34 | 
            +
            //     right: 70,
         | 
| 35 | 
            +
            //     bottom: 50,
         | 
| 36 | 
            +
            //     left: 70
         | 
| 37 | 
            +
            //   },
         | 
| 38 | 
            +
            //   // chartWidth: '100%',
         | 
| 39 | 
            +
            //   // chartHeight: 500
         | 
| 40 | 
            +
            // }
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            // export const COLORS_DEFAULT = ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67']
         | 
| 43 | 
            +
            // ['#ff7ab9', '#66dec8', '#84c8ff', '#30ad1b', '#f8c43e', '#fa5640', '#9d79d7', '#ea4f98']
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            export const DEFAULT_PADDING: Padding = {
         | 
| 46 | 
            +
              top: 60,
         | 
| 47 | 
            +
              right: 60,
         | 
| 48 | 
            +
              bottom: 60,
         | 
| 49 | 
            +
              left: 60
         | 
| 50 | 
            +
            }
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            export const DEFAULT_CHART_PARAMS: ChartParams = {
         | 
| 53 | 
            +
              padding: DEFAULT_PADDING,
         | 
| 54 | 
            +
              highlightTarget: 'datum',
         | 
| 55 | 
            +
              highlightDefault: null,
         | 
| 56 | 
            +
              colorScheme: 'light',
         | 
| 57 | 
            +
              colors: {
         | 
| 58 | 
            +
                light: {
         | 
| 59 | 
            +
                  label: ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67'],
         | 
| 60 | 
            +
                  // primary: '#454545',
         | 
| 61 | 
            +
                  primary: '#1b1e23',
         | 
| 62 | 
            +
                  secondary: '#e1e1e1',
         | 
| 63 | 
            +
                  white: '#ffffff',
         | 
| 64 | 
            +
                  background: '#ffffff'
         | 
| 65 | 
            +
                },
         | 
| 66 | 
            +
                dark: {
         | 
| 67 | 
            +
                  label: ['#67B7DC', '#6794DC', '#6771DC', '#8067DC', '#A367DC', '#C767DC', '#DC67CE', '#DC67AB', '#DC6788', '#DC6967', '#DC8C67', '#DCAF67'],
         | 
| 68 | 
            +
                  primary: '#f0f0f0',
         | 
| 69 | 
            +
                  secondary: '#e1e1e1',
         | 
| 70 | 
            +
                  white: '#ffffff',
         | 
| 71 | 
            +
                  background: '#000000'
         | 
| 72 | 
            +
                }
         | 
| 73 | 
            +
              },
         | 
| 74 | 
            +
              styles: {
         | 
| 75 | 
            +
                // textSize: 14,
         | 
| 76 | 
            +
                textSize: '0.875rem',
         | 
| 77 | 
            +
                unhighlightedOpacity: 0.3
         | 
| 78 | 
            +
              },
         | 
| 79 | 
            +
              transitionDuration: 800,
         | 
| 80 | 
            +
              transitionEase: 'easeCubic'
         | 
| 81 | 
            +
            }
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            export const DEFAULT_CHART_WIDTH = 800
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            export const DEFAULT_CHART_HEIGHT = 500
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            // -- Data --
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            export const DEFAULT_DATA_SERIES: DataSeries = []
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            export const DEFAULT_DATA_GRID: DataGrid = []
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            export const DEFAULT_DATA_MULTI_GRID: DataMultiGrid = []
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            export const DEFAULT_DATA_MULTI_VALUE: DataMultiValue = []
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            export const DEFAULT_DATA_TREE: DataTree = []
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            export const DEFAULTL_DATA_RELATIONA: DataRelationship = {
         | 
| 100 | 
            +
              nodes: [],
         | 
| 101 | 
            +
              edges: []
         | 
| 102 | 
            +
            }
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            // -- Data Formatter --
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            export const DEFAULT_DATA_FORMATTER_VALUE_AXIS: DataFormatterValueAxis = {
         | 
| 107 | 
            +
              position: 'left',
         | 
| 108 | 
            +
              scaleDomain: ['auto', 'auto'],
         | 
| 109 | 
            +
              scaleRange: [0, 0.9],
         | 
| 110 | 
            +
              label: '',
         | 
| 111 | 
            +
            }
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            export const DEFAULT_DATA_FORMATTER_GROUP_AXIS: DataFormatterGroupAxis = {
         | 
| 114 | 
            +
              position: 'bottom',
         | 
| 115 | 
            +
              scaleDomain: [0, 'max'],
         | 
| 116 | 
            +
              scalePadding: 0.5,
         | 
| 117 | 
            +
              label: ''
         | 
| 118 | 
            +
            }
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            export const DEFAULT_DATA_FORMATTER_CONTAINER: DataFormatterContainer = {
         | 
| 121 | 
            +
              gap: 120,
         | 
| 122 | 
            +
              rowAmount: 1,
         | 
| 123 | 
            +
              columnAmount: 1
         | 
| 124 | 
            +
            }
         | 
| 125 | 
            +
             | 
| 126 | 
            +
            export const DEFAULT_DATA_FORMATTER_SERIES: DataFormatterSeries = {
         | 
| 127 | 
            +
              type: 'series',
         | 
| 128 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 129 | 
            +
              sort: null,
         | 
| 130 | 
            +
              seriesLabels: [],
         | 
| 131 | 
            +
              container: {
         | 
| 132 | 
            +
                ...DEFAULT_DATA_FORMATTER_CONTAINER
         | 
| 133 | 
            +
              },
         | 
| 134 | 
            +
              separateSeries: false,
         | 
| 135 | 
            +
              sumSeries: false
         | 
| 136 | 
            +
              // mapSeries: (datum, rowIndex, columnIndex, { data, dataFormatter }) => {
         | 
| 137 | 
            +
              //   const seriesIndex = rowIndex >= dataFormatter.seriesLabels.length
         | 
| 138 | 
            +
              //     ? rowIndex % dataFormatter.seriesLabels.length // 如果index大於所設定的seriesLabels的數量則從頭回來算
         | 
| 139 | 
            +
              //     : rowIndex
         | 
| 140 | 
            +
              //   return dataFormatter.seriesLabels[seriesIndex]
         | 
| 141 | 
            +
              // },
         | 
| 142 | 
            +
              // colorsPredicate: (datum, rowIndex, columnIndex, { chartParams }) => {
         | 
| 143 | 
            +
              //   return rowIndex < chartParams.colors[chartParams.colorScheme].series.length
         | 
| 144 | 
            +
              //     ? chartParams.colors[chartParams.colorScheme].series[rowIndex]
         | 
| 145 | 
            +
              //     : chartParams.colors[chartParams.colorScheme].series[
         | 
| 146 | 
            +
              //       rowIndex % chartParams.colors[chartParams.colorScheme].series.length
         | 
| 147 | 
            +
              //     ]
         | 
| 148 | 
            +
              // },
         | 
| 149 | 
            +
            }
         | 
| 150 | 
            +
            DEFAULT_DATA_FORMATTER_SERIES.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 151 | 
            +
             | 
| 152 | 
            +
            export const DEFAULT_DATA_FORMATTER_GRID_GRID: DataFormatterGridGrid = {
         | 
| 153 | 
            +
              seriesDirection: 'row',
         | 
| 154 | 
            +
              rowLabels: [],
         | 
| 155 | 
            +
              columnLabels: [],
         | 
| 156 | 
            +
              valueAxis: { ...DEFAULT_DATA_FORMATTER_VALUE_AXIS },
         | 
| 157 | 
            +
              groupAxis: { ...DEFAULT_DATA_FORMATTER_GROUP_AXIS, },
         | 
| 158 | 
            +
              separateSeries: false,
         | 
| 159 | 
            +
              // slotIndex: 0,
         | 
| 160 | 
            +
              // seriesSlotIndexes: null
         | 
| 161 | 
            +
            }
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            export const DEFAULT_DATA_FORMATTER_GRID: DataFormatterGrid = {
         | 
| 164 | 
            +
              type: 'grid',
         | 
| 165 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 166 | 
            +
              // grid: {
         | 
| 167 | 
            +
                ...DEFAULT_DATA_FORMATTER_GRID_GRID,
         | 
| 168 | 
            +
              // },
         | 
| 169 | 
            +
              container: {
         | 
| 170 | 
            +
                ...DEFAULT_DATA_FORMATTER_CONTAINER
         | 
| 171 | 
            +
              }
         | 
| 172 | 
            +
            }
         | 
| 173 | 
            +
            DEFAULT_DATA_FORMATTER_GRID.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 174 | 
            +
             | 
| 175 | 
            +
            // export const DATA_FORMATTER_MULTI_GRID_MULTI_GRID_DEFAULT: DataFormatterMultiGridMultiGrid = {
         | 
| 176 | 
            +
            //   ...DEFAULT_DATA_FORMATTER_GRID,
         | 
| 177 | 
            +
            //   slotIndex: 0,
         | 
| 178 | 
            +
            //   seriesSlotIndexes: null
         | 
| 179 | 
            +
            // }
         | 
| 180 | 
            +
             | 
| 181 | 
            +
            export const DEFAULT_DATA_FORMATTER_MULTI_GRID_GRID: DataFormatterMultiGridGrid = {
         | 
| 182 | 
            +
              ...DEFAULT_DATA_FORMATTER_GRID_GRID
         | 
| 183 | 
            +
            }
         | 
| 184 | 
            +
             | 
| 185 | 
            +
            export const DEFAULT_DATA_FORMATTER_MULTI_GRID: DataFormatterMultiGrid = {
         | 
| 186 | 
            +
              type: 'multiGrid',
         | 
| 187 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 188 | 
            +
              gridList: [
         | 
| 189 | 
            +
                {
         | 
| 190 | 
            +
                  ...DEFAULT_DATA_FORMATTER_MULTI_GRID_GRID
         | 
| 191 | 
            +
                },
         | 
| 192 | 
            +
              ],
         | 
| 193 | 
            +
              separateGrid: false,
         | 
| 194 | 
            +
              container: {
         | 
| 195 | 
            +
                ...DEFAULT_DATA_FORMATTER_CONTAINER
         | 
| 196 | 
            +
              }
         | 
| 197 | 
            +
            }
         | 
| 198 | 
            +
            DEFAULT_DATA_FORMATTER_MULTI_GRID.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            export const DEFAULT_DATA_FORMATTER_MULTI_VALUE: DataFormatterMultiValue = {
         | 
| 201 | 
            +
              type: 'multiValue',
         | 
| 202 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 203 | 
            +
              categoryLabels: [],
         | 
| 204 | 
            +
              xAxis: { ...DEFAULT_DATA_FORMATTER_VALUE_AXIS },
         | 
| 205 | 
            +
              yAxis: { ...DEFAULT_DATA_FORMATTER_VALUE_AXIS },
         | 
| 206 | 
            +
              container: {
         | 
| 207 | 
            +
                ...DEFAULT_DATA_FORMATTER_CONTAINER
         | 
| 208 | 
            +
              },
         | 
| 209 | 
            +
              separateCategory: false
         | 
| 210 | 
            +
            }
         | 
| 211 | 
            +
            DEFAULT_DATA_FORMATTER_MULTI_VALUE.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            export const DEFAULT_DATA_FORMATTER_TREE: DataFormatterTree = {
         | 
| 214 | 
            +
              type: 'tree',
         | 
| 215 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 216 | 
            +
              // labelFormat: (datum: any) => (datum && datum.label) ?? '',
         | 
| 217 | 
            +
              categoryLabels: []
         | 
| 218 | 
            +
            }
         | 
| 219 | 
            +
            DEFAULT_DATA_FORMATTER_TREE.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            export const DEFAULT_DATA_FORMATTER_RELATIONSHIP: DataFormatterRelationship = {
         | 
| 222 | 
            +
              type: 'relationship',
         | 
| 223 | 
            +
              visibleFilter: (datum, context) => true,
         | 
| 224 | 
            +
              categoryLabels: []
         | 
| 225 | 
            +
              // node: {
         | 
| 226 | 
            +
              //   // labelFormat: (node: any) => (node && node.label) ?? '',
         | 
| 227 | 
            +
              //   descriptionFormat: (node: any) => (node && node.label) ?? ''
         | 
| 228 | 
            +
              // },
         | 
| 229 | 
            +
              // edge: {
         | 
| 230 | 
            +
              //   // labelFormat: (edge: any) => (edge && edge.label) ?? '',
         | 
| 231 | 
            +
              //   descriptionFormat: (edge: any) => (edge && edge.label) ?? ''
         | 
| 232 | 
            +
              // },
         | 
| 233 | 
            +
            }
         | 
| 234 | 
            +
            DEFAULT_DATA_FORMATTER_RELATIONSHIP.visibleFilter.toString = () => `(datum, context) => true`
         | 
| 235 | 
            +
             | 
    
        package/src/defineGridPlugin.ts
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineGridPlugin = createBasePlugin('grid')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineGridPlugin = createBasePlugin('grid')
         | 
| @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineMultiGridPlugin = createBasePlugin('multiGrid')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineMultiGridPlugin = createBasePlugin('multiGrid')
         | 
| @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineMultiValuePlugin = createBasePlugin('multiValue')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineMultiValuePlugin = createBasePlugin('multiValue')
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            // chartType型別使用 'any' 是為了讓 plugin entity 能夠被加入到所有類別的 chart.plugins$ 中
         | 
| 4 | 
            -
            export const defineNoneDataPlugin = createBasePlugin<any>('noneData')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            // chartType型別使用 'any' 是為了讓 plugin entity 能夠被加入到所有類別的 chart.plugins$ 中
         | 
| 4 | 
            +
            export const defineNoneDataPlugin = createBasePlugin<any>('noneData')
         | 
| @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineRelationshipPlugin = createBasePlugin('relationship')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineRelationshipPlugin = createBasePlugin('relationship')
         | 
| @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineSeriesPlugin = createBasePlugin('series')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineSeriesPlugin = createBasePlugin('series')
         | 
    
        package/src/defineTreePlugin.ts
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            export const defineTreePlugin = createBasePlugin('tree')
         | 
| 1 | 
            +
            import { createBasePlugin } from './base/createBasePlugin'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            export const defineTreePlugin = createBasePlugin('tree')
         |