1
1
export default async function ( { feature, console } ) {
2
2
const icons = {
3
- Cap : [
4
- "butt" ,
5
- "round" ,
6
- "square"
7
- ] ,
8
- Join : [
9
- "miter" ,
10
- "round" ,
11
- "bevel" ,
12
- "arcs" ,
13
- "miter-clip"
14
- ]
15
- }
3
+ Cap : [ "butt" , "round" , "square" ] ,
4
+ Join : [ "miter" , "round" , "bevel" , "arcs" , "miter-clip" ] ,
5
+ } ;
16
6
17
7
function createSection ( type ) {
18
8
const selectedItems = feature . traps . getPaper ( ) . project . selectedItems ;
@@ -21,60 +11,70 @@ export default async function ({ feature, console }) {
21
11
22
12
function changeItems ( pos , value ) {
23
13
for ( var i in selectedItems ) {
24
- if ( selectedItems [ i ] [ pos ] !== undefined ) {
14
+ if ( selectedItems [ i ] [ pos ] !== undefined ) {
25
15
selectedItems [ i ] [ pos ] = value ;
26
16
}
27
17
}
28
18
}
29
19
30
20
const row = document . createElement ( "div" ) ;
31
- row . classList . add ( ' color-picker_row-header_173LQ' )
21
+ row . classList . add ( " color-picker_row-header_173LQ" ) ;
32
22
const labelName = document . createElement ( "span" ) ;
33
- labelName . classList . add ( ' color-picker_label-name_17igY' )
34
- labelName . textContent = `Line${ type } ` ;
23
+ labelName . classList . add ( " color-picker_label-name_17igY" ) ;
24
+ labelName . textContent = `Line ${ type } ` ;
35
25
const labelReadout = document . createElement ( "span" ) ;
36
- labelReadout . classList . add ( ' color-picker_label-readout_9vjb2' )
26
+ labelReadout . classList . add ( " color-picker_label-readout_9vjb2" ) ;
37
27
if ( selectedItems . length === 1 ) {
38
28
strokeValue = `${ selectedItems [ 0 ] [ `stroke${ type } ` ] } ` ;
39
29
labelReadout . textContent = strokeValue ;
40
30
}
41
31
row . appendChild ( labelName ) ;
42
32
row . appendChild ( labelReadout ) ;
43
33
44
- const content = document . createElement ( "div" )
45
- content . classList . add ( ' color-picker_gradient-picker-row_mnu4O' )
46
- icons [ type ] . forEach ( iconName => {
34
+ const content = document . createElement ( "div" ) ;
35
+ content . classList . add ( " color-picker_gradient-picker-row_mnu4O" ) ;
36
+ icons [ type ] . forEach ( ( iconName ) => {
47
37
const icon = document . createElement ( "img" ) ;
48
- icon . classList . add ( `ste-outline-shape-options-${ iconName } ` )
38
+ icon . classList . add ( `ste-outline-shape-options-${ iconName } ` ) ;
49
39
icon . src = feature . self . getResource ( `${ type } -${ iconName } ` ) ;
50
- if ( iconName !== strokeValue ) icon . classList . add ( "ste-outline-shape-options-passive" ) ;
40
+ if ( iconName !== strokeValue )
41
+ icon . classList . add ( "ste-outline-shape-options-passive" ) ;
51
42
icon . addEventListener ( "click" , ( ) => {
52
- changeItems ( `stroke${ type } ` , `${ iconName } ` )
53
- labelReadout . textContent = iconName
54
- const elements = content . getElementsByTagName ( '*' ) ;
55
- for ( let i = 0 ; i < elements . length ; i ++ ) {
56
- if ( elements [ i ] . classList . contains ( `ste-outline-shape-options-${ iconName } ` ) ) elements [ i ] . classList . remove ( "ste-outline-shape-options-passive" )
57
- else elements [ i ] . classList . add ( "ste-outline-shape-options-passive" )
43
+ changeItems ( `stroke${ type } ` , `${ iconName } ` ) ;
44
+ labelReadout . textContent = iconName ;
45
+ const elements = content . getElementsByTagName ( "*" ) ;
46
+ for ( let i = 0 ; i < elements . length ; i ++ ) {
47
+ if (
48
+ elements [ i ] . classList . contains (
49
+ `ste-outline-shape-options-${ iconName } `
50
+ )
51
+ )
52
+ elements [ i ] . classList . remove ( "ste-outline-shape-options-passive" ) ;
53
+ else elements [ i ] . classList . add ( "ste-outline-shape-options-passive" ) ;
58
54
}
59
55
} ) ;
60
- content . appendChild ( icon )
56
+ content . appendChild ( icon ) ;
61
57
} ) ;
62
58
63
59
result . appendChild ( row ) ;
64
60
result . appendChild ( content ) ;
61
+ feature . self . hideOnDisable ( result )
65
62
return result ;
66
63
}
67
64
68
- ScratchTools . waitForElements ( "div.color-picker_swatch-row_1Q_s_" , function ( element ) {
69
- if ( feature . traps . paint ( ) . modals . fillColor ) return ;
70
- if ( feature . traps . getPaper ( ) . project . selectedItems . length < 1 ) return ;
71
- const dividerLine = document . createElement ( "div" ) ;
72
- dividerLine . classList . add ( 'color-picker_divider_3a3qR' )
73
- const sectionCap = createSection ( 'Cap' )
74
- const sectionJoin = createSection ( 'Join' )
65
+ ScratchTools . waitForElements (
66
+ "div[class*='color-picker_swatch-row_']" ,
67
+ function ( element ) {
68
+ if ( feature . traps . paint ( ) . modals . fillColor ) return ;
69
+ if ( feature . traps . getPaper ( ) . project . selectedItems . length < 1 ) return ;
70
+ const dividerLine = document . createElement ( "div" ) ;
71
+ dividerLine . classList . add ( "color-picker_divider_3a3qR" ) ;
72
+ const sectionCap = createSection ( "Cap" ) ;
73
+ const sectionJoin = createSection ( "Join" ) ;
75
74
76
- element . insertAdjacentElement ( 'afterend' , sectionJoin )
77
- element . insertAdjacentElement ( 'afterend' , sectionCap )
78
- element . insertAdjacentElement ( 'afterend' , dividerLine )
79
- } )
80
- }
75
+ element . insertAdjacentElement ( "afterend" , sectionJoin ) ;
76
+ element . insertAdjacentElement ( "afterend" , sectionCap ) ;
77
+ element . insertAdjacentElement ( "afterend" , dividerLine ) ;
78
+ }
79
+ ) ;
80
+ }
0 commit comments