From d5ec889cef3c548227ee0a02581d5f16ff75ffd3 Mon Sep 17 00:00:00 2001 From: Barry0501 Date: Mon, 5 Jul 2021 19:59:24 +0700 Subject: [PATCH 01/22] Update toolbar_widget.dart Remove h4, h5, h6 --- lib/src/widgets/toolbar_widget.dart | 92 ++++++++++++++--------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index 21a9b381..585ef48a 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -508,31 +508,31 @@ class ToolbarWidgetState extends State { CustomDropdownMenuItem( value: 'p', child: PointerInterceptor(child: Text('Normal'))), - CustomDropdownMenuItem( - value: 'blockquote', - child: PointerInterceptor( - child: Container( - decoration: BoxDecoration( - border: Border( - left: BorderSide( - color: Colors.grey, width: 3.0))), - padding: EdgeInsets.symmetric(horizontal: 10.0), - child: Text('Quote', - style: TextStyle( - fontFamily: 'times', color: Colors.grey))), - )), - CustomDropdownMenuItem( - value: 'pre', - child: PointerInterceptor( - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(5), - color: Colors.grey), - padding: EdgeInsets.symmetric(horizontal: 10.0), - child: Text('Code', - style: TextStyle( - fontFamily: 'courier', color: Colors.white))), - )), + // CustomDropdownMenuItem( + // value: 'blockquote', + // child: PointerInterceptor( + // child: Container( + // decoration: BoxDecoration( + // border: Border( + // left: BorderSide( + // color: Colors.grey, width: 3.0))), + // padding: EdgeInsets.symmetric(horizontal: 10.0), + // child: Text('Quote', + // style: TextStyle( + // fontFamily: 'times', color: Colors.grey))), + // )), + // CustomDropdownMenuItem( + // value: 'pre', + // child: PointerInterceptor( + // child: Container( + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(5), + // color: Colors.grey), + // padding: EdgeInsets.symmetric(horizontal: 10.0), + // child: Text('Code', + // style: TextStyle( + // fontFamily: 'courier', color: Colors.white))), + // )), CustomDropdownMenuItem( value: 'h1', child: PointerInterceptor( @@ -554,27 +554,27 @@ class ToolbarWidgetState extends State { style: TextStyle( fontWeight: FontWeight.bold, fontSize: 18))), ), - CustomDropdownMenuItem( - value: 'h4', - child: PointerInterceptor( - child: Text('Header 4', - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 16))), - ), - CustomDropdownMenuItem( - value: 'h5', - child: PointerInterceptor( - child: Text('Header 5', - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 13))), - ), - CustomDropdownMenuItem( - value: 'h6', - child: PointerInterceptor( - child: Text('Header 6', - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 11))), - ), + // CustomDropdownMenuItem( + // value: 'h4', + // child: PointerInterceptor( + // child: Text('Header 4', + // style: TextStyle( + // fontWeight: FontWeight.bold, fontSize: 16))), + // ), + // CustomDropdownMenuItem( + // value: 'h5', + // child: PointerInterceptor( + // child: Text('Header 5', + // style: TextStyle( + // fontWeight: FontWeight.bold, fontSize: 13))), + // ), + // CustomDropdownMenuItem( + // value: 'h6', + // child: PointerInterceptor( + // child: Text('Header 6', + // style: TextStyle( + // fontWeight: FontWeight.bold, fontSize: 11))), + // ), ], value: _fontSelectedItem, onChanged: (String? changed) async { From 0c10b11d54a0fb8ac5e735c9f6d60d192d267971 Mon Sep 17 00:00:00 2001 From: Barry0501 Date: Thu, 8 Jul 2021 22:10:43 +0700 Subject: [PATCH 02/22] Update toolbar.dart Edit icon color toolbar --- lib/utils/toolbar.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index 91b491fd..a3ce8f97 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -49,16 +49,16 @@ class FontButtons extends Toolbar { List getIcons1() { var icons = []; - if (bold) icons.add(Icon(Icons.format_bold)); - if (italic) icons.add(Icon(Icons.format_italic)); - if (underline) icons.add(Icon(Icons.format_underline)); + if (bold) icons.add(Icon(Icons.format_bold,color: Color(0xff8f8f8f),)); + if (italic) icons.add(Icon(Icons.format_italic,color: Color(0xff8f8f8f),)); + if (underline) icons.add(Icon(Icons.format_underline,color: Color(0xff8f8f8f),)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } List getIcons2() { var icons = []; - if (strikethrough) icons.add(Icon(Icons.format_strikethrough)); + if (strikethrough) icons.add(Icon(Icons.format_strikethrough,color: Color(0xff8f8f8f),)); if (superscript) icons.add(Icon(Icons.superscript)); if (subscript) icons.add(Icon(Icons.subscript)); return icons; @@ -97,8 +97,8 @@ class ListButtons extends Toolbar { List getIcons() { var icons = []; - if (ul) icons.add(Icon(Icons.format_list_bulleted)); - if (ol) icons.add(Icon(Icons.format_list_numbered)); + if (ul) icons.add(Icon(Icons.format_list_bulleted,color: Color(0xff8f8f8f),)); + if (ol) icons.add(Icon(Icons.format_list_numbered,color: Color(0xff8f8f8f),)); return icons; } } From 06664450cc17abe53fed2a25fa9eb44a901933ed Mon Sep 17 00:00:00 2001 From: Barry0501 Date: Tue, 13 Jul 2021 15:05:49 +0700 Subject: [PATCH 03/22] Update summernote-lite.min.css --- lib/assets/summernote-lite.min.css | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/assets/summernote-lite.min.css b/lib/assets/summernote-lite.min.css index 34221954..1f89c95c 100644 --- a/lib/assets/summernote-lite.min.css +++ b/lib/assets/summernote-lite.min.css @@ -2,6 +2,13 @@ display: none !important; } +.note-editor .note-editing-area .note-editable span { + color: #a975ff; + background-color: rgba(169,117,255,.1); + border-radius: .3rem; + padding: .1rem .3rem; +} + @font-face { font-family: summernote; font-style: normal; @@ -1469,4 +1476,4 @@ a.note-dropdown-item,a.note-dropdown-item:hover { .help-list-item label { margin-bottom: 5px; display: inline-block; -} \ No newline at end of file +} From f007b7be4b984cb99055ef9dce407f01fc8289a0 Mon Sep 17 00:00:00 2001 From: Tung Duong Date: Sat, 17 Jul 2021 16:55:19 +0700 Subject: [PATCH 04/22] Update new icon --- lib/assets/font/FlatIconNew.ttf | Bin 0 -> 5516 bytes lib/assets/summernote-lite.min.css | 18 ++++++------- lib/src/widgets/toolbar_widget.dart | 27 ++++++++++--------- lib/utils/flat_icon_new_icons.dart | 40 ++++++++++++++++++++++++++++ lib/utils/toolbar.dart | 16 ++++++----- pubspec.yaml | 10 +++---- 6 files changed, 76 insertions(+), 35 deletions(-) create mode 100644 lib/assets/font/FlatIconNew.ttf create mode 100644 lib/utils/flat_icon_new_icons.dart diff --git a/lib/assets/font/FlatIconNew.ttf b/lib/assets/font/FlatIconNew.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3c583368a97566f70b0e277c46133318691a6421 GIT binary patch literal 5516 zcmd^DX>4Ox6~6a9FY)rcJTFP?#Pi}cPGaYIcP1GpnIz6knGTth3~i<}t&=ztXB<1V zowid|r7Z}iP?-LJ!Vd}p#8#vNWmhS!5Mpf$;s@dfZ4n?SQWv=tgn&4F_t`T|rJ0KD zAJ2C=+r9UkbI-l^B!m(|4CHRY6M6o+rNh$u0(THXv!K51t=Eml=e>*X27W*AldD^W z?N{HKx{DCbkD5GNKEGa)`#(&G>P|w8AK54t*7{SAdm#I3)bs`j+6jIY@V8O@8(WRr zb9VzG^mk~c%GK3E&wK4Z$N1}kd$$U=Z__Y&82ldKQl+p}?E4HICd6tdg!gY(>y1DE zvhqzr?9h*%Akdv(+}lL^0_0iCtl9rr6bh){8vo;ko6Hk`CWf}`v)vO*&o)|$7?|`m?N0^L?(VONy_^U}-3%qSH2U!(n z)DSJK*I}H27>Phk%-59p;{W|KDh~Kw#|`jGllhYQne~VSR#~Jru_vsuy=lU`tTHb* zv0tpReQUy_tg>u{KT|1}dM)D{P(j2{$KEmC_oA@>UXR1Ecruwk@Ma?nH1PgHTMi8wzG6`k9 zpNAmRmybnabF$4PhGrIKLb=kNo4Mhk{L!Tchr{znm*^9M%_g*_XX~>l^v98FBPgw# zys?;8T{QFv)D0H6PnKe7i z>C=_dnLzGn&L7GSnjI!7J(ZT?OU0%5Y-2718G6oOGV5C(%A8K8PiJU7kn{U~3XnjLUODOb2VksV9O0?dOVJu?yzR#z)m&s9fx|pN1nr>&e&oSUc=LBk^ z%BHkAM&q)>?jINlM?Kt2T(8X|4P84C z>|gG6TSZ4uKHw28*1_nE?#AhZu3l#(b}W9qv}`eV34*QL9SwII_1f-0x7(YFjClI2 z7BxEzik;8!TG)wLrH%v-15-X*B1PZw@R_gE$3B1N>)gwyb{{--irYK|d7PNNr}+u) z6~w%a1Tba*p=8IF3|KEiJV3-CGn;i$?3acf4^0OG)1lU*w6_EOVVQnza&yu`KCbLT=cjA`cy40-&}2H%e_%0sXnmp`_s=MM;wA?Ou{jc#qaA){SSP*{ zDSp5)@RjWR9S__wpM7d9x^VMCH2V|o-rc)kOzSU4&d<-EKSK4V0Lu%}=z=;zmE23-NiLEH$VbUTgk*f);31k!kJES>eQ=n1g9_&C zr*;i6O+QVIuPW z6(;(_3Yurg;Goi~)f(07%r?XZw7G16VD%`2S;I@aA7njOX6=<>(fE6-5bqCbRC={q z>=DELdWP7oF6$pemlb4{1~4NJErZ{db6JO&9Cwds{4ltp@oPpg4=&)=lW17~1cr+} zHWshADffQLKgqp@``1cD;wFAXVU%P@mds+mPLM@%hTMecV4h-r3VAi`4on7paOl54 zqE~h68ytRNFq>V-W(O@!r{r{6-VEd2yN?*HRwK8_+N;4_D*M(f%DbIXcemth&9mtj z7|K?-guVwX2yk9&kHzW~TTfeitSGH#EUdREckHv=Z@K6H7kBJ*b=qt zkHdXIlilP=P9!~}CvH9=gYQG7H|R|!ee1Ky8*E;4UfI11{QLMMabOQ)rKX+RFz z5^O)&DYH9m1MxI2m;nZ70ArsOn0xua!IAEvBSS4Cn(mQ<2hLYnW7-yL!RmY@tk#{kRrj>-`M>l1IMYFrAXDU8vW$E81JKhOin13N;fEI$ zdfGKwFCJK&$l`hsQk8*QfAsmuF*QSS`w3Uf9Dx zE-mPKrlxyzE>Y*dx!~8^e1SQa-saNvOiw9P_uMstP5+3_#hTWOM!UYi;DY{-f~f0| z={!U_D4peeD}_9hqxb08QP+tso!{m1W89;CZe?_b z>h6nz_Xtx88vGSqL2v7Y2G6}trq{K}jJNx#K9{es;$t(yHrZlPCU?8(Zy05I>JkNN z=2r?nC6`0!Fp(^Q; zk|5v_jpK0(dbPN*L(X^xX%*Y>RFY*>?1vdy7iVb~=3-s91C0Z5py9Vgy;-OC^leP1 z-jbf)==11xX1z#FYTfDljxfJGFWfqJTBkO(PP&3_r|gLI4jZI1l3}=a?d=N%wMww- zMV&Da$W4B5G8YIKb)w!bsMLjpx8Liw4Gbmov-6X=Wt$L8rGkQOIX5{!n@ zv2eVfe76Hr;-tqrFh@*utpoF**E+BY@P!Vn2K=!OtO5Mh4y-39>5n_Gfdn~ern-H; zRyw=UkOpVMQe2M5q?Pkh6{J$7P?icijg4xpE=@`6<()>OSSzhoE78^J)`+xTtu%_| za+P6u{JY~QILC{(Ef&x2lnb?elzrgIVy#}PR-{-|-bbA;R*JPkqqxSFuHSk#-e{~# z>$U2Zl<%w|ZP%)s#nnc1qtVztI6At2Z8AfuWE*wxvqgi2^BuQowE8z$nJ41D`@&2ZvD`q^QWRf?Gj0#`-P%cY{eV3gegYt6t{i zffYbMs>oKzaY)>T+^q=Bb`)L>F>@uED^pJ@8q{GKTTg-|QCM_k*?GuT6nUmWk*qgQ2)t$2&CK;5NoQ{+lg>q@tD9b6JnaE1DyoQO=KvI#N%385j zE>((=M)CFrhGam_Mk+g7E5({k1{jmaA}c%Pa { for (var t in widget.htmlToolbarOptions.defaultToolbarButtons) { if (t is FontButtons) { for (var i = 0; i < _fontSelected.length; i++) { - if (t.getIcons1()[i].icon == Icons.format_bold) { + if (t.getIcons1()[i].icon == FlatIcon.bold) { _fontSelected[i] = fontList[0] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_italic) { + if (t.getIcons1()[i].icon == FlatIcon.italic) { _fontSelected[i] = fontList[1] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_underline) { + if (t.getIcons1()[i].icon == FlatIcon.underline_text) { _fontSelected[i] = fontList[2] ?? false; } } for (var i = 0; i < _miscFontSelected.length; i++) { - if (t.getIcons2()[i].icon == Icons.format_strikethrough) { + if (t.getIcons2()[i].icon == FlatIcon.strikethrough) { _miscFontSelected[i] = miscFontList[0] ?? false; } if (t.getIcons2()[i].icon == Icons.superscript) { @@ -276,10 +277,10 @@ class ToolbarWidgetState extends State { } if (t is ListButtons) { for (var i = 0; i < _listSelected.length; i++) { - if (t.getIcons()[i].icon == Icons.format_list_bulleted) { + if (t.getIcons()[i].icon == FlatIcon.bullet_list) { _listSelected[i] = paragraphList[0] ?? false; } - if (t.getIcons()[i].icon == Icons.format_list_numbered) { + if (t.getIcons()[i].icon == FlatIcon.number) { _listSelected[i] = paragraphList[1] ?? false; } } @@ -916,7 +917,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons1()[index].icon == Icons.format_bold) { + if (t.getIcons1()[index].icon == FlatIcon.bold) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.bold, _fontSelected[index], updateStatus) ?? @@ -926,7 +927,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_italic) { + if (t.getIcons1()[index].icon == FlatIcon.italic) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.italic, _fontSelected[index], updateStatus) ?? @@ -936,7 +937,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_underline) { + if (t.getIcons1()[index].icon == FlatIcon.underline_text) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.underline, _fontSelected[index], updateStatus) ?? @@ -986,7 +987,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons2()[index].icon == Icons.format_strikethrough) { + if (t.getIcons2()[index].icon == FlatIcon.strikethrough) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.strikethrough, _miscFontSelected[index], updateStatus) ?? @@ -1223,7 +1224,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons()[index].icon == Icons.format_list_bulleted) { + if (t.getIcons()[index].icon == FlatIcon.bullet_list) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.ul, _listSelected[index], updateStatus) ?? @@ -1233,7 +1234,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons()[index].icon == Icons.format_list_numbered) { + if (t.getIcons()[index].icon == FlatIcon.number) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.ol, _listSelected[index], updateStatus) ?? @@ -1756,7 +1757,7 @@ class ToolbarWidgetState extends State { renderBorder: widget.htmlToolbarOptions.renderBorder, textStyle: widget.htmlToolbarOptions.textStyle, onPressed: (int index) async { - if (t.getIcons()[index].icon == Icons.link) { + if (t.getIcons()[index].icon == FlatIcon.link) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.link, null, null) ?? true; diff --git a/lib/utils/flat_icon_new_icons.dart b/lib/utils/flat_icon_new_icons.dart new file mode 100644 index 00000000..f3dedef6 --- /dev/null +++ b/lib/utils/flat_icon_new_icons.dart @@ -0,0 +1,40 @@ +import 'package:flutter/widgets.dart'; +// import '../../assets/images/apple.png'; + +class FlatIcon { + FlatIcon._(); + + static const _kFontFam = 'FlatIconNew'; + static const String _kFontPkg = 'html_editor_enhanced'; + + static const IconData attachment = + IconData(0xf101, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData attach_comment = + IconData(0xf102, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData strikethrough = + IconData(0xf103, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData italic = + IconData(0xf104, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData bold = + IconData(0xf105, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underline_text = + IconData(0xf106, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData number = + IconData(0xf107, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData bullet_list = + IconData(0xf108, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData task_details_attach_file = + IconData(0xf109, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData file = + IconData(0xf10a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData folder = + IconData(0xf10b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData comment = + IconData(0xf10c, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData link = + IconData(0xf10d, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData alarm = + IconData(0xf10e, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData alarm_1 = + IconData(0xf10f, fontFamily: _kFontFam, fontPackage: _kFontPkg); +} diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index a3ce8f97..35ea3068 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; /// Abstract class that all the toolbar classes extend abstract class Toolbar { @@ -49,16 +50,17 @@ class FontButtons extends Toolbar { List getIcons1() { var icons = []; - if (bold) icons.add(Icon(Icons.format_bold,color: Color(0xff8f8f8f),)); - if (italic) icons.add(Icon(Icons.format_italic,color: Color(0xff8f8f8f),)); - if (underline) icons.add(Icon(Icons.format_underline,color: Color(0xff8f8f8f),)); + if (bold) icons.add(Icon(FlatIcon.bold)); + if (italic) icons.add(Icon(FlatIcon.italic)); + if (underline) icons.add(Icon(FlatIcon.underline_text)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } List getIcons2() { var icons = []; - if (strikethrough) icons.add(Icon(Icons.format_strikethrough,color: Color(0xff8f8f8f),)); + // if (strikethrough) icons.add(Icon(Icons.format_strikethrough)); + if (strikethrough) icons.add(Icon(FlatIcon.strikethrough)); if (superscript) icons.add(Icon(Icons.superscript)); if (subscript) icons.add(Icon(Icons.subscript)); return icons; @@ -97,8 +99,8 @@ class ListButtons extends Toolbar { List getIcons() { var icons = []; - if (ul) icons.add(Icon(Icons.format_list_bulleted,color: Color(0xff8f8f8f),)); - if (ol) icons.add(Icon(Icons.format_list_numbered,color: Color(0xff8f8f8f),)); + if (ul) icons.add(Icon(FlatIcon.bullet_list)); + if (ol) icons.add(Icon(FlatIcon.number)); return icons; } } @@ -166,7 +168,7 @@ class InsertButtons extends Toolbar { List getIcons() { var icons = []; - if (link) icons.add(Icon(Icons.link)); + if (link) icons.add(Icon(FlatIcon.link)); if (picture) icons.add(Icon(Icons.image_outlined)); if (audio) icons.add(Icon(Icons.audiotrack_outlined)); if (video) icons.add(Icon(Icons.videocam_outlined)); diff --git a/pubspec.yaml b/pubspec.yaml index e363eceb..9b3f8f21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -77,12 +77,10 @@ flutter: # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic + fonts: + - family: FlatIconNew + fonts: + - asset: packages/html_editor_enhanced/assets/font/FlatIconNew.ttf # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf From e05915f434dc90ecacbc8f12f870a2917bb79f09 Mon Sep 17 00:00:00 2001 From: Tung Duong Date: Mon, 26 Jul 2021 21:35:52 +0700 Subject: [PATCH 05/22] Update icon font and color --- lib/src/widgets/toolbar_widget.dart | 16 ++++++------ lib/utils/flat_icon_new_icons.dart | 40 +++++++---------------------- lib/utils/toolbar.dart | 27 ++++++++++--------- 3 files changed, 30 insertions(+), 53 deletions(-) diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index 21fe3ffe..fd4ac027 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -259,7 +259,7 @@ class ToolbarWidgetState extends State { if (t.getIcons1()[i].icon == FlatIcon.italic) { _fontSelected[i] = fontList[1] ?? false; } - if (t.getIcons1()[i].icon == FlatIcon.underline_text) { + if (t.getIcons1()[i].icon == FlatIcon.underline) { _fontSelected[i] = fontList[2] ?? false; } } @@ -537,23 +537,23 @@ class ToolbarWidgetState extends State { CustomDropdownMenuItem( value: 'h1', child: PointerInterceptor( - child: Text('Header 1', + child: Text('H1', style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 32))), + fontWeight: FontWeight.bold, fontSize: 32,color: Color(0xff6A6A6A),))), ), CustomDropdownMenuItem( value: 'h2', child: PointerInterceptor( - child: Text('Header 2', + child: Text('H2', style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 24))), + fontWeight: FontWeight.bold, fontSize: 24,color: Color(0xff6A6A6A),))), ), CustomDropdownMenuItem( value: 'h3', child: PointerInterceptor( - child: Text('Header 3', + child: Text('H3', style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 18))), + fontWeight: FontWeight.bold, fontSize: 18,color: Color(0xff6A6A6A),))), ), // CustomDropdownMenuItem( // value: 'h4', @@ -937,7 +937,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == FlatIcon.underline_text) { + if (t.getIcons1()[index].icon == FlatIcon.underline) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.underline, _fontSelected[index], updateStatus) ?? diff --git a/lib/utils/flat_icon_new_icons.dart b/lib/utils/flat_icon_new_icons.dart index f3dedef6..6c9ade75 100644 --- a/lib/utils/flat_icon_new_icons.dart +++ b/lib/utils/flat_icon_new_icons.dart @@ -1,5 +1,4 @@ import 'package:flutter/widgets.dart'; -// import '../../assets/images/apple.png'; class FlatIcon { FlatIcon._(); @@ -7,34 +6,13 @@ class FlatIcon { static const _kFontFam = 'FlatIconNew'; static const String _kFontPkg = 'html_editor_enhanced'; - static const IconData attachment = - IconData(0xf101, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData attach_comment = - IconData(0xf102, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData strikethrough = - IconData(0xf103, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData italic = - IconData(0xf104, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData bold = - IconData(0xf105, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData underline_text = - IconData(0xf106, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData number = - IconData(0xf107, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData bullet_list = - IconData(0xf108, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData task_details_attach_file = - IconData(0xf109, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData file = - IconData(0xf10a, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData folder = - IconData(0xf10b, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData comment = - IconData(0xf10c, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData link = - IconData(0xf10d, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData alarm = - IconData(0xf10e, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData alarm_1 = - IconData(0xf10f, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData paste = IconData(0xf102, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData transfer = IconData(0xf103, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData bullet_list = IconData(0xf104, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData number = IconData(0xf105, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData bold = IconData(0xf106, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData italic = IconData(0xf107, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData underline = IconData(0xf108, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData strikethrough = IconData(0xf109, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData link = IconData(0xf10a, fontFamily: _kFontFam, fontPackage: _kFontPkg); } diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index 35ea3068..de9ee944 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -50,17 +50,16 @@ class FontButtons extends Toolbar { List getIcons1() { var icons = []; - if (bold) icons.add(Icon(FlatIcon.bold)); - if (italic) icons.add(Icon(FlatIcon.italic)); - if (underline) icons.add(Icon(FlatIcon.underline_text)); + if (bold) icons.add(Icon(FlatIcon.bold,color: Color(0xff6A6A6A),)); + if (italic) icons.add(Icon(FlatIcon.italic,color: Color(0xff6A6A6A),)); + if (underline) icons.add(Icon(FlatIcon.underline,color: Color(0xff6A6A6A),)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } List getIcons2() { var icons = []; - // if (strikethrough) icons.add(Icon(Icons.format_strikethrough)); - if (strikethrough) icons.add(Icon(FlatIcon.strikethrough)); + if (strikethrough) icons.add(Icon(FlatIcon.strikethrough,color: Color(0xff6A6A6A),)); if (superscript) icons.add(Icon(Icons.superscript)); if (subscript) icons.add(Icon(Icons.subscript)); return icons; @@ -99,8 +98,8 @@ class ListButtons extends Toolbar { List getIcons() { var icons = []; - if (ul) icons.add(Icon(FlatIcon.bullet_list)); - if (ol) icons.add(Icon(FlatIcon.number)); + if (ul) icons.add(Icon(FlatIcon.bullet_list,color: Color(0xff6A6A6A),)); + if (ol) icons.add(Icon(FlatIcon.number,color: Color(0xff6A6A6A),)); return icons; } } @@ -131,10 +130,10 @@ class ParagraphButtons extends Toolbar { List getIcons1() { var icons = []; - if (alignLeft) icons.add(Icon(Icons.format_align_left)); - if (alignCenter) icons.add(Icon(Icons.format_align_center)); - if (alignRight) icons.add(Icon(Icons.format_align_right)); - if (alignJustify) icons.add(Icon(Icons.format_align_justify)); + if (alignLeft) icons.add(Icon(Icons.format_align_left,color: Color(0xff6A6A6A),)); + if (alignCenter) icons.add(Icon(Icons.format_align_center,color: Color(0xff6A6A6A),)); + if (alignRight) icons.add(Icon(Icons.format_align_right,color: Color(0xff6A6A6A),)); + if (alignJustify) icons.add(Icon(Icons.format_align_justify,color: Color(0xff6A6A6A),)); return icons; } @@ -168,7 +167,7 @@ class InsertButtons extends Toolbar { List getIcons() { var icons = []; - if (link) icons.add(Icon(FlatIcon.link)); + if (link) icons.add(Icon(FlatIcon.link,color: Color(0xff6A6A6A),)); if (picture) icons.add(Icon(Icons.image_outlined)); if (audio) icons.add(Icon(Icons.audiotrack_outlined)); if (video) icons.add(Icon(Icons.videocam_outlined)); @@ -203,8 +202,8 @@ class OtherButtons extends Toolbar { var icons = []; if (fullscreen) icons.add(Icon(Icons.fullscreen)); if (codeview) icons.add(Icon(Icons.code)); - if (undo) icons.add(Icon(Icons.undo)); - if (redo) icons.add(Icon(Icons.redo)); + if (undo) icons.add(Icon(Icons.undo,color: Color(0xff6A6A6A),)); + if (redo) icons.add(Icon(Icons.redo,color: Color(0xff6A6A6A),)); if (help) icons.add(Icon(Icons.help_outline)); return icons; } From a805c8c5afb8623b69dd63646189ac1f801a81a2 Mon Sep 17 00:00:00 2001 From: Tung Duong Date: Mon, 26 Jul 2021 22:18:09 +0700 Subject: [PATCH 06/22] Change font icon --- lib/assets/font/FlatIconNew.ttf | Bin 5516 -> 4140 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/assets/font/FlatIconNew.ttf b/lib/assets/font/FlatIconNew.ttf index 3c583368a97566f70b0e277c46133318691a6421..290eee60d52ac4c317e5b8367246f71e5e2616e7 100644 GIT binary patch literal 4140 zcmd^CZERcB8Gg^bv6DKr8~fUh?KIB4PU0lRAJ>lK@YOUSsRI;f6G{Z7TX7TTqd0bI z--H%T3~4ZRqSav2_*FDbFeYvPU}F0Llcr4r_9;!>eoO*&(uT^PifG!zw#M1>-h17q zg-QEA+vlA3ectz+^M2iPk4X?wJ3UJ>>C+ECa*z5#|I_V|BmoEzRB!A5@2V53;H*Leacub9AyNC0o4oT<~o_@-+cvDp;dgSWhs zpxc5Kozx0XcbW6p+yD2ERaNKgFd&+n96^pQkH|GQuEkAcf*WUK6EWq+vE4+LxN){N z5m9bjN1LryL%eAd)y9phZgZE_kOO4OYGyq{Oy}sTI4<6k&PyN4yX8gs*DX5lfv4hq zd6u$tfF7X7i27sB*8Y5Mpg-6d9L|o3TuQ_|BH-_Iq(m<$e^d--^P>)D0F)({vr*yq zh*(PG#)Lgs&`pdS9=bQ&_{ilFkw~n6NS{fkXP%fzyBZ&b@3lA`3L@e%;q;8I=6ibb z*z<+T1v_we!G?dVMOqp!sfXzyCAx#T`MgNw@YFgtfEOUl5rz4bz`FycNNZQZT zb$07#%u1)V5GYK9Ses(P!OD$RjZaq8)%HK-A4%V*VS3QaYq!{8scEG@n9c7;ig$R# zz6xM*CGKp^IDEHZ-)X4)ctsjaHqscN#IZol6>;cz+~!JeewUG^x7=K+&R_DpybTb6JuiaWtt7N#aVo`gD~Dtmp38%ro2 zu}8Y#3x|DMb?&7L&2cBjwD_~q<##$7?7o*5T7Ecg~{AeD} zzOZWME@4F%PYdweK-@k9do{1nyqb0T^-6zBh9lEwryKVNqR~J$%f0yBL(jzr2M0e+ z+@HX&aar8acvsvpJU5J=_)7n9{;ugW)7|^JuU$s>(8T1$sR{8?;{HbuCB(sNm&H@r zxy3oyV?N)fq^q#83)N3JoXxtBn^`yOLBUy#Qjp$$Indo5*!5vQ4?Agjwz(BXSw(ll z{~u%RG;Tk4)BYRld##gx#A~i>6$+x^@5K8eJIX<_B)#&^2T6YZJ%2Rn&ra6Q)u)D; zeBb2t^x@f`%pOkZW^A%slZ;C5u$87|jkT%zziYpk7MZ9R2(_JoOD`;sNF z;~{g-4pIU3YS#M*sW8iW1W6i*$8d^)?KFdgp~0!bYlX>~UTwon<`+jF&*vYnJPuj+%p^opgF}7VQ|yI!F+FqQNIHE) zXKxOTkM+glea{@q9P5L{=_4oj^_Mn9&#+`{{7~kxeuy~!()HVF)Qo*fIQNLo(J>K~ zK;TsyA85tfH-A8kiMYskL`pL0VCSf*>Jhl(PKxo3ls7lW-vYC^W~-sU6+(VK$%c`dog)q zW2+tT2anXKmUE{AHVV(VTeQrrRklu1!|g&em3zmJM}qa!AeU*^GMftXc)MQYn_z;<~Y1 zt<}|Wb+No|7^T|Ee6^CAudXK4#cIVUmCIG;3iwNLA0)G-rS)>L)?}OGT&Y%HsaDiX zN^e5brAnz*G)fD+U43IIYZ!~_Vy(KW7VLG^wOaL5Y2HXJ8^+q5>GaP1@OG>serKsh zE3`z*WRQw8ZW8Ys6(^mJmH~AV8Y(m`trejohol3L-P0PDFZD6-7Py-gSl{Kui3aW66y(%KcvQwBp5ABp0Hv{OMI3d&j)j!Fs zO#WB-`JZ+n30brVhj5Bk(I$2YmuMHeX_u~NlJ(_ctpqBYTr1X%(r#TJP8zjhrM_6I z?a}pI^5lBCTr!g7mAc{5^^s&{ef4Ci)~4(Ew?XLPJn!N2hT0DyJ7(EtDd literal 5516 zcmd^DX>4Ox6~6a9FY)rcJTFP?#Pi}cPGaYIcP1GpnIz6knGTth3~i<}t&=ztXB<1V zowid|r7Z}iP?-LJ!Vd}p#8#vNWmhS!5Mpf$;s@dfZ4n?SQWv=tgn&4F_t`T|rJ0KD zAJ2C=+r9UkbI-l^B!m(|4CHRY6M6o+rNh$u0(THXv!K51t=Eml=e>*X27W*AldD^W z?N{HKx{DCbkD5GNKEGa)`#(&G>P|w8AK54t*7{SAdm#I3)bs`j+6jIY@V8O@8(WRr zb9VzG^mk~c%GK3E&wK4Z$N1}kd$$U=Z__Y&82ldKQl+p}?E4HICd6tdg!gY(>y1DE zvhqzr?9h*%Akdv(+}lL^0_0iCtl9rr6bh){8vo;ko6Hk`CWf}`v)vO*&o)|$7?|`m?N0^L?(VONy_^U}-3%qSH2U!(n z)DSJK*I}H27>Phk%-59p;{W|KDh~Kw#|`jGllhYQne~VSR#~Jru_vsuy=lU`tTHb* zv0tpReQUy_tg>u{KT|1}dM)D{P(j2{$KEmC_oA@>UXR1Ecruwk@Ma?nH1PgHTMi8wzG6`k9 zpNAmRmybnabF$4PhGrIKLb=kNo4Mhk{L!Tchr{znm*^9M%_g*_XX~>l^v98FBPgw# zys?;8T{QFv)D0H6PnKe7i z>C=_dnLzGn&L7GSnjI!7J(ZT?OU0%5Y-2718G6oOGV5C(%A8K8PiJU7kn{U~3XnjLUODOb2VksV9O0?dOVJu?yzR#z)m&s9fx|pN1nr>&e&oSUc=LBk^ z%BHkAM&q)>?jINlM?Kt2T(8X|4P84C z>|gG6TSZ4uKHw28*1_nE?#AhZu3l#(b}W9qv}`eV34*QL9SwII_1f-0x7(YFjClI2 z7BxEzik;8!TG)wLrH%v-15-X*B1PZw@R_gE$3B1N>)gwyb{{--irYK|d7PNNr}+u) z6~w%a1Tba*p=8IF3|KEiJV3-CGn;i$?3acf4^0OG)1lU*w6_EOVVQnza&yu`KCbLT=cjA`cy40-&}2H%e_%0sXnmp`_s=MM;wA?Ou{jc#qaA){SSP*{ zDSp5)@RjWR9S__wpM7d9x^VMCH2V|o-rc)kOzSU4&d<-EKSK4V0Lu%}=z=;zmE23-NiLEH$VbUTgk*f);31k!kJES>eQ=n1g9_&C zr*;i6O+QVIuPW z6(;(_3Yurg;Goi~)f(07%r?XZw7G16VD%`2S;I@aA7njOX6=<>(fE6-5bqCbRC={q z>=DELdWP7oF6$pemlb4{1~4NJErZ{db6JO&9Cwds{4ltp@oPpg4=&)=lW17~1cr+} zHWshADffQLKgqp@``1cD;wFAXVU%P@mds+mPLM@%hTMecV4h-r3VAi`4on7paOl54 zqE~h68ytRNFq>V-W(O@!r{r{6-VEd2yN?*HRwK8_+N;4_D*M(f%DbIXcemth&9mtj z7|K?-guVwX2yk9&kHzW~TTfeitSGH#EUdREckHv=Z@K6H7kBJ*b=qt zkHdXIlilP=P9!~}CvH9=gYQG7H|R|!ee1Ky8*E;4UfI11{QLMMabOQ)rKX+RFz z5^O)&DYH9m1MxI2m;nZ70ArsOn0xua!IAEvBSS4Cn(mQ<2hLYnW7-yL!RmY@tk#{kRrj>-`M>l1IMYFrAXDU8vW$E81JKhOin13N;fEI$ zdfGKwFCJK&$l`hsQk8*QfAsmuF*QSS`w3Uf9Dx zE-mPKrlxyzE>Y*dx!~8^e1SQa-saNvOiw9P_uMstP5+3_#hTWOM!UYi;DY{-f~f0| z={!U_D4peeD}_9hqxb08QP+tso!{m1W89;CZe?_b z>h6nz_Xtx88vGSqL2v7Y2G6}trq{K}jJNx#K9{es;$t(yHrZlPCU?8(Zy05I>JkNN z=2r?nC6`0!Fp(^Q; zk|5v_jpK0(dbPN*L(X^xX%*Y>RFY*>?1vdy7iVb~=3-s91C0Z5py9Vgy;-OC^leP1 z-jbf)==11xX1z#FYTfDljxfJGFWfqJTBkO(PP&3_r|gLI4jZI1l3}=a?d=N%wMww- zMV&Da$W4B5G8YIKb)w!bsMLjpx8Liw4Gbmov-6X=Wt$L8rGkQOIX5{!n@ zv2eVfe76Hr;-tqrFh@*utpoF**E+BY@P!Vn2K=!OtO5Mh4y-39>5n_Gfdn~ern-H; zRyw=UkOpVMQe2M5q?Pkh6{J$7P?icijg4xpE=@`6<()>OSSzhoE78^J)`+xTtu%_| za+P6u{JY~QILC{(Ef&x2lnb?elzrgIVy#}PR-{-|-bbA;R*JPkqqxSFuHSk#-e{~# z>$U2Zl<%w|ZP%)s#nnc1qtVztI6At2Z8AfuWE*wxvqgi2^BuQowE8z$nJ41D`@&2ZvD`q^QWRf?Gj0#`-P%cY{eV3gegYt6t{i zffYbMs>oKzaY)>T+^q=Bb`)L>F>@uED^pJ@8q{GKTTg-|QCM_k*?GuT6nUmWk*qgQ2)t$2&CK;5NoQ{+lg>q@tD9b6JnaE1DyoQO=KvI#N%385j zE>((=M)CFrhGam_Mk+g7E5({k1{jmaA}c%Pa Date: Thu, 29 Jul 2021 20:48:16 +0700 Subject: [PATCH 07/22] Update size icon --- lib/src/widgets/toolbar_widget.dart | 2 +- lib/utils/toolbar.dart | 28 +++++++++++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index fd4ac027..dab965c1 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -539,7 +539,7 @@ class ToolbarWidgetState extends State { child: PointerInterceptor( child: Text('H1', style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 32,color: Color(0xff6A6A6A),))), + fontWeight: FontWeight.bold, fontSize: 28,color: Color(0xff6A6A6A),))), ), CustomDropdownMenuItem( value: 'h2', diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index de9ee944..f4461bcc 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -6,6 +6,8 @@ abstract class Toolbar { const Toolbar(); } +const sizeIcon = 20.0; + /// Style group class StyleButtons extends Toolbar { final bool style; @@ -50,16 +52,16 @@ class FontButtons extends Toolbar { List getIcons1() { var icons = []; - if (bold) icons.add(Icon(FlatIcon.bold,color: Color(0xff6A6A6A),)); - if (italic) icons.add(Icon(FlatIcon.italic,color: Color(0xff6A6A6A),)); - if (underline) icons.add(Icon(FlatIcon.underline,color: Color(0xff6A6A6A),)); + if (bold) icons.add(Icon(FlatIcon.bold,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (italic) icons.add(Icon(FlatIcon.italic,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (underline) icons.add(Icon(FlatIcon.underline,color: Color(0xff6A6A6A),size: sizeIcon,)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } List getIcons2() { var icons = []; - if (strikethrough) icons.add(Icon(FlatIcon.strikethrough,color: Color(0xff6A6A6A),)); + if (strikethrough) icons.add(Icon(FlatIcon.strikethrough,color: Color(0xff6A6A6A),size: sizeIcon,)); if (superscript) icons.add(Icon(Icons.superscript)); if (subscript) icons.add(Icon(Icons.subscript)); return icons; @@ -98,8 +100,8 @@ class ListButtons extends Toolbar { List getIcons() { var icons = []; - if (ul) icons.add(Icon(FlatIcon.bullet_list,color: Color(0xff6A6A6A),)); - if (ol) icons.add(Icon(FlatIcon.number,color: Color(0xff6A6A6A),)); + if (ul) icons.add(Icon(FlatIcon.bullet_list,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (ol) icons.add(Icon(FlatIcon.number,color: Color(0xff6A6A6A),size: sizeIcon,)); return icons; } } @@ -130,10 +132,10 @@ class ParagraphButtons extends Toolbar { List getIcons1() { var icons = []; - if (alignLeft) icons.add(Icon(Icons.format_align_left,color: Color(0xff6A6A6A),)); - if (alignCenter) icons.add(Icon(Icons.format_align_center,color: Color(0xff6A6A6A),)); - if (alignRight) icons.add(Icon(Icons.format_align_right,color: Color(0xff6A6A6A),)); - if (alignJustify) icons.add(Icon(Icons.format_align_justify,color: Color(0xff6A6A6A),)); + if (alignLeft) icons.add(Icon(Icons.format_align_left,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (alignCenter) icons.add(Icon(Icons.format_align_center,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (alignRight) icons.add(Icon(Icons.format_align_right,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (alignJustify) icons.add(Icon(Icons.format_align_justify,color: Color(0xff6A6A6A),size: sizeIcon,)); return icons; } @@ -167,7 +169,7 @@ class InsertButtons extends Toolbar { List getIcons() { var icons = []; - if (link) icons.add(Icon(FlatIcon.link,color: Color(0xff6A6A6A),)); + if (link) icons.add(Icon(FlatIcon.link,color: Color(0xff6A6A6A),size: sizeIcon,)); if (picture) icons.add(Icon(Icons.image_outlined)); if (audio) icons.add(Icon(Icons.audiotrack_outlined)); if (video) icons.add(Icon(Icons.videocam_outlined)); @@ -202,8 +204,8 @@ class OtherButtons extends Toolbar { var icons = []; if (fullscreen) icons.add(Icon(Icons.fullscreen)); if (codeview) icons.add(Icon(Icons.code)); - if (undo) icons.add(Icon(Icons.undo,color: Color(0xff6A6A6A),)); - if (redo) icons.add(Icon(Icons.redo,color: Color(0xff6A6A6A),)); + if (undo) icons.add(Icon(Icons.undo,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (redo) icons.add(Icon(Icons.redo,color: Color(0xff6A6A6A),size: sizeIcon,)); if (help) icons.add(Icon(Icons.help_outline)); return icons; } From 69f8379e897eecd8a9cd01d4eff0169a42de9fa9 Mon Sep 17 00:00:00 2001 From: Barry0501 Date: Thu, 9 Sep 2021 10:33:05 +0700 Subject: [PATCH 08/22] Update pubspec.yaml --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9b3f8f21..9e64e073 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: # or "done" (iOS) to reset the editor's height flutter_keyboard_visibility: ^5.0.2 # plugin to show a color picker for foreground/highlight color - flutter_colorpicker: ^0.4.0 + flutter_colorpicker: ^0.5.0 # plugin to get files from filesystem file_picker: ^3.0.2+2 # plugin to show a scrollable number picker for inserting tables From 79930621d75d532ff8f55054b63c3ced4cfd13a5 Mon Sep 17 00:00:00 2001 From: BarryDuong Date: Wed, 15 Sep 2021 11:05:04 +0700 Subject: [PATCH 09/22] change icon editor and fix css --- example/lib/main.dart | 1 + lib/assets/font/FlatIcon1.ttf | Bin 0 -> 3752 bytes lib/assets/summernote-lite.min.css | 5 ++-- lib/src/widgets/toolbar_widget.dart | 41 ++++++++++++++-------------- lib/utils/flat_icon1.dart | 35 ++++++++++++++++++++++++ lib/utils/flat_icon_new_icons.dart | 1 - lib/utils/toolbar.dart | 30 ++++++++++---------- pubspec.yaml | 3 ++ 8 files changed, 78 insertions(+), 38 deletions(-) create mode 100644 lib/assets/font/FlatIcon1.ttf create mode 100644 lib/utils/flat_icon1.dart diff --git a/example/lib/main.dart b/example/lib/main.dart index 5d323fd0..31465973 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -73,6 +73,7 @@ class _HtmlEditorExampleState extends State { htmlEditorOptions: HtmlEditorOptions( hint: 'Your text here...', shouldEnsureVisible: true, + initialText: '''@Barry Allen''' //initialText: "

