forgot password
This commit is contained in:
parent
40aefbb045
commit
65a7f87363
@ -18,7 +18,7 @@ dependencies:
|
||||
pocketbase: ^0.18.1
|
||||
excel: ^4.0.3
|
||||
csv: ^6.0.0
|
||||
intl: ^0.19.0
|
||||
intl: ^0.20.2
|
||||
freezed_annotation: ^2.4.2
|
||||
# path: ^1.8.0
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@ import 'dart:developer';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
// import 'package:app_links/app_links.dart';
|
||||
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/UAE_Numbers/Social/marriages.dart';
|
||||
import 'package:uae_stat/presentation/routes/auth_routes/login_route.dart';
|
||||
import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart';
|
||||
|
||||
@ -44,10 +43,7 @@ class _DeepLinkListenerState extends State<DeepLinkListener> {
|
||||
if (uri.pathSegments.isNotEmpty) {
|
||||
final String firstSegment = uri.pathSegments.first;
|
||||
|
||||
if (firstSegment == 'marriages') {
|
||||
Navigator.of(context)
|
||||
.push(MaterialPageRoute(builder: (context) => Marriages()));
|
||||
} else if (firstSegment == 'login') {
|
||||
if (firstSegment == 'login') {
|
||||
Navigator.of(context)
|
||||
.push(MaterialPageRoute(builder: (context) => LoginRoute()));
|
||||
} else if (firstSegment == 'home') {
|
||||
|
||||
@ -302,7 +302,6 @@ import 'package:uae_stat/domain/entities/session_entity.dart';
|
||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
|
||||
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Competitiveness/Detailedcompetitiveness.dart';
|
||||
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/DetailedCountryProfilePage.dart';
|
||||
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/UAE_Numbers/Social/marriages.dart';
|
||||
import 'package:uae_stat/presentation/Screens/app_tour/WelcomePage.dart';
|
||||
import 'package:uae_stat/presentation/Screens/auth_verification/forgot_password.dart';
|
||||
import 'package:uae_stat/presentation/Screens/auth_verification/privacy_policy.dart';
|
||||
@ -678,11 +677,6 @@ final GoRouter router = GoRouter(
|
||||
},
|
||||
),
|
||||
|
||||
GoRoute(
|
||||
path: '/marriages',
|
||||
builder: (context, state) => Marriages(),
|
||||
),
|
||||
|
||||
GoRoute(
|
||||
path: '/contact',
|
||||
builder: (context, state) => Contact(),
|
||||
|
||||
829
lib/l10n/app_localizations.dart
Normal file
829
lib/l10n/app_localizations.dart
Normal file
@ -0,0 +1,829 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
|
||||
import 'app_localizations_ar.dart';
|
||||
import 'app_localizations_en.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||||
/// returned by `AppLocalizations.of(context)`.
|
||||
///
|
||||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||||
/// `localizationDelegates` list, and the locales they support in the app's
|
||||
/// `supportedLocales` list. For example:
|
||||
///
|
||||
/// ```dart
|
||||
/// import 'l10n/app_localizations.dart';
|
||||
///
|
||||
/// return MaterialApp(
|
||||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||||
/// home: MyApplicationHome(),
|
||||
/// );
|
||||
/// ```
|
||||
///
|
||||
/// ## Update pubspec.yaml
|
||||
///
|
||||
/// Please make sure to update your pubspec.yaml to include the following
|
||||
/// packages:
|
||||
///
|
||||
/// ```yaml
|
||||
/// dependencies:
|
||||
/// # Internationalization support.
|
||||
/// flutter_localizations:
|
||||
/// sdk: flutter
|
||||
/// intl: any # Use the pinned version from flutter_localizations
|
||||
///
|
||||
/// # Rest of dependencies
|
||||
/// ```
|
||||
///
|
||||
/// ## iOS Applications
|
||||
///
|
||||
/// iOS applications define key application metadata, including supported
|
||||
/// locales, in an Info.plist file that is built into the application bundle.
|
||||
/// To configure the locales supported by your app, you’ll need to edit this
|
||||
/// file.
|
||||
///
|
||||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||||
/// project’s Runner folder.
|
||||
///
|
||||
/// Next, select the Information Property List item, select Add Item from the
|
||||
/// Editor menu, then select Localizations from the pop-up menu.
|
||||
///
|
||||
/// Select and expand the newly-created Localizations item then, for each
|
||||
/// locale your application supports, add a new item and select the locale
|
||||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||||
/// property.
|
||||
abstract class AppLocalizations {
|
||||
AppLocalizations(String locale)
|
||||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||||
|
||||
final String localeName;
|
||||
|
||||
static AppLocalizations? of(BuildContext context) {
|
||||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||||
}
|
||||
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||||
_AppLocalizationsDelegate();
|
||||
|
||||
/// A list of this localizations delegate along with the default localizations
|
||||
/// delegates.
|
||||
///
|
||||
/// Returns a list of localizations delegates containing this delegate along with
|
||||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||||
/// and GlobalWidgetsLocalizations.delegate.
|
||||
///
|
||||
/// Additional delegates can be added by appending to this list in
|
||||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||||
/// of delegates is preferred or required.
|
||||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||||
<LocalizationsDelegate<dynamic>>[
|
||||
delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
];
|
||||
|
||||
/// A list of this localizations delegate's supported locales.
|
||||
static const List<Locale> supportedLocales = <Locale>[
|
||||
Locale('ar'),
|
||||
Locale('en')
|
||||
];
|
||||
|
||||
/// No description provided for @all_bookmarks.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'All Bookmarks'**
|
||||
String get all_bookmarks;
|
||||
|
||||
/// No description provided for @economy_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Economy'**
|
||||
String get economy_title;
|
||||
|
||||
/// No description provided for @social_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Social'**
|
||||
String get social_title;
|
||||
|
||||
/// No description provided for @environment_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Environment'**
|
||||
String get environment_title;
|
||||
|
||||
/// No description provided for @economy_title_upper.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'ECONOMY'**
|
||||
String get economy_title_upper;
|
||||
|
||||
/// No description provided for @social_title_upper.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'SOCIAL'**
|
||||
String get social_title_upper;
|
||||
|
||||
/// No description provided for @environment_title_upper.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'ENVIRONMENT'**
|
||||
String get environment_title_upper;
|
||||
|
||||
/// No description provided for @bookmarks.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bookmarks'**
|
||||
String get bookmarks;
|
||||
|
||||
/// No description provided for @searchCountry.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Search Country'**
|
||||
String get searchCountry;
|
||||
|
||||
/// No description provided for @feedback_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Feedback'**
|
||||
String get feedback_title;
|
||||
|
||||
/// No description provided for @feedback_failed_msg.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your feedback could not be \n submitted. Please try again'**
|
||||
String get feedback_failed_msg;
|
||||
|
||||
/// No description provided for @thankYou.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Thank you'**
|
||||
String get thankYou;
|
||||
|
||||
/// No description provided for @feedback_message.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'For your valuable feedback, we truly appreciate your input!'**
|
||||
String get feedback_message;
|
||||
|
||||
/// No description provided for @failed_to_sharefeedback.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to Share Feedback'**
|
||||
String get failed_to_sharefeedback;
|
||||
|
||||
/// No description provided for @feedback_submitted.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Feedback submitted successfully!'**
|
||||
String get feedback_submitted;
|
||||
|
||||
/// No description provided for @formError.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Please correct the errors before submitting.'**
|
||||
String get formError;
|
||||
|
||||
/// No description provided for @feedback_failed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to submit feedback: {error}'**
|
||||
String feedback_failed(Object error);
|
||||
|
||||
/// No description provided for @skip.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Skip'**
|
||||
String get skip;
|
||||
|
||||
/// No description provided for @got_it.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Got it'**
|
||||
String get got_it;
|
||||
|
||||
/// No description provided for @exit_app.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Exit App'**
|
||||
String get exit_app;
|
||||
|
||||
/// No description provided for @exit_confirmation.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to exit?'**
|
||||
String get exit_confirmation;
|
||||
|
||||
/// No description provided for @cancel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Cancel'**
|
||||
String get cancel;
|
||||
|
||||
/// No description provided for @exit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Exit'**
|
||||
String get exit;
|
||||
|
||||
/// No description provided for @bookmark_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bookmark'**
|
||||
String get bookmark_title;
|
||||
|
||||
/// No description provided for @failed_To_Remove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Failed to Remove'**
|
||||
String get failed_To_Remove;
|
||||
|
||||
/// No description provided for @removed_from_Bookmark.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Removed from Bookmark'**
|
||||
String get removed_from_Bookmark;
|
||||
|
||||
/// No description provided for @added_to_Bookmark.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Added to Bookmark.'**
|
||||
String get added_to_Bookmark;
|
||||
|
||||
/// No description provided for @notification.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Notification'**
|
||||
String get notification;
|
||||
|
||||
/// No description provided for @register_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Register'**
|
||||
String get register_title;
|
||||
|
||||
/// No description provided for @register_details.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Please enter your details'**
|
||||
String get register_details;
|
||||
|
||||
/// No description provided for @register_name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Username'**
|
||||
String get register_name;
|
||||
|
||||
/// No description provided for @email_id.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Email ID'**
|
||||
String get email_id;
|
||||
|
||||
/// No description provided for @enter_name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your User Name'**
|
||||
String get enter_name;
|
||||
|
||||
/// No description provided for @enter_your_email.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your email'**
|
||||
String get enter_your_email;
|
||||
|
||||
/// No description provided for @enter_your_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter your password'**
|
||||
String get enter_your_password;
|
||||
|
||||
/// No description provided for @register_Confirm_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Confirm password'**
|
||||
String get register_Confirm_password;
|
||||
|
||||
/// No description provided for @agree.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'I agree to the '**
|
||||
String get agree;
|
||||
|
||||
/// No description provided for @t_and.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **' and '**
|
||||
String get t_and;
|
||||
|
||||
/// No description provided for @conditions.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **' of FCSC'**
|
||||
String get conditions;
|
||||
|
||||
/// No description provided for @terms_conditions.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Terms & Conditions'**
|
||||
String get terms_conditions;
|
||||
|
||||
/// No description provided for @privacy_policy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Privacy Policy'**
|
||||
String get privacy_policy;
|
||||
|
||||
/// No description provided for @account_confirmation.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Already have an account?'**
|
||||
String get account_confirmation;
|
||||
|
||||
/// No description provided for @login_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Login'**
|
||||
String get login_title;
|
||||
|
||||
/// No description provided for @all_updates.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'All updates'**
|
||||
String get all_updates;
|
||||
|
||||
/// No description provided for @app_updates.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'App updates'**
|
||||
String get app_updates;
|
||||
|
||||
/// No description provided for @notificationSocial.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Social'**
|
||||
String get notificationSocial;
|
||||
|
||||
/// No description provided for @notificationEconomy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Economy'**
|
||||
String get notificationEconomy;
|
||||
|
||||
/// No description provided for @notificationEnvironment.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Environment'**
|
||||
String get notificationEnvironment;
|
||||
|
||||
/// No description provided for @notificationFavourites.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Favourites'**
|
||||
String get notificationFavourites;
|
||||
|
||||
/// No description provided for @profile_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Edit Profile'**
|
||||
String get profile_title;
|
||||
|
||||
/// No description provided for @my_profile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'My Profile'**
|
||||
String get my_profile;
|
||||
|
||||
/// No description provided for @logout.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Logout'**
|
||||
String get logout;
|
||||
|
||||
/// No description provided for @full_name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Full Name*'**
|
||||
String get full_name;
|
||||
|
||||
/// No description provided for @dob.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Date of Birth*'**
|
||||
String get dob;
|
||||
|
||||
/// No description provided for @region.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Country/Region'**
|
||||
String get region;
|
||||
|
||||
/// No description provided for @preferredLang.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Preferred Language'**
|
||||
String get preferredLang;
|
||||
|
||||
/// No description provided for @confirm.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Confirm'**
|
||||
String get confirm;
|
||||
|
||||
/// No description provided for @change_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Change Password'**
|
||||
String get change_password;
|
||||
|
||||
/// No description provided for @sure_save_page.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to save this page? '**
|
||||
String get sure_save_page;
|
||||
|
||||
/// No description provided for @not_able_to_change.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Once saved, you will not be able to change your '**
|
||||
String get not_able_to_change;
|
||||
|
||||
/// No description provided for @save.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save'**
|
||||
String get save;
|
||||
|
||||
/// No description provided for @name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Name'**
|
||||
String get name;
|
||||
|
||||
/// No description provided for @guide_title.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'User Guide'**
|
||||
String get guide_title;
|
||||
|
||||
/// No description provided for @nav_home.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'HOME'**
|
||||
String get nav_home;
|
||||
|
||||
/// No description provided for @nav_uae.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'UAE Numbers'**
|
||||
String get nav_uae;
|
||||
|
||||
/// No description provided for @nav_competitiveness.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Competitiveness'**
|
||||
String get nav_competitiveness;
|
||||
|
||||
/// No description provided for @country_profile.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Country Profile'**
|
||||
String get country_profile;
|
||||
|
||||
/// No description provided for @agree_terms_conditions.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Please agree to terms and conditions.'**
|
||||
String get agree_terms_conditions;
|
||||
|
||||
/// No description provided for @retry.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Retry'**
|
||||
String get retry;
|
||||
|
||||
/// No description provided for @select.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Select'**
|
||||
String get select;
|
||||
|
||||
/// No description provided for @email_exists.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Email exists'**
|
||||
String get email_exists;
|
||||
|
||||
/// No description provided for @email_exists_msg.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Email ID already exists. Please use a different email.'**
|
||||
String get email_exists_msg;
|
||||
|
||||
/// No description provided for @email_invalid.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The email is invalid or already in use.'**
|
||||
String get email_invalid;
|
||||
|
||||
/// No description provided for @required.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Required'**
|
||||
String get required;
|
||||
|
||||
/// No description provided for @only40charac.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Must not exceed 40 characters'**
|
||||
String get only40charac;
|
||||
|
||||
/// No description provided for @invalid_characters.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid Characters'**
|
||||
String get invalid_characters;
|
||||
|
||||
/// No description provided for @invalid_email.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Invalid Email'**
|
||||
String get invalid_email;
|
||||
|
||||
/// No description provided for @password_invalid.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password contains invalid characters'**
|
||||
String get password_invalid;
|
||||
|
||||
/// No description provided for @password_match.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Passwords do not match'**
|
||||
String get password_match;
|
||||
|
||||
/// No description provided for @only8charac.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password must be at least 8characters'**
|
||||
String get only8charac;
|
||||
|
||||
/// No description provided for @manage_user.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Manage User'**
|
||||
String get manage_user;
|
||||
|
||||
/// No description provided for @user_name.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'User Name'**
|
||||
String get user_name;
|
||||
|
||||
/// No description provided for @reg_date.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Registration Date'**
|
||||
String get reg_date;
|
||||
|
||||
/// No description provided for @status.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Status'**
|
||||
String get status;
|
||||
|
||||
/// No description provided for @denied.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Denied'**
|
||||
String get denied;
|
||||
|
||||
/// No description provided for @pending.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Pending'**
|
||||
String get pending;
|
||||
|
||||
/// No description provided for @approved.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Approved'**
|
||||
String get approved;
|
||||
|
||||
/// No description provided for @approve_msg.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Are you sure you want to change the status to '**
|
||||
String get approve_msg;
|
||||
|
||||
/// No description provided for @yes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Yes'**
|
||||
String get yes;
|
||||
|
||||
/// No description provided for @no.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No'**
|
||||
String get no;
|
||||
|
||||
/// No description provided for @no_result_found.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No results found'**
|
||||
String get no_result_found;
|
||||
|
||||
/// No description provided for @search.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Search'**
|
||||
String get search;
|
||||
|
||||
/// No description provided for @status_success.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Status updated successfully'**
|
||||
String get status_success;
|
||||
|
||||
/// No description provided for @profile_updated_successfully.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Profile updated successfully'**
|
||||
String get profile_updated_successfully;
|
||||
|
||||
/// No description provided for @create_new_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Create New Password'**
|
||||
String get create_new_password;
|
||||
|
||||
/// No description provided for @different_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your New Password Must Be Different form Previously Used Password'**
|
||||
String get different_password;
|
||||
|
||||
/// No description provided for @old_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Old Password'**
|
||||
String get old_password;
|
||||
|
||||
/// No description provided for @enter_new_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter new password'**
|
||||
String get enter_new_password;
|
||||
|
||||
/// No description provided for @confirm_new_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Confirm new password'**
|
||||
String get confirm_new_password;
|
||||
|
||||
/// No description provided for @password_changed_successfully.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password Changed Successfully'**
|
||||
String get password_changed_successfully;
|
||||
|
||||
/// No description provided for @enter_old_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Enter old Password'**
|
||||
String get enter_old_password;
|
||||
|
||||
/// No description provided for @your_old_password_incorrect.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your old password is incorrect.'**
|
||||
String get your_old_password_incorrect;
|
||||
|
||||
/// No description provided for @failed_to_update_password.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **''**
|
||||
String get failed_to_update_password;
|
||||
|
||||
/// No description provided for @password_update_successfully.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password updated successfully.'**
|
||||
String get password_update_successfully;
|
||||
|
||||
/// No description provided for @new_password_not_same_as_old.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New password must not be the same as the old password'**
|
||||
String get new_password_not_same_as_old;
|
||||
|
||||
/// No description provided for @password_between_8_to_40.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Password must be between 8 and 40 characters'**
|
||||
String get password_between_8_to_40;
|
||||
|
||||
/// No description provided for @new_password_required.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New password is required'**
|
||||
String get new_password_required;
|
||||
|
||||
/// No description provided for @old_password_is_required.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Old password is required'**
|
||||
String get old_password_is_required;
|
||||
|
||||
/// No description provided for @confirm_password_is_required.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Confirm password is required'**
|
||||
String get confirm_password_is_required;
|
||||
|
||||
/// No description provided for @kpiCards.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'View interactive KPI cards and graphs to explore data trends and compare key metrics visually.'**
|
||||
String get kpiCards;
|
||||
|
||||
/// No description provided for @home_topic.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Tap on any category (e.g., Economy, Social, Environment) to explore detailed KPIs, visualizations, and data insights.'**
|
||||
String get home_topic;
|
||||
|
||||
/// No description provided for @economy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Access detailed statistics and drill-down pages for KPIs in the Economy category to uncover key trends and metrics.'**
|
||||
String get economy;
|
||||
|
||||
/// No description provided for @bookMark.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bookmark important KPIs or datasets for quick and easy access anytime through the Bookmarks section.'**
|
||||
String get bookMark;
|
||||
|
||||
/// No description provided for @toggle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Switch between English and Arabic using the language toggle at the top-right corner for a bilingual experience.'**
|
||||
String get toggle;
|
||||
|
||||
/// No description provided for @tour_navBar.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Access dedicated pages and additional features by selecting options from the Main Menu.'**
|
||||
String get tour_navBar;
|
||||
|
||||
/// No description provided for @mainMenu.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use the navigation bar to quickly access Profile, Feedback, User Guide, Notifications, and other key app features.'**
|
||||
String get mainMenu;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
extends LocalizationsDelegate<AppLocalizations> {
|
||||
const _AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
Future<AppLocalizations> load(Locale locale) {
|
||||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||||
}
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
<String>['ar', 'en'].contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
|
||||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
// Lookup logic when only language code is specified.
|
||||
switch (locale.languageCode) {
|
||||
case 'ar':
|
||||
return AppLocalizationsAr();
|
||||
case 'en':
|
||||
return AppLocalizationsEn();
|
||||
}
|
||||
|
||||
throw FlutterError(
|
||||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||||
'an issue with the localizations generation tool. Please file an issue '
|
||||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||||
'that was used.');
|
||||
}
|
||||
376
lib/l10n/app_localizations_ar.dart
Normal file
376
lib/l10n/app_localizations_ar.dart
Normal file
@ -0,0 +1,376 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Arabic (`ar`).
|
||||
class AppLocalizationsAr extends AppLocalizations {
|
||||
AppLocalizationsAr([String locale = 'ar']) : super(locale);
|
||||
|
||||
@override
|
||||
String get all_bookmarks => 'كل العلامات المرجعية';
|
||||
|
||||
@override
|
||||
String get economy_title => 'اقتصاد';
|
||||
|
||||
@override
|
||||
String get social_title => 'اجتماعي';
|
||||
|
||||
@override
|
||||
String get environment_title => 'بيئة';
|
||||
|
||||
@override
|
||||
String get economy_title_upper => 'اقتصاد';
|
||||
|
||||
@override
|
||||
String get social_title_upper => 'اجتماعي';
|
||||
|
||||
@override
|
||||
String get environment_title_upper => 'بيئة';
|
||||
|
||||
@override
|
||||
String get bookmarks => 'الإشارات المرجعية';
|
||||
|
||||
@override
|
||||
String get searchCountry => 'Search Country';
|
||||
|
||||
@override
|
||||
String get feedback_title => 'تعليق';
|
||||
|
||||
@override
|
||||
String get feedback_failed_msg =>
|
||||
'لم يتم إرسال تعليقاتك. يرجى المحاولة مرة أخرى.';
|
||||
|
||||
@override
|
||||
String get thankYou => 'شكراً';
|
||||
|
||||
@override
|
||||
String get feedback_message => 'لملاحظاتك القيمة، نحن نقدر مساهمتك حقًا!';
|
||||
|
||||
@override
|
||||
String get failed_to_sharefeedback => 'فشل في مشاركة الملاحظات';
|
||||
|
||||
@override
|
||||
String get feedback_submitted => 'تم إرسال الملاحظات بنجاح!';
|
||||
|
||||
@override
|
||||
String get formError => 'يرجى تصحيح الأخطاء قبل الإرسال.';
|
||||
|
||||
@override
|
||||
String feedback_failed(Object error) {
|
||||
return 'فشل في إرسال التعليق: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get skip => 'تخطي';
|
||||
|
||||
@override
|
||||
String get got_it => 'فهمت';
|
||||
|
||||
@override
|
||||
String get exit_app => 'الخروج من التطبيق';
|
||||
|
||||
@override
|
||||
String get exit_confirmation => 'هل أنت متأكد أنك تريد الخروج؟';
|
||||
|
||||
@override
|
||||
String get cancel => 'إلغاء';
|
||||
|
||||
@override
|
||||
String get exit => 'خروج';
|
||||
|
||||
@override
|
||||
String get bookmark_title => 'إشارة مرجعية';
|
||||
|
||||
@override
|
||||
String get failed_To_Remove => 'فشلت الإزالة';
|
||||
|
||||
@override
|
||||
String get removed_from_Bookmark => 'تمت الإزالة من الإشارة المرجعية';
|
||||
|
||||
@override
|
||||
String get added_to_Bookmark => 'تمت إضافته إلى الإشارة المرجعية';
|
||||
|
||||
@override
|
||||
String get notification => 'إشعار';
|
||||
|
||||
@override
|
||||
String get register_title => 'التسجيل';
|
||||
|
||||
@override
|
||||
String get register_details => 'من فضلك ادخل بياناتك';
|
||||
|
||||
@override
|
||||
String get register_name => 'اسم المستخدم';
|
||||
|
||||
@override
|
||||
String get email_id => 'معرف البريد الإلكتروني';
|
||||
|
||||
@override
|
||||
String get enter_name => 'أدخل الاسم';
|
||||
|
||||
@override
|
||||
String get enter_your_email => 'أدخل بريدك الإلكتروني';
|
||||
|
||||
@override
|
||||
String get enter_your_password => 'أدخل كلمة المرور';
|
||||
|
||||
@override
|
||||
String get register_Confirm_password => 'تأكيد كلمة المرور';
|
||||
|
||||
@override
|
||||
String get agree =>
|
||||
'أوافق على الشروط والأحكام وسياسة الخصوصية للمركز الإتحادي للتنافسية والإحصاء';
|
||||
|
||||
@override
|
||||
String get t_and => '';
|
||||
|
||||
@override
|
||||
String get conditions => '';
|
||||
|
||||
@override
|
||||
String get terms_conditions => 'الشروط والأحكام';
|
||||
|
||||
@override
|
||||
String get privacy_policy => 'سياسة الخصوصية';
|
||||
|
||||
@override
|
||||
String get account_confirmation => 'هل لديك حساب؟ سجل الدخول';
|
||||
|
||||
@override
|
||||
String get login_title => 'تسجيل الدخول';
|
||||
|
||||
@override
|
||||
String get all_updates => 'جميع التحديثات';
|
||||
|
||||
@override
|
||||
String get app_updates => 'تحديثات التطبيق';
|
||||
|
||||
@override
|
||||
String get notificationSocial => 'الاجتماعي';
|
||||
|
||||
@override
|
||||
String get notificationEconomy => 'الاقتصاد';
|
||||
|
||||
@override
|
||||
String get notificationEnvironment => 'البيئة';
|
||||
|
||||
@override
|
||||
String get notificationFavourites => 'المفضلة';
|
||||
|
||||
@override
|
||||
String get profile_title => 'نموذج الملاحظات';
|
||||
|
||||
@override
|
||||
String get my_profile => 'ملفي الشخصي';
|
||||
|
||||
@override
|
||||
String get logout => 'تسجيل الخروج';
|
||||
|
||||
@override
|
||||
String get full_name => 'الاسم الكامل';
|
||||
|
||||
@override
|
||||
String get dob => 'تاريخ الميلاد';
|
||||
|
||||
@override
|
||||
String get region => 'الدولة/المنطقة';
|
||||
|
||||
@override
|
||||
String get preferredLang => 'اللغة المفضلة';
|
||||
|
||||
@override
|
||||
String get confirm => 'تأكيد';
|
||||
|
||||
@override
|
||||
String get change_password => 'تغيير كلمة المرور';
|
||||
|
||||
@override
|
||||
String get sure_save_page => ' هل أنت متأكد أنك ترغب في حفظ هذه الصفحة؟';
|
||||
|
||||
@override
|
||||
String get not_able_to_change =>
|
||||
'بمجرد الحفظ، لن تتمكن من تعديل اسمك أو تاريخ ميلادك.';
|
||||
|
||||
@override
|
||||
String get save => 'حفظ';
|
||||
|
||||
@override
|
||||
String get name => 'اسم';
|
||||
|
||||
@override
|
||||
String get guide_title => 'نموذج الملاحظات';
|
||||
|
||||
@override
|
||||
String get nav_home => 'الصفحة الرئيسية';
|
||||
|
||||
@override
|
||||
String get nav_uae => 'أرقام الإمارات';
|
||||
|
||||
@override
|
||||
String get nav_competitiveness => 'القدرة التنافسية';
|
||||
|
||||
@override
|
||||
String get country_profile => 'ملف تعريف الدولة';
|
||||
|
||||
@override
|
||||
String get agree_terms_conditions => 'يرجى الموافقة على الشروط والأحكام.';
|
||||
|
||||
@override
|
||||
String get retry => 'Retry';
|
||||
|
||||
@override
|
||||
String get select => 'يختار';
|
||||
|
||||
@override
|
||||
String get email_exists => 'البريد الإلكتروني موجود';
|
||||
|
||||
@override
|
||||
String get email_exists_msg =>
|
||||
'معرف البريد الإلكتروني موجود بالفعل. الرجاء استخدام بريد إلكتروني مختلف.';
|
||||
|
||||
@override
|
||||
String get email_invalid =>
|
||||
'البريد الإلكتروني غير صالح أو قيد الاستخدام بالفعل.';
|
||||
|
||||
@override
|
||||
String get required => 'مطلوب';
|
||||
|
||||
@override
|
||||
String get only40charac => 'يجب ألا يتجاوز 40 حرفًا';
|
||||
|
||||
@override
|
||||
String get invalid_characters => 'أحرف غير صالحة';
|
||||
|
||||
@override
|
||||
String get invalid_email => 'البريد الإلكتروني غير صالح';
|
||||
|
||||
@override
|
||||
String get password_invalid => 'تحتوي كلمة المرور على أحرف غير صالحة';
|
||||
|
||||
@override
|
||||
String get password_match => 'كلمات المرور غير متطابقة';
|
||||
|
||||
@override
|
||||
String get only8charac => 'يجب أن تتكون كلمة المرور من 8 أحرف على الأقل';
|
||||
|
||||
@override
|
||||
String get manage_user => 'إدارة المستخدم';
|
||||
|
||||
@override
|
||||
String get user_name => 'اسم المستخدم';
|
||||
|
||||
@override
|
||||
String get reg_date => 'تاريخ التسجيل';
|
||||
|
||||
@override
|
||||
String get status => 'الحالة';
|
||||
|
||||
@override
|
||||
String get denied => 'مرفوض';
|
||||
|
||||
@override
|
||||
String get pending => ' قيد الانتظار';
|
||||
|
||||
@override
|
||||
String get approved => 'تمت الموافقة';
|
||||
|
||||
@override
|
||||
String get approve_msg => 'هل أنت متأكد أنك ترغب في تغيير الحالة إلى';
|
||||
|
||||
@override
|
||||
String get yes => 'نعم';
|
||||
|
||||
@override
|
||||
String get no => 'لا';
|
||||
|
||||
@override
|
||||
String get no_result_found => 'لم يتم العثور على نتائج';
|
||||
|
||||
@override
|
||||
String get search => 'يبحث';
|
||||
|
||||
@override
|
||||
String get status_success => 'تم تحديث الحالة بنجاح';
|
||||
|
||||
@override
|
||||
String get profile_updated_successfully => 'تم تحديث الملف الشخصي بنجاح';
|
||||
|
||||
@override
|
||||
String get create_new_password => 'إنشاء كلمة مرور جديدة';
|
||||
|
||||
@override
|
||||
String get different_password =>
|
||||
'يجب أن تكون كلمة المرور الجديدة مختلفة عن كلمة المرور المستخدمة سابقًا.';
|
||||
|
||||
@override
|
||||
String get old_password => 'كلمة المرور القديمة';
|
||||
|
||||
@override
|
||||
String get enter_new_password => 'أدخل كلمة المرور الجديدة';
|
||||
|
||||
@override
|
||||
String get confirm_new_password => 'تأكيد كلمة المرور الجديدة';
|
||||
|
||||
@override
|
||||
String get password_changed_successfully => 'تم تغيير كلمة المرور بنجاح';
|
||||
|
||||
@override
|
||||
String get enter_old_password => 'أدخل كلمة المرور القديمة';
|
||||
|
||||
@override
|
||||
String get your_old_password_incorrect =>
|
||||
'كلمة المرور القديمة الخاصة بك غير صحيحة.';
|
||||
|
||||
@override
|
||||
String get failed_to_update_password => '';
|
||||
|
||||
@override
|
||||
String get password_update_successfully => 'تم تحديث كلمة المرور بنجاح.';
|
||||
|
||||
@override
|
||||
String get new_password_not_same_as_old =>
|
||||
'كلمة المرور الجديدة يجب ألا تكون نفس كلمة المرور القديمة';
|
||||
|
||||
@override
|
||||
String get password_between_8_to_40 =>
|
||||
'يجب أن تتراوح كلمة المرور بين 8 و40 حرفًا';
|
||||
|
||||
@override
|
||||
String get new_password_required => 'كلمة المرور الجديدة مطلوبة';
|
||||
|
||||
@override
|
||||
String get old_password_is_required => 'كلمة المرور القديمة مطلوبة';
|
||||
|
||||
@override
|
||||
String get confirm_password_is_required => 'تأكيد كلمة المرور مطلوب';
|
||||
|
||||
@override
|
||||
String get kpiCards =>
|
||||
'يمكنك عرض بطاقات مؤشرات الأداء الرئيسية التفاعلية والرسوم البيانية لاستكشاف اتجاهات البيانات ومقارنة المقاييس الرئيسية بصريًا';
|
||||
|
||||
@override
|
||||
String get home_topic =>
|
||||
'اختر أي فئة (على سيبل المثال : الاقتصاد، الاجتماعية، البيئة) لاستكشاف مؤشرات الأداء الرئيسية التفصيلية ، التصورات، ورؤى البيانات .';
|
||||
|
||||
@override
|
||||
String get economy =>
|
||||
'يمكنك الوصول إلى الإحصائيات التفصيلية وصفحات التحليل لمؤشرات الأداء الرئيسية في فئة الاقتصاد لاكتشاف الاتجاهات والمقاييس الرئيسية .';
|
||||
|
||||
@override
|
||||
String get bookMark =>
|
||||
'يمكنك وضع إشارة مرجعية على مؤشرات الأداء الرئيسية أو مجموعات البيانات المهمة للوصول السريع والسهل في أي وقت من خلال قسم الإشارات المرجعية. ';
|
||||
|
||||
@override
|
||||
String get toggle =>
|
||||
'يمكنك التبديل بين اللغتين الإنجليزية والعربية باستخدام مفتاح تبديل اللغة في الزاوية اليمنى العليا للحصول على تجربة ثنائية اللغة.';
|
||||
|
||||
@override
|
||||
String get tour_navBar =>
|
||||
'يمكنك استخدام شريط التنقل للوصول السريع إلى الملف الشخصي ,التعليقات , دليل المستخدم , الإشعارات والميزات الأساسية الأخرى للتطبيق.';
|
||||
|
||||
@override
|
||||
String get mainMenu =>
|
||||
'يمكنك الوصول إلى الصفحات المخصصة والميزات الإضافية عن طريق تحديد الخيارات من القائمة الرئيسية.';
|
||||
}
|
||||
374
lib/l10n/app_localizations_en.dart
Normal file
374
lib/l10n/app_localizations_en.dart
Normal file
@ -0,0 +1,374 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for English (`en`).
|
||||
class AppLocalizationsEn extends AppLocalizations {
|
||||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||||
|
||||
@override
|
||||
String get all_bookmarks => 'All Bookmarks';
|
||||
|
||||
@override
|
||||
String get economy_title => 'Economy';
|
||||
|
||||
@override
|
||||
String get social_title => 'Social';
|
||||
|
||||
@override
|
||||
String get environment_title => 'Environment';
|
||||
|
||||
@override
|
||||
String get economy_title_upper => 'ECONOMY';
|
||||
|
||||
@override
|
||||
String get social_title_upper => 'SOCIAL';
|
||||
|
||||
@override
|
||||
String get environment_title_upper => 'ENVIRONMENT';
|
||||
|
||||
@override
|
||||
String get bookmarks => 'Bookmarks';
|
||||
|
||||
@override
|
||||
String get searchCountry => 'Search Country';
|
||||
|
||||
@override
|
||||
String get feedback_title => 'Feedback';
|
||||
|
||||
@override
|
||||
String get feedback_failed_msg =>
|
||||
'Your feedback could not be \n submitted. Please try again';
|
||||
|
||||
@override
|
||||
String get thankYou => 'Thank you';
|
||||
|
||||
@override
|
||||
String get feedback_message =>
|
||||
'For your valuable feedback, we truly appreciate your input!';
|
||||
|
||||
@override
|
||||
String get failed_to_sharefeedback => 'Failed to Share Feedback';
|
||||
|
||||
@override
|
||||
String get feedback_submitted => 'Feedback submitted successfully!';
|
||||
|
||||
@override
|
||||
String get formError => 'Please correct the errors before submitting.';
|
||||
|
||||
@override
|
||||
String feedback_failed(Object error) {
|
||||
return 'Failed to submit feedback: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get skip => 'Skip';
|
||||
|
||||
@override
|
||||
String get got_it => 'Got it';
|
||||
|
||||
@override
|
||||
String get exit_app => 'Exit App';
|
||||
|
||||
@override
|
||||
String get exit_confirmation => 'Are you sure you want to exit?';
|
||||
|
||||
@override
|
||||
String get cancel => 'Cancel';
|
||||
|
||||
@override
|
||||
String get exit => 'Exit';
|
||||
|
||||
@override
|
||||
String get bookmark_title => 'Bookmark';
|
||||
|
||||
@override
|
||||
String get failed_To_Remove => 'Failed to Remove';
|
||||
|
||||
@override
|
||||
String get removed_from_Bookmark => 'Removed from Bookmark';
|
||||
|
||||
@override
|
||||
String get added_to_Bookmark => 'Added to Bookmark.';
|
||||
|
||||
@override
|
||||
String get notification => 'Notification';
|
||||
|
||||
@override
|
||||
String get register_title => 'Register';
|
||||
|
||||
@override
|
||||
String get register_details => 'Please enter your details';
|
||||
|
||||
@override
|
||||
String get register_name => 'Username';
|
||||
|
||||
@override
|
||||
String get email_id => 'Email ID';
|
||||
|
||||
@override
|
||||
String get enter_name => 'Enter your User Name';
|
||||
|
||||
@override
|
||||
String get enter_your_email => 'Enter your email';
|
||||
|
||||
@override
|
||||
String get enter_your_password => 'Enter your password';
|
||||
|
||||
@override
|
||||
String get register_Confirm_password => 'Confirm password';
|
||||
|
||||
@override
|
||||
String get agree => 'I agree to the ';
|
||||
|
||||
@override
|
||||
String get t_and => ' and ';
|
||||
|
||||
@override
|
||||
String get conditions => ' of FCSC';
|
||||
|
||||
@override
|
||||
String get terms_conditions => 'Terms & Conditions';
|
||||
|
||||
@override
|
||||
String get privacy_policy => 'Privacy Policy';
|
||||
|
||||
@override
|
||||
String get account_confirmation => 'Already have an account?';
|
||||
|
||||
@override
|
||||
String get login_title => 'Login';
|
||||
|
||||
@override
|
||||
String get all_updates => 'All updates';
|
||||
|
||||
@override
|
||||
String get app_updates => 'App updates';
|
||||
|
||||
@override
|
||||
String get notificationSocial => 'Social';
|
||||
|
||||
@override
|
||||
String get notificationEconomy => 'Economy';
|
||||
|
||||
@override
|
||||
String get notificationEnvironment => 'Environment';
|
||||
|
||||
@override
|
||||
String get notificationFavourites => 'Favourites';
|
||||
|
||||
@override
|
||||
String get profile_title => 'Edit Profile';
|
||||
|
||||
@override
|
||||
String get my_profile => 'My Profile';
|
||||
|
||||
@override
|
||||
String get logout => 'Logout';
|
||||
|
||||
@override
|
||||
String get full_name => 'Full Name*';
|
||||
|
||||
@override
|
||||
String get dob => 'Date of Birth*';
|
||||
|
||||
@override
|
||||
String get region => 'Country/Region';
|
||||
|
||||
@override
|
||||
String get preferredLang => 'Preferred Language';
|
||||
|
||||
@override
|
||||
String get confirm => 'Confirm';
|
||||
|
||||
@override
|
||||
String get change_password => 'Change Password';
|
||||
|
||||
@override
|
||||
String get sure_save_page => 'Are you sure you want to save this page? ';
|
||||
|
||||
@override
|
||||
String get not_able_to_change =>
|
||||
'Once saved, you will not be able to change your ';
|
||||
|
||||
@override
|
||||
String get save => 'Save';
|
||||
|
||||
@override
|
||||
String get name => 'Name';
|
||||
|
||||
@override
|
||||
String get guide_title => 'User Guide';
|
||||
|
||||
@override
|
||||
String get nav_home => 'HOME';
|
||||
|
||||
@override
|
||||
String get nav_uae => 'UAE Numbers';
|
||||
|
||||
@override
|
||||
String get nav_competitiveness => 'Competitiveness';
|
||||
|
||||
@override
|
||||
String get country_profile => 'Country Profile';
|
||||
|
||||
@override
|
||||
String get agree_terms_conditions => 'Please agree to terms and conditions.';
|
||||
|
||||
@override
|
||||
String get retry => 'Retry';
|
||||
|
||||
@override
|
||||
String get select => 'Select';
|
||||
|
||||
@override
|
||||
String get email_exists => 'Email exists';
|
||||
|
||||
@override
|
||||
String get email_exists_msg =>
|
||||
'Email ID already exists. Please use a different email.';
|
||||
|
||||
@override
|
||||
String get email_invalid => 'The email is invalid or already in use.';
|
||||
|
||||
@override
|
||||
String get required => 'Required';
|
||||
|
||||
@override
|
||||
String get only40charac => 'Must not exceed 40 characters';
|
||||
|
||||
@override
|
||||
String get invalid_characters => 'Invalid Characters';
|
||||
|
||||
@override
|
||||
String get invalid_email => 'Invalid Email';
|
||||
|
||||
@override
|
||||
String get password_invalid => 'Password contains invalid characters';
|
||||
|
||||
@override
|
||||
String get password_match => 'Passwords do not match';
|
||||
|
||||
@override
|
||||
String get only8charac => 'Password must be at least 8characters';
|
||||
|
||||
@override
|
||||
String get manage_user => 'Manage User';
|
||||
|
||||
@override
|
||||
String get user_name => 'User Name';
|
||||
|
||||
@override
|
||||
String get reg_date => 'Registration Date';
|
||||
|
||||
@override
|
||||
String get status => 'Status';
|
||||
|
||||
@override
|
||||
String get denied => 'Denied';
|
||||
|
||||
@override
|
||||
String get pending => 'Pending';
|
||||
|
||||
@override
|
||||
String get approved => 'Approved';
|
||||
|
||||
@override
|
||||
String get approve_msg => 'Are you sure you want to change the status to ';
|
||||
|
||||
@override
|
||||
String get yes => 'Yes';
|
||||
|
||||
@override
|
||||
String get no => 'No';
|
||||
|
||||
@override
|
||||
String get no_result_found => 'No results found';
|
||||
|
||||
@override
|
||||
String get search => 'Search';
|
||||
|
||||
@override
|
||||
String get status_success => 'Status updated successfully';
|
||||
|
||||
@override
|
||||
String get profile_updated_successfully => 'Profile updated successfully';
|
||||
|
||||
@override
|
||||
String get create_new_password => 'Create New Password';
|
||||
|
||||
@override
|
||||
String get different_password =>
|
||||
'Your New Password Must Be Different form Previously Used Password';
|
||||
|
||||
@override
|
||||
String get old_password => 'Old Password';
|
||||
|
||||
@override
|
||||
String get enter_new_password => 'Enter new password';
|
||||
|
||||
@override
|
||||
String get confirm_new_password => 'Confirm new password';
|
||||
|
||||
@override
|
||||
String get password_changed_successfully => 'Password Changed Successfully';
|
||||
|
||||
@override
|
||||
String get enter_old_password => 'Enter old Password';
|
||||
|
||||
@override
|
||||
String get your_old_password_incorrect => 'Your old password is incorrect.';
|
||||
|
||||
@override
|
||||
String get failed_to_update_password => '';
|
||||
|
||||
@override
|
||||
String get password_update_successfully => 'Password updated successfully.';
|
||||
|
||||
@override
|
||||
String get new_password_not_same_as_old =>
|
||||
'New password must not be the same as the old password';
|
||||
|
||||
@override
|
||||
String get password_between_8_to_40 =>
|
||||
'Password must be between 8 and 40 characters';
|
||||
|
||||
@override
|
||||
String get new_password_required => 'New password is required';
|
||||
|
||||
@override
|
||||
String get old_password_is_required => 'Old password is required';
|
||||
|
||||
@override
|
||||
String get confirm_password_is_required => 'Confirm password is required';
|
||||
|
||||
@override
|
||||
String get kpiCards =>
|
||||
'View interactive KPI cards and graphs to explore data trends and compare key metrics visually.';
|
||||
|
||||
@override
|
||||
String get home_topic =>
|
||||
'Tap on any category (e.g., Economy, Social, Environment) to explore detailed KPIs, visualizations, and data insights.';
|
||||
|
||||
@override
|
||||
String get economy =>
|
||||
'Access detailed statistics and drill-down pages for KPIs in the Economy category to uncover key trends and metrics.';
|
||||
|
||||
@override
|
||||
String get bookMark =>
|
||||
'Bookmark important KPIs or datasets for quick and easy access anytime through the Bookmarks section.';
|
||||
|
||||
@override
|
||||
String get toggle =>
|
||||
'Switch between English and Arabic using the language toggle at the top-right corner for a bilingual experience.';
|
||||
|
||||
@override
|
||||
String get tour_navBar =>
|
||||
'Access dedicated pages and additional features by selecting options from the Main Menu.';
|
||||
|
||||
@override
|
||||
String get mainMenu =>
|
||||
'Use the navigation bar to quickly access Profile, Feedback, User Guide, Notifications, and other key app features.';
|
||||
}
|
||||
@ -12,8 +12,7 @@ import 'package:uae_stat/config/injector.dart';
|
||||
import 'package:uae_stat/config/my_router.dart';
|
||||
import 'package:uae_stat/config/theme/theme_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
// void main() async {
|
||||
// WidgetsFlutterBinding.ensureInitialized();
|
||||
// // await (await SharedPreferences.getInstance()).clear();
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:fl_chart/fl_chart.dart';
|
||||
import 'package:external_repos/external_repos.dart';
|
||||
|
||||
@ -1,913 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
|
||||
import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/presentation/components/constant/constant.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:fl_chart/fl_chart.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/Screens/app_tour/Target_content.dart';
|
||||
|
||||
class Marriages extends ConsumerStatefulWidget {
|
||||
const Marriages({super.key});
|
||||
|
||||
@override
|
||||
ConsumerState<Marriages> createState() => _MarriagesState();
|
||||
}
|
||||
|
||||
class _MarriagesState extends ConsumerState<Marriages> {
|
||||
late List<TargetFocus> marriageTargets;
|
||||
late List<TargetFocus> previousMarriageTargets;
|
||||
late TutorialCoachMark tutorialCoachMark;
|
||||
final GlobalKey chartKey = GlobalKey();
|
||||
final GlobalKey bookMarkKey = GlobalKey();
|
||||
late double cardHeight= 0;
|
||||
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
_calculateMarkPosition();
|
||||
_startTutorialAfterRender();
|
||||
});
|
||||
}
|
||||
|
||||
void handleSkip() {
|
||||
tutorialCoachMark.skip();
|
||||
debugPrint('Skip clicked');
|
||||
ref.read(chartsTourProvider.notifier).state = true;
|
||||
ref.read(previousChartsTourProvider.notifier).state = true;
|
||||
ref.read(homeTourProvider.notifier).state = true;
|
||||
ref.read( previousHomeTourProvider.notifier).state = true;
|
||||
ref.read(scaffoldTourProvider.notifier).state = true;
|
||||
ref.read(previousScaffoldTourProvider.notifier).state = true;
|
||||
context.go('/myhomepage');
|
||||
}
|
||||
|
||||
void _kpiTutorialCoachMark() {
|
||||
|
||||
|
||||
_initmarriageTargets();
|
||||
tutorialCoachMark = TutorialCoachMark(
|
||||
paddingFocus: 0,
|
||||
useSafeArea: true,
|
||||
pulseEnable: false,
|
||||
hideSkip: true,
|
||||
targets: marriageTargets,
|
||||
onClickTarget: (target) {
|
||||
if (target.identify == 'chartKey') {
|
||||
// Scroll to the long widget
|
||||
Scrollable.ensureVisible(
|
||||
chartKey.currentContext!,
|
||||
duration: Duration(milliseconds: 500),
|
||||
);
|
||||
}
|
||||
},
|
||||
onFinish: () {
|
||||
context.push('/myhomepage');
|
||||
debugPrint('Marriage Tutorial Finished');
|
||||
},
|
||||
|
||||
)..show(context: context);
|
||||
|
||||
}
|
||||
void _previousKpiTutorial() {
|
||||
|
||||
_initpreviousTargets();
|
||||
tutorialCoachMark = TutorialCoachMark(
|
||||
paddingFocus: 0,
|
||||
useSafeArea: true,
|
||||
pulseEnable: false,
|
||||
hideSkip: true,
|
||||
targets: previousMarriageTargets,
|
||||
onFinish: () {
|
||||
context.push('/myhomepage');
|
||||
debugPrint('Previous Marriage Tutorial Finished');
|
||||
},
|
||||
|
||||
)..show(context: context);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void _startTutorialAfterRender() {
|
||||
final chartTour = ref.watch(chartsTourProvider);
|
||||
final previousChartTour = ref.watch(previousChartsTourProvider);
|
||||
if (chartKey.currentContext != null && !chartTour) {
|
||||
_kpiTutorialCoachMark();
|
||||
} else if(!previousChartTour) {
|
||||
_previousKpiTutorial();
|
||||
}
|
||||
else if (!chartTour || !previousChartTour){
|
||||
Future.delayed(Duration(milliseconds: 100), _startTutorialAfterRender);
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void _calculateMarkPosition() {
|
||||
final RenderBox cardRenderBox = bookMarkKey.currentContext!.findRenderObject() as RenderBox;
|
||||
final Size cardSize = cardRenderBox.size;
|
||||
cardHeight = cardSize.height;
|
||||
debugPrint('height : $cardHeight');
|
||||
}
|
||||
|
||||
void _initmarriageTargets(){
|
||||
final double screenWidth= MediaQuery.of(context).size.width;
|
||||
final double screenHeight= MediaQuery.of(context).size.height;
|
||||
marriageTargets=[
|
||||
TargetFocus(
|
||||
identify: 'chartsKey',
|
||||
keyTarget: chartKey,
|
||||
shape: ShapeLightFocus.RRect,
|
||||
contents: [
|
||||
createTargetContent(
|
||||
text: AppLocalizations.of(context)!.kpiCards,
|
||||
alignment: ContentAlign.top,
|
||||
gap:50,
|
||||
space: 0,
|
||||
),
|
||||
TargetContent(
|
||||
align: ContentAlign.bottom,
|
||||
child: SizedBox(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.of(context).size.height*0.3,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
bottom: 25,
|
||||
left: 16,
|
||||
right: 16,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () => handleSkip(),
|
||||
style: ElevatedButton.styleFrom(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
side: const BorderSide(color: Colors.white),
|
||||
backgroundColor: Colors.transparent,
|
||||
elevation: 0,
|
||||
),
|
||||
child: Text(
|
||||
'Skip',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
'3/7',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: Colors.white, width: 2.0),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.white),
|
||||
onPressed: () {
|
||||
ref.read(chartsTourProvider.notifier).state=true;
|
||||
ref.read(previousHomeTourProvider.notifier).state=false;
|
||||
tutorialCoachMark.finish();
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF7DAFBC),
|
||||
border: Border.all(color: Color(0xFF7DAFBC), width: 1.5),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_forward, color: Colors.white),
|
||||
onPressed: () {
|
||||
tutorialCoachMark.next();
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
TargetContent(
|
||||
padding: EdgeInsets.only(bottom: 0,top : 0,),
|
||||
align: ContentAlign.top,
|
||||
child: SizedBox(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height:MediaQuery.of(context).size.height*0.69 ,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
left: MediaQuery.of(context).size.width*0.40,
|
||||
bottom: 0,
|
||||
child: Image.asset(
|
||||
'assets/app_tour/leftUp.png',
|
||||
width: 100,
|
||||
height: 90,
|
||||
),
|
||||
),
|
||||
]
|
||||
),
|
||||
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
TargetFocus(
|
||||
identify: 'BookMarkKey',
|
||||
keyTarget: bookMarkKey,
|
||||
shape: ShapeLightFocus.RRect,
|
||||
contents: [
|
||||
createTargetContent(
|
||||
text: AppLocalizations.of(context)!.bookMark,
|
||||
alignment: ContentAlign.bottom,
|
||||
gap: 23,
|
||||
space: 50,
|
||||
),
|
||||
TargetContent(
|
||||
align: ContentAlign.bottom,
|
||||
child: SizedBox(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.of(context).size.height*0.60,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
bottom: 35,
|
||||
left: 16,
|
||||
right: 16,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () => handleSkip(),
|
||||
style: ElevatedButton.styleFrom(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
side: const BorderSide(color: Colors.white),
|
||||
backgroundColor: Colors.transparent,
|
||||
elevation: 0,
|
||||
),
|
||||
child: Text(
|
||||
'Skip',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
'4/7',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: Colors.white, width: 2.0),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.white),
|
||||
onPressed: () {
|
||||
tutorialCoachMark.previous();
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF7DAFBC),
|
||||
border: Border.all(color: Color(0xFF7DAFBC), width: 1),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_forward, color: Colors.white),
|
||||
onPressed: () {
|
||||
ref.read(chartsTourProvider.notifier).state=true;
|
||||
ref.read(scaffoldTourProvider.notifier).state=false;
|
||||
tutorialCoachMark.finish();
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
TargetContent(
|
||||
padding: EdgeInsets.only(left:0, top: cardHeight+20),
|
||||
align: ContentAlign.right,
|
||||
child: Container(
|
||||
width: screenWidth/4,
|
||||
height: screenHeight,
|
||||
child: Stack(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/app_tour/leftDown.png',
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
// Positioned(
|
||||
// top: 0,
|
||||
// left: MediaQuery.of(context).size.width* 0.5,
|
||||
// child: SizedBox(
|
||||
// width: 50,
|
||||
// height: 100,
|
||||
// child: Image.asset(
|
||||
// 'assets/app_tour/bookmark2.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
void _initpreviousTargets(){
|
||||
final double screenWidth= MediaQuery.of(context).size.width;
|
||||
final double screenHeight= MediaQuery.of(context).size.height;
|
||||
previousMarriageTargets=[
|
||||
TargetFocus(
|
||||
identify: 'BookMarkKey',
|
||||
keyTarget: bookMarkKey,
|
||||
shape: ShapeLightFocus.RRect,
|
||||
contents: [
|
||||
createTargetContent(
|
||||
text: AppLocalizations.of(context)!.bookMark,
|
||||
space: 50,
|
||||
alignment: ContentAlign.bottom,
|
||||
gap: 23,
|
||||
),
|
||||
TargetContent(
|
||||
align: ContentAlign.bottom,
|
||||
child: SizedBox(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.of(context).size.height*0.60,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
bottom: 35,
|
||||
left: 16,
|
||||
right: 16,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () => handleSkip(),
|
||||
style: ElevatedButton.styleFrom(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
side: const BorderSide(color: Colors.white),
|
||||
backgroundColor: Colors.transparent,
|
||||
elevation: 0,
|
||||
),
|
||||
child: Text(
|
||||
'Skip',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
'4/7',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: Colors.white, width: 2.0),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.white),
|
||||
onPressed: () {
|
||||
tutorialCoachMark.next();
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF7DAFBC),
|
||||
border: Border.all(color:Color(0xFF7DAFBC), width: 1.5),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_forward, color: Colors.white),
|
||||
onPressed: () {
|
||||
ref.read(chartsTourProvider.notifier).state=true;
|
||||
ref.read(scaffoldTourProvider.notifier).state=false;
|
||||
tutorialCoachMark.finish();
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
TargetContent(
|
||||
padding: EdgeInsets.only(left:0, top: cardHeight+20),
|
||||
align: ContentAlign.right,
|
||||
child: Container(
|
||||
width: screenWidth/4,
|
||||
height: screenHeight,
|
||||
child: Stack(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/app_tour/leftDown.png',
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
// Positioned(
|
||||
// top: 0,
|
||||
// left: MediaQuery.of(context).size.width* 0.5,
|
||||
// child: SizedBox(
|
||||
// width: 50,
|
||||
// height: 100,
|
||||
// child: Image.asset(
|
||||
// 'assets/app_tour/bookmark2.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
TargetFocus(
|
||||
identify: 'chartsKey',
|
||||
keyTarget: chartKey,
|
||||
shape: ShapeLightFocus.RRect,
|
||||
contents: [
|
||||
createTargetContent(
|
||||
text: AppLocalizations.of(context)!.kpiCards,
|
||||
space: 0,
|
||||
alignment: ContentAlign.top,
|
||||
gap:50,
|
||||
),
|
||||
TargetContent(
|
||||
align: ContentAlign.bottom,
|
||||
child: SizedBox(
|
||||
width: double.infinity,
|
||||
height: MediaQuery.of(context).size.height*0.3,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
bottom: 30,
|
||||
left: 16,
|
||||
right: 16,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () => handleSkip(),
|
||||
style: ElevatedButton.styleFrom(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
side: const BorderSide(color: Colors.white),
|
||||
backgroundColor: Colors.transparent,
|
||||
elevation: 0,
|
||||
),
|
||||
child: Text(
|
||||
'Skip',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
'3/7',
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 3),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: Colors.white, width: 2.0),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.white),
|
||||
onPressed: () {
|
||||
ref.read(previousChartsTourProvider.notifier).state=true;
|
||||
ref.read(previousHomeTourProvider.notifier).state=false;
|
||||
tutorialCoachMark.finish();
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF7DAFBC),
|
||||
border: Border.all(color:Color(0xFF7DAFBC), width: 1.5),
|
||||
),
|
||||
child: IconButton(
|
||||
iconSize: 20,
|
||||
icon: const Icon(Icons.arrow_forward, color: Colors.white),
|
||||
onPressed: () {
|
||||
tutorialCoachMark.previous();
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
TargetContent(
|
||||
padding: EdgeInsets.only(bottom: 0,top : 0,),
|
||||
align: ContentAlign.top,
|
||||
child: SizedBox(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height:MediaQuery.of(context).size.height*0.69 ,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
left: MediaQuery.of(context).size.width*0.40,
|
||||
bottom: 0,
|
||||
child: Image.asset(
|
||||
'assets/app_tour/leftUp.png',
|
||||
width: 100,
|
||||
height: 90,
|
||||
),
|
||||
),
|
||||
]
|
||||
),
|
||||
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
double myheight = MediaQuery.of(context).size.height;
|
||||
double mywidth = MediaQuery.of(context).size.width;
|
||||
final List<String> xAxisData = ['2019', '2020', '2021', '2022', '2023'];
|
||||
final List<double> yAxisData = [2, 4, 1, 5, 3];
|
||||
return BaseScaffold(
|
||||
appbarColor: Color(0xFFC6BEB2),
|
||||
title: Text("UAE Numbers",style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),),
|
||||
showBackButton: true,
|
||||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
children : [
|
||||
Container(
|
||||
height: myheight/4.5,
|
||||
width: double.infinity,
|
||||
color: Color(0xFFC6BEB2),
|
||||
child: Padding(padding: EdgeInsets.only(left: 30,right: 30,top: 20,bottom: 10),child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("SOCIAL",style: TextStyle(color: Colors.white,fontSize: 30),),
|
||||
Container(width: mywidth/5,child: Divider(thickness: 10,color: Colors.white,)),
|
||||
Text("Marriages",style: TextStyle(color: Colors.white,fontSize: 20),),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
IconButton(key :bookMarkKey,onPressed: (){}, icon: Icon(Icons.bookmark_add_outlined,color: Colors.white,size: 40,)),
|
||||
IconButton(onPressed: (){}, icon: Icon(Icons.share,color: Colors.white,size: 30,)),
|
||||
],),
|
||||
],
|
||||
),)
|
||||
),
|
||||
SingleChildScrollView(child: Container(
|
||||
height: myheight,
|
||||
color: Color(0xFFC6BEB2),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 0.0,left: 10,right: 10,bottom: 20),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
key:chartKey,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Container(height: myheight/3.5,width: mywidth/2.5,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10))
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/icons/indicator/social/marriage.png',
|
||||
height: myheight / 10, // This ensures the image fits within the container's height
|
||||
width: myheight / 10, // You can adjust the size as needed
|
||||
),
|
||||
Text("Total",style: TextStyle(fontWeight: FontWeight.bold,fontSize: 26),),
|
||||
Text("2022",style: TextStyle(fontSize: 15,color: Colors.grey),),
|
||||
Text("16759",style: TextStyle(fontSize: 26,fontWeight: FontWeight.bold,color: socialColor),),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(height: myheight/3.5,width: mywidth/2.5,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10))
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/icons/indicator/social/marriage.png',
|
||||
height: myheight / 10, // This ensures the image fits within the container's height
|
||||
width: myheight / 10, // You can adjust the size as needed
|
||||
),
|
||||
Text("Average",style: TextStyle(fontWeight: FontWeight.bold,fontSize: 26),),
|
||||
Text("(2021 - 2022)",style: TextStyle(fontSize: 15,color: Colors.grey),),
|
||||
Text("15987",style: TextStyle(fontSize: 26,fontWeight: FontWeight.bold,color: socialColor),),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(height: myheight/20,),
|
||||
Container(
|
||||
height: myheight/2.5,
|
||||
width: mywidth/1.2,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10))
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(height: myheight/30,),
|
||||
Center(child: Text("Total Marriages by Marriage Type",style: TextStyle(fontSize: 16,fontWeight: FontWeight.bold),),
|
||||
),
|
||||
SizedBox(height: myheight/30,),
|
||||
Container(
|
||||
height: myheight/4,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black12,
|
||||
blurRadius: 8,
|
||||
offset: Offset(0, 4),
|
||||
),
|
||||
],
|
||||
),
|
||||
child:
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 16,left: 8.0,right: 8.0,bottom: 8.0),
|
||||
child: BarChart(
|
||||
BarChartData(
|
||||
alignment: BarChartAlignment.spaceAround,
|
||||
maxY: 8,
|
||||
barTouchData: BarTouchData(enabled: false),
|
||||
titlesData: FlTitlesData(
|
||||
leftTitles: AxisTitles(
|
||||
sideTitles: SideTitles(
|
||||
showTitles: true,
|
||||
interval: 2,
|
||||
getTitlesWidget: (value, meta) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(right: 8.0),
|
||||
child: Text('${value.toInt()}K'),
|
||||
);
|
||||
},
|
||||
reservedSize: 60,
|
||||
),
|
||||
),
|
||||
bottomTitles: AxisTitles(
|
||||
sideTitles: SideTitles(
|
||||
showTitles: true,
|
||||
getTitlesWidget: (value, meta) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
child: Text(xAxisData[value.toInt()]),
|
||||
);
|
||||
},
|
||||
reservedSize: 40,
|
||||
),
|
||||
),
|
||||
topTitles: AxisTitles(
|
||||
sideTitles: SideTitles(showTitles: false), // Hides top titles
|
||||
),
|
||||
rightTitles: AxisTitles(
|
||||
sideTitles: SideTitles(showTitles: false), // Hides right titles
|
||||
),
|
||||
),
|
||||
gridData: FlGridData(show: false),
|
||||
borderData: FlBorderData(show: false),
|
||||
barGroups: List.generate(
|
||||
xAxisData.length,
|
||||
(index) => BarChartGroupData(
|
||||
x: index,
|
||||
barRods: [
|
||||
BarChartRodData(
|
||||
toY: yAxisData[index],
|
||||
color: Colors.blueAccent,
|
||||
//colors: [Colors.blueAccent],
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
width: 20,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
// Container(
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// borderRadius: BorderRadius.circular(12),
|
||||
// boxShadow: [
|
||||
// BoxShadow(
|
||||
// color: Colors.black12,
|
||||
// blurRadius: 8,
|
||||
// offset: Offset(0, 4),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// child:
|
||||
// BarChart(
|
||||
// BarChartData(
|
||||
// alignment: BarChartAlignment.spaceAround,
|
||||
// maxY: 20,
|
||||
// barTouchData: BarTouchData(enabled: false),
|
||||
// titlesData: FlTitlesData(
|
||||
// leftTitles: AxisTitles(
|
||||
// sideTitles: SideTitles(
|
||||
// showTitles: true,
|
||||
// getTitlesWidget: (value, meta) {
|
||||
// return Padding(
|
||||
// padding: const EdgeInsets.only(right: 8.0),
|
||||
// child: Text('${value.toInt()}K'),
|
||||
// );
|
||||
// },
|
||||
// reservedSize: 40,
|
||||
// ),
|
||||
// ),
|
||||
// bottomTitles: AxisTitles(
|
||||
// sideTitles: SideTitles(
|
||||
// showTitles: true,
|
||||
// getTitlesWidget: (value, meta) {
|
||||
// return Padding(
|
||||
// padding: const EdgeInsets.only(top: 8.0),
|
||||
// child: Text(xAxisData[value.toInt()]),
|
||||
// );
|
||||
// },
|
||||
// reservedSize: 40,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// gridData: FlGridData(show: false),
|
||||
// borderData: FlBorderData(show: false),
|
||||
// barGroups: List.generate(
|
||||
// xAxisData.length,
|
||||
// (index) => BarChartGroupData(
|
||||
// x: index,
|
||||
// barRods: [
|
||||
// BarChartRodData(
|
||||
// toY: yAxisData[index],
|
||||
// color: Colors.blueAccent,
|
||||
// //colors: [Colors.blueAccent],
|
||||
// borderRadius: BorderRadius.circular(4),
|
||||
// width: 20,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
),)
|
||||
]
|
||||
),
|
||||
), mycenterTitle: false,
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,8 +17,7 @@ import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.
|
||||
import 'package:uae_stat/presentation/components/constant/constant.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
class UaeNumbers extends ConsumerWidget {
|
||||
const UaeNumbers({super.key});
|
||||
|
||||
@ -16,8 +16,7 @@ import 'package:uae_stat/presentation/Screens/profilepage.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
import 'package:uae_stat/presentation/components/space.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/config/my_theme.dart';
|
||||
|
||||
class CreateNewPw extends ConsumerStatefulWidget {
|
||||
|
||||
@ -11,12 +11,11 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/Screens/profilepage.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
import 'package:uae_stat/presentation/components/space.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
|
||||
import 'package:uae_stat/config/my_theme.dart';
|
||||
|
||||
class ForgotPassword extends ConsumerStatefulWidget {
|
||||
|
||||
@ -13,8 +13,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
|
||||
import 'package:uae_stat/presentation/Screens/profilepage.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
|
||||
@ -22,7 +22,7 @@ import 'package:uae_stat/presentation/Screens/charts/services/api_service.dart';
|
||||
import 'package:uae_stat/presentation/Screens/charts/widgets/chart_widget.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:uae_stat/presentation/Screens/app_tour/Target_content.dart';
|
||||
import '../filters/search_filter_helper.dart';
|
||||
@ -30,7 +30,6 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'dart:io';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
|
||||
class ChartScreen1 extends ConsumerStatefulWidget {
|
||||
final String dataSets;
|
||||
|
||||
@ -23,8 +23,7 @@ import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import '../components/my_bottom_nav_bar.dart';
|
||||
import 'auth_verification/changepassword.dart';
|
||||
import 'demo_home.dart';
|
||||
|
||||
@ -25,6 +25,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/Screens/demo_home.dart';
|
||||
import 'package:uae_stat/presentation/components/dialogs.dart';
|
||||
import 'package:uae_stat/presentation/components/lang_toggle.dart';
|
||||
@ -36,8 +37,7 @@ import 'package:http/http.dart' as http;
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../../Screens/auth_verification/registration.dart';
|
||||
import 'package:pocketbase/pocketbase.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
|
||||
import '../../components/indicators/locale_provider.dart';
|
||||
import '../../components/my_toggle.dart';
|
||||
|
||||
@ -175,11 +175,11 @@ import 'package:uae_stat/config/toggle_lang_service.dart';
|
||||
import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/logo_asset_path.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
|
||||
import 'package:uae_stat/presentation/Screens/app_tour/Target_content.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
|
||||
@ -6,8 +6,7 @@ import 'package:flutter_svg/svg.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:pocketbase/pocketbase.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
|
||||
@ -23,8 +23,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
class EditProfile extends ConsumerStatefulWidget {
|
||||
const EditProfile({super.key});
|
||||
|
||||
@ -8,7 +8,6 @@ import 'package:go_router/go_router.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:uae_stat/config/theme/theme_provider.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:pocketbase/pocketbase.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:uae_stat/config/api_config.dart';
|
||||
@ -18,6 +17,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/feedback_asset_path.dart';
|
||||
|
||||
import 'package:uae_stat/infrastructure/services/packages/go_router.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_drawer.dart';
|
||||
import 'package:mailer/mailer.dart';
|
||||
|
||||
@ -17,8 +17,7 @@ import 'package:uae_stat/presentation/components/indicators/locale_provider.dart
|
||||
import 'package:uae_stat/presentation/components/my_bottom_nav_bar.dart';
|
||||
import 'package:uae_stat/presentation/components/my_drawer.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
class ManageUserRouter extends ConsumerStatefulWidget {
|
||||
late final Widget title;
|
||||
|
||||
@ -14,8 +14,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import '../../custom_drawer_routes.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
class NotificationPage extends ConsumerStatefulWidget {
|
||||
@override
|
||||
|
||||
@ -4,14 +4,10 @@ import 'package:go_router/go_router.dart';
|
||||
import 'package:uae_stat/config/theme/theme_provider.dart';
|
||||
import 'package:uae_stat/config/toggle_lang_service.dart';
|
||||
import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
// import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
// import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
|
||||
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
|
||||
import 'package:iconify_design/iconify_design.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
class Userguide extends ConsumerStatefulWidget {
|
||||
Userguide({super.key});
|
||||
|
||||
@ -12,7 +12,6 @@ import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:pocketbase/pocketbase.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
|
||||
import 'package:uae_stat/config/injector.dart';
|
||||
import 'package:uae_stat/config/theme/app_theme.dart';
|
||||
@ -24,7 +23,7 @@ import 'package:uae_stat/domain/use_cases/language.dart';
|
||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/bottom_bar_asset_icon_path.dart';
|
||||
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/drawer_asset_icon_path.dart';
|
||||
// import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
import 'package:uae_stat/l10n/app_localizations.dart';
|
||||
|
||||
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
|
||||
import 'package:uae_stat/presentation/components/my_toggle.dart';
|
||||
|
||||
24
pubspec.lock
24
pubspec.lock
@ -117,10 +117,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.12.0"
|
||||
version: "2.13.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -476,10 +476,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
version: "1.3.3"
|
||||
fast_immutable_collections:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1024,10 +1024,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.19.0"
|
||||
version: "0.20.2"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1072,10 +1072,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.8"
|
||||
version: "10.0.9"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1136,10 +1136,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: material_charts
|
||||
sha256: ada5af96e9cdd9888c1931eaf307e6693408584ca0de1b1c795f9862590f9fcf
|
||||
sha256: f30b2410c00cc946440e606600b7b72d107737ec508a1300fbc4119820a0f454
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.0.25"
|
||||
version: "0.0.28"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1795,10 +1795,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
|
||||
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.3.1"
|
||||
version: "15.0.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@ -33,7 +33,7 @@ dependencies:
|
||||
# path: packages/dynamic_layouts
|
||||
csv: ^6.0.0
|
||||
excel: ^4.0.2
|
||||
intl: ^0.19.0
|
||||
intl: ^0.20.2
|
||||
# firebase_core: ^3.12.1
|
||||
the_validator: ^2.0.0
|
||||
pocketbase: ^0.18.1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user