This commit is contained in:
Surendiran 2025-09-01 11:07:27 +05:30
parent c9b7446596
commit 92da28e6db
26 changed files with 3166 additions and 83 deletions

View File

@ -0,0 +1,20 @@
// Flutter web plugin registrant file.
//
// Generated file. Do not edit.
//
// @dart = 2.13
// ignore_for_file: type=lint
import 'package:connectivity_plus/src/connectivity_plus_web.dart';
import 'package:flutter_secure_storage_web/flutter_secure_storage_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void registerPlugins([final Registrar? pluginRegistrar]) {
final Registrar registrar = pluginRegistrar ?? webPluginRegistrar;
ConnectivityPlusWebPlugin.registerWith(registrar);
FlutterSecureStorageWeb.registerWith(registrar);
SharedPreferencesPlugin.registerWith(registrar);
registrar.registerMessageHandler();
}

View File

@ -0,0 +1,700 @@
{
"configVersion": 2,
"packages": [
{
"name": "_fe_analyzer_shared",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "analyzer",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "args",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "async",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/async-2.13.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "boolean_selector",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "build",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build-3.0.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "build_config",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_config-1.1.2",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "build_daemon",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_daemon-4.0.4",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "build_resolvers",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_resolvers-3.0.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "build_runner",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner-2.6.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "build_runner_core",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner_core-9.2.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "built_collection",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_collection-5.1.1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "built_value",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_value-8.11.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "characters",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/characters-1.4.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "checked_yaml",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "clock",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/clock-1.1.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "code_builder",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/code_builder-4.10.1",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "collection",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/collection-1.19.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "connectivity_plus",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "connectivity_plus_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "convert",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/convert-3.1.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "crypto",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/crypto-3.0.6",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "cupertino_icons",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "dart_style",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/dart_style-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "dbus",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/dbus-0.7.11",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "equatable",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "fake_async",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/fake_async-1.3.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "ffi",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/ffi-2.1.4",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "file",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/file-7.0.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "fixnum",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "flutter",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "flutter_hooks",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "flutter_lints",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "flutter_riverpod",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_riverpod-2.6.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "flutter_secure_storage",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_secure_storage_linux",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_secure_storage_macos",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_secure_storage_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_secure_storage_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_secure_storage_windows",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "flutter_test",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter_test",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "flutter_web_plugins",
"rootUri": "file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "frontend_server_client",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "get_it",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/get_it-8.2.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "glob",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/glob-2.1.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "go_router",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/go_router-16.1.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "google_fonts",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_fonts-6.3.1",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "graphs",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "http",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/http-1.5.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "http_multi_server",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "http_parser",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_parser-4.1.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "intl",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "io",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/io-1.0.5",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "js",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/js-0.6.7",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "json_annotation",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_annotation-4.9.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "json_serializable",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_serializable-6.10.0",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "leak_tracker",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_flutter_testing",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_testing",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "lints",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "logging",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "matcher",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/matcher-0.12.17",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "material_color_utilities",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "meta",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/meta-1.16.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "mime",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/mime-2.0.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "nm",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/nm-0.5.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "package_config",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_config-2.2.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "path",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "path_provider",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider-2.1.5",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "path_provider_android",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_android-2.2.17",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "path_provider_foundation",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "path_provider_linux",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "path_provider_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_windows",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "petitparser",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "platform",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "plugin_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "pool",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/pool-1.5.1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "pub_semver",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/pub_semver-2.2.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "pubspec_parse",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "responsive_framework",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/responsive_framework-1.5.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "riverpod",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/riverpod-2.6.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "shared_preferences",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences-2.5.3",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "shared_preferences_android",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.11",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "shared_preferences_foundation",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "shared_preferences_linux",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "shared_preferences_platform_interface",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "shared_preferences_web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "shared_preferences_windows",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "shelf",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf-1.4.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "shelf_web_socket",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "sky_engine",
"rootUri": "file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "source_gen",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_gen-3.1.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "source_helper",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_helper-1.3.7",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "source_span",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_span-1.10.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "stack_trace",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "state_notifier",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/state_notifier-1.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "stream_channel",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_channel-2.1.4",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "stream_transform",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_transform-2.1.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "string_scanner",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "term_glyph",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "test_api",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "timing",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/timing-1.0.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "typed_data",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "vector_math",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
"packageUri": "lib/",
"languageVersion": "2.14"
},
{
"name": "vm_service",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/vm_service-15.0.0",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "watcher",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/watcher-1.1.2",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "web",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/web-1.1.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "web_socket",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket-1.0.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "web_socket_channel",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "win32",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/win32-5.14.0",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "xdg_directories",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "xml",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/xml-6.5.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "yaml",
"rootUri": "file:///Users/venbateam/.pub-cache/hosted/pub.dev/yaml-3.1.3",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "nhance_partner",
"rootUri": "../",
"packageUri": "lib/",
"languageVersion": "3.8"
}
],
"generator": "pub",
"generatorVersion": "3.8.1",
"flutterRoot": "file:///Users/venbateam/Documents/flutter",
"flutterVersion": "3.32.8",
"pubCache": "file:///Users/venbateam/.pub-cache"
}

