@visactor/vseed 0.2.3 → 0.2.6

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 (37) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -3
  4. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  5. package/dist/esm/pipeline/spec/chart/pipes/axes/{axisStyle.js → bandAxisStyle.js} +1 -1
  6. package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -0
  7. package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js +1 -1
  8. package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js.map +1 -1
  9. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.d.ts +2 -0
  10. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js +50 -0
  11. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -0
  12. package/dist/esm/pipeline/spec/chart/pipes/axes/index.d.ts +1 -0
  13. package/dist/esm/pipeline/spec/chart/pipes/axes/index.js +2 -1
  14. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.d.ts +14 -0
  15. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js +78 -0
  16. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -0
  17. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +1 -1
  18. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  19. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +14 -68
  20. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  21. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +1 -1
  22. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  23. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +14 -68
  24. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  25. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +13 -59
  26. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  27. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +16 -57
  28. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  29. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js +2 -2
  30. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -1
  31. package/dist/esm/types/properties/config/crosshair/crosshair.d.ts +36 -0
  32. package/dist/esm/types/zVseed.d.ts +1 -1
  33. package/dist/umd/index.js +142 -217
  34. package/dist/umd/index.js.map +1 -1
  35. package/package.json +13 -13
  36. package/dist/esm/pipeline/spec/chart/pipes/axes/axisStyle.js.map +0 -1
  37. /package/dist/esm/pipeline/spec/chart/pipes/axes/{axisStyle.d.ts → bandAxisStyle.d.ts} +0 -0
package/dist/umd/index.js CHANGED
@@ -3068,22 +3068,9 @@
3068
3068
  if (!chunk_VCYTMP4D_n(numFormat)) return formatter(value);
3069
3069
  return String(value);
3070
3070
  };
