From d833de11d03909feb359f5a2e5fb7a7c73e0fd57 Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Mon, 8 Feb 2021 11:26:29 +0700 Subject: [PATCH 001/286] add custom --- lib/html_parser.dart | 7 ++++--- lib/src/interactable_element.dart | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/html_parser.dart b/lib/html_parser.dart index e728ee7f6a..3ce9d0f08e 100644 --- a/lib/html_parser.dart +++ b/lib/html_parser.dart @@ -16,6 +16,7 @@ import 'package:html/parser.dart' as htmlparser; import 'package:webview_flutter/webview_flutter.dart'; typedef OnTap = void Function(String url); +typedef OnLinkTap = void Function(String url, String onEventClick); typedef CustomRender = dynamic Function( RenderContext context, Widget parsedChild, @@ -25,7 +26,7 @@ typedef CustomRender = dynamic Function( class HtmlParser extends StatelessWidget { final String htmlData; - final OnTap onLinkTap; + final OnLinkTap onLinkTap; final OnTap onImageTap; final ImageErrorListener onImageError; final bool shrinkWrap; @@ -349,7 +350,7 @@ class HtmlParser extends StatelessWidget { : childStyle.merge(childSpan.style)), semanticsLabel: childSpan.semanticsLabel, recognizer: TapGestureRecognizer() - ..onTap = () => onLinkTap?.call(tree.href), + ..onTap = () => onLinkTap?.call(tree.href, tree.onClick), ); } else { return WidgetSpan( @@ -360,7 +361,7 @@ class HtmlParser extends StatelessWidget { MultipleTapGestureRecognizer>( () => MultipleTapGestureRecognizer(), (instance) { - instance..onTap = () => onLinkTap?.call(tree.href); + instance..onTap = () => onLinkTap?.call(tree.href, tree.onClick); }, ), }, diff --git a/lib/src/interactable_element.dart b/lib/src/interactable_element.dart index e19351df94..21100224fc 100644 --- a/lib/src/interactable_element.dart +++ b/lib/src/interactable_element.dart @@ -12,6 +12,7 @@ class InteractableElement extends StyledElement { List children, Style style, this.href, + this.onClick, dom.Node node, }) : super(name: name, children: children, style: style, node: node); } @@ -36,6 +37,7 @@ InteractableElement parseInteractableElement( color: Colors.blue, textDecoration: TextDecoration.underline, ); + interactableElement.onClick = element.attributes['onclick']; break; } From 062d2fd9fb63d1707434adc9f6fdb353c2457755 Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Mon, 8 Feb 2021 11:28:26 +0700 Subject: [PATCH 002/286] update sample --- example/lib/main.dart | 2 +- lib/flutter_html.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index eda1888c5c..37300a0cfc 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -185,7 +185,7 @@ class _MyHomePageState extends State { ); }, }, - onLinkTap: (url) { + onLinkTap: (url, event) { print("Opening $url..."); }, onImageTap: (src) { diff --git a/lib/flutter_html.dart b/lib/flutter_html.dart index b90e8459ee..2290177626 100644 --- a/lib/flutter_html.dart +++ b/lib/flutter_html.dart @@ -45,7 +45,7 @@ class Html extends StatelessWidget { }) : super(key: key); final String data; - final OnTap onLinkTap; + final OnLinkTap onLinkTap; final ImageErrorListener onImageError; final bool shrinkWrap; From 1719cfe8b0b78ed2476f9b31395d44fe4e588e24 Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Mon, 8 Feb 2021 12:13:15 +0700 Subject: [PATCH 003/286] add missing param --- lib/src/interactable_element.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/interactable_element.dart b/lib/src/interactable_element.dart index 21100224fc..fc766fa56d 100644 --- a/lib/src/interactable_element.dart +++ b/lib/src/interactable_element.dart @@ -6,6 +6,7 @@ import 'package:html/dom.dart' as dom; /// An [InteractableElement] is a [StyledElement] that takes user gestures (e.g. tap). class InteractableElement extends StyledElement { String href; + String onClick; InteractableElement({ String name, From bf70b7c291dd3a535880136743ce7e576fe1377f Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Thu, 18 Feb 2021 09:59:06 +0700 Subject: [PATCH 004/286] add maxline --- lib/html_parser.dart | 1 + lib/style.dart | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/html_parser.dart b/lib/html_parser.dart index 3ce9d0f08e..fffefdc2a5 100644 --- a/lib/html_parser.dart +++ b/lib/html_parser.dart @@ -787,6 +787,7 @@ class StyledText extends StatelessWidget { textAlign: style.textAlign, textDirection: style.direction, textScaleFactor: textScaleFactor, + maxLines: style.maxLine, ), ); } diff --git a/lib/style.dart b/lib/style.dart index 65eb39469e..6c979973e7 100644 --- a/lib/style.dart +++ b/lib/style.dart @@ -175,6 +175,13 @@ class Style { Alignment alignment; String markerContent; + /// MaxLine + /// + /// + /// + /// + int maxLine; + Style({ this.backgroundColor = Colors.transparent, this.color, @@ -207,6 +214,7 @@ class Style { this.border, this.alignment, this.markerContent, + this.maxLine, }) { if (this.alignment == null && (display == Display.BLOCK || display == Display.LIST_ITEM)) { @@ -280,6 +288,7 @@ class Style { //TODO merge border alignment: other.alignment, markerContent: other.markerContent, + maxLine: other.maxLine, ); } @@ -347,6 +356,7 @@ class Style { Border border, Alignment alignment, String markerContent, + int maxLine, }) { return Style( backgroundColor: backgroundColor ?? this.backgroundColor, @@ -381,6 +391,7 @@ class Style { border: border ?? this.border, alignment: alignment ?? this.alignment, markerContent: markerContent ?? this.markerContent, + maxLine: maxLine ?? this.maxLine, ); } From aa56c6084dd9b852e6de86e68815d266b89017f7 Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Thu, 18 Feb 2021 10:02:39 +0700 Subject: [PATCH 005/286] add overflow in text --- lib/html_parser.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/html_parser.dart b/lib/html_parser.dart index fffefdc2a5..0752db01b6 100644 --- a/lib/html_parser.dart +++ b/lib/html_parser.dart @@ -788,6 +788,7 @@ class StyledText extends StatelessWidget { textDirection: style.direction, textScaleFactor: textScaleFactor, maxLines: style.maxLine, + overflow: TextOverflow.ellipsis, ), ); } From 8ca2aad583e2ba49c8fead65ab80eba4d5cf34fc Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Thu, 18 Feb 2021 10:16:24 +0700 Subject: [PATCH 006/286] fix maxline --- lib/style.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/style.dart b/lib/style.dart index 6c979973e7..e1d20b7456 100644 --- a/lib/style.dart +++ b/lib/style.dart @@ -288,6 +288,7 @@ class Style { //TODO merge border alignment: other.alignment, markerContent: other.markerContent, + maxLine: other.maxLine, ); } @@ -321,6 +322,7 @@ class Style { textShadow: child.textShadow ?? textShadow, whiteSpace: child.whiteSpace ?? whiteSpace, wordSpacing: child.wordSpacing ?? wordSpacing, + maxLine: child.maxLine ?? maxLine, ); } From b06c883d5269dd04af40292303b690640b988f27 Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Thu, 18 Feb 2021 10:22:32 +0700 Subject: [PATCH 007/286] add text overflow --- lib/html_parser.dart | 2 +- lib/style.dart | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/html_parser.dart b/lib/html_parser.dart index 0752db01b6..f29081ee87 100644 --- a/lib/html_parser.dart +++ b/lib/html_parser.dart @@ -788,7 +788,7 @@ class StyledText extends StatelessWidget { textDirection: style.direction, textScaleFactor: textScaleFactor, maxLines: style.maxLine, - overflow: TextOverflow.ellipsis, + overflow: style.textOverflow, ), ); } diff --git a/lib/style.dart b/lib/style.dart index e1d20b7456..3dc981811d 100644 --- a/lib/style.dart +++ b/lib/style.dart @@ -182,6 +182,13 @@ class Style { /// int maxLine; + /// TextOverflow + /// + /// + /// + /// + TextOverflow textOverflow; + Style({ this.backgroundColor = Colors.transparent, this.color, @@ -215,6 +222,7 @@ class Style { this.alignment, this.markerContent, this.maxLine, + this.textOverflow, }) { if (this.alignment == null && (display == Display.BLOCK || display == Display.LIST_ITEM)) { @@ -288,8 +296,9 @@ class Style { //TODO merge border alignment: other.alignment, markerContent: other.markerContent, - + maxLine: other.maxLine, + textOverflow: other.textOverflow, ); } @@ -323,6 +332,7 @@ class Style { whiteSpace: child.whiteSpace ?? whiteSpace, wordSpacing: child.wordSpacing ?? wordSpacing, maxLine: child.maxLine ?? maxLine, + textOverflow: child.textOverflow ?? textOverflow, ); } @@ -359,6 +369,7 @@ class Style { Alignment alignment, String markerContent, int maxLine, + TextOverflow textOverflow, }) { return Style( backgroundColor: backgroundColor ?? this.backgroundColor, @@ -394,6 +405,7 @@ class Style { alignment: alignment ?? this.alignment, markerContent: markerContent ?? this.markerContent, maxLine: maxLine ?? this.maxLine, + textOverflow: textOverflow ?? this.textOverflow, ); } From 9639cdbdfaa740541439aa8e0b594a1e88b38eea Mon Sep 17 00:00:00 2001 From: Nguyen Dat Date: Fri, 5 Mar 2021 10:48:15 +0700 Subject: [PATCH 008/286] migration flutter 2.0 --- pubspec.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 87035f2013..a31b3ba272 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,24 +9,27 @@ environment: dependencies: # Plugin for parsing html - html: ^0.14.0+3 + html: ^0.15.0 # Plugins for parsing css - csslib: ^0.16.2 + csslib: ^0.17.0 css_colors: ^1.0.2 # Plugins for rendering the tag. - flutter_layout_grid: ^0.10.5 + flutter_layout_grid: ^0.11.6 # Plugins for rendering the