text content initial, if any

", ), htmlToolbarOptions: HtmlToolbarOptions( diff --git a/lib/assets/font/FlatIcon1.ttf b/lib/assets/font/FlatIcon1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..df627435dc2fbfbea41dcbe89e3bea21cc98f496 GIT binary patch literal 3752 zcmd^BOKcn06}@kUh@=3ftx&#{U-{SRZxh*)M26BaR8@1k*nOdo~Qyf`8>YC7=tG~jT??=ioQc{iVNa5Qb0N-U6($T56XFH*#na8 z(oL-IqzK#$$NNOUDW*t7j0;#hBDI?*RN`apWcp~q|S<>HG6x)+8M%W=*G&fJiGL6dyma1_7EWIC0I zcZJg6BLiL$41^-Va90SwU_fz128N>w_yqizOhyy(#`d*^{?R~aI{w1^tKQjAX8Oe! zYO{%3qA|Y>MQe@9&IaCw3U4nL3REYZF4Gly zgT6=985wW{y1pdhy&^Co1{@$PrIN!Vh$qGDb4YL`xMSA^3kO@auQJ!bFlt)MiD011 zTxpsnLSf!B66SRYyGcwa*e?7j=JI-7F{g8XSJ>-1?echBX}i2Xq^coPW5eiYxZmkC zk&x*Lq?*Yfaa55D)(z%xlc7CyJJseC94J8NLuip@Nj5tS(2=8oLv>jt! zI@3MG%X%K}q2i7i#(QQ^4^4uY_$fegw{#V~7sCBGh8W-_ZaSlWpVqfeFmK`}Z`Qp} z{8RF{{le#d{J`z^yTt{*Zog?jZ5kM~tE7yt+lT+HrxCbh-m@=DHz*8YK=BGCs)W)} zWk#|d6Omv%ol2*Yd^bzsh1u!zfr)hGc7Mf_DNN1l^Z2iv%p4gRIg&Xk-RM22&8_s` zuB2zv=i>AFxAgg0R@`I@PQg?1AX*(96Uv@8?-L0l8|}FCiJ1X2=qpAV{_OT4?i;K? z0zRXWzG;Sk-z54jX-^K6nBYg1;!qp`eoQ4M2Vx>QBRCx)&W$`Y5ja0RyU>by#mvG~ zA>*kabji0erycBVg*|JeA$|@isoef-4hCrgnctm*owi6QxZPXrU~fGE0PW6#+lU+8 zfHZvI^R)GY^kpA+38&|R+qWkXKlE^K_}+uM+vm4@v%a)iefp_y$zi4C=jZeC?;f4y zqR2O~yXOn=(gR=%#XEpsw|Ez=h_@}igNDVU6VtU+1ie{Lszs~y;QBJ z6S46fD5F)hT2|NA__+FOg}AQg)qJhGsV-Xks#~?{x|Y*pMP1*T8XIdr4^QDL@^^`9 zRKh#4hZ|6&5NiO{)@BC`)A^S!!TK(a_W(&tc}FVN^$r*ggks zg<=NX#MdlaFv9vWe$|$45mFZTNo&m#EDG3*(Hc5rw|1|*Vw_jUiM+cCzhm%!uT=(C z6~mHG(r68qW^{FW4X4F{>hO@gtYN23aEp8VRgp2)tz&%-)-fY*I?yS+55_(>KK`=g z!C!+<8*U*9S=fYKID{gcVxMq{4&fFavaMFjYo5AZD{W|cu~uyqijI<=EthhRN@H_X zt97h4%4JPIS}xUf7w|&mXj#kawnk;G>Ne$^hBm9&YT8=0!$gdB^{hAQdMRJZWp#8G GyY*kja!v#Q literal 0 HcmV?d00001 diff --git a/lib/assets/summernote-lite.min.css b/lib/assets/summernote-lite.min.css index 6c17f8dc..e5c8cb82 100644 --- a/lib/assets/summernote-lite.min.css +++ b/lib/assets/summernote-lite.min.css @@ -1440,9 +1440,8 @@ a.note-dropdown-item,a.note-dropdown-item:hover { color: #047bf8; } -.note-editor .note-editing-area .note-editable span { - color: #a975ff; - background-color: rgba(169,117,255,.1); +.note-editor .note-editing-area .note-editable .upbase-mention { + color: #047bf8; border-radius: .3rem; padding: .1rem .3rem; } diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index b624fdbb..ec5cf45c 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; import 'package:html_editor_enhanced/html_editor.dart'; +import 'package:html_editor_enhanced/utils/flat_icon1.dart'; import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; import 'package:html_editor_enhanced/utils/utils.dart'; import 'package:numberpicker/numberpicker.dart'; @@ -253,10 +254,10 @@ class ToolbarWidgetState extends State { for (var t in widget.htmlToolbarOptions.defaultToolbarButtons) { if (t is FontButtons) { for (var i = 0; i < _fontSelected.length; i++) { - if (t.getIcons1()[i].icon == FlatIcon.bold) { + if (t.getIcons1()[i].icon == FlatIcon1.bold) { _fontSelected[i] = fontList[0] ?? false; } - if (t.getIcons1()[i].icon == FlatIcon.italic) { + if (t.getIcons1()[i].icon == FlatIcon1.italic) { _fontSelected[i] = fontList[1] ?? false; } if (t.getIcons1()[i].icon == FlatIcon.underline) { @@ -264,7 +265,7 @@ class ToolbarWidgetState extends State { } } for (var i = 0; i < _miscFontSelected.length; i++) { - if (t.getIcons2()[i].icon == FlatIcon.strikethrough) { + if (t.getIcons2()[i].icon == FlatIcon1.strikethrough) { _miscFontSelected[i] = miscFontList[0] ?? false; } if (t.getIcons2()[i].icon == Icons.superscript) { @@ -277,26 +278,26 @@ class ToolbarWidgetState extends State { } if (t is ListButtons) { for (var i = 0; i < _listSelected.length; i++) { - if (t.getIcons()[i].icon == FlatIcon.bullet_list) { + if (t.getIcons()[i].icon == FlatIcon1.bullet_list) { _listSelected[i] = paragraphList[0] ?? false; } - if (t.getIcons()[i].icon == FlatIcon.number) { + if (t.getIcons()[i].icon == FlatIcon1.number) { _listSelected[i] = paragraphList[1] ?? false; } } } if (t is ParagraphButtons) { for (var i = 0; i < _alignSelected.length; i++) { - if (t.getIcons1()[i].icon == Icons.format_align_left) { + if (t.getIcons1()[i].icon == FlatIcon1.align_left) { _alignSelected[i] = alignList[0] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_align_center) { + if (t.getIcons1()[i].icon == FlatIcon1.align_center) { _alignSelected[i] = alignList[1] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_align_right) { + if (t.getIcons1()[i].icon == FlatIcon1.align_right) { _alignSelected[i] = alignList[2] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_align_justify) { + if (t.getIcons1()[i].icon == FlatIcon1.justification) { _alignSelected[i] = alignList[3] ?? false; } } @@ -917,7 +918,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons1()[index].icon == FlatIcon.bold) { + if (t.getIcons1()[index].icon == FlatIcon1.bold) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.bold, _fontSelected[index], updateStatus) ?? @@ -927,7 +928,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == FlatIcon.italic) { + if (t.getIcons1()[index].icon == FlatIcon1.italic) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.italic, _fontSelected[index], updateStatus) ?? @@ -987,7 +988,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons2()[index].icon == FlatIcon.strikethrough) { + if (t.getIcons2()[index].icon == FlatIcon1.strikethrough) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.strikethrough, _miscFontSelected[index], updateStatus) ?? @@ -1227,7 +1228,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons()[index].icon == FlatIcon.bullet_list) { + if (t.getIcons()[index].icon == FlatIcon1.bullet_list) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.ul, _listSelected[index], updateStatus) ?? @@ -1237,7 +1238,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons()[index].icon == FlatIcon.number) { + if (t.getIcons()[index].icon == FlatIcon1.number) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.ol, _listSelected[index], updateStatus) ?? @@ -1387,7 +1388,7 @@ class ToolbarWidgetState extends State { }); } - if (t.getIcons1()[index].icon == Icons.format_align_left) { + if (t.getIcons1()[index].icon == FlatIcon1.align_left) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.alignLeft, _alignSelected[index], updateStatus) ?? @@ -1397,7 +1398,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_align_center) { + if (t.getIcons1()[index].icon == FlatIcon1.align_center) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.alignCenter, _alignSelected[index], updateStatus) ?? @@ -1407,7 +1408,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_align_right) { + if (t.getIcons1()[index].icon == FlatIcon1.align_right) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.alignRight, _alignSelected[index], updateStatus) ?? @@ -1417,7 +1418,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_align_justify) { + if (t.getIcons1()[index].icon == FlatIcon1.justification) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.alignJustify, _alignSelected[index], updateStatus) ?? @@ -2619,7 +2620,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.undo) { + if (t.getIcons1()[index].icon == FlatIcon1.undo) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.undo, null, null) ?? true; @@ -2627,7 +2628,7 @@ class ToolbarWidgetState extends State { widget.controller.undo(); } } - if (t.getIcons1()[index].icon == Icons.redo) { + if (t.getIcons1()[index].icon == FlatIcon1.redo) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.redo, null, null) ?? true; diff --git a/lib/utils/flat_icon1.dart b/lib/utils/flat_icon1.dart new file mode 100644 index 00000000..70476c91 --- /dev/null +++ b/lib/utils/flat_icon1.dart @@ -0,0 +1,35 @@ +/// Flutter icons FlatIcon +/// Copyright (C) 2021 by original authors @ fluttericon.com, fontello.com +/// This font was generated by FlutterIcon.com, which is derived from Fontello. +/// +/// To use this font, place it in your fonts/ directory and include the +/// following in your pubspec.yaml +/// +/// flutter: +/// fonts: +/// - family: FlatIcon +/// fonts: +/// - asset: fonts/FlatIcon.ttf +/// +/// +/// +import 'package:flutter/widgets.dart'; + +class FlatIcon1 { + FlatIcon1._(); + + static const _kFontFam = 'FlatIconNew1'; + static const String? _kFontPkg = 'html_editor_enhanced'; + + static const IconData bold = IconData(0xf101, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData strikethrough = IconData(0xf102, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData italic = IconData(0xf103, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData number = IconData(0xf104, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData bullet_list = IconData(0xf105, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData align_left = IconData(0xf107, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData undo = IconData(0xf108, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData align_center = IconData(0xf109, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData redo = IconData(0xf10a, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData align_right = IconData(0xf10b, fontFamily: _kFontFam, fontPackage: _kFontPkg); + static const IconData justification = IconData(0xf10c, fontFamily: _kFontFam, fontPackage: _kFontPkg); +} diff --git a/lib/utils/flat_icon_new_icons.dart b/lib/utils/flat_icon_new_icons.dart index 6c9ade75..c518f0c3 100644 --- a/lib/utils/flat_icon_new_icons.dart +++ b/lib/utils/flat_icon_new_icons.dart @@ -7,7 +7,6 @@ class FlatIcon { static const String _kFontPkg = 'html_editor_enhanced'; static const IconData paste = IconData(0xf102, fontFamily: _kFontFam, fontPackage: _kFontPkg); - static const IconData transfer = IconData(0xf103, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData bullet_list = IconData(0xf104, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData number = IconData(0xf105, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData bold = IconData(0xf106, fontFamily: _kFontFam, fontPackage: _kFontPkg); diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index f4461bcc..967ff8d1 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:html_editor_enhanced/utils/flat_icon1.dart'; import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; /// Abstract class that all the toolbar classes extend @@ -6,7 +7,8 @@ abstract class Toolbar { const Toolbar(); } -const sizeIcon = 20.0; +const sizeIcon = 24.0; +const colorIcon = Color(0xff6A6A6A); /// Style group class StyleButtons extends Toolbar { @@ -52,16 +54,16 @@ class FontButtons extends Toolbar { List getIcons1() { var icons = []; - if (bold) icons.add(Icon(FlatIcon.bold,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (italic) icons.add(Icon(FlatIcon.italic,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (underline) icons.add(Icon(FlatIcon.underline,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (bold) icons.add(Icon(FlatIcon1.bold,color: colorIcon,size: sizeIcon,)); + if (italic) icons.add(Icon(FlatIcon1.italic,color: colorIcon,size: sizeIcon,)); + if (underline) icons.add(Icon(FlatIcon.underline,color: colorIcon,size: sizeIcon,)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } List getIcons2() { var icons = []; - if (strikethrough) icons.add(Icon(FlatIcon.strikethrough,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (strikethrough) icons.add(Icon(FlatIcon1.strikethrough,color: colorIcon,size: sizeIcon,)); if (superscript) icons.add(Icon(Icons.superscript)); if (subscript) icons.add(Icon(Icons.subscript)); return icons; @@ -100,8 +102,8 @@ class ListButtons extends Toolbar { List getIcons() { var icons = []; - if (ul) icons.add(Icon(FlatIcon.bullet_list,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (ol) icons.add(Icon(FlatIcon.number,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (ul) icons.add(Icon(FlatIcon1.bullet_list,color: colorIcon,size: sizeIcon,)); + if (ol) icons.add(Icon(FlatIcon1.number,color: colorIcon,size: sizeIcon,)); return icons; } } @@ -132,10 +134,10 @@ class ParagraphButtons extends Toolbar { List getIcons1() { var icons = []; - if (alignLeft) icons.add(Icon(Icons.format_align_left,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (alignCenter) icons.add(Icon(Icons.format_align_center,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (alignRight) icons.add(Icon(Icons.format_align_right,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (alignJustify) icons.add(Icon(Icons.format_align_justify,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (alignLeft) icons.add(Icon(FlatIcon1.align_left,color: colorIcon,size: sizeIcon,)); + if (alignCenter) icons.add(Icon(FlatIcon1.align_center,color: colorIcon,size: sizeIcon,)); + if (alignRight) icons.add(Icon(FlatIcon1.align_right,color: colorIcon,size: sizeIcon,)); + if (alignJustify) icons.add(Icon(FlatIcon1.justification,color: colorIcon,size: 18,)); return icons; } @@ -169,7 +171,7 @@ class InsertButtons extends Toolbar { List getIcons() { var icons = []; - if (link) icons.add(Icon(FlatIcon.link,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (link) icons.add(Icon(FlatIcon.link,color: colorIcon,size: 18,)); if (picture) icons.add(Icon(Icons.image_outlined)); if (audio) icons.add(Icon(Icons.audiotrack_outlined)); if (video) icons.add(Icon(Icons.videocam_outlined)); @@ -204,8 +206,8 @@ class OtherButtons extends Toolbar { var icons = []; if (fullscreen) icons.add(Icon(Icons.fullscreen)); if (codeview) icons.add(Icon(Icons.code)); - if (undo) icons.add(Icon(Icons.undo,color: Color(0xff6A6A6A),size: sizeIcon,)); - if (redo) icons.add(Icon(Icons.redo,color: Color(0xff6A6A6A),size: sizeIcon,)); + if (undo) icons.add(Icon(FlatIcon1.undo,color: colorIcon,size: sizeIcon,)); + if (redo) icons.add(Icon(FlatIcon1.redo,color: colorIcon,size: sizeIcon,)); if (help) icons.add(Icon(Icons.help_outline)); return icons; } diff --git a/pubspec.yaml b/pubspec.yaml index a65c0758..0c27c710 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -81,6 +81,9 @@ flutter: - family: FlatIconNew fonts: - asset: packages/html_editor_enhanced/assets/font/FlatIconNew.ttf + - family: FlatIconNew1 + fonts: + - asset: packages/html_editor_enhanced/assets/font/FlatIcon1.ttf # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf From 2dca259db7ee0807c1372b266084fb3f0a89eb96 Mon Sep 17 00:00:00 2001 From: BarryDuong Date: Thu, 16 Sep 2021 10:03:50 +0700 Subject: [PATCH 10/22] update size icon Underline text --- lib/utils/toolbar.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index 967ff8d1..f3df244b 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -56,7 +56,7 @@ class FontButtons extends Toolbar { var icons = []; if (bold) icons.add(Icon(FlatIcon1.bold,color: colorIcon,size: sizeIcon,)); if (italic) icons.add(Icon(FlatIcon1.italic,color: colorIcon,size: sizeIcon,)); - if (underline) icons.add(Icon(FlatIcon.underline,color: colorIcon,size: sizeIcon,)); + if (underline) icons.add(Icon(FlatIcon.underline,color: colorIcon,size: 18,)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } From a59c6164bba3c3ffecdcceca1a407f895b84d620 Mon Sep 17 00:00:00 2001 From: BarryDuong Date: Fri, 24 Sep 2021 18:39:26 +0700 Subject: [PATCH 11/22] upgrade flutter color picker --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 0c27c710..4438b498 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: # or "done" (iOS) to reset the editor's height flutter_keyboard_visibility: ^5.0.3 # plugin to show a color picker for foreground/highlight color - flutter_colorpicker: ^0.5.0 + flutter_colorpicker: ^0.6.0 # plugin to get files from filesystem file_picker: ^4.0.2 # plugin to show a scrollable number picker for inserting tables From 24a9523c37d316b9a528a058d570c991fd12a786 Mon Sep 17 00:00:00 2001 From: BarryDuong Date: Mon, 4 Oct 2021 20:38:29 +0700 Subject: [PATCH 12/22] change icon underline --- lib/src/widgets/toolbar_widget.dart | 5 +++-- lib/utils/toolbar.dart | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index ec5cf45c..1ee4616a 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:html_editor_enhanced/html_editor.dart'; import 'package:html_editor_enhanced/utils/flat_icon1.dart'; import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; @@ -260,7 +261,7 @@ class ToolbarWidgetState extends State { if (t.getIcons1()[i].icon == FlatIcon1.italic) { _fontSelected[i] = fontList[1] ?? false; } - if (t.getIcons1()[i].icon == FlatIcon.underline) { + if (t.getIcons1()[i].icon == Icons.format_underline) { _fontSelected[i] = fontList[2] ?? false; } } @@ -938,7 +939,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == FlatIcon.underline) { + if (t.getIcons1()[index].icon == Icons.format_underline) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.underline, _fontSelected[index], updateStatus) ?? diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index f3df244b..93cb315d 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -56,7 +56,7 @@ class FontButtons extends Toolbar { var icons = []; if (bold) icons.add(Icon(FlatIcon1.bold,color: colorIcon,size: sizeIcon,)); if (italic) icons.add(Icon(FlatIcon1.italic,color: colorIcon,size: sizeIcon,)); - if (underline) icons.add(Icon(FlatIcon.underline,color: colorIcon,size: 18,)); + if (underline) icons.add(Icon(Icons.format_underline,color: colorIcon,size: sizeIcon,)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } From d7de9c3a1b0922a33ff71c82fe1c1bc6afd4a971 Mon Sep 17 00:00:00 2001 From: BarryDuong Date: Thu, 7 Oct 2021 20:11:38 +0700 Subject: [PATCH 13/22] change icon Underline text --- lib/assets/font/FlutterIcon.ttf | Bin 0 -> 1848 bytes lib/src/widgets/toolbar_widget.dart | 6 +++--- lib/utils/flutter_icon.dart | 29 ++++++++++++++++++++++++++++ lib/utils/toolbar.dart | 3 ++- pubspec.yaml | 7 +++++-- 5 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 lib/assets/font/FlutterIcon.ttf create mode 100644 lib/utils/flutter_icon.dart diff --git a/lib/assets/font/FlutterIcon.ttf b/lib/assets/font/FlutterIcon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c07b0708a87b415bf8409fd59fae4c5af5969b6 GIT binary patch literal 1848 zcmd^AO>YxN7=C8gcEGOe@{y>jDl|ltf*Lu=0xN`26xG2IRXC3yaA?&WDpjGk{)JxJTe)!L5cSeyQ4T#Afw=Wp+-G(t)JW+s=&Wbh{&0so#ho{^W2dh?*Xjv~6#2DD=HM z15w5W`rn`}L$B{QuDFlr-(x>Dh!XYT)7{6wRF3|0VC;5dyvcDyTaP-M$!4Vt+1c;^ zc0aFN{tKl{`^UW>d@aoG<6V1XJ*RmHmYJ?svT)Yenl17I#uNS`78t*^QvYBL<-k)R z-h_@!H$8t6i=fx>xPIml^l7gkBT(39?UDEnd2W2y(iPjz?qUy%f)QBA+hh-DpR}*E zusqrs?WFbi%x>U5Wu_WB<1A~vHlH*w$Iku5n$dhjR;%ZDXO`r1m`yb~&5w4*%sU%t zXOTnbxc~2sZwK33rVMGVbfsu#)z{~n&u+YHJ?9B4;S7*JIeYrNd+ww&bG-1*Y*k!1 za^7`jrjHyyA)KXut+KFwf3Z}oREpwZsa$@xlGG~GWp^XkaCxsK4#)Cz<$f($5noVH zdhw0B;qtd{ae@x(C?1PB%Qmt{K`D&@z$W)xPNQGZUhqfq%l5NWHP zIj_>$@H@l6izk=~xbDYEFAC*ibzy>C^+P}Ql;6@@C$~F}Qf=9eqrR-0J>(#cHvOim zc9j}jnxCKC8#P22u$nP?=%5P)$um;pmq)_k_r<{?(M>8Om6@u?C*dI=<6+1d-PDuN zUS@C8qge$%)i>!4QRS12(B~Vj6`IlhfLHX=SAS*Z)pSOP26Y{-7;v|kXJ&Hsea*q_ zdKy8(%=CVenN*q4!P-@7!&L93k+rDLvQBWD`#Why?KJv0%|vpgSM!jpr1oucohJ3w lw4RFWCCu~sue|wwrcHm}4{DaMgpI?)u;s@=FVue={{R6s6YT&1 literal 0 HcmV?d00001 diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index 1ee4616a..035d86d4 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -5,10 +5,10 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:html_editor_enhanced/html_editor.dart'; import 'package:html_editor_enhanced/utils/flat_icon1.dart'; import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; +import 'package:html_editor_enhanced/utils/flutter_icon.dart'; import 'package:html_editor_enhanced/utils/utils.dart'; import 'package:numberpicker/numberpicker.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; @@ -261,7 +261,7 @@ class ToolbarWidgetState extends State { if (t.getIcons1()[i].icon == FlatIcon1.italic) { _fontSelected[i] = fontList[1] ?? false; } - if (t.getIcons1()[i].icon == Icons.format_underline) { + if (t.getIcons1()[i].icon == FlutterIcon.underline) { _fontSelected[i] = fontList[2] ?? false; } } @@ -939,7 +939,7 @@ class ToolbarWidgetState extends State { updateStatus(); } } - if (t.getIcons1()[index].icon == Icons.format_underline) { + if (t.getIcons1()[index].icon == FlutterIcon.underline) { var proceed = await widget.htmlToolbarOptions.onButtonPressed ?.call(ButtonType.underline, _fontSelected[index], updateStatus) ?? diff --git a/lib/utils/flutter_icon.dart b/lib/utils/flutter_icon.dart new file mode 100644 index 00000000..779a17d7 --- /dev/null +++ b/lib/utils/flutter_icon.dart @@ -0,0 +1,29 @@ +/// Flutter icons FlutterIcon +/// Copyright (C) 2021 by original authors @ fluttericon.com, fontello.com +/// This font was generated by FlutterIcon.com, which is derived from Fontello. +/// +/// To use this font, place it in your fonts/ directory and include the +/// following in your pubspec.yaml +/// +/// flutter: +/// fonts: +/// - family: FlutterIcon +/// fonts: +/// - asset: fonts/FlutterIcon.ttf +/// +/// +/// * Linearicons Free, Copyright (C) Linearicons.com +/// Author: Perxis +/// License: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/) +/// Homepage: https://linearicons.com +/// +import 'package:flutter/widgets.dart'; + +class FlutterIcon { + FlutterIcon._(); + + static const _kFontFam = 'FlutterIcon1'; + static const String? _kFontPkg = 'html_editor_enhanced'; + + static const IconData underline = IconData(0xe895, fontFamily: _kFontFam, fontPackage: _kFontPkg); +} diff --git a/lib/utils/toolbar.dart b/lib/utils/toolbar.dart index 93cb315d..d7e48d4a 100644 --- a/lib/utils/toolbar.dart +++ b/lib/utils/toolbar.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:html_editor_enhanced/utils/flat_icon1.dart'; import 'package:html_editor_enhanced/utils/flat_icon_new_icons.dart'; +import 'package:html_editor_enhanced/utils/flutter_icon.dart'; /// Abstract class that all the toolbar classes extend abstract class Toolbar { @@ -56,7 +57,7 @@ class FontButtons extends Toolbar { var icons = []; if (bold) icons.add(Icon(FlatIcon1.bold,color: colorIcon,size: sizeIcon,)); if (italic) icons.add(Icon(FlatIcon1.italic,color: colorIcon,size: sizeIcon,)); - if (underline) icons.add(Icon(Icons.format_underline,color: colorIcon,size: sizeIcon,)); + if (underline) icons.add(Icon(FlutterIcon.underline,color: colorIcon,size: sizeIcon,)); if (clearAll) icons.add(Icon(Icons.format_clear)); return icons; } diff --git a/pubspec.yaml b/pubspec.yaml index 4438b498..b4758dd9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,6 +33,7 @@ dependencies: pedantic: ^1.11.1 # plugin for @internal annotation meta: '>=1.0.0 <2.0.0' + flutter_svg: ^0.22.0 dev_dependencies: flutter_test: @@ -62,8 +63,7 @@ flutter: # adding or updating assets for this project. # To add assets to your plugin package, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg +# assets: # - images/a_dot_ham.jpeg # # For details regarding assets in packages, see @@ -84,6 +84,9 @@ flutter: - family: FlatIconNew1 fonts: - asset: packages/html_editor_enhanced/assets/font/FlatIcon1.ttf + - family: FlutterIcon1 + fonts: + - asset: packages/html_editor_enhanced/assets/font/FlutterIcon.ttf # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf From 00bc20b33f0fd685213097a85e8ffccc212ce417 Mon Sep 17 00:00:00 2001 From: tungduong Date: Sat, 18 Dec 2021 15:14:10 +0700 Subject: [PATCH 14/22] remove svg package --- pubspec.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 21215242..80ab5d4b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,7 +31,6 @@ dependencies: pedantic: ^1.11.1 # plugin for @internal annotation meta: '>=1.0.0 <2.0.0' - flutter_svg: ^0.22.0 dev_dependencies: flutter_test: From aa915dd8c49bb5586dc6eb7a2a06c87e1464f8d6 Mon Sep 17 00:00:00 2001 From: tungduong Date: Sat, 18 Dec 2021 15:36:21 +0700 Subject: [PATCH 15/22] update pub lock --- pubspec.lock | 45 +++++---------------------------------------- 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 0131bb7d..736f2538 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -21,7 +21,7 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: @@ -111,13 +111,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.3" - flutter_svg: - dependency: "direct main" - description: - name: flutter_svg - url: "https://pub.dartlang.org" - source: hosted - version: "0.22.0" flutter_test: dependency: "direct dev" description: flutter @@ -148,7 +141,7 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: "direct main" description: @@ -170,20 +163,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" - path_drawing: - dependency: transitive - description: - name: path_drawing - url: "https://pub.dartlang.org" - source: hosted - version: "0.5.1+1" - path_parsing: - dependency: transitive - description: - name: path_parsing - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.1" pedantic: dependency: "direct main" description: @@ -191,13 +170,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.11.1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "4.4.0" plugin_platform_interface: dependency: transitive description: @@ -258,7 +230,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.3" typed_data: dependency: transitive description: @@ -272,7 +244,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" visibility_detector: dependency: "direct main" description: @@ -280,13 +252,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.2.2" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "5.3.1" sdks: dart: ">=2.14.0 <3.0.0" flutter: ">=2.2.0" From b67d13851e9b5a2a997094a4246d38f288460042 Mon Sep 17 00:00:00 2001 From: Nam Date: Thu, 1 Sep 2022 16:27:40 +0700 Subject: [PATCH 16/22] add css --- lib/assets/summernote-lite.min.css | 1743 +++++++++++++++------------- 1 file changed, 931 insertions(+), 812 deletions(-) diff --git a/lib/assets/summernote-lite.min.css b/lib/assets/summernote-lite.min.css index dbab9d98..ee775d36 100644 --- a/lib/assets/summernote-lite.min.css +++ b/lib/assets/summernote-lite.min.css @@ -3,1474 +3,1593 @@ } @font-face { - font-family: summernote; - font-style: normal; - font-weight: 400; - font-display: auto; - src: url(font/summernote.eot); - src: url(font/summernote.eot?#iefix) format("embedded-opentype"),url(font/summernote.woff2) format("woff2"),url(font/summernote.woff) format("woff"),url(font/summernote.ttf) format("truetype"); -} - -[class*=" note-icon"]:before,[class^=note-icon]:before { - display: inline-block; - font-family: summernote; - font-style: normal; - font-size: inherit; - text-decoration: inherit; - text-rendering: auto; - text-transform: none; - vertical-align: middle; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - speak: none; + font-family: summernote; + font-style: normal; + font-weight: 400; + font-display: auto; + src: url(font/summernote.eot); + src: url(font/summernote.eot?#iefix) format("embedded-opentype"), url(font/summernote.woff2) format("woff2"), url(font/summernote.woff) format("woff"), url(font/summernote.ttf) format("truetype"); +} + +[class*=" note-icon"]:before, [class^=note-icon]:before { + display: inline-block; + font-family: summernote; + font-style: normal; + font-size: inherit; + text-decoration: inherit; + text-rendering: auto; + text-transform: none; + vertical-align: middle; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + speak: none; } .note-icon-fw { - text-align: center; - width: 1.25em; + text-align: center; + width: 1.25em; } .note-icon-border { - border: .08em solid #eee; - border-radius: .1em; - padding: .2em .25em .15em; + border: .08em solid #eee; + border-radius: .1em; + padding: .2em .25em .15em; } .note-icon-pull-left { - float: left; + float: left; } .note-icon-pull-right { - float: right; + float: right; } .note-icon.note-icon-pull-left { - margin-right: .3em; + margin-right: .3em; } .note-icon.note-icon-pull-right { - margin-left: .3em; + margin-left: .3em; } .note-icon-align:before { - content: "\ea01"; + content: "\ea01"; } .note-icon-align-center:before { - content: "\ea02"; + content: "\ea02"; } .note-icon-align-indent:before { - content: "\ea03"; + content: "\ea03"; } .note-icon-align-justify:before { - content: "\ea04"; + content: "\ea04"; } .note-icon-align-left:before { - content: "\ea05"; + content: "\ea05"; } .note-icon-align-outdent:before { - content: "\ea06"; + content: "\ea06"; } .note-icon-align-right:before { - content: "\ea07"; + content: "\ea07"; } .note-icon-arrow-circle-down:before { - content: "\ea08"; + content: "\ea08"; } .note-icon-arrow-circle-left:before { - content: "\ea09"; + content: "\ea09"; } .note-icon-arrow-circle-right:before { - content: "\ea0a"; + content: "\ea0a"; } .note-icon-arrow-circle-up:before { - content: "\ea0b"; + content: "\ea0b"; } .note-icon-arrows-alt:before { - content: "\ea0c"; + content: "\ea0c"; } .note-icon-arrows-h:before { - content: "\ea0d"; + content: "\ea0d"; } .note-icon-arrows-v:before { - content: "\ea0e"; + content: "\ea0e"; } .note-icon-bold:before { - content: "\ea0f"; + content: "\ea0f"; } .note-icon-caret:before { - content: "\ea10"; + content: "\ea10"; } .note-icon-chain-broken:before { - content: "\ea11"; + content: "\ea11"; } .note-icon-circle:before { - content: "\ea12"; + content: "\ea12"; } .note-icon-close:before { - content: "\ea13"; + content: "\ea13"; } .note-icon-code:before { - content: "\ea14"; + content: "\ea14"; } .note-icon-col-after:before { - content: "\ea15"; + content: "\ea15"; } .note-icon-col-before:before { - content: "\ea16"; + content: "\ea16"; } .note-icon-col-remove:before { - content: "\ea17"; + content: "\ea17"; } .note-icon-eraser:before { - content: "\ea18"; + content: "\ea18"; } .note-icon-float-left:before { - content: "\ea19"; + content: "\ea19"; } .note-icon-float-none:before { - content: "\ea1a"; + content: "\ea1a"; } .note-icon-float-right:before { - content: "\ea1b"; + content: "\ea1b"; } .note-icon-font:before { - content: "\ea1c"; + content: "\ea1c"; } .note-icon-frame:before { - content: "\ea1d"; + content: "\ea1d"; } .note-icon-italic:before { - content: "\ea1e"; + content: "\ea1e"; } .note-icon-link:before { - content: "\ea1f"; + content: "\ea1f"; } .note-icon-magic:before { - content: "\ea20"; + content: "\ea20"; } .note-icon-menu-check:before { - content: "\ea21"; + content: "\ea21"; } .note-icon-minus:before { - content: "\ea22"; + content: "\ea22"; } .note-icon-orderedlist:before { - content: "\ea23"; + content: "\ea23"; } .note-icon-pencil:before { - content: "\ea24"; + content: "\ea24"; } .note-icon-picture:before { - content: "\ea25"; + content: "\ea25"; } .note-icon-question:before { - content: "\ea26"; + content: "\ea26"; } .note-icon-redo:before { - content: "\ea27"; + content: "\ea27"; } .note-icon-rollback:before { - content: "\ea28"; + content: "\ea28"; } .note-icon-row-above:before { - content: "\ea29"; + content: "\ea29"; } .note-icon-row-below:before { - content: "\ea2a"; + content: "\ea2a"; } .note-icon-row-remove:before { - content: "\ea2b"; + content: "\ea2b"; } .note-icon-special-character:before { - content: "\ea2c"; + content: "\ea2c"; } .note-icon-square:before { - content: "\ea2d"; + content: "\ea2d"; } .note-icon-strikethrough:before { - content: "\ea2e"; + content: "\ea2e"; } .note-icon-subscript:before { - content: "\ea2f"; + content: "\ea2f"; } .note-icon-summernote:before { - content: "\ea30"; + content: "\ea30"; } .note-icon-superscript:before { - content: "\ea31"; + content: "\ea31"; } .note-icon-table:before { - content: "\ea32"; + content: "\ea32"; } .note-icon-text-height:before { - content: "\ea33"; + content: "\ea33"; } .note-icon-trash:before { - content: "\ea34"; + content: "\ea34"; } .note-icon-underline:before { - content: "\ea35"; + content: "\ea35"; } .note-icon-undo:before { - content: "\ea36"; + content: "\ea36"; } .note-icon-unorderedlist:before { - content: "\ea37"; + content: "\ea37"; } .note-icon-video:before { - content: "\ea38"; + content: "\ea38"; } .note-frame { - -ms-box-sizing: border-box; - box-sizing: border-box; - color: #000; - font-family: sans-serif; - border-radius: 4px; + -ms-box-sizing: border-box; + box-sizing: border-box; + color: #000; + font-family: sans-serif; + border-radius: 4px; } .note-toolbar { - padding: 10px 5px; - color: #333; - background-color: #f5f5f5; - border-bottom: 1px solid; - border-color: #ddd; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + padding: 10px 5px; + color: #333; + background-color: #f5f5f5; + border-bottom: 1px solid; + border-color: #ddd; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } .note-btn-group { - position: relative; - display: inline-block; - margin-right: 8px; + position: relative; + display: inline-block; + margin-right: 8px; } -.note-btn-group>.note-btn-group { - margin-right: 0; +.note-btn-group > .note-btn-group { + margin-right: 0; } -.note-btn-group>.note-btn:first-child { - margin-left: 0; +.note-btn-group > .note-btn:first-child { + margin-left: 0; } -.note-btn-group .note-btn+.note-btn,.note-btn-group .note-btn+.note-btn-group,.note-btn-group .note-btn-group+.note-btn,.note-btn-group .note-btn-group+.note-btn-group { - margin-left: -1px; +.note-btn-group .note-btn + .note-btn, .note-btn-group .note-btn + .note-btn-group, .note-btn-group .note-btn-group + .note-btn, .note-btn-group .note-btn-group + .note-btn-group { + margin-left: -1px; } -.note-btn-group>.note-btn-group:not(:first-child)>.note-btn,.note-btn-group>.note-btn:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; +.note-btn-group > .note-btn-group:not(:first-child) > .note-btn, .note-btn-group > .note-btn:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -.note-btn-group>.note-btn-group:not(:last-child)>.note-btn,.note-btn-group>.note-btn:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; +.note-btn-group > .note-btn-group:not(:last-child) > .note-btn, .note-btn-group > .note-btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } -.note-btn-group.open>.note-dropdown { - display: block; +.note-btn-group.open > .note-dropdown { + display: block; } .note-btn { - display: inline-block; - font-weight: 400; - margin-bottom: 0; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - white-space: nowrap; - outline: 0; - color: #333; - background-color: #fff; - border: 1px solid #dae0e5; - padding: 5px 10px; - font-size: 14px; - line-height: 1.4; - border-radius: 3px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.note-btn.focus,.note-btn:focus,.note-btn:hover { - color: #333; - background-color: #ebebeb; - border-color: #dae0e5; -} - -.note-btn.disabled.focus,.note-btn.disabled:focus,.note-btn[disabled].focus,.note-btn[disabled]:focus,fieldset[disabled] .note-btn.focus,fieldset[disabled] .note-btn:focus { - background-color: #fff; - border-color: #dae0e5; -} - -.note-btn.active,.note-btn.focus,.note-btn:active,.note-btn:focus,.note-btn:hover { - color: #333; - text-decoration: none; - border: 1px solid #dae0e5; - background-color: #ebebeb; - outline: 0; - border-radius: 1px; -} - -.note-btn.active,.note-btn:active { - background-image: none; - box-shadow: inset 0 3px 5px rgba(0,0,0,.125); -} - -.note-btn.disabled,.note-btn[disabled],fieldset[disabled] .note-btn { - cursor: not-allowed; - -webkit-opacity: .65; - -khtml-opacity: .65; - -moz-opacity: .65; - opacity: .65; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=65); - filter: alpha(opacity=65); - box-shadow: none; -} - -.note-btn>span.note-icon-caret:first-child { - margin-left: -1px; -} - -.note-btn>span.note-icon-caret:nth-child(2) { - padding-left: 3px; - margin-right: -5px; + display: inline-block; + font-weight: 400; + margin-bottom: 0; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; + white-space: nowrap; + outline: 0; + color: #333; + background-color: #fff; + border: 1px solid #dae0e5; + padding: 5px 10px; + font-size: 14px; + line-height: 1.4; + border-radius: 3px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.note-btn.focus, .note-btn:focus, .note-btn:hover { + color: #333; + background-color: #ebebeb; + border-color: #dae0e5; +} + +.note-btn.disabled.focus, .note-btn.disabled:focus, .note-btn[disabled].focus, .note-btn[disabled]:focus, fieldset[disabled] .note-btn.focus, fieldset[disabled] .note-btn:focus { + background-color: #fff; + border-color: #dae0e5; +} + +.note-btn.active, .note-btn.focus, .note-btn:active, .note-btn:focus, .note-btn:hover { + color: #333; + text-decoration: none; + border: 1px solid #dae0e5; + background-color: #ebebeb; + outline: 0; + border-radius: 1px; +} + +.note-btn.active, .note-btn:active { + background-image: none; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.note-btn.disabled, .note-btn[disabled], fieldset[disabled] .note-btn { + cursor: not-allowed; + -webkit-opacity: .65; + -khtml-opacity: .65; + -moz-opacity: .65; + opacity: .65; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=65); + filter: alpha(opacity=65); + box-shadow: none; +} + +.note-btn > span.note-icon-caret:first-child { + margin-left: -1px; +} + +.note-btn > span.note-icon-caret:nth-child(2) { + padding-left: 3px; + margin-right: -5px; } .note-btn-primary { - background: #fa6362; - color: #fff; + background: #fa6362; + color: #fff; } -.note-btn-primary.focus,.note-btn-primary:focus,.note-btn-primary:hover { - color: #fff; - text-decoration: none; - border: 1px solid #dae0e5; - background-color: #fa6362; - border-radius: 1px; +.note-btn-primary.focus, .note-btn-primary:focus, .note-btn-primary:hover { + color: #fff; + text-decoration: none; + border: 1px solid #dae0e5; + background-color: #fa6362; + border-radius: 1px; } .note-btn-block { - display: block; - width: 100%; + display: block; + width: 100%; } -.note-btn-block+.note-btn-block { - margin-top: 5px; +.note-btn-block + .note-btn-block { + margin-top: 5px; } -input[type=button].note-btn-block,input[type=reset].note-btn-block,input[type=submit].note-btn-block { - width: 100%; +input[type=button].note-btn-block, input[type=reset].note-btn-block, input[type=submit].note-btn-block { + width: 100%; } button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; } .close { - float: right; - font-size: 21px; - line-height: 1; - color: #000; - opacity: .2; + float: right; + font-size: 21px; + line-height: 1; + color: #000; + opacity: .2; } .close:hover { - -webkit-opacity: 1; - -khtml-opacity: 1; - -moz-opacity: 1; - -ms-filter: alpha(opacity=100); - filter: alpha(opacity=100); - opacity: 1; + -webkit-opacity: 1; + -khtml-opacity: 1; + -moz-opacity: 1; + -ms-filter: alpha(opacity=100); + filter: alpha(opacity=100); + opacity: 1; } .note-dropdown { - position: relative; + position: relative; } .note-color .dropdown-toggle { - width: 30px; - padding-left: 5px; + width: 30px; + padding-left: 5px; } .note-dropdown-menu { - display: none; - min-width: 100px; - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - text-align: left; - background: #fff; - border: 1px solid #e2e2e2; - padding: 5px; - background-clip: padding-box; - box-shadow: 0 1px 1px rgba(0,0,0,.06); + display: none; + min-width: 100px; + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + text-align: left; + background: #fff; + border: 1px solid #e2e2e2; + padding: 5px; + background-clip: padding-box; + box-shadow: 0 1px 1px rgba(0, 0, 0, .06); } -.note-dropdown-menu>:last-child { - margin-right: 0; +.note-dropdown-menu > :last-child { + margin-right: 0; } -.note-btn-group.open .note-dropdown-menu,.note-dropdown-item { - display: block; +.note-btn-group.open .note-dropdown-menu, .note-dropdown-item { + display: block; } .note-dropdown-item:hover { - background-color: #ebebeb; + background-color: #ebebeb; } -a.note-dropdown-item,a.note-dropdown-item:hover { - margin: 5px 0; - color: #000; - text-decoration: none; +a.note-dropdown-item, a.note-dropdown-item:hover { + margin: 5px 0; + color: #000; + text-decoration: none; } .note-modal { - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - z-index: 1050; - -webkit-opacity: 1; - -khtml-opacity: 1; - -moz-opacity: 1; - opacity: 1; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100); - filter: alpha(opacity=100); - display: none; + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 1050; + -webkit-opacity: 1; + -khtml-opacity: 1; + -moz-opacity: 1; + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100); + filter: alpha(opacity=100); + display: none; } .note-modal.open { - display: block; + display: block; } .note-modal-content { - position: relative; - width: auto; - margin: 30px 20px; - border: 1px solid rgba(0,0,0,.2); - background: #fff; - background-clip: border-box; - outline: 0; - border-radius: 5px; - box-shadow: 0 3px 9px rgba(0,0,0,.5); + position: relative; + width: auto; + margin: 30px 20px; + border: 1px solid rgba(0, 0, 0, .2); + background: #fff; + background-clip: border-box; + outline: 0; + border-radius: 5px; + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .note-modal-header { - padding: 10px 20px; - border: 1px solid #ededef; + padding: 10px 20px; + border: 1px solid #ededef; } .note-modal-body { - position: relative; - padding: 20px 30px; + position: relative; + padding: 20px 30px; } .note-modal-body kbd { - border-radius: 2px; - background-color: #000; - color: #fff; - padding: 3px 5px; - font-weight: 700; - -ms-box-sizing: border-box; - box-sizing: border-box; + border-radius: 2px; + background-color: #000; + color: #fff; + padding: 3px 5px; + font-weight: 700; + -ms-box-sizing: border-box; + box-sizing: border-box; } .note-modal-footer { - height: 40px; - padding: 10px; - text-align: center; + height: 40px; + padding: 10px; + text-align: center; } .note-modal-footer a { - color: #337ab7; - text-decoration: none; + color: #337ab7; + text-decoration: none; } -.note-modal-footer a:focus,.note-modal-footer a:hover { - color: #23527c; - text-decoration: underline; +.note-modal-footer a:focus, .note-modal-footer a:hover { + color: #23527c; + text-decoration: underline; } .note-modal-footer .note-btn { - float: right; + float: right; } .note-modal-title { - font-size: 20px; - color: #42515f; - margin: 0; - line-height: 1.4; + font-size: 20px; + color: #42515f; + margin: 0; + line-height: 1.4; } .note-modal-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 1040; - background: #000; - -webkit-opacity: .5; - -khtml-opacity: .5; - -moz-opacity: .5; - opacity: .5; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); - filter: alpha(opacity=50); - display: none; + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 1040; + background: #000; + -webkit-opacity: .5; + -khtml-opacity: .5; + -moz-opacity: .5; + opacity: .5; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); + filter: alpha(opacity=50); + display: none; } .note-modal-backdrop.open { - display: block; + display: block; } -@media(min-width:768px) { - .note-modal-content { - width: 600px; - margin: 30px auto; - } +@media (min-width: 768px) { + .note-modal-content { + width: 600px; + margin: 30px auto; + } } -@media(min-width:992px) { - .note-modal-content-large { - width: 900px; - } +@media (min-width: 992px) { + .note-modal-content-large { + width: 900px; + } } .note-form-group { - padding-bottom: 20px; + padding-bottom: 20px; } .note-form-group:last-child { - padding-bottom: 0; + padding-bottom: 0; } .note-form-label { - display: block; - width: 100%; - font-size: 16px; - color: #42515f; - margin-bottom: 10px; - font-weight: 700; + display: block; + width: 100%; + font-size: 16px; + color: #42515f; + margin-bottom: 10px; + font-weight: 700; } .note-input { - width: 100%; - display: block; - border: 1px solid #ededef; - background: #fff; - outline: 0; - padding: 6px 4px; - font-size: 14px; - -ms-box-sizing: border-box; - box-sizing: border-box; + width: 100%; + display: block; + border: 1px solid #ededef; + background: #fff; + outline: 0; + padding: 6px 4px; + font-size: 14px; + -ms-box-sizing: border-box; + box-sizing: border-box; } .note-input::-webkit-input-placeholder { - color: #eee; + color: #eee; } -.note-input:-moz-placeholder,.note-input::-moz-placeholder { - color: #eee; +.note-input:-moz-placeholder, .note-input::-moz-placeholder { + color: #eee; } .note-input:-ms-input-placeholder { - color: #eee; + color: #eee; } .note-tooltip { - position: absolute; - z-index: 1070; - display: block; - font-size: 13px; - -webkit-transition: opacity .15s; - transition: opacity .15s; - -webkit-opacity: 0; - -khtml-opacity: 0; - -moz-opacity: 0; - opacity: 0; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); - filter: alpha(opacity=0); + position: absolute; + z-index: 1070; + display: block; + font-size: 13px; + -webkit-transition: opacity .15s; + transition: opacity .15s; + -webkit-opacity: 0; + -khtml-opacity: 0; + -moz-opacity: 0; + opacity: 0; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); + filter: alpha(opacity=0); } .note-tooltip.in { - -webkit-opacity: .9; - -khtml-opacity: .9; - -moz-opacity: .9; - opacity: .9; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=90); - filter: alpha(opacity=90); + -webkit-opacity: .9; + -khtml-opacity: .9; + -moz-opacity: .9; + opacity: .9; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=90); + filter: alpha(opacity=90); } .note-tooltip.top { - margin-top: -3px; - padding: 5px 0; + margin-top: -3px; + padding: 5px 0; } .note-tooltip.right { - margin-left: 3px; - padding: 0 5px; + margin-left: 3px; + padding: 0 5px; } .note-tooltip.bottom { - margin-top: 3px; - padding: 5px 0; + margin-top: 3px; + padding: 5px 0; } .note-tooltip.left { - margin-left: -3px; - padding: 0 5px; + margin-left: -3px; + padding: 0 5px; } .note-tooltip.bottom .note-tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } .note-tooltip.top .note-tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } .note-tooltip.right .note-tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; } .note-tooltip.left .note-tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; } .note-tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } .note-tooltip-content { - max-width: 200px; - font-family: sans-serif; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; + max-width: 200px; + font-family: sans-serif; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; } .note-popover { - position: absolute; - z-index: 1060; - display: block; - font-size: 13px; - font-family: sans-serif; - display: none; - background: #fff; - border: 1px solid #ccc; + position: absolute; + z-index: 1060; + display: block; + font-size: 13px; + font-family: sans-serif; + display: none; + background: #fff; + border: 1px solid #ccc; } .note-popover.in { - display: block; + display: block; } .note-popover.top { - margin-top: -10px; - padding: 5px 0; + margin-top: -10px; + padding: 5px 0; } .note-popover.right { - margin-left: 10px; - padding: 0 5px; + margin-left: 10px; + padding: 0 5px; } .note-popover.bottom { - margin-top: 10px; - padding: 5px 0; + margin-top: 10px; + padding: 5px 0; } .note-popover.left { - margin-left: -10px; - padding: 0 5px; + margin-left: -10px; + padding: 0 5px; } .note-popover.bottom .note-popover-arrow { - top: -11px; - left: 20px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0,0,0,.25); + top: -11px; + left: 20px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); } .note-popover.bottom .note-popover-arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; } .note-popover.top .note-popover-arrow { - bottom: -11px; - left: 20px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #999; - border-top-color: rgba(0,0,0,.25); + bottom: -11px; + left: 20px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); } .note-popover.top .note-popover-arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-bottom-width: 0; - border-top-color: #fff; + bottom: 1px; + margin-left: -10px; + content: " "; + border-bottom-width: 0; + border-top-color: #fff; } .note-popover.right .note-popover-arrow { - top: 50%; - left: -11px; - margin-top: -10px; - border-left-width: 0; - border-right-color: #999; - border-right-color: rgba(0,0,0,.25); + top: 50%; + left: -11px; + margin-top: -10px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); } .note-popover.right .note-popover-arrow:after { - left: 1px; - margin-top: -10px; - content: " "; - border-left-width: 0; - border-right-color: #fff; + left: 1px; + margin-top: -10px; + content: " "; + border-left-width: 0; + border-right-color: #fff; } .note-popover.left .note-popover-arrow { - top: 50%; - right: -11px; - margin-top: -10px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0,0,0,.25); + top: 50%; + right: -11px; + margin-top: -10px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); } .note-popover.left .note-popover-arrow:after { - right: 1px; - margin-top: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; + right: 1px; + margin-top: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; } .note-popover-arrow { - position: absolute; - width: 0; - height: 0; - border: 11px solid transparent; + position: absolute; + width: 0; + height: 0; + border: 11px solid transparent; } .note-popover-arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - content: " "; - border: 10px solid transparent; + position: absolute; + display: block; + width: 0; + height: 0; + content: " "; + border: 10px solid transparent; } .note-popover-content { - padding: 3px 8px; - color: #000; - text-align: center; - background-color: #fff; - min-width: 100px; - min-height: 30px; + padding: 3px 8px; + color: #000; + text-align: center; + background-color: #fff; + min-width: 100px; + min-height: 30px; } .note-editor { - position: relative; + position: relative; } .note-editor .note-dropzone { - position: absolute; - display: none; - z-index: 100; - color: #87cefa; - background-color: #fff; - opacity: .95; + position: absolute; + display: none; + z-index: 100; + color: #87cefa; + background-color: #fff; + opacity: .95; } .note-editor .note-dropzone .note-dropzone-message { - display: table-cell; - vertical-align: middle; - text-align: center; - font-size: 28px; - font-weight: 700; + display: table-cell; + vertical-align: middle; + text-align: center; + font-size: 28px; + font-weight: 700; } .note-editor .note-dropzone.hover { - color: #098ddf; + color: #098ddf; } .note-editor.dragover .note-dropzone { - display: table; + display: table; } .note-editor .note-editing-area { - position: relative; + position: relative; } .note-editor .note-editing-area .note-editable { - outline: none; + outline: none; } .note-editor .note-editing-area .note-editable sup { - vertical-align: super; + vertical-align: super; } .note-editor .note-editing-area .note-editable sub { - vertical-align: sub; + vertical-align: sub; } .note-editor .note-editing-area .note-editable img.note-float-left { - margin-right: 10px; + margin-right: 10px; } .note-editor .note-editing-area .note-editable img.note-float-right { - margin-left: 10px; + margin-left: 10px; } -.note-editor.note-airframe,.note-editor.note-frame { - border: 1px solid #a9a9a9; +.note-editor.note-airframe, .note-editor.note-frame { + border: 1px solid #a9a9a9; } -.note-editor.note-airframe.codeview .note-editing-area .note-editable,.note-editor.note-frame.codeview .note-editing-area .note-editable { - display: none; +.note-editor.note-airframe.codeview .note-editing-area .note-editable, .note-editor.note-frame.codeview .note-editing-area .note-editable { + display: none; } -.note-editor.note-airframe.codeview .note-editing-area .note-codable,.note-editor.note-frame.codeview .note-editing-area .note-codable { - display: block; +.note-editor.note-airframe.codeview .note-editing-area .note-codable, .note-editor.note-frame.codeview .note-editing-area .note-codable { + display: block; } -.note-editor.note-airframe .note-editing-area,.note-editor.note-frame .note-editing-area { - overflow: hidden; +.note-editor.note-airframe .note-editing-area, .note-editor.note-frame .note-editing-area { + overflow: hidden; } -.note-editor.note-airframe .note-editing-area .note-editable,.note-editor.note-frame .note-editing-area .note-editable { - padding: 10px; - overflow: auto; - word-wrap: break-word; +.note-editor.note-airframe .note-editing-area .note-editable, .note-editor.note-frame .note-editing-area .note-editable { + padding: 10px; + overflow: auto; + word-wrap: break-word; } -.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false],.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false] { - background-color: #e5e5e5; +.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false], .note-editor.note-frame .note-editing-area .note-editable[contenteditable=false] { + background-color: #e5e5e5; } -.note-editor.note-airframe .note-editing-area .note-codable,.note-editor.note-frame .note-editing-area .note-codable { - display: none; - width: 100%; - padding: 10px; - border: none; - box-shadow: none; - font-family: Menlo,Monaco,monospace,sans-serif; - font-size: 14px; - color: #ccc; - background-color: #222; - resize: none; - outline: none; - -ms-box-sizing: border-box; - box-sizing: border-box; - border-radius: 0; - margin-bottom: 0; +.note-editor.note-airframe .note-editing-area .note-codable, .note-editor.note-frame .note-editing-area .note-codable { + display: none; + width: 100%; + padding: 10px; + border: none; + box-shadow: none; + font-family: Menlo, Monaco, monospace, sans-serif; + font-size: 14px; + color: #ccc; + background-color: #222; + resize: none; + outline: none; + -ms-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0; + margin-bottom: 0; } -.note-editor.note-airframe.fullscreen,.note-editor.note-frame.fullscreen { - position: fixed; - top: 0; - left: 0; - width: 100%!important; - z-index: 1050; +.note-editor.note-airframe.fullscreen, .note-editor.note-frame.fullscreen { + position: fixed; + top: 0; + left: 0; + width: 100% !important; + z-index: 1050; } -.note-editor.note-airframe.fullscreen .note-editable,.note-editor.note-frame.fullscreen .note-editable { - background-color: #fff; +.note-editor.note-airframe.fullscreen .note-editable, .note-editor.note-frame.fullscreen .note-editable { + background-color: #fff; } -.note-editor.note-airframe.fullscreen .note-resizebar,.note-editor.note-frame.fullscreen .note-resizebar { - display: none; +.note-editor.note-airframe.fullscreen .note-resizebar, .note-editor.note-frame.fullscreen .note-resizebar { + display: none; } -.note-editor.note-airframe .note-status-output,.note-editor.note-frame .note-status-output { - display: block; - width: 100%; - font-size: 14px; - line-height: 1.42857143; - height: 20px; - margin-bottom: 0; - color: #000; - border: 0; - border-top: 1px solid #e2e2e2; +.note-editor.note-airframe .note-status-output, .note-editor.note-frame .note-status-output { + display: block; + width: 100%; + font-size: 14px; + line-height: 1.42857143; + height: 20px; + margin-bottom: 0; + color: #000; + border: 0; + border-top: 1px solid #e2e2e2; } -.note-editor.note-airframe .note-status-output:empty,.note-editor.note-frame .note-status-output:empty { - height: 0; - border-top: 0 solid transparent; +.note-editor.note-airframe .note-status-output:empty, .note-editor.note-frame .note-status-output:empty { + height: 0; + border-top: 0 solid transparent; } -.note-editor.note-airframe .note-status-output .pull-right,.note-editor.note-frame .note-status-output .pull-right { - float: right!important; +.note-editor.note-airframe .note-status-output .pull-right, .note-editor.note-frame .note-status-output .pull-right { + float: right !important; } -.note-editor.note-airframe .note-status-output .text-muted,.note-editor.note-frame .note-status-output .text-muted { - color: #777; +.note-editor.note-airframe .note-status-output .text-muted, .note-editor.note-frame .note-status-output .text-muted { + color: #777; } -.note-editor.note-airframe .note-status-output .text-primary,.note-editor.note-frame .note-status-output .text-primary { - color: #286090; +.note-editor.note-airframe .note-status-output .text-primary, .note-editor.note-frame .note-status-output .text-primary { + color: #286090; } -.note-editor.note-airframe .note-status-output .text-success,.note-editor.note-frame .note-status-output .text-success { - color: #3c763d; +.note-editor.note-airframe .note-status-output .text-success, .note-editor.note-frame .note-status-output .text-success { + color: #3c763d; } -.note-editor.note-airframe .note-status-output .text-info,.note-editor.note-frame .note-status-output .text-info { - color: #31708f; +.note-editor.note-airframe .note-status-output .text-info, .note-editor.note-frame .note-status-output .text-info { + color: #31708f; } -.note-editor.note-airframe .note-status-output .text-warning,.note-editor.note-frame .note-status-output .text-warning { - color: #8a6d3b; +.note-editor.note-airframe .note-status-output .text-warning, .note-editor.note-frame .note-status-output .text-warning { + color: #8a6d3b; } -.note-editor.note-airframe .note-status-output .text-danger,.note-editor.note-frame .note-status-output .text-danger { - color: #a94442; +.note-editor.note-airframe .note-status-output .text-danger, .note-editor.note-frame .note-status-output .text-danger { + color: #a94442; } -.note-editor.note-airframe .note-status-output .alert,.note-editor.note-frame .note-status-output .alert { - margin: -7px 0 0; - padding: 7px 10px 2px; - border-radius: 0; - color: #000; - background-color: #f5f5f5; +.note-editor.note-airframe .note-status-output .alert, .note-editor.note-frame .note-status-output .alert { + margin: -7px 0 0; + padding: 7px 10px 2px; + border-radius: 0; + color: #000; + background-color: #f5f5f5; } -.note-editor.note-airframe .note-status-output .alert .note-icon,.note-editor.note-frame .note-status-output .alert .note-icon { - margin-right: 5px; +.note-editor.note-airframe .note-status-output .alert .note-icon, .note-editor.note-frame .note-status-output .alert .note-icon { + margin-right: 5px; } -.note-editor.note-airframe .note-status-output .alert-success,.note-editor.note-frame .note-status-output .alert-success { - color: #3c763d!important; - background-color: #dff0d8!important; +.note-editor.note-airframe .note-status-output .alert-success, .note-editor.note-frame .note-status-output .alert-success { + color: #3c763d !important; + background-color: #dff0d8 !important; } -.note-editor.note-airframe .note-status-output .alert-info,.note-editor.note-frame .note-status-output .alert-info { - color: #31708f!important; - background-color: #d9edf7!important; +.note-editor.note-airframe .note-status-output .alert-info, .note-editor.note-frame .note-status-output .alert-info { + color: #31708f !important; + background-color: #d9edf7 !important; } -.note-editor.note-airframe .note-status-output .alert-warning,.note-editor.note-frame .note-status-output .alert-warning { - color: #8a6d3b!important; - background-color: #fcf8e3!important; +.note-editor.note-airframe .note-status-output .alert-warning, .note-editor.note-frame .note-status-output .alert-warning { + color: #8a6d3b !important; + background-color: #fcf8e3 !important; } -.note-editor.note-airframe .note-status-output .alert-danger,.note-editor.note-frame .note-status-output .alert-danger { - color: #a94442!important; - background-color: #f2dede!important; +.note-editor.note-airframe .note-status-output .alert-danger, .note-editor.note-frame .note-status-output .alert-danger { + color: #a94442 !important; + background-color: #f2dede !important; } -.note-editor.note-airframe .note-statusbar,.note-editor.note-frame .note-statusbar { - background-color: #f5f5f5; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-top: 1px solid #ddd; +.note-editor.note-airframe .note-statusbar, .note-editor.note-frame .note-statusbar { + background-color: #f5f5f5; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-top: 1px solid #ddd; } -.note-editor.note-airframe .note-statusbar .note-resizebar,.note-editor.note-frame .note-statusbar .note-resizebar { - padding-top: 1px; - height: 9px; - width: 100%; - cursor: ns-resize; +.note-editor.note-airframe .note-statusbar .note-resizebar, .note-editor.note-frame .note-statusbar .note-resizebar { + padding-top: 1px; + height: 9px; + width: 100%; + cursor: ns-resize; } -.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar { - width: 20px; - margin: 1px auto; - border-top: 1px solid #a9a9a9; +.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar, .note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar { + width: 20px; + margin: 1px auto; + border-top: 1px solid #a9a9a9; } -.note-editor.note-airframe .note-statusbar.locked .note-resizebar,.note-editor.note-frame .note-statusbar.locked .note-resizebar { - cursor: default; +.note-editor.note-airframe .note-statusbar.locked .note-resizebar, .note-editor.note-frame .note-statusbar.locked .note-resizebar { + cursor: default; } -.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar { - display: none; +.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar, .note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar { + display: none; } -.note-editor.note-airframe .note-placeholder,.note-editor.note-frame .note-placeholder { - padding: 10px; +.note-editor.note-airframe .note-placeholder, .note-editor.note-frame .note-placeholder { + padding: 10px; } .note-editor.note-airframe { - border: 0; + border: 0; } .note-editor.note-airframe .note-editing-area .note-editable { - padding: 0; + padding: 0; } .note-popover.popover { - display: none; - max-width: none; + display: none; + max-width: none; } .note-popover.popover .popover-content a { - display: inline-block; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - vertical-align: middle; + display: inline-block; + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + vertical-align: middle; } .note-popover.popover .arrow { - left: 20px!important; + left: 20px !important; } .note-toolbar { - position: relative; + position: relative; } -.note-popover .popover-content,.note-toolbar { - margin: 0; - padding: 0 0 5px 5px; +.note-popover .popover-content, .note-toolbar { + margin: 0; + padding: 0 0 5px 5px; } -.note-popover .popover-content>.note-btn-group,.note-toolbar>.note-btn-group { - margin-top: 5px; - margin-left: 0; - margin-right: 5px; +.note-popover .popover-content > .note-btn-group, .note-toolbar > .note-btn-group { + margin-top: 5px; + margin-left: 0; + margin-right: 5px; } -.note-popover .popover-content .note-btn-group .note-table,.note-toolbar .note-btn-group .note-table { - min-width: 0; - padding: 5px; +.note-popover .popover-content .note-btn-group .note-table, .note-toolbar .note-btn-group .note-table { + min-width: 0; + padding: 5px; } -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-toolbar .note-btn-group .note-table .note-dimension-picker { - font-size: 18px; +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker, .note-toolbar .note-btn-group .note-table .note-dimension-picker { + font-size: 18px; } -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { - position: absolute!important; - z-index: 3; - width: 10em; - height: 10em; - cursor: pointer; +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher, .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { + position: absolute !important; + z-index: 3; + width: 10em; + height: 10em; + cursor: pointer; } -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted { - position: relative!important; - z-index: 1; - width: 5em; - height: 5em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted { + position: relative !important; + z-index: 1; + width: 5em; + height: 5em; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; } -.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { - position: absolute!important; - z-index: 2; - width: 1em; - height: 1em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted, .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { + position: absolute !important; + z-index: 2; + width: 1em; + height: 1em; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; } -.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-toolbar .note-style .dropdown-style blockquote,.note-toolbar .note-style .dropdown-style pre { - margin: 0; - padding: 5px 10px; +.note-popover .popover-content .note-style .dropdown-style blockquote, .note-popover .popover-content .note-style .dropdown-style pre, .note-toolbar .note-style .dropdown-style blockquote, .note-toolbar .note-style .dropdown-style pre { + margin: 0; + padding: 5px 10px; } -.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-toolbar .note-style .dropdown-style h1,.note-toolbar .note-style .dropdown-style h2,.note-toolbar .note-style .dropdown-style h3,.note-toolbar .note-style .dropdown-style h4,.note-toolbar .note-style .dropdown-style h5,.note-toolbar .note-style .dropdown-style h6,.note-toolbar .note-style .dropdown-style p { - margin: 0; - padding: 0; +.note-popover .popover-content .note-style .dropdown-style h1, .note-popover .popover-content .note-style .dropdown-style h2, .note-popover .popover-content .note-style .dropdown-style h3, .note-popover .popover-content .note-style .dropdown-style h4, .note-popover .popover-content .note-style .dropdown-style h5, .note-popover .popover-content .note-style .dropdown-style h6, .note-popover .popover-content .note-style .dropdown-style p, .note-toolbar .note-style .dropdown-style h1, .note-toolbar .note-style .dropdown-style h2, .note-toolbar .note-style .dropdown-style h3, .note-toolbar .note-style .dropdown-style h4, .note-toolbar .note-style .dropdown-style h5, .note-toolbar .note-style .dropdown-style h6, .note-toolbar .note-style .dropdown-style p { + margin: 0; + padding: 0; } -.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-toolbar .note-color-all .note-dropdown-menu { - min-width: 337px; +.note-popover .popover-content .note-color-all .note-dropdown-menu, .note-toolbar .note-color-all .note-dropdown-menu { + min-width: 337px; } -.note-popover .popover-content .note-color .dropdown-toggle,.note-toolbar .note-color .dropdown-toggle { - width: 20px; - padding-left: 5px; +.note-popover .popover-content .note-color .dropdown-toggle, .note-toolbar .note-color .dropdown-toggle { + width: 20px; + padding-left: 5px; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-toolbar .note-color .note-dropdown-menu .note-palette { - display: inline-block; - margin: 0; - width: 160px; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette, .note-toolbar .note-color .note-dropdown-menu .note-palette { + display: inline-block; + margin: 0; + width: 160px; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-toolbar .note-color .note-dropdown-menu .note-palette:first-child { - margin: 0 5px; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child, .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child { + margin: 0 5px; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title { - font-size: 12px; - margin: 2px 7px; - text-align: center; - border-bottom: 1px solid #eee; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title { + font-size: 12px; + margin: 2px 7px; + text-align: center; + border-bottom: 1px solid #eee; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select { - font-size: 11px; - margin: 3px; - padding: 0 3px; - cursor: pointer; - width: 100%; - border-radius: 5px; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset, .note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select { + font-size: 11px; + margin: 3px; + padding: 0 3px; + cursor: pointer; + width: 100%; + border-radius: 5px; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover { - background: #eee; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, .note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover { + background: #eee; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row { - height: 20px; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row { + height: 20px; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn { - display: none; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn { + display: none; } -.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn { - border: 1px solid #eee; +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn, .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn { + border: 1px solid #eee; } -.note-popover .popover-content .note-para .note-dropdown-menu,.note-toolbar .note-para .note-dropdown-menu { - min-width: 216px; - padding: 5px; +.note-popover .popover-content .note-para .note-dropdown-menu, .note-toolbar .note-para .note-dropdown-menu { + min-width: 216px; + padding: 5px; } -.note-popover .popover-content .note-para .note-dropdown-menu>div:first-child,.note-toolbar .note-para .note-dropdown-menu>div:first-child { - margin-right: 5px; +.note-popover .popover-content .note-para .note-dropdown-menu > div:first-child, .note-toolbar .note-para .note-dropdown-menu > div:first-child { + margin-right: 5px; } -.note-popover .popover-content .note-dropdown-menu,.note-toolbar .note-dropdown-menu { - min-width: 160px; +.note-popover .popover-content .note-dropdown-menu, .note-toolbar .note-dropdown-menu { + min-width: 160px; } -.note-popover .popover-content .note-dropdown-menu.right,.note-toolbar .note-dropdown-menu.right { - right: 0; - left: auto; +.note-popover .popover-content .note-dropdown-menu.right, .note-toolbar .note-dropdown-menu.right { + right: 0; + left: auto; } -.note-popover .popover-content .note-dropdown-menu.right:before,.note-toolbar .note-dropdown-menu.right:before { - right: 9px; - left: auto!important; +.note-popover .popover-content .note-dropdown-menu.right:before, .note-toolbar .note-dropdown-menu.right:before { + right: 9px; + left: auto !important; } -.note-popover .popover-content .note-dropdown-menu.right:after,.note-toolbar .note-dropdown-menu.right:after { - right: 10px; - left: auto!important; +.note-popover .popover-content .note-dropdown-menu.right:after, .note-toolbar .note-dropdown-menu.right:after { + right: 10px; + left: auto !important; } -.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-toolbar .note-dropdown-menu.note-check a i { - color: #00bfff; - visibility: hidden; +.note-popover .popover-content .note-dropdown-menu.note-check a i, .note-toolbar .note-dropdown-menu.note-check a i { + color: #00bfff; + visibility: hidden; } -.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-toolbar .note-dropdown-menu.note-check a.checked i { - visibility: visible; +.note-popover .popover-content .note-dropdown-menu.note-check a.checked i, .note-toolbar .note-dropdown-menu.note-check a.checked i { + visibility: visible; } -.note-popover .popover-content .note-fontsize-10,.note-toolbar .note-fontsize-10 { - font-size: 10px; +.note-popover .popover-content .note-fontsize-10, .note-toolbar .note-fontsize-10 { + font-size: 10px; } -.note-popover .popover-content .note-color-palette,.note-toolbar .note-color-palette { - line-height: 1; +.note-popover .popover-content .note-color-palette, .note-toolbar .note-color-palette { + line-height: 1; } -.note-popover .popover-content .note-color-palette div .note-color-btn,.note-toolbar .note-color-palette div .note-color-btn { - width: 20px; - height: 20px; - padding: 0; - margin: 0; - border: 1px solid #fff; +.note-popover .popover-content .note-color-palette div .note-color-btn, .note-toolbar .note-color-palette div .note-color-btn { + width: 20px; + height: 20px; + padding: 0; + margin: 0; + border: 1px solid #fff; } -.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-toolbar .note-color-palette div .note-color-btn:hover { - border: 1px solid #000; +.note-popover .popover-content .note-color-palette div .note-color-btn:hover, .note-toolbar .note-color-palette div .note-color-btn:hover { + border: 1px solid #000; } .note-modal .modal-dialog { - outline: 0; - border-radius: 5px; - box-shadow: 0 3px 9px rgba(0,0,0,.5); + outline: 0; + border-radius: 5px; + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .note-modal .form-group { - margin-left: 0; - margin-right: 0; + margin-left: 0; + margin-right: 0; } .note-modal .note-modal-form { - margin: 0; + margin: 0; } .note-modal .note-image-dialog .note-dropzone { - min-height: 100px; - font-size: 30px; - line-height: 4; - color: #d3d3d3; - text-align: center; - border: 4px dashed #d3d3d3; - margin-bottom: 10px; + min-height: 100px; + font-size: 30px; + line-height: 4; + color: #d3d3d3; + text-align: center; + border: 4px dashed #d3d3d3; + margin-bottom: 10px; } .note-placeholder { - position: absolute; - display: none; - color: grey; + position: absolute; + display: none; + color: grey; } .note-handle .note-control-selection { - position: absolute; - display: none; - border: 1px solid #000; + position: absolute; + display: none; + border: 1px solid #000; } -.note-handle .note-control-selection>div { - position: absolute; +.note-handle .note-control-selection > div { + position: absolute; } .note-handle .note-control-selection .note-control-selection-bg { - width: 100%; - height: 100%; - background-color: #000; - -webkit-opacity: .3; - -khtml-opacity: .3; - -moz-opacity: .3; - opacity: .3; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); - filter: alpha(opacity=30); + width: 100%; + height: 100%; + background-color: #000; + -webkit-opacity: .3; + -khtml-opacity: .3; + -moz-opacity: .3; + opacity: .3; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); + filter: alpha(opacity=30); } -.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-holder,.note-handle .note-control-selection .note-control-sizing { - width: 7px; - height: 7px; - border: 1px solid #000; +.note-handle .note-control-selection .note-control-handle, .note-handle .note-control-selection .note-control-holder, .note-handle .note-control-selection .note-control-sizing { + width: 7px; + height: 7px; + border: 1px solid #000; } .note-handle .note-control-selection .note-control-sizing { - background-color: #000; + background-color: #000; } .note-handle .note-control-selection .note-control-nw { - top: -5px; - left: -5px; - border-right: none; - border-bottom: none; + top: -5px; + left: -5px; + border-right: none; + border-bottom: none; } .note-handle .note-control-selection .note-control-ne { - top: -5px; - right: -5px; - border-bottom: none; - border-left: none; + top: -5px; + right: -5px; + border-bottom: none; + border-left: none; } .note-handle .note-control-selection .note-control-sw { - bottom: -5px; - left: -5px; - border-top: none; - border-right: none; + bottom: -5px; + left: -5px; + border-top: none; + border-right: none; } .note-handle .note-control-selection .note-control-se { - right: -5px; - bottom: -5px; - cursor: se-resize; + right: -5px; + bottom: -5px; + cursor: se-resize; } .note-handle .note-control-selection .note-control-se.note-control-holder { - cursor: default; - border-top: none; - border-left: none; + cursor: default; + border-top: none; + border-left: none; } .note-handle .note-control-selection .note-control-selection-info { - right: 0; - bottom: 0; - padding: 5px; - margin: 5px; - color: #fff; - background-color: #000; - font-size: 12px; - border-radius: 5px; - -webkit-opacity: .7; - -khtml-opacity: .7; - -moz-opacity: .7; - opacity: .7; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70); - filter: alpha(opacity=70); + right: 0; + bottom: 0; + padding: 5px; + margin: 5px; + color: #fff; + background-color: #000; + font-size: 12px; + border-radius: 5px; + -webkit-opacity: .7; + -khtml-opacity: .7; + -moz-opacity: .7; + opacity: .7; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70); + filter: alpha(opacity=70); } .note-hint-popover { - min-width: 100px; - padding: 2px; + min-width: 100px; + padding: 2px; } .note-hint-popover .popover-content { - padding: 3px; - max-height: 150px; - overflow: auto; + padding: 3px; + max-height: 150px; + overflow: auto; } .note-hint-popover .popover-content .note-hint-group .note-hint-item { - display: block!important; - padding: 3px; + display: block !important; + padding: 3px; } -.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { - display: block; - clear: both; - font-weight: 400; - line-height: 1.4; - color: #fff; - white-space: nowrap; - text-decoration: none; - background-color: #428bca; - outline: 0; - cursor: pointer; +.note-hint-popover .popover-content .note-hint-group .note-hint-item.active, .note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { + display: block; + clear: both; + font-weight: 400; + line-height: 1.4; + color: #fff; + white-space: nowrap; + text-decoration: none; + background-color: #428bca; + outline: 0; + cursor: pointer; } .note-editor .note-editing-area .note-editable table { - width: 100%; - border-collapse: collapse; + width: 100%; + border-collapse: collapse; } -.note-editor .note-editing-area .note-editable table td,.note-editor .note-editing-area .note-editable table th { - border: 1px solid #ececec; - padding: 5px 3px; +.note-editor .note-editing-area .note-editable table td, .note-editor .note-editing-area .note-editable table th { + border: 1px solid #ececec; + padding: 5px 3px; } .note-editor .note-editing-area .note-editable a { - background-color: inherit; - text-decoration: inherit; - font-family: inherit; - font-weight: inherit; - color: #047bf8; + background-color: inherit; + text-decoration: inherit; + font-family: inherit; + font-weight: inherit; + color: #047bf8; } +.note-editor .note-editing-area .note-editable ul[data-type="taskList"] { + list-style: none; + padding: 0; + margin: 0; + margin-left: 0.7rem; +} + +.note-editor .note-editing-area .note-editable ul[data-type="taskList"] li[data-checked] { + --checkbox-color: #047bf8; + --checkmark-color: white; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label { + position: relative; + color: #8f8f8f; + display: flex; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label span { + margin-top: 4.5px; + width: 16px; + height: 16px; + border-radius: 4px; + cursor: pointer; + border: 1px solid; + display: flex; + align-items: center; + justify-content: center; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label span:after { + content: ''; + position: absolute; + border-bottom: 1px solid var(--checkmark-color); + border-right: 1px solid var(--checkmark-color); + transform: rotate(45deg); + visibility: hidden; + height: 7px !important; + width: 3px !important; + margin-bottom: 2px !important; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label span:hover { + border-color: #047bf8; + background-color: #eaf4ff; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label span:hover:after { + visibility: visible; + border-color: #047bf8; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label input { + display: none; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label input:checked ~ span { + background: var(--checkbox-color); + border-color: var(--checkbox-color); +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label input:checked ~ span:after { + border-color: white; + visibility: visible; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label input:checked ~ span:hover { + background-color: #eaf4ff; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked] label input:checked ~ span:hover:after { + visibility: visible; + border-color: #047bf8; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked="true"] label { + opacity: 0.5; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li[data-checked="true"] > * { + color: #909090; + text-decoration: line-through; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] p { + margin: 0; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li { + display: flex; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li > label { + flex: 0 0 auto; + margin-right: 0.5rem; + user-select: none; +} + +.note-editor .note-editing-area .note-editable +ul[data-type="taskList"] li > div { + flex: 1 1 auto; +} + + .note-editor .note-editing-area .note-editable .upbase-mention { - color: #047bf8; - border-radius: .3rem; - padding: .1rem .3rem; + color: #047bf8; + border-radius: .3rem; + padding: .1rem .3rem; } -.note-editor .note-editing-area .note-editable a:focus,.note-editor .note-editing-area .note-editable a:hover { - color: #23527c; - text-decoration: underline; - outline: 0; +.note-editor .note-editing-area .note-editable a:focus, .note-editor .note-editing-area .note-editable a:hover { + color: #23527c; + text-decoration: underline; + outline: 0; } .note-editor .note-editing-area .note-editable figure { - margin: 0; + margin: 0; } .note-modal .note-modal-body label { - margin-bottom: 2px; - padding: 2px 5px; - display: inline-block; + margin-bottom: 2px; + padding: 2px 5px; + display: inline-block; } .note-modal .note-modal-body .help-list-item:hover { - background-color: #e0e0e0; + background-color: #e0e0e0; } @-moz-document url-prefix() { - .note-modal .note-image-input { - height: auto; - } + .note-modal .note-image-input { + height: auto; + } } .help-list-item label { - margin-bottom: 5px; - display: inline-block; + margin-bottom: 5px; + display: inline-block; } \ No newline at end of file From 0709232776dded0736236e550d193a9f72add0a1 Mon Sep 17 00:00:00 2001 From: Nam Date: Mon, 5 Sep 2022 14:30:34 +0700 Subject: [PATCH 17/22] fix css --- lib/assets/summernote-lite.min.css | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/assets/summernote-lite.min.css b/lib/assets/summernote-lite.min.css index ee775d36..ac6beb35 100644 --- a/lib/assets/summernote-lite.min.css +++ b/lib/assets/summernote-lite.min.css @@ -1444,6 +1444,9 @@ a.note-dropdown-item, a.note-dropdown-item:hover { margin: 0; margin-left: 0.7rem; } +.note-editor .note-editing-area .note-editable ul[data-type="taskList"] li { + margin: 4px 0; +} .note-editor .note-editing-area .note-editable ul[data-type="taskList"] li[data-checked] { --checkbox-color: #047bf8; @@ -1459,7 +1462,6 @@ ul[data-type="taskList"] li[data-checked] label { .note-editor .note-editing-area .note-editable ul[data-type="taskList"] li[data-checked] label span { - margin-top: 4.5px; width: 16px; height: 16px; border-radius: 4px; @@ -1557,6 +1559,12 @@ ul[data-type="taskList"] li > div { } +.note-editor .note-editing-area .note-editable blockquote{ + border-left: 3px solid #909090; + padding-left:15px; + margin: 1.5em 10px; +} + .note-editor .note-editing-area .note-editable .upbase-mention { color: #047bf8; border-radius: .3rem; From a210a5ff3433ff2c54cc8fb3405bc87544752683 Mon Sep 17 00:00:00 2001 From: Nam Date: Thu, 8 Sep 2022 17:49:44 +0700 Subject: [PATCH 18/22] fix css --- lib/assets/summernote-lite.min.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/assets/summernote-lite.min.css b/lib/assets/summernote-lite.min.css index ac6beb35..4dfce7be 100644 --- a/lib/assets/summernote-lite.min.css +++ b/lib/assets/summernote-lite.min.css @@ -1438,6 +1438,10 @@ a.note-dropdown-item, a.note-dropdown-item:hover { color: #047bf8; } +.note-editor .note-editing-area .note-editable img { + max-width:100%; +} + .note-editor .note-editing-area .note-editable ul[data-type="taskList"] { list-style: none; padding: 0; From 553a7e31a4d1eeb8416b97e6bddb29eba334ccbb Mon Sep 17 00:00:00 2001 From: congphuong Date: Fri, 9 Dec 2022 23:23:15 +0700 Subject: [PATCH 19/22] fix assets path --- pubspec.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 80ab5d4b..d53824fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,12 +43,12 @@ dev_dependencies: flutter: assets: - - packages/html_editor_enhanced/summernote.html - - packages/html_editor_enhanced/summernote-no-plugins.html - - packages/html_editor_enhanced/summernote-lite.min.css - - packages/html_editor_enhanced/summernote-lite-dark.css - - packages/html_editor_enhanced/summernote-lite.min.js - - packages/html_editor_enhanced/jquery.min.js + - packages/html_editor_enhanced/assets/summernote.html + - packages/html_editor_enhanced/assets/summernote-no-plugins.html + - packages/html_editor_enhanced/assets/summernote-lite.min.css + - packages/html_editor_enhanced/assets/summernote-lite-dark.css + - packages/html_editor_enhanced/assets/summernote-lite.min.js + - packages/html_editor_enhanced/assets/jquery.min.js - packages/html_editor_enhanced/assets/font/summernote.eot - packages/html_editor_enhanced/assets/font/summernote.ttf - packages/html_editor_enhanced/assets/font/summernote.woff From 356f99c098be8a8fbbaaf8741c3a07d694dac827 Mon Sep 17 00:00:00 2001 From: trunghieuvn Date: Sun, 7 Apr 2024 16:57:47 +0700 Subject: [PATCH 20/22] Upgrade build flutter 3.19.5 --- example/ios/Flutter/AppFrameworkInfo.plist | 2 +- example/ios/Podfile | 2 +- example/ios/Podfile.lock | 10 +- example/ios/Runner.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- example/ios/Runner/Info.plist | 2 + example/lib/main.dart | 4 +- example/pubspec.lock | 202 +++++++++++------ example/pubspec.yaml | 4 +- pubspec.lock | 212 +++++++++++------- pubspec.yaml | 8 +- 11 files changed, 292 insertions(+), 169 deletions(-) diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 8d4492f9..7c569640 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 9.0 + 12.0 diff --git a/example/ios/Podfile b/example/ios/Podfile index 1e8c3c90..279576f3 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +# platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index b03e6548..7c849bb2 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -76,14 +76,14 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 - file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95 - Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a - flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721 + file_picker: ce3938a0df3cc1ef404671531facef740d03f920 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780 -PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c +PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011 -COCOAPODS: 1.11.3 +COCOAPODS: 1.15.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 85c7811a..daa4d700 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -156,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -200,10 +200,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -236,6 +238,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -340,7 +343,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -414,7 +417,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -463,7 +466,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6e..e67b2808 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ CADisableMinimumFrameDurationOnPhone + UIApplicationSupportsIndirectInputEvents + diff --git a/example/lib/main.dart b/example/lib/main.dart index 245494ee..3c78e8e8 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,7 +1,7 @@ +import 'package:file_picker/file_picker.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:html_editor_enhanced/html_editor.dart'; -import 'package:file_picker/file_picker.dart'; void main() => runApp(HtmlEditorExampleApp()); @@ -71,7 +71,7 @@ class _HtmlEditorExampleState extends State { htmlEditorOptions: HtmlEditorOptions( hint: 'Your text here...', shouldEnsureVisible: true, - initialText: '''@Barry Allen''' + initialText: '''\u003cp\u003eGuests sẽ bị chặn quyền truy cập vào một số tính năng.\u003c/p\u003e\u003cp\u003e\u003ca target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://help.upbase.io/article/22-working-with-guests-in-a-list\"\u003ehttps://help.upbase.io/article/22-working-with-guests-in-a-list\u003c/a\u003e\u003c/p\u003e\u003cp\u003eCụ thể:\u003c/p\u003e\u003cul data-type=\"taskList\"\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn menu My tasks, Schedule.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn nút màu xanh Add Folder và List.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn nút \"+\" bên phải tên Folder.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn menu khi long-press vào tên list.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e\u003cimg src=\"https://d36vdic3y07eu2.cloudfront.net/file/1676882544818774258/image.png\"\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3\u003eTrang Chat\u003c/h3\u003e\u003cul data-type=\"taskList\"\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn section \"Direct messages\"\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn nút màu xanh để browser channels.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e\u003cimg src=\"https://d36vdic3y07eu2.cloudfront.net/file/1676882813642608199/image.png\"\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3\u003eTrang tasks trong list\u003c/h3\u003e\u003cul data-type=\"taskList\"\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn 2 menu ba chấm\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e\u003cimg src=\"https://d36vdic3y07eu2.cloudfront.net/file/1676882900941886413/image.png\"\u003e\u003cp\u003e\u003c/p\u003e\u003cul data-type=\"taskList\"\u003e\u003cli data-checked=\"false\" data-type=\"taskItem\"\u003e\u003clabel\u003e\u003cinput type=\"checkbox\"\u003e\u003cspan\u003e\u003c/span\u003e\u003c/label\u003e\u003cdiv\u003e\u003cp\u003eẨn menu Delete đối với những item task, doc, file, message không phải do chính guest đó tạo. Guest không có quyền xóa item được tạo bởi người khác.\u003c/p\u003e\u003c/div\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e''' //initialText: "

