@visactor/vseed 0.1.9 → 0.1.10

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.
Files changed (76) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/pipeline/advanced/chart/pipeline/area.js +3 -2
  4. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  5. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +3 -2
  6. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  7. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +3 -2
  8. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  9. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +3 -2
  10. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  11. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +3 -2
  12. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  13. package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -2
  14. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  15. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +3 -2
  16. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  17. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +3 -2
  18. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  19. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -2
  20. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  21. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +3 -2
  22. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  23. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +3 -2
  24. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  25. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +3 -2
  26. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  27. package/dist/esm/pipeline/advanced/chart/pipeline/line.js +3 -2
  28. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  29. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -2
  30. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  31. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +3 -2
  32. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  33. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +3 -2
  34. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  35. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +3 -2
  36. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  37. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -2
  38. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  39. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js +2 -1
  40. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
  41. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js +2 -1
  42. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
  43. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +0 -1
  44. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  45. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js +6 -7
  46. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
  47. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js +5 -7
  48. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js.map +1 -1
  49. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js +5 -7
  50. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
  51. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.d.ts +2 -0
  52. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.js +12 -0
  53. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.js.map +1 -0
  54. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +2 -1
  55. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +2 -1
  56. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.d.ts +3 -3
  57. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js +2 -4
  58. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js.map +1 -1
  59. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +6 -6
  60. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  61. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +5 -4
  62. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  63. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +7 -7
  64. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  65. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +7 -7
  66. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  67. package/dist/esm/pipeline/utils/chatType.js +3 -3
  68. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  69. package/dist/esm/pipeline/utils/measures/delete.d.ts +8 -0
  70. package/dist/esm/pipeline/utils/measures/delete.js +40 -0
  71. package/dist/esm/pipeline/utils/measures/delete.js.map +1 -0
  72. package/dist/esm/pipeline/utils/measures/index.d.ts +1 -0
  73. package/dist/esm/pipeline/utils/measures/index.js +1 -0
  74. package/dist/umd/index.js +123 -70
  75. package/dist/umd/index.js.map +1 -1
  76. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = dimensions.filter((item) => tooltip.includes(item.id))\n const meas = measures.filter((item) => tooltip.includes(item.id))\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n const { format = {}, autoFormat = true } = measure\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const { measureId, foldMap } = foldInfo\n const datum = v as Datum\n const id = datum[measureId] as string\n return foldMap[id] || id\n },\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n }\n })\n return [...dimContent, ...foldMeaContent, ...meaContent]\n}\n"],"names":["tooltipScatter","spec","context","result","advancedVSeed","measures","datasetReshapeInfo","chartType","locale","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","createMarkContent","dims","item","meas","dimContent","v","datum","meaContent","id","ORIGINAL_DATA","originalData","value","measure","findMeasureById","String","format","autoFormat","isEmpty","formatter","createFormatter","autoFormatter","foldMeaContent","foldInfo","measureId","foldMap","measureValue"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { isEmpty, uniqueBy } from 'remeda'\nimport { autoFormatter, createFormatter, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n locale,\n foldInfoList,\n ),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = uniqueBy(\n dimensions.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n const meas = uniqueBy(\n measures.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n const { format = {}, autoFormat = true } = measure\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const { measureId, foldMap } = foldInfo\n const datum = v as Datum\n const id = datum[measureId] as string\n return foldMap[id] || id\n },\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n }\n })\n return [...dimContent, ...foldMeaContent, ...meaContent]\n}\n"],"names":["tooltipScatter","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","locale","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","createMarkContent","findAllMeasures","measures","dims","uniqueBy","item","meas","dimContent","v","datum","meaContent","id","ORIGINAL_DATA","originalData","value","measure","findMeasureById","String","format","autoFormat","isEmpty","formatter","createFormatter","autoFormatter","foldMeaContent","foldInfo","measureId","foldMap","measureValue"],"mappings":"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"}