View File

@ -0,0 +1,461 @@
_fe_analyzer_shared
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0/lib/
analyzer
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/analyzer-7.7.1/lib/
args
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/args-2.7.0/lib/
async
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/async-2.13.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/async-2.13.0/lib/
boolean_selector
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2/lib/
build
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build-3.0.0/lib/
build_config
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_config-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_config-1.1.2/lib/
build_daemon
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_daemon-4.0.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_daemon-4.0.4/lib/
build_resolvers
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_resolvers-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_resolvers-3.0.0/lib/
build_runner
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner-2.6.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner-2.6.0/lib/
build_runner_core
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner_core-9.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/build_runner_core-9.2.0/lib/
built_collection
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_collection-5.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/
built_value
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_value-8.11.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/built_value-8.11.1/lib/
characters
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/characters-1.4.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/characters-1.4.0/lib/
checked_yaml
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/checked_yaml-2.0.4/lib/
clock
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/clock-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/clock-1.1.2/lib/
code_builder
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/code_builder-4.10.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/code_builder-4.10.1/lib/
collection
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/collection-1.19.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/collection-1.19.1/lib/
connectivity_plus
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/lib/
connectivity_plus_platform_interface
2.18
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/connectivity_plus_platform_interface-2.0.1/lib/
convert
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/convert-3.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/convert-3.1.2/lib/
crypto
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/crypto-3.0.6/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/crypto-3.0.6/lib/
cupertino_icons
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/
dart_style
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dart_style-3.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dart_style-3.1.1/lib/
dbus
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dbus-0.7.11/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/dbus-0.7.11/lib/
equatable
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/equatable-2.0.7/lib/
fake_async
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fake_async-1.3.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fake_async-1.3.3/lib/
ffi
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/ffi-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/ffi-2.1.4/lib/
file
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/file-7.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/file-7.0.1/lib/
fixnum
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/fixnum-1.1.1/lib/
flutter_hooks
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_hooks-0.21.3+1/lib/
flutter_lints
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/lib/
flutter_riverpod
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_riverpod-2.6.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_riverpod-2.6.1/lib/
flutter_secure_storage
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/lib/
flutter_secure_storage_linux
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/lib/
flutter_secure_storage_macos
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/lib/
flutter_secure_storage_platform_interface
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2/lib/
flutter_secure_storage_web
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/lib/
flutter_secure_storage_windows
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/lib/
frontend_server_client
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0/lib/
get_it
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/get_it-8.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/get_it-8.2.0/lib/
glob
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/glob-2.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/glob-2.1.3/lib/
go_router
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/go_router-16.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/go_router-16.1.0/lib/
google_fonts
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_fonts-6.3.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/google_fonts-6.3.1/lib/
graphs
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/graphs-2.3.2/lib/
http
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http-1.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http-1.5.0/lib/
http_multi_server
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2/lib/
http_parser
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_parser-4.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/http_parser-4.1.2/lib/
intl
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/intl-0.20.2/lib/
io
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/io-1.0.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/io-1.0.5/lib/
js
2.19
file:///Users/venbateam/.pub-cache/hosted/pub.dev/js-0.6.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/js-0.6.7/lib/
json_annotation
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_annotation-4.9.0/lib/
json_serializable
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_serializable-6.10.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/json_serializable-6.10.0/lib/
leak_tracker
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker-10.0.9/lib/
leak_tracker_flutter_testing
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/lib/
leak_tracker_testing
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
lints
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/lints-5.1.1/lib/
logging
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/logging-1.3.0/lib/
matcher
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/matcher-0.12.17/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/matcher-0.12.17/lib/
material_color_utilities
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/lib/
meta
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/meta-1.16.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/meta-1.16.0/lib/
mime
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/mime-2.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/mime-2.0.0/lib/
nm
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/nm-0.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/nm-0.5.0/lib/
package_config
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_config-2.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/package_config-2.2.0/lib/
path
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path-1.9.1/lib/
path_provider
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/
path_provider_android
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_android-2.2.17/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_android-2.2.17/lib/
path_provider_foundation
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/lib/
path_provider_linux
2.19
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
path_provider_platform_interface
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
path_provider_windows
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/lib/
petitparser
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/petitparser-6.1.0/lib/
platform
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/platform-3.1.6/lib/
plugin_platform_interface
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
pool
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pool-1.5.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pool-1.5.1/lib/
pub_semver
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/lib/
pubspec_parse
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/lib/
responsive_framework
3.0
file:///Users/venbateam/.pub-cache/hosted/pub.dev/responsive_framework-1.5.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/responsive_framework-1.5.1/lib/
riverpod
2.17
file:///Users/venbateam/.pub-cache/hosted/pub.dev/riverpod-2.6.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/riverpod-2.6.1/lib/
shared_preferences
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences-2.5.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences-2.5.3/lib/
shared_preferences_android
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.11/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.11/lib/
shared_preferences_foundation
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/lib/
shared_preferences_linux
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/lib/
shared_preferences_platform_interface
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.4.1/lib/
shared_preferences_web
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/lib/
shared_preferences_windows
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/lib/
shelf
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf-1.4.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib/
shelf_web_socket
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib/
source_gen
3.7
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_gen-3.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_gen-3.1.0/lib/
source_helper
3.6
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_helper-1.3.7/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_helper-1.3.7/lib/
source_span
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_span-1.10.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/source_span-1.10.1/lib/
stack_trace
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stack_trace-1.12.1/lib/
state_notifier
2.12
file:///Users/venbateam/.pub-cache/hosted/pub.dev/state_notifier-1.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/state_notifier-1.0.0/lib/
stream_channel
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_channel-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_channel-2.1.4/lib/
stream_transform
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/stream_transform-2.1.1/lib/
string_scanner
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/lib/
term_glyph
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/lib/
test_api
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/test_api-0.7.4/lib/
timing
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/timing-1.0.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/timing-1.0.2/lib/
typed_data
3.5
file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/typed_data-1.4.0/lib/
vector_math
2.14
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
vm_service
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vm_service-15.0.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/vm_service-15.0.0/lib/
watcher
3.1
file:///Users/venbateam/.pub-cache/hosted/pub.dev/watcher-1.1.2/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/watcher-1.1.2/lib/
web
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web-1.1.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web-1.1.1/lib/
web_socket
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket-1.0.1/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket-1.0.1/lib/
web_socket_channel
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3/lib/
win32
3.8
file:///Users/venbateam/.pub-cache/hosted/pub.dev/win32-5.14.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/win32-5.14.0/lib/
xdg_directories
3.3
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/lib/
xml
3.2
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xml-6.5.0/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/xml-6.5.0/lib/
yaml
3.4
file:///Users/venbateam/.pub-cache/hosted/pub.dev/yaml-3.1.3/
file:///Users/venbateam/.pub-cache/hosted/pub.dev/yaml-3.1.3/lib/
sky_engine
3.7
file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine/
file:///Users/venbateam/Documents/flutter/bin/cache/pkg/sky_engine/lib/
flutter
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter/
file:///Users/venbateam/Documents/flutter/packages/flutter/lib/
flutter_test
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter_test/
file:///Users/venbateam/Documents/flutter/packages/flutter_test/lib/
flutter_web_plugins
3.7
file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins/
file:///Users/venbateam/Documents/flutter/packages/flutter_web_plugins/lib/
nhance_partner
3.8
file:///Users/venbateam/Documents/nhance_partner/
file:///Users/venbateam/Documents/nhance_partner/lib/
2

