@@ -17,6 +17,37 @@ var EnlighterJS_Gutenberg = (function (exports) {
1717
1818 // wrapper..
1919
20+ /*eslint no-undef: 0 */
21+ var _editorConfig = EnlighterJS_EditorConfig ;
22+
23+ // get list of available themes
24+ function getThemes ( ) {
25+
26+ // add default theme (selected globally)
27+ var themes = {
28+ '' : 'Global settings (' + _editorConfig . config . theme + ')'
29+ } ;
30+
31+ // swap key/values
32+ Object . keys ( _editorConfig . themes ) . forEach ( function ( label ) {
33+ themes [ _editorConfig . themes [ label ] ] = label ;
34+ } ) ;
35+
36+ return themes ;
37+ }
38+
39+ // get list of available languages
40+ function getLanguages ( ) {
41+ var languages = { } ;
42+
43+ // swap key/values
44+ Object . keys ( _editorConfig . languages ) . forEach ( function ( label ) {
45+ languages [ _editorConfig . languages [ label ] ] = label ;
46+ } ) ;
47+
48+ return languages ;
49+ }
50+
2051 // ----------------------------------------------------------------------
2152
2253 // create a language selection menu
@@ -25,21 +56,24 @@ var EnlighterJS_Gutenberg = (function (exports) {
2556 value = _ref . value ;
2657
2758
59+ // get language list
60+ var languages = getLanguages ( ) ;
61+
2862 // generate dropdown list
29- var languageItemList = Object . keys ( EnlighterJS_EditorConfig . languages ) . map ( function ( label ) {
63+ var languageItemList = Object . keys ( languages ) . map ( function ( key ) {
3064
31- // extract language identifier
32- var languageIdentifier = EnlighterJS_EditorConfig . languages [ label ] ;
65+ // extract language label
66+ var label = languages [ key ] ;
3367
3468 return {
3569 title : label ,
3670
3771 // current item active ?
38- isActive : value === languageIdentifier ,
72+ isActive : value === key ,
3973
4074 // passthrough
4175 onClick : function onClick ( ) {
42- return onChange ( languageIdentifier ) ;
76+ return onChange ( key ) ;
4377 }
4478 } ;
4579 } ) ;
@@ -61,15 +95,18 @@ var EnlighterJS_Gutenberg = (function (exports) {
6195 value = _ref . value ;
6296
6397
98+ // get language list
99+ var languages = getLanguages ( ) ;
100+
64101 // generate dropdown list
65- var languageItemList = Object . keys ( EnlighterJS_EditorConfig . languages ) . map ( function ( label ) {
102+ var languageItemList = Object . keys ( languages ) . map ( function ( key ) {
66103
67- // extract language identifier
68- var languageIdentifier = EnlighterJS_EditorConfig . languages [ label ] ;
104+ // extract language label
105+ var label = languages [ key ] ;
69106
70107 return {
71108 label : label ,
72- value : languageIdentifier
109+ value : key
73110 } ;
74111 } ) ;
75112
@@ -90,15 +127,18 @@ var EnlighterJS_Gutenberg = (function (exports) {
90127 value = _ref . value ;
91128
92129
130+ // get themes
131+ var themes = getThemes ( ) ;
132+
93133 // generate dropdown list
94- var themeItemList = Object . keys ( EnlighterJS_EditorConfig . themes ) . map ( function ( label ) {
134+ var themeItemList = Object . keys ( themes ) . map ( function ( key ) {
95135
96- // extract theme identifier
97- var themeIdentifier = EnlighterJS_EditorConfig . themes [ label ] ;
136+ // extract theme label
137+ var label = themes [ key ] ;
98138
99139 return {
100140 label : label ,
101- value : themeIdentifier
141+ value : key
102142 } ;
103143 } ) ;
104144
@@ -114,10 +154,14 @@ var EnlighterJS_Gutenberg = (function (exports) {
114154 // ----------------------------------------------------------------------
115155
116156 // get object key by value
117- function getLanguageLabel ( lang ) {
118- return Object . keys ( EnlighterJS_EditorConfig . languages ) . find ( function ( key ) {
119- return EnlighterJS_EditorConfig . languages [ key ] === lang ;
120- } ) ;
157+ function getLanguageLabel ( key ) {
158+ var langs = getLanguages ( ) ;
159+
160+ if ( langs [ key ] ) {
161+ return langs [ key ] ;
162+ } else {
163+ return 'Unknown language' ;
164+ }
121165 }
122166
123167 // ----------------------------------------------------------------------
@@ -186,7 +230,7 @@ var EnlighterJS_Gutenberg = (function (exports) {
186230 null ,
187231 wp . element . createElement (
188232 Components . PanelBody ,
189- { title : 'Appearance' } ,
233+ { title : 'Appearance' , icon : 'admin-appearance' } ,
190234 wp . element . createElement (
191235 'p' ,
192236 null ,
@@ -220,17 +264,18 @@ var EnlighterJS_Gutenberg = (function (exports) {
220264 return setAttributes ( { theme : theme } ) ;
221265 }
222266 } ) ,
223- wp . element . createElement ( Components . ToggleControl , {
224- label : 'Show linenumbers' ,
225- checked : attributes . linenumbers ,
267+ wp . element . createElement ( Components . RadioControl , {
268+ label : 'Linenumbers' ,
269+ selected : attributes . linenumbers ,
270+ options : [ { label : 'Global settings' , value : 'x' } , { label : 'Show' , value : 'true' } , { label : 'Hide' , value : 'false' } ] ,
226271 onChange : function onChange ( linenumbers ) {
227272 return setAttributes ( { linenumbers : linenumbers } ) ;
228273 }
229274 } )
230275 ) ,
231276 wp . element . createElement (
232277 Components . PanelBody ,
233- { title : 'Codegroup' } ,
278+ { title : 'Codegroup' , initialOpen : false , icon : 'excerpt-view' } ,
234279 wp . element . createElement (
235280 'p' ,
236281 null ,
@@ -424,7 +469,7 @@ var EnlighterJS_Gutenberg = (function (exports) {
424469 className : false ,
425470
426471 // disable html edit mode
427- html : false
472+ html : true
428473 } ,
429474
430475 // handle deprecated blocks (previous plugin version)
0 commit comments