Skip to content

Commit aa12d0f

Browse files
committed
feat(sf:number-widget): add support for nzChangeOnWhee
- close ng-alain/ng-alain#2634
1 parent 7dc51a2 commit aa12d0f

5 files changed

Lines changed: 66 additions & 0 deletions

File tree

packages/form/src/widgets/number/index.en-US.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Enter a number within certain range with the mouse or keyboard.
3131
| `[precision]` | precision of input value | - | - |
3232
| `[widgetWidth]` | Specify `nz-number` width | `number, string` | `90` |
3333
| `[hideStep]` | Hide step icon | `boolean` | `false` |
34+
| `[changeOnWheel]` | Change on mouse wheel | `boolean` | `true` |
3435

3536
## QA
3637

packages/form/src/widgets/number/index.zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ order: 5
3535
| `[widgetWidth]` | 指定 `nz-number` 宽度 | `number, string` | `90` |
3636
| `[hideStep]` | 隐藏步数操作区 | `boolean` | `false` |
3737
| `[change]` | 变更事件 | `(val?: number) => void` | - |
38+
| `[changeOnWheel]` | 是否启用鼠标滚轮控制 | `boolean` | `true` |
3839

3940
## QA
4041

packages/form/src/widgets/number/number.widget.spec.ts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,61 @@ describe('form: widget: number', () => {
147147
expect(ui.change).toHaveBeenCalled();
148148
}));
149149

150+
describe('[changeOnWheel]', () => {
151+
const wheelUpEvent = new WheelEvent('wheel', {
152+
deltaY: -10,
153+
deltaMode: 0,
154+
bubbles: true,
155+
cancelable: true
156+
})
157+
const wheelDownEvent = new WheelEvent('wheel', {
158+
deltaY: 10,
159+
deltaMode: 0,
160+
bubbles: true,
161+
cancelable: true
162+
})
163+
164+
it('#enabled', fakeAsync(() => {
165+
page
166+
.newSchema({
167+
properties: {
168+
count: {
169+
type: 'number',
170+
ui: {
171+
changeOnWheel: true
172+
}
173+
}
174+
}
175+
})
176+
.typeCharOnly(0)
177+
.checkValue('count', 0)
178+
.typeEvent(wheelUpEvent)
179+
.checkValue('count', 1)
180+
.typeEvent(wheelDownEvent)
181+
.checkValue('count', -1)
182+
}))
183+
184+
it('#disabled', fakeAsync(() => {
185+
page
186+
.newSchema({
187+
properties: {
188+
count: {
189+
type: 'number',
190+
ui: {
191+
changeOnWheel: false
192+
}
193+
}
194+
}
195+
})
196+
.typeCharOnly(0)
197+
.checkValue('count', 0)
198+
.typeEvent(wheelUpEvent)
199+
.checkValue('count', 0)
200+
.typeEvent(wheelDownEvent)
201+
.checkValue('count', 0)
202+
}))
203+
})
204+
150205
describe('#widgetWidth', () => {
151206
it('width number', fakeAsync(() => {
152207
const s: SFSchema = { properties: { a: { type: 'number', ui: { widgetWidth: 10 } as SFNumberWidgetSchema } } };

packages/form/src/widgets/number/number.widget.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { ControlUIWidget } from '../../widget';
2626
[nzParser]="parser"
2727
[nzPrecision]="ui.precision ?? null"
2828
[nzPlaceHolder]="ui.placeholder ?? ''"
29+
[nzChangeOnWheel]="ui.changeOnWheel ?? true"
2930
[style.width]="width"
3031
[class.ant-input-number__hide-step]="ui.hideStep"
3132
/>

packages/form/src/widgets/number/schema.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,12 @@ export interface SFNumberWidgetSchema extends SFUISchemaItem {
4646
* 变更事件
4747
*/
4848
change?: (val?: number) => void;
49+
50+
/**
51+
* Change on mouse wheel. Default is true
52+
*
53+
* 启用鼠标滚轮控制。默认启用
54+
*
55+
*/
56+
changeOnWheel?: boolean
4957
}

0 commit comments

Comments
 (0)