3071
- const yLinear = (spec, context)=>{
3072
- const result = {
3073
- ...spec
3074
- };
3075
- const { advancedVSeed, vseed } = context;
3076
- const { chartType } = vseed;
3077
- const { measures, dimensions, encoding } = advancedVSeed;
3078
- const config = advancedVSeed.config?.[chartType]?.yAxis ?? {};
3079
- if (!result.axes) result.axes = [];
3080
- const isPivot = chatType_isPivotChart(vseed);
3081
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = config;
3082
- const formatter = createNumFormatter(numFormat);
3083
- const percentFormatter = createNumFormatter({
3084
- type: 'percent'
3085
- });
3086
- const linearAxis = {
3071
+ const linearAxisStyle = (config)=>{
3072
+ const { orient, visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, formatMethod, titleText, id, seriesId, sync, isPivot = false } = config;
3073
+ const axisConfig = {
3087
3074
  ...isPivot ? {
3088
3075
  range: {
3089
3076
  min,
@@ -3096,17 +3083,14 @@
3096
3083
  visible,
3097
3084
  type: log ? 'log' : 'linear',
3098
3085
  base: logBase,
3099
- orient: 'left',
3086
+ orient,
3100
3087
  nice,
3101
3088
  zero: log ? false : zero,
3102
3089
  inverse,
3103
3090
  label: {
3104
3091
  space: 8,
3105
3092
  visible: label?.visible,
3106
- formatMethod: (value)=>{
3107
- if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
3108
- return createLinearFormat(value, autoFormat, numFormat, formatter);
3109
- },
3093
+ formatMethod,
3110
3094
  style: {
3111
3095
  fill: label?.labelColor,
3112
3096
  angle: label?.labelAngle,
@@ -3116,7 +3100,7 @@
3116
3100
  },
3117
3101
  title: {
3118
3102
  visible: title?.visible,
3119
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y),
3103
+ text: titleText,
3120
3104
  style: {
3121
3105
  fill: title?.titleColor,
3122
3106
  fontSize: title?.titleFontSize,
@@ -3145,11 +3129,46 @@
3145
3129
  lineWidth: line?.lineWidth,
3146
3130
  stroke: line?.lineColor
3147
3131
  }
3148
- },
3149
- innerOffset: {
3150
- top: 12
3151
3132
  }
3152
3133
  };
3134
+ if ('bottom' === orient || 'top' === orient) axisConfig.innerOffset = {
3135
+ right: 12
3136
+ };
3137
+ else axisConfig.innerOffset = {
3138
+ top: 12
3139
+ };
3140
+ if (id) axisConfig.id = id;
3141
+ if (seriesId) axisConfig.seriesId = seriesId;
3142
+ if (sync) axisConfig.sync = sync;
3143
+ return axisConfig;
3144
+ };
3145
+ const yLinear = (spec, context)=>{
3146
+ const result = {
3147
+ ...spec
3148
+ };
3149
+ const { advancedVSeed, vseed } = context;
3150
+ const { chartType } = vseed;
3151
+ const { measures, dimensions, encoding } = advancedVSeed;
3152
+ const config = advancedVSeed.config?.[chartType]?.yAxis ?? {};
3153
+ if (!result.axes) result.axes = [];
3154
+ const isPivot = chatType_isPivotChart(vseed);
3155
+ const { autoFormat, numFormat = {} } = config;
3156
+ const formatter = createNumFormatter(numFormat);
3157
+ const percentFormatter = createNumFormatter({
3158
+ type: 'percent'
3159
+ });
3160
+ const formatMethod = (value)=>{
3161
+ if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
3162
+ return createLinearFormat(value, autoFormat, numFormat, formatter);
3163
+ };
3164
+ const titleText = config.title?.titleText || defaultTitleText(measures, dimensions, encoding.y);
3165
+ const linearAxis = linearAxisStyle({
3166
+ ...config,
3167
+ orient: 'left',
3168
+ formatMethod,
3169
+ titleText,
3170
+ isPivot
3171
+ });
3153
3172
  result.axes = [
3154
3173
  ...result.axes,
3155
3174
  linearAxis
@@ -5615,8 +5634,8 @@
5615
5634
  });
5616
5635
  spec.chartDimensionLinkage = {
5617
5636
  showTooltip: config.showTooltip ?? chartSpec?.tooltip?.dimension?.visible ?? true,
5618
- heightLimitToShowTooltipForEdgeRow: 60,
5619
- widthLimitToShowTooltipForEdgeColumn: 90,
5637
+ heightLimitToShowTooltipForEdgeRow: spec.defaultRowHeight / 2,
5638
+ widthLimitToShowTooltipForEdgeColumn: spec.defaultColWidth / 2,
5620
5639
  labelHoverOnAxis
5621
5640
  };
5622
5641
  return spec;
@@ -7157,78 +7176,23 @@
7157
7176
  const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
7158
7177
  if (!result.axes) result.axes = [];
7159
7178
  const isPivot = chatType_isPivotChart(vseed);
7160
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = config;
7179
+ const { autoFormat, numFormat = {} } = config;
7161
7180
  const formatter = createNumFormatter(numFormat);
7162
7181
  const percentFormatter = createNumFormatter({
7163
7182
  type: 'percent'
7164
7183
  });
7165
- const linearAxis = {
7166
- ...isPivot ? {
7167
- range: {
7168
- min,
7169
- max
7170
- }
7171
- } : {
7172
- min,
7173
- max
7174
- },
7175
- visible,
7176
- type: log ? 'log' : 'linear',
7177
- base: logBase,
7178
- orient: 'bottom',
7179
- nice,
7180
- zero: log ? false : zero,
7181
- inverse,
7182
- label: {
7183
- space: 8,
7184
- visible: label?.visible,
7185
- formatMethod: (value)=>{
7186
- if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
7187
- return createLinearFormat(value, autoFormat, numFormat, formatter);
7188
- },
7189
- style: {
7190
- fill: label?.labelColor,
7191
- angle: label?.labelAngle,
7192
- fontSize: label?.labelFontSize,
7193
- fontWeight: label?.labelFontWeight
7194
- }
7195
- },
7196
- title: {
7197
- visible: title?.visible,
7198
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.x),
7199
- style: {
7200
- fill: title?.titleColor,
7201
- fontSize: title?.titleFontSize,
7202
- fontWeight: title?.titleFontWeight
7203
- }
7204
- },
7205
- tick: {
7206
- visible: tick?.visible,
7207
- tickSize: tick?.tickSize,
7208
- inside: tick?.tickInside,
7209
- style: {
7210
- stroke: tick?.tickColor
7211
- }
7212
- },
7213
- grid: {
7214
- visible: grid?.visible,
7215
- style: {
7216
- lineWidth: grid?.gridWidth,
7217
- stroke: grid?.gridColor,
7218
- lineDash: grid?.gridLineDash
7219
- }
7220
- },
7221
- domainLine: {
7222
- visible: line?.visible,
7223
- style: {
7224
- lineWidth: line?.lineWidth,
7225
- stroke: line?.lineColor
7226
- }
7227
- },
7228
- innerOffset: {
7229
- right: 12
7230
- }
7184
+ const formatMethod = (value)=>{
7185
+ if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
7186
+ return createLinearFormat(value, autoFormat, numFormat, formatter);
7231
7187
  };
7188
+ const titleText = config.title?.titleText || defaultTitleText(measures, dimensions, encoding.x);
7189
+ const linearAxis = linearAxisStyle({
7190
+ ...config,
7191
+ orient: 'bottom',
7192
+ formatMethod,
7193
+ titleText,
7194
+ isPivot
7195
+ });
7232
7196
  result.axes = [
7233
7197
  ...result.axes,
7234
7198
  linearAxis
@@ -9699,66 +9663,20 @@
9699
9663
  ];
9700
9664
  const seriesId = alignTicksConfig ? seriesIds : seriesIds[0];
9701
9665
  if (!result.axes) result.axes = [];
9702
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = yAxisConfig ?? {};
9666
+ const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
9703
9667
  const formatter = createNumFormatter(numFormat);
9668
+ const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
9669
+ const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y);
9704
9670
  const linearAxis = {
9705
- visible: isEmptySecondary ? false : visible,
9706
- id,
9707
- seriesId,
9708
- type: log ? 'log' : 'linear',
9709
- base: logBase,
9710
- orient: 'left',
9711
- nice,
9712
- zero: log ? false : zero,
9713
- inverse,
9714
- max,
9715
- min,
9716
- label: {
9717
- space: 8,
9718
- visible: label?.visible,
9719
- formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
9720
- style: {
9721
- fill: label?.labelColor,
9722
- angle: label?.labelAngle,
9723
- fontSize: label?.labelFontSize,
9724
- fontWeight: label?.labelFontWeight
9725
- }
9726
- },
9727
- title: {
9728
- visible: title?.visible,
9729
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y),
9730
- style: {
9731
- fill: title?.titleColor,
9732
- fontSize: title?.titleFontSize,
9733
- fontWeight: title?.titleFontWeight
9734
- }
9735
- },
9736
- tick: {
9737
- visible: tick?.visible,
9738
- tickSize: tick?.tickSize,
9739
- inside: tick?.tickInside,
9740
- style: {
9741
- stroke: tick?.tickColor
9742
- }
9743
- },
9744
- grid: {
9745
- visible: grid?.visible,
9746
- style: {
9747
- lineWidth: grid?.gridWidth,
9748
- stroke: grid?.gridColor,
9749
- lineDash: grid?.gridLineDash
9750
- }
9751
- },
9752
- domainLine: {
9753
- visible: line?.visible,
9754
- style: {
9755
- lineWidth: line?.lineWidth,
9756
- stroke: line?.lineColor
9757
- }
9758
- },
9759
- innerOffset: {
9760
- top: 12
9761
- }
9671
+ ...linearAxisStyle({
9672
+ ...yAxisConfig,
9673
+ orient: 'left',
9674
+ formatMethod,
9675
+ titleText,
9676
+ id,
9677
+ seriesId
9678
+ }),
9679
+ visible: isEmptySecondary ? false : yAxisConfig?.visible ?? true
9762
9680
  };
9763
9681
  result.axes = [
9764
9682
  ...result.axes,
@@ -9792,66 +9710,25 @@
9792
9710
  ];
9793
9711
  const seriesId = alignTicksConfig ? seriesIds : seriesIds[1];
9794
9712
  if (!result.axes) result.axes = [];
9795
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, numFormat = {}, autoFormat } = yAxisConfig ?? {};
9713
+ const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
9796
9714
  const formatter = createNumFormatter(numFormat);
9797
- const linearAxis = {
9798
- visible: isEmptySecondary ? false : visible,
9715
+ const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
9716
+ const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y);
9717
+ const baseStyle = linearAxisStyle({
9718
+ ...yAxisConfig,
9719
+ orient: 'right',
9720
+ formatMethod,
9721
+ titleText,
9799
9722
  id,
9800
9723
  seriesId,
9801
- sync,
9802
- type: log ? 'log' : 'linear',
9803
- base: logBase,
9804
- orient: 'right',
9805
- nice,
9806
- zero: log ? false : zero,
9807
- inverse,
9808
- max,
9809
- min,
9810
- label: {
9811
- space: 8,
9812
- visible: label?.visible,
9813
- formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
9814
- style: {
9815
- fill: label?.labelColor,
9816
- angle: label?.labelAngle,
9817
- fontSize: label?.labelFontSize,
9818
- fontWeight: label?.labelFontWeight
9819
- }
9820
- },
9821
- title: {
9822
- visible: title?.visible,
9823
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y),
9824
- style: {
9825
- fill: title?.titleColor,
9826
- fontSize: title?.titleFontSize,
9827
- fontWeight: title?.titleFontWeight
9828
- }
9829
- },
9830
- tick: {
9831
- visible: tick?.visible,
9832
- tickSize: tick?.tickSize,
9833
- inside: tick?.tickInside,
9834
- style: {
9835
- stroke: tick?.tickColor
9836
- }
9837
- },
9724
+ sync
9725
+ });
9726
+ const linearAxis = {
9727
+ ...baseStyle,
9728
+ visible: isEmptySecondary ? false : yAxisConfig?.visible ?? true,
9838
9729
  grid: {
9839
- visible: onlySecondary ? true : grid?.visible,
9840
- style: {
9841
- lineWidth: grid?.gridWidth,
9842
- stroke: grid?.gridColor,
9843
- lineDash: grid?.gridLineDash
9844
- }
9845
- },
9846
- domainLine: {
9847
- visible: line?.visible,
9848
- style: {
9849
- lineWidth: line?.lineWidth,
9850
- stroke: line?.lineColor
9851
- }
9852
- },
9853
- innerOffset: {
9854
- top: 12
9730
+ ...baseStyle.grid,
9731
+ visible: onlySecondary ? true : yAxisConfig?.grid?.visible
9855
9732
  }
9856
9733
  };