File diff suppressed because it is too large Load Diff

1
.dart_tool/version Normal file
View File

@ -0,0 +1 @@
3.32.8

File diff suppressed because one or more lines are too long

BIN
Nhance_Partner.zip Normal file

Binary file not shown.

View File

@ -0,0 +1 @@
{"inputs":[],"outputs":[]}

View File

@ -0,0 +1 @@
{"inputs":[],"outputs":[]}

View File

@ -0,0 +1 @@
{"inputs":[],"outputs":[]}

View File

@ -919,6 +919,7 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
analyzer
intl
Copyright 2013, the Dart project authors.
@ -5772,9 +5773,34 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
flutter_hooks
MIT License
Copyright (c) 2018 Remi Rousselet
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
--------------------------------------------------------------------------------
flutter_lints
go_router
google_fonts
path_provider
path_provider_android
path_provider_foundation

View File

@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:nhance_partner/core/routing/routes.dart';
import 'package:nhance_partner/presentation/screens/claims/claimsList.dart';
import '../../data/services/auth_service.dart';
import '../../presentation/screens/home/home_screen.dart';
import '../../presentation/screens/login/login_screen.dart';
import '../../presentation/screens/splash/splash_screen.dart';
import '../../presentation/screens/login/login_screen.dart';
import '../../presentation/screens/splash/splash_screen.dart';
final GoRouter appRouter = GoRouter(
initialLocation: AppRoutes.home,
@ -20,15 +20,36 @@ final GoRouter appRouter = GoRouter(
),
GoRoute(
path: AppRoutes.home,
// builder: (context, state) => const ClaimsList(),
builder: (context, state) => const HomeScreen(),
),
],
redirect: (context, state) async {
final loggedIn = await AuthService.isLoggedIn();
final goingToLogin = state.matchedLocation == AppRoutes.login;
// final goingToLogin = state.matchedLocation == AppRoutes.login;
if (!loggedIn && !goingToLogin) return AppRoutes.login;
if (loggedIn && goingToLogin) return AppRoutes.home;
final currentLocation = state.matchedLocation;
final goingToLogin = currentLocation.startsWith(AppRoutes.login);
print("loggedIn - $loggedIn");
print("currentLocation - $currentLocation");
print("goingToLogin - $goingToLogin");
if (!loggedIn) {
// Not logged in redirect to login with "next" param
if (!goingToLogin) {
return '${AppRoutes.login}?next=$currentLocation';
}
return null; // already on login stay
}
if (loggedIn && goingToLogin) {
// Logged in but going to login send to "next" if present
final next = state.uri.queryParameters['next'];
return next ?? AppRoutes.home;
}
// if (!loggedIn && !goingToLogin) return AppRoutes.login;
// if (loggedIn && goingToLogin) return AppRoutes.home;
return null; // stay on current route
},