text content initial, if any

", ), htmlToolbarOptions: HtmlToolbarOptions( diff --git a/example/pubspec.lock b/example/pubspec.lock index b98a159b..1ccedfcd 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,79 +5,90 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.9.0" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.18.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.6" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi - url: "https://pub.dartlang.org" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.2" file_picker: dependency: transitive description: name: file_picker - url: "https://pub.dartlang.org" + sha256: be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030 + url: "https://pub.dev" source: hosted - version: "5.2.5" + version: "5.5.0" flex_color_picker: dependency: transitive description: name: flex_color_picker - url: "https://pub.dartlang.org" + sha256: "5c846437069fb7afdd7ade6bf37e628a71d2ab0787095ddcb1253bf9345d5f3a" + url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.4.1" flex_seed_scheme: dependency: transitive description: name: flex_seed_scheme - url: "https://pub.dartlang.org" + sha256: "4cee2f1d07259f77e8b36f4ec5f35499d19e74e17c7dce5b819554914082bc01" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.5.0" flutter: dependency: "direct main" description: flutter @@ -87,58 +98,66 @@ packages: dependency: transitive description: name: flutter_inappwebview - url: "https://pub.dartlang.org" + sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 + url: "https://pub.dev" source: hosted - version: "5.7.2+3" + version: "5.8.0" flutter_keyboard_visibility: dependency: transitive description: name: flutter_keyboard_visibility - url: "https://pub.dartlang.org" + sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" + url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.0" flutter_keyboard_visibility_linux: dependency: transitive description: name: flutter_keyboard_visibility_linux - url: "https://pub.dartlang.org" + sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_macos: dependency: transitive description: name: flutter_keyboard_visibility_macos - url: "https://pub.dartlang.org" + sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_platform_interface: dependency: transitive description: name: flutter_keyboard_visibility_platform_interface - url: "https://pub.dartlang.org" + sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_web: dependency: transitive description: name: flutter_keyboard_visibility_web - url: "https://pub.dartlang.org" + sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_windows: dependency: transitive description: name: flutter_keyboard_visibility_windows - url: "https://pub.dartlang.org" + sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.dartlang.org" + sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da + url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.17" flutter_test: dependency: "direct dev" description: flutter @@ -155,77 +174,103 @@ packages: path: ".." relative: true source: path - version: "2.5.1" + version: "2.5.2" infinite_listview: dependency: transitive description: name: infinite_listview - url: "https://pub.dartlang.org" + sha256: f6062c1720eb59be553dfa6b89813d3e8dd2f054538445aaa5edaddfa5195ce6 + url: "https://pub.dev" source: hosted version: "1.1.0" - js: + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: dependency: transitive description: - name: js - url: "https://pub.dartlang.org" + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" source: hosted - version: "0.12.12" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" source: hosted - version: "0.1.5" + version: "0.8.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.11.0" numberpicker: dependency: transitive description: name: numberpicker - url: "https://pub.dartlang.org" + sha256: "4c129154944b0f6b133e693f8749c3f8bfb67c4d07ef9dcab48b595c22d1f156" + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.9.0" pedantic: dependency: transitive description: name: pedantic - url: "https://pub.dartlang.org" + sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" + url: "https://pub.dev" source: hosted version: "1.11.1" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointer_interceptor: dependency: transitive description: name: pointer_interceptor - url: "https://pub.dartlang.org" + sha256: adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22 + url: "https://pub.dev" source: hosted - version: "0.9.3+3" + version: "0.9.3+7" sky_engine: dependency: transitive description: flutter @@ -235,65 +280,82 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" source: hosted - version: "0.4.12" + version: "0.6.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" visibility_detector: dependency: transitive description: name: visibility_detector - url: "https://pub.dartlang.org" + sha256: "15c54a459ec2c17b4705450483f3d5a2858e733aee893dcee9d75fd04814940d" + url: "https://pub.dev" source: hosted version: "0.3.3" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" win32: dependency: transitive description: name: win32 - url: "https://pub.dartlang.org" + sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" + url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "5.4.0" sdks: - dart: ">=2.18.0 <3.0.0" - flutter: ">=3.3.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.16.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 5e1c4814..cefcf70d 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,9 +4,11 @@ description: Demonstrates how to use the html_editor_enhanced plugin. # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev +version: 1.0.0+1 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: ">=3.0.6 <4.0.0" + flutter: ">=1.17.0" dependencies: flutter: diff --git a/pubspec.lock b/pubspec.lock index 57dde959..217ea031 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,79 +5,82 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.18.0" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi - url: "https://pub.dartlang.org" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.2" file_picker: dependency: "direct main" description: name: file_picker - url: "https://pub.dartlang.org" + sha256: be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030 + url: "https://pub.dev" source: hosted - version: "5.2.5" + version: "5.5.0" flex_color_picker: dependency: "direct main" description: name: flex_color_picker - url: "https://pub.dartlang.org" + sha256: "5c846437069fb7afdd7ade6bf37e628a71d2ab0787095ddcb1253bf9345d5f3a" + url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.4.1" flex_seed_scheme: dependency: transitive description: name: flex_seed_scheme - url: "https://pub.dartlang.org" + sha256: "4cee2f1d07259f77e8b36f4ec5f35499d19e74e17c7dce5b819554914082bc01" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.5.0" flutter: dependency: "direct main" description: flutter @@ -87,58 +90,66 @@ packages: dependency: "direct main" description: name: flutter_inappwebview - url: "https://pub.dartlang.org" + sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 + url: "https://pub.dev" source: hosted - version: "5.7.2+3" + version: "5.8.0" flutter_keyboard_visibility: dependency: "direct main" description: name: flutter_keyboard_visibility - url: "https://pub.dartlang.org" + sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" + url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.0" flutter_keyboard_visibility_linux: dependency: transitive description: name: flutter_keyboard_visibility_linux - url: "https://pub.dartlang.org" + sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_macos: dependency: transitive description: name: flutter_keyboard_visibility_macos - url: "https://pub.dartlang.org" + sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_platform_interface: dependency: transitive description: name: flutter_keyboard_visibility_platform_interface - url: "https://pub.dartlang.org" + sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_web: dependency: transitive description: name: flutter_keyboard_visibility_web - url: "https://pub.dartlang.org" + sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_windows: dependency: transitive description: name: flutter_keyboard_visibility_windows - url: "https://pub.dartlang.org" + sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.dartlang.org" + sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da + url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.17" flutter_test: dependency: "direct dev" description: flutter @@ -153,65 +164,98 @@ packages: dependency: transitive description: name: infinite_listview - url: "https://pub.dartlang.org" + sha256: f6062c1720eb59be553dfa6b89813d3e8dd2f054538445aaa5edaddfa5195ce6 + url: "https://pub.dev" source: hosted version: "1.1.0" - js: + leak_tracker: dependency: transitive description: - name: js - url: "https://pub.dartlang.org" + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" source: hosted - version: "0.12.11" + version: "0.8.0" meta: dependency: "direct main" description: name: meta - url: "https://pub.dartlang.org" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.11.0" numberpicker: dependency: "direct main" description: name: numberpicker - url: "https://pub.dartlang.org" + sha256: "4c129154944b0f6b133e693f8749c3f8bfb67c4d07ef9dcab48b595c22d1f156" + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.9.0" pedantic: dependency: "direct main" description: name: pedantic - url: "https://pub.dartlang.org" + sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" + url: "https://pub.dev" source: hosted version: "1.11.1" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointer_interceptor: dependency: "direct main" description: name: pointer_interceptor - url: "https://pub.dartlang.org" + sha256: adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22 + url: "https://pub.dev" source: hosted - version: "0.9.3+3" + version: "0.9.3+7" sky_engine: dependency: transitive description: flutter @@ -221,72 +265,82 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" source: hosted - version: "0.4.3" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.6.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" visibility_detector: dependency: "direct main" description: name: visibility_detector - url: "https://pub.dartlang.org" + sha256: "15c54a459ec2c17b4705450483f3d5a2858e733aee893dcee9d75fd04814940d" + url: "https://pub.dev" source: hosted version: "0.3.3" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" win32: dependency: transitive description: name: win32 - url: "https://pub.dartlang.org" + sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" + url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "5.4.0" sdks: - dart: ">=2.14.0 <3.0.0" - flutter: ">=2.2.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index cf8ab22e..dedb3d4e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,12 +1,12 @@ name: html_editor_enhanced description: HTML rich text editor for Android, iOS, and Web, using the Summernote library. Enhanced with highly customizable widget-based controls, bug fixes, callbacks, dark mode, and more. -version: 2.5.1 +version: 2.5.2 homepage: https://github.com/tneotia/html-editor-enhanced environment: - sdk: '>=2.12.0 <3.0.0' - flutter: ">=3.0.0" + sdk: ">=3.0.6 <4.0.0" + flutter: ">=1.17.0" dependencies: flutter: @@ -17,7 +17,7 @@ dependencies: visibility_detector: ^0.3.3 # plugin to get when the keyboard is hidden via back (Android) # or "done" (iOS) to reset the editor's height - flutter_keyboard_visibility: ^5.4.0 + flutter_keyboard_visibility: ^6.0.0 # plugin to show a color picker for foreground/highlight color flex_color_picker: ^3.0.2 # plugin to get files from filesystem From f93bc85ea49cae2a3ad958a6274c04d743916a94 Mon Sep 17 00:00:00 2001 From: trunghieuvn Date: Sun, 7 Apr 2024 17:04:40 +0700 Subject: [PATCH 21/22] Merge branch 'client/master' into merger/latest * client/master: (26 commits) Change allowImagePicking comment Allow disabling the upload of images taken from the device - edited error message Allow disabling the upload of images taken from the device Update changelog Version bump 2.5.1 Update dependencies apart from file picker bug fix for "No file or variants found for asset: packages/html_editor_enhanced/summernote.html" bugfixed pubspec.yaml file references to files incorrect (which fails the build on apple) bugfixed pubspec.yaml file references to files incorrect (which fails the build on apple) Updated pubs and replaced duplicated codes. upgrade dependencies and example to support flutter 3 and android sdk 33 Bumped two other dependencies. Updated file_picker to 5.0.1. Bump version kotlin and compile SDK Fix pub publish error Release v2.5.0 Remove some fonts Pin pointer interceptor to 0.9.1 Fix more warnings Update dependencies ... # Conflicts: # lib/assets/summernote-lite.min.css # pubspec.lock --- example/ios/Podfile.lock | 14 +++++----- example/pubspec.lock | 60 ++++++++++++++++++++++++++++++++++++++-- pubspec.lock | 60 ++++++++++++++++++++++++++++++++++++++-- pubspec.yaml | 2 +- 4 files changed, 124 insertions(+), 12 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 7c849bb2..5475bbcd 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -34,11 +34,11 @@ PODS: - DKImagePickerController/PhotoGallery - Flutter - Flutter (1.0.0) - - flutter_inappwebview (0.0.1): + - flutter_inappwebview_ios (0.0.1): - Flutter - - flutter_inappwebview/Core (= 0.0.1) + - flutter_inappwebview_ios/Core (= 0.0.1) - OrderedSet (~> 5.0) - - flutter_inappwebview/Core (0.0.1): + - flutter_inappwebview_ios/Core (0.0.1): - Flutter - OrderedSet (~> 5.0) - flutter_keyboard_visibility (0.0.1): @@ -52,7 +52,7 @@ PODS: DEPENDENCIES: - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) - - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) SPEC REPOS: @@ -68,8 +68,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/file_picker/ios" Flutter: :path: Flutter - flutter_inappwebview: - :path: ".symlinks/plugins/flutter_inappwebview/ios" + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" flutter_keyboard_visibility: :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" @@ -78,7 +78,7 @@ SPEC CHECKSUMS: DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 file_picker: ce3938a0df3cc1ef404671531facef740d03f920 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf + flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 diff --git a/example/pubspec.lock b/example/pubspec.lock index 1ccedfcd..6cdce439 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -98,10 +98,58 @@ packages: dependency: transitive description: name: flutter_inappwebview - sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 + sha256: "3e9a443a18ecef966fb930c3a76ca5ab6a7aafc0c7b5e14a4a850cf107b09959" url: "https://pub.dev" source: hosted - version: "5.8.0" + version: "6.0.0" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421 + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636 + url: "https://pub.dev" + source: hosted + version: "1.0.11" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187" + url: "https://pub.dev" + source: hosted + version: "1.0.10" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: d8c680abfb6fec71609a700199635d38a744df0febd5544c5a020bd73de8ee07 + url: "https://pub.dev" + source: hosted + version: "1.0.8" flutter_keyboard_visibility: dependency: transitive description: @@ -183,6 +231,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" leak_tracker: dependency: transitive description: diff --git a/pubspec.lock b/pubspec.lock index 217ea031..95524ac2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -90,10 +90,58 @@ packages: dependency: "direct main" description: name: flutter_inappwebview - sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 + sha256: "3e9a443a18ecef966fb930c3a76ca5ab6a7aafc0c7b5e14a4a850cf107b09959" url: "https://pub.dev" source: hosted - version: "5.8.0" + version: "6.0.0" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421 + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636 + url: "https://pub.dev" + source: hosted + version: "1.0.11" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187" + url: "https://pub.dev" + source: hosted + version: "1.0.10" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: d8c680abfb6fec71609a700199635d38a744df0febd5544c5a020bd73de8ee07 + url: "https://pub.dev" + source: hosted + version: "1.0.8" flutter_keyboard_visibility: dependency: "direct main" description: @@ -168,6 +216,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" leak_tracker: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index dedb3d4e..d7867873 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: flutter: sdk: flutter # webview plugin - flutter_inappwebview: ^5.7.2+3 + flutter_inappwebview: ^6.0.0 # plugin to get webview's visible fraction for keyboard height adjustment visibility_detector: ^0.3.3 # plugin to get when the keyboard is hidden via back (Android) From f7a7ebe5786639ea598cb8dfb8336d0815b57753 Mon Sep 17 00:00:00 2001 From: trunghieuvn Date: Fri, 17 May 2024 16:55:43 +0700 Subject: [PATCH 22/22] Fix compile error `flutter latest 3.22.0` --- example/pubspec.lock | 26 +++++++++++++------------- lib/src/widgets/toolbar_widget.dart | 12 ++++++------ lib/utils/utils.dart | 4 ++-- pubspec.lock | 26 +++++++++++++------------- pubspec.yaml | 2 +- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/example/pubspec.lock b/example/pubspec.lock index 6cdce439..7023eb9f 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -243,26 +243,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" matcher: dependency: transitive description: @@ -283,10 +283,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" numberpicker: dependency: transitive description: @@ -376,10 +376,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" vector_math: dependency: transitive description: @@ -400,10 +400,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" win32: dependency: transitive description: @@ -414,4 +414,4 @@ packages: version: "5.4.0" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/lib/src/widgets/toolbar_widget.dart b/lib/src/widgets/toolbar_widget.dart index 42cbab9d..67634c23 100644 --- a/lib/src/widgets/toolbar_widget.dart +++ b/lib/src/widgets/toolbar_widget.dart @@ -1123,7 +1123,7 @@ class ToolbarWidgetState extends State { newColor = color; }, title: Text('Choose a Color', - style: Theme.of(context).textTheme.headline6), + style: Theme.of(context).textTheme.headlineSmall), width: 40, height: 40, spacing: 0, @@ -1875,7 +1875,7 @@ class ToolbarWidgetState extends State { style: TextStyle( color: Theme.of(context) .textTheme - .bodyText1 + .bodyMedium ?.color)), ), ], @@ -1989,7 +1989,7 @@ class ToolbarWidgetState extends State { style: TextStyle( color: Theme.of(context) .textTheme - .bodyText1 + .bodyMedium ?.color)), ), suffixIcon: result != null @@ -2149,7 +2149,7 @@ class ToolbarWidgetState extends State { style: TextStyle( color: Theme.of(context) .textTheme - .bodyText1 + .bodyMedium ?.color)), ), suffixIcon: result != null @@ -2301,7 +2301,7 @@ class ToolbarWidgetState extends State { style: TextStyle( color: Theme.of(context) .textTheme - .bodyText1 + .bodyMedium ?.color)), ), suffixIcon: result != null @@ -2453,7 +2453,7 @@ class ToolbarWidgetState extends State { style: TextStyle( color: Theme.of(context) .textTheme - .bodyText1 + .bodyMedium ?.color)), ), suffixIcon: result != null diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 8d9c6c8d..d167ae53 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -949,7 +949,7 @@ class _DropdownButtonState extends State> } TextStyle? get _textStyle => - widget.style ?? Theme.of(context).textTheme.subtitle1; + widget.style ?? Theme.of(context).textTheme.titleSmall; void _handleTap() { final textDirection = Directionality.maybeOf(context); @@ -1009,7 +1009,7 @@ class _DropdownButtonState extends State> double get _denseButtonHeight { final fontSize = _textStyle!.fontSize ?? - Theme.of(context).textTheme.subtitle1!.fontSize!; + Theme.of(context).textTheme.titleSmall!.fontSize!; return max(fontSize, max(widget.iconSize, _kDenseButtonHeight)); } diff --git a/pubspec.lock b/pubspec.lock index 95524ac2..51e83a87 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -228,26 +228,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" matcher: dependency: transitive description: @@ -268,10 +268,10 @@ packages: dependency: "direct main" description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" numberpicker: dependency: "direct main" description: @@ -361,10 +361,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" vector_math: dependency: transitive description: @@ -385,10 +385,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" win32: dependency: transitive description: @@ -399,4 +399,4 @@ packages: version: "5.4.0" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/pubspec.yaml b/pubspec.yaml index d7867873..f9bd9e42 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: html_editor_enhanced description: HTML rich text editor for Android, iOS, and Web, using the Summernote library. Enhanced with highly customizable widget-based controls, bug fixes, callbacks, dark mode, and more. -version: 2.5.2 +version: 2.5.3 homepage: https://github.com/tneotia/html-editor-enhanced environment: