content: // GENERATED CODE - DO NOT MODIFY BY HAND
  
  part of '../config.dart';
  
  // **************************************************************************
  // JsonSerializableGenerator
  // **************************************************************************
  
  _$AppSettingPropsImpl _$$AppSettingPropsImplFromJson(
          Map<String, dynamic> json) =>
      _$AppSettingPropsImpl(
        locale: json['locale'] as String?,
        dashboardWidgets: json['dashboardWidgets'] == null
            ? defaultDashboardWidgets
            : dashboardWidgetsSafeFormJson(json['dashboardWidgets'] as List?),
        onlyStatisticsProxy: json['onlyStatisticsProxy'] as bool? ?? false,
        autoLaunch: json['autoLaunch'] as bool? ?? false,
        silentLaunch: json['silentLaunch'] as bool? ?? false,
        autoRun: json['autoRun'] as bool? ?? false,
        openLogs: json['openLogs'] as bool? ?? false,
        closeConnections: json['closeConnections'] as bool? ?? true,
        testUrl: json['testUrl'] as String? ?? defaultTestUrl,
        isAnimateToPage: json['isAnimateToPage'] as bool? ?? true,
        autoCheckUpdate: json['autoCheckUpdate'] as bool? ?? true,
        showLabel: json['showLabel'] as bool? ?? false,
        disclaimerAccepted: json['disclaimerAccepted'] as bool? ?? false,
        minimizeOnExit: json['minimizeOnExit'] as bool? ?? true,
        hidden: json['hidden'] as bool? ?? false,
        developerMode: json['developerMode'] as bool? ?? false,
        recoveryStrategy: $enumDecodeNullable(
                _$RecoveryStrategyEnumMap, json['recoveryStrategy']) ??
            RecoveryStrategy.compatible,
        enableClipboardMonitor: json['enableClipboardMonitor'] as bool? ?? false,
        enableAutoSwitch: json['enableAutoSwitch'] as bool? ?? false,
        autoSwitchInterval: (json['autoSwitchInterval'] as num?)?.toInt() ?? 300,
        autoSwitchTestUrl: json['autoSwitchTestUrl'] as String? ?? defaultTestUrl,
      );
  
  Map<String, dynamic> _$$AppSettingPropsImplToJson(
          _$AppSettingPropsImpl instance) =>
      <String, dynamic>{
        'locale': instance.locale,
        'dashboardWidgets': instance.dashboardWidgets
            .map((e) => _$DashboardWidgetEnumMap[e]!)
            .toList(),
        'onlyStatisticsProxy': instance.onlyStatisticsProxy,
        'autoLaunch': instance.autoLaunch,
        'silentLaunch': instance.silentLaunch,
        'autoRun': instance.autoRun,
        'openLogs': instance.openLogs,
        'closeConnections': instance.closeConnections,
        'testUrl': instance.testUrl,
        'isAnimateToPage': instance.isAnimateToPage,
        'autoCheckUpdate': instance.autoCheckUpdate,
        'showLabel': instance.showLabel,
        'disclaimerAccepted': instance.disclaimerAccepted,
        'minimizeOnExit': instance.minimizeOnExit,
        'hidden': instance.hidden,
        'developerMode': instance.developerMode,
        'recoveryStrategy': _$RecoveryStrategyEnumMap[instance.recoveryStrategy]!,
        'enableClipboardMonitor': instance.enableClipboardMonitor,
        'enableAutoSwitch': instance.enableAutoSwitch,
        'autoSwitchInterval': instance.autoSwitchInterval,
        'autoSwitchTestUrl': instance.autoSwitchTestUrl,
      };
  
  const _$RecoveryStrategyEnumMap = {
    RecoveryStrategy.compatible: 'compatible',
    RecoveryStrategy.override: 'override',
  };
  
  const _$DashboardWidgetEnumMap = {
    DashboardWidget.networkSpeed: 'networkSpeed',
    DashboardWidget.outboundModeV2: 'outboundModeV2',
    DashboardWidget.outboundMode: 'outboundMode',
    DashboardWidget.trafficUsage: 'trafficUsage',
    DashboardWidget.networkDetection: 'networkDetection',
    DashboardWidget.tunButton: 'tunButton',
    DashboardWidget.vpnButton: 'vpnButton',
    DashboardWidget.systemProxyButton: 'systemProxyButton',
    DashboardWidget.intranetIp: 'intranetIp',
    DashboardWidget.memoryInfo: 'memoryInfo',
  };
  
  _$AccessControlImpl _$$AccessControlImplFromJson(Map<String, dynamic> json) =>
      _$AccessControlImpl(
        enable: json['enable'] as bool? ?? false,
        mode: $enumDecodeNullable(_$AccessControlModeEnumMap, json['mode']) ??
            AccessControlMode.rejectSelected,
        acceptList: (json['acceptList'] as List<dynamic>?)
                ?.map((e) => e as String)
                .toList() ??
            const [],
        rejectList: (json['rejectList'] as List<dynamic>?)
                ?.map((e) => e as String)
                .toList() ??
            const [],
        sort: $enumDecodeNullable(_$AccessSortTypeEnumMap, json['sort']) ??
            AccessSortType.none,
        isFilterSystemApp: json['isFilterSystemApp'] as bool? ?? true,
        isFilterNonInternetApp: json['isFilterNonInternetApp'] as bool? ?? true,
      );
  
  Map<String, dynamic> _$$AccessControlImplToJson(_$AccessControlImpl instance) =>
      <String, dynamic>{
        'enable': instance.enable,
        'mode': _$AccessControlModeEnumMap[instance.mode]!,
        'acceptList': instance.acceptList,
        'rejectList': instance.rejectList,
        'sort': _$AccessSortTypeEnumMap[instance.sort]!,
        'isFilterSystemApp': instance.isFilterSystemApp,
        'isFilterNonInternetApp': instance.isFilterNonInternetApp,
      };
  
  const _$AccessControlModeEnumMap = {
    AccessControlMode.acceptSelected: 'acceptSelected',
    AccessControlMode.rejectSelected: 'rejectSelected',
  };
  
  const _$AccessSortTypeEnumMap = {
    AccessSortType.none: 'none',
    AccessSortType.name: 'name',
    AccessSortType.time: 'time',
  };
  
  _$WindowPropsImpl _$$WindowPropsImplFromJson(Map<String, dynamic> json) =>
      _$WindowPropsImpl(
        width: (json['width'] as num?)?.toDouble() ?? 750,
        height: (json['height'] as num?)?.toDouble() ?? 600,
        top: (json['top'] as num?)?.toDouble(),
        left: (json['left'] as num?)?.toDouble(),
      );
  
  Map<String, dynamic> _$$WindowPropsImplToJson(_$WindowPropsImpl instance) =>
      <String, dynamic>{
        'width': instance.width,
        'height': instance.height,
        'top': instance.top,
        'left': instance.left,
      };
  
  _$VpnPropsImpl _$$VpnPropsImplFromJson(Map<String, dynamic> json) =>
      _$VpnPropsImpl(
        enable: json['enable'] as bool? ?? true,
        systemProxy: json['systemProxy'] as bool? ?? true,
        ipv6: json['ipv6'] as bool? ?? false,
        allowBypass: json['allowBypass'] as bool? ?? true,
        accessControl: json['accessControl'] == null
            ? defaultAccessControl
            : AccessControl.fromJson(
                json['accessControl'] as Map<String, dynamic>),
      );
  
  Map<String, dynamic> _$$VpnPropsImplToJson(_$VpnPropsImpl instance) =>
      <String, dynamic>{
        'enable': instance.enable,
        'systemProxy': instance.systemProxy,
        'ipv6': instance.ipv6,
        'allowBypass': instance.allowBypass,
        'accessControl': instance.accessControl,
      };
  
  _$NetworkPropsImpl _$$NetworkPropsImplFromJson(Map<String, dynamic> json) =>
      _$NetworkPropsImpl(
        systemProxy: json['systemProxy'] as bool? ?? true,
        bypassDomain: (json['bypassDomain'] as List<dynamic>?)
                ?.map((e) => e as String)
                .toList() ??
            defaultBypassDomain,
        routeMode: $enumDecodeNullable(_$RouteModeEnumMap, json['routeMode']) ??
            RouteMode.bypassPrivate,
      );
  
  Map<String, dynamic> _$$NetworkPropsImplToJson(_$NetworkPropsImpl instance) =>
      <String, dynamic>{
        'systemProxy': instance.systemProxy,
        'bypassDomain': instance.bypassDomain,
        'routeMode': _$RouteModeEnumMap[instance.routeMode]!,
      };
  
  const _$RouteModeEnumMap = {
    RouteMode.bypassPrivate: 'bypassPrivate',
    RouteMode.config: 'config',
  };
  
  _$ProxiesStyleImpl _$$ProxiesStyleImplFromJson(Map<String, dynamic> json) =>
      _$ProxiesStyleImpl(
        type: $enumDecodeNullable(_$ProxiesTypeEnumMap, json['type']) ??
            ProxiesType.tab,
        sortType:
            $enumDecodeNullable(_$ProxiesSortTypeEnumMap, json['sortType']) ??
                ProxiesSortType.none,
        layout: $enumDecodeNullable(_$ProxiesLayoutEnumMap, json['layout']) ??
            ProxiesLayout.standard,
        iconStyle:
            $enumDecodeNullable(_$ProxiesIconStyleEnumMap, json['iconStyle']) ??
                ProxiesIconStyle.standard,
        cardType: $enumDecodeNullable(_$ProxyCardTypeEnumMap, json['cardType']) ??
            ProxyCardType.expand,
        iconMap: (json['iconMap'] as Map<String, dynamic>?)?.map(
              (k, e) => MapEntry(k, e as String),
            ) ??
            const {},
      );
  
  Map<String, dynamic> _$$ProxiesStyleImplToJson(_$ProxiesStyleImpl instance) =>
      <String, dynamic>{
        'type': _$ProxiesTypeEnumMap[instance.type]!,
        'sortType': _$ProxiesSortTypeEnumMap[instance.sortType]!,
        'layout': _$ProxiesLayoutEnumMap[instance.layout]!,
        'iconStyle': _$ProxiesIconStyleEnumMap[instance.iconStyle]!,
        'cardType': _$ProxyCardTypeEnumMap[instance.cardType]!,
        'iconMap': instance.iconMap,
      };
  
  const _$ProxiesTypeEnumMap = {
    ProxiesType.tab: 'tab',
    ProxiesType.list: 'list',
  };
  
  const _$ProxiesSortTypeEnumMap = {
    ProxiesSortType.none: 'none',
    ProxiesSortType.delay: 'delay',
    ProxiesSortType.name: 'name',
  };
  
  const _$ProxiesLayoutEnumMap = {
    ProxiesLayout.loose: 'loose',
    ProxiesLayout.standard: 'standard',
    ProxiesLayout.tight: 'tight',
  };
  
  const _$ProxiesIconStyleEnumMap = {
    ProxiesIconStyle.standard: 'standard',
    ProxiesIconStyle.none: 'none',
    ProxiesIconStyle.icon: 'icon',
  };
  
  const _$ProxyCardTypeEnumMap = {
    ProxyCardType.expand: 'expand',
    ProxyCardType.shrink: 'shrink',
    ProxyCardType.min: 'min',
  };
  
  _$TextScaleImpl _$$TextScaleImplFromJson(Map<String, dynamic> json) =>
      _$TextScaleImpl(
        enable: json['enable'] ?? false,
        scale: json['scale'] ?? 1.0,
      );
  
  Map<String, dynamic> _$$TextScaleImplToJson(_$TextScaleImpl instance) =>
      <String, dynamic>{
        'enable': instance.enable,
        'scale': instance.scale,
      };
  
  _$ThemePropsImpl _$$ThemePropsImplFromJson(Map<String, dynamic> json) =>
      _$ThemePropsImpl(
        primaryColor: (json['primaryColor'] as num?)?.toInt(),
        primaryColors: (json['primaryColors'] as List<dynamic>?)
                ?.map((e) => (e as num).toInt())
                .toList() ??
            defaultPrimaryColors,
        themeMode: $enumDecodeNullable(_$ThemeModeEnumMap, json['themeMode']) ??
            ThemeMode.dark,
        schemeVariant: $enumDecodeNullable(
                _$DynamicSchemeVariantEnumMap, json['schemeVariant']) ??
            DynamicSchemeVariant.content,
        pureBlack: json['pureBlack'] as bool? ?? false,
        textScale: json['textScale'] == null
            ? const TextScale()
            : TextScale.fromJson(json['textScale'] as Map<String, dynamic>),
      );
  
  Map<String, dynamic> _$$ThemePropsImplToJson(_$ThemePropsImpl instance) =>
      <String, dynamic>{
        'primaryColor': instance.primaryColor,
        'primaryColors': instance.primaryColors,
        'themeMode': _$ThemeModeEnumMap[instance.themeMode]!,
        'schemeVariant': _$DynamicSchemeVariantEnumMap[instance.schemeVariant]!,
        'pureBlack': instance.pureBlack,
        'textScale': instance.textScale,
      };
  
  const _$ThemeModeEnumMap = {
    ThemeMode.system: 'system',
    ThemeMode.light: 'light',
    ThemeMode.dark: 'dark',
  };
  
  const _$DynamicSchemeVariantEnumMap = {
    DynamicSchemeVariant.tonalSpot: 'tonalSpot',
    DynamicSchemeVariant.fidelity: 'fidelity',
    DynamicSchemeVariant.monochrome: 'monochrome',
    DynamicSchemeVariant.neutral: 'neutral',
    DynamicSchemeVariant.vibrant: 'vibrant',
    DynamicSchemeVariant.expressive: 'expressive',
    DynamicSchemeVariant.content: 'content',
    DynamicSchemeVariant.rainbow: 'rainbow',
    DynamicSchemeVariant.fruitSalad: 'fruitSalad',
  };
  
  _$ConfigImpl _$$ConfigImplFromJson(Map<String, dynamic> json) => _$ConfigImpl(
        appSetting: json['appSetting'] == null
            ? defaultAppSettingProps
            : AppSettingProps.safeFromJson(
                json['appSetting'] as Map<String, Object?>?),
        profiles: (json['profiles'] as List<dynamic>?)
                ?.map((e) => Profile.fromJson(e as Map<String, dynamic>))
                .toList() ??
            const [],
        hotKeyActions: (json['hotKeyActions'] as List<dynamic>?)
                ?.map((e) => HotKeyAction.fromJson(e as Map<String, dynamic>))
                .toList() ??
            const [],
        currentProfileId: json['currentProfileId'] as String?,
        overrideDns: json['overrideDns'] as bool? ?? false,
        dav: json['dav'] == null
            ? null
            : DAV.fromJson(json['dav'] as Map<String, dynamic>),
        networkProps: json['networkProps'] == null
            ? defaultNetworkProps
            : NetworkProps.fromJson(
                json['networkProps'] as Map<String, dynamic>?),
        vpnProps: json['vpnProps'] == null
            ? defaultVpnProps
            : VpnProps.fromJson(json['vpnProps'] as Map<String, dynamic>?),
        themeProps:
            ThemeProps.safeFromJson(json['themeProps'] as Map<String, Object?>?),
        proxiesStyle: json['proxiesStyle'] == null
            ? defaultProxiesStyle
            : ProxiesStyle.fromJson(
                json['proxiesStyle'] as Map<String, dynamic>?),
        windowProps: json['windowProps'] == null
            ? defaultWindowProps
            : WindowProps.fromJson(json['windowProps'] as Map<String, dynamic>?),
        patchClashConfig: json['patchClashConfig'] == null
            ? defaultClashConfig
            : ClashConfig.fromJson(
                json['patchClashConfig'] as Map<String, dynamic>),
      );
  
  Map<String, dynamic> _$$ConfigImplToJson(_$ConfigImpl instance) =>
      <String, dynamic>{
        'appSetting': instance.appSetting,
        'profiles': instance.profiles,
        'hotKeyActions': instance.hotKeyActions,
        'currentProfileId': instance.currentProfileId,
        'overrideDns': instance.overrideDns,
        'dav': instance.dav,
        'networkProps': instance.networkProps,
        'vpnProps': instance.vpnProps,
        'themeProps': instance.themeProps,
        'proxiesStyle': instance.proxiesStyle,
        'windowProps': instance.windowProps,
        'patchClashConfig': instance.patchClashConfig,
      };
  