View File

@ -6,6 +6,7 @@ class AuthService {
// Save token after login
static Future<void> saveToken(String token) async {
print("SAveTOken");
await _storage.write(key: _tokenKey, value: token);
}
@ -16,6 +17,7 @@ class AuthService {
// Delete token (logout)
static Future<void> clearToken() async {
print('ClearToken');
await _storage.delete(key: _tokenKey);
}
@ -26,8 +28,7 @@ class AuthService {
}
}
// if (success) {
// await AuthService.saveToken("my-secure-jwt-token");
// if (mounted) context.go(AppRoutes.home);
// }
// }

View File

@ -0,0 +1,201 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
class PaginationControls extends StatelessWidget {
final int currentPage;
final int itemsPerPage;
final int totalItems;
final Function(int) onPageChanged;
final Function(int) onItemsPerPageChanged;
// final Color? activeColor;
const PaginationControls({
Key? key,
required this.currentPage,
required this.itemsPerPage,
required this.totalItems,
required this.onPageChanged,
required this.onItemsPerPageChanged,
// this.activeColor = Colors.blue, // fallback if no color given
}) : super(key: key);
@override
Widget build(BuildContext context) {
// int totalPages = (totalItems / itemsPerPage).ceil();
final int totalPages = (totalItems / itemsPerPage).ceil();
// return Row(
// mainAxisAlignment: MainAxisAlignment.end,
// children: [
// Padding(
// padding: const EdgeInsets.symmetric(vertical: 12),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// DropdownButton<int>(
// value: itemsPerPage,
// items:
// [5, 10, 15, 20, 50].map((int value) {
// return DropdownMenuItem<int>(
// value: value,
// child: Text(
// ' $value ',
// style: GoogleFonts.poppins(fontSize: 15),
// ),
// );
// }).toList(),
// onChanged: (newValue) {
// if (newValue != null) {
// onItemsPerPageChanged(newValue);
// onPageChanged(1); // reset to first page
// }
// },
// ),
// IconButton(
// onPressed:
// currentPage > 1
// ? () => onPageChanged(currentPage - 1)
// : null,
// icon: Icon(Icons.chevron_left),
// ),
// for (int i = 1; i <= totalPages - 1; i++)
// Padding(
// padding: const EdgeInsets.symmetric(horizontal: 4),
// child: ElevatedButton(
// style: ElevatedButton.styleFrom(
// backgroundColor:
// currentPage == i - 1 ? activeColor : Colors.grey[300],
// foregroundColor:
// currentPage == i - 1 ? Colors.white : Colors.black,
// minimumSize: Size(36, 36),
// padding: EdgeInsets.zero,
// ),
// onPressed: () => onPageChanged(i - 1),
// child: Text(i.toString()),
// ),
// ),
// IconButton(
// onPressed:
// currentPage < totalPages - 1
// ? () => onPageChanged(currentPage + 1)
// : null,
// icon: Icon(Icons.chevron_right),
// ),
// ],
// ),
// ),
// ],
// );
return Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
DropdownButton<int>(
value: itemsPerPage,
items: [10, 20, 50, 100]
.map(
(value) => DropdownMenuItem<int>(
value: value,
child: Text(
'$value',
style: TextStyle(fontSize: 12, fontFamily: "Inter"),
),
),
)
.toList(),
onChanged: (value) {
if (value != null) {
onItemsPerPageChanged(value);
}
},
style: TextStyle(
fontSize: 12,
color: Colors.black,
fontFamily: "Inter",
),
underline: SizedBox(),
iconSize: 16,
),
SizedBox(width: 16),
IconButton(
icon: Icon(Icons.arrow_back, size: 18),
onPressed: currentPage > 0
? () => onPageChanged(currentPage - 1)
: null,
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(children: _buildPageButtons()),
),
IconButton(
icon: Icon(Icons.arrow_forward, size: 18),
onPressed: (currentPage + 1) * itemsPerPage < totalItems
? () => onPageChanged(currentPage + 1)
: null,
),
],
);
}
List<Widget> _buildPageButtons() {
final int totalPages = (totalItems / itemsPerPage).ceil();
List<Widget> buttons = [];
// Always show first page
buttons.add(_buildPageButton(0));
// Add left ellipsis if needed
if (currentPage > 2) {
buttons.add(_buildEllipsis());
}
// Add previous, current, next page if in range
for (int i = currentPage - 1; i <= currentPage + 1; i++) {
if (i > 0 && i < totalPages - 1) {
buttons.add(_buildPageButton(i));
}
}
// Add right ellipsis if needed
if (currentPage < totalPages - 3) {
buttons.add(_buildEllipsis());
}
// Always show last page
if (totalPages > 1) {
buttons.add(_buildPageButton(totalPages - 1));
}
return buttons;
}
Widget _buildPageButton(int pageIndex) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
child: ElevatedButton(
onPressed: () => onPageChanged(pageIndex),
style: ElevatedButton.styleFrom(
backgroundColor: currentPage == pageIndex
? Color(0xFFD4F8F3)
: Color(0xFFEDF6F5),
foregroundColor: currentPage == pageIndex
? Colors.black
: Color(0xFF696969),
minimumSize: Size(36, 36),
padding: EdgeInsets.zero,
),
child: Text('${pageIndex + 1}'),
),
);
}
Widget _buildEllipsis() {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 6),
child: Text('...', style: TextStyle(fontSize: 16)),
);
}
}

