import { ProductList, CartModule, AccountListModule, DateModule, OrderModule, PaymentModule, StepModule, SummaryModule, SalesSummaryModule, ScheduleModule, ScanOrderLoggerModule } from "../../modules";
export function createModule(moduleName, solutionName, name, version) {
  switch (moduleName) {
    case 'cart':
      return new CartModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'summary':
      return new SummaryModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'salesSummary':
      return new SalesSummaryModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'step':
      return new StepModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'products':
      return new ProductList("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'date':
      return new DateModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'accountList':
      return new AccountListModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'order':
      return new OrderModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'payment':
      return new PaymentModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'schedule':
      return new ScheduleModule("".concat(solutionName, "_").concat(name || moduleName), version);
    case 'scanOrderLogger':
      return new ScanOrderLoggerModule("".concat(solutionName, "_").concat(name || moduleName), version);
    default:
      throw new Error("Unknown module type: ".concat(moduleName));
  }
}
export var BookingByStepHooks = /*#__PURE__*/function (BookingByStepHooks) {
  BookingByStepHooks["onInited"] = "bookingByStep:onInited";
  BookingByStepHooks["onDestroy"] = "bookingByStep:onDestroy";
  BookingByStepHooks["onProductsLoaded"] = "bookingByStep:onProductsLoaded";
  BookingByStepHooks["onGuestsLoaded"] = "bookingByStep:onGuestsLoaded";
  BookingByStepHooks["onDateLoaded"] = "bookingByStep:onDateLoaded";
  BookingByStepHooks["onResourcesLoaded"] = "bookingByStep:onResourcesLoaded";
  BookingByStepHooks["onAccountLoaded"] = "bookingByStep:onAccountLoaded";
  return BookingByStepHooks;
}({});