UNPKG

912 BPlain TextView Raw
1import Layout from '../base/layout';
2
3interface Style {
4 left: number;
5 top: number;
6 width: number;
7 height: number;
8 padding: number[];
9}
10
11class LayoutController {
12 private layout: Layout;
13
14 private getRectRange(style: Style) {
15 const { left, top, width, height, padding } = style;
16 const [paddingTop, paddingRight, paddingBottom, paddingLeft] = padding;
17 return {
18 left: left + paddingLeft,
19 top: top + paddingTop,
20 width: width - paddingLeft - paddingRight,
21 height: height - paddingTop - paddingBottom,
22 };
23 }
24
25 create(style: Style) {
26 const rectRange = this.getRectRange(style);
27 const layout = new Layout(rectRange);
28 this.layout = layout;
29 return layout;
30 }
31
32 update(style: Style) {
33 const rectRange = this.getRectRange(style);
34 const { layout } = this;
35 layout.update(rectRange);
36 return layout;
37 }
38}
39
40export default LayoutController;