|
2 | 2 | 'use strict'; |
3 | 3 |
|
4 | 4 | if (!Lampa.Manifest || Lampa.Manifest.app_digital < 300) return; |
5 | | - if (window.keyboard_settings_v14) return; |
6 | | - window.keyboard_settings_v14 = true; |
| 5 | + if (window.keyboard_settings_select) return; |
| 6 | + window.keyboard_settings_select = true; |
7 | 7 |
|
8 | 8 | const LANGUAGES = [ |
9 | 9 | { title: 'Українська', code: 'uk', key: 'keyboard_hide_uk' }, |
|
43 | 43 | } |
44 | 44 |
|
45 | 45 | // ---------------------- |
46 | | - // Меню вибору default |
| 46 | + // Select для розкладки за замовчуванням |
47 | 47 | // ---------------------- |
48 | 48 | function openDefaultMenu(){ |
49 | 49 | const current = getDefaultCode(); |
|
55 | 55 |
|
56 | 56 | Lampa.Select.show({ |
57 | 57 | title:'Розкладка за замовчуванням', |
58 | | - items:items, |
| 58 | + items: items, |
59 | 59 | onSelect:function(item){ |
60 | 60 | if(!item.value) return; |
61 | 61 | Lampa.Storage.set('keyboard_default_lang', item.value); |
|
68 | 68 | } |
69 | 69 |
|
70 | 70 | // ---------------------- |
71 | | - // Меню вибору розкладок для приховування (selector) |
| 71 | + // Select для прихованих розкладок (як закладки) |
72 | 72 | // ---------------------- |
73 | 73 | function openHideMenu(){ |
74 | 74 | const defaultCode = getDefaultCode(); |
75 | 75 |
|
76 | 76 | const items = LANGUAGES |
77 | | - .filter(lang=>lang.code!==defaultCode) // default завжди видно |
| 77 | + .filter(lang => lang.code !== defaultCode) |
78 | 78 | .map(lang=>({ |
79 | 79 | title: lang.title, |
80 | | - value: lang.code, |
| 80 | + checkbox: true, |
81 | 81 | selected: Lampa.Storage.get(lang.key,'false')==='true', |
82 | 82 | key: lang.key |
83 | 83 | })); |
84 | 84 |
|
85 | 85 | Lampa.Select.show({ |
86 | | - title:'Вибрати розкладки для приховування', |
87 | | - items:items, |
| 86 | + title:'Приховати розкладки', |
| 87 | + items: items, |
88 | 88 | onSelect:function(item){ |
89 | | - if(!item.value) return; |
90 | 89 | const current = Lampa.Storage.get(item.key,'false')==='true'; |
91 | 90 | Lampa.Storage.set(item.key, current ? 'false' : 'true'); |
92 | 91 |
|
93 | | - // Перегенеруємо клавіатуру |
| 92 | + // оновлюємо клавіатуру |
94 | 93 | if(window.keyboard) window.keyboard.init(); |
95 | 94 |
|
96 | 95 | // залишаємо меню відкритим для мультивибору |
|
103 | 102 | } |
104 | 103 |
|
105 | 104 | // ---------------------- |
106 | | - // Налаштування Lampa |
| 105 | + // Додаємо компонент у налаштування |
107 | 106 | // ---------------------- |
108 | 107 | Lampa.SettingsApi.addComponent({ |
109 | | - component:'keyboard_settings_v14', |
| 108 | + component:'keyboard_settings_select', |
110 | 109 | name:'Налаштування клавіатури', |
111 | 110 | icon:'<svg fill="#fff" width="38" height="38" viewBox="0 0 24 24"><path d="M20 5H4a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h16a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z"/></svg>' |
112 | 111 | }); |
113 | 112 |
|
| 113 | + // Default як select |
114 | 114 | Lampa.SettingsApi.addParam({ |
115 | | - component:'keyboard_settings_v14', |
| 115 | + component:'keyboard_settings_select', |
116 | 116 | param:{name:'keyboard_default_trigger', type:'trigger', default:false}, |
117 | 117 | field:{ |
118 | 118 | name:'Розкладка за замовчуванням', |
119 | 119 | description:'Вибір розкладки за замовчуванням' |
120 | 120 | }, |
121 | 121 | onRender:function(el){ |
122 | 122 | el.find('.settings-param__value').text(getDefaultTitle()); |
| 123 | + el.removeClass('toggle').addClass('selector'); // міняємо toggle на selector |
123 | 124 | el.off('hover:enter').on('hover:enter', openDefaultMenu); |
124 | 125 | } |
125 | 126 | }); |
126 | 127 |
|
| 128 | + // Приховані розкладки як checkbox select |
127 | 129 | Lampa.SettingsApi.addParam({ |
128 | | - component:'keyboard_settings_v14', |
| 130 | + component:'keyboard_settings_select', |
129 | 131 | param:{name:'keyboard_hide_trigger', type:'trigger', default:false}, |
130 | 132 | field:{ |
131 | 133 | name:'Приховати розкладки', |
132 | 134 | description:'Вибір розкладок для приховування' |
133 | 135 | }, |
134 | 136 | onRender:function(el){ |
| 137 | + el.removeClass('toggle').addClass('selector'); // міняємо toggle на selector |
135 | 138 | el.off('hover:enter').on('hover:enter', openHideMenu); |
136 | 139 | } |
137 | 140 | }); |
|
0 commit comments