Fast Track Plugin

The Fast Track Plugin streamlines the process of selecting damaged vehicle parts for assessment and repair. This intuitive tool allows users to:

Quickly Identify Damaged Parts: Users can visually pinpoint and select specific damaged components on a vehicle's digital representation. This feature enhances efficiency by reducing the time spent on manual identification.

Simplified Damage Listing: Once parts are selected, the plugin automatically compiles a list of identified damages, categorizing them by severity (e.g., grave or lieve). This organized approach facilitates clear communication about the necessary repairs.

Integrated Cost Estimation: The Fast Track Plugin works in conjunction with other calculation tools to provide immediate cost estimates for the selected repairs, ensuring that users have all relevant financial information at their fingertips.

Overall, the Fast Track Plugin enhances the vehicle damage assessment process by promoting efficiency, accuracy, and ease of use, making it an invaluable tool for professionals in the automotive repair industry.

Plugin Options Interface

// Types from clarification file
export interface PluginOptions {
  onCalculate?: (contract: Contract | null) => void;
  onError?: (error: Error) => void;

  selector?: string;
  token?: string;
  credentials?: {
    interfacePartnerNumber?: string;
    interfacePartnerSignature?: string;
    customerNumber: string;
    customerLogin: string;
    customerPassword: string;
  };
  datServicesUrls?: DatServicesUrls;
  locale?: string; // like 'en-US' 'ru-RU'
  settings?: {
    debuggingMode?: boolean; // if true show settings button "gear wheel"
    maxWidth?: string;
    maxWidthSVG?: string; // max width of SVG picture
    maxMobileWidth?: number;
    backgroundColor?: string;

    contractId?: number; // if it is present, data and fast-track configuration read from this claim

    datECode?: string;

    saveFTDamageOnChange: boolean; // auto save fast track damage on every change

    createNewClaimAvailable?: boolean;
    // if createNewClaimAvailable enabled then by 'clear' button you can create clear claim and save it by 'calculate button'
    // in this case showPredefinedVehicleSelection is mandatory
    // parameters use for Vehicle Identification Service
    locale?: {
      attr: Locale;
    };
    // parameters use for creation claim
    createContractInit?: {
      contractType: string; // 'vro_calculation'
      networkType: string;
      templateId: number;
      Dossier: {
        Country: string;
        Language: string;
        Currency: string;
      };
    };

    // show or not block with fast-track element select menu
    showFastTrackElementsMenu?: boolean;
    fastTrackElementsMenuModal?: boolean;
    fastTrackElementsMenu?: FastTrackElementsMenuGroup[];

    showSVGFastTrack?: boolean;

    // mainSVGURLs?: string[]; - doesn't use any more, use instead genericSVGGraphics

    // list of SVG schemes may be just 1 element
    genericSVGGraphics?: GenericSVGGraphic[];

    showListDamages?: boolean;

    autoCalculation?: boolean;
    showResultTable?: boolean;
    resultFormat?: {
      locales?: string;
      numberFormatOptions?: Intl.NumberFormatOptions;
    };

    fastTrackConfiguration?: FastTrackConfiguration;
    i18n?: {
      resources: Resource;
    };
  };
}

export interface GenericSVGGraphic {
  graphicId: string;
  label?: string;
  sourceUrl: string;
}

export interface PredefinedVehicleSelectionBaseType {
  manufacturerId: string;
  manufacturerLabel?: string;
  manufacturerLogoUrl?: string;
  models: PredefinedVehicleSelectionModelType[];
}

export interface PredefinedVehicleSelectionModelType {
  modelId: string;
  modelLabel?: string;
  datECode: string;
  constructionTime: number;
  modelImgUrl?: string;
}

export interface FastTrackElementsMenuGroup {
  menuGroupId: string;
  menuGroupLabel?: string;
  menuGroupImgUrl?: string;
  elementDatIDs: string[];
}

Example-1

