import { useState, useEffect, useRef } from "react"; import { useNavigate, useSearchParams } from "react-router-dom"; import Navbar from "@/components/Navbar"; import Footer from "@/components/Footer"; import { useLanguage } from "@/contexts/LanguageContext"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useScrollAnimation } from "@/hooks/useScrollAnimation"; import Chatbot from "@/components/Chatbot"; import SEO from "@/components/SEO"; import { ArrowRight, Settings, ShieldCheck, Gauge, ArrowUpFromLine, Layers, ChevronDown, ChevronUp, X, Download, Calendar, Tag, Hash, Info, Zap, Cpu, Thermometer, Shield, Calculator } from "lucide-react"; // Import product images import pneumaticPds from "@/assets/products/pneumatic-pds.png"; import pneumaticHd from "@/assets/products/pneumatic-hd.jpg"; import pneumaticPlds from "@/assets/products/pls1-series.png"; import pneumaticMplds from "@/assets/products/mpld.png"; import electricalItq from "@/assets/products/electrical-itq.jpg"; import electricalIql from "@/assets/products/electrical-iql.jpg"; import electricalItl from "@/assets/products/electrical-itl.jpg"; import electricalItm from "@/assets/products/electrical-itm.png"; import mechanicalBevel from "@/assets/products/mechanical-bevel.png"; import mechanicalWorm from "@/assets/products/worm-gearboxes.png"; import accessoriesIt from "@/assets/products/accessories-it.png"; import accessoriesHandwheels from "@/assets/products/handwheels.png"; import hydraulicActuator from "@/assets/products/hydralic.png"; import heroVideo from "@/assets/susini tork.mp4"; /* =========================================================== INTERFACES =========================================================== */ interface Product { id: string; name: string; type: string; image: string; models: string[]; description: string; torque?: string; thrust?: string; features?: string[]; applications?: string[]; certifications?: string[]; seriesLinks?: { label: string; path: string }[]; } /* =========================================================== MODEL DETAILS INTERFACE =========================================================== */ interface ModelDetails { modelNumber: string; productName: string; specifications: { torqueNm?: string; torqueLbfFt?: string; thrustKN?: string; thrustLbf?: string; gearRatio?: string; mechanicalAdvantage?: string; temperature?: string; ipRating?: string; weight?: string; mounting?: string; handwheel?: string; turns?: string; pressure?: string; cycles?: string; protection?: string; control?: string; stroke?: string; model?: string; type?: string; [key: string]: string | undefined; }; description: string; features: string[]; datasheetUrl?: string; cadUrl?: string; } /* =========================================================== MODEL DATA INTERFACES =========================================================== */ interface BaseModelData { name: string; torqueNm: string; torqueLbfFt: string; gearRatio: string; mechanicalAdvantage: string; weight: string; mounting: string; handwheel: string; } interface ThrustModelData extends BaseModelData { thrustKN: string; thrustLbf: string; turns?: string; } interface TurnsModelData extends BaseModelData { turns: string; thrustKN?: never; thrustLbf?: never; } type ModelData = BaseModelData | ThrustModelData | TurnsModelData; /* =========================================================== SERIES MODELS INTERFACE =========================================================== */ interface SeriesModels { series: string; models: ModelData[]; } /* =========================================================== MODEL DETAILS MODAL COMPONENT =========================================================== */ const ModelDetailsModal = ({ isOpen, onClose, details }: { isOpen: boolean; onClose: () => void; details: ModelDetails | null; }) => { if (!isOpen || !details) return null; return (
{/* Professional Header: Industrial Red Panel */}
Engineering Data Sheet

{details.productName} ID: {details.modelNumber}

{/* Main Scrollable Content */}
{/* Description Section: Clean & Focused */}

Product Overview

"{details.description}"