View File

View File

View File

@ -0,0 +1,88 @@
import 'package:flutter/cupertino.dart';
class Validators {
static String? requiredField(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "$label is required";
}
return null;
}
static String? email(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "Required";
}
final emailRegex = r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$';
if (!RegExp(emailRegex).hasMatch(value)) {
return "Invalid $label"; // 👈 will show: "Invalid Email"
}
return null;
}
static String? passwordSignIn(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "Required";
}
if (value.length < 6) {
return "Enter at least 6 characters";
}
List<String> errors = [];
if (!RegExp(r'[0-9]').hasMatch(value)) errors.add("number");
if (!RegExp(r'[A-Z]').hasMatch(value)) errors.add("uppercase letter");
if (!RegExp(r'[a-z]').hasMatch(value)) errors.add("lowercase letter");
if (!RegExp(r'[!@#\$&*~%^.,?]').hasMatch(value))
errors.add("special character");
if (errors.isNotEmpty) {
return "$label must include ${errors.join(", ")}";
}
return null;
}
static String? passwordlogIn(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "Required";
}
if (value.length < 6) {
return "Enter at least 6 characters";
}
return null;
}
static String? minLength(String? value, String label, int length) {
if (value == null || value.trim().isEmpty) {
return "$label is required";
}
if (value.length < length) {
return "$label must be at least $length characters";
}
return null;
}
static String? number(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "$label is required";
}
if (!RegExp(r'^[0-9]+$').hasMatch(value)) {
return "$label must contain only numbers";
}
return null;
}
static String? phone(String? value, String label) {
if (value == null || value.trim().isEmpty) {
return "Required";
}
if (!RegExp(r'^[0-9]{10}$').hasMatch(value!.trim())) {
return "Enter a valid 10-digit phone number";
}
return null;
}
}

View File