<!DOCTYPE html>
<html lang="en" translate="no">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>DAT Fast Track 2</title>
    <script type="module" crossorigin src="https://plugins.wedat.eu/fast-track-2/plugin.js"></script>
    <link rel="stylesheet" crossorigin href="https://plugins.wedat.eu/fast-track-2/plugin.css">
  </head>

  <body>
    <div id="root"></div>
    <script>
      document.addEventListener('DOMContentLoaded', () => {
        window.FAST_TRACK_2 &&
          window.FAST_TRACK_2.init({
            options: {
              selector: '#root',

              // credentials: testAuthData3451429,
              // contractId: 13023295,

              credentials: {
                customerNumber: '3131411',
                customerLogin: 'ferrsimo',
                customerPassword: 'ferrsimo01'
              },
              contractId: 43113906,

              // contractId: 28752074,

              // contractId: 13023295, // repair33
              // contractId: 19484838, // ferrsimo
              // contractId: 13709744, // ferrsimo
              // contractId: 14075906, // daticwt2021
              // contractId: 15138129, // daticwt2021

              configuration: {
                debuggingMode: true,
                // createNewClaimAvailable: true,
                // showSVGFastTrack: false,
                fastTrackElementsMenuModal: true,
                fastTrackElementsMenu: [
                  {
                    menuGroupId: 'glasses',
                    menuGroupLabel: 'Glasses',
                    // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
                    elementDatIDs: ['DATID_0043', 'DATID_0044', 'DATID_0047']
                  },
                  {
                    menuGroupId: 'doors',
                    menuGroupLabel: 'Doors',
                    // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
                    elementDatIDs: ['DATID_0041', 'DATID_0042']
                  }
                ]
              }
            }

            // selector: '#root',
            // credentials: {
            //   customerNumber: '3450006',
            //   customerLogin: 'wedatpresent',
            //   customerPassword: 'wedatpresent12'
            // },
            // contractId: 28752074,
            // configuration: {
            //   fastTrackElementsMenuModal: true,
            //   fastTrackElementsMenu: [
            //     {
            //       menuGroupId: 'glasses',
            //       menuGroupLabel: 'Glasses',
            //       // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
            //       elementDatIDs: ['DATID_0043', 'DATID_0044', 'DATID_0047']
            //     },
            //     {
            //       menuGroupId: 'doors',
            //       menuGroupLabel: 'Doors',
            //       // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
            //       elementDatIDs: ['DATID_0041', 'DATID_0042']
            //     }
            //   ]
            // }
          });
      });
    </script>
  </body>
</html>

Example-2

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- load plugin style -->
    <link href="https://tst.wedat.eu/fast-track/plugin.css" rel="stylesheet" />
    <title>DAT</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <!-- <h1 style="text-align: center">Example plugin integration</h1> -->
    <div id="root"></div>

    <!-- load plugin JS synchronously -->
    <script src="https://tst.wedat.eu/fast-track/plugin.js"></script>

    <script>
      document.addEventListener("DOMContentLoaded", () => {
        window.FAST_TRACK_2 &&
          window.FAST_TRACK_2.init({
            datServicesUrls: {
              soapMyClaimExternalServiceUrl:
                "https://www.datgroup.com/myClaim/soap/v2/MyClaimExternalService",
              // soapMyClaimExternalServiceUrl: 'https://www.dat.de/myClaim/soap/v2/MyClaimExternalService',
              restFastTrackServiceUrl:
                "https://www.dat.de/myClaim/rest/FastTrackService",
              restTokenServiceUrl:
                "https://www.dat.de/AuthorizationManager/service--/endpoint/tokenService",
              soapVehicleIdentificationServiceUrl:
                "https://www.dat.de/myClaim/soap/v2/VehicleIdentificationService",
              soapVehicleRepairServiceUrl:
                "https://www.dat.de/myClaim/soap/v2/VehicleRepairService",
            },
            selector: "#root",
            credentialsWithPartnerSignature: undefined,
            // or
            // credentialsWithPartnerSignature: {
            //   interfacePartnerNumber: '',
            //   interfacePartnerSignature: '',
            //   customerNumber: '',
            //   customerLogin: '',
            //   customerSignature: ''
            // },
            // or
            // credentials: {
            //     customerNumber: '',
            //     user: '',
            //     password: ''
            // },
            settings: {
              // contractId: 65465,  // your contraci id
              // debuggingMode: false,
              debuggingMode: true,
              createNewClaimAvailable: false,
              fastTrackElementsMenuModal: true,
              fastTrackElementsMenu: [
                {
                  menuGroupId: "glasses",
                  menuGroupLabel: "Glasses",
                  // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
                  elementDatIDs: ["DATID_0043", "DATID_0044", "DATID_0047"],
                },
                {
                  menuGroupId: "doors",
                  menuGroupLabel: "Doors",
                  // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
                  elementDatIDs: ["DATID_0041", "DATID_0042"],
                },
              ],
            },
          });
      });
    </script>
  </body>