@@ -10,7 +10,7 @@ const isVTable = (vseed)=>[
10
10
  const isVChart = (vseed)=>!isVTable(vseed);
11
11
  const isPivotChart = (vseed)=>{
12
12
  if (isVTable(vseed)) return false;
13
- if (isMeasureTreeWithParentId(vseed)) {
13
+ if (isMeasureTreeWithParentId(vseed.measures)) {
14
14
  const parentIds = vseed.measures?.map((measure)=>measure.parentId);
15
15
  return parentIds && unique(parentIds).length > 1;
16
16
  }
@@ -19,7 +19,7 @@ const isPivotChart = (vseed)=>{
19
19
  const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
20
20
  if (hasRowOrColumnDimension) return true;
21
21
  if ('scatter' === vseed.chartType) {
22
- if (isMeasureTreeWithChildren(vseed)) {
22
+ if (isMeasureTreeWithChildren(vseed.measures)) {
23
23
  const depth = measureDepth(vseed.measures);
24
24
  return 3 === depth;
25
25
  }
@@ -27,7 +27,7 @@ const isPivotChart = (vseed)=>{
27
27
  return false;
28
28
  }
29
29
  if ('dualAxis' === vseed.chartType) {
30
- if (isMeasureTreeWithChildren(vseed)) {
30
+ if (isMeasureTreeWithChildren(vseed.measures)) {
31
31
  const depth = measureDepth(vseed.measures);
32
32
  return 3 === depth;
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/chatType.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts"],"sourcesContent":["import type { Dimensions, DimensionGroup, DimensionTree, VSeed, Measure } from 'src/types'\nimport { measureDepth } from './measures'\nimport { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from '../advanced/chart/pipes/measures/utils'\nimport { unique } from 'remeda'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === 'table'\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === 'pivotTable'\n}\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (isMeasureTreeWithParentId(vseed)) {\n const parentIds = vseed.measures?.map((measure: Measure) => measure.parentId)\n return parentIds && unique(parentIds).length > 1\n }\n\n if (vseed.chartType === 'dualAxis' || vseed.chartType === 'scatter') {\n const { dimensions = [] } = vseed as {\n dimensions: Dimensions\n }\n const hasRowOrColumnDimension =\n dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n\n if (hasRowOrColumnDimension) {\n return true\n }\n\n if (vseed.chartType === 'scatter') {\n if (isMeasureTreeWithChildren(vseed)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) {\n return true\n }\n return false\n }\n if (vseed.chartType === 'dualAxis') {\n if (isMeasureTreeWithChildren(vseed)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n }\n\n return false\n }\n\n const { measures = [], dimensions = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasRowOrColumnDimension =\n dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n"],"names":["isTable","vseed","isPivotTable","isVTable","isVChart","isPivotChart","isMeasureTreeWithParentId","parentIds","measure","unique","dimensions","hasRowOrColumnDimension","dimension","isMeasureTreeWithChildren","depth","measureDepth","measures","hasMeasureGroup"],"mappings":";;;AAKO,MAAMA,UAAU,CAACC,QACfA,AAAoB,YAApBA,MAAM,SAAS;AAEjB,MAAMC,eAAe,CAACD,QACpBA,AAAoB,iBAApBA,MAAM,SAAS;AAEjB,MAAME,WAAW,CAACF,QAChB;QAAC;QAAS;KAAa,CAAC,QAAQ,CAACA,MAAM,SAAS;AAElD,MAAMG,WAAW,CAACH,QAChB,CAACE,SAASF;AAEZ,MAAMI,eAAe,CAACJ;IAC3B,IAAIE,SAASF,QACX,OAAO;IAGT,IAAIK,0BAA0BL,QAAQ;QACpC,MAAMM,YAAYN,MAAM,QAAQ,EAAE,IAAI,CAACO,UAAqBA,QAAQ,QAAQ;QAC5E,OAAOD,aAAaE,OAAOF,WAAW,MAAM,GAAG;IACjD;IAEA,IAAIN,AAAoB,eAApBA,MAAM,SAAS,IAAmBA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;QACnE,MAAM,EAAES,aAAa,EAAE,EAAE,GAAGT;QAG5B,MAAMU,0BACJD,cAAcA,WAAW,IAAI,CAAC,CAACE,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;QAEjG,IAAID,yBACF,OAAO;QAGT,IAAIV,AAAoB,cAApBA,MAAM,SAAS,EAAgB;YACjC,IAAIY,0BAA0BZ,QAAQ;gBACpC,MAAMa,QAAQC,aAAad,MAAM,QAAQ;gBACzC,OAAOa,AAAU,MAAVA;YACT;YAEA,IAAIb,MAAM,eAAe,IAAIA,MAAM,eAAe,CAAC,MAAM,GAAG,GAC1D,OAAO;YAET,OAAO;QACT;QACA,IAAIA,AAAoB,eAApBA,MAAM,SAAS,EAAiB;YAClC,IAAIY,0BAA0BZ,QAAQ;gBACpC,MAAMa,QAAQC,aAAad,MAAM,QAAQ;gBACzC,OAAOa,AAAU,MAAVA;YACT;YAEA,IAAIb,MAAM,YAAY,IAAIA,MAAM,YAAY,CAAC,MAAM,GAAG,GACpD,OAAO;QAEX;QAEA,OAAO;IACT;IAEA,MAAM,EAAEe,WAAW,EAAE,EAAEN,aAAa,EAAE,EAAE,GAAGT;IAK3C,MAAMU,0BACJD,cAAcA,WAAW,IAAI,CAAC,CAACE,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;IAEjG,MAAMK,kBAAkBD,YAAYA,SAAS,IAAI,CAAC,CAACR,UAA4BA,WAAWA,QAAQ,QAAQ;IAE1G,OAAOG,2BAA2BM;AACpC"}
1
+ {"version":3,"file":"pipeline/utils/chatType.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts"],"sourcesContent":["import type { Dimensions, DimensionGroup, DimensionTree, VSeed, Measure } from 'src/types'\nimport { measureDepth } from './measures'\nimport { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from '../advanced/chart/pipes/measures/utils'\nimport { unique } from 'remeda'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === 'table'\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === 'pivotTable'\n}\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (isMeasureTreeWithParentId(vseed.measures)) {\n const parentIds = vseed.measures?.map((measure: Measure) => measure.parentId)\n return parentIds && unique(parentIds).length > 1\n }\n\n if (vseed.chartType === 'dualAxis' || vseed.chartType === 'scatter') {\n const { dimensions = [] } = vseed as {\n dimensions: Dimensions\n }\n const hasRowOrColumnDimension =\n dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n\n if (hasRowOrColumnDimension) {\n return true\n }\n\n if (vseed.chartType === 'scatter') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) {\n return true\n }\n return false\n }\n if (vseed.chartType === 'dualAxis') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n }\n\n return false\n }\n\n const { measures = [], dimensions = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasRowOrColumnDimension =\n dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n"],"names":["isTable","vseed","isPivotTable","isVTable","isVChart","isPivotChart","isMeasureTreeWithParentId","parentIds","measure","unique","dimensions","hasRowOrColumnDimension","dimension","isMeasureTreeWithChildren","depth","measureDepth","measures","hasMeasureGroup"],"mappings":";;;AAKO,MAAMA,UAAU,CAACC,QACfA,AAAoB,YAApBA,MAAM,SAAS;AAEjB,MAAMC,eAAe,CAACD,QACpBA,AAAoB,iBAApBA,MAAM,SAAS;AAEjB,MAAME,WAAW,CAACF,QAChB;QAAC;QAAS;KAAa,CAAC,QAAQ,CAACA,MAAM,SAAS;AAElD,MAAMG,WAAW,CAACH,QAChB,CAACE,SAASF;AAEZ,MAAMI,eAAe,CAACJ;IAC3B,IAAIE,SAASF,QACX,OAAO;IAGT,IAAIK,0BAA0BL,MAAM,QAAQ,GAAG;QAC7C,MAAMM,YAAYN,MAAM,QAAQ,EAAE,IAAI,CAACO,UAAqBA,QAAQ,QAAQ;QAC5E,OAAOD,aAAaE,OAAOF,WAAW,MAAM,GAAG;IACjD;IAEA,IAAIN,AAAoB,eAApBA,MAAM,SAAS,IAAmBA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;QACnE,MAAM,EAAES,aAAa,EAAE,EAAE,GAAGT;QAG5B,MAAMU,0BACJD,cAAcA,WAAW,IAAI,CAAC,CAACE,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;QAEjG,IAAID,yBACF,OAAO;QAGT,IAAIV,AAAoB,cAApBA,MAAM,SAAS,EAAgB;YACjC,IAAIY,0BAA0BZ,MAAM,QAAQ,GAAG;gBAC7C,MAAMa,QAAQC,aAAad,MAAM,QAAQ;gBACzC,OAAOa,AAAU,MAAVA;YACT;YAEA,IAAIb,MAAM,eAAe,IAAIA,MAAM,eAAe,CAAC,MAAM,GAAG,GAC1D,OAAO;YAET,OAAO;QACT;QACA,IAAIA,AAAoB,eAApBA,MAAM,SAAS,EAAiB;YAClC,IAAIY,0BAA0BZ,MAAM,QAAQ,GAAG;gBAC7C,MAAMa,QAAQC,aAAad,MAAM,QAAQ;gBACzC,OAAOa,AAAU,MAAVA;YACT;YAEA,IAAIb,MAAM,YAAY,IAAIA,MAAM,YAAY,CAAC,MAAM,GAAG,GACpD,OAAO;QAEX;QAEA,OAAO;IACT;IAEA,MAAM,EAAEe,WAAW,EAAE,EAAEN,aAAa,EAAE,EAAE,GAAGT;IAK3C,MAAMU,0BACJD,cAAcA,WAAW,IAAI,CAAC,CAACE,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;IAEjG,MAAMK,kBAAkBD,YAAYA,SAAS,IAAI,CAAC,CAACR,UAA4BA,WAAWA,QAAQ,QAAQ;IAE1G,OAAOG,2BAA2BM;AACpC"}
@@ -0,0 +1,8 @@
1
+ import type { Measure, MeasureGroup, MeasureTree } from '../../../types';
2
+ /**
3
+ * @description 删除 measureTree 中符合 callback 条件的节点
4
+ * @param measureTree 待删除的 measureTree
5
+ * @param callback 回调函数,用于判断是否删除当前节点
6
+ * @returns 删除后的 measureTree
7
+ */
8
+ export declare const deleteMeasureTreeByCallback: <T extends MeasureTree>(measureTree?: T, callback?: (measure: Measure, index: number, measures: (Measure | MeasureGroup)[]) => boolean) => T | undefined;
@@ -0,0 +1,40 @@
1
+ import { isMeasure, isMeasureGroup } from "./typeGuard.js";
2
+ const deleteMeasureTreeByCallback = (measureTree, callback)=>{
3
+ if (!measureTree) return measureTree;
4
+ const stack = [
5
+ ...measureTree
6
+ ].reverse();
7
+ const parents = new Map();
8
+ measureTree.forEach((node)=>{
9
+ parents.set(node, measureTree);
10
+ });
11
+ const nodesToProcess = [];
12
+ const visited = new Set();
13
+ while(stack.length > 0){
14
+ const node = stack[stack.length - 1];
15
+ if (isMeasureGroup(node) && node.children && !visited.has(node)) {
16
+ visited.add(node);
17
+ const children = node.children.slice().reverse();
18
+ for (const child of children){
19
+ parents.set(child, node.children);
20
+ stack.push(child);
21
+ }
22
+ } else {
23
+ stack.pop();
24
+ nodesToProcess.push(node);
25
+ }
26
+ }
27
+ for (const node of nodesToProcess){
28
+ const parentList = parents.get(node);
29
+ if (parentList) {
30
+ const index = parentList.indexOf(node);
31
+ if (isMeasure(node)) {
32
+ if (callback?.(node, index, parentList)) parentList.splice(index, 1);
33
+ }
34
+ }
35
+ }
36
+ return measureTree;
37
+ };
38
+ export { deleteMeasureTreeByCallback };
39
+
40
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/utils/measures/delete.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/delete.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { isMeasure, isMeasureGroup } from './typeGuard'\n\n/**\n * @description 删除 measureTree 中符合 callback 条件的节点\n * @param measureTree 待删除的 measureTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除后的 measureTree\n */\nexport const deleteMeasureTreeByCallback = <T extends MeasureTree>(\n measureTree?: T,\n callback?: (measure: Measure, index: number, measures: (Measure | MeasureGroup)[]) => boolean,\n) => {\n if (!measureTree) {\n return measureTree\n }\n const stack: (Measure | MeasureGroup)[] = [...measureTree].reverse()\n const parents = new Map<Measure | MeasureGroup, (Measure | MeasureGroup)[]>()\n\n measureTree.forEach((node) => {\n parents.set(node, measureTree)\n })\n\n const nodesToProcess: (Measure | MeasureGroup)[] = []\n const visited = new Set<Measure | MeasureGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isMeasureGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node)\n }\n }\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isMeasure(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n }\n }\n }\n }\n\n return measureTree\n}\n"],"names":["deleteMeasureTreeByCallback","measureTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isMeasureGroup","children","child","parentList","index","isMeasure"],"mappings":";AASO,MAAMA,8BAA8B,CACzCC,aACAC;IAEA,IAAI,CAACD,aACH,OAAOA;IAET,MAAME,QAAoC;WAAIF;KAAY,CAAC,OAAO;IAClE,MAAMG,UAAU,IAAIC;IAEpBJ,YAAY,OAAO,CAAC,CAACK;QACnBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAA6C,EAAE;IACrD,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,eAAeJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YAC/DE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IAEA,KAAK,MAAMA,QAAQC,eAAgB;QACjC,MAAMM,aAAaT,QAAQ,GAAG,CAACE;QAE/B,IAAIO,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACP;YACjC,IAAIS,UAAUT,OACZ;gBAAA,IAAIJ,WAAWI,MAAMQ,OAAOD,aAC1BA,WAAW,MAAM,CAACC,OAAO;YAC3B;QAEJ;IACF;IAEA,OAAOb;AACT"}
@@ -1,3 +1,4 @@
1
1
  export * from './find';
2
2
  export * from './depth';
3
+ export * from './delete';
3
4
  export * from './typeGuard';
@@ -1,3 +1,4 @@
1
1
  export * from "./find.js";
2
2
  export * from "./depth.js";
3
+ export * from "./delete.js";
3
4
  export * from "./typeGuard.js";