Commit d7d1ef94 by Rizal Hermawan

feat (method listener): implement method listener on example project. Story #1

parent de6aec6d
......@@ -25,7 +25,7 @@
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
# .packages
.pub-cache/
.pub/
build/
......
# This file is deprecated. Tools should instead consume
# `.dart_tools/package_config.json`.
#
# For more info see: https://dart.dev/go/dot-packages-deprecation
#
# Generated by pub on 2021-04-29 12:30:25.427215.
async:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/async-2.5.0/lib/
boolean_selector:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib/
characters:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0/lib/
charcode:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0/lib/
clock:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib/
collection:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0/lib/
fake_async:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0/lib/
flutter:file:///D:/flutter/2.0.4-stable/packages/flutter/lib/
flutter_test:file:///D:/flutter/2.0.4-stable/packages/flutter_test/lib/
matcher:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10/lib/
meta:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib/
path:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/
sky_engine:file:///D:/flutter/2.0.4-stable/bin/cache/pkg/sky_engine/lib/
source_span:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0/lib/
stack_trace:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib/
stream_channel:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib/
string_scanner:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib/
term_glyph:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib/
test_api:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19/lib/
typed_data:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0/lib/
vector_math:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0/lib/
llswidget:lib/
......@@ -26,7 +26,7 @@
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
# .packages
.pub-cache/
.pub/
/build/
......
# This file is deprecated. Tools should instead consume
# `.dart_tools/package_config.json`.
#
# For more info see: https://dart.dev/go/dot-packages-deprecation
#
# Generated by pub on 2021-06-02 14:09:44.544419.
async:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/async-2.5.0/lib/
bloc:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/bloc-7.0.0/lib/
boolean_selector:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib/
characters:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0/lib/
charcode:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0/lib/
clock:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib/
collection:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0/lib/
cupertino_icons:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.2/lib/
equatable:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/equatable-1.1.1/lib/
fake_async:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0/lib/
flutter:file:///D:/flutter/2.0.4-stable/packages/flutter/lib/
flutter_bloc:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/flutter_bloc-7.0.1/lib/
flutter_test:file:///D:/flutter/2.0.4-stable/packages/flutter_test/lib/
font_awesome_flutter:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/font_awesome_flutter-9.0.0/lib/
http:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/
http_parser:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib/
llswidget:../lib/
matcher:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10/lib/
meta:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib/
nested:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/nested-1.0.0/lib/
path:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/
pedantic:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/pedantic-1.11.0/lib/
provider:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/provider-5.0.0/lib/
responsive_framework:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.0/lib/
sky_engine:file:///D:/flutter/2.0.4-stable/bin/cache/pkg/sky_engine/lib/
source_span:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0/lib/
stack_trace:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib/
stream_channel:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib/
string_scanner:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib/
term_glyph:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib/
test_api:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19/lib/
typed_data:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0/lib/
vector_math:file:///D:/flutter/2.0.4-stable/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0/lib/
widgetparser:../../widgetparser/lib/
demo_package_ui_semantic:lib/
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
part 'test_event.dart';
part 'test_state.dart';
class TestBloc extends Bloc<TestEvent, TestState> {
TestBloc() : super(TestInitial());
@override
Stream<TestState> mapEventToState(
TestEvent event,
) async* {
}
}
part of 'test_bloc.dart';
@immutable
abstract class TestEvent {}
part of 'test_bloc.dart';
@immutable
abstract class TestState {}
class TestInitial extends TestState {}
part 'shared_method.dart';
\ No newline at end of file
part of 'helpers.dart';
void printWrapped(String text) {
final pattern = new RegExp('.{1,800}');
pattern.allMatches(text).forEach((match) => print(match.group(0)));
}
\ No newline at end of file
......@@ -3,6 +3,11 @@ import 'package:responsive_framework/responsive_framework.dart';
import 'route_generator.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
FlutterError.onError = (FlutterErrorDetails details) {
print("Error : ${details.exception}");
print("StackTrace : ${details.stack}");
};
runApp(MyApp());
}
......
......@@ -21,6 +21,10 @@ class RouteGenerator {
return MaterialPageRoute(builder: (_) => RoundedButtonPage());
case SquareButtonPage.routeName:
return MaterialPageRoute(builder: (_) => SquareButtonPage());
case ButtonsPageDynamic.routeName:
return MaterialPageRoute(builder: (_) => ButtonsPageDynamic());
case TestStatePage.routeName:
return MaterialPageRoute(builder: (_) => TestStatePage());
default:
// If there is no such named route in the switch statement
return MaterialPageRoute(builder: (context) {
......
......@@ -7,134 +7,176 @@ class ButtonsPageDynamic extends StatefulWidget {
_ButtonsPageDynamicState createState() => _ButtonsPageDynamicState();
}
class _ButtonsPageDynamicState extends State<ButtonsPage> {
final buttonJsonFormat = '';
class _ButtonsPageDynamicState extends State<ButtonsPageDynamic> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: LLSColors.PRIMARY,
leading: InkWell(
onTap: () {
Navigator.of(context).pop();
void initState() {
super.initState();
}
final pageJson = '''
{
"widget": "Scaffold",
"appBar": {
"widget": "AppBar",
"centerTitle": true,
"backgroundColor": "lls_primary",
"title": {
"widget": "Text",
"data": "Buttons (dynamic)",
"style": {
"fontSize": 17.0
}
},
"leading": {
"widget": "InkWell",
"onTap": {
"func_name": "goToBack"
},
"child": {
"widget": "Container",
"child": {
"widget": "Icon",
"data": "ios.back",
"color": "lls_white"
}
}
}
},
"body": {
"widget": "ListView",
"children": [
{
"widget": "SizedBox",
"height": 20.0
},
{
"widget": "GestureDetector",
"onTap": {
"func_name": "goToStandardButtonPage"
},
child: Container(
child: Icon(
CupertinoIcons.back,
color: LLSColors.WHITE,
),
),
),
title: const Text(
'Buttons (dynamic from json)',
style: TextStyle(fontSize: 17),
),
centerTitle: true,
),
body: ListView(
children: <Widget>[
const SizedBox(
height: 20,
),
GestureDetector(
onTap: () {
Navigator.of(context).pushNamed(
StandardsButtonPage.routeName
);
},
child: Container(
margin: const EdgeInsets.only(left: 15, right: 15, top: 20),
padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(7)),
color: LLSColors.SECONDARY,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.40),
blurRadius: 5
)
]
),
child: LLSListTile(
color: LLSColors.SECONDARY,
title: const Text(
'Standards Buttons',
style: TextStyle(color: LLSColors.WHITE),
),
icon: Icon(
CupertinoIcons.forward,
color: LLSColors.WHITE,
)
),
)
),
GestureDetector(
onTap: () {
Navigator.of(context).pushNamed(
RoundedButtonPage.routeName
);
},
child: Container(
margin: const EdgeInsets.only(left: 15, right: 15, top: 20),
padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(7)),
color: LLSColors.SECONDARY,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.40),
blurRadius: 5
)
]
),
child: LLSListTile(
color: LLSColors.SECONDARY,
title: const Text(
'Rounded Buttons',
style: TextStyle(color: LLSColors.WHITE),
),
icon: Icon(
CupertinoIcons.forward,
color: LLSColors.WHITE,
)
),
)
),
GestureDetector(
onTap: () {
Navigator.of(context).pushNamed(
SquareButtonPage.routeName
);
"child": {
"widget": "Container",
"margin": "15,20,15,0",
"padding": "5,5,5,5",
"decoration": {
"borderRadius": {
"borderRadiusMethod": "circular",
"radiusMap": {
"all_directions": 7.0
}
},
"color": "lls_secondary",
"boxShadow": [
{
"color": "lls_dark,withOpacity,0.40",
"blurRadius": 5.0
}
]
},
child: Container(
margin: const EdgeInsets.only(left: 15, right: 15, top: 20),
padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(7)),
color: LLSColors.SECONDARY,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.40),
blurRadius: 5
)
]
"child": {
"widget": "LLSListTile",
"color": "lls_secondary",
"title": {
"widget": "Text",
"data": "Standards Buttons",
"style": {
"color": "lls_white"
}
},
"icon": {
"widget": "Icon",
"data": "ios.forward",
"color": "lls_white"
}
}
}
}
]
}
}
''';
Future<Widget?> _buildWidget(BuildContext context) async {
try {
return WidgetParserBuilder.build(pageJson, context, ButtonsPageMethodListener());
} catch (e) {
String err = e.toString();
print(err);
return _buildErrorPage("Page Rendering is Error. $err");
}
}
Widget _buildErrorPage(String error) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
error,
style: TextStyle(fontSize: 14),
),
child: LLSListTile(
color: LLSColors.SECONDARY,
title: const Text(
'Square Buttons',
style: TextStyle(color: LLSColors.WHITE),
),
icon: Icon(
CupertinoIcons.forward,
color: LLSColors.WHITE,
)
),
const SizedBox(
height: 15
),
LLSButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text(
'Back',
style: TextStyle(fontSize: 16),
),
)
)
]
type: LLSButtonType.outline,
color: LLSColors.SUCCESS,
),
]
),
)
);
}
@override
Widget build(BuildContext context) {
return FutureBuilder<Widget?>(
future: _buildWidget(context),
builder: (BuildContext context, AsyncSnapshot<Widget?> snapshot) {
if (snapshot.hasError) {
return _buildErrorPage(snapshot.error.toString());
}
return snapshot.hasData ? snapshot.data! : Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator()
]
),
)
);
},
);
}
}
class ButtonsPageMethodListener extends MethodListener {
@override
void run(BuildContext context, Map<String, dynamic>? event) {
if (isFunctionNameExist(event)) {
if (event!['func_name'] == 'goToStandardButtonPage') {
Navigator.of(context).pushNamed(
StandardsButtonPage.routeName
);
} else if (event['func_name'] == 'goToBack') {
Navigator.of(context).pop();
}
} else {
print("receiver event: ${event.toString()}");
}
}
}
\ No newline at end of file
......@@ -8,31 +8,25 @@ class MainPage extends StatefulWidget {
}
class _MainPageState extends State<MainPage> {
final uri = Uri.dataFromString(
'''
void main() {
print("Hellooooooo from the other side!");
}
''',
mimeType: 'application/dart',
);
List components = [
{
'icon': Icons.smart_button,
'title': 'Buttons',
'route': '/buttons_page/buttons_page',
'route_dynamic': '/buttons_page/buttons_page_dynamic'
},
{
'icon': Icons.label,
'title': 'Label',
'route': '/label_page/label_page',
'route_dynamic': '/label_page/label_page_dynamic'
},
{
'title': 'Test State & API',
'route': '',
'route_dynamic': '/test_state_page'
}
];
Widget buildSquareTile(String title, IconData icon, String route, String routeDynamic) => InkWell(
Widget buildSquareTile(String title, String route, String routeDynamic) => InkWell(
onTap: () {
ActionSheet.material(
context,
......@@ -45,10 +39,9 @@ class _MainPageState extends State<MainPage> {
},
() async {
Navigator.of(context).pop();
// Navigator.of(context).pushNamed(
// routeDynamic
// );
await Isolate.spawnUri(uri, [], null);
Navigator.of(context).pushNamed(
routeDynamic
);
},
"Static",
"Dynamic from JSON",
......@@ -70,13 +63,8 @@ class _MainPageState extends State<MainPage> {
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
icon,
color: LLSColors.LIGHT,
size: 50,
),
Text(
title,
style: const TextStyle(color: LLSColors.WHITE, fontSize: 18),
......@@ -114,7 +102,7 @@ class _MainPageState extends State<MainPage> {
physics: const ScrollPhysics(),
itemCount: components.length,
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisCount: 4,
crossAxisSpacing: 20,
mainAxisSpacing: 20
),
......@@ -132,10 +120,9 @@ class _MainPageState extends State<MainPage> {
},
() async {
Navigator.of(context).pop();
// Navigator.of(context).pushNamed(
// components[index]['route_dynamic']
// );
await Isolate.spawnUri(uri, [], null);
Navigator.of(context).pushNamed(
components[index]['route_dynamic']
);
},
"Static",
"Dynamic from JSON",
......@@ -146,7 +133,6 @@ class _MainPageState extends State<MainPage> {
},
child: buildSquareTile(
components[index]['title'],
components[index]['icon'],
components[index]['route'],
components[index]['route_dynamic']
)
......@@ -157,32 +143,4 @@ class _MainPageState extends State<MainPage> {
)
);
}
}
// return Scaffold(
// appBar: AppBar(
// backgroundColor: LLSColors.DARK,
// leading: InkWell(
// onTap: () {
// Navigator.of(context).pop();
// },
// child: Icon(
// Icons.arrow_back_ios,
// color: LLSColors.SUCCESS,
// ),
// ),
// title: const Text(
// 'Standard Buttons',
// style: TextStyle(fontSize: 17),
// ),
// centerTitle: true,
// ),
// body: LLSButton(
// onPressed: () {},
// shape: LLSButtonShape.standard,
// child: const Text('Primary',
// style: TextStyle(color: LLSColors.WHITE)
// ),
// color: LLSColors.PRIMARY,
// ),
// );
\ No newline at end of file
}
\ No newline at end of file
import 'dart:isolate';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:llswidget/llswidget.dart';
import 'package:flutter/widgets.dart';
import 'package:widgetparser/widgetparser.dart';
import 'package:demo_package_ui_semantic/ui/widgets/widgets.dart';
import 'package:demo_package_ui_semantic/helpers/helpers.dart';
part 'main_page.dart';
part 'buttons_page/buttons_page.dart';
......@@ -14,4 +14,5 @@ part 'buttons_page/standards_button_page.dart';
part 'label_page/label_page.dart';
part 'list_tile_page/list_tile_page.dart';
part 'buttons_page/rounded_button_page.dart';
part 'buttons_page/square_button_page.dart';
\ No newline at end of file
part 'buttons_page/square_button_page.dart';
part 'test_state_page.dart';
\ No newline at end of file
part of 'pages.dart';
class TestStatePage extends StatefulWidget {
static const routeName = '/test_state_page';
@override
_TestStatePageState createState() => _TestStatePageState();
}
class _TestStatePageState extends State<TestStatePage> {
@override
void initState() {
super.initState();
}
final pageJson = '''
{
"widget": "Scaffold",
"appBar": {
"widget": "AppBar",
"centerTitle": true,
"backgroundColor": "lls_primary",
"title": {
"widget": "Text",
"data": "Buttons (dynamic)",
"style": {
"fontSize": 17.0
}
},
"leading": {
"widget": "InkWell",
"onTap": {
"func_name": "goToBack"
},
"child": {
"widget": "Container",
"child": {
"widget": "Icon",
"data": "ios.back",
"color": "lls_white"
}
}
}
},
"body": {
"widget": "ListView",
"children": [
{
"widget": "SizedBox",
"height": 20.0
},
{
"widget": "GestureDetector",
"onTap": {
"func_name": "goToStandardButtonPage"
},
"child": {
"widget": "Container",
"margin": "15,20,15,0",
"padding": "5,5,5,5",
"decoration": {
"borderRadius": {
"borderRadiusMethod": "circular",
"radiusMap": {
"all_directions": 7.0
}
},
"color": "lls_secondary",
"boxShadow": [
{
"color": "lls_dark,withOpacity,0.40",
"blurRadius": 5.0
}
]
},
"child": {
"widget": "LLSListTile",
"color": "lls_secondary",
"title": {
"widget": "Text",
"data": "Standards Buttons",
"style": {
"color": "lls_white"
}
},
"icon": {
"widget": "Icon",
"data": "ios.forward",
"color": "lls_white"
}
}
}
}
]
}
}
''';
Future<Widget?> _buildWidget(BuildContext context) async {
try {
return WidgetParserBuilder.build(pageJson, context, MethodListener());
} catch (e) {
String err = e.toString();
print(err);
return _buildErrorPage("Page Rendering is Error. $err");
}
}
Widget _buildErrorPage(String error) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
error,
style: TextStyle(fontSize: 14),
),
),
const SizedBox(
height: 15
),
LLSButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text(
'Back',
style: TextStyle(fontSize: 16),
),
type: LLSButtonType.outline,
color: LLSColors.SUCCESS,
),
]
),
)
);
}
@override
Widget build(BuildContext context) {
return FutureBuilder<Widget?>(
future: _buildWidget(context),
builder: (BuildContext context, AsyncSnapshot<Widget?> snapshot) {
if (snapshot.hasError) {
return _buildErrorPage(snapshot.error.toString());
}
return snapshot.hasData ? snapshot.data! : Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator()
]
),
)
);
},
);
}
}
\ No newline at end of file
......@@ -8,6 +8,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.5.0"
bloc:
dependency: transitive
description:
name: bloc
url: "https://pub.dartlang.org"
source: hosted
version: "7.0.0"
boolean_selector:
dependency: transitive
description:
......@@ -50,6 +57,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
equatable:
dependency: "direct main"
description:
name: equatable
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
fake_async:
dependency: transitive
description:
......@@ -62,6 +76,13 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
url: "https://pub.dartlang.org"
source: hosted
version: "7.0.1"
flutter_test:
dependency: "direct dev"
description: flutter
......@@ -75,19 +96,19 @@ packages:
source: hosted
version: "9.0.0"
http:
dependency: transitive
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.1"
version: "0.12.2"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.0"
version: "3.1.4"
llswidget:
dependency: "direct main"
description:
......@@ -95,13 +116,6 @@ packages:
relative: true
source: path
version: "0.0.1"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
matcher:
dependency: transitive
description:
......@@ -116,6 +130,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
path:
dependency: transitive
description:
......@@ -130,6 +151,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.0"
provider:
dependency: transitive
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.0"
responsive_framework:
dependency: "direct main"
description:
......@@ -204,7 +232,7 @@ packages:
path: "../../widgetparser"
relative: true
source: path
version: "0.1.0"
version: "0.0.1"
sdks:
dart: ">=2.12.0 <3.0.0"
flutter: ">=1.17.0"
......@@ -28,6 +28,9 @@ dependencies:
responsive_framework: ^0.1.0
widgetparser:
path: ../../widgetparser
flutter_bloc: 7.0.1
equatable: 1.1.1
http: 0.12.2
# The following adds the Cupertino Icons font to your application.
......
......@@ -2,7 +2,6 @@ library llswidget;
// package LLSWidget
// author Rizal Hermawan <rizal.hermawan@locatorlogic.com>
// copyright 2021 https://locatorlogic.com
//exports button
export 'package:llswidget/src/components/button/lls_button.dart';
......
......@@ -16,4 +16,4 @@ enum LLSLabelType {
// LLSLabelType.typo6 type used for title widget with fontSize = 13.0
typo6,
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment