Skip to content
This repository has been archived by the owner on Jun 16, 2021. It is now read-only.

Commit

Permalink
Upgrade core to 2.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cocopon committed Apr 9, 2021
1 parent b1f7b20 commit 20fdfeb
Show file tree
Hide file tree
Showing 13 changed files with 147 additions and 255 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@
"typescript": "^3.9.9"
},
"peerDependencies": {
"tweakpane": "2.1.2"
"tweakpane": "2.3.0"
}
}
2 changes: 1 addition & 1 deletion src/constraint/interval.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Constraint} from 'tweakpane/lib/plugin/common/constraint/constraint';
import {Constraint} from 'tweakpane/lib/common/constraint/constraint';

import {Interval} from '../model/interval';

Expand Down
89 changes: 0 additions & 89 deletions src/controller/point-nd-mod.ts

This file was deleted.

30 changes: 30 additions & 0 deletions src/controller/range-slider-text-test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// TODO: Add test case
/*
describe(RangeSliderTextController.name, () => {
it('', () => {
const win = TestUtil.createWindow();
const doc = win.document;
const v = new Value(new Interval(55, 55), {
constraint: new IntervalConstraint(new StepConstraint(1)),
});
const c = new RangeSliderTextController(doc, {
baseStep: 1,
draggingScale: 1,
formatter: createNumberFormatter(2),
maxValue: 100,
minValue: 0,
parser: numberFromUnknown,
value: v,
});
const textViews = c.textController.view.textViews;
textViews[1].inputElement.value = '53';
textViews[1].inputElement.dispatchEvent(
TestUtil.createEvent(win, 'change'),
);
assert.strictEqual(textViews[0].inputElement.value, '54');
assert.strictEqual(textViews[1].inputElement.value, '54');
});
});
*/
31 changes: 21 additions & 10 deletions src/controller/range-slider-text.ts
Original file line number Diff line number Diff line change
@@ -1,44 +1,55 @@
import {ValueController} from 'tweakpane/lib/plugin/common/controller/value';
import {Formatter} from 'tweakpane/lib/plugin/common/converter/formatter';
import {Parser} from 'tweakpane/lib/plugin/common/converter/parser';
import {Value} from 'tweakpane/lib/plugin/common/model/value';
import {Constraint} from 'tweakpane/lib/common/constraint/constraint';
import {ValueController} from 'tweakpane/lib/common/controller/value';
import {Formatter} from 'tweakpane/lib/common/converter/formatter';
import {Parser} from 'tweakpane/lib/common/converter/parser';
import {Value} from 'tweakpane/lib/common/model/value';
import {ValueMap} from 'tweakpane/lib/common/model/value-map';
import {ViewProps} from 'tweakpane/lib/common/model/view-props';
import {PointNdTextController} from 'tweakpane/lib/input-binding/common/controller/point-nd-text';

import {Interval, IntervalAssembly} from '../model/interval';
import {RangeSliderTextView} from '../view/range-slider-text';
import {PointNdTextControllerMod} from './point-nd-mod';
import {RangeSliderController} from './range-slider';

interface Config {
baseStep: number;
constraint: Constraint<number> | undefined;
draggingScale: number;
formatter: Formatter<number>;
maxValue: number;
minValue: number;
parser: Parser<number>;
value: Value<Interval>;
viewProps: ViewProps;
}

export class RangeSliderTextController implements ValueController<Interval> {
public readonly value: Value<Interval>;
public readonly view: RangeSliderTextView;
public readonly viewProps: ViewProps;
private readonly sc_: RangeSliderController;
private readonly tc_: PointNdTextControllerMod<Interval>;
private readonly tc_: PointNdTextController<Interval>;

constructor(doc: Document, config: Config) {
this.value = config.value;
this.viewProps = config.viewProps;

this.sc_ = new RangeSliderController(doc, config);

const axis = {
baseStep: config.baseStep,
draggingScale: config.draggingScale,
formatter: config.formatter,
constraint: config.constraint,
textProps: new ValueMap({
draggingScale: config.draggingScale,
formatter: config.formatter,
}),
};
this.tc_ = new PointNdTextControllerMod(doc, {
this.tc_ = new PointNdTextController(doc, {
assembly: IntervalAssembly,
axes: [axis, axis],
parser: config.parser,
value: this.value,
viewProps: config.viewProps,
});

this.view = new RangeSliderTextView(doc, {
Expand All @@ -47,7 +58,7 @@ export class RangeSliderTextController implements ValueController<Interval> {
});
}

public get textController(): PointNdTextControllerMod<Interval> {
public get textController(): PointNdTextController<Interval> {
return this.tc_;
}
}
13 changes: 9 additions & 4 deletions src/controller/range-slider.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import {ValueController} from 'tweakpane/lib/plugin/common/controller/value';
import {Value} from 'tweakpane/lib/plugin/common/model/value';
import {mapRange} from 'tweakpane/lib/plugin/common/number-util';
import {ValueController} from 'tweakpane/lib/common/controller/value';
import {Value} from 'tweakpane/lib/common/model/value';
import {ViewProps} from 'tweakpane/lib/common/model/view-props';
import {mapRange} from 'tweakpane/lib/common/number-util';
import {
PointerData,
PointerHandler,
PointerHandlerEvent,
} from 'tweakpane/lib/plugin/common/view/pointer-handler';
} from 'tweakpane/lib/common/view/pointer-handler';

import {Interval} from '../model/interval';
import {RangeSliderView} from '../view/range-slider';
Expand All @@ -14,13 +15,15 @@ interface Config {
maxValue: number;
minValue: number;
value: Value<Interval>;
viewProps: ViewProps;
}

type Grabbing = 'min' | 'length' | 'max';

export class RangeSliderController implements ValueController<Interval> {
public readonly value: Value<Interval>;
public readonly view: RangeSliderView;
public readonly viewProps: ViewProps;
private maxValue_: number;
private minValue_: number;
private grabbing_: Grabbing | null = null;
Expand All @@ -33,12 +36,14 @@ export class RangeSliderController implements ValueController<Interval> {

this.maxValue_ = config.maxValue;
this.minValue_ = config.minValue;
this.viewProps = config.viewProps;

this.value = config.value;
this.view = new RangeSliderView(doc, {
maxValue: config.maxValue,
minValue: config.minValue,
value: this.value,
viewProps: config.viewProps,
});

const ptHandler = new PointerHandler(this.view.trackElement);
Expand Down
62 changes: 0 additions & 62 deletions src/controller/value-sync-mod.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/converter/interval.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {BindingTarget} from 'tweakpane/lib/plugin/common/binding/target';
import {BindingTarget} from 'tweakpane/lib/common/binding/target';

import {Interval} from '../model/interval';

Expand Down
2 changes: 1 addition & 1 deletion src/model/interval.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {PointNdAssembly} from 'tweakpane/lib/plugin/input-bindings/common/model/point-nd';
import {PointNdAssembly} from 'tweakpane/lib/input-binding/common/model/point-nd';

export interface IntervalObject {
max: number;
Expand Down
Loading

0 comments on commit 20fdfeb

Please sign in to comment.