Merge pull request #281 from pe-3/feat-funnel-newProp

feat(funnel): add funnel new styles and props
diff --git a/en/option/series/funnel.md b/en/option/series/funnel.md
index 8275c99..90fd3cb 100644
--- a/en/option/series/funnel.md
+++ b/en/option/series/funnel.md
@@ -24,13 +24,13 @@
 
 <ExampleUIControlNumber default="0" step="1" />
 
-The specified minimum value.
+The specified minimum value. Invalid if `dynamicHeight` is `true`.
 
 ## max(number) = 100
 
 <ExampleUIControlNumber default="100" step="1" />
 
-The specified maximum value.
+The specified maximum value. Invalid if `dynamicHeight` is `true`.
 
 ## minSize(number|string) = '0%'
 
@@ -64,6 +64,31 @@
 
 Data sorting, which can be whether `'ascending'`, `'descending'`, `'none'`(in data order) or a function, which is the same as `Array.prototype.sort(function (a, b) { ... })`;
 
+## exitWidth(string)
+
+<ExampleUIControlPercent />
+
+This property is to set the top width of the top funnel block, taking the bottom width of the piece as the base. Invalid when dynamicArea is valid. You can flatten the top by setting it as 100% and you can make top trapezoidal by settting it between 0% 
+and 99% when showRate is true.
+
+## dynamicHeight(boolean) = 'false'
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+Set to `true` so that each data take funnel height as mapping mode base.
+
+## showRate(boolean)
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+In the default mapping mode, this property will show rate pieces between each data as mapping mode base. invalid when dynamicHeight or dynamicArea is true.(The other two modes are not currently supported due to Label limitations.)
+
+## dynamicArea(boolean)
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+This property will let each data take funnel's area, priority lower than dynamciHeight.
+
 ## gap(number) = 0
 
 <ExampleUIControlNumber default="0" min="0" step="0.5" />
@@ -90,6 +115,51 @@
     formatter = true
 ) }}
 
+## rateLabel(Object)
+
+{{ use: partial-label-desc(
+    name = "funnel rate"
+) }}
+
+### precision
+
+The precision of the conversion rate. The default value is 2.
+
+### formatter(function)
+
+_Callback function_
+
+Callback function is in form of:
+
+```js
+(params: Object|Array) => string
+```
+
+where params is the single dataset needed by formatter, which is formed as:
+
+```ts
+    preName: string,
+    // the name of previous data for conversion rate
+    nextName: string,
+    // the name of next data for conversion rate
+    preDataIndex: number,
+    // the index of previous data for conversion rate
+    nextDataIndex: number,
+    // the index of next data for conversion rate
+    rate: string,
+    // percentage of converison rate between each data
+```
+
+{{ use: partial-funnel-label(
+    prefix = "##",
+    position = false,
+    formatter = false
+) }}
+
+## overallRateLabel(Object) 
+
+The config of overallRateLabel is same as rateLabel, the function of this property is to set the overall conversion rate display. 
+
 ## labelLine(Object)
 
 The visual guide line style of label. When [label position](~series-funnel.label.position) is set as `'left'`or`'right'`, the visual guide line will show.
diff --git a/zh/option/series/funnel.md b/zh/option/series/funnel.md
index 0398468..816a65c 100644
--- a/zh/option/series/funnel.md
+++ b/zh/option/series/funnel.md
@@ -46,7 +46,7 @@
 
 <ExampleUIControlNumber default="0" step="1" />
 
-指定的数据最小值。
+指定的数据最小值。dynamicHeight为`true`时无效。
 
 ## max(number) = 100
 
@@ -66,7 +66,7 @@
 
 <ExampleUIControlPercent default="100%" />
 
-数据最大值 [max](~series-funnel.max) 映射的宽度。
+数据最大值 [max](~series-funnel.max) 映射的宽度。dynamicHeight为`true`时无效。
 
 可以是绝对的像素大小,也可以是相对[布局宽度](~series-funnel.width)的百分比。
 
@@ -86,6 +86,30 @@
 
 数据排序, 可以取 `'ascending'`,`'descending'`,`'none'`(表示按 data 顺序),或者一个函数(即 `Array.prototype.sort(function (a, b) { ... })`)。
 
+## exitWidth(string)
+
+<ExampleUIControlPercent />
+
+该属性是设置顶部漏斗的出口宽度,也就是最后一个漏斗块的上底边长度,其以自身的下底边为基准取百分比。当 dynamicArea 有效时无效。您可以通过将其设置为 100% 来展平出口。当 showRate 为 true 时,您可以通过将其设置在 0% 和 99% 之间来使顶部为梯形。
+
+## dynamicHeight(boolean)
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+设置为true使每个数据采用漏斗高度作为映射模式基准。
+
+## showRate(boolean)
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+在默认的映射模式下,此属性将显示每个数据之间的转化率块,当 dynamicHeight 或 dynamicArea 为 true 时无效。(由于label限制,其他两种模式暂时不支持)
+
+## dynamicArea(boolean)
+
+<ExampleUIControlEnum options="true,false" default="false" />
+
+这个属性会让每个数据以漏斗的面积作为映射基准,优先级低于 dynamciHeight。
+
 ## gap(number) = 0
 
 <ExampleUIControlNumber default="0" min="0" step="0.5" />
@@ -112,6 +136,54 @@
     formatter = true
 ) }}
 
+## rateLabel(Object)
+
+{{ use: partial-label-desc(
+    name = "funnel rate"
+) }}
+
+### precision
+
+漏斗数据转化率的精度.默认值是2.
+
+### formatter(string|function)
+
+_回调函数_
+
+回调函数格式:
+
+```js
+(params: Object|Array) => string
+```
+
+参数 params 是 formatter 需要的单个数据集。格式如下:
+
+```ts
+{
+    rate: string,
+    // 当前转化率
+    preName: string,
+    // 当前转化率前一个数据的名称
+    nextName: string,
+    // 当前转化率后一个数据的名称
+    preDataIndex: number,
+    // 当前转化率前一个数据的索引
+    nextDataIndex: number,
+    // 当前转化率后一个数据的索引
+}
+```
+
+{{ use: partial-funnel-label(
+    prefix = "##",
+    position = false,
+    formatter = false
+) }}
+
+
+## overallRateLabel(Object) 
+
+这个属性的配置和rateLabel的配置一致, 这个属性的功能是设置整体转化率。 
+
 ## labelLine(Object)
 
 标签的视觉引导线样式,在 [label 位置](~series-funnel.label.position) 设置为`'left'`或者`'right'`的时候会显示视觉引导线。