@ -1,4 +1,7 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:nhance_partner/core/routing/routes.dart';
import 'package:nhance_partner/data/services/auth_service.dart';
import '../widgets/topbar.dart';
import '../widgets/footer.dart';
import '../widgets/drawer_menu.dart';
@ -9,11 +12,7 @@ class MainLayout extends StatelessWidget {
final Widget body;
final String title;
const MainLayout({
super.key,
required this.body,
required this.title,
});
const MainLayout({super.key, required this.body, required this.title});
@override
Widget build(BuildContext context) {
@ -48,6 +47,8 @@ class MainLayout extends StatelessWidget {
},
onLogout: () {
debugPrint("Logout tapped");
AuthService.clearToken();
context.go(AppRoutes.login);
},
onProfile: () {
debugPrint("Profile tapped");

View File

@ -0,0 +1,235 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import '../../../data/utils/Pagination.dart';
import '../../layouts/main_layout.dart';
import '../../widgets/custom_action_popup.dart';
// import '../../widgets/custom_dataTable.dart';
class ClaimsList extends StatefulWidget {
const ClaimsList({super.key});
@override
State<ClaimsList> createState() => _ClaimsListState();
}
class _ClaimsListState extends State<ClaimsList> {
int currentPage = 0;
int itemsPerPage = 10;
List<Map<String, dynamic>> dataVal = [
{
"planId": "PLAN-1001",
"tripTitle": "Trip to Bangalore",
"tripType": "Business",
"employeeCode": "EMP200",
"userName": "Alice",
"travellerName": "Traveller 1",
"createdOn": "2025-08-01T10:00:00Z",
"statusValue": "Pending Approval",
"forexId": "FX-501",
},
{
"planId": "PLAN-1002",
"tripTitle": "Trip to Goa",
"tripType": "Leisure",
"employeeCode": "EMP201",
"userName": "",
"travellerName": "Traveller 2",
"createdOn": "2025-08-05T14:30:00Z",
"statusValue": "Approved",
"forexId": null,
},
// ...more dummy data
];
List<Map<String, dynamic>> get paginatedData =>
dataVal.skip(currentPage * itemsPerPage).take(itemsPerPage).toList();
List<Widget> _buildPopupMenuActions(BuildContext context, dynamic data) {
return [
IconButton(
icon: const Icon(
Icons.remove_red_eye,
color: Color(0xFF475569),
size: 18,
),
tooltip: 'View The Trip Details',
onPressed: () {
Navigator.pop(context);
// ApiService.viewPlan(context, plan.planId, isViewMode: true);
},
),
IconButton(
icon: Image.asset(
'assets/images/IconsImg/edit.png',
width: 20,
height: 15,
),
tooltip: 'Edit The Trip Details',
onPressed: () {
Navigator.pop(context);
// ApiService.viewPlan(context, data.planId, isViewMode: false);
},
),
IconButton(
icon: const Icon(Icons.cancel_rounded, size: 18),
tooltip: 'Cancellation The Trip Details',
onPressed: () {
Navigator.pop(context);
// deletePlan(data.planId);
},
),
IconButton(
icon: const Icon(Icons.download, color: Color(0xFF475569), size: 18),
tooltip: 'Download The PDF',
onPressed: () {
Navigator.pop(context);
// apiService.getPdfDownload(data.planId);
},
),
IconButton(
icon: const Icon(
Icons.monetization_on_outlined,
color: Color(0xFF475569),
size: 18,
),
tooltip: 'Download Forex PDF',
onPressed: () {
Navigator.pop(context);
// apiService.getForexPdfDownload(data.forexId);
},
),
];
}
@override
Widget build(BuildContext context) {
return MainLayout(
title: "Claims",
body: Container(
// color: Colors.yellow.shade50,
margin: const EdgeInsets.all(8.0),
child: Column(
children: [
Container(
width: MediaQuery.of(context).size.width,
padding: const EdgeInsets.all(8.0),
// color: Colors.grey.shade200,
// color: Colors.red.shade50,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(
columns: const [
DataColumn(label: Text("S.NO")),
DataColumn(label: Text("Trip ID")),
DataColumn(label: Text("Trip Name")),
DataColumn(label: Text("Trip Type")),
DataColumn(label: Text("Emp Code")),
DataColumn(label: Text("Traveller")),
DataColumn(label: Text("Created On")),
DataColumn(label: Text("Actions")),
],
rows: paginatedData.asMap().entries.map((entry) {
int index = entry.key;
var data = entry.value;
String createdOn = "";
final rawDateStr = data["createdOn"];
if (rawDateStr != null &&
rawDateStr.toString().isNotEmpty) {
try {
final parsed = DateTime.parse(rawDateStr);
createdOn = DateFormat("d MMM yyyy").format(parsed);
} catch (_) {
createdOn = rawDateStr.toString().split(" ").first;
}
}
return DataRow(
cells: [
DataCell(
Text("${(currentPage * itemsPerPage) + index + 1}"),
),
DataCell(Text(data["planId"] ?? "-")),
DataCell(Text(data["tripTitle"] ?? "-")),
DataCell(Text(data["tripType"] ?? "-")),
DataCell(Text(data["employeeCode"] ?? "-")),
DataCell(
Text(
(data["userName"] != null &&
data["userName"].toString().isNotEmpty)
? data["userName"]
: data["travellerName"] ?? "-",
),
),
DataCell(Text(createdOn)),
DataCell(
Row(
children: [
PopupMenuButton<int>(
color: Colors.white,
padding: EdgeInsets.zero,
offset: Offset(0, 30),
icon: Icon(
Icons.more_vert,
color: Color(0xFF475569),
size: 14,
),
itemBuilder: (context) => [
CustomPopupMenuEntry(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 8,
vertical: 8,
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.center,
children: _buildPopupMenuActions(
context,
data,
),
),
),
),
],
),
],
),
),
],
);
}).toList(),
),
),
),
PaginationControls(
currentPage: currentPage,
itemsPerPage: itemsPerPage,
totalItems: dataVal.length,
// activeColor: layoutColor, // your theme color
onPageChanged: (page) {
setState(() {
currentPage = page;
});
},
onItemsPerPageChanged: (items) {
setState(() {
itemsPerPage = items;
currentPage = 0;
});
},
),
],
),
),
);
}
}

View File