9857
9734
  result.axes = [
@@ -12818,6 +12695,47 @@
12818
12695
  }
12819
12696
  };
12820
12697
  };
12698
+ const histogramXLinear = (spec, context)=>{
12699
+ const result = {
12700
+ ...spec
12701
+ };
12702
+ const { advancedVSeed, vseed } = context;
12703
+ const { encoding, dimensions, measures, dataset } = advancedVSeed;
12704
+ const { chartType } = vseed;
12705
+ const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
12706
+ if (!result.axes) result.axes = [];
12707
+ const isPivot = chatType_isPivotChart(vseed);
12708
+ const { autoFormat, numFormat = {} } = config;
12709
+ const formatter = createNumFormatter(numFormat);
12710
+ const percentFormatter = createNumFormatter({
12711
+ type: 'percent'
12712
+ });
12713
+ const formatMethod = (value)=>{
12714
+ if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
12715
+ return createLinearFormat(value, autoFormat, numFormat, formatter);
12716
+ };
12717
+ const titleText = config.title?.titleText || defaultTitleText(measures, dimensions, encoding.x);
12718
+ const linearAxis = linearAxisStyle({
12719
+ ...config,
12720
+ orient: 'bottom',
12721
+ formatMethod,
12722
+ titleText,
12723
+ isPivot
12724
+ });
12725
+ linearAxis.tick.tickMode = ()=>{
12726
+ const binValues = [];
12727
+ dataset.forEach((entry)=>{
12728
+ binValues.push(entry[BinStartMeasureId]);
12729
+ binValues.push(entry[BinEndMeasureId]);
12730
+ });
12731
+ return chunk_QJLMYOTX_i(binValues);
12732
+ };
12733
+ result.axes = [
12734
+ ...result.axes,
12735
+ linearAxis
12736
+ ];
12737
+ return result;
12738
+ };
12821
12739
  const getDefaultXFormatterOfHistogram = (advancedVSeed)=>{
12822
12740
  const { chartType, config } = advancedVSeed;
12823
12741
  const xConfig = config?.[chartType]?.xAxis;
@@ -13318,7 +13236,7 @@
13318
13236
  background_backgroundColor,
13319
13237
  datasetHistogram,
13320
13238
  progressive,
13321
- xLinear,
13239
+ histogramXLinear,
13322
13240
  yLinear,
13323
13241
  label_label,
13324
13242
  tooltipHistogram,
@@ -13342,7 +13260,7 @@
13342
13260
  background_backgroundColor,
13343
13261
  datasetHistogram,
13344
13262
  progressive,
13345
- xLinear,
13263
+ histogramXLinear,
13346
13264
  pivotAxisStyle(yLinear),
13347
13265
  label_label,
13348
13266
  tooltipHistogram,
@@ -14692,6 +14610,9 @@
14692
14610
  configurable: true
14693
14611
  });