{/* Specifications Grid: Precision Thin-Border Layout */} {Object.keys(details.specifications).length > 0 && (

Technical Parameters

{Object.entries(details.specifications).map(([key, value], idx) => ( value && (
{key.replace(/([A-Z])/g, ' $1').replace(/_/g, ' ').replace('Nm', ' (Nm)').replace('Lbf Ft', ' (lbf-ft)').replace('KN', ' (kN)').replace('Lbf', ' (lbf)')}
{value}
) ))}
)} {/* Key Features: Two Column Checklist */} {details.features.length > 0 && (

Key Performance Features

    {details.features.map((feature, idx) => (
  • 0{idx + 1} {feature}
  • ))}
)} {/* Action Footer: Fixed at bottom for high visibility */}
); }; /* =========================================================== HD ACTUATOR – SERIES WISE MODELS =========================================================== */ const hdSeriesModels = [ { series: "A1 Series", models: ["A1-10", "A1-12", "A1-16", "A1-20"], }, { series: "01 Series", models: ["01-10", "01-12", "01-16", "01-18", "01-20", "01-25"], }, { series: "02 Series", models: ["02-20", "02-23", "02-25", "02-28", "02-30", "02-35", "02-38"], }, { series: "03 Series", models: ["03-35", "03-38", "03-43", "03-48"], }, { series: "04 Series", models: ["04-43", "04-48", "04-53", "04-58", "04-63"], }, { series: "05 Series", models: ["05-43", "05-48", "05-53", "05-58", "05-63", "05-73"], }, { series: "06 Series", models: ["06-53", "06-58", "06-63", "06-68", "06-73", "06-78", "06-83", "06-88"], }, { series: "07 Series", models: ["07-73", "07-78", "07-83", "07-88", "07-93"], }, ]; /* =========================================================== MAB SERIES – BEVEL GEAR ACTUATOR MODELS WITH DATA =========================================================== */ const mabSeriesModels: SeriesModels[] = [ { series: "Standard Models", models: [ { name: "MAB-075", torqueNm: "250", torqueLbfFt: "184.39", thrustKN: "75", thrustLbf: "16860.67", gearRatio: "2.5:1", mechanicalAdvantage: "2.27", weight: "9.50", mounting: "F10", handwheel: "Ø300" }, { name: "MAB-100", torqueNm: "420", torqueLbfFt: "309.78", thrustKN: "100", thrustLbf: "22480.89", gearRatio: "3:1", mechanicalAdvantage: "2.72", weight: "12.00", mounting: "F12", handwheel: "Ø300" }, { name: "MAB-125", torqueNm: "700", torqueLbfFt: "516.29", thrustKN: "125", thrustLbf: "28101.12", gearRatio: "3.5:1", mechanicalAdvantage: "3.18", weight: "22.00", mounting: "F14", handwheel: "Ø400" }, { name: "MAB-150", torqueNm: "1100", torqueLbfFt: "811.32", thrustKN: "150", thrustLbf: "33721.34", gearRatio: "3.75:1", mechanicalAdvantage: "3.40", weight: "30.00", mounting: "F16", handwheel: "Ø500" }, { name: "MAB-200", torqueNm: "1600", torqueLbfFt: "1180.10", thrustKN: "200", thrustLbf: "44961.79", gearRatio: "4:1", mechanicalAdvantage: "3.63", weight: "34.00", mounting: "F16", handwheel: "Ø600" }, { name: "MAB-300", torqueNm: "2500", torqueLbfFt: "1843.91", thrustKN: "300", thrustLbf: "67442.68", gearRatio: "5:1", mechanicalAdvantage: "4.62", weight: "70.00", mounting: "F25", handwheel: "Ø710" }, { name: "MAB-350", torqueNm: "3800", torqueLbfFt: "2802.74", thrustKN: "350", thrustLbf: "78683.13", gearRatio: "5.5:1", mechanicalAdvantage: "5.24", weight: "95.00", mounting: "F35", handwheel: "Ø710" }, { name: "MAB-400", torqueNm: "5600", torqueLbfFt: "4130.35", thrustKN: "400", thrustLbf: "89923.58", gearRatio: "6:1", mechanicalAdvantage: "5.70", weight: "130.00", mounting: "F35", handwheel: "Ø800" }, { name: "MAB-500", torqueNm: "7800", torqueLbfFt: "5752.98", thrustKN: "500", thrustLbf: "112404.47", gearRatio: "6.5:1", mechanicalAdvantage: "6.19", weight: "175.00", mounting: "F40", handwheel: "Ø900" }, { name: "MAB-1200", torqueNm: "12000", torqueLbfFt: "8850.75", thrustKN: "1200", thrustLbf: "269770.73", gearRatio: "7:1", mechanicalAdvantage: "6.70", weight: "195.00", mounting: "F40", handwheel: "Ø1000" }, { name: "MAB-2500", torqueNm: "18000", torqueLbfFt: "13276.12", thrustKN: "2500", thrustLbf: "562022.36", gearRatio: "7.5:1", mechanicalAdvantage: "7.20", weight: "390.00", mounting: "F48", handwheel: "Ø1000" } ], }, { series: "Single Stage Reduction", models: [ { name: "MAB-125-1S", torqueNm: "700", torqueLbfFt: "516.29", thrustKN: "125", thrustLbf: "28101.12", gearRatio: "7:1", mechanicalAdvantage: "5.72", weight: "30.00", mounting: "F14", handwheel: "Ø400" }, { name: "MAB-150-1S", torqueNm: "1100", torqueLbfFt: "811.32", thrustKN: "150", thrustLbf: "33721.34", gearRatio: "9.4:1", mechanicalAdvantage: "7.82", weight: "35.00", mounting: "F16", handwheel: "Ø400" }, { name: "MAB-200-1S", torqueNm: "1600", torqueLbfFt: "1180.10", thrustKN: "200", thrustLbf: "44961.79", gearRatio: "12:1", mechanicalAdvantage: "10.16", weight: "40.00", mounting: "F16", handwheel: "Ø400" }, { name: "MAB-300-1S", torqueNm: "2500", torqueLbfFt: "1843.91", thrustKN: "300", thrustLbf: "67442.68", gearRatio: "15:1", mechanicalAdvantage: "12.94", weight: "80.00", mounting: "F25", handwheel: "Ø500" }, { name: "MAB-350-1S", torqueNm: "3800", torqueLbfFt: "2802.74", thrustKN: "350", thrustLbf: "78683.13", gearRatio: "16.5:1", mechanicalAdvantage: "14.67", weight: "105.00", mounting: "F35", handwheel: "Ø800" }, { name: "MAB-400-1S", torqueNm: "5600", torqueLbfFt: "4130.35", thrustKN: "400", thrustLbf: "89923.58", gearRatio: "21:1", mechanicalAdvantage: "18.81", weight: "140.00", mounting: "F35", handwheel: "Ø800" }, { name: "MAB-500-1S", torqueNm: "7800", torqueLbfFt: "5752.98", thrustKN: "500", thrustLbf: "112404.47", gearRatio: "22.75:1", mechanicalAdvantage: "20.43", weight: "189.00", mounting: "F40", handwheel: "Ø710" }, { name: "MAB-1200-1S", torqueNm: "12000", torqueLbfFt: "8850.75", thrustKN: "1200", thrustLbf: "269770.73", gearRatio: "28:1", mechanicalAdvantage: "24.79", weight: "215.00", mounting: "F40", handwheel: "Ø710" }, { name: "MAB-2500-1S", torqueNm: "18000", torqueLbfFt: "13276.12", thrustKN: "2500", thrustLbf: "562022.36", gearRatio: "30:1", mechanicalAdvantage: "26.64", weight: "430.00", mounting: "F48", handwheel: "Ø900" } ], }, { series: "Double Stage Reduction", models: [ { name: "MAB-150-2S", torqueNm: "1100", torqueLbfFt: "811.32", thrustKN: "150", thrustLbf: "33721.34", gearRatio: "15:1", mechanicalAdvantage: "11.02", weight: "40.00", mounting: "F16", handwheel: "Ø400" }, { name: "MAB-200-2S", torqueNm: "1600", torqueLbfFt: "1180.10", thrustKN: "200", thrustLbf: "44961.79", gearRatio: "16:1", mechanicalAdvantage: "11.76", weight: "45.00", mounting: "F16", handwheel: "Ø400" }, { name: "MAB-300-2S", torqueNm: "2500", torqueLbfFt: "1843.91", thrustKN: "300", thrustLbf: "67442.68", gearRatio: "45:1", mechanicalAdvantage: "36.22", weight: "85.00", mounting: "F25", handwheel: "Ø500" }, { name: "MAB-350-2S", torqueNm: "3800", torqueLbfFt: "2802.74", thrustKN: "350", thrustLbf: "78683.13", gearRatio: "49.5:1", mechanicalAdvantage: "41.08", weight: "110.00", mounting: "F35", handwheel: "Ø800" }, { name: "MAB-400-2S", torqueNm: "5600", torqueLbfFt: "4130.35", thrustKN: "400", thrustLbf: "89923.58", gearRatio: "73.5:1", mechanicalAdvantage: "62.07", weight: "150.00", mounting: "F35", handwheel: "Ø800" }, { name: "MAB-500-2S", torqueNm: "7800", torqueLbfFt: "5752.98", thrustKN: "500", thrustLbf: "112404.47", gearRatio: "79.63:1", mechanicalAdvantage: "67.41", weight: "200.00", mounting: "F40", handwheel: "Ø710" }, { name: "MAB-1200-2S", torqueNm: "12000", torqueLbfFt: "8850.75", thrustKN: "1200", thrustLbf: "269770.73", gearRatio: "112:1", mechanicalAdvantage: "91.72", weight: "230.00", mounting: "F40", handwheel: "Ø710" }, { name: "MAB-2500-2S", torqueNm: "18000", torqueLbfFt: "13276.12", thrustKN: "2500", thrustLbf: "562022.36", gearRatio: "151.87:1", mechanicalAdvantage: "133.13", weight: "450.00", mounting: "F48", handwheel: "Ø900" } ], }, ]; /* =========================================================== MAW SERIES – WORM GEAR ACTUATOR MODELS WITH DATA =========================================================== */ const mawSeriesModels: SeriesModels[] = [ { series: "Standard Models", models: [ { name: "MAW-012", torqueNm: "125", torqueLbfFt: "92.20", gearRatio: "32:1", mechanicalAdvantage: "6.00", weight: "4", handwheel: "Ø100", turns: "8", mounting: "F05" }, { name: "MAW-025", torqueNm: "250", torqueLbfFt: "184.40", gearRatio: "32:1", mechanicalAdvantage: "7.00", weight: "4.5", handwheel: "Ø200", turns: "8", mounting: "F07" }, { name: "MAW-045", torqueNm: "450", torqueLbfFt: "331.90", gearRatio: "38:1", mechanicalAdvantage: "8.00", weight: "5.5", handwheel: "Ø250", turns: "9.5", mounting: "F10" }, { name: "MAW-080", torqueNm: "800", torqueLbfFt: "590.00", gearRatio: "40:1", mechanicalAdvantage: "12.20", weight: "10", handwheel: "Ø400", turns: "10", mounting: "F12" }, { name: "MAW-100", torqueNm: "1000", torqueLbfFt: "737.60", gearRatio: "40:1", mechanicalAdvantage: "12.20", weight: "11", handwheel: "Ø500", turns: "10", mounting: "F12" }, { name: "MAW-200", torqueNm: "2000", torqueLbfFt: "1475.00", gearRatio: "42:1", mechanicalAdvantage: "12.50", weight: "20", handwheel: "Ø500", turns: "10.5", mounting: "F14" }, { name: "MAW-300", torqueNm: "3000", torqueLbfFt: "2212.70", gearRatio: "52:1", mechanicalAdvantage: "16.50", weight: "33", handwheel: "Ø600", turns: "13", mounting: "F16" }, { name: "MAW-400", torqueNm: "4000", torqueLbfFt: "2950.00", gearRatio: "56:1", mechanicalAdvantage: "16.50", weight: "43", handwheel: "Ø600", turns: "14", mounting: "F20" }, { name: "MAW-650", torqueNm: "6500", torqueLbfFt: "4794.00", gearRatio: "52:1", mechanicalAdvantage: "17.50", weight: "57", handwheel: "Ø600", turns: "13", mounting: "F20" }, { name: "MAW-900", torqueNm: "9000", torqueLbfFt: "6638.00", gearRatio: "66:1", mechanicalAdvantage: "20.00", weight: "88", handwheel: "Ø710", turns: "16.5", mounting: "F25" }, { name: "MAW-1200", torqueNm: "12000", torqueLbfFt: "8851.00", gearRatio: "68:1", mechanicalAdvantage: "20.50", weight: "100", handwheel: "Ø710", turns: "17", mounting: "F30" }, { name: "MAW-1500", torqueNm: "15000", torqueLbfFt: "11063.00", gearRatio: "60:1", mechanicalAdvantage: "21.00", weight: "130", handwheel: "Ø800", turns: "15", mounting: "F30" }, { name: "MAW-1800", torqueNm: "18000", torqueLbfFt: "13276.00", gearRatio: "62:1", mechanicalAdvantage: "21.00", weight: "160", handwheel: "Ø850", turns: "15.5", mounting: "F30" }, { name: "MAW-2400", torqueNm: "24000", torqueLbfFt: "17701.00", gearRatio: "56:1", mechanicalAdvantage: "21.00", weight: "190", handwheel: "Ø900", turns: "14", mounting: "F35" }, { name: "MAW-3200", torqueNm: "32000", torqueLbfFt: "23602.00", gearRatio: "58:1", mechanicalAdvantage: "22.00", weight: "235", handwheel: "Ø900", turns: "14.5", mounting: "F35" } ], }, { series: "Single Stage Reduction", models: [ { name: "MAW-300-1S", torqueNm: "3000", torqueLbfFt: "2212.70", gearRatio: "102:1", mechanicalAdvantage: "29.70", weight: "42", handwheel: "Ø600", turns: "25.5", mounting: "F16" }, { name: "MAW-400-1S", torqueNm: "4000", torqueLbfFt: "2950.00", gearRatio: "144:1", mechanicalAdvantage: "37.46", weight: "53", handwheel: "Ø600", turns: "36", mounting: "F20" }, { name: "MAW-650-1S", torqueNm: "6500", torqueLbfFt: "4794.00", gearRatio: "156:1", mechanicalAdvantage: "49.00", weight: "67", handwheel: "Ø600", turns: "39", mounting: "F20" }, { name: "MAW-900-1S", torqueNm: "9000", torqueLbfFt: "6638.00", gearRatio: "198:1", mechanicalAdvantage: "56.00", weight: "98", handwheel: "Ø710", turns: "49.5", mounting: "F25" }, { name: "MAW-1200-1S", torqueNm: "12000", torqueLbfFt: "8851.00", gearRatio: "204:1", mechanicalAdvantage: "57.40", weight: "110", handwheel: "Ø710", turns: "51", mounting: "F30" }, { name: "MAW-1500-1S", torqueNm: "15000", torqueLbfFt: "11063.00", gearRatio: "240:1", mechanicalAdvantage: "79.80", weight: "140", handwheel: "Ø850", turns: "60", mounting: "F30" }, { name: "MAW-1800-1S", torqueNm: "18000", torqueLbfFt: "13276.00", gearRatio: "248:1", mechanicalAdvantage: "79.80", weight: "165", handwheel: "Ø850", turns: "62", mounting: "F35" }, { name: "MAW-2400-1S", torqueNm: "24000", torqueLbfFt: "17701.00", gearRatio: "224:1", mechanicalAdvantage: "79.80", weight: "210", handwheel: "Ø900", turns: "56", mounting: "F35" }, { name: "MAW-3200-1S", torqueNm: "32000", torqueLbfFt: "23602.00", gearRatio: "232:1", mechanicalAdvantage: "83.60", weight: "225", handwheel: "Ø900", turns: "58", mounting: "F35" } ], }, { series: "Double Stage Reduction", models: [ { name: "MAW-900-2S", torqueNm: "9000", torqueLbfFt: "6638.00", gearRatio: "594:1", mechanicalAdvantage: "156.8", weight: "108", handwheel: "Ø710", turns: "148.5", mounting: "F25" }, { name: "MAW-1200-2S", torqueNm: "12000", torqueLbfFt: "8851.00", gearRatio: "612:1", mechanicalAdvantage: "160.72", weight: "118", handwheel: "Ø710", turns: "153", mounting: "F30" }, { name: "MAW-1500-2S", torqueNm: "15000", torqueLbfFt: "11063.00", gearRatio: "528:1", mechanicalAdvantage: "164.64", weight: "135", handwheel: "Ø850", turns: "132", mounting: "F30" }, { name: "MAW-1800-2S", torqueNm: "18000", torqueLbfFt: "13276.00", gearRatio: "992:1", mechanicalAdvantage: "303.24", weight: "188", handwheel: "Ø850", turns: "248", mounting: "F35" }, { name: "MAW-2400-2S", torqueNm: "24000", torqueLbfFt: "17701.00", gearRatio: "896:1", mechanicalAdvantage: "303.24", weight: "210", handwheel: "Ø900", turns: "224", mounting: "F35" }, { name: "MAW-3200-2S", torqueNm: "32000", torqueLbfFt: "23602.00", gearRatio: "928:1", mechanicalAdvantage: "317.680", weight: "270", handwheel: "Ø900", turns: "232", mounting: "F35" } ], }, ]; /* =========================================================== ITG SERIES – DECLUTCHABLE WORM GEAR MODELS WITH DATA =========================================================== */ const itgSeriesModels: SeriesModels[] = [ { series: "Standard Models", models: [ { name: "ITG-012", torqueNm: "60", torqueLbfFt: "44.25", gearRatio: "30:1", mechanicalAdvantage: "6.00", weight: "4.5", handwheel: "Ø100", turns: "7.5", mounting: "F05" }, { name: "ITG-025", torqueNm: "125", torqueLbfFt: "92.20", gearRatio: "36:1", mechanicalAdvantage: "7.00", weight: "5", handwheel: "Ø200", turns: "9", mounting: "F07" }, { name: "ITG-045", torqueNm: "300", torqueLbfFt: "221.27", gearRatio: "40:1", mechanicalAdvantage: "8.00", weight: "5.5", handwheel: "Ø250", turns: "10", mounting: "F10" }, { name: "ITG-080", torqueNm: "650", torqueLbfFt: "479.42", gearRatio: "36:1", mechanicalAdvantage: "10.00", weight: "14.5", handwheel: "Ø400", turns: "9", mounting: "F12" }, { name: "ITG-100", torqueNm: "800", torqueLbfFt: "590.05", gearRatio: "36:1", mechanicalAdvantage: "10.00", weight: "15", handwheel: "Ø500", turns: "9", mounting: "F12" }, { name: "ITG-200", torqueNm: "1600", torqueLbfFt: "1180.10", gearRatio: "40:1", mechanicalAdvantage: "11.00", weight: "25", handwheel: "Ø500", turns: "10", mounting: "F14" }, { name: "ITG-300", torqueNm: "2600", torqueLbfFt: "1917.66", gearRatio: "52:1", mechanicalAdvantage: "16.50", weight: "39", handwheel: "Ø600", turns: "13", mounting: "F16" }, { name: "ITG-400", torqueNm: "3600", torqueLbfFt: "2655.22", gearRatio: "52:1", mechanicalAdvantage: "16.50", weight: "57", handwheel: "Ø600", turns: "13", mounting: "F16" }, { name: "ITG-650", torqueNm: "5600", torqueLbfFt: "4130.35", gearRatio: "48:1", mechanicalAdvantage: "17.00", weight: "67", handwheel: "Ø600", turns: "12", mounting: "F20" }, { name: "ITG-900", torqueNm: "8000", torqueLbfFt: "5900.50", gearRatio: "62:1", mechanicalAdvantage: "18.50", weight: "110", handwheel: "Ø710", turns: "15.5", mounting: "F25" }, { name: "ITG-1200", torqueNm: "10500", torqueLbfFt: "7744.40", gearRatio: "68:1", mechanicalAdvantage: "19.50", weight: "121", handwheel: "Ø710", turns: "17", mounting: "F30" }, { name: "ITG-1500", torqueNm: "13500", torqueLbfFt: "9957.09", gearRatio: "58:1", mechanicalAdvantage: "20.00", weight: "135", handwheel: "Ø500", turns: "14.5", mounting: "F30" }, { name: "ITG-1800", torqueNm: "16000", torqueLbfFt: "11800.99", gearRatio: "62:1", mechanicalAdvantage: "20.00", weight: "155", handwheel: "Ø500", turns: "15.5", mounting: "F30" }, { name: "ITG-2400", torqueNm: "21000", torqueLbfFt: "15488.81", gearRatio: "56:1", mechanicalAdvantage: "20.00", weight: "180", handwheel: "Ø500", turns: "14", mounting: "F35" }, { name: "ITG-3200", torqueNm: "28000", torqueLbfFt: "20651.74", gearRatio: "58:1", mechanicalAdvantage: "21.00", weight: "230", handwheel: "Ø500", turns: "14.5", mounting: "F35" } ], }, { series: "Single Stage Reduction", models: [ { name: "ITG-400-1S", torqueNm: "3600", torqueLbfFt: "2655.22", gearRatio: "130:1", mechanicalAdvantage: "37.46", weight: "67", handwheel: "Ø600", turns: "32.5", mounting: "F16" }, { name: "ITG-650-1S", torqueNm: "5600", torqueLbfFt: "4130.35", gearRatio: "144:1", mechanicalAdvantage: "47.60", weight: "77", handwheel: "Ø600", turns: "36", mounting: "F20" }, { name: "ITG-900-1S", torqueNm: "8000", torqueLbfFt: "5900.50", gearRatio: "186:1", mechanicalAdvantage: "51.80", weight: "120", handwheel: "Ø710", turns: "46.5", mounting: "F25" }, { name: "ITG-1200-1S", torqueNm: "10500", torqueLbfFt: "7744.40", gearRatio: "204:1", mechanicalAdvantage: "54.60", weight: "131", handwheel: "Ø710", turns: "51", mounting: "F30" }, { name: "ITG-1500-1S", torqueNm: "13500", torqueLbfFt: "9957.09", gearRatio: "232:1", mechanicalAdvantage: "76.00", weight: "145", handwheel: "Ø500", turns: "58", mounting: "F30" }, { name: "ITG-1800-1S", torqueNm: "16000", torqueLbfFt: "11800.99", gearRatio: "248:1", mechanicalAdvantage: "76.00", weight: "170", handwheel: "Ø500", turns: "62", mounting: "F35" }, { name: "ITG-2400-1S", torqueNm: "21000", torqueLbfFt: "15488.81", gearRatio: "224:1", mechanicalAdvantage: "76.00", weight: "205", handwheel: "Ø500", turns: "56", mounting: "F35" }, { name: "ITG-3200-1S", torqueNm: "28000", torqueLbfFt: "20651.74", gearRatio: "232:1", mechanicalAdvantage: "79.80", weight: "240", handwheel: "Ø500", turns: "58", mounting: "F35" } ], }, { series: "Double Stage Reduction", models: [ { name: "ITG-900-2S", torqueNm: "8000", torqueLbfFt: "5900.50", gearRatio: "558:1", mechanicalAdvantage: "145.04", weight: "135", handwheel: "Ø710", turns: "139.5", mounting: "F25" }, { name: "ITG-1200-2S", torqueNm: "10500", torqueLbfFt: "7744.40", gearRatio: "612:1", mechanicalAdvantage: "152.88", weight: "141", handwheel: "Ø710", turns: "153", mounting: "F30" }, { name: "ITG-1500-2S", torqueNm: "13500", torqueLbfFt: "9957.09", gearRatio: "522:1", mechanicalAdvantage: "156.80", weight: "155", handwheel: "Ø500", turns: "130.5", mounting: "F30" }, { name: "ITG-1800-2S", torqueNm: "16000", torqueLbfFt: "11800.99", gearRatio: "992:1", mechanicalAdvantage: "288.80", weight: "188", handwheel: "Ø500", turns: "248", mounting: "F35" }, { name: "ITG-2400-2S", torqueNm: "21000", torqueLbfFt: "15488.81", gearRatio: "896:1", mechanicalAdvantage: "288.80", weight: "215", handwheel: "Ø500", turns: "224", mounting: "F35" }, { name: "ITG-3200-2S", torqueNm: "28000", torqueLbfFt: "20651.74", gearRatio: "928:1", mechanicalAdvantage: "303.24", weight: "270", handwheel: "Ø500", turns: "232", mounting: "F35" } ], }, ]; /* =========================================================== MTG SERIES – MECHANICAL ACTUATOR MODELS WITH DATA =========================================================== */ const mtgSeriesModels: SeriesModels[] = [ { series: "Standard Models", models: [ { name: "MTG-100", torqueNm: "1000", torqueLbfFt: "737.60", thrustKN: "160", thrustLbf: "35969.43", gearRatio: "20:1", mechanicalAdvantage: "9.20", weight: "14", handwheel: "Ø400", mounting: "F12" }, { name: "MTG-200", torqueNm: "2000", torqueLbfFt: "1475.00", thrustKN: "240", thrustLbf: "53954.15", gearRatio: "21:1", mechanicalAdvantage: "9.50", weight: "27", handwheel: "Ø710", mounting: "F14" }, { name: "MTG-300", torqueNm: "3000", torqueLbfFt: "2212.70", thrustKN: "290", thrustLbf: "65194.59", gearRatio: "26:1", mechanicalAdvantage: "11.50", weight: "37", handwheel: "Ø710", mounting: "F16" }, { name: "MTG-400", torqueNm: "4000", torqueLbfFt: "2950.00", thrustKN: "380", thrustLbf: "85427.40", gearRatio: "28:1", mechanicalAdvantage: "11.50", weight: "43", handwheel: "Ø710", mounting: "F20" }, { name: "MTG-650", torqueNm: "6500", torqueLbfFt: "4794.00", thrustKN: "600", thrustLbf: "134885.37", gearRatio: "26:1", mechanicalAdvantage: "12.00", weight: "65", handwheel: "Ø710", mounting: "F20" }, { name: "MTG-900", torqueNm: "9000", torqueLbfFt: "6638.00", thrustKN: "870", thrustLbf: "195583.78", gearRatio: "33:1", mechanicalAdvantage: "14.00", weight: "88", handwheel: "Ø710", mounting: "F25" }, { name: "MTG-1200", torqueNm: "12000", torqueLbfFt: "8851.00", thrustKN: "1100", thrustLbf: "247289.84", gearRatio: "34:1", mechanicalAdvantage: "14.50", weight: "100", handwheel: "Ø800", mounting: "F30" }, { name: "MTG-1800", torqueNm: "18000", torqueLbfFt: "13276.00", thrustKN: "1800", thrustLbf: "404656.10", gearRatio: "31:1", mechanicalAdvantage: "15.00", weight: "160", handwheel: "Ø850", mounting: "F30" } ], }, { series: "Single Stage Reduction", models: [ { name: "MTG-300-1S", torqueNm: "3000", torqueLbfFt: "2212.70", thrustKN: "290", thrustLbf: "65194.59", gearRatio: "65:1", mechanicalAdvantage: "25.30", weight: "50", handwheel: "Ø710", mounting: "F16" }, { name: "MTG-400-1S", torqueNm: "4000", torqueLbfFt: "2950.00", thrustKN: "380", thrustLbf: "85427.40", gearRatio: "70:1", mechanicalAdvantage: "25.30", weight: "55", handwheel: "Ø710", mounting: "F20" }, { name: "MTG-650-1S", torqueNm: "6500", torqueLbfFt: "4794.00", thrustKN: "600", thrustLbf: "134885.37", gearRatio: "60:1", mechanicalAdvantage: "33.60", weight: "75", handwheel: "Ø710", mounting: "F20" }, { name: "MTG-900-1S", torqueNm: "9000", torqueLbfFt: "6638.00", thrustKN: "870", thrustLbf: "195583.78", gearRatio: "99:1", mechanicalAdvantage: "39.20", weight: "98", handwheel: "Ø710", mounting: "F25" }, { name: "MTG-1200-1S", torqueNm: "12000", torqueLbfFt: "8851.00", thrustKN: "1100", thrustLbf: "247289.84", gearRatio: "102:1", mechanicalAdvantage: "40.60", weight: "110", handwheel: "Ø710", mounting: "F30" } ], }, { series: "Double Stage Reduction", models: [ { name: "MTG-900-2S", torqueNm: "9000", torqueLbfFt: "6638.00", thrustKN: "870", thrustLbf: "195583.78", gearRatio: "297:1", mechanicalAdvantage: "109.76", weight: "108", handwheel: "Ø710", mounting: "F25" }, { name: "MTG-1200-2S", torqueNm: "12000", torqueLbfFt: "8851.00", thrustKN: "1100", thrustLbf: "247289.84", gearRatio: "306:1", mechanicalAdvantage: "113.68", weight: "118", handwheel: "Ø710", mounting: "F30" }, { name: "MTG-1800-2S", torqueNm: "18000", torqueLbfFt: "13276.00", thrustKN: "1800", thrustLbf: "404656.10", gearRatio: "279:1", mechanicalAdvantage: "109.35", weight: "188", handwheel: "Ø800", mounting: "F30" } ], }, ]; /* =========================================================== PRODUCT DATA =========================================================== */ const pneumaticProducts: Product[] = [ { id: "pds-rotary", name: "PDS Actuator (Rotary)", type: "Pneumatic", image: pneumaticPds, models: ["PDS 45", "PDS 50", "PDS 55", "PDS 70", "PDS 75", "PDS 85", "PDS 100", "PDS 125", "PDS 160", "PDS 200"], description: "We specialize in providing the best & reliable flow control solutions in the most challenging environments. PDS series Pneumatic Actuators are designed using Scotch-Yoke technology for superior torque.", torque: "5 Nm - 5,000 Nm", features: [ "Scotch-Yoke mechanism for high break-out torque", "Hard anodized aluminum body for corrosion resistance", "Operating pressure: 3.5 - 8 Bar", "Temperature range: -20°C to +80°C", "Adjustable travel stops ±5°", "Pre-compressed spring packages for safety", "ISO 5211, NAMUR & VDI/VDE 3845 compliant", "SIL 3 Capable (IEC 61508)" ], applications: ["Oil & Gas", "Chemical Processing", "Power Plants", "Water Treatment", "Food & Beverage"], certifications: ["ATEX", "SIL 3", "PED", "ISO 9001", "IP67"], seriesLinks: [ { label: "PD Series (Double Acting)", path: "/products/pds-rotary/pd-series" }, { label: "PS Series (Single Acting)", path: "/products/pds-rotary/ps-series" } ] }, { id: "hd-rotary", name: "HD Actuator (Rotary)", type: "Pneumatic", image: pneumaticHd, models: [ "02-20", "02-25", "02-30", "02-35", "03-35", "03-38", "03-43", "04-43", "04-48", "04-53", "05-53", "05-58", "05-63", "06-63", "06-68", "06-73" ], description: "Our flagship heavy-duty scotch yoke actuators deliver exceptional torque for the most demanding valve automation applications.", torque: "200 Nm - 120,867 Nm", features: [ "High torque capacity up to 120,867 Nm", "Extended service life (>2 million cycles)", "Operating pressure: 2.8 - 10 bar", "Spring return or double acting configurations", "Custom bracket designs for any valve", "Ideal for ball, butterfly & plug valves", "ATEX/IECEx certified for hazardous areas", "Corrosion-resistant coating options" ], applications: ["Oil & Gas", "Power Generation", "Petrochemical", "Offshore FPSO"], certifications: ["ISO 5211", "NAMUR", "ATEX", "API 609"], seriesLinks: [ { label: "ISD Series", path: "/products/hd-rotary/isd-series" }, { label: "ICD Series", path: "/products/hd-rotary/icd-series" }, { label: "ISR Series", path: "/products/hd-rotary/isr-series" }, { label: "ICR Series", path: "/products/hd-rotary/icr-series" } ] }, { id: "plds-linear", name: "PLDS Actuator (Linear)", type: "Pneumatic", image: pneumaticPlds, models: ["PLDS-100", "PLDS-125", "PLDS-160", "PLDS-200", "PLDS-250", "PLDS-300"], description: "The PLDS series of Pneumatic Linear Double Acting Cylinders are meticulously designed to provide superior performance for tasks requiring precise linear motion control.", thrust: "1 KN - 500 KN", features: [ "Double Acting & Spring Return configurations", "Bore sizes from 100mm to 980mm", "Operating Pressure: 2.8 to 10 Bar", "High thrust capability for Gate & Globe valves", "Standard Temp: -20°C to +80°C (Options up to +100°C)", "Hard chrome plated piston rod for durability", "Manual override options: Hydraulic or Gearbox", "Field reversible action (Fail Open/Close)" ], applications: ["Linear Valve Automation (Gate/Globe)", "Dampers", "Material Handling", "Power Generation"], certifications: ["SIL 3", "ATEX", "PED", "IP66/IP67"], seriesLinks: [ { label: "PLD Series", path: "/products/plds-linear/pld-series" }, { label: "PLS Series", path: "/products/plds-linear/pls-series" } ] }, { id: "mplds-linear", name: "MPLDS Actuator (Linear)", type: "Pneumatic", image: pneumaticMplds, models: ["50mm", "75mm", "100mm", "150mm", "200mm", "250mm"], description: "The MPLDS series of Micro Pneumatic Double Acting Linear Cylinders are designed for precision and compact applications where space is limited but performance cannot be compromised.", thrust: "1 KN - 50 KN", features: [ "Micro cylinder design for tight spaces", "Double Acting mechanism for controlled motion", "Operating Pressure: 2.1 to 6.2 Bar", "Standard Temperature: -10°C to +60°C", "IP66 Protection against dust and water", "High-quality construction for long service life", "Ideal for fine automation systems", "Modular design for easy maintenance" ], applications: ["Fine Automation", "Small-scale Machinery", "Linear Valve Control", "Material Handling"], certifications: ["IP66", "ISO 9001", "CE"], seriesLinks: [ { label: "MPLD Series", path: "/products/mplds-linear/mpld-series" }, { label: "MPLS Series", path: "/products/mplds-linear/mpls-series" } ] }, ]; const electricalProducts: Product[] = [ { id: "itq-rotary", name: "ITQ SERIES (Rotary)", type: "Electrical", image: electricalItq, models: ["ITQ 0020 (25Nm)", "ITQ 0040 (40Nm)", "ITQ 0080 (80Nm)"], description: "A compact and robust quarter-turn electric actuator designed for the automation of ball, butterfly, and plug valves. Features a self-locking double worm gear drive and advanced control options.", torque: "25 Nm - 9,000 Nm", features: [ "Hard anodized aluminum housing with powder coating", "Self-locking double worm gearing (no brake required)", "Auto-declutching manual override handwheel", "Weatherproof IP67 enclosure (IP68 optional)", "High starting torque induction motor", "Mechanical torque sensing system", "Modulating control options (4-20mA, 0-10V)", "ISO 5211 mounting base for easy installation" ], applications: ["Water Treatment", "Chemical Processing", "HVAC Automation", "Power Plants", "Oil & Gas"], certifications: ["IP67", "IP68", "ATEX", "ISO 9001", "CE"] }, { id: "iql-linear", name: "IQL SERIES (Linear)", type: "Electrical", image: electricalIql, models: ["IQL 04", "IQL 06", "IQL 08", "IQL 10", "IQL 12", "IQL 20", "IQL 25"], description: "A robust linear electric actuator designed for precise modulating control of globe and control valves. Features intelligent positioning, fail-safe options, and a high thrust capacity.", thrust: "4 KN - 25 KN", features: [ "Wide thrust range from 4 KN to 25 KN", "Stroke range: 40mm to 100mm", "Modulating control (4-20mA / 0-10V)", "Weatherproof IP66 enclosure (IP68 optional)", "Auto-declutching manual override handwheel", "Digital display for position monitoring", "Mechanical thrust sensing system for overload protection", "Battery backup for fail-safe operation" ], applications: ["Globe Control Valves", "Gate Valves", "Damper Automation", "Power Plants", "Water Treatment"], certifications: ["CE", "IP66", "IP68", "Ex d II B T4", "ISO 9001"] }, { id: "itl-linear", name: "ITL SERIES (Linear)", type: "Electrical", image: electricalItl, models: ["ITL01", "ITL02", "ITL04", "ITL06"], description: "A compact and powerful linear electric actuator featuring a 100% duty cycle motor. Designed for high-frequency modulating control in sophisticated automation systems.", thrust: "1 KN - 6 KN", features: [ "100% Duty Cycle (Continuous Duty) Motor", "Thrust range: 1 KN to 6 KN", "Stroke range: 20mm to 50mm", "Compact design with hard anodized aluminum housing", "Input/Output Isolation for signal safety", "Built-in manual override with storable handwheel", "Wide voltage support (AC 100-240V, DC 24V)", "High resolution position control (4-20mA / 0-10V)" ], applications: ["Control Valves (2-way/3-way)", "Industrial Dampers", "Process Automation", "High-Frequency Modulation"], certifications: ["IP67", "CE", "ISO 9001"] }, { id: "itm-multiturn", name: "ITM SERIES (Multiturn)", type: "Electrical", image: electricalItm, models: ["ITM 0180", "ITM 0450", "ITM 0750", "ITM 1800", "ITM 3000"], description: "A high-efficiency multi-turn electric actuator designed for gate and globe valves. Features a digitalized torque sensing system and robust IP68 watertight enclosure.", torque: "177 Nm - 3,000 Nm", features: [ "Digitalized torque sensing system (30-100% adjustable)", "Watertight IP68 enclosure (10m for 100 hours)", "High efficiency motor with thermal protection", "Top-mounted handwheel for easy manual operation", "Battery backup for position detecting system", "Fieldbus communication (Profibus, CANopen)", "Explosion-proof Ex d II C T4 option available", "Non-intrusive setting via remote control" ], applications: ["Gate Valves", "Globe Valves", "Sluice Gates", "Penstocks", "Power Plants"], certifications: ["IP68", "Ex d II C T4", "CE", "ISO 9001"] }, ]; const mechanicalProducts: Product[] = [ { id: "bevel-gear", name: "BEVEL GEAR ACTUATORS (MAB Series)", type: "Mechanical", image: mechanicalBevel, models: mabSeriesModels.flatMap(series => series.models.map(m => m.name)), description: "Precision bevel gear actuator for manual multi-turn valve operation (Gate/Globe). Designed for high efficiency, smooth transmission, and heavy-duty industrial applications.", torque: "250 Nm - 18,000 Nm", thrust: "75 KN - 2,500 KN", features: [ "Ductile Iron housing for superior strength", "Output torque range: 250 to 18,000 Nm with gear reduction", "Output thrust range: 75 to 2,500 KN", "IP Rating: IP55, IP65, IP67M, IP68", "Temperature range: -20°C to +80°C (Standard)", "Extended temperature: -45°C to +120°C (Optional)", "Housing: Ductile Iron / Cast Iron (Optional)", "Input Shaft: Steel / Stainless Steel (Optional)", "Easy replaceable splined stem bush", "Dual locknuts for stem bush movement arrest", "ISO 5210 valve mounting standard", "Motorizable with ISO-5210 MOV flange" ], applications: ["Oil & Gas", "Power Plants", "Water Treatment", "Marine", "Steel Industry", "Processing Facilities"], certifications: ["ISO 9001", "IP67", "IP68", "ISO 5210"], seriesLinks: [ { label: "MAB Series", path: "/products/bevel-gear/mab-series" } ] }, { id: "worm-gear", name: "WORM GEAR ACTUATORS", type: "Mechanical", image: mechanicalWorm, models: [ ...mawSeriesModels.flatMap(series => series.models.map(m => m.name)), ...itgSeriesModels.flatMap(series => series.models.map(m => m.name)), ...mtgSeriesModels.flatMap(series => series.models.map(m => m.name)) ], description: "Comprehensive range of worm gear actuators including MAW, ITG, and MTG series. Designed for manual quarter-turn valve operations with rugged construction and high-performance gearing.", torque: "60 Nm - 32,000 Nm", features: [ "Rugged Ductile Iron housing (Cast Iron optional)", "Torque output range: 60 to 32,000 Nm", "±5° stroke adjustment capability", "IP Rating: IP54, IP55, IP65, IP67M", "Temperature range: -20°C to +85°C (Standard)", "Low temperature option: -45°C to +120°C", "Self-locking worm gear design for safety", "Steel input shaft (Stainless Steel optional)", "Epoxy & PU coating for corrosion resistance", "Bearing construction for smooth operation", "Splined bushing for accurate valve stem alignment", "MOV flange for electric actuator mounting (ISO-5210)", "Ideal for ball, butterfly, plug valves & dampers" ], applications: ["Ball Valves", "Butterfly Valves", "Plug Valves", "Dampers", "HVAC Systems", "Water Works", "Chemical", "Power"], certifications: ["IP67", "IP68", "ISO 5211", "ISO 9001"], seriesLinks: [ { label: "MAW Series", path: "/products/worm-gear/maw-series" }, { label: "ITG Series", path: "/products/worm-gear/itg-series" }, { label: "MTG Series", path: "/products/worm-gear/mtg-series" } ] }, ]; const accessoryProducts: Product[] = [ { id: "its-series", name: "ITS Series Components", type: "Accessories", image: accessoriesIt, models: ["ITS 100", "ITS 300", "ITS 500"], description: "Precision-engineered position monitoring switches for rotary actuators. Features robust weatherproof and explosion-proof housings with visual indicators for reliable valve status feedback.", features: [ "Rugged aluminum or stainless steel housing options", "Visual dome indicator for 0°-90° position", "Weatherproof (IP67) and Explosion-proof (Ex d IIC T6) versions", "2-SPDT mechanical switches or proximity sensors", "NAMUR standard shaft for easy mounting", "Corrosion-resistant epoxy-polyester coating", "Wide operating temperature range (-20°C to +80°C)", "Multiple cable entry options (NPT, PF, M20)" ], applications: ["Chemical Plants", "Oil & Gas", "Water Treatment", "Power Generation", "Process Automation"], certifications: ["IP67", "IP68", "ATEX (Ex d IIC T6)", "IECEx", "CE"], seriesLinks: [ { label: "View IT Series", path: "/products/it-series" } ] }, { id: "handwheels", name: "Handwheels", type: "Accessories", image: accessoriesHandwheels, models: ["100mm - 500mm (Chain)", "200mm - 400mm (Cast)", "200mm - 1000mm (Fab)"], description: "Ergonomic manual override handwheels available in Casting, Fabricated, and Chain Wheel designs. Engineered for smooth operation and durability in harsh industrial environments.", features: [ "Available in Casting, Fabricated, and Chain Wheel types", "Size range: 100mm to 1000mm (4\" to 40\")", "Epoxy or Powder coated finish (RAL 5015/3011)", "Stainless Steel chain options for corrosive areas", "Keyed, Pinned, or Squared drive connections", "Optional locking plates and visual indicators", "Rugged construction for high torque transmission" ], applications: ["Manual Valve Override", "Gearbox Operation", "High-Reach Valve Control (Chain Wheels)", "Industrial Automation"], certifications: ["ISO 9001", "ISO 12944-2 (Painting)"] }, ]; const hydraulicProducts: Product[] = [ { id: "hyd-rotary", name: "Electro-Hydraulic Rotary Actuator", type: "Hydraulic", image: hydraulicActuator, models: [ "PANDA D10 – D130 (Low Pressure)", "PA D10 – D60 (High Pressure)" ], description: "Electro-hydraulic rotary actuators designed as a high-performance alternative to pneumatic and electric actuators. These compact units deliver very high torque density, fast response times, and near wear-free operation.", torque: "46 Nm – 10,000 Nm (Higher on request)", features: [ "Electro-hydraulic compact actuator design", "Low pressure (PANDA) and high pressure (PA) variants", "Single acting (spring return – fail safe) or double acting", "Extremely high torque density with compact dimensions", "Near wear-free operation due to oil-lubricated components", "Fail-safe function via spring or hydraulic accumulator", "Adjustable stroke time via hydraulic throttle", "No gearbox – high efficiency, minimal power loss", "Block construction – no external piping required", "ISO 5211 & NAMUR mounting interface", "Suitable for continuous outdoor and marine environments" ], applications: [ "Oil & Gas Onshore / Offshore", "Power Plants", "Water & Wastewater Treatment", "Chemical & Petrochemical Plants", "Steel & Heavy Industries", "Emergency Shut Down (ESD) Valves" ], certifications: [ "ATEX (Zone 1 & 2)", "SIL 2 / SIL 3 (Configurable)", "Machinery Directive 2006/42/EC", "EN ISO 12100", "IP67 / IP68" ], seriesLinks: [ { label: "PANDA Series – Low Pressure (up to 8 bar)", path: "/products/hydraulic-rotary/panda-series" }, { label: "PA Series – High Pressure (up to 180 bar)", path: "/products/hydraulic-rotary/pa-series" } ] } ]; const allProducts = [ ...pneumaticProducts, ...electricalProducts, ...mechanicalProducts, ...hydraulicProducts, ...accessoryProducts, ]; /* =========================================================== GET MODEL DETAILS FUNCTION - UPDATED WITH ALL SERIES =========================================================== */ const getModelDetails = (product: Product, modelNumber: string): ModelDetails => { // Base specifications const baseSpecs: ModelDetails['specifications'] = { model: modelNumber, type: product.type, }; // Add product-specific specifications if (product.torque) baseSpecs.torqueNm = product.torque; if (product.thrust) baseSpecs.thrustKN = product.thrust; // MAB Series Specifications if (product.id === "bevel-gear" && modelNumber.includes("MAB")) { const allMabModels = mabSeriesModels.flatMap(series => series.models); const modelData = allMabModels.find(m => m.name === modelNumber); if (modelData && 'thrustKN' in modelData && 'thrustLbf' in modelData) { baseSpecs.torqueNm = `${modelData.torqueNm} Nm`; baseSpecs.torqueLbfFt = `${modelData.torqueLbfFt} lbf-ft`; baseSpecs.thrustKN = `${modelData.thrustKN} kN`; baseSpecs.thrustLbf = `${modelData.thrustLbf} lbf`; baseSpecs.gearRatio = modelData.gearRatio; baseSpecs.mechanicalAdvantage = modelData.mechanicalAdvantage; baseSpecs.weight = `${modelData.weight} kg`; baseSpecs.mounting = `ISO 5210 ${modelData.mounting}`; baseSpecs.handwheel = modelData.handwheel; baseSpecs.ipRating = "IP55, IP65, IP67M, IP68"; baseSpecs.temperature = "-20°C to +80°C (Standard), -45°C to +120°C (Optional)"; } } // Worm Gear Series Specifications (MAW, ITG, MTG) else if (product.id === "worm-gear") { // Check MAW Series const allMawModels = mawSeriesModels.flatMap(series => series.models); const mawModelData = allMawModels.find(m => m.name === modelNumber); // Check ITG Series const allItgModels = itgSeriesModels.flatMap(series => series.models); const itgModelData = allItgModels.find(m => m.name === modelNumber); // Check MTG Series const allMtgModels = mtgSeriesModels.flatMap(series => series.models); const mtgModelData = allMtgModels.find(m => m.name === modelNumber); const modelData = mawModelData || itgModelData || mtgModelData; if (modelData) { baseSpecs.torqueNm = `${modelData.torqueNm} Nm`; baseSpecs.torqueLbfFt = `${modelData.torqueLbfFt} lbf-ft`; // Add thrust for MTG series if ('thrustKN' in modelData && modelData.thrustKN && 'thrustLbf' in modelData && modelData.thrustLbf) { baseSpecs.thrustKN = `${modelData.thrustKN} kN`; baseSpecs.thrustLbf = `${modelData.thrustLbf} lbf`; } baseSpecs.gearRatio = modelData.gearRatio; baseSpecs.mechanicalAdvantage = modelData.mechanicalAdvantage; baseSpecs.weight = `${modelData.weight} kg`; baseSpecs.mounting = modelData.mounting ? `ISO 5211 ${modelData.mounting}` : undefined; baseSpecs.handwheel = modelData.handwheel; // Add turns for MAW and ITG series if ('turns' in modelData && modelData.turns) { baseSpecs.turns = modelData.turns; } if (modelNumber.includes("MAW") || modelNumber.includes("ITG")) { baseSpecs.ipRating = "IP54, IP55, IP65, IP67M"; baseSpecs.temperature = "-20°C to +85°C (Standard), -45°C to +120°C (Optional)"; } else if (modelNumber.includes("MTG")) { baseSpecs.ipRating = "IP65, IP67, IP67M"; } } } // Other product types else { switch (product.id) { case "pds-rotary": baseSpecs.pressure = "3.5 - 8 Bar"; baseSpecs.temperature = "-20°C to +80°C"; baseSpecs.weight = "Based on model size"; break; case "hd-rotary": baseSpecs.pressure = "2.8 - 10 Bar"; baseSpecs.temperature = "-20°C to +120°C"; baseSpecs.cycles = ">2 million cycles"; break; case "itq-rotary": baseSpecs.protection = "IP67 / IP68"; baseSpecs.mounting = "ISO 5211"; baseSpecs.control = "4-20mA / 0-10V"; break; case "iql-linear": baseSpecs.stroke = "40mm - 100mm"; baseSpecs.protection = "IP66 / IP68"; baseSpecs.control = "Modulating"; break; case "hyd-rotary": baseSpecs.pressure = "8 - 180 Bar"; baseSpecs.mounting = "ISO 5211 & NAMUR"; baseSpecs.protection = "IP67 / IP68"; break; default: baseSpecs.pressure = "Consult datasheet"; baseSpecs.temperature = "Standard industrial range"; } } return { modelNumber, productName: product.name, specifications: baseSpecs, description: `${modelNumber} is part of the ${product.name} series. ${product.description}`, features: product.features || [], datasheetUrl: `/datasheets/${product.id}-${modelNumber.toLowerCase().replace(/\s+/g, '-')}.pdf`, cadUrl: `/cad/${product.id}-${modelNumber.toLowerCase().replace(/\s+/g, '-')}.step`, }; }; /* =========================================================== PRODUCT ROW =========================================================== */ const ProductRow = ({ product, index }: { product: Product; index: number }) => { const navigate = useNavigate(); const { ref, isVisible } = useScrollAnimation(0.1); const isReversed = index % 2 === 1; const [showAllModels, setShowAllModels] = useState(false); const [activeSeries, setActiveSeries] = useState(null); const [selectedModelDetails, setSelectedModelDetails] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); // Get the appropriate series models based on product ID const getSeriesModels = () => { switch (product.id) { case "hd-rotary": return hdSeriesModels; case "bevel-gear": return mabSeriesModels; case "worm-gear": // Return all worm gear series combined return [ { series: "MAW Series", models: mawSeriesModels.flatMap(s => s.models.map(m => m.name)) }, { series: "ITG Series", models: itgSeriesModels.flatMap(s => s.models.map(m => m.name)) }, { series: "MTG Series", models: mtgSeriesModels.flatMap(s => s.models.map(m => m.name)) } ]; default: return null; } }; const seriesModels = getSeriesModels(); const isSeriesProduct = seriesModels !== null; // Determine how many models to show initially for non-series products const initialModelCount = 6; const hasManyModels = !isSeriesProduct && product.models.length > initialModelCount; const displayModels = showAllModels ? product.models : product.models.slice(0, initialModelCount); const handleModelClick = (modelNumber: string) => { const details = getModelDetails(product, modelNumber); setSelectedModelDetails(details); setIsModalOpen(true); }; // Get models for active series const getActiveSeriesModels = () => { if (!activeSeries || !seriesModels) return []; if (Array.isArray(seriesModels[0].models) && typeof seriesModels[0].models[0] === 'string') { // For HD series const series = seriesModels.find(s => s.series === activeSeries) as any; return series ? series.models : []; } else { // For other series const series = seriesModels.find(s => s.series === activeSeries) as SeriesModels; return series ? series.models.map(m => (m as ModelData).name) : []; } }; // Get detailed model data for MAB series const getMabModelData = (modelName: string): ModelData | undefined => { const allMabModels = mabSeriesModels.flatMap(series => series.models); return allMabModels.find(m => m.name === modelName); }; // Get detailed model data for worm gear series const getWormGearModelData = (modelName: string): ModelData | undefined => { const allMawModels = mawSeriesModels.flatMap(series => series.models); const allItgModels = itgSeriesModels.flatMap(series => series.models); const allMtgModels = mtgSeriesModels.flatMap(series => series.models); return allMawModels.find(m => m.name === modelName) || allItgModels.find(m => m.name === modelName) || allMtgModels.find(m => m.name === modelName); }; return ( <>
{/* Product Image */}
{product.name}
{/* Product Details - Right Column */}
{/* HEADER SECTION */}
{product.type}

{product.name}

{/* Torque Spec */} {product.torque && (
Torque: {product.torque}
)} {/* Thrust Spec */} {product.thrust && (
Thrust: {product.thrust}
)}

{product.description}

{/* NEW: SERIES SELECTION BUTTONS WITH PREMIUM RED DESIGN */} {product.seriesLinks && product.seriesLinks.length > 0 && (

Select Series

{product.seriesLinks.map((link, idx) => ( ))} {/* Calculator Button (Only for Mechanical Products) */} {product.type === "Mechanical" && (
Rim Pull Calculator
)}
)}
{/* KEY FEATURES GRID */} {product.features && (

Key Features

    {product.features.map((feature, idx) => (
  • {feature}
  • ))}
)} {/* APPLICATIONS & CERTIFICATIONS ROW */} {(product.applications || product.certifications) && (
{/* Applications */} {product.applications && (

Applications

{product.applications.map((app, idx) => ( {app} ))}
)} {/* Certifications */} {product.certifications && (

Certifications

{product.certifications.map((cert, idx) => ( {cert} ))}
)}
)} {/* AVAILABLE MODELS */}
{isSeriesProduct ? ( /* ================= SERIES BASED PRODUCTS ================= */

Available Models

{/* SERIES BUTTONS */}
{seriesModels!.map((group, idx) => { const isActive = activeSeries === group.series; return ( ); })}
{/* MODELS (SHOW ONLY WHEN SERIES CLICKED) */} {activeSeries && (
{getActiveSeriesModels().map((model, idx) => { // Get detailed model data let modelData: ModelData | undefined; if (product.id === "bevel-gear") { modelData = getMabModelData(model); } else if (product.id === "worm-gear") { modelData = getWormGearModelData(model); } return ( ); })}
)}
) : ( /* ================= NORMAL PRODUCTS ================= */
Available Models ({product.models.length}) {hasManyModels && ( )}
{displayModels.map( (model, idx) => ( ) )}
)}
{/* BUTTONS */}
{/* Request a Quote */}
{/* Model Details Modal */} { setIsModalOpen(false); setSelectedModelDetails(null); }} details={selectedModelDetails} /> ); }; /* =========================================================== MAIN PAGE =========================================================== */ export default function Products() { const { t } = useLanguage(); const [searchParams] = useSearchParams(); const [activeTab, setActiveTab] = useState("all"); const contentStartRef = useRef(null); useEffect(() => { const category = searchParams.get("category"); const productId = searchParams.get("id"); if (category) { setActiveTab(category); setTimeout(() => { if (contentStartRef.current) { const yOffset = -200; const element = contentStartRef.current; const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset; window.scrollTo({ top: y, behavior: 'smooth' }); } }, 100); } if (productId) { const product = allProducts.find(p => p.id === productId); if (product) { setActiveTab(product.type.toLowerCase()); setTimeout(() => { const element = document.getElementById(productId); if (element) { element.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }, 300); } } }, [searchParams]); const filteredProducts = activeTab === "all" ? allProducts : allProducts.filter( (p) => p.type.toLowerCase() === activeTab.toLowerCase() ); return (
({ "@type": "ListItem", position: index + 1, item: { "@type": "Product", name: product.name, description: product.description, url: `https://www.susingroup.com/products/${product.id}`, }, })), }, }} /> {/* Video Hero Section */}
{/* Filter Tabs - Relative */}
All Collection Pneumatic Electrical Mechanical Accessories Hydraulic
{/* Product List */}
{filteredProducts.map((product, index) => ( ))} {filteredProducts.length === 0 && (
No products found in this category.
)}
); }