1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | Object.defineProperty(exports, "__esModule", { value: true });
|
10 |
|
11 |
|
12 |
|
13 | var ElementExt;
|
14 | (function (ElementExt) {
|
15 | |
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | function boxSizing(element) {
|
23 | var style = window.getComputedStyle(element);
|
24 | var bt = parseFloat(style.borderTopWidth) || 0;
|
25 | var bl = parseFloat(style.borderLeftWidth) || 0;
|
26 | var br = parseFloat(style.borderRightWidth) || 0;
|
27 | var bb = parseFloat(style.borderBottomWidth) || 0;
|
28 | var pt = parseFloat(style.paddingTop) || 0;
|
29 | var pl = parseFloat(style.paddingLeft) || 0;
|
30 | var pr = parseFloat(style.paddingRight) || 0;
|
31 | var pb = parseFloat(style.paddingBottom) || 0;
|
32 | var hs = bl + pl + pr + br;
|
33 | var vs = bt + pt + pb + bb;
|
34 | return {
|
35 | borderTop: bt,
|
36 | borderLeft: bl,
|
37 | borderRight: br,
|
38 | borderBottom: bb,
|
39 | paddingTop: pt,
|
40 | paddingLeft: pl,
|
41 | paddingRight: pr,
|
42 | paddingBottom: pb,
|
43 | horizontalSum: hs,
|
44 | verticalSum: vs
|
45 | };
|
46 | }
|
47 | ElementExt.boxSizing = boxSizing;
|
48 | |
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | function sizeLimits(element) {
|
56 | var style = window.getComputedStyle(element);
|
57 | var minWidth = parseFloat(style.minWidth) || 0;
|
58 | var minHeight = parseFloat(style.minHeight) || 0;
|
59 | var maxWidth = parseFloat(style.maxWidth) || Infinity;
|
60 | var maxHeight = parseFloat(style.maxHeight) || Infinity;
|
61 | maxWidth = Math.max(minWidth, maxWidth);
|
62 | maxHeight = Math.max(minHeight, maxHeight);
|
63 | return { minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight };
|
64 | }
|
65 | ElementExt.sizeLimits = sizeLimits;
|
66 | |
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 | function hitTest(element, clientX, clientY) {
|
78 | var rect = element.getBoundingClientRect();
|
79 | return (clientX >= rect.left &&
|
80 | clientX < rect.right &&
|
81 | clientY >= rect.top &&
|
82 | clientY < rect.bottom);
|
83 | }
|
84 | ElementExt.hitTest = hitTest;
|
85 | |
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 | function scrollIntoViewIfNeeded(area, element) {
|
102 | var ar = area.getBoundingClientRect();
|
103 | var er = element.getBoundingClientRect();
|
104 | if (er.top <= ar.top && er.bottom >= ar.bottom) {
|
105 | return;
|
106 | }
|
107 | if (er.top < ar.top && er.height <= ar.height) {
|
108 | area.scrollTop -= ar.top - er.top;
|
109 | return;
|
110 | }
|
111 | if (er.bottom > ar.bottom && er.height >= ar.height) {
|
112 | area.scrollTop -= ar.top - er.top;
|
113 | return;
|
114 | }
|
115 | if (er.top < ar.top && er.height > ar.height) {
|
116 | area.scrollTop -= ar.bottom - er.bottom;
|
117 | return;
|
118 | }
|
119 | if (er.bottom > ar.bottom && er.height < ar.height) {
|
120 | area.scrollTop -= ar.bottom - er.bottom;
|
121 | return;
|
122 | }
|
123 | }
|
124 | ElementExt.scrollIntoViewIfNeeded = scrollIntoViewIfNeeded;
|
125 | })(ElementExt = exports.ElementExt || (exports.ElementExt = {}));
|