// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'product_categories_state.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

T _$identity<T>(T value) => value;

final _privateConstructorUsedError = UnsupportedError(
    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

/// @nodoc
mixin _$ProductCategoriesState {
  bool get isLoading => throw _privateConstructorUsedError;
  bool get isMainLoading => throw _privateConstructorUsedError;
  bool get isCategoryLoading => throw _privateConstructorUsedError;
  List<CategoryModel> get categories => throw _privateConstructorUsedError;
  List<CategoryModel> get category => throw _privateConstructorUsedError;
  List<MainCategoryModel> get mainCategory =>
      throw _privateConstructorUsedError;
  List<ProductModel> get categoryFoods => throw _privateConstructorUsedError;
  int get activeIndex => throw _privateConstructorUsedError;
  int get activeMainIndex => throw _privateConstructorUsedError;

  @JsonKey(ignore: true)
  $ProductCategoriesStateCopyWith<ProductCategoriesState> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $ProductCategoriesStateCopyWith<$Res> {
  factory $ProductCategoriesStateCopyWith(ProductCategoriesState value,
          $Res Function(ProductCategoriesState) then) =
      _$ProductCategoriesStateCopyWithImpl<$Res, ProductCategoriesState>;
  @useResult
  $Res call(
      {bool isLoading,
      bool isMainLoading,
      bool isCategoryLoading,
      List<CategoryModel> categories,
      List<CategoryModel> category,
      List<MainCategoryModel> mainCategory,
      List<ProductModel> categoryFoods,
      int activeIndex,
      int activeMainIndex});
}

/// @nodoc
class _$ProductCategoriesStateCopyWithImpl<$Res,
        $Val extends ProductCategoriesState>
    implements $ProductCategoriesStateCopyWith<$Res> {
  _$ProductCategoriesStateCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? isLoading = null,
    Object? isMainLoading = null,
    Object? isCategoryLoading = null,
    Object? categories = null,
    Object? category = null,
    Object? mainCategory = null,
    Object? categoryFoods = null,
    Object? activeIndex = null,
    Object? activeMainIndex = null,
  }) {
    return _then(_value.copyWith(
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isMainLoading: null == isMainLoading
          ? _value.isMainLoading
          : isMainLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isCategoryLoading: null == isCategoryLoading
          ? _value.isCategoryLoading
          : isCategoryLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      categories: null == categories
          ? _value.categories
          : categories // ignore: cast_nullable_to_non_nullable
              as List<CategoryModel>,
      category: null == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as List<CategoryModel>,
      mainCategory: null == mainCategory
          ? _value.mainCategory
          : mainCategory // ignore: cast_nullable_to_non_nullable
              as List<MainCategoryModel>,
      categoryFoods: null == categoryFoods
          ? _value.categoryFoods
          : categoryFoods // ignore: cast_nullable_to_non_nullable
              as List<ProductModel>,
      activeIndex: null == activeIndex
          ? _value.activeIndex
          : activeIndex // ignore: cast_nullable_to_non_nullable
              as int,
      activeMainIndex: null == activeMainIndex
          ? _value.activeMainIndex
          : activeMainIndex // ignore: cast_nullable_to_non_nullable
              as int,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$_ProductCategoriesStateCopyWith<$Res>
    implements $ProductCategoriesStateCopyWith<$Res> {
  factory _$$_ProductCategoriesStateCopyWith(_$_ProductCategoriesState value,
          $Res Function(_$_ProductCategoriesState) then) =
      __$$_ProductCategoriesStateCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {bool isLoading,
      bool isMainLoading,
      bool isCategoryLoading,
      List<CategoryModel> categories,
      List<CategoryModel> category,
      List<MainCategoryModel> mainCategory,
      List<ProductModel> categoryFoods,
      int activeIndex,
      int activeMainIndex});
}

/// @nodoc
class __$$_ProductCategoriesStateCopyWithImpl<$Res>
    extends _$ProductCategoriesStateCopyWithImpl<$Res,
        _$_ProductCategoriesState>
    implements _$$_ProductCategoriesStateCopyWith<$Res> {
  __$$_ProductCategoriesStateCopyWithImpl(_$_ProductCategoriesState _value,
      $Res Function(_$_ProductCategoriesState) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? isLoading = null,
    Object? isMainLoading = null,
    Object? isCategoryLoading = null,
    Object? categories = null,
    Object? category = null,
    Object? mainCategory = null,
    Object? categoryFoods = null,
    Object? activeIndex = null,
    Object? activeMainIndex = null,
  }) {
    return _then(_$_ProductCategoriesState(
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isMainLoading: null == isMainLoading
          ? _value.isMainLoading
          : isMainLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isCategoryLoading: null == isCategoryLoading
          ? _value.isCategoryLoading
          : isCategoryLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      categories: null == categories
          ? _value._categories
          : categories // ignore: cast_nullable_to_non_nullable
              as List<CategoryModel>,
      category: null == category
          ? _value._category
          : category // ignore: cast_nullable_to_non_nullable
              as List<CategoryModel>,
      mainCategory: null == mainCategory
          ? _value._mainCategory
          : mainCategory // ignore: cast_nullable_to_non_nullable
              as List<MainCategoryModel>,
      categoryFoods: null == categoryFoods
          ? _value._categoryFoods
          : categoryFoods // ignore: cast_nullable_to_non_nullable
              as List<ProductModel>,
      activeIndex: null == activeIndex
          ? _value.activeIndex
          : activeIndex // ignore: cast_nullable_to_non_nullable
              as int,
      activeMainIndex: null == activeMainIndex
          ? _value.activeMainIndex
          : activeMainIndex // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// @nodoc

class _$_ProductCategoriesState extends _ProductCategoriesState {
  const _$_ProductCategoriesState(
      {this.isLoading = false,
      this.isMainLoading = false,
      this.isCategoryLoading = false,
      final List<CategoryModel> categories = const [],
      final List<CategoryModel> category = const [],
      final List<MainCategoryModel> mainCategory = const [],
      final List<ProductModel> categoryFoods = const [],
      this.activeIndex = 1,
      this.activeMainIndex = 1})
      : _categories = categories,
        _category = category,
        _mainCategory = mainCategory,
        _categoryFoods = categoryFoods,
        super._();

  @override
  @JsonKey()
  final bool isLoading;
  @override
  @JsonKey()
  final bool isMainLoading;
  @override
  @JsonKey()
  final bool isCategoryLoading;
  final List<CategoryModel> _categories;
  @override
  @JsonKey()
  List<CategoryModel> get categories {
    if (_categories is EqualUnmodifiableListView) return _categories;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_categories);
  }

  final List<CategoryModel> _category;
  @override
  @JsonKey()
  List<CategoryModel> get category {
    if (_category is EqualUnmodifiableListView) return _category;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_category);
  }

  final List<MainCategoryModel> _mainCategory;
  @override
  @JsonKey()
  List<MainCategoryModel> get mainCategory {
    if (_mainCategory is EqualUnmodifiableListView) return _mainCategory;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_mainCategory);
  }

  final List<ProductModel> _categoryFoods;
  @override
  @JsonKey()
  List<ProductModel> get categoryFoods {
    if (_categoryFoods is EqualUnmodifiableListView) return _categoryFoods;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_categoryFoods);
  }

  @override
  @JsonKey()
  final int activeIndex;
  @override
  @JsonKey()
  final int activeMainIndex;

  @override
  String toString() {
    return 'ProductCategoriesState(isLoading: $isLoading, isMainLoading: $isMainLoading, isCategoryLoading: $isCategoryLoading, categories: $categories, category: $category, mainCategory: $mainCategory, categoryFoods: $categoryFoods, activeIndex: $activeIndex, activeMainIndex: $activeMainIndex)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$_ProductCategoriesState &&
            (identical(other.isLoading, isLoading) ||
                other.isLoading == isLoading) &&
            (identical(other.isMainLoading, isMainLoading) ||
                other.isMainLoading == isMainLoading) &&
            (identical(other.isCategoryLoading, isCategoryLoading) ||
                other.isCategoryLoading == isCategoryLoading) &&
            const DeepCollectionEquality()
                .equals(other._categories, _categories) &&
            const DeepCollectionEquality().equals(other._category, _category) &&
            const DeepCollectionEquality()
                .equals(other._mainCategory, _mainCategory) &&
            const DeepCollectionEquality()
                .equals(other._categoryFoods, _categoryFoods) &&
            (identical(other.activeIndex, activeIndex) ||
                other.activeIndex == activeIndex) &&
            (identical(other.activeMainIndex, activeMainIndex) ||
                other.activeMainIndex == activeMainIndex));
  }

  @override
  int get hashCode => Object.hash(
      runtimeType,
      isLoading,
      isMainLoading,
      isCategoryLoading,
      const DeepCollectionEquality().hash(_categories),
      const DeepCollectionEquality().hash(_category),
      const DeepCollectionEquality().hash(_mainCategory),
      const DeepCollectionEquality().hash(_categoryFoods),
      activeIndex,
      activeMainIndex);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$_ProductCategoriesStateCopyWith<_$_ProductCategoriesState> get copyWith =>
      __$$_ProductCategoriesStateCopyWithImpl<_$_ProductCategoriesState>(
          this, _$identity);
}

abstract class _ProductCategoriesState extends ProductCategoriesState {
  const factory _ProductCategoriesState(
      {final bool isLoading,
      final bool isMainLoading,
      final bool isCategoryLoading,
      final List<CategoryModel> categories,
      final List<CategoryModel> category,
      final List<MainCategoryModel> mainCategory,
      final List<ProductModel> categoryFoods,
      final int activeIndex,
      final int activeMainIndex}) = _$_ProductCategoriesState;
  const _ProductCategoriesState._() : super._();

  @override
  bool get isLoading;
  @override
  bool get isMainLoading;
  @override
  bool get isCategoryLoading;
  @override
  List<CategoryModel> get categories;
  @override
  List<CategoryModel> get category;
  @override
  List<MainCategoryModel> get mainCategory;
  @override
  List<ProductModel> get categoryFoods;
  @override
  int get activeIndex;
  @override
  int get activeMainIndex;
  @override
  @JsonKey(ignore: true)
  _$$_ProductCategoriesStateCopyWith<_$_ProductCategoriesState> get copyWith =>
      throw _privateConstructorUsedError;
}
