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.
559 lines
8.5 KiB
JavaScript
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; |