@ -1,8 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
import 'package:nhance_partner/data/utils/validators.dart';
import '../../../core/config/env.dart';
import '../../../core/routing/routes.dart';
import '../../../data/services/auth_service.dart';
import '../../themes/indicators/text_field_theme.dart';
class LoginScreen extends StatefulWidget {
const LoginScreen({super.key});
@ -28,21 +31,30 @@ class _LoginScreenState extends State<LoginScreen> {
await Future.delayed(const Duration(seconds: 2));
// TODO: Replace with your AuthService
final success = _emailController.text == "test@example.com" &&
final success =
_emailController.text == "test@example.com" &&
_passwordController.text == "password";
setState(() => _isLoading = false);
print("Succes - $success");
if (success) {
print("Ckeck 1");
if (mounted) {
print("Ckeck 2");
await AuthService.saveToken('1234');
final dynamic token = AuthService.saveToken('1234');
print('token - $token');
print('AppRoutes.home');
context.go(AppRoutes.home);
print("Ckeck 3");
}
} else {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("Invalid credentials")),
);
ScaffoldMessenger.of(
context,
).showSnackBar(const SnackBar(content: Text("Invalid credentials")));
}
}
}
@ -58,15 +70,15 @@ class _LoginScreenState extends State<LoginScreen> {
padding: const EdgeInsets.all(16.0),
decoration: isWeb
? BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
blurRadius: 12,
color: Colors.black.withOpacity(0.1),
),
],
)
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
blurRadius: 12,
color: Colors.black.withOpacity(0.1),
),
],
)
: null,
child: Form(
key: _formKey,
@ -74,11 +86,7 @@ class _LoginScreenState extends State<LoginScreen> {
mainAxisSize: MainAxisSize.min,
children: [
// App Logo
Image.asset(
'assets/logo.png',
width: 80,
height: 80,
),
Image.asset('assets/logo.png', width: 80, height: 80),
const SizedBox(height: 20),
// Environment label
@ -88,53 +96,36 @@ class _LoginScreenState extends State<LoginScreen> {
),
const SizedBox(height: 20),
// Email
TextFormField(
ThemedFormField(
hintText: 'Email',
backgroundColor: Colors.white,
validator: (value) => Validators.email(value, "Email"),
// imgPath: "MiscIconAssetPath.person",
controller: _emailController,
decoration: const InputDecoration(
labelText: "Email",
prefixIcon: Icon(Icons.email),
),
validator: (value) {
if (value == null || value.isEmpty) {
return "Please enter your email";
}
if (!RegExp(r"^[^@]+@[^@]+\.[^@]+").hasMatch(value)) {
return "Enter a valid email";
}
return null;
},
// txtwidth: MediaQuery.of(context).size.width * 0.5,
// keyboardType: TextInputType.number,
// maxLength: 10,
// inputFormatters: [FilteringTextInputFormatter.digitsOnly],
// readOnly: true,
),
const SizedBox(height: 16),
ThemedFormField(
hintText: 'Password',
backgroundColor: Colors.white,
validator: (value) =>
Validators.passwordlogIn(value, "Password"),
// imgPath: "MiscIconAssetPath.person",
controller: _passwordController,
isObscurable: true,
// txtwidth: MediaQuery.of(context).size.width * 0.5,
// keyboardType: TextInputType.number,
// maxLength: 10,
// inputFormatters: [FilteringTextInputFormatter.digitsOnly],
// readOnly: true,
),
// Password
TextFormField(
controller: _passwordController,
obscureText: _obscurePassword,
decoration: InputDecoration(
labelText: "Password",
prefixIcon: const Icon(Icons.lock),
suffixIcon: IconButton(
icon: Icon(
_obscurePassword
? Icons.visibility
: Icons.visibility_off,
),
onPressed: () {
setState(() => _obscurePassword = !_obscurePassword);
},
),
),
validator: (value) {
if (value == null || value.isEmpty) {
return "Please enter your password";
}
if (value.length < 6) {
return "Password must be at least 6 characters";
}
return null;
},
),
const SizedBox(height: 24),
// Login Button
@ -144,14 +135,15 @@ class _LoginScreenState extends State<LoginScreen> {
onPressed: _isLoading ? null : _handleLogin,
child: _isLoading
? const SizedBox(
height: 20,
width: 20,
child: CircularProgressIndicator(
strokeWidth: 2,
valueColor:
AlwaysStoppedAnimation<Color>(Colors.white),
),
)
height: 20,
width: 20,
child: CircularProgressIndicator(
strokeWidth: 2,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.white,
),
),
)
: const Text("Login"),
),
),

View File

@ -0,0 +1,123 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
// import 'package:uae_stat/config/my_theme.dart';
class ThemedFormField extends HookWidget {
const ThemedFormField({
super.key,
required this.hintText,
this.imgPath,
this.txtwidth,
required this.controller,
this.validator,
this.isObscurable = false,
this.hintColor,
this.backgroundColor,
this.borderColor,
this.errorBorderColor,
this.errorTextColor,
this.readOnly = false, // new
this.keyboardType, // new
this.maxLength, // new
this.inputFormatters,
});
final String hintText;
final String? imgPath;
final String? Function(String? text)? validator;
final TextEditingController controller;
final bool isObscurable;
final Color? hintColor;
final Color? backgroundColor;
final Color? borderColor;
final Color? errorBorderColor;
final Color? errorTextColor;
final double? txtwidth;
final bool readOnly;
final TextInputType? keyboardType;
final int? maxLength;
final List<TextInputFormatter>? inputFormatters;
@override
Widget build(BuildContext context) {
final isObscured = useState<bool>(true);
final boxDecoration = BoxDecoration(
borderRadius: BorderRadius.circular(10),
);
final obscureBtn = IconButton(
onPressed: () => isObscured.value = !isObscured.value,
icon: Icon(
isObscured.value
? Icons.visibility_off_outlined
: Icons.visibility_outlined,
color: const Color(0xff9EA2A9),
),
);
final inputDecoration = InputDecoration(
errorStyle: TextStyle(color: const Color(0xFFD83731)),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: const Color(0xFFD83731), width: 1),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: const Color(0xFFD83731), width: 1),
),
filled: true,
fillColor: backgroundColor ?? Colors.white,
contentPadding: const EdgeInsets.symmetric(vertical: 14, horizontal: 15),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: Color(0xFF50A398)),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: Color(0xFF50A398)),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: Color(0xFF50A398), width: 2),
),
hintText: hintText,
hintStyle: TextStyle(
// dynamic hint color
color: const Color(0xFFC3C6CB),
),
prefixIconConstraints: const BoxConstraints(
maxWidth: 25 + 16 + 10,
maxHeight: 25 + (8 * 2),
),
prefixIcon: imgPath != null
? Padding(
padding: const EdgeInsetsDirectional.only(start: 16, end: 10),
child: Image.asset(
imgPath!,
fit: BoxFit.fitHeight,
height: 25,
width: 25,
),
)
: null,
suffixIcon: isObscurable ? obscureBtn : null,
);
return Container(
width: txtwidth ?? MediaQuery.of(context).size.width,
child: DecoratedBox(
decoration: boxDecoration,
child: TextFormField(
controller: controller,
decoration: inputDecoration,
validator: validator,
obscureText: isObscurable && isObscured.value,
readOnly: readOnly, // now supported
keyboardType: keyboardType, // e.g. TextInputType.number
maxLength: maxLength, // max length
inputFormatters: inputFormatters,
),
),
);
}
}

