Files
ubuntu-post-install/vendor/paintplus/frontend/src/js/config.js
T
Claude b2d064573f Move ai-stack and paintplus vendored source under vendor/
Matches the existing vendor/easy-asterisk convention (used by
services/asterisk.sh) instead of two one-off top-level directories that
cluttered the repo root and didn't look like anything else next to
setup.sh, lib/, services/, extras/. Only the two services' own SRC_DIR
path resolution and header comments needed updating — nothing else in
the repo referenced the old ./ai-stack / ./paintplus paths.

Also documents vendor/ in README.md's Layout section.
2026-08-04 12:55:09 +00:00

559 lines
8.5 KiB
JavaScript

//main config file
var config = {};
config.TRANSPARENCY = false;
config.TRANSPARENCY_TYPE = 'squares'; //squares, green, grey
config.LANG = 'en';
config.WIDTH = null;
config.HEIGHT = null;
config.visible_width = null;
config.visible_height = null;
config.COLOR = '#008000';
config.ALPHA = 255;
config.ZOOM = 1;
config.SNAP = true;
config.pixabay_key = '3ca2cd8af3fde33af218bea02-9021417';
config.safe_search_can_be_disabled = true;
config.google_webfonts_key = 'AIzaSyAC_Tx8RKkvN235fXCUyi_5XhSaRCzNhMg';
config.layers = [];
config.layer = null;
config.need_render = false;
config.need_render_changed_params = false; // Set specifically when param change in layer details triggered render
config.mouse = {};
config.mouse_lock = null;
config.swatches = {
default: [] // Only default used right now, object format for swatch swapping in future.
};
config.user_fonts = {};
config.guides_enabled = true;
config.guides = [];
config.ruler_active = false;
config.enable_autoresize_by_default = true;
//requires styles in reset.css
config.themes = [
'dark',
'light',
'green',
];
//no-translate BEGIN
config.FONTS = [
"Arial",
"Courier",
"Impact",
"Helvetica",
"Monospace",
"Tahoma",
"Times New Roman",
"Verdana",
"Amatic SC",
"Arimo",
"Codystar",
"Creepster",
"Indie Flower",
"Lato",
"Lora",
"Merriweather",
"Monoton",
"Montserrat",
"Mukta",
"Muli",
"Nosifer",
"Nunito",
"Oswald",
"Orbitron",
"Pacifico",
"PT Sans",
"PT Serif",
"Playfair Display",
"Poppins",
"Raleway",
"Roboto",
"Rubik",
"Special Elite",
"Tangerine",
"Titillium Web",
"Ubuntu"
];
//no-translate END
config.TOOLS = [
{
name: 'select',
title: 'Select object tool',
on_activate: 'on_activate',
attributes: {
auto_select: true,
keep_ratio: true,
},
},
{
name: 'selection',
attributes: {},
on_leave: 'on_leave',
},
{
name: 'smart_select',
title: 'Smart Select (AI) - Click to select',
attributes: {},
},
{
name: 'brush_select',
title: 'Brush Select (AI) - Paint over to select',
attributes: {},
},
{
name: 'ai_edit',
title: 'AI Edit — paint mask, then Erase / Replace / Upscale / Expand',
on_activate: 'on_activate',
attributes: {
size: {
value: 30,
min: 5,
max: 200,
},
},
},
{
name: 'magic_wand',
title: 'Magic Wand (Color Select)',
attributes: {
tolerance: {
value: 30,
min: 0,
max: 100,
},
contiguous: true,
},
},
{
name: 'lasso',
title: 'Lasso (Freehand Select)',
attributes: {},
},
{
name: 'ellipse_select',
title: 'Ellipse Selection',
attributes: {},
},
{
name: 'brush',
attributes: {
size: 4,
pressure: false,
},
},
{
name: 'pencil',
attributes: {
size: 1,
pressure: false,
},
},
{
name: 'pick_color',
attributes: {
global: false,
},
},
{
name: 'erase',
on_update: 'on_params_update',
attributes: {
size: 30,
circle: true,
strict: true,
},
},
{
name: 'magic_erase',
title: 'Magic Eraser Tool',
attributes: {
power: 15,
anti_aliasing: true,
contiguous: false,
},
},
{
name: 'fill',
attributes: {
power: 5,
anti_aliasing: false,
contiguous: false,
},
},
{
name: 'shape',
on_activate: 'on_activate',
title: 'Shapes (H)',
attributes: {
size: 3,
stroke: '#00aa00',
},
},
{
name: 'line',
visible: false,
attributes: {
size: 4,
},
},
{
name: 'arrow',
visible: false,
attributes: {
size: 4,
},
},
{
name: 'rectangle',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
radius: {
value: 0,
min: 0,
},
square: false,
},
},
{
name: 'ellipse',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
circle: false,
},
},
{
name: 'media',
title: 'Search Images',
on_activate: 'on_activate',
attributes: {
size: 30,
},
},
{
name: 'triangle',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'right_triangle',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'romb',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'parallelogram',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'trapezoid',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'plus',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'pentagon',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'hexagon',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'star',
visible: false,
attributes: {
border_size: 4,
corners: 5,
inner_radius: 40,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'heart',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'cylinder',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'human',
visible: false,
attributes: {
border_size: 4,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'tear',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'cog',
visible: false,
attributes: {
fill_color: '#555555',
},
},
{
name: 'bezier_curve',
visible: false,
attributes: {
size: 4,
},
},
{
name: 'moon',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'callout',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
{
name: 'text',
on_update: 'on_params_update',
attributes: {
font: {
value: 'Arial',
values() {
const user_font_names = Object.keys(config.user_fonts);
return ['', '[Add Font...]', ...Array.from(new Set([...config.FONTS, ...user_font_names].sort()))];
}
},
size: 40,
bold: {
value: false,
icon: `bold.svg`
},
italic: {
value: false,
icon: `italic.svg`
},
underline: {
value: false,
icon: `underline.svg`
},
strikethrough: {
value: false,
icon: `strikethrough.svg`
},
fill: '#008800',
stroke: '#000000',
stroke_size: {
value: 0,
min: 0,
step: 0.1
},
kerning: {
value: 0,
min: -999,
max: 999,
step: 1
},
leading: {
value: 0,
min: -999,
max: 999,
step: 1
}
},
},
{
name: 'gradient',
attributes: {
color_1: '#008000',
color_2: '#ffffff',
alpha: 0,
radial: false,
radial_power: 50,
},
},
{
name: 'clone',
attributes: {
size: 30,
anti_aliasing: true,
source_layer: {
value: 'Current',
values: ['Current', 'Previous'],
},
},
},
{
name: 'crop',
on_update: 'on_params_update',
on_leave: 'on_leave',
attributes: {
crop: true,
},
},
{
name: 'blur',
attributes: {
size: 30,
strength: 1,
},
},
{
name: 'sharpen',
attributes: {
size: 30,
},
},
{
name: 'desaturate',
attributes: {
size: 50,
anti_aliasing: true,
},
},
{
name: 'bulge_pinch',
title: 'Bulge/Pinch Tool',
attributes: {
radius: 80,
power: 50,
bulge: true,
},
},
{
name: 'animation',
on_activate: 'on_activate',
on_update: 'on_params_update',
on_leave: 'on_leave',
attributes: {
play: false,
delay: 400,
},
},
{
name: 'polygon',
visible: false,
attributes: {
border_size: 4,
border: true,
fill: true,
border_color: '#555555',
fill_color: '#aaaaaa',
},
},
];
//link to active tool
config.TOOL = config.TOOLS[2];
export default config;