</html>

Plugin Options by default

export const defaultOptions: PluginOptions = {
  onCalculate: (contract) => {
    console.log("onCalculate:");
    console.log(contract);
  },
  onError: (error) => {
    console.log("onError:");
    console.log(error);
  },
  credentialsWithPartnerSignature: {
    ...testCredentials3451429,
  },
  // datServicesUrls: {
  //     soapMyClaimExternalServiceUrl: 'https://www.datgroup.com/myClaim/soap/v2/MyClaimExternalService',
  //     // soapMyClaimExternalServiceUrl: 'https://www.dat.de/myClaim/soap/v2/MyClaimExternalService',
  //     restFastTrackServiceUrl: 'https://www.dat.de/myClaim/rest/FastTrackService',
  //     restTokenServiceUrl: 'https://www.dat.de/AuthorizationManager/service--/endpoint/tokenService',
  //     soapVehicleIdentificationServiceUrl: 'https://www.dat.de/myClaim/soap/v2/VehicleIdentificationService',
  //     soapVehicleRepairServiceUrl: 'https://www.dat.de/myClaim/soap/v2/VehicleRepairService'
  // },
  settings: {
    debuggingMode: true,
    maxWidth: "900px",
    maxWidthSVG: "900px",
    maxMobileWidth: 862,
    // backgroundColor: 'white',
    backgroundColor: "rgb(250, 250, 250)",

    contractId: 13023295,

    saveFTDamageOnChange: false,

    createNewClaimAvailable: true,
    // if createNewClaimAvailable enabled then by 'clear' button you can create clear claim and save it by 'calculate button'
    // in this case showPredefinedVehicleSelection is mandatory

    // parameters use fore Vehicle Identification Service
    locale: {
      attr: {
        country: "ru",
        datCountryIndicator: "ru",
        language: "RU",
      },
    },
    // parameters use fore creation claim
    createContractInit: {
      contractType: "vro_calculation",
      networkType: "DATRUSSIA",
      templateId: "128800",
      Dossier: {
        Country: "RU",
        Language: "ru",
        Currency: "RUB",
      },
    },

    // show or not block with fast-track element select menu
    showFastTrackElementsMenu: true,
    fastTrackElementsMenuModal: true,
    fastTrackElementsMenu: [
      {
        menuGroupId: "glasses",
        menuGroupLabel: "Glasses",
        menuGroupImgUrl: "./MenuGroupPictures/glass.jpg",
        elementDatIDs: ["DATID_0043", "DATID_0044", "DATID_0047"],
      },
      {
        menuGroupId: "doors",
        menuGroupLabel: "Doors",
        // menuGroupImgUrl: './MenuGroupPictures/glass.jpg',
        elementDatIDs: ["DATID_0041", "DATID_0042"],
      },
    ],

    showSVGFastTrack: true,
    fastTrackViews: {
      AIMode: true,
      default: true,
      frontDriver: true,
      rearPassenger: true,
      front: true,
      rear: true,
    },

    showListDamages: true,

    autoCalculation: true,
    showResultTable: true,
    resultFormat: {
      locales: "ru-RU",
      numberFormatOptions: {
        style: "currency",
        currency: "RUB",
        minimumFractionDigits: 0,
      },
    },

    // fastTrackConfiguration: {
    //     fastTrackGroups: {
    //         DATID_PKGSENSOUT_FL: 'FTGROUP_AI',
    //         DATID_new59: 'FTGROUP_AI',
    //         'DATID_STRIP-LF': 'FTGROUP_AI',
    //         DATID_0045: 'FTGROUP_FENDERS',
    //         DATID_BTRIM_FL: 'FTGROUP_AI',
    //         DATID_0046: 'FTGROUP_FENDERS',
    //         DATID_0043: 'FTGROUP_GLASS',
    //         DATID_0044: 'FTGROUP_GLASS',
    //         DATID_0041: 'FTGROUP_DOORS',
    //         DATID_0042: 'FTGROUP_DOORS',
    //         DATID_0040: 'FTGROUP_NOTUSED',
    //         DATID_EFG0071: 'FTGROUP_AI',
    //         DATID_BTRIM_FR: 'FTGROUP_AI',
    //         DATID_LOCKCARRIER_F: 'FTGROUP_AI',
    //         DATID_0047: 'FTGROUP_GLASS',
    //         DATID_0048: 'FTGROUP_GLASS',
    //         DATID_EFG0073: 'FTGROUP_AI',
    //         DATID_PKGSENSOUT_FR: 'FTGROUP_AI',
    //         DATID_new64: 'FTGROUP_AI',
    //         DATID_BGRID_FR: 'FTGROUP_AI',
    //         DATID_new63: 'FTGROUP_AI',
    //         DATID_new65: 'FTGROUP_AI',
    //         DATID_BUMBRACKET_RTL: 'FTGROUP_AI',
    //         DATID_PKGSENSINT_RL: 'FTGROUP_AI',
    //         DATID_0054: 'FTGROUP_LIGHTS',
    //         P0128: 'FAULT_CODES',
    //         P0403: 'FAULT_CODES',
    //         DATID_WSHELL_FL: 'FTGROUP_AI',
    //         DATID_0052: 'FTGROUP_LIGHTS',
    //         DATID_BUMBRACKET_RTR: 'FTGROUP_AI',
    //         DATID_0053: 'FTGROUP_LIGHTS',
    //         DATID_0038_GLASS: 'FTGROUP_0037_GLASS',
    //         DATID_0051: 'FTGROUP_LIGHTS',
    //         DATID_PKGSENSINT_RR: 'FTGROUP_AI',
    //         DATID_0037_TSIGNAL: 'FTGROUP_0037_TSIGNAL',
    //         DATID_BTRIM_R: 'FTGROUP_AI',
    //         DATID_EFG0100: 'FTGROUP_AI',
    //         DATID_EFG0067: 'FTGROUP_AI',
    //         'DATID_STRIP-RR': 'FTGROUP_AI',
    //         DATID_EFG0068: 'FTGROUP_AI',
    //         DATID_BGRID_FL: 'FTGROUP_AI',
    //         DATID_new60: 'FTGROUP_AI',
    //         DATID_new62: 'FTGROUP_AI',
    //         DATID_new61: 'FTGROUP_AI',
    //         DATID_BTRIM_F: 'FTGROUP_AI',
    //         DATID_BrandLogo: 'FTGROUP_AI',
    //         DATID_0023: 'FTGROUP_LIGHTS',
    //         DATID_0024: 'FTGROUP_LIGHTS',
    //         DATID_0021: 'FTGROUP_LIGHTS',
    //         DATID_0022: 'FTGROUP_LIGHTS',
    //         P0110: 'FAULT_CODES',
    //         DATID_BFILLER_F: 'FTGROUP_AI',
    //         DATID_BSPOILER_FR: 'FTGROUP_AI',
    //         DATID_0029: 'FTGROUP_GLASS',
    //         P0070: 'FAULT_CODES',
    //         DATID_0025: 'FTGROUP_FENDERS',
    //         DATID_0026: 'FTGROUP_FENDERS',
    //         DATID_EFG0133: 'FTGROUP_GLASS',
    //         DATID_PKGSENSCTR_FL: 'FTGROUP_AI',
    //         DATID_PKGSENSCTR_FR: 'FTGROUP_AI',
    //         DATID_LCK_BK: 'FTGROUP_LOCKS',
    //         P0903: 'FAULT_CODES',
    //         DATID_0034: 'FTGROUP_DOORS',
    //         DATID_0035: 'FTGROUP_GLASS',
    //         DATID_0032: 'FTGROUP_NOTUSED',
    //         DATID_0033: 'FTGROUP_DOORS',
    //         DATID_0030: 'FTGROUP_GLASS',
    //         DATID_0031: 'FTGROUP_NOTUSED',
    //         'DATID_STRIP-LR': 'FTGROUP_AI',
    //         DATID_0038: 'FTGROUP_MIRRORS',
    //         DATID_0039: 'FTGROUP_NOTUSED',
    //         DATID_FENDEREXT_FR: 'FTGROUP_FENDEREXT',
    //         DATID_0036: 'FTGROUP_GLASS',
    //         DATID_0037: 'FTGROUP_MIRRORS',
    //         DATID_BUMBRACKET_RR: 'FTGROUP_AI',
    //         DATID_FENDEREXT_FL: 'FTGROUP_FENDEREXT',
    //         DATID_BUMBRACKET_RL: 'FTGROUP_AI',
    //         DATID_BTRIM_RL: 'FTGROUP_AI',
    //         DATID_CLBEAM_LH: 'FTGROUP_CLBEAM',
    //         DATID_0001: 'FTGROUP_BUMPERS',
    //         DATID_PKGSENSOUT_RL: 'FTGROUP_AI',
    //         DATID_0002: 'FTGROUP_AI',
    //         DATID_BTRIM_RR: 'FTGROUP_AI',
    //         DATID_PKGSENSOUT_RR: 'FTGROUP_AI',
    //         DATID_0009: 'FTGROUP_LIGHTS',
    //         DATID_0007: 'FTGROUP_DOORS',
    //         DATID_LOWGRILLE_F: 'FTGROUP_AI',
    //         DATID_0008: 'FTGROUP_BUMPERS',
    //         DATID_0006: 'FTGROUP_GLASS',
    //         DATID_0003: 'FTGROUP_AI',
    //         DATID_0004: 'FTGROUP_GLASS',
    //         DATID_LCK_FL: 'FTGROUP_LOCKS',
    //         DATID_LOCKENGHOOD: 'FTGROUP_AI',
    //         DATID_PKGSENSINT_FL: 'FTGROUP_AI',
    //         DATID_CRASHBEAM_FB: 'FTGROUP_AI',
    //         DATID_WSHELL_RL: 'FTGROUP_AI',
    //         P0324: 'FAULT_CODES',
    //         DATID_0010: 'FTGROUP_GLASS',
    //         DATID_WSHELL_RR: 'FTGROUP_AI',
    //         DATID_SIDEGLASS4: 'FTGROUP_SIDEGLASS',
    //         P2100: 'FAULT_CODES',
    //         DATID_SIDEGLASS1: 'FTGROUP_SIDEGLASS',
    //         DATID_SIDEGLASS3: 'FTGROUP_SIDEGLASS',
    //         DATID_SIDEGLASS2: 'FTGROUP_SIDEGLASS',
    //         DATID_LOWGRILLE_FL: 'FTGROUP_AI',
    //         DATID_PKGSENSINT_FR: 'FTGROUP_AI',
    //         DATID_LOWGRILLE_FR: 'FTGROUP_AI',
    //         DATID_Lettering_2: 'FTGROUP_AI',
    //         DATID_Lettering_1: 'FTGROUP_AI',
    //         DATID_CLBEAM_RH: 'FTGROUP_CLBEAM',
    //         DATID_0067: 'FTGROUP_RIMS',
    //         DATID_0068: 'FTGROUP_RIMS',
    //         DATID_BSPOILER_RE: 'FTGROUP_AI',
    //         DATID_0065: 'FTGROUP_TIRES',
    //         DATID_0066: 'FTGROUP_TIRES',
    //         DATID_0063: 'FTGROUP_RIMS',
    //         'DATID_STRIP-RF': 'FTGROUP_AI',
    //         DATID_0064: 'FTGROUP_RIMS',
    //         DATID_RDEFLEC_RR: 'FTGROUP_AI',
    //         DATID_0061: 'FTGROUP_TIRES',
    //         DATID_0062: 'FTGROUP_TIRES',
    //         DATID_CRASHBEAM_FT: 'FTGROUP_AI',
    //         DATID_WSHELL_FR: 'FTGROUP_AI',
    //         DATID_BTRIMHITCH_R: 'FTGROUP_AI',
    //         DATID_EMBLEMR: 'FTGROUP_AI',
    //         DATID_HINGEHOOD_R: 'FTGROUP_AI',
    //         DATID_RDEFLEC_RL: 'FTGROUP_AI',
    //         DATID_BUMBRACKET_RCL: 'FTGROUP_AI',
    //         DATID_EFG0057: 'FTGROUP_AI',
    //         DATID_BUMBRACKET_RCR: 'FTGROUP_AI',
    //         DATID_EFG0333: 'FTGROUP_GLASS',
    //         DATID_EFG0058: 'FTGROUP_AI',
    //         DATID_HINGEHOOD_L: 'FTGROUP_AI',
    //         DATID_FENDEREXT_RR: 'FTGROUP_FENDEREXT',
    //         DATID_0071: 'FTGROUP_HANDLES',
    //         DATID_LCK_FR: 'FTGROUP_LOCKS',
    //         DATID_0038_TSIGNAL: 'FTGROUP_0037_TSIGNAL',
    //         P0425: 'FAULT_CODES',
    //         DATID_FENDEREXT_RL: 'FTGROUP_FENDEREXT',
    //         DATID_BUMBRACKET_FR: 'FTGROUP_AI',
    //         DATID_0074: 'FTGROUP_HANDLES',
    //         P2200: 'FAULT_CODES',
    //         DATID_0072: 'FTGROUP_HANDLES',
    //         DATID_0073: 'FTGROUP_HANDLES',
    //         DATID_BUMBRACKET_R: 'FTGROUP_AI',
    //         DATID_0037_GLASS: 'FTGROUP_0037_GLASS',
    //         DATID_BUMBRACKET_FL: 'FTGROUP_AI',
    //         DATID_BSPOILER_RER: 'FTGROUP_AI',
    //         DATID_BUMBRACKET_F: 'FTGROUP_AI',
    //         DATID_LAMPCARRIER_R: 'FTGROUP_AI',
    //         DATID_LAMPCARRIER_L: 'FTGROUP_AI',
    //         DATID_BSPOILER_REL: 'FTGROUP_AI'
    //     },
    //     fastTrackDamages: {
    //         FTGROUP_GLASS: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         FTGROUP_RIMS: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         DATID_WC_FL: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         default: [
    //             {
    //                 id: 'level0',
    //                 label: 'Замена'
    //             },
    //             {
    //                 id: 'level1',
    //                 label: 'Ремонт + Покраска'
    //             },
    //             {
    //                 id: 'level2',
    //                 label: 'Покраска'
    //             }
    //         ],
    //         FTGROUP_TIRES: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         FTGROUP_LIGHTS: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         DATID_WC_RR: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         DATID_WC_RL: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ],
    //         DATID_WC_FR: [
    //             {
    //                 id: 'level3',
    //                 label: 'Замена'
    //             }
    //         ]
    //     }
    // },
  },
};