14694
14612
  }
14613
+ function objectClone(obj) {
14614
+ return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));
14615
+ }
14695
14616
  function assignProp(target, prop, value) {
14696
14617
  Object.defineProperty(target, prop, {
14697
14618
  value,
@@ -14734,6 +14655,12 @@
14734
14655
  if (false === Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf")) return false;
14735
14656
  return true;
14736
14657
  }
14658
+ function shallowClone(o) {
14659
+ if (util_isPlainObject(o)) return {
14660
+ ...o
14661
+ };
14662
+ return o;
14663
+ }
14737
14664
  const propertyKeyTypes = new Set([
14738
14665
  "string",
14739
14666
  "number",
@@ -15504,7 +15431,7 @@
15504
15431
  const versions_version = {
15505
15432
  major: 4,
15506
15433
  minor: 0,
15507
- patch: 14
15434
+ patch: 17
15508
15435
  };
15509
15436
  const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def)=>{
15510
15437
  var _a;
@@ -15979,7 +15906,7 @@
15979
15906
  $ZodType.init(inst, def);
15980
15907
  const _normalized = cached(()=>{
15981
15908
  const keys = Object.keys(def.shape);
15982
- for (const k of keys)if (!(def.shape[k] instanceof $ZodType)) throw new Error(`Invalid element at key "${k}": expected a Zod schema`);
15909
+ for (const k of keys)if (!def.shape[k]._zod.traits.has("$ZodType")) throw new Error(`Invalid element at key "${k}": expected a Zod schema`);
15983
15910
  const okeys = optionalKeys(def.shape);
15984
15911
  return {
15985
15912
  shape: def.shape,
@@ -17535,9 +17462,7 @@
17535
17462
  const def = {
17536
17463
  type: "object",
17537
17464
  get shape () {
17538
- assignProp(this, "shape", {
17539
- ...shape
17540
- });
17465
+ assignProp(this, "shape", shape ? objectClone(shape) : {});
17541
17466
  return this.shape;
17542
17467
  },
17543
17468
  ...normalizeParams(params)
@@ -17718,7 +17643,7 @@
17718
17643
  type: "default",
17719
17644
  innerType: innerType,
17720
17645
  get defaultValue () {
17721
- return "function" == typeof defaultValue ? defaultValue() : defaultValue;
17646
+ return "function" == typeof defaultValue ? defaultValue() : shallowClone(defaultValue);
17722
17647
  }
17723
17648
  });
17724
17649
  }
@@ -17732,7 +17657,7 @@
17732
17657
  type: "prefault",
17733
17658
  innerType: innerType,
17734
17659
  get defaultValue () {
17735
- return "function" == typeof defaultValue ? defaultValue() : defaultValue;
17660
+ return "function" == typeof defaultValue ? defaultValue() : shallowClone(defaultValue);
17736
17661
  }
17737
17662
  });
17738
17663
  }