View File

@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
class CustomPopupMenuEntry extends PopupMenuEntry<int> {
final Widget child;
CustomPopupMenuEntry({required this.child});
@override
double get height => 0; // 0 because height depends on child
@override
bool represents(int? value) => false;
@override
State<StatefulWidget> createState() => _CustomPopupMenuEntryState();
}
class _CustomPopupMenuEntryState extends State<CustomPopupMenuEntry> {
@override
Widget build(BuildContext context) {
return IntrinsicHeight(
// <-- wrap with IntrinsicHeight
child: widget.child,
);
}
}

View File

@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
// import 'package:google_fonts/google_fonts.dart';
class CustomPaginatedTable extends StatelessWidget {
final List<DataColumn> columns;
final List<DataRow> rows;
final int currentPage;
final int itemsPerPage;
final bool isDesktop;
const CustomPaginatedTable({
super.key,
required this.columns,
required this.rows,
required this.currentPage,
required this.itemsPerPage,
this.isDesktop = false,
});
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
// double minWidth = isDesktop ? MediaQuery.of(context).size.width : 1300;
double minWidth = isDesktop ? constraints.maxWidth : 1300;
return SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: ConstrainedBox(
// width: MediaQuery.of(context).size.width * 0.8,
constraints: BoxConstraints(minWidth: minWidth),
child: DataTable(
dividerThickness: 0.5,
// columnSpacing: isDesktop ? 24.0 : 16.0,
border: TableBorder(
horizontalInside: BorderSide(
width: 0.5,
// color: Colors.grey.shade200,
),
),
columns: columns,
rows: rows,
),
),
),
);
},
);
}
}

View File

@ -246,6 +246,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_hooks:
dependency: "direct main"
description:
name: flutter_hooks
sha256: "8ae1f090e5f4ef5cfa6670ce1ab5dddadd33f3533a7f9ba19d9f958aa2a89f42"
url: "https://pub.dev"
source: hosted
version: "0.21.3+1"
flutter_lints:
dependency: "direct dev"
description:
@ -352,6 +360,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "16.1.0"
google_fonts:
dependency: "direct main"
description:
name: google_fonts
sha256: ebc94ed30fd13cefd397cb1658b593f21571f014b7d1197eeb41fb95f05d899a
url: "https://pub.dev"
source: hosted
version: "6.3.1"
graphs:
dependency: transitive
description:
@ -384,6 +400,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.2"
intl:
dependency: "direct main"
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
version: "0.20.2"
io:
dependency: transitive
description:
@ -879,4 +903,4 @@ packages:
version: "3.1.3"
sdks:
dart: ">=3.8.1 <4.0.0"
flutter: ">=3.27.0"
flutter: ">=3.32.0"

View File

@ -44,6 +44,9 @@ dependencies:
connectivity_plus: ^6.1.5
responsive_framework: ^1.5.1
flutter_secure_storage: ^9.2.4
google_fonts: ^6.3.1
intl: ^0.20.2
flutter_hooks: ^0.21.3+1
dev_dependencies:
flutter_test: