Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist/src/ui/gmoccapy-icon-registry.js
2026-07-02 20:25:37 -04:00

147 lines
6.9 KiB
JavaScript

const ICON_BASE = new URL("../assets/gmoccapy-icons/", import.meta.url).href;
const ICONS = {
tbtn_estop: {
active: icon("main_switch_on", "img_emergency__main_switch_on__48.png"),
inactive: icon("main_switch_off", "img_emergency_off__main_switch_off__48.png"),
default: icon("main_switch_on", "img_emergency__main_switch_on__48.png"),
},
tbtn_on: {
active: icon("power_on", "img_machine_on__power_on__48.png"),
inactive: icon("power_off", "img_machine_off__power_off__48.png"),
default: icon("power_off", "img_machine_off__power_off__48.png"),
},
rbt_manual: {
active: icon("mode_manual_active", "img_manual_on__mode_manual_active__48.png"),
inactive: icon("mode_manual_inactive", "img_manual__mode_manual_inactive__48.png"),
default: icon("mode_manual_inactive", "img_manual__mode_manual_inactive__48.png"),
},
rbt_mdi: {
active: icon("mode_mdi_active", "img_mdi_on__mode_mdi_active__48.png"),
inactive: icon("mode_mdi_inactive", "img_mdi__mode_mdi_inactive__48.png"),
default: icon("mode_mdi_inactive", "img_mdi__mode_mdi_inactive__48.png"),
},
rbt_auto: {
active: icon("mode_auto_active", "img_auto_on__mode_auto_active__48.png"),
inactive: icon("mode_auto_inactive", "img_auto__mode_auto_inactive__48.png"),
default: icon("mode_auto_inactive", "img_auto__mode_auto_inactive__48.png"),
},
tbtn_setup: {
active: icon("mode_settings_active", "img_settings_on__mode_settings_active__48.png"),
inactive: icon("mode_settings_inactive", "img_settings__mode_settings_inactive__48.png"),
default: icon("mode_settings_inactive", "img_settings__mode_settings_inactive__48.png"),
},
tbtn_user_tabs: {
active: icon("mode_user_tabs_active", "img_user_tabs_on__mode_user_tabs_active__48.png"),
inactive: icon("mode_user_tabs_inactive", "img_user_tabs__mode_user_tabs_inactive__48.png"),
default: icon("mode_user_tabs_inactive", "img_user_tabs__mode_user_tabs_inactive__48.png"),
},
btn_load: { default: icon("open_file", "img_open__open_file__32.svg") },
btn_reload: { default: icon("refresh", "img_reload1__refresh__32.png") },
btn_run: { default: icon("play", "img_run__play__32.png") },
btn_stop: { default: icon("stop", "img_stop__stop__32.png") },
tbtn_pause: {
active: icon("pause_active", "img_pause_active__pause_active__32.png"),
inactive: icon("pause", "img_pause__pause__32.png"),
default: icon("pause", "img_pause__pause__32.png"),
},
btn_step: { default: icon("step", "img_step__step__32.png") },
btn_homing: { default: icon("ref_all", "img_ref_menu__ref_all__48.png") },
btn_tool: { default: icon("hsk_mill_tool", "img_tools__hsk_mill_tool__48.png") },
btn_touch: { default: icon("touch_off", "img_touch_off__touch_off__48.png") },
ref_all: { default: icon("ref_all", "img_ref_all__ref_all__48.png") },
btn_fullscreen: {
active: icon("fullscreen_close", "img_fullsize_preview0_close__fullscreen_close__48.png"),
inactive: icon("fullscreen_open", "img_fullsize_preview0_open__fullscreen_open__48.png"),
default: icon("fullscreen_open", "img_fullsize_preview0_open__fullscreen_open__48.png"),
},
rbt_forward: {
active: icon("spindle_right_on", "img_spindle_forward_on__spindle_right_on__48.png"),
inactive: icon("spindle_right", "img_spindle_forward__spindle_right__48.png"),
default: icon("spindle_right", "img_spindle_forward__spindle_right__48.png"),
},
rbt_reverse: {
active: icon("spindle_left_on", "img_spindle_reverse_on__spindle_left_on__48.png"),
inactive: icon("spindle_left", "img_spindle_reverse__spindle_left__48.png"),
default: icon("spindle_left", "img_spindle_reverse__spindle_left__48.png"),
},
rbt_stop: {
active: icon("spindle_stop_on", "img_spindle_stop_on__spindle_stop_on__48.png"),
inactive: icon("spindle_stop", "img_spindle_stop__spindle_stop__48.png"),
default: icon("spindle_stop_on", "img_spindle_stop_on__spindle_stop_on__48.png"),
},
tbtn_flood: {
active: icon("coolant_flood_active", "img_coolant_on__coolant_flood_active__48.png"),
inactive: icon("coolant_flood_inactive", "img_coolant_off__coolant_flood_inactive__48.png"),
default: icon("coolant_flood_inactive", "img_coolant_off__coolant_flood_inactive__48.png"),
},
tbtn_mist: {
active: icon("coolant_mist_active", "img_mist_on__coolant_mist_active__48.png"),
inactive: icon("coolant_mist_inactive", "img_mist_off__coolant_mist_inactive__48.png"),
default: icon("coolant_mist_inactive", "img_mist_off__coolant_mist_inactive__48.png"),
},
btn_zoom_in: { default: icon("zoom_in", "img_zoom_in__zoom_in__24.png") },
btn_zoom_out: { default: icon("zoom_out", "img_zoom_out__zoom_out__24.png") },
rbt_view_x: { default: icon("tool_axis_x", "img_view_x__tool_axis_x__24.png") },
rbt_view_y: { default: icon("tool_axis_y", "img_view_y__tool_axis_y__24.png") },
rbt_view_z: { default: icon("tool_axis_z", "img_view_z__tool_axis_z__24.png") },
rbt_view_p: { default: icon("tool_axis_p", "img_view_p__tool_axis_p__24.png") },
tbtn_view_tool_path: { default: icon("toolpath", "img_tool_path__toolpath__24.png") },
tbtn_view_dimension: { default: icon("dimensions", "img_dimensions__dimensions__24.png") },
btn_exit: { default: icon("logout", "img_close__logout__48.png") },
btn_save_session: { default: icon("save", "img_tool_save__save__32.png") },
};
export const GMOCAPY_ICON_REGISTRY_BOUNDARY = "gmoccapy_icon_registry_from_working3_manifest_core_ui_subset";
export function getGmoccapyIcon(buttonId, variant = "default") {
const variants = ICONS[buttonId] || null;
const fallback = {
buttonId,
variant,
iconName: "text_fallback",
path: null,
fallback: true,
semanticBoundary: GMOCAPY_ICON_REGISTRY_BOUNDARY,
};
if (!variants) return fallback;
const normalizedVariant = normalizeVariant(variant);
const resolved = variants[normalizedVariant] || variants.default || variants.inactive || variants.active || null;
if (!resolved) return fallback;
return {
buttonId,
variant: normalizedVariant,
...resolved,
fallback: false,
semanticBoundary: GMOCAPY_ICON_REGISTRY_BOUNDARY,
};
}
export function listGmoccapyIconRegistryEntries() {
return Object.entries(ICONS).flatMap(([buttonId, variants]) => (
Object.entries(variants).map(([variant, entry]) => ({
buttonId,
variant,
...entry,
semanticBoundary: GMOCAPY_ICON_REGISTRY_BOUNDARY,
}))
));
}
function icon(iconName, filename) {
return {
iconName,
filename,
path: `${ICON_BASE}${filename}`,
};
}
function normalizeVariant(variant) {
if (variant === true) return "active";
if (variant === false) return "inactive";
const value = String(variant || "default").toLowerCase();
if (["active", "on", "selected", "state_on", "paused", "fullscreen active"].includes(value)) return "active";
if (["inactive", "off", "default", "state_estop_reset"].includes(value)) return value === "default" ? "default" : "inactive";
return value;
}