@@ -6,21 +6,19 @@ const Right = Either.Right
6
6
const Left = Either . Left
7
7
8
8
const Placeload = {
9
- $ : ( x ) => utils ( getHoldersElements ( x ) , selector ( x ) )
9
+ $ : ( x ) => utils ( boxElements ( x ) , selector ( x ) )
10
10
}
11
11
12
12
// selector :: String -> Either
13
13
const selector = ( x ) => {
14
14
const element = document . querySelector ( x )
15
- if ( element )
16
- return Right ( element )
17
- return Left ( `Don\' found ${ x } element` )
15
+ return element ? Right ( element ) : Left ( `Don\'t found ${ x } element` )
18
16
}
19
17
20
- // getHoldersElements :: String -> Either
21
- const getHoldersElements = ( x ) => {
18
+ // boxElements :: String -> IO
19
+ const boxElements = ( x ) => {
22
20
return IO ( ( ) => {
23
- return selector ( x ) . chain ( ( container ) => {
21
+ return selector ( x ) . chain ( container => {
24
22
const elementPlaceload = styl ( document . createElement ( 'div' ) ) . addClass ( 'placeload-background' ) . toDOM ( )
25
23
container . appendChild ( elementPlaceload )
26
24
return Right ( {
@@ -32,12 +30,11 @@ const getHoldersElements = (x) => {
32
30
} )
33
31
}
34
32
35
- // place :: IO -> Object
33
+ // place :: IO -> IO(Node(DOM)) -> Object
36
34
const utils = ( _IO , container ) => {
37
35
return ( {
38
36
config : ( configs ) => utils ( configIO ( _IO , configs ) , container ) ,
39
37
line : f => utils ( drawIO ( f , _IO ) , container ) ,
40
- spaceBetween : size => utils ( drawIO ( { spaceBetween : size } , _IO ) , container ) ,
41
38
fold : ( err , succ ) => {
42
39
_IO . runIO ( ) . either ( err , succ )
43
40
return {
@@ -52,7 +49,7 @@ const utils = (_IO, container) => {
52
49
} )
53
50
}
54
51
55
- // drawIO :: F -> IO -> F (IO)
52
+ // drawIO :: Function -> IO -> Function (IO)
56
53
const drawIO = ( f , _IO ) => {
57
54
return _IO . map ( ( elements ) => {
58
55
return elements . map ( el => {
@@ -66,11 +63,11 @@ const drawIO = (f, _IO) => {
66
63
67
64
// elementStyle :: Object(DOM Elements) -> Node(DOM) -> Object (fn, fn, ...)
68
65
const elementStyle = ( elements , newElement ) => ( {
69
- width : ( size ) => elementStyle ( createElemFolk ( elements , newElement , 'width' , size ) , newElement ) ,
70
- height : ( size ) => elementStyle ( createElemFolk ( elements , newElement , 'height' , size ) , newElement )
66
+ width : ( size ) => elementStyle ( newBoxStyled ( elements , newElement , 'width' , size ) , newElement ) ,
67
+ height : ( size ) => elementStyle ( newBoxStyled ( elements , newElement , 'height' , size ) , newElement )
71
68
} )
72
69
73
- // configIO :: IO -> IO
70
+ // configIO :: IO -> Object -> IO
74
71
const configIO = ( _IO , config ) => {
75
72
return _IO . map ( element => {
76
73
return element . chain ( elem => {
@@ -83,43 +80,16 @@ const configIO = (_IO, config) => {
83
80
. marginTop ( placeloadHeight )
84
81
. addClass ( 'placeload-masker' ) . toDOM ( )
85
82
86
- if ( stylWithDefault . right ) {
87
- runDrawRightLine ( elem , stylWithDefault ) . runIO ( )
88
- } else {
89
- styl ( elem . placeload ) . height ( `${ newHeightToPlaceload } px` )
90
- }
83
+ styl ( elem . placeload ) . height ( `${ newHeightToPlaceload } px` )
91
84
elem . placeload . style . animationDuration = stylWithDefault . speed
92
85
elem . placeload . appendChild ( newElement )
93
86
return element
94
87
} )
95
88
} )
96
89
}
97
90
98
- const runDrawRightLine = ( elem , stylWithDefault ) => {
99
- return IO ( ( ) => {
100
- const lastChild = elem . elems [ elem . elems . length - 2 ]
101
- const itemToRight = elem . elems [ elem . elems . length - 1 ]
102
- const elementRow = styl ( document . createElement ( 'div' ) )
103
- . addClass ( 'placeload-masker' )
104
- . width ( '100%' )
105
- . height ( '10px' )
106
- . marginTop ( '20px' )
107
- . marginLeft ( lastChild . style . marginLeft ) . toDOM ( )
108
-
109
- styl ( lastChild ) . hide ( )
110
- styl ( itemToRight )
111
- . width ( stylWithDefault . marginLeft )
112
- . height ( itemToRight . style . marginTop )
113
- . marginLeft ( lastChild . style . marginLeft )
114
- . marginTop ( lastChild . style . marginTop )
115
-
116
- styl ( elem . placeload ) . height ( `${ parseInt ( lastChild . style . marginTop ) + parseInt ( lastChild . style . height ) } px` )
117
- elem . placeload . appendChild ( elementRow )
118
- } )
119
- }
120
-
121
- // createElemFolk :: Either -> Node(DOM) -> prop -> value -> Object(DOM Elements)
122
- const createElemFolk = ( elements , newElement , prop , value ) => {
91
+ // newBoxStyled :: Either -> Node(DOM) -> String -> String -> Object(DOM Elements)
92
+ const newBoxStyled = ( elements , newElement , prop , value ) => {
123
93
return elements . map ( elem => {
124
94
const height = elem . placeload . style . height || 0
125
95
switch ( prop ) {
0 commit comments