local base64 = require 'neverlose/base64'
local clipboard = require 'neverlose/clipboard'
local PIDORAS = ui.create("yyyyy", "buttonm")
local PIDORAS2 = ui.create("yyyyy", "fsdfsdfd")
local bool_switch = PIDORAS:switch("sadfasdfasdfasdf")
local color_picker_t = PIDORAS:color_picker("asdfgsdfg", color(255, 255, 255))
local datacfg = {
bools = {
bool_switch
},
colors = {
color_picker_t
}
}
local JSON = panorama.loadstring([[
return {
stringify: JSON.stringify,
parse: JSON.parse
};
]])()
PIDORAS2:button(ui.get_icon 'file-export' .. " Export config", function()
local Code = {{}, {}}
for _, bools in pairs(datacfg.bools) do
table.insert(Code[1], bools:get())
end
for _, colors in pairs(datacfg.colors) do
local col = colors:get()
table.insert(Code[2], string.format('%02X%02X%02X%02X', math.floor(col.r), math.floor(col.g), math.floor(col.b), math.floor(col.a)))
end
local encoded = base64.encode(json.stringify(Code))
local clean = string.match(encoded, "[%w%+%/]+%=*")
local clean_config = clean
clipboard.set(clean_config)
end)
function import(cfg)
local datac =JSON.parse(base64.decode(cfg))
for k, v in pairs(datac) do
k = ({[1] = "bools", [2] = "colors"})[k]
for k2, v2 in pairs(v) do
if (k == "bools") then
datacfg[k][k2]:set(v2)
end
if (k == "colors") then
datacfg[k][k2]:set(color(tonumber('0x'..v2:sub(1,2)), tonumber('0x'..v2:sub(3,4)), tonumber('0x'..v2:sub(5, 6)), tonumber('0x'..v2:sub(7,8))))
end
end
end
end
PIDORAS2:button(ui.get_icon "file-import" .. " Import config", function()
import(clipboard.get())
end)