mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) move client code to core
Summary: This moves all client code to core, and makes minimal fix-ups to get grist and grist-core to compile correctly. The client works in core, but I'm leaving clean-up around the build and bundles to follow-up. Test Plan: existing tests pass; server-dev bundle looks sane Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2627
This commit is contained in:
32
app/client/widgets/Spinner.ts
Normal file
32
app/client/widgets/Spinner.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import * as kf from 'app/client/lib/koForm';
|
||||
import {DataRowModel} from 'app/client/models/DataRowModel';
|
||||
import {ViewFieldRec} from 'app/client/models/entities/ViewFieldRec';
|
||||
import {NumericTextBox} from 'app/client/widgets/NumericTextBox';
|
||||
import {buildNumberFormat} from 'app/common/NumberFormat';
|
||||
import {dom} from 'grainjs';
|
||||
import * as ko from 'knockout';
|
||||
|
||||
/**
|
||||
* Spinner - A widget with a text field and spinner.
|
||||
*/
|
||||
export class Spinner extends NumericTextBox {
|
||||
private _stepSize: ko.Computed<number>;
|
||||
|
||||
constructor(field: ViewFieldRec) {
|
||||
super(field);
|
||||
const resolved = this.autoDispose(ko.computed(() =>
|
||||
buildNumberFormat({numMode: this.options().numMode}).resolvedOptions()));
|
||||
this._stepSize = this.autoDispose(ko.computed(() => {
|
||||
const extraScaling = (this.options().numMode === 'percent') ? 2 : 0;
|
||||
return Math.pow(10, -(this.options().decimals || resolved().minimumFractionDigits) - extraScaling);
|
||||
}));
|
||||
}
|
||||
|
||||
public buildDom(row: DataRowModel) {
|
||||
const value = row.cells[this.field.colId.peek()];
|
||||
return dom.update(super.buildDom(row),
|
||||
dom.cls('widget_spinner'),
|
||||
kf.spinner(value, this